diff --git a/sky-server/src/main/java/com/sky/controller/user/OrderController.java b/sky-server/src/main/java/com/sky/controller/user/OrderController.java index 58cc3c5..09f793d 100644 --- a/sky-server/src/main/java/com/sky/controller/user/OrderController.java +++ b/sky-server/src/main/java/com/sky/controller/user/OrderController.java @@ -88,4 +88,16 @@ public class OrderController { orderService.cancel(id); return Result.success(); } + + + /** + * 再来一单 + * @param id + * @return + */ + @PostMapping("/repetition/{id}") + public Result repetition(@PathVariable Long id){ + orderService.repetition(id); + return Result.success(); + } } diff --git a/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java b/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java index 10cadd6..0a245e6 100644 --- a/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java @@ -41,4 +41,11 @@ public interface ShoppingCartMapper { */ @Delete("delete from shopping_cart where user_id = #{uerId}") void deleteByUserId(Long userId); + + /** + * 批量插入购物车数据 + * + * @param shoppingCartList + */ + void insertBatch(List shoppingCartList); } diff --git a/sky-server/src/main/java/com/sky/service/OrderService.java b/sky-server/src/main/java/com/sky/service/OrderService.java index 0e84e9f..25a2ae6 100644 --- a/sky-server/src/main/java/com/sky/service/OrderService.java +++ b/sky-server/src/main/java/com/sky/service/OrderService.java @@ -51,4 +51,10 @@ public interface OrderService { * @param id */ void cancel(Long id) throws Exception; + + /** + * 再来一单 + * @param id + */ + void repetition(Long id); } diff --git a/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java index 9b7b630..d7f6578 100644 --- a/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java @@ -30,6 +30,7 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @Service @@ -268,4 +269,30 @@ public class OrderServiceImpl implements OrderService { ordersUpdate.setCancelTime(LocalDateTime.now()); orderMapper.update(ordersUpdate); } + + /** + * 再来一单 + * @param id + */ + public void repetition(Long id) { + // 根据订单id查询当前订单详情 + List orderDetailList = orderDetailMapper.getByOrderId(id); + + // 查询当前用户id + Long userId = BaseContext.getCurrentId(); + List shoppingCartList = orderDetailList.stream().map(orderDetail -> { + ShoppingCart shoppingCart = new ShoppingCart(); + + // 将原订单详情里面的菜品信息重新复制到购物车对象中 + BeanUtils.copyProperties(orderDetail, shoppingCart); + shoppingCart.setUserId(userId); + shoppingCart.setCreateTime(LocalDateTime.now()); + + return shoppingCart; + }).collect(Collectors.toList()); + + //将购物车对象批量添加到数据库 + shoppingCartMapper.insertBatch(shoppingCartList); + + } } diff --git a/sky-server/src/main/resources/mapper/ShoppingCartMapper .xml b/sky-server/src/main/resources/mapper/ShoppingCartMapper .xml index 5626a23..8f6e37b 100644 --- a/sky-server/src/main/resources/mapper/ShoppingCartMapper .xml +++ b/sky-server/src/main/resources/mapper/ShoppingCartMapper .xml @@ -2,6 +2,16 @@ + + insert into shopping_cart (name, image, user_id + , dish_id, setmeal_id, dish_flavor, number, amount, create_time) + values + + (#{sc.name},#{sc.image},#{sc.userId},#{sc.dishId} + ,#{sc.setmealId},#{sc.dishFlavor},#{sc.number},#{sc.amount}, + #{sc.createTime}) + +