Commit 5dd6e5bee8ebc65a684a996f6a2d39aadb9be726

Authored by YunaiV
1 parent d3c02f2a

营销:

1. 售后订单,增加对 afterSaleId 的更新
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/decorate/AppDecorateController.java
@@ -30,7 +30,7 @@ public class AppDecorateController { @@ -30,7 +30,7 @@ public class AppDecorateController {
30 @Resource 30 @Resource
31 private DecorateComponentService decorateComponentService; 31 private DecorateComponentService decorateComponentService;
32 32
33 - @GetMapping("/get-component-list") 33 + @GetMapping("/list")
34 @Operation(summary = "获取指定页面的组件列表") 34 @Operation(summary = "获取指定页面的组件列表")
35 @Parameter(name = "page", description = "页面编号", required = true) 35 @Parameter(name = "page", description = "页面编号", required = true)
36 public CommonResult<List<AppDecorateComponentRespVO>> getDecorateComponentListByPage( 36 public CommonResult<List<AppDecorateComponentRespVO>> getDecorateComponentListByPage(
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/decorate/DecorateComponentServiceImplTest.java
1 package cn.iocoder.yudao.module.promotion.service.decorate; 1 package cn.iocoder.yudao.module.promotion.service.decorate;
2 2
3 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest; 3 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
4 -import cn.iocoder.yudao.module.promotion.dal.dataobject.decorate.DecorateComponentDO;  
5 import cn.iocoder.yudao.module.promotion.dal.mysql.decorate.DecorateComponentMapper; 4 import cn.iocoder.yudao.module.promotion.dal.mysql.decorate.DecorateComponentMapper;
6 import org.junit.jupiter.api.BeforeEach; 5 import org.junit.jupiter.api.BeforeEach;
7 -import org.junit.jupiter.api.Test;  
8 import org.mockito.InjectMocks; 6 import org.mockito.InjectMocks;
9 import org.mockito.Mock; 7 import org.mockito.Mock;
10 -import org.mockito.Mockito;  
11 -  
12 -import java.util.ArrayList;  
13 -import java.util.List;  
14 -  
15 -import static cn.iocoder.yudao.module.promotion.enums.decorate.DecorateComponentEnum.ROLLING_NEWS;  
16 -import static cn.iocoder.yudao.module.promotion.enums.decorate.DecoratePageEnum.INDEX;  
17 -import static org.mockito.ArgumentMatchers.eq;  
18 8
19 // TODO @芋艿:后续 review 下 9 // TODO @芋艿:后续 review 下
20 /** 10 /**
@@ -33,14 +23,14 @@ public class DecorateComponentServiceImplTest extends BaseMockitoUnitTest { @@ -33,14 +23,14 @@ public class DecorateComponentServiceImplTest extends BaseMockitoUnitTest {
33 23
34 } 24 }
35 25
36 - @Test  
37 - void testResp(){  
38 - List<DecorateComponentDO> list = new ArrayList<>(1);  
39 - DecorateComponentDO decorateDO = new DecorateComponentDO()  
40 - .setPage(INDEX.getPage()).setValue("")  
41 - .setCode(ROLLING_NEWS.getCode()).setId(1L);  
42 - list.add(decorateDO);  
43 - //mock 方法  
44 - Mockito.when(decorateComponentMapper.selectListByPageAndStatus(eq(1))).thenReturn(list);  
45 - } 26 +// @Test
  27 +// void testResp(){
  28 +// List<DecorateComponentDO> list = new ArrayList<>(1);
  29 +// DecorateComponentDO decorateDO = new DecorateComponentDO()
  30 +// .setPage(INDEX.getPage()).setValue("")
  31 +// .setCode(ROLLING_NEWS.getCode()).setId(1L);
  32 +// list.add(decorateDO);
  33 +// //mock 方法
  34 +// Mockito.when(decorateComponentMapper.selectListByPageAndStatus(eq(1))).thenReturn(list);
  35 +// }
46 } 36 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/aftersale/AppTradeAfterSaleController.java
@@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSa @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSa
7 import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSalePageItemRespVO; 7 import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSalePageItemRespVO;
8 import cn.iocoder.yudao.module.trade.controller.app.base.property.AppProductPropertyValueDetailRespVO; 8 import cn.iocoder.yudao.module.trade.controller.app.base.property.AppProductPropertyValueDetailRespVO;
9 import cn.iocoder.yudao.module.trade.enums.aftersale.AfterSaleOperateTypeEnum; 9 import cn.iocoder.yudao.module.trade.enums.aftersale.AfterSaleOperateTypeEnum;
  10 +import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleWayEnum;
10 import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.annotations.AfterSaleLog; 11 import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.annotations.AfterSaleLog;
11 import cn.iocoder.yudao.module.trade.service.aftersale.TradeAfterSaleService; 12 import cn.iocoder.yudao.module.trade.service.aftersale.TradeAfterSaleService;
12 import io.swagger.v3.oas.annotations.Operation; 13 import io.swagger.v3.oas.annotations.Operation;
@@ -19,6 +20,8 @@ import org.springframework.web.bind.annotation.*; @@ -19,6 +20,8 @@ import org.springframework.web.bind.annotation.*;
19 import javax.annotation.Resource; 20 import javax.annotation.Resource;
20 import java.time.LocalDateTime; 21 import java.time.LocalDateTime;
21 import java.util.Arrays; 22 import java.util.Arrays;
  23 +import java.util.List;
  24 +import java.util.Objects;
22 25
23 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 26 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
24 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; 27 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@@ -78,6 +81,17 @@ public class AppTradeAfterSaleController { @@ -78,6 +81,17 @@ public class AppTradeAfterSaleController {
78 // return success(afterSaleService.getAfterSalePage(getLoginUserId())); 81 // return success(afterSaleService.getAfterSalePage(getLoginUserId()));
79 } 82 }
80 83
  84 + // TODO 芋艿:待实现
  85 + @GetMapping(value = "/get-reason-list")
  86 + @Operation(summary = "获得售后原因")
  87 + @Parameter(name = "way", description = "售后类型", required = true, example = "10")
  88 + public CommonResult<List<String>> getAfterSaleReasonList(@RequestParam("way") Integer way) {
  89 + if (Objects.equals(TradeAfterSaleWayEnum.REFUND.getWay(), way)) {
  90 + return success(Arrays.asList("不想要了", "商品质量问题", "商品描述不符"));
  91 + }
  92 + return success(Arrays.asList("不想要了", "商品质量问题", "商品描述不符", "商品错发漏发", "商品包装破损"));
  93 + }
  94 +
81 @PostMapping(value = "/create") 95 @PostMapping(value = "/create")
82 @Operation(summary = "申请售后") 96 @Operation(summary = "申请售后")
83 @AfterSaleLog(id = "#info.data", content = "'申请售后:售后编号['+#info.data+'],订单编号['+#createReqVO.orderItemId+'], '", operateType = AfterSaleOperateTypeEnum.APPLY) 97 @AfterSaleLog(id = "#info.data", content = "'申请售后:售后编号['+#info.data+'],订单编号['+#createReqVO.orderItemId+'], '", operateType = AfterSaleOperateTypeEnum.APPLY)
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/item/AppTradeOrderItemRespVO.java
@@ -43,6 +43,9 @@ public class AppTradeOrderItemRespVO { @@ -43,6 +43,9 @@ public class AppTradeOrderItemRespVO {
43 @Schema(description = "商品原价(单)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") 43 @Schema(description = "商品原价(单)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
44 private Integer price; 44 private Integer price;
45 45
  46 + @Schema(description = "应付金额(总),单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "50")
  47 + private Integer payPrice;
  48 +
46 // ========== 营销基本信息 ========== 49 // ========== 营销基本信息 ==========
47 50
48 // TODO 芋艿:在捉摸一下 51 // TODO 芋艿:在捉摸一下
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java
@@ -145,12 +145,17 @@ public class TradeOrderItemDO extends BaseDO { @@ -145,12 +145,17 @@ public class TradeOrderItemDO extends BaseDO {
145 private Integer pointPrice; 145 private Integer pointPrice;
146 146
147 // ========== 售后基本信息 ========== 147 // ========== 售后基本信息 ==========
  148 +
  149 + /**
  150 + * 售后单编号
  151 + *
  152 + * 关联 {@link TradeAfterSaleDO#getId()} 字段
  153 + */
  154 + private Long afterSaleId;
148 /** 155 /**
149 * 售后状态 156 * 售后状态
150 * 157 *
151 * 枚举 {@link TradeOrderItemAfterSaleStatusEnum} 158 * 枚举 {@link TradeOrderItemAfterSaleStatusEnum}
152 - *  
153 - * @see TradeAfterSaleDO  
154 */ 159 */
155 private Integer afterSaleStatus; 160 private Integer afterSaleStatus;
156 161
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderItemMapper.java
@@ -12,8 +12,9 @@ import java.util.List; @@ -12,8 +12,9 @@ import java.util.List;
12 @Mapper 12 @Mapper
13 public interface TradeOrderItemMapper extends BaseMapperX<TradeOrderItemDO> { 13 public interface TradeOrderItemMapper extends BaseMapperX<TradeOrderItemDO> {
14 14
15 - default int updateAfterSaleStatus(Long id, Integer oldAfterSaleStatus, Integer newAfterSaleStatus) {  
16 - return update(new TradeOrderItemDO().setAfterSaleStatus(newAfterSaleStatus), 15 + default int updateAfterSaleStatus(Long id, Integer oldAfterSaleStatus, Integer newAfterSaleStatus,
  16 + Long afterSaleId) {
  17 + return update(new TradeOrderItemDO().setAfterSaleStatus(newAfterSaleStatus).setAfterSaleId(afterSaleId),
17 new LambdaUpdateWrapper<>(new TradeOrderItemDO().setId(id).setAfterSaleStatus(oldAfterSaleStatus))); 18 new LambdaUpdateWrapper<>(new TradeOrderItemDO().setId(id).setAfterSaleStatus(oldAfterSaleStatus)));
18 } 19 }
19 20
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java
@@ -148,8 +148,8 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa @@ -148,8 +148,8 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
148 148
149 // 更新交易订单项的售后状态 149 // 更新交易订单项的售后状态
150 tradeOrderUpdateService.updateOrderItemAfterSaleStatus(orderItem.getId(), 150 tradeOrderUpdateService.updateOrderItemAfterSaleStatus(orderItem.getId(),
151 - TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(),  
152 - TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(), null); 151 + TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),
  152 + afterSale.getId(), null);
153 153
154 // 记录售后日志 154 // 记录售后日志
155 createAfterSaleLog(orderItem.getUserId(), UserTypeEnum.MEMBER.getValue(), 155 createAfterSaleLog(orderItem.getUserId(), UserTypeEnum.MEMBER.getValue(),
@@ -200,8 +200,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa @@ -200,8 +200,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
200 200
201 // 更新交易订单项的售后状态为【未申请】 201 // 更新交易订单项的售后状态为【未申请】
202 tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(), 202 tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
203 - TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),  
204 - TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), null); 203 + TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(), TradeOrderItemAfterSaleStatusEnum.NONE.getStatus());
205 } 204 }
206 205
207 /** 206 /**
@@ -295,8 +294,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa @@ -295,8 +294,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
295 294
296 // 更新交易订单项的售后状态为【未申请】 295 // 更新交易订单项的售后状态为【未申请】
297 tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(), 296 tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
298 - TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),  
299 - TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), null); 297 + TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(), TradeOrderItemAfterSaleStatusEnum.NONE.getStatus());
300 } 298 }
301 299
302 /** 300 /**
@@ -343,8 +341,8 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa @@ -343,8 +341,8 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
343 341
344 // 更新交易订单项的售后状态为【已完成】 342 // 更新交易订单项的售后状态为【已完成】
345 tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(), 343 tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
346 - TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),  
347 - TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus(), afterSale.getRefundPrice()); 344 + TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(), TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus(),
  345 + null, afterSale.getRefundPrice());
348 } 346 }
349 347
350 private void createPayRefund(String userIp, TradeAfterSaleDO afterSale) { 348 private void createPayRefund(String userIp, TradeAfterSaleDO afterSale) {
@@ -385,8 +383,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa @@ -385,8 +383,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa
385 383
386 // 更新交易订单项的售后状态为【未申请】 384 // 更新交易订单项的售后状态为【未申请】
387 tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(), 385 tradeOrderUpdateService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
388 - TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),  
389 - TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), null); 386 + TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(), TradeOrderItemAfterSaleStatusEnum.NONE.getStatus());
390 } 387 }
391 388
392 @Deprecated 389 @Deprecated
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateService.java
@@ -68,10 +68,22 @@ public interface TradeOrderUpdateService { @@ -68,10 +68,22 @@ public interface TradeOrderUpdateService {
68 * @param id 交易订单项编号 68 * @param id 交易订单项编号
69 * @param oldAfterSaleStatus 当前售后状态;如果不符,更新后会抛出异常 69 * @param oldAfterSaleStatus 当前售后状态;如果不符,更新后会抛出异常
70 * @param newAfterSaleStatus 目标售后状态 70 * @param newAfterSaleStatus 目标售后状态
  71 + */
  72 + default void updateOrderItemAfterSaleStatus(Long id, Integer oldAfterSaleStatus, Integer newAfterSaleStatus) {
  73 + updateOrderItemAfterSaleStatus(id, oldAfterSaleStatus, newAfterSaleStatus, null, null);
  74 + }
  75 +
  76 + /**
  77 + * 更新交易订单项的售后状态
  78 + *
  79 + * @param id 交易订单项编号
  80 + * @param oldAfterSaleStatus 当前售后状态;如果不符,更新后会抛出异常
  81 + * @param newAfterSaleStatus 目标售后状态
  82 + * @param afterSaleId 售后单编号;当订单项发起售后时,必须传递该字段
71 * @param refundPrice 退款金额;当订单项退款成功时,必须传递该值 83 * @param refundPrice 退款金额;当订单项退款成功时,必须传递该值
72 */ 84 */
73 - void updateOrderItemAfterSaleStatus(Long id, Integer oldAfterSaleStatus,  
74 - Integer newAfterSaleStatus, Integer refundPrice); 85 + void updateOrderItemAfterSaleStatus(Long id, Integer oldAfterSaleStatus, Integer newAfterSaleStatus,
  86 + Long afterSaleId, Integer refundPrice);
75 87
76 /** 88 /**
77 * 创建订单项的评论 89 * 创建订单项的评论
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
@@ -514,15 +514,22 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -514,15 +514,22 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
514 // =================== Order Item =================== 514 // =================== Order Item ===================
515 515
516 @Override 516 @Override
517 - public void updateOrderItemAfterSaleStatus(Long id, Integer oldAfterSaleStatus, Integer newAfterSaleStatus, Integer refundPrice) { 517 + @Transactional(rollbackFor = Exception.class)
  518 + public void updateOrderItemAfterSaleStatus(Long id, Integer oldAfterSaleStatus, Integer newAfterSaleStatus,
  519 + Long afterSaleId, Integer refundPrice) {
518 // 如果退款成功,则 refundPrice 非空 520 // 如果退款成功,则 refundPrice 非空
519 if (Objects.equals(newAfterSaleStatus, TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus()) 521 if (Objects.equals(newAfterSaleStatus, TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus())
520 && refundPrice == null) { 522 && refundPrice == null) {
521 throw new IllegalArgumentException(StrUtil.format("id({}) 退款成功,退款金额不能为空", id)); 523 throw new IllegalArgumentException(StrUtil.format("id({}) 退款成功,退款金额不能为空", id));
522 } 524 }
  525 + // 如果退款发起,则 afterSaleId 非空
  526 + if (Objects.equals(newAfterSaleStatus, TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus())
  527 + && afterSaleId == null) {
  528 + throw new IllegalArgumentException(StrUtil.format("id({}) 退款发起,售后单编号不能为空", id));
  529 + }
523 530
524 // 更新订单项 531 // 更新订单项
525 - int updateCount = tradeOrderItemMapper.updateAfterSaleStatus(id, oldAfterSaleStatus, newAfterSaleStatus); 532 + int updateCount = tradeOrderItemMapper.updateAfterSaleStatus(id, oldAfterSaleStatus, newAfterSaleStatus, afterSaleId);
526 if (updateCount <= 0) { 533 if (updateCount <= 0) {
527 throw exception(ORDER_ITEM_UPDATE_AFTER_SALE_STATUS_FAIL); 534 throw exception(ORDER_ITEM_UPDATE_AFTER_SALE_STATUS_FAIL);
528 } 535 }
yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceTest.java
@@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleWayEnum; @@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleWayEnum;
18 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum; 18 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum;
19 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum; 19 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
20 import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties; 20 import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
  21 +import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService;
21 import cn.iocoder.yudao.module.trade.service.order.TradeOrderUpdateService; 22 import cn.iocoder.yudao.module.trade.service.order.TradeOrderUpdateService;
22 import org.junit.jupiter.api.Test; 23 import org.junit.jupiter.api.Test;
23 import org.springframework.boot.test.mock.mockito.MockBean; 24 import org.springframework.boot.test.mock.mockito.MockBean;
@@ -52,7 +53,9 @@ public class TradeAfterSaleServiceTest extends BaseDbUnitTest { @@ -52,7 +53,9 @@ public class TradeAfterSaleServiceTest extends BaseDbUnitTest {
52 private TradeAfterSaleLogMapper tradeAfterSaleLogMapper; 53 private TradeAfterSaleLogMapper tradeAfterSaleLogMapper;
53 54
54 @MockBean 55 @MockBean
55 - private TradeOrderUpdateService tradeOrderService; 56 + private TradeOrderUpdateService tradeOrderUpdateService;
  57 + @Resource
  58 + private TradeOrderQueryService tradeOrderQueryService;
56 @MockBean 59 @MockBean
57 private PayRefundApi payRefundApi; 60 private PayRefundApi payRefundApi;
58 61
@@ -72,12 +75,12 @@ public class TradeAfterSaleServiceTest extends BaseDbUnitTest { @@ -72,12 +75,12 @@ public class TradeAfterSaleServiceTest extends BaseDbUnitTest {
72 o.setOrderId(111L).setUserId(userId).setPayPrice(200); 75 o.setOrderId(111L).setUserId(userId).setPayPrice(200);
73 o.setAfterSaleStatus(TradeOrderItemAfterSaleStatusEnum.NONE.getStatus()); 76 o.setAfterSaleStatus(TradeOrderItemAfterSaleStatusEnum.NONE.getStatus());
74 }); 77 });
75 - when(tradeOrderService.getOrderItem(eq(1024L), eq(1L))) 78 + when(tradeOrderQueryService.getOrderItem(eq(1024L), eq(1L)))
76 .thenReturn(orderItem); 79 .thenReturn(orderItem);
77 // mock 方法(交易订单) 80 // mock 方法(交易订单)
78 TradeOrderDO order = randomPojo(TradeOrderDO.class, o -> o.setStatus(TradeOrderStatusEnum.DELIVERED.getStatus()) 81 TradeOrderDO order = randomPojo(TradeOrderDO.class, o -> o.setStatus(TradeOrderStatusEnum.DELIVERED.getStatus())
79 .setNo("202211301234")); 82 .setNo("202211301234"));
80 - when(tradeOrderService.getOrder(eq(1024L), eq(111L))).thenReturn(order); 83 + when(tradeOrderQueryService.getOrder(eq(1024L), eq(111L))).thenReturn(order);
81 84
82 // 调用 85 // 调用
83 Long afterSaleId = tradeAfterSaleService.createAfterSale(userId, createReqVO); 86 Long afterSaleId = tradeAfterSaleService.createAfterSale(userId, createReqVO);