trade:完善退款详情

This commit is contained in:
YunaiV
2023-10-02 15:44:41 +08:00
parent 0c1f5c9582
commit 6f4c04d944
49 changed files with 647 additions and 689 deletions

View File

@@ -4,17 +4,17 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
import cn.iocoder.yudao.module.pay.api.refund.PayRefundApi;
import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSalePageReqVO;
import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSaleCreateReqVO;
import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleDO;
import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleLogDO;
import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.AfterSalePageReqVO;
import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppAfterSaleCreateReqVO;
import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.AfterSaleDO;
import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.AfterSaleLogDO;
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
import cn.iocoder.yudao.module.trade.dal.mysql.aftersale.TradeAfterSaleLogMapper;
import cn.iocoder.yudao.module.trade.dal.mysql.aftersale.TradeAfterSaleMapper;
import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleStatusEnum;
import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleTypeEnum;
import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleWayEnum;
import cn.iocoder.yudao.module.trade.dal.mysql.aftersale.AfterSaleLogMapper;
import cn.iocoder.yudao.module.trade.dal.mysql.aftersale.AfterSaleMapper;
import cn.iocoder.yudao.module.trade.enums.aftersale.AfterSaleStatusEnum;
import cn.iocoder.yudao.module.trade.enums.aftersale.AfterSaleTypeEnum;
import cn.iocoder.yudao.module.trade.enums.aftersale.AfterSaleWayEnum;
import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum;
import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
@@ -37,20 +37,20 @@ import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
/**
* {@link TradeAfterSaleService} 的单元测试
* {@link AfterSaleService} 的单元测试
*
* @author 芋道源码
*/
@Import(TradeAfterSaleServiceImpl.class)
public class TradeAfterSaleServiceTest extends BaseDbUnitTest {
@Import(AfterSaleServiceImpl.class)
public class AfterSaleServiceTest extends BaseDbUnitTest {
@Resource
private TradeAfterSaleServiceImpl tradeAfterSaleService;
private AfterSaleServiceImpl tradeAfterSaleService;
@Resource
private TradeAfterSaleMapper tradeAfterSaleMapper;
private AfterSaleMapper tradeAfterSaleMapper;
@Resource
private TradeAfterSaleLogMapper tradeAfterSaleLogMapper;
private AfterSaleLogMapper tradeAfterSaleLogMapper;
@MockBean
private TradeOrderUpdateService tradeOrderUpdateService;
@@ -67,8 +67,8 @@ public class TradeAfterSaleServiceTest extends BaseDbUnitTest {
public void testCreateAfterSale() {
// 准备参数
Long userId = 1024L;
AppTradeAfterSaleCreateReqVO createReqVO = new AppTradeAfterSaleCreateReqVO()
.setOrderItemId(1L).setRefundPrice(100).setWay(TradeAfterSaleWayEnum.RETURN_AND_REFUND.getWay())
AppAfterSaleCreateReqVO createReqVO = new AppAfterSaleCreateReqVO()
.setOrderItemId(1L).setRefundPrice(100).setWay(AfterSaleWayEnum.RETURN_AND_REFUND.getWay())
.setApplyReason("退钱").setApplyDescription("快退")
.setApplyPicUrls(asList("https://www.baidu.com/1.png", "https://www.baidu.com/2.png"));
// mock 方法交易订单项
@@ -86,10 +86,10 @@ public class TradeAfterSaleServiceTest extends BaseDbUnitTest {
// 调用
Long afterSaleId = tradeAfterSaleService.createAfterSale(userId, createReqVO);
// 断言TradeAfterSaleDO
TradeAfterSaleDO afterSale = tradeAfterSaleMapper.selectById(afterSaleId);
AfterSaleDO afterSale = tradeAfterSaleMapper.selectById(afterSaleId);
assertNotNull(afterSale.getNo());
assertEquals(afterSale.getStatus(), TradeAfterSaleStatusEnum.APPLY.getStatus());
assertEquals(afterSale.getType(), TradeAfterSaleTypeEnum.IN_SALE.getType());
assertEquals(afterSale.getStatus(), AfterSaleStatusEnum.APPLY.getStatus());
assertEquals(afterSale.getType(), AfterSaleTypeEnum.IN_SALE.getType());
assertPojoEquals(afterSale, createReqVO);
assertEquals(afterSale.getUserId(), 1024L);
assertPojoEquals(afterSale, orderItem, "id", "creator", "createTime", "updater", "updateTime");
@@ -101,22 +101,22 @@ public class TradeAfterSaleServiceTest extends BaseDbUnitTest {
assertNull(afterSale.getDeliveryTime());
assertNull(afterSale.getReceiveReason());
// 断言TradeAfterSaleLogDO
TradeAfterSaleLogDO afterSaleLog = tradeAfterSaleLogMapper.selectList().get(0);
AfterSaleLogDO afterSaleLog = tradeAfterSaleLogMapper.selectList().get(0);
assertEquals(afterSaleLog.getUserId(), userId);
assertEquals(afterSaleLog.getUserType(), UserTypeEnum.MEMBER.getValue());
assertEquals(afterSaleLog.getAfterSaleId(), afterSaleId);
assertPojoEquals(afterSale, orderItem, "id", "creator", "createTime", "updater", "updateTime");
assertEquals(afterSaleLog.getContent(), TradeAfterSaleStatusEnum.APPLY.getContent());
assertEquals(afterSaleLog.getContent(), AfterSaleStatusEnum.APPLY.getContent());
}
@Test
public void testGetAfterSalePage() {
// mock 数据
TradeAfterSaleDO dbAfterSale = randomPojo(TradeAfterSaleDO.class, o -> { // 等会查询到
AfterSaleDO dbAfterSale = randomPojo(AfterSaleDO.class, o -> { // 等会查询到
o.setNo("202211190847450020500077");
o.setStatus(TradeAfterSaleStatusEnum.APPLY.getStatus());
o.setWay(TradeAfterSaleWayEnum.RETURN_AND_REFUND.getWay());
o.setType(TradeAfterSaleTypeEnum.IN_SALE.getType());
o.setStatus(AfterSaleStatusEnum.APPLY.getStatus());
o.setWay(AfterSaleWayEnum.RETURN_AND_REFUND.getWay());
o.setType(AfterSaleTypeEnum.IN_SALE.getType());
o.setOrderNo("202211190847450020500011");
o.setSpuName("芋艿");
o.setCreateTime(buildTime(2022, 1, 15));
@@ -125,11 +125,11 @@ public class TradeAfterSaleServiceTest extends BaseDbUnitTest {
// 测试 no 不匹配
tradeAfterSaleMapper.insert(cloneIgnoreId(dbAfterSale, o -> o.setNo("202211190847450020500066")));
// 测试 status 不匹配
tradeAfterSaleMapper.insert(cloneIgnoreId(dbAfterSale, o -> o.setStatus(TradeAfterSaleStatusEnum.SELLER_REFUSE.getStatus())));
tradeAfterSaleMapper.insert(cloneIgnoreId(dbAfterSale, o -> o.setStatus(AfterSaleStatusEnum.SELLER_REFUSE.getStatus())));
// 测试 way 不匹配
tradeAfterSaleMapper.insert(cloneIgnoreId(dbAfterSale, o -> o.setWay(TradeAfterSaleWayEnum.REFUND.getWay())));
tradeAfterSaleMapper.insert(cloneIgnoreId(dbAfterSale, o -> o.setWay(AfterSaleWayEnum.REFUND.getWay())));
// 测试 type 不匹配
tradeAfterSaleMapper.insert(cloneIgnoreId(dbAfterSale, o -> o.setType(TradeAfterSaleTypeEnum.AFTER_SALE.getType())));
tradeAfterSaleMapper.insert(cloneIgnoreId(dbAfterSale, o -> o.setType(AfterSaleTypeEnum.AFTER_SALE.getType())));
// 测试 orderNo 不匹配
tradeAfterSaleMapper.insert(cloneIgnoreId(dbAfterSale, o -> o.setOrderNo("202211190847450020500022")));
// 测试 spuName 不匹配
@@ -137,17 +137,17 @@ public class TradeAfterSaleServiceTest extends BaseDbUnitTest {
// 测试 createTime 不匹配
tradeAfterSaleMapper.insert(cloneIgnoreId(dbAfterSale, o -> o.setCreateTime(buildTime(2022, 1, 20))));
// 准备参数
TradeAfterSalePageReqVO reqVO = new TradeAfterSalePageReqVO();
AfterSalePageReqVO reqVO = new AfterSalePageReqVO();
reqVO.setNo("20221119084745002050007");
reqVO.setStatus(TradeAfterSaleStatusEnum.APPLY.getStatus());
reqVO.setWay(TradeAfterSaleWayEnum.RETURN_AND_REFUND.getWay());
reqVO.setType(TradeAfterSaleTypeEnum.IN_SALE.getType());
reqVO.setStatus(AfterSaleStatusEnum.APPLY.getStatus());
reqVO.setWay(AfterSaleWayEnum.RETURN_AND_REFUND.getWay());
reqVO.setType(AfterSaleTypeEnum.IN_SALE.getType());
reqVO.setOrderNo("20221119084745002050001");
reqVO.setSpuName("");
reqVO.setCreateTime(new LocalDateTime[]{buildTime(2022, 1, 1), buildTime(2022, 1, 16)});
// 调用
PageResult<TradeAfterSaleDO> pageResult = tradeAfterSaleService.getAfterSalePage(reqVO);
PageResult<AfterSaleDO> pageResult = tradeAfterSaleService.getAfterSalePage(reqVO);
// 断言
assertEquals(1, pageResult.getTotal());
assertEquals(1, pageResult.getList().size());