Commit a159a983a2da801b654c84f74f34645e073902fd

Authored by YunaiV
1 parent 159c74ce

订单:

1. 拆分读写 OrderService,避免单 Service 逻辑过重。
Showing 11 changed files with 252 additions and 254 deletions
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApiImpl.java
1 1 package cn.iocoder.yudao.module.trade.api.order;
2 2  
3 3 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
4   -import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
  4 +import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService;
5 5 import org.springframework.stereotype.Service;
6 6 import org.springframework.validation.annotation.Validated;
7 7  
... ... @@ -20,12 +20,12 @@ import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.ORDER_ITEM_
20 20 public class TradeOrderApiImpl implements TradeOrderApi {
21 21  
22 22 @Resource
23   - private TradeOrderService tradeOrderService;
  23 + private TradeOrderQueryService tradeOrderQueryService;
24 24  
25 25 @Override
26 26 public Long validateOrder(Long userId, Long orderItemId) {
27 27 // 校验订单项,订单项存在订单就存在
28   - TradeOrderItemDO item = tradeOrderService.getOrderItem(userId, orderItemId);
  28 + TradeOrderItemDO item = tradeOrderQueryService.getOrderItem(userId, orderItemId);
29 29 if (item == null) {
30 30 throw exception(ORDER_ITEM_NOT_FOUND);
31 31 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java
... ... @@ -14,7 +14,8 @@ import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReq
14 14 import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert;
15 15 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
16 16 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
17   -import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
  17 +import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService;
  18 +import cn.iocoder.yudao.module.trade.service.order.TradeOrderUpdateService;
18 19 import io.swagger.v3.oas.annotations.Operation;
19 20 import io.swagger.v3.oas.annotations.Parameter;
20 21 import io.swagger.v3.oas.annotations.tags.Tag;
... ... @@ -39,7 +40,9 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
39 40 public class TradeOrderController {
40 41  
41 42 @Resource
42   - private TradeOrderService tradeOrderService;
  43 + private TradeOrderUpdateService tradeOrderUpdateService;
  44 + @Resource
  45 + private TradeOrderQueryService tradeOrderQueryService;
43 46  
44 47 @Resource
45 48 private ProductPropertyValueApi productPropertyValueApi;
... ... @@ -51,7 +54,7 @@ public class TradeOrderController {
51 54 @PreAuthorize("@ss.hasPermission('trade:order:query')")
52 55 public CommonResult<PageResult<TradeOrderPageItemRespVO>> getOrderPage(TradeOrderPageReqVO reqVO) {
53 56 // 查询订单
54   - PageResult<TradeOrderDO> pageResult = tradeOrderService.getOrderPage(reqVO);
  57 + PageResult<TradeOrderDO> pageResult = tradeOrderQueryService.getOrderPage(reqVO);
55 58 if (CollUtil.isEmpty(pageResult.getList())) {
56 59 return success(PageResult.empty());
57 60 }
... ... @@ -59,7 +62,7 @@ public class TradeOrderController {
59 62 // 查询用户信息
60 63 Map<Long, MemberUserRespDTO> userMap = memberUserApi.getUserMap(convertSet(pageResult.getList(), TradeOrderDO::getUserId));;
61 64 // 查询订单项
62   - List<TradeOrderItemDO> orderItems = tradeOrderService.getOrderItemListByOrderId(
  65 + List<TradeOrderItemDO> orderItems = tradeOrderQueryService.getOrderItemListByOrderId(
63 66 convertSet(pageResult.getList(), TradeOrderDO::getId));
64 67 // 查询商品属性
65 68 List<ProductPropertyValueDetailRespDTO> propertyValueDetails = productPropertyValueApi
... ... @@ -74,9 +77,9 @@ public class TradeOrderController {
74 77 @PreAuthorize("@ss.hasPermission('trade:order:query')")
75 78 public CommonResult<TradeOrderDetailRespVO> getOrderDetail(@RequestParam("id") Long id) {
76 79 // 查询订单
77   - TradeOrderDO order = tradeOrderService.getOrder(id);
  80 + TradeOrderDO order = tradeOrderQueryService.getOrder(id);
78 81 // 查询订单项
79   - List<TradeOrderItemDO> orderItems = tradeOrderService.getOrderItemListByOrderId(id);
  82 + List<TradeOrderItemDO> orderItems = tradeOrderQueryService.getOrderItemListByOrderId(id);
80 83 // 查询商品属性
81 84 List<ProductPropertyValueDetailRespDTO> propertyValueDetails = productPropertyValueApi
82 85 .getPropertyValueDetailList(TradeOrderConvert.INSTANCE.convertPropertyValueIds(orderItems));
... ... @@ -90,7 +93,7 @@ public class TradeOrderController {
90 93 @Operation(summary = "发货订单")
91 94 @PreAuthorize("@ss.hasPermission('trade:order:delivery')")
92 95 public CommonResult<Boolean> deliveryOrder(@RequestBody TradeOrderDeliveryReqVO deliveryReqVO) {
93   - tradeOrderService.deliveryOrder(getLoginUserId(), deliveryReqVO);
  96 + tradeOrderUpdateService.deliveryOrder(getLoginUserId(), deliveryReqVO);
94 97 return success(true);
95 98 }
96 99  
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/AppTradeOrderController.java
... ... @@ -17,7 +17,7 @@ import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
17 17 import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
18 18 import cn.iocoder.yudao.module.trade.service.delivery.DeliveryExpressService;
19 19 import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService;
20   -import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
  20 +import cn.iocoder.yudao.module.trade.service.order.TradeOrderUpdateService;
21 21 import com.google.common.collect.Maps;
22 22 import io.swagger.v3.oas.annotations.Operation;
23 23 import io.swagger.v3.oas.annotations.Parameter;
... ... @@ -44,7 +44,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
44 44 public class AppTradeOrderController {
45 45  
46 46 @Resource
47   - private TradeOrderService tradeOrderService;
  47 + private TradeOrderUpdateService tradeOrderUpdateService;
48 48 @Resource
49 49 private TradeOrderQueryService tradeOrderQueryService;
50 50 @Resource
... ... @@ -60,21 +60,21 @@ public class AppTradeOrderController {
60 60 @Operation(summary = "获得订单结算信息")
61 61 @PreAuthenticated
62 62 public CommonResult<AppTradeOrderSettlementRespVO> settlementOrder(@Valid AppTradeOrderSettlementReqVO settlementReqVO) {
63   - return success(tradeOrderService.settlementOrder(getLoginUserId(), settlementReqVO));
  63 + return success(tradeOrderUpdateService.settlementOrder(getLoginUserId(), settlementReqVO));
64 64 }
65 65  
66 66 @PostMapping("/create")
67 67 @Operation(summary = "创建订单")
68 68 @PreAuthenticated
69 69 public CommonResult<AppTradeOrderCreateRespVO> createOrder(@RequestBody AppTradeOrderCreateReqVO createReqVO) {
70   - TradeOrderDO order = tradeOrderService.createOrder(getLoginUserId(), getClientIP(), createReqVO);
  70 + TradeOrderDO order = tradeOrderUpdateService.createOrder(getLoginUserId(), getClientIP(), createReqVO);
71 71 return success(new AppTradeOrderCreateRespVO().setId(order.getId()).setPayOrderId(order.getPayOrderId()));
72 72 }
73 73  
74 74 @PostMapping("/update-paid")
75 75 @Operation(summary = "更新订单为已支付") // 由 pay-module 支付服务,进行回调,可见 PayNotifyJob
76 76 public CommonResult<Boolean> updateOrderPaid(@RequestBody PayOrderNotifyReqDTO notifyReqDTO) {
77   - tradeOrderService.updateOrderPaid(Long.valueOf(notifyReqDTO.getMerchantOrderId()),
  77 + tradeOrderUpdateService.updateOrderPaid(Long.valueOf(notifyReqDTO.getMerchantOrderId()),
78 78 notifyReqDTO.getPayOrderId());
79 79 return success(true);
80 80 }
... ... @@ -84,13 +84,13 @@ public class AppTradeOrderController {
84 84 @Parameter(name = "id", description = "交易订单编号")
85 85 public CommonResult<AppTradeOrderDetailRespVO> getOrder(@RequestParam("id") Long id) {
86 86 // 查询订单
87   - TradeOrderDO order = tradeOrderService.getOrder(getLoginUserId(), id);
  87 + TradeOrderDO order = tradeOrderQueryService.getOrder(getLoginUserId(), id);
88 88 if (order == null) {
89 89 return success(null);
90 90 }
91 91  
92 92 // 查询订单项
93   - List<TradeOrderItemDO> orderItems = tradeOrderService.getOrderItemListByOrderId(order.getId());
  93 + List<TradeOrderItemDO> orderItems = tradeOrderQueryService.getOrderItemListByOrderId(order.getId());
94 94 // 查询商品属性
95 95 List<ProductPropertyValueDetailRespDTO> propertyValueDetails = productPropertyValueApi
96 96 .getPropertyValueDetailList(TradeOrderConvert.INSTANCE.convertPropertyValueIds(orderItems));
... ... @@ -114,9 +114,9 @@ public class AppTradeOrderController {
114 114 @Operation(summary = "获得交易订单分页")
115 115 public CommonResult<PageResult<AppTradeOrderPageItemRespVO>> getOrderPage(AppTradeOrderPageReqVO reqVO) {
116 116 // 查询订单
117   - PageResult<TradeOrderDO> pageResult = tradeOrderService.getOrderPage(getLoginUserId(), reqVO);
  117 + PageResult<TradeOrderDO> pageResult = tradeOrderQueryService.getOrderPage(getLoginUserId(), reqVO);
118 118 // 查询订单项
119   - List<TradeOrderItemDO> orderItems = tradeOrderService.getOrderItemListByOrderId(
  119 + List<TradeOrderItemDO> orderItems = tradeOrderQueryService.getOrderItemListByOrderId(
120 120 convertSet(pageResult.getList(), TradeOrderDO::getId));
121 121 // 查询商品属性
122 122 List<ProductPropertyValueDetailRespDTO> propertyValueDetails = productPropertyValueApi
... ... @@ -130,18 +130,18 @@ public class AppTradeOrderController {
130 130 public CommonResult<Map<String, Long>> getOrderCount() {
131 131 Map<String, Long> orderCount = Maps.newLinkedHashMapWithExpectedSize(5);
132 132 // 全部
133   - orderCount.put("allCount", tradeOrderService.getOrderCount(getLoginUserId(), null, null));
  133 + orderCount.put("allCount", tradeOrderQueryService.getOrderCount(getLoginUserId(), null, null));
134 134 // 待付款(未支付)
135   - orderCount.put("unpaidCount", tradeOrderService.getOrderCount(getLoginUserId(),
  135 + orderCount.put("unpaidCount", tradeOrderQueryService.getOrderCount(getLoginUserId(),
136 136 TradeOrderStatusEnum.UNPAID.getStatus(), null));
137 137 // 待发货
138   - orderCount.put("undeliveredCount", tradeOrderService.getOrderCount(getLoginUserId(),
  138 + orderCount.put("undeliveredCount", tradeOrderQueryService.getOrderCount(getLoginUserId(),
139 139 TradeOrderStatusEnum.UNDELIVERED.getStatus(), null));
140 140 // 待收货
141   - orderCount.put("deliveredCount", tradeOrderService.getOrderCount(getLoginUserId(),
  141 + orderCount.put("deliveredCount", tradeOrderQueryService.getOrderCount(getLoginUserId(),
142 142 TradeOrderStatusEnum.DELIVERED.getStatus(), null));
143 143 // 待评价
144   - orderCount.put("uncommentedCount", tradeOrderService.getOrderCount(getLoginUserId(),
  144 + orderCount.put("uncommentedCount", tradeOrderQueryService.getOrderCount(getLoginUserId(),
145 145 TradeOrderStatusEnum.COMPLETED.getStatus(), false));
146 146 return success(orderCount);
147 147 }
... ... @@ -150,7 +150,7 @@ public class AppTradeOrderController {
150 150 @Operation(summary = "确认交易订单收货")
151 151 @Parameter(name = "id", description = "交易订单编号")
152 152 public CommonResult<Boolean> takeOrder(@RequestParam("id") Long id) {
153   - tradeOrderService.receiveOrder(getLoginUserId(), id);
  153 + tradeOrderUpdateService.receiveOrder(getLoginUserId(), id);
154 154 return success(true);
155 155 }
156 156  
... ... @@ -176,14 +176,14 @@ public class AppTradeOrderController {
176 176 @Operation(summary = "获得交易订单项")
177 177 @Parameter(name = "id", description = "交易订单项编号")
178 178 public CommonResult<AppTradeOrderItemRespVO> getOrderItem(@RequestParam("id") Long id) {
179   - TradeOrderItemDO item = tradeOrderService.getOrderItem(getLoginUserId(), id);
  179 + TradeOrderItemDO item = tradeOrderQueryService.getOrderItem(getLoginUserId(), id);
180 180 return success(TradeOrderConvert.INSTANCE.convert03(item));
181 181 }
182 182  
183 183 @PostMapping("/item/create-comment")
184 184 @Operation(summary = "创建交易订单项的评价")
185 185 public CommonResult<Long> createOrderItemComment(@RequestBody AppTradeOrderItemCommentCreateReqVO createReqVO) {
186   - return success(tradeOrderService.createOrderItemComment(createReqVO));
  186 + return success(tradeOrderUpdateService.createOrderItemComment(getLoginUserId(), createReqVO));
187 187 }
188 188  
189 189 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderItemMapper.java
... ... @@ -31,9 +31,10 @@ public interface TradeOrderItemMapper extends BaseMapperX&lt;TradeOrderItemDO&gt; {
31 31 .eq(TradeOrderItemDO::getSkuId, skuIds));
32 32 }
33 33  
34   - default TradeOrderItemDO selectOrderItemByIdAndUserId(Long orderItemId, Long loginUserId) {
  34 + default TradeOrderItemDO selectByIdAndUserId(Long orderItemId, Long loginUserId) {
35 35 return selectOne(new LambdaQueryWrapperX<TradeOrderItemDO>()
36 36 .eq(TradeOrderItemDO::getId, orderItemId)
37 37 .eq(TradeOrderItemDO::getUserId, loginUserId));
38 38 }
  39 +
39 40 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java
... ... @@ -27,7 +27,8 @@ import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
27 27 import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogCreateReqDTO;
28 28 import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.service.AfterSaleLogService;
29 29 import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
30   -import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
  30 +import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService;
  31 +import cn.iocoder.yudao.module.trade.service.order.TradeOrderUpdateService;
31 32 import lombok.extern.slf4j.Slf4j;
32 33 import org.springframework.scheduling.annotation.Async;
33 34 import org.springframework.stereotype.Service;
... ... @@ -54,7 +55,9 @@ import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*;
54 55 public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSaleLogService {
55 56  
56 57 @Resource
57   - private TradeOrderService tradeOrderService;
  58 + private TradeOrderUpdateService tradeOrderUpdateService;
  59 + @Resource
  60 + private TradeOrderQueryService tradeOrderQueryService;
58 61  
59 62 @Resource
60 63 private TradeAfterSaleMapper tradeAfterSaleMapper;
... ... @@ -92,7 +95,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
92 95 */
93 96 private TradeOrderItemDO validateOrderItemApplicable(Long userId, AppTradeAfterSaleCreateReqVO createReqVO) {
94 97 // 校验订单项存在
95   - TradeOrderItemDO orderItem = tradeOrderService.getOrderItem(userId, createReqVO.getOrderItemId());
  98 + TradeOrderItemDO orderItem = tradeOrderQueryService.getOrderItem(userId, createReqVO.getOrderItemId());
96 99 if (orderItem == null) {
97 100 throw exception(ORDER_ITEM_NOT_FOUND);
98 101 }
... ... @@ -108,7 +111,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
108 111 }
109 112  
110 113 // 校验订单存在
111   - TradeOrderDO order = tradeOrderService.getOrder(userId, orderItem.getOrderId());
  114 + TradeOrderDO order = tradeOrderQueryService.getOrder(userId, orderItem.getOrderId());
112 115 if (order == null) {
113 116 throw exception(ORDER_NOT_FOUND);
114 117 }
... ... @@ -136,7 +139,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
136 139 afterSale.setNo(RandomUtil.randomString(10)); // TODO 芋艿:优化 no 生成逻辑
137 140 afterSale.setStatus(TradeAfterSaleStatusEnum.APPLY.getStatus());
138 141 // 标记是售中还是售后
139   - TradeOrderDO order = tradeOrderService.getOrder(orderItem.getUserId(), orderItem.getOrderId());
  142 + TradeOrderDO order = tradeOrderQueryService.getOrder(orderItem.getUserId(), orderItem.getOrderId());
140 143 afterSale.setOrderNo(order.getNo()); // 记录 orderNo 订单流水,方便后续检索
141 144 afterSale.setType(TradeOrderStatusEnum.isCompleted(order.getStatus())
142 145 ? TradeAfterSaleTypeEnum.AFTER_SALE.getType() : TradeAfterSaleTypeEnum.IN_SALE.getType());
... ... @@ -144,7 +147,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
144 147 tradeAfterSaleMapper.insert(afterSale);
145 148  
146 149 // 更新交易订单项的售后状态
147   - tradeOrderService.updateOrderItemAfterSaleStatus(orderItem.getId(),
  150 + tradeOrderUpdateService.updateOrderItemAfterSaleStatus(orderItem.getId(),
148 151 TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(),
149 152 TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(), null);
150 153  
... ... @@ -196,7 +199,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
196 199 // TODO 发送售后消息
197 200  
198 201 // 更新交易订单项的售后状态为【未申请】
199   - tradeOrderService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
  202 + tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
200 203 TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),
201 204 TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), null);
202 205 }
... ... @@ -291,7 +294,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
291 294 // TODO 发送售后消息
292 295  
293 296 // 更新交易订单项的售后状态为【未申请】
294   - tradeOrderService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
  297 + tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
295 298 TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),
296 299 TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), null);
297 300 }
... ... @@ -339,7 +342,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
339 342 // TODO 发送售后消息
340 343  
341 344 // 更新交易订单项的售后状态为【已完成】
342   - tradeOrderService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
  345 + tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
343 346 TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),
344 347 TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus(), afterSale.getRefundPrice());
345 348 }
... ... @@ -381,7 +384,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
381 384 // TODO 发送售后消息
382 385  
383 386 // 更新交易订单项的售后状态为【未申请】
384   - tradeOrderService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
  387 + tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
385 388 TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),
386 389 TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), null);
387 390 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryService.java
1 1 package cn.iocoder.yudao.module.trade.service.order;
2 2  
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
  5 +import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO;
  6 +import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
  7 +import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
3 8 import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO;
4 9  
  10 +import java.util.Collection;
5 11 import java.util.List;
6 12  
  13 +import static java.util.Collections.singleton;
  14 +
7 15 /**
8 16 * 交易订单【读】 Service 接口
9 17 *
... ... @@ -11,6 +19,52 @@ import java.util.List;
11 19 */
12 20 public interface TradeOrderQueryService {
13 21  
  22 + // =================== Order ===================
  23 +
  24 + /**
  25 + * 获得指定编号的交易订单
  26 + *
  27 + * @param id 交易订单编号
  28 + * @return 交易订单
  29 + */
  30 + TradeOrderDO getOrder(Long id);
  31 +
  32 + /**
  33 + * 获得指定用户,指定的交易订单
  34 + *
  35 + * @param userId 用户编号
  36 + * @param id 交易订单编号
  37 + * @return 交易订单
  38 + */
  39 + TradeOrderDO getOrder(Long userId, Long id);
  40 +
  41 + /**
  42 + * 【管理员】获得交易订单分页
  43 + *
  44 + * @param reqVO 分页请求
  45 + * @return 交易订单
  46 + */
  47 + PageResult<TradeOrderDO> getOrderPage(TradeOrderPageReqVO reqVO);
  48 +
  49 + /**
  50 + * 【会员】获得交易订单分页
  51 + *
  52 + * @param userId 用户编号
  53 + * @param reqVO 分页请求
  54 + * @return 交易订单
  55 + */
  56 + PageResult<TradeOrderDO> getOrderPage(Long userId, AppTradeOrderPageReqVO reqVO);
  57 +
  58 + /**
  59 + * 【会员】获得交易订单数量
  60 + *
  61 + * @param userId 用户编号
  62 + * @param status 订单状态。如果为空,则不进行筛选
  63 + * @param commonStatus 评价状态。如果为空,则不进行筛选
  64 + * @return 订单数量
  65 + */
  66 + Long getOrderCount(Long userId, Integer status, Boolean commonStatus);
  67 +
14 68 /**
15 69 * 获得订单的物流轨迹
16 70 *
... ... @@ -20,4 +74,41 @@ public interface TradeOrderQueryService {
20 74 */
21 75 List<ExpressTrackRespDTO> getExpressTrackList(Long id, Long userId);
22 76  
  77 + // =================== Order Item ===================
  78 +
  79 + /**
  80 + * 获得指定用户,指定的交易订单项
  81 + *
  82 + * @param userId 用户编号
  83 + * @param itemId 交易订单项编号
  84 + * @return 交易订单项
  85 + */
  86 + TradeOrderItemDO getOrderItem(Long userId, Long itemId);
  87 +
  88 + /**
  89 + * 根据交易订单项编号数组,查询交易订单项
  90 + *
  91 + * @param ids 交易订单项编号数组
  92 + * @return 交易订单项数组
  93 + */
  94 + List<TradeOrderItemDO> getOrderItemList(Collection<Long> ids);
  95 +
  96 + /**
  97 + * 根据交易订单编号,查询交易订单项
  98 + *
  99 + * @param orderId 交易订单编号
  100 + * @return 交易订单项数组
  101 + */
  102 + default List<TradeOrderItemDO> getOrderItemListByOrderId(Long orderId) {
  103 + return getOrderItemListByOrderId(singleton(orderId));
  104 + }
  105 +
  106 + /**
  107 + * 根据交易订单编号数组,查询交易订单项
  108 + *
  109 + * @param orderIds 交易订单编号数组
  110 + * @return 交易订单项数组
  111 + */
  112 + List<TradeOrderItemDO> getOrderItemListByOrderId(Collection<Long> orderIds);
  113 +
23 114 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryServiceImpl.java
1 1 package cn.iocoder.yudao.module.trade.service.order;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.ObjectUtil;
  5 +import cn.hutool.core.util.StrUtil;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  7 +import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
  8 +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
  9 +import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
  10 +import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO;
3 11 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressDO;
4 12 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
  13 +import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
  14 +import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderItemMapper;
5 15 import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderMapper;
6 16 import cn.iocoder.yudao.module.trade.framework.delivery.core.client.ExpressClientFactory;
7 17 import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO;
... ... @@ -10,10 +20,10 @@ import cn.iocoder.yudao.module.trade.service.delivery.DeliveryExpressService;
10 20 import org.springframework.stereotype.Service;
11 21  
12 22 import javax.annotation.Resource;
13   -import java.util.Collections;
14   -import java.util.List;
  23 +import java.util.*;
15 24  
16 25 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  26 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
17 27 import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.EXPRESS_NOT_EXISTS;
18 28 import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.ORDER_NOT_FOUND;
19 29  
... ... @@ -30,10 +40,64 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
30 40  
31 41 @Resource
32 42 private TradeOrderMapper tradeOrderMapper;
  43 + @Resource
  44 + private TradeOrderItemMapper tradeOrderItemMapper;
33 45  
34 46 @Resource
35 47 private DeliveryExpressService deliveryExpressService;
36 48  
  49 + @Resource
  50 + private MemberUserApi memberUserApi;
  51 +
  52 + // =================== Order ===================
  53 +
  54 + @Override
  55 + public TradeOrderDO getOrder(Long id) {
  56 + return tradeOrderMapper.selectById(id);
  57 + }
  58 +
  59 + @Override
  60 + public TradeOrderDO getOrder(Long userId, Long id) {
  61 + TradeOrderDO order = tradeOrderMapper.selectById(id);
  62 + if (order != null
  63 + && ObjectUtil.notEqual(order.getUserId(), userId)) {
  64 + return null;
  65 + }
  66 + return order;
  67 + }
  68 +
  69 + @Override
  70 + public PageResult<TradeOrderDO> getOrderPage(TradeOrderPageReqVO reqVO) {
  71 + // 获得 userId 相关的查询
  72 + Set<Long> userIds = new HashSet<>();
  73 + if (StrUtil.isNotEmpty(reqVO.getUserMobile())) {
  74 + MemberUserRespDTO user = memberUserApi.getUserByMobile(reqVO.getUserMobile());
  75 + if (user == null) { // 没查询到用户,说明肯定也没他的订单
  76 + return new PageResult<>();
  77 + }
  78 + userIds.add(user.getId());
  79 + }
  80 + if (StrUtil.isNotEmpty(reqVO.getUserNickname())) {
  81 + List<MemberUserRespDTO> users = memberUserApi.getUserListByNickname(reqVO.getUserNickname());
  82 + if (CollUtil.isEmpty(users)) { // 没查询到用户,说明肯定也没他的订单
  83 + return new PageResult<>();
  84 + }
  85 + userIds.addAll(convertSet(users, MemberUserRespDTO::getId));
  86 + }
  87 + // 分页查询
  88 + return tradeOrderMapper.selectPage(reqVO, userIds);
  89 + }
  90 +
  91 + @Override
  92 + public PageResult<TradeOrderDO> getOrderPage(Long userId, AppTradeOrderPageReqVO reqVO) {
  93 + return tradeOrderMapper.selectPage(reqVO, userId);
  94 + }
  95 +
  96 + @Override
  97 + public Long getOrderCount(Long userId, Integer status, Boolean commentStatus) {
  98 + return tradeOrderMapper.selectCountByUserIdAndStatus(userId, status, commentStatus);
  99 + }
  100 +
37 101 @Override
38 102 public List<ExpressTrackRespDTO> getExpressTrackList(Long id, Long userId) {
39 103 // 查询订单
... ... @@ -57,4 +121,29 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
57 121 .setPhone(order.getReceiverMobile()));
58 122 }
59 123  
  124 + // =================== Order Item ===================
  125 +
  126 + @Override
  127 + public TradeOrderItemDO getOrderItem(Long userId, Long itemId) {
  128 + TradeOrderItemDO orderItem = tradeOrderItemMapper.selectById(itemId);
  129 + if (orderItem != null
  130 + && ObjectUtil.notEqual(orderItem.getUserId(), userId)) {
  131 + return null;
  132 + }
  133 + return orderItem;
  134 + }
  135 +
  136 + @Override
  137 + public List<TradeOrderItemDO> getOrderItemList(Collection<Long> ids) {
  138 + return tradeOrderItemMapper.selectBatchIds(ids);
  139 + }
  140 +
  141 + @Override
  142 + public List<TradeOrderItemDO> getOrderItemListByOrderId(Collection<Long> orderIds) {
  143 + if (CollUtil.isEmpty(orderIds)) {
  144 + return Collections.emptyList();
  145 + }
  146 + return tradeOrderItemMapper.selectListByOrderId(orderIds);
  147 + }
  148 +
60 149 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java renamed to yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateService.java
1 1 package cn.iocoder.yudao.module.trade.service.order;
2 2  
3   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 3 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
5   -import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
6 4 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
7   -import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO;
8 5 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO;
9 6 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO;
10 7 import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO;
11 8 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
12   -import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
13   -
14   -import java.util.Collection;
15   -import java.util.List;
16   -
17   -import static java.util.Collections.singleton;
18 9  
19 10 /**
20   - * 交易订单 Service 接口
  11 + * 交易订单【写】Service 接口
21 12 *
22 13 * @author LeeYan9
23 14 * @since 2022-08-26
24 15 */
25   -public interface TradeOrderService {
  16 +public interface TradeOrderUpdateService {
26 17  
27 18 // =================== Order ===================
28 19  
... ... @@ -69,62 +60,9 @@ public interface TradeOrderService {
69 60 */
70 61 void receiveOrder(Long userId, Long id);
71 62  
72   - /**
73   - * 获得指定编号的交易订单
74   - *
75   - * @param id 交易订单编号
76   - * @return 交易订单
77   - */
78   - TradeOrderDO getOrder(Long id);
79   -
80   - /**
81   - * 获得指定用户,指定的交易订单
82   - *
83   - * @param userId 用户编号
84   - * @param id 交易订单编号
85   - * @return 交易订单
86   - */
87   - TradeOrderDO getOrder(Long userId, Long id);
88   -
89   - /**
90   - * 【管理员】获得交易订单分页
91   - *
92   - * @param reqVO 分页请求
93   - * @return 交易订单
94   - */
95   - PageResult<TradeOrderDO> getOrderPage(TradeOrderPageReqVO reqVO);
96   -
97   - /**
98   - * 【会员】获得交易订单分页
99   - *
100   - * @param userId 用户编号
101   - * @param reqVO 分页请求
102   - * @return 交易订单
103   - */
104   - PageResult<TradeOrderDO> getOrderPage(Long userId, AppTradeOrderPageReqVO reqVO);
105   -
106   - /**
107   - * 【会员】获得交易订单数量
108   - *
109   - * @param userId 用户编号
110   - * @param status 订单状态。如果为空,则不进行筛选
111   - * @param commonStatus 评价状态。如果为空,则不进行筛选
112   - * @return 订单数量
113   - */
114   - Long getOrderCount(Long userId, Integer status, Boolean commonStatus);
115   -
116 63 // =================== Order Item ===================
117 64  
118 65 /**
119   - * 获得指定用户,指定的交易订单项
120   - *
121   - * @param userId 用户编号
122   - * @param itemId 交易订单项编号
123   - * @return 交易订单项
124   - */
125   - TradeOrderItemDO getOrderItem(Long userId, Long itemId);
126   -
127   - /**
128 66 * 更新交易订单项的售后状态
129 67 *
130 68 * @param id 交易订单项编号
... ... @@ -136,55 +74,12 @@ public interface TradeOrderService {
136 74 Integer newAfterSaleStatus, Integer refundPrice);
137 75  
138 76 /**
139   - * 根据交易订单项编号数组,查询交易订单项
140   - *
141   - * @param ids 交易订单项编号数组
142   - * @return 交易订单项数组
143   - */
144   - List<TradeOrderItemDO> getOrderItemList(Collection<Long> ids);
145   -
146   - /**
147   - * 根据交易订单编号,查询交易订单项
148   - *
149   - * @param orderId 交易订单编号
150   - * @return 交易订单项数组
151   - */
152   - default List<TradeOrderItemDO> getOrderItemListByOrderId(Long orderId) {
153   - return getOrderItemListByOrderId(singleton(orderId));
154   - }
155   -
156   - /**
157   - * 根据交易订单编号数组,查询交易订单项
158   - *
159   - * @param orderIds 交易订单编号数组
160   - * @return 交易订单项数组
161   - */
162   - List<TradeOrderItemDO> getOrderItemListByOrderId(Collection<Long> orderIds);
163   -
164   - /**
165   - * 得到订单项通过 订单项 id 和用户 id
166   - *
167   - * @param orderItemId 订单项 id
168   - * @param loginUserId 登录用户 id
169   - * @return 得到订单项
170   - */
171   - TradeOrderItemDO getOrderItemByIdAndUserId(Long orderItemId, Long loginUserId);
172   -
173   - /**
174   - * 得到订单通过 id 和 用户 id
175   - *
176   - * @param orderId 订单 id
177   - * @param loginUserId 登录用户 id
178   - * @return 得到订单
179   - */
180   - TradeOrderDO getOrderByIdAndUserId(Long orderId, Long loginUserId);
181   -
182   - /**
183 77 * 创建订单项的评论
184 78 *
  79 + * @param userId 用户编号
185 80 * @param createReqVO 创建请求
186 81 * @return 得到评价 id
187 82 */
188   - Long createOrderItemComment(AppTradeOrderItemCommentCreateReqVO createReqVO);
  83 + Long createOrderItemComment(Long userId, AppTradeOrderItemCommentCreateReqVO createReqVO);
189 84  
190 85 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java renamed to yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
... ... @@ -8,7 +8,6 @@ import cn.hutool.core.util.StrUtil;
8 8 import cn.iocoder.yudao.framework.common.core.KeyValue;
9 9 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
10 10 import cn.iocoder.yudao.framework.common.enums.TerminalEnum;
11   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
12 11 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
13 12 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
14 13 import cn.iocoder.yudao.module.member.api.address.AddressApi;
... ... @@ -31,9 +30,7 @@ import cn.iocoder.yudao.module.promotion.api.coupon.CouponApi;
31 30 import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponUseReqDTO;
32 31 import cn.iocoder.yudao.module.promotion.enums.combination.CombinationRecordStatusEnum;
33 32 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
34   -import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
35 33 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
36   -import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO;
37 34 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO;
38 35 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO;
39 36 import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO;
... ... @@ -61,23 +58,23 @@ import org.springframework.transaction.annotation.Transactional;
61 58  
62 59 import javax.annotation.Resource;
63 60 import java.time.LocalDateTime;
64   -import java.util.*;
  61 +import java.util.List;
  62 +import java.util.Objects;
65 63  
66 64 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
67 65 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
68   -import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
69 66 import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.ORDER_NOT_FOUND;
70 67 import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*;
71 68  
72 69 /**
73   - * 交易订单 Service 实现类
  70 + * 交易订单【写】Service 实现类
74 71 *
75 72 * @author LeeYan9
76 73 * @since 2022-08-26
77 74 */
78 75 @Service
79 76 @Slf4j
80   -public class TradeOrderServiceImpl implements TradeOrderService {
  77 +public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
81 78  
82 79 @Resource
83 80 private TradeOrderMapper tradeOrderMapper;
... ... @@ -514,66 +511,9 @@ public class TradeOrderServiceImpl implements TradeOrderService {
514 511 return order;
515 512 }
516 513  
517   - @Override
518   - public TradeOrderDO getOrder(Long id) {
519   - return tradeOrderMapper.selectById(id);
520   - }
521   -
522   - @Override
523   - public TradeOrderDO getOrder(Long userId, Long id) {
524   - TradeOrderDO order = tradeOrderMapper.selectById(id);
525   - if (order != null
526   - && ObjectUtil.notEqual(order.getUserId(), userId)) {
527   - return null;
528   - }
529   - return order;
530   - }
531   -
532   - @Override
533   - public PageResult<TradeOrderDO> getOrderPage(TradeOrderPageReqVO reqVO) {
534   - // 获得 userId 相关的查询
535   - Set<Long> userIds = new HashSet<>();
536   - if (StrUtil.isNotEmpty(reqVO.getUserMobile())) {
537   - MemberUserRespDTO user = memberUserApi.getUserByMobile(reqVO.getUserMobile());
538   - if (user == null) { // 没查询到用户,说明肯定也没他的订单
539   - return new PageResult<>();
540   - }
541   - userIds.add(user.getId());
542   - }
543   - if (StrUtil.isNotEmpty(reqVO.getUserNickname())) {
544   - List<MemberUserRespDTO> users = memberUserApi.getUserListByNickname(reqVO.getUserNickname());
545   - if (CollUtil.isEmpty(users)) { // 没查询到用户,说明肯定也没他的订单
546   - return new PageResult<>();
547   - }
548   - userIds.addAll(convertSet(users, MemberUserRespDTO::getId));
549   - }
550   - // 分页查询
551   - return tradeOrderMapper.selectPage(reqVO, userIds);
552   - }
553   -
554   - @Override
555   - public PageResult<TradeOrderDO> getOrderPage(Long userId, AppTradeOrderPageReqVO reqVO) {
556   - return tradeOrderMapper.selectPage(reqVO, userId);
557   - }
558   -
559   - @Override
560   - public Long getOrderCount(Long userId, Integer status, Boolean commentStatus) {
561   - return tradeOrderMapper.selectCountByUserIdAndStatus(userId, status, commentStatus);
562   - }
563   -
564 514 // =================== Order Item ===================
565 515  
566 516 @Override
567   - public TradeOrderItemDO getOrderItem(Long userId, Long itemId) {
568   - TradeOrderItemDO orderItem = tradeOrderItemMapper.selectById(itemId);
569   - if (orderItem != null
570   - && ObjectUtil.notEqual(orderItem.getUserId(), userId)) {
571   - return null;
572   - }
573   - return orderItem;
574   - }
575   -
576   - @Override
577 517 public void updateOrderItemAfterSaleStatus(Long id, Integer oldAfterSaleStatus, Integer newAfterSaleStatus, Integer refundPrice) {
578 518 // 如果退款成功,则 refundPrice 非空
579 519 if (Objects.equals(newAfterSaleStatus, TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus())
... ... @@ -611,39 +551,15 @@ public class TradeOrderServiceImpl implements TradeOrderService {
611 551 }
612 552  
613 553 @Override
614   - public List<TradeOrderItemDO> getOrderItemList(Collection<Long> ids) {
615   - return tradeOrderItemMapper.selectBatchIds(ids);
616   - }
617   -
618   - @Override
619   - public List<TradeOrderItemDO> getOrderItemListByOrderId(Collection<Long> orderIds) {
620   - if (CollUtil.isEmpty(orderIds)) {
621   - return Collections.emptyList();
622   - }
623   - return tradeOrderItemMapper.selectListByOrderId(orderIds);
624   - }
625   -
626   - @Override
627   - public TradeOrderItemDO getOrderItemByIdAndUserId(Long orderItemId, Long loginUserId) {
628   - return tradeOrderItemMapper.selectOrderItemByIdAndUserId(orderItemId, loginUserId);
629   - }
630   -
631   - @Override
632   - public TradeOrderDO getOrderByIdAndUserId(Long orderId, Long loginUserId) {
633   - return tradeOrderMapper.selectOrderByIdAndUserId(orderId, loginUserId);
634   - }
635   -
636   - @Override
637 554 @Transactional(rollbackFor = Exception.class)
638   - public Long createOrderItemComment(AppTradeOrderItemCommentCreateReqVO createReqVO) {
639   - Long loginUserId = getLoginUserId();
  555 + public Long createOrderItemComment(Long userId, AppTradeOrderItemCommentCreateReqVO createReqVO) {
640 556 // 先通过订单项 ID,查询订单项是否存在
641   - TradeOrderItemDO orderItem = getOrderItemByIdAndUserId(createReqVO.getOrderItemId(), loginUserId);
  557 + TradeOrderItemDO orderItem = tradeOrderItemMapper.selectByIdAndUserId(createReqVO.getOrderItemId(), userId);
642 558 if (orderItem == null) {
643 559 throw exception(ORDER_ITEM_NOT_FOUND);
644 560 }
645 561 // 校验订单相关状态
646   - TradeOrderDO order = getOrderByIdAndUserId(orderItem.getOrderId(), loginUserId);
  562 + TradeOrderDO order = tradeOrderMapper.selectOrderByIdAndUserId(orderItem.getOrderId(), userId);
647 563 if (order == null) {
648 564 throw exception(ORDER_NOT_FOUND);
649 565 }
... ... @@ -654,14 +570,14 @@ public class TradeOrderServiceImpl implements TradeOrderService {
654 570 throw exception(ORDER_COMMENT_STATUS_NOT_FALSE);
655 571 }
656 572  
657   - // 创建评价
  573 + // 1. 创建评价
658 574 ProductCommentCreateReqDTO productCommentCreateReqDTO = TradeOrderConvert.INSTANCE.convert04(createReqVO, orderItem);
659 575 Long comment = productCommentApi.createComment(productCommentCreateReqDTO);
660   - // 更新订单项评价状态
  576 +
  577 + // 2. 更新订单项评价状态
661 578 tradeOrderItemMapper.updateById(new TradeOrderItemDO().setId(orderItem.getId()).setCommentStatus(Boolean.TRUE));
662   - List<TradeOrderItemDO> orderItems = getOrderItemListByOrderId(CollUtil.newArrayList(order.getId()));
  579 + List<TradeOrderItemDO> orderItems = tradeOrderItemMapper.selectListByOrderId(order.getId());
663 580 if (!anyMatch(orderItems, item -> Objects.equals(item.getCommentStatus(), Boolean.FALSE))) {
664   - // 对于 order 来说,就是评论完,把 order 更新完合理的 status 等字段。
665 581 tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setCommentStatus(Boolean.TRUE));
666 582 }
667 583 return comment;
... ...
yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceTest.java
... ... @@ -18,7 +18,7 @@ import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleWayEnum;
18 18 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum;
19 19 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
20 20 import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
21   -import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
  21 +import cn.iocoder.yudao.module.trade.service.order.TradeOrderUpdateService;
22 22 import org.junit.jupiter.api.Test;
23 23 import org.springframework.boot.test.mock.mockito.MockBean;
24 24 import org.springframework.context.annotation.Import;
... ... @@ -52,7 +52,7 @@ public class TradeAfterSaleServiceTest extends BaseDbUnitTest {
52 52 private TradeAfterSaleLogMapper tradeAfterSaleLogMapper;
53 53  
54 54 @MockBean
55   - private TradeOrderService tradeOrderService;
  55 + private TradeOrderUpdateService tradeOrderService;
56 56 @MockBean
57 57 private PayRefundApi payRefundApi;
58 58  
... ...
yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceTest.java renamed to yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceTest.java
... ... @@ -48,16 +48,16 @@ import static org.mockito.Mockito.verify;
48 48 import static org.mockito.Mockito.when;
49 49  
50 50 /**
51   - * {@link TradeOrderServiceImpl} 的单元测试类
  51 + * {@link TradeOrderUpdateServiceImpl} 的单元测试类
52 52 *
53 53 * @author LeeYan9
54 54 * @since 2022-09-07
55 55 */
56   -@Import({TradeOrderServiceImpl.class, TradeOrderConfig.class})
57   -public class TradeOrderServiceTest extends BaseDbUnitTest {
  56 +@Import({TradeOrderUpdateServiceImpl.class, TradeOrderConfig.class})
  57 +public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
58 58  
59 59 @Resource
60   - private TradeOrderServiceImpl tradeOrderService;
  60 + private TradeOrderUpdateServiceImpl tradeOrderUpdateService;
61 61  
62 62 @Resource
63 63 private TradeOrderMapper tradeOrderMapper;
... ... @@ -150,7 +150,7 @@ public class TradeOrderServiceTest extends BaseDbUnitTest {
150 150 }))).thenReturn(1000L);
151 151  
152 152 // 调用方法
153   - TradeOrderDO order = tradeOrderService.createOrder(userId, userIp, reqVO);
  153 + TradeOrderDO order = tradeOrderUpdateService.createOrder(userId, userIp, reqVO);
154 154 // 断言 TradeOrderDO 订单
155 155 List<TradeOrderDO> tradeOrderDOs = tradeOrderMapper.selectList();
156 156 assertEquals(tradeOrderDOs.size(), 1);
... ... @@ -259,7 +259,7 @@ public class TradeOrderServiceTest extends BaseDbUnitTest {
259 259 .setMerchantOrderId("1")).setPrice(100));
260 260  
261 261 // 调用
262   - tradeOrderService.updateOrderPaid(id, payOrderId);
  262 + tradeOrderUpdateService.updateOrderPaid(id, payOrderId);
263 263 // 断言
264 264 TradeOrderDO dbOrder = tradeOrderMapper.selectById(id);
265 265 assertEquals(dbOrder.getStatus(), TradeOrderStatusEnum.UNDELIVERED.getStatus());
... ... @@ -282,7 +282,7 @@ public class TradeOrderServiceTest extends BaseDbUnitTest {
282 282 // mock 方法(支付单)
283 283  
284 284 // 调用
285   - tradeOrderService.deliveryOrder(randomLongId(), deliveryReqVO);
  285 + tradeOrderUpdateService.deliveryOrder(randomLongId(), deliveryReqVO);
286 286 // 断言
287 287 TradeOrderDO dbOrder = tradeOrderMapper.selectById(1L);
288 288 assertEquals(dbOrder.getStatus(), TradeOrderStatusEnum.DELIVERED.getStatus());
... ... @@ -304,7 +304,7 @@ public class TradeOrderServiceTest extends BaseDbUnitTest {
304 304 // mock 方法(支付单)
305 305  
306 306 // 调用
307   - tradeOrderService.receiveOrder(userId, id);
  307 + tradeOrderUpdateService.receiveOrder(userId, id);
308 308 // 断言
309 309 TradeOrderDO dbOrder = tradeOrderMapper.selectById(1L);
310 310 assertEquals(dbOrder.getStatus(), TradeOrderStatusEnum.COMPLETED.getStatus());
... ...