diff --git a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java index a685cbf4..53aaf5ad 100644 --- a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java +++ b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java @@ -81,8 +81,14 @@ public class BuyOrderController { @Autowired private SysConfigService sysConfigService; + @RequestMapping(value = "/decomposeShipment", method = RequestMethod.GET) + public R decomposeShipment(@RequestParam("userId") Integer userId) { + Map> result = buyOrderService.decomposeShipment(userId); + return R.ok().put("result", result); + } + // TODO 新版本上线后废弃 @RequestMapping("/list") public R list(@RequestParam Map params) throws Exception { PageUtils page = buyOrderService.list(params); @@ -299,6 +305,7 @@ public class BuyOrderController { /** * 获取订单详情 + * TODO 新版本上线后删除 * * @param orderId * @return @@ -467,10 +474,19 @@ public class BuyOrderController { return BigDecimal.ZERO; } - @RequestMapping("/modifyOrderAddress") - public R modifyOrderAddress(@RequestBody ModifyOrderAddressRequestVo requestVo) { + @RequestMapping("/modifyConsigneeAddress") + public R modifyConsigneeAddress(@RequestBody ModifyOrderAddressRequestVo requestVo) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_sn", requestVo.getOrderSn()); + BuyOrder buyOrder = buyOrderService.getOne(queryWrapper); + buyOrder.setShippingUser(requestVo.getConsigneeName()); + buyOrder.setUserPhone(requestVo.getConsigneeMobile()); + buyOrder.setProvince(requestVo.getProvince()); + buyOrder.setCity(requestVo.getCity()); + buyOrder.setDistrict(requestVo.getCounty()); + buyOrder.setAddress(requestVo.getAddress()); + buyOrder.setAddressModified(1); + buyOrderService.updateById(buyOrder); return R.ok(); } @@ -557,4 +573,5 @@ public class BuyOrderController { return message; }; } + } diff --git a/src/main/java/com/peanut/modules/book/entity/BuyOrder.java b/src/main/java/com/peanut/modules/book/entity/BuyOrder.java index c2f89d9e..19bd1ef3 100644 --- a/src/main/java/com/peanut/modules/book/entity/BuyOrder.java +++ b/src/main/java/com/peanut/modules/book/entity/BuyOrder.java @@ -173,4 +173,6 @@ public class BuyOrder implements Serializable { @TableField(exist = false) private MyUserEntity user; + + private int addressModified; } diff --git a/src/main/java/com/peanut/modules/book/service/BuyOrderService.java b/src/main/java/com/peanut/modules/book/service/BuyOrderService.java index d7fb7ffc..bed65e79 100644 --- a/src/main/java/com/peanut/modules/book/service/BuyOrderService.java +++ b/src/main/java/com/peanut/modules/book/service/BuyOrderService.java @@ -51,5 +51,7 @@ public interface BuyOrderService extends IService { BuyOrderResponseVo orderDetail(String orderSn); + Map> decomposeShipment(Integer userId); + } \ No newline at end of file diff --git a/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java index 9cc51121..d186c32f 100644 --- a/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java @@ -17,10 +17,7 @@ import com.peanut.modules.book.service.*; import com.peanut.modules.book.vo.ExpressOrderResponseVo; import com.peanut.modules.book.vo.UserOrderVo; import com.peanut.modules.book.vo.request.BuyOrderListRequestVo; -import com.peanut.modules.book.vo.response.BuyOrderResponseVo; -import com.peanut.modules.book.vo.response.ConsigneeVo; -import com.peanut.modules.book.vo.response.ExpressResponseVo; -import com.peanut.modules.book.vo.response.GoodsResponseVo; +import com.peanut.modules.book.vo.response.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -229,6 +226,25 @@ public class BuyOrderServiceImpl extends ServiceImpl impl return userOrderVoList; } + public Map> decomposeShipment(Integer userId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("del_flag", 0); + queryWrapper.eq("userId", userId); + queryWrapper.eq("address_modified", 0); + List buyOrderList = list(queryWrapper); + Map> result = new HashMap<>(); + for (BuyOrder buyOrder : buyOrderList) { + if (result.containsKey(buyOrder.getAddressId())) { + List orderSnList = result.get(buyOrder.getAddressId()); + orderSnList.add(buyOrder.getOrderSn()); + } else { + List orderSnList = new ArrayList<>(); + result.put(buyOrder.getAddressId(), orderSnList); + } + } + return result; + } + /** * 查询所有订单是否有可合并 * @@ -298,6 +314,14 @@ public class BuyOrderServiceImpl extends ServiceImpl impl List buyOrderList = list(buyOrderQueryWrapper); for (BuyOrder buyOrder : buyOrderList) { BuyOrderResponseVo responseVo = new BuyOrderResponseVo(); + Integer userId = buyOrder.getUserId(); + QueryWrapper userEntityQueryWrapper = new QueryWrapper<>(); + userEntityQueryWrapper.eq("id",userId); + MyUserEntity user = myUserService.getOne(userEntityQueryWrapper); + UserResponseVo userResponseVo = new UserResponseVo(); + userResponseVo.setUserPhone(user.getTel()); + userResponseVo.setUserName(user.getName()); + responseVo.setUserInfo(userResponseVo); responseVo.setOrderPrice(buyOrder.getOrderMoney()); BeanUtil.copyProperties(buyOrder, responseVo); ConsigneeVo consigneeVo = new ConsigneeVo(); diff --git a/src/main/java/com/peanut/modules/book/vo/request/ModifyOrderAddressRequestVo.java b/src/main/java/com/peanut/modules/book/vo/request/ModifyOrderAddressRequestVo.java index 7512d094..4a63ce0c 100644 --- a/src/main/java/com/peanut/modules/book/vo/request/ModifyOrderAddressRequestVo.java +++ b/src/main/java/com/peanut/modules/book/vo/request/ModifyOrderAddressRequestVo.java @@ -33,4 +33,8 @@ public class ModifyOrderAddressRequestVo { * 收货人电话 */ private String consigneeMobile; + /** + * 详细地址 + */ + private String address; } diff --git a/src/main/java/com/peanut/modules/book/vo/response/BuyOrderResponseVo.java b/src/main/java/com/peanut/modules/book/vo/response/BuyOrderResponseVo.java index 531750ea..afdb8bd1 100644 --- a/src/main/java/com/peanut/modules/book/vo/response/BuyOrderResponseVo.java +++ b/src/main/java/com/peanut/modules/book/vo/response/BuyOrderResponseVo.java @@ -37,6 +37,18 @@ public class BuyOrderResponseVo { * 订单金额 */ private BigDecimal orderPrice; + /** + * 实际金额 + */ + private BigDecimal realPrice; + /** + * 扣减金额 + */ + private BigDecimal districtPrice; + /** + * 运费 + */ + private BigDecimal shippingPrice; /** * 商品列表 */ @@ -45,4 +57,12 @@ public class BuyOrderResponseVo { * 收货人信息 */ private ConsigneeVo consignee; + /** + * 优惠券 + */ + private CouponResponseVo coupon; + /** + * 用户信息 + */ + private UserResponseVo userInfo; } diff --git a/src/main/java/com/peanut/modules/book/vo/response/CouponResponseVo.java b/src/main/java/com/peanut/modules/book/vo/response/CouponResponseVo.java new file mode 100644 index 00000000..3e2db3e4 --- /dev/null +++ b/src/main/java/com/peanut/modules/book/vo/response/CouponResponseVo.java @@ -0,0 +1,12 @@ +package com.peanut.modules.book.vo.response; + +import lombok.Data; + +/** + * @Description: 优惠券 Value Object + * @Author: Cauchy + * @CreateTime: 2023/10/20 + */ +@Data +public class CouponResponseVo { +} diff --git a/src/main/java/com/peanut/modules/book/vo/response/UserResponseVo.java b/src/main/java/com/peanut/modules/book/vo/response/UserResponseVo.java new file mode 100644 index 00000000..6454c8c3 --- /dev/null +++ b/src/main/java/com/peanut/modules/book/vo/response/UserResponseVo.java @@ -0,0 +1,20 @@ +package com.peanut.modules.book.vo.response; + +import lombok.Data; + +/** + * @Description: 用户 Value Object + * @Author: Cauchy + * @CreateTime: 2023/10/20 + */ +@Data +public class UserResponseVo { + /** + * 用户姓名 + */ + private String userName; + /** + * 用户电话 + */ + private String userPhone; +}