From 38d61ee91ada1e44a279d0d5e4fb9193292b4e7a Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Wed, 10 Jan 2024 21:35:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=8D=E6=9D=A5=E4=B8=80=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sky/controller/user/OrderController.java | 13 +++++++++ .../com/sky/mapper/ShoppingCartMapper.java | 7 +++++ .../java/com/sky/service/OrderService.java | 7 +++++ .../sky/service/impl/OrderServiceImpl.java | 28 +++++++++++++++++++ .../main/resources/mapper/ShoppingCart.xml | 10 +++++++ 5 files changed, 65 insertions(+) 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 b0f2ed4..a713393 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 @@ -107,4 +107,17 @@ public class OrderController { orderService.userCancelById(id); return Result.success(); } + + /** + * 再来一单 + * + * @param id 订单id + * @return Result + */ + @ApiOperation("再来一单") + @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 8df3347..18f5045 100644 --- a/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java @@ -42,4 +42,11 @@ public interface ShoppingCartMapper { * @param id 购物车中id */ void deleteById(Long id); + + /** + * 将购物车对象批量添加到数据库 + * + * @param shoppingCartList List + */ + 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 1a27255..d1e7d9d 100644 --- a/sky-server/src/main/java/com/sky/service/OrderService.java +++ b/sky-server/src/main/java/com/sky/service/OrderService.java @@ -62,4 +62,11 @@ public interface OrderService { * @param id 订单id */ void userCancelById(Long id); + + /** + * 再来一单 + * + * @param id 订单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 68b10a1..c34850b 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 @@ -31,6 +31,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Service @Slf4j @@ -270,6 +271,33 @@ public class OrderServiceImpl implements OrderService { orders.setCancelTime(LocalDateTime.now()); orderMapper.update(orders); } + + /** + * 再来一单 + * + * @param id 订单id + */ + @Override + public void repetition(Long id) { + // 查询当前用户id + Long userId = BaseContext.getCurrentId(); + // 根据订单id查询当前订单详情 + List orderDetailList = orderDetailMapper.getByOrderId(id); + // 将订单详情对象转换为购物车对象 + List shoppingCartList = orderDetailList.stream().map(x -> { + ShoppingCart shoppingCart = new ShoppingCart(); + + // 将原订单详情里面的菜品信息重新复制到购物车对象中 + BeanUtils.copyProperties(x, shoppingCart, "id"); + shoppingCart.setUserId(userId); + shoppingCart.setCreateTime(LocalDateTime.now()); + + return shoppingCart; + }).collect(Collectors.toList()); + + // 将购物车对象批量添加到数据库 + shoppingCartMapper.insertBatch(shoppingCartList); + } } diff --git a/sky-server/src/main/resources/mapper/ShoppingCart.xml b/sky-server/src/main/resources/mapper/ShoppingCart.xml index 42e9c65..85f0fba 100644 --- a/sky-server/src/main/resources/mapper/ShoppingCart.xml +++ b/sky-server/src/main/resources/mapper/ShoppingCart.xml @@ -9,6 +9,16 @@ #{createTime}); + + + 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}) + + + update shopping_cart