Commit 71d6311bd4aa4a547ac7f882c59044031325c6a1
1 parent
54fe0174
code review:拼团、秒杀等逻辑
Showing
15 changed files
with
46 additions
and
124 deletions
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/ErrorCodeConstants.java
| @@ -56,7 +56,6 @@ public interface ErrorCodeConstants { | @@ -56,7 +56,6 @@ public interface ErrorCodeConstants { | ||
| 56 | ErrorCode SECKILL_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END = new ErrorCode(1013008004, "秒杀活动未关闭或未结束,不能删除"); | 56 | ErrorCode SECKILL_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END = new ErrorCode(1013008004, "秒杀活动未关闭或未结束,不能删除"); |
| 57 | ErrorCode SECKILL_ACTIVITY_CLOSE_FAIL_STATUS_CLOSED = new ErrorCode(1013008005, "秒杀活动已关闭,不能重复关闭"); | 57 | ErrorCode SECKILL_ACTIVITY_CLOSE_FAIL_STATUS_CLOSED = new ErrorCode(1013008005, "秒杀活动已关闭,不能重复关闭"); |
| 58 | ErrorCode SECKILL_ACTIVITY_UPDATE_STOCK_FAIL = new ErrorCode(1013008006, "秒杀失败,原因秒杀库存不足"); | 58 | ErrorCode SECKILL_ACTIVITY_UPDATE_STOCK_FAIL = new ErrorCode(1013008006, "秒杀失败,原因秒杀库存不足"); |
| 59 | - ErrorCode SECKILL_ACTIVITY_APP_STATUS_CLOSED = new ErrorCode(1013008007, "秒杀活动已关闭"); | ||
| 60 | 59 | ||
| 61 | // ========== 秒杀时段 1013009000 ========== | 60 | // ========== 秒杀时段 1013009000 ========== |
| 62 | ErrorCode SECKILL_CONFIG_NOT_EXISTS = new ErrorCode(1013009000, "秒杀时段不存在"); | 61 | ErrorCode SECKILL_CONFIG_NOT_EXISTS = new ErrorCode(1013009000, "秒杀时段不存在"); |
| @@ -69,7 +68,6 @@ public interface ErrorCodeConstants { | @@ -69,7 +68,6 @@ public interface ErrorCodeConstants { | ||
| 69 | ErrorCode COMBINATION_ACTIVITY_STATUS_DISABLE_NOT_UPDATE = new ErrorCode(1013010002, "拼团活动已关闭不能修改"); | 68 | ErrorCode COMBINATION_ACTIVITY_STATUS_DISABLE_NOT_UPDATE = new ErrorCode(1013010002, "拼团活动已关闭不能修改"); |
| 70 | ErrorCode COMBINATION_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END = new ErrorCode(1013010003, "拼团活动未关闭或未结束,不能删除"); | 69 | ErrorCode COMBINATION_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END = new ErrorCode(1013010003, "拼团活动未关闭或未结束,不能删除"); |
| 71 | ErrorCode COMBINATION_ACTIVITY_STATUS_DISABLE = new ErrorCode(1013010004, "拼团失败,原因:拼团活动已关闭"); | 70 | ErrorCode COMBINATION_ACTIVITY_STATUS_DISABLE = new ErrorCode(1013010004, "拼团失败,原因:拼团活动已关闭"); |
| 72 | - ErrorCode COMBINATION_ACTIVITY_APP_STATUS_DISABLE = new ErrorCode(1013010005, "拼团活动已关闭"); | ||
| 73 | 71 | ||
| 74 | // ========== 拼团记录 1013011000 ========== | 72 | // ========== 拼团记录 1013011000 ========== |
| 75 | ErrorCode COMBINATION_RECORD_NOT_EXISTS = new ErrorCode(1013011000, "拼团不存在"); | 73 | ErrorCode COMBINATION_RECORD_NOT_EXISTS = new ErrorCode(1013011000, "拼团不存在"); |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/combination/AppCombinationActivityController.java
| @@ -24,14 +24,12 @@ import org.springframework.web.bind.annotation.RequestParam; | @@ -24,14 +24,12 @@ import org.springframework.web.bind.annotation.RequestParam; | ||
| 24 | import org.springframework.web.bind.annotation.RestController; | 24 | import org.springframework.web.bind.annotation.RestController; |
| 25 | 25 | ||
| 26 | import javax.annotation.Resource; | 26 | import javax.annotation.Resource; |
| 27 | -import java.util.Arrays; | 27 | +import java.util.Collections; |
| 28 | import java.util.List; | 28 | import java.util.List; |
| 29 | 29 | ||
| 30 | import static cn.hutool.core.util.ObjectUtil.defaultIfNull; | 30 | import static cn.hutool.core.util.ObjectUtil.defaultIfNull; |
| 31 | -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 32 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 31 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 33 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; | 32 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; |
| 34 | -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.COMBINATION_ACTIVITY_APP_STATUS_DISABLE; | ||
| 35 | 33 | ||
| 36 | @Tag(name = "用户 APP - 拼团活动") | 34 | @Tag(name = "用户 APP - 拼团活动") |
| 37 | @RestController | 35 | @RestController |
| @@ -44,7 +42,7 @@ public class AppCombinationActivityController { | @@ -44,7 +42,7 @@ public class AppCombinationActivityController { | ||
| 44 | @Resource | 42 | @Resource |
| 45 | private ProductSpuApi spuApi; | 43 | private ProductSpuApi spuApi; |
| 46 | 44 | ||
| 47 | - | 45 | + // TODO 芋艿:增加 Spring Cache |
| 48 | @GetMapping("/list") | 46 | @GetMapping("/list") |
| 49 | @Operation(summary = "获得拼团活动列表", description = "用于小程序首页") | 47 | @Operation(summary = "获得拼团活动列表", description = "用于小程序首页") |
| 50 | @Parameter(name = "count", description = "需要展示的数量", example = "6") | 48 | @Parameter(name = "count", description = "需要展示的数量", example = "6") |
| @@ -52,11 +50,10 @@ public class AppCombinationActivityController { | @@ -52,11 +50,10 @@ public class AppCombinationActivityController { | ||
| 52 | @RequestParam(name = "count", defaultValue = "6") Integer count) { | 50 | @RequestParam(name = "count", defaultValue = "6") Integer count) { |
| 53 | List<CombinationActivityDO> list = activityService.getCombinationActivityListByCount(defaultIfNull(count, 6)); | 51 | List<CombinationActivityDO> list = activityService.getCombinationActivityListByCount(defaultIfNull(count, 6)); |
| 54 | if (CollUtil.isEmpty(list)) { | 52 | if (CollUtil.isEmpty(list)) { |
| 55 | - return success(CombinationActivityConvert.INSTANCE.convertAppList(list)); | 53 | + return success(Collections.emptyList()); |
| 56 | } | 54 | } |
| 57 | - | 55 | + // 拼接返回 |
| 58 | List<ProductSpuRespDTO> spuList = spuApi.getSpuList(convertList(list, CombinationActivityDO::getSpuId)); | 56 | List<ProductSpuRespDTO> spuList = spuApi.getSpuList(convertList(list, CombinationActivityDO::getSpuId)); |
| 59 | - // TODO 芋艿:增加 Spring Cache | ||
| 60 | return success(CombinationActivityConvert.INSTANCE.convertAppList(list, spuList)); | 57 | return success(CombinationActivityConvert.INSTANCE.convertAppList(list, spuList)); |
| 61 | } | 58 | } |
| 62 | 59 | ||
| @@ -67,7 +64,7 @@ public class AppCombinationActivityController { | @@ -67,7 +64,7 @@ public class AppCombinationActivityController { | ||
| 67 | if (CollUtil.isEmpty(result.getList())) { | 64 | if (CollUtil.isEmpty(result.getList())) { |
| 68 | return success(PageResult.empty(result.getTotal())); | 65 | return success(PageResult.empty(result.getTotal())); |
| 69 | } | 66 | } |
| 70 | - | 67 | + // 拼接返回 |
| 71 | List<ProductSpuRespDTO> spuList = spuApi.getSpuList(convertList(result.getList(), CombinationActivityDO::getSpuId)); | 68 | List<ProductSpuRespDTO> spuList = spuApi.getSpuList(convertList(result.getList(), CombinationActivityDO::getSpuId)); |
| 72 | return success(CombinationActivityConvert.INSTANCE.convertAppPage(result, spuList)); | 69 | return success(CombinationActivityConvert.INSTANCE.convertAppPage(result, spuList)); |
| 73 | } | 70 | } |
| @@ -78,15 +75,12 @@ public class AppCombinationActivityController { | @@ -78,15 +75,12 @@ public class AppCombinationActivityController { | ||
| 78 | public CommonResult<AppCombinationActivityDetailRespVO> getCombinationActivityDetail(@RequestParam("id") Long id) { | 75 | public CommonResult<AppCombinationActivityDetailRespVO> getCombinationActivityDetail(@RequestParam("id") Long id) { |
| 79 | // 1、获取活动 | 76 | // 1、获取活动 |
| 80 | CombinationActivityDO combinationActivity = activityService.getCombinationActivity(id); | 77 | CombinationActivityDO combinationActivity = activityService.getCombinationActivity(id); |
| 81 | - if (combinationActivity == null) { | 78 | + if (combinationActivity == null |
| 79 | + || ObjectUtil.equal(combinationActivity.getStatus(), CommonStatusEnum.DISABLE.getStatus())) { | ||
| 82 | return success(null); | 80 | return success(null); |
| 83 | } | 81 | } |
| 84 | - if (ObjectUtil.equal(combinationActivity.getStatus(), CommonStatusEnum.DISABLE.getStatus())) { | ||
| 85 | - throw exception(COMBINATION_ACTIVITY_APP_STATUS_DISABLE); | ||
| 86 | - } | ||
| 87 | - | ||
| 88 | // 2、获取活动商品 | 82 | // 2、获取活动商品 |
| 89 | - List<CombinationProductDO> products = activityService.getCombinationProductsByActivityIds(Arrays.asList(combinationActivity.getId())); | 83 | + List<CombinationProductDO> products = activityService.getCombinationProductsByActivityId(combinationActivity.getId()); |
| 90 | return success(CombinationActivityConvert.INSTANCE.convert3(combinationActivity, products)); | 84 | return success(CombinationActivityConvert.INSTANCE.convert3(combinationActivity, products)); |
| 91 | } | 85 | } |
| 92 | 86 |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/AppSeckillActivityController.java
| 1 | package cn.iocoder.yudao.module.promotion.controller.app.seckill; | 1 | package cn.iocoder.yudao.module.promotion.controller.app.seckill; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 3 | import cn.hutool.core.util.ObjectUtil; | 4 | import cn.hutool.core.util.ObjectUtil; |
| 4 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 5 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 5 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 6 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| @@ -29,10 +30,8 @@ import org.springframework.web.bind.annotation.RestController; | @@ -29,10 +30,8 @@ import org.springframework.web.bind.annotation.RestController; | ||
| 29 | import javax.annotation.Resource; | 30 | import javax.annotation.Resource; |
| 30 | import java.util.List; | 31 | import java.util.List; |
| 31 | 32 | ||
| 32 | -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 33 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 33 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 34 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; | 34 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; |
| 35 | -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.SECKILL_ACTIVITY_APP_STATUS_CLOSED; | ||
| 36 | 35 | ||
| 37 | @Tag(name = "用户 App - 秒杀活动") | 36 | @Tag(name = "用户 App - 秒杀活动") |
| 38 | @RestController | 37 | @RestController |
| @@ -48,6 +47,7 @@ public class AppSeckillActivityController { | @@ -48,6 +47,7 @@ public class AppSeckillActivityController { | ||
| 48 | @Resource | 47 | @Resource |
| 49 | private ProductSpuApi spuApi; | 48 | private ProductSpuApi spuApi; |
| 50 | 49 | ||
| 50 | + // TODO 芋艿:需要增加 spring cache | ||
| 51 | @GetMapping("/get-now") | 51 | @GetMapping("/get-now") |
| 52 | @Operation(summary = "获得当前秒杀活动", description = "获取当前正在进行的活动,提供给首页使用") | 52 | @Operation(summary = "获得当前秒杀活动", description = "获取当前正在进行的活动,提供给首页使用") |
| 53 | public CommonResult<AppSeckillActivityNowRespVO> getNowSeckillActivity() { | 53 | public CommonResult<AppSeckillActivityNowRespVO> getNowSeckillActivity() { |
| @@ -61,7 +61,6 @@ public class AppSeckillActivityController { | @@ -61,7 +61,6 @@ public class AppSeckillActivityController { | ||
| 61 | List<SeckillActivityDO> activityList = activityService.getSeckillActivityListByConfigIdAndStatus(configList.getId(), CommonStatusEnum.ENABLE.getStatus()); | 61 | List<SeckillActivityDO> activityList = activityService.getSeckillActivityListByConfigIdAndStatus(configList.getId(), CommonStatusEnum.ENABLE.getStatus()); |
| 62 | // 3 获取 spu 信息 | 62 | // 3 获取 spu 信息 |
| 63 | List<ProductSpuRespDTO> spuList = spuApi.getSpuList(convertList(activityList, SeckillActivityDO::getSpuId)); | 63 | List<ProductSpuRespDTO> spuList = spuApi.getSpuList(convertList(activityList, SeckillActivityDO::getSpuId)); |
| 64 | - // TODO 芋艿:需要增加 spring cache | ||
| 65 | return success(SeckillActivityConvert.INSTANCE.convert(configList, activityList, spuList)); | 64 | return success(SeckillActivityConvert.INSTANCE.convert(configList, activityList, spuList)); |
| 66 | } | 65 | } |
| 67 | 66 | ||
| @@ -70,7 +69,9 @@ public class AppSeckillActivityController { | @@ -70,7 +69,9 @@ public class AppSeckillActivityController { | ||
| 70 | public CommonResult<PageResult<AppSeckillActivityRespVO>> getSeckillActivityPage(AppSeckillActivityPageReqVO pageReqVO) { | 69 | public CommonResult<PageResult<AppSeckillActivityRespVO>> getSeckillActivityPage(AppSeckillActivityPageReqVO pageReqVO) { |
| 71 | // 1. 查询满足当前阶段的活动 | 70 | // 1. 查询满足当前阶段的活动 |
| 72 | PageResult<SeckillActivityDO> pageResult = activityService.getSeckillActivityAppPageByConfigId(pageReqVO); | 71 | PageResult<SeckillActivityDO> pageResult = activityService.getSeckillActivityAppPageByConfigId(pageReqVO); |
| 73 | - | 72 | + if (CollUtil.isEmpty(pageResult.getList())) { |
| 73 | + return success(PageResult.empty(pageResult.getTotal())); | ||
| 74 | + } | ||
| 74 | // 2. 拼接数据 | 75 | // 2. 拼接数据 |
| 75 | List<ProductSpuRespDTO> spuList = spuApi.getSpuList(convertList(pageResult.getList(), SeckillActivityDO::getSpuId)); | 76 | List<ProductSpuRespDTO> spuList = spuApi.getSpuList(convertList(pageResult.getList(), SeckillActivityDO::getSpuId)); |
| 76 | return success(SeckillActivityConvert.INSTANCE.convertPage(pageResult, spuList)); | 77 | return success(SeckillActivityConvert.INSTANCE.convertPage(pageResult, spuList)); |
| @@ -88,16 +89,14 @@ public class AppSeckillActivityController { | @@ -88,16 +89,14 @@ public class AppSeckillActivityController { | ||
| 88 | 89 | ||
| 89 | // 2. 获取活动 | 90 | // 2. 获取活动 |
| 90 | SeckillActivityDO seckillActivity = activityService.getSeckillActivity(id); | 91 | SeckillActivityDO seckillActivity = activityService.getSeckillActivity(id); |
| 91 | - if (seckillActivity == null) { | 92 | + if (seckillActivity == null |
| 93 | + || ObjectUtil.equal(seckillActivity.getStatus(), CommonStatusEnum.DISABLE.getStatus())) { | ||
| 92 | return success(null); | 94 | return success(null); |
| 93 | } | 95 | } |
| 94 | - if (ObjectUtil.equal(seckillActivity.getStatus(), CommonStatusEnum.DISABLE.getStatus())) { | ||
| 95 | - throw exception(SECKILL_ACTIVITY_APP_STATUS_CLOSED); | ||
| 96 | - } | ||
| 97 | 96 | ||
| 98 | // 3. 拼接数据 | 97 | // 3. 拼接数据 |
| 99 | - List<SeckillProductDO> products = activityService.getSeckillProductListByActivityId(seckillActivity.getId()); | ||
| 100 | - return success(SeckillActivityConvert.INSTANCE.convert3(seckillActivity, products, configList)); | 98 | + List<SeckillProductDO> productList = activityService.getSeckillProductListByActivityId(seckillActivity.getId()); |
| 99 | + return success(SeckillActivityConvert.INSTANCE.convert3(seckillActivity, productList, configList)); | ||
| 101 | } | 100 | } |
| 102 | 101 | ||
| 103 | } | 102 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/AppSeckillConfigController.java
| @@ -28,7 +28,8 @@ public class AppSeckillConfigController { | @@ -28,7 +28,8 @@ public class AppSeckillConfigController { | ||
| 28 | @GetMapping("/list") | 28 | @GetMapping("/list") |
| 29 | @Operation(summary = "获得秒杀时间段列表") | 29 | @Operation(summary = "获得秒杀时间段列表") |
| 30 | public CommonResult<List<AppSeckillConfigRespVO>> getSeckillConfigList() { | 30 | public CommonResult<List<AppSeckillConfigRespVO>> getSeckillConfigList() { |
| 31 | - return success(SeckillConfigConvert.INSTANCE.convertList2(configService.getSeckillConfigListByStatus(CommonStatusEnum.ENABLE.getStatus()))); | 31 | + return success(SeckillConfigConvert.INSTANCE.convertList2( |
| 32 | + configService.getSeckillConfigListByStatus(CommonStatusEnum.ENABLE.getStatus()))); | ||
| 32 | } | 33 | } |
| 33 | 34 | ||
| 34 | } | 35 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/bargain/BargainActivityConvert.java
| @@ -73,9 +73,7 @@ public interface BargainActivityConvert { | @@ -73,9 +73,7 @@ public interface BargainActivityConvert { | ||
| 73 | // 拼接关联属性 | 73 | // 拼接关联属性 |
| 74 | Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId); | 74 | Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId); |
| 75 | List<AppBargainActivityRespVO> list = CollectionUtils.convertList(result.getList(), item -> { | 75 | List<AppBargainActivityRespVO> list = CollectionUtils.convertList(result.getList(), item -> { |
| 76 | - findAndThen(spuMap, item.getSpuId(), spu -> { | ||
| 77 | - item.setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice()); | ||
| 78 | - }); | 76 | + findAndThen(spuMap, item.getSpuId(), spu -> item.setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice())); |
| 79 | return item; | 77 | return item; |
| 80 | }); | 78 | }); |
| 81 | result.setList(list); | 79 | result.setList(list); |
| @@ -88,9 +86,7 @@ public interface BargainActivityConvert { | @@ -88,9 +86,7 @@ public interface BargainActivityConvert { | ||
| 88 | List<AppBargainActivityRespVO> activityList = convertAppList(list); | 86 | List<AppBargainActivityRespVO> activityList = convertAppList(list); |
| 89 | Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId); | 87 | Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId); |
| 90 | return CollectionUtils.convertList(activityList, item -> { | 88 | return CollectionUtils.convertList(activityList, item -> { |
| 91 | - findAndThen(spuMap, item.getSpuId(), spu -> { | ||
| 92 | - item.setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice()); | ||
| 93 | - }); | 89 | + findAndThen(spuMap, item.getSpuId(), spu -> item.setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice())); |
| 94 | return item; | 90 | return item; |
| 95 | }); | 91 | }); |
| 96 | } | 92 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/combination/CombinationActivityConvert.java
| @@ -61,9 +61,7 @@ public interface CombinationActivityConvert { | @@ -61,9 +61,7 @@ public interface CombinationActivityConvert { | ||
| 61 | Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId); | 61 | Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId); |
| 62 | PageResult<CombinationActivityRespVO> pageResult = convertPage(page); | 62 | PageResult<CombinationActivityRespVO> pageResult = convertPage(page); |
| 63 | pageResult.getList().forEach(item -> { | 63 | pageResult.getList().forEach(item -> { |
| 64 | - MapUtils.findAndThen(spuMap, item.getSpuId(), spu -> { | ||
| 65 | - item.setSpuName(spu.getName()).setPicUrl(spu.getPicUrl()); | ||
| 66 | - }); | 64 | + MapUtils.findAndThen(spuMap, item.getSpuId(), spu -> item.setSpuName(spu.getName()).setPicUrl(spu.getPicUrl())); |
| 67 | item.setProducts(convertList2(productList)); | 65 | item.setProducts(convertList2(productList)); |
| 68 | }); | 66 | }); |
| 69 | return pageResult; | 67 | return pageResult; |
| @@ -118,9 +116,7 @@ public interface CombinationActivityConvert { | @@ -118,9 +116,7 @@ public interface CombinationActivityConvert { | ||
| 118 | List<AppCombinationActivityRespVO> activityList = convertAppList(list); | 116 | List<AppCombinationActivityRespVO> activityList = convertAppList(list); |
| 119 | Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId); | 117 | Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId); |
| 120 | return CollectionUtils.convertList(activityList, item -> { | 118 | return CollectionUtils.convertList(activityList, item -> { |
| 121 | - findAndThen(spuMap, item.getSpuId(), spu -> { | ||
| 122 | - item.setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice()); | ||
| 123 | - }); | 119 | + findAndThen(spuMap, item.getSpuId(), spu -> item.setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice())); |
| 124 | return item; | 120 | return item; |
| 125 | }); | 121 | }); |
| 126 | } | 122 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillactivity/SeckillActivityConvert.java
| @@ -113,11 +113,8 @@ public interface SeckillActivityConvert { | @@ -113,11 +113,8 @@ public interface SeckillActivityConvert { | ||
| 113 | PageResult<AppSeckillActivityRespVO> result = convertPage1(pageResult); | 113 | PageResult<AppSeckillActivityRespVO> result = convertPage1(pageResult); |
| 114 | Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId); | 114 | Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId); |
| 115 | List<AppSeckillActivityRespVO> list = CollectionUtils.convertList(result.getList(), item -> { | 115 | List<AppSeckillActivityRespVO> list = CollectionUtils.convertList(result.getList(), item -> { |
| 116 | - findAndThen(spuMap, item.getSpuId(), spu -> { | ||
| 117 | - item.setPicUrl(spu.getPicUrl()) | ||
| 118 | - .setMarketPrice(spu.getMarketPrice()) | ||
| 119 | - .setUnitName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.PRODUCT_UNIT, spu.getUnit())); | ||
| 120 | - }); | 116 | + findAndThen(spuMap, item.getSpuId(), spu -> item.setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice()) |
| 117 | + .setUnitName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.PRODUCT_UNIT, spu.getUnit()))); | ||
| 121 | return item; | 118 | return item; |
| 122 | }); | 119 | }); |
| 123 | result.setList(list); | 120 | result.setList(list); |
| @@ -131,6 +128,7 @@ public interface SeckillActivityConvert { | @@ -131,6 +128,7 @@ public interface SeckillActivityConvert { | ||
| 131 | default AppSeckillActivityDetailRespVO convert3(SeckillActivityDO seckillActivity, List<SeckillProductDO> products, SeckillConfigDO filteredConfig) { | 128 | default AppSeckillActivityDetailRespVO convert3(SeckillActivityDO seckillActivity, List<SeckillProductDO> products, SeckillConfigDO filteredConfig) { |
| 132 | return convert2(seckillActivity) | 129 | return convert2(seckillActivity) |
| 133 | .setProducts(convertList1(products)) | 130 | .setProducts(convertList1(products)) |
| 131 | + // TODO @puhui999:要不要在里面 default 一个方法,处理这个事件;简洁一点; | ||
| 134 | .setStartTime(LocalDateTimeUtil.parse(LocalDateTimeUtil.format(seckillActivity.getStartTime(), "yyyy-MM-dd") + " " + filteredConfig.getStartTime(), | 132 | .setStartTime(LocalDateTimeUtil.parse(LocalDateTimeUtil.format(seckillActivity.getStartTime(), "yyyy-MM-dd") + " " + filteredConfig.getStartTime(), |
| 135 | "yyyy-MM-dd HH:mm:ss")) // 活动开始日期和时段结合 | 133 | "yyyy-MM-dd HH:mm:ss")) // 活动开始日期和时段结合 |
| 136 | .setEndTime(LocalDateTimeUtil.parse(LocalDateTimeUtil.format(seckillActivity.getEndTime(), "yyyy-MM-dd") + " " + filteredConfig.getEndTime(), | 134 | .setEndTime(LocalDateTimeUtil.parse(LocalDateTimeUtil.format(seckillActivity.getEndTime(), "yyyy-MM-dd") + " " + filteredConfig.getEndTime(), |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/combination/CombinationActivityMapper.java
| @@ -29,26 +29,12 @@ public interface CombinationActivityMapper extends BaseMapperX<CombinationActivi | @@ -29,26 +29,12 @@ public interface CombinationActivityMapper extends BaseMapperX<CombinationActivi | ||
| 29 | return selectList(CombinationActivityDO::getStatus, status); | 29 | return selectList(CombinationActivityDO::getStatus, status); |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | - /** | ||
| 33 | - * 查询 status 状态的活动分页 | ||
| 34 | - * | ||
| 35 | - * @param pageParam 分页参数 | ||
| 36 | - * @param status 状态 | ||
| 37 | - * @return 活动分页 | ||
| 38 | - */ | ||
| 39 | default PageResult<CombinationActivityDO> selectPage(PageParam pageParam, Integer status) { | 32 | default PageResult<CombinationActivityDO> selectPage(PageParam pageParam, Integer status) { |
| 40 | return selectPage(pageParam, new LambdaQueryWrapperX<CombinationActivityDO>() | 33 | return selectPage(pageParam, new LambdaQueryWrapperX<CombinationActivityDO>() |
| 41 | .eq(CombinationActivityDO::getStatus, status)); | 34 | .eq(CombinationActivityDO::getStatus, status)); |
| 42 | } | 35 | } |
| 43 | 36 | ||
| 44 | - /** | ||
| 45 | - * 查询 status 状态的活动分页 | ||
| 46 | - * | ||
| 47 | - * @param status 状态 | ||
| 48 | - * @param count 限制条数 | ||
| 49 | - * @return 活动分页 | ||
| 50 | - */ | ||
| 51 | - default List<CombinationActivityDO> selectList(Integer status, Integer count) { | 37 | + default List<CombinationActivityDO> selectListByStatus(Integer status, Integer count) { |
| 52 | return selectList(new LambdaQueryWrapperX<CombinationActivityDO>() | 38 | return selectList(new LambdaQueryWrapperX<CombinationActivityDO>() |
| 53 | .eq(CombinationActivityDO::getStatus, status) | 39 | .eq(CombinationActivityDO::getStatus, status) |
| 54 | .last("LIMIT " + count)); | 40 | .last("LIMIT " + count)); |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationActivityService.java
| @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationP | @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationP | ||
| 10 | 10 | ||
| 11 | import javax.validation.Valid; | 11 | import javax.validation.Valid; |
| 12 | import java.util.Collection; | 12 | import java.util.Collection; |
| 13 | +import java.util.Collections; | ||
| 13 | import java.util.List; | 14 | import java.util.List; |
| 14 | 15 | ||
| 15 | /** | 16 | /** |
| @@ -68,6 +69,16 @@ public interface CombinationActivityService { | @@ -68,6 +69,16 @@ public interface CombinationActivityService { | ||
| 68 | /** | 69 | /** |
| 69 | * 获得拼团活动商品列表 | 70 | * 获得拼团活动商品列表 |
| 70 | * | 71 | * |
| 72 | + * @param activityId 拼团活动 id | ||
| 73 | + * @return 拼团活动的商品列表 | ||
| 74 | + */ | ||
| 75 | + default List<CombinationProductDO> getCombinationProductsByActivityId(Long activityId) { | ||
| 76 | + return getCombinationProductsByActivityIds(Collections.singletonList(activityId)); | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + /** | ||
| 80 | + * 获得拼团活动商品列表 | ||
| 81 | + * | ||
| 71 | * @param activityIds 拼团活动 ids | 82 | * @param activityIds 拼团活动 ids |
| 72 | * @return 拼团活动的商品列表 | 83 | * @return 拼团活动的商品列表 |
| 73 | */ | 84 | */ |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationActivityServiceImpl.java
| @@ -247,7 +247,7 @@ public class CombinationActivityServiceImpl implements CombinationActivityServic | @@ -247,7 +247,7 @@ public class CombinationActivityServiceImpl implements CombinationActivityServic | ||
| 247 | 247 | ||
| 248 | @Override | 248 | @Override |
| 249 | public List<CombinationActivityDO> getCombinationActivityListByCount(Integer count) { | 249 | public List<CombinationActivityDO> getCombinationActivityListByCount(Integer count) { |
| 250 | - return combinationActivityMapper.selectList(CommonStatusEnum.ENABLE.getStatus(), count); | 250 | + return combinationActivityMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus(), count); |
| 251 | } | 251 | } |
| 252 | 252 | ||
| 253 | @Override | 253 | @Override |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/TradeAfterSaleController.java
| @@ -8,11 +8,11 @@ import cn.iocoder.yudao.module.member.api.user.MemberUserApi; | @@ -8,11 +8,11 @@ import cn.iocoder.yudao.module.member.api.user.MemberUserApi; | ||
| 8 | import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; | 8 | import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; |
| 9 | import cn.iocoder.yudao.module.pay.api.notify.dto.PayRefundNotifyReqDTO; | 9 | import cn.iocoder.yudao.module.pay.api.notify.dto.PayRefundNotifyReqDTO; |
| 10 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.*; | 10 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.*; |
| 11 | +import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.log.TradeAfterSaleLogRespVO; | ||
| 11 | import cn.iocoder.yudao.module.trade.convert.aftersale.TradeAfterSaleConvert; | 12 | import cn.iocoder.yudao.module.trade.convert.aftersale.TradeAfterSaleConvert; |
| 12 | import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleDO; | 13 | import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleDO; |
| 13 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | 14 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; |
| 14 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; | 15 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; |
| 15 | -import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogRespVO; | ||
| 16 | import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.service.AfterSaleLogService; | 16 | import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.service.AfterSaleLogService; |
| 17 | import cn.iocoder.yudao.module.trade.service.aftersale.TradeAfterSaleService; | 17 | import cn.iocoder.yudao.module.trade.service.aftersale.TradeAfterSaleService; |
| 18 | import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService; | 18 | import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService; |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/aftersale/TradeAfterSaleConvert.java
| @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundCreateReqDTO; | @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundCreateReqDTO; | ||
| 6 | import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO; | 6 | import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO; |
| 7 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleDetailRespVO; | 7 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleDetailRespVO; |
| 8 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleRespPageItemVO; | 8 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleRespPageItemVO; |
| 9 | +import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.log.TradeAfterSaleLogRespVO; | ||
| 9 | import cn.iocoder.yudao.module.trade.controller.admin.base.member.user.MemberUserRespVO; | 10 | import cn.iocoder.yudao.module.trade.controller.admin.base.member.user.MemberUserRespVO; |
| 10 | import cn.iocoder.yudao.module.trade.controller.admin.base.product.property.ProductPropertyValueDetailRespVO; | 11 | import cn.iocoder.yudao.module.trade.controller.admin.base.product.property.ProductPropertyValueDetailRespVO; |
| 11 | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderBaseVO; | 12 | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderBaseVO; |
| @@ -15,7 +16,6 @@ import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleDO; | @@ -15,7 +16,6 @@ import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleDO; | ||
| 15 | import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleLogDO; | 16 | import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleLogDO; |
| 16 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | 17 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; |
| 17 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; | 18 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; |
| 18 | -import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogRespVO; | ||
| 19 | import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties; | 19 | import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties; |
| 20 | import org.mapstruct.Mapper; | 20 | import org.mapstruct.Mapper; |
| 21 | import org.mapstruct.Mapping; | 21 | import org.mapstruct.Mapping; |
| @@ -68,7 +68,7 @@ public interface TradeAfterSaleConvert { | @@ -68,7 +68,7 @@ public interface TradeAfterSaleConvert { | ||
| 68 | PageResult<AppTradeAfterSaleRespVO> convertPage02(PageResult<TradeAfterSaleDO> page); | 68 | PageResult<AppTradeAfterSaleRespVO> convertPage02(PageResult<TradeAfterSaleDO> page); |
| 69 | 69 | ||
| 70 | List<TradeAfterSaleLogRespVO> convertList(List<TradeAfterSaleLogDO> list); | 70 | List<TradeAfterSaleLogRespVO> convertList(List<TradeAfterSaleLogDO> list); |
| 71 | - | 71 | + |
| 72 | default TradeAfterSaleDetailRespVO convert(TradeAfterSaleDO afterSale, TradeOrderDO order, List<TradeOrderItemDO> orderItems, | 72 | default TradeAfterSaleDetailRespVO convert(TradeAfterSaleDO afterSale, TradeOrderDO order, List<TradeOrderItemDO> orderItems, |
| 73 | MemberUserRespDTO user, List<TradeAfterSaleLogRespVO> logs) { | 73 | MemberUserRespDTO user, List<TradeAfterSaleLogRespVO> logs) { |
| 74 | TradeAfterSaleDetailRespVO respVO = convert(afterSale, orderItems); | 74 | TradeAfterSaleDetailRespVO respVO = convert(afterSale, orderItems); |
| @@ -81,7 +81,7 @@ public interface TradeAfterSaleConvert { | @@ -81,7 +81,7 @@ public interface TradeAfterSaleConvert { | ||
| 81 | return respVO; | 81 | return respVO; |
| 82 | } | 82 | } |
| 83 | 83 | ||
| 84 | - List<cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.log.TradeAfterSaleLogRespVO> convertList1(List<TradeAfterSaleLogRespVO> list); | 84 | + List<TradeAfterSaleLogRespVO> convertList1(List<TradeAfterSaleLogRespVO> list); |
| 85 | @Mapping(target = "id", source = "afterSale.id") | 85 | @Mapping(target = "id", source = "afterSale.id") |
| 86 | TradeAfterSaleDetailRespVO convert(TradeAfterSaleDO afterSale, List<TradeOrderItemDO> orderItems); | 86 | TradeAfterSaleDetailRespVO convert(TradeAfterSaleDO afterSale, List<TradeOrderItemDO> orderItems); |
| 87 | TradeOrderBaseVO convert(TradeOrderDO order); | 87 | TradeOrderBaseVO convert(TradeOrderDO order); |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/dto/TradeAfterSaleLogRespVO.java deleted
| 1 | -package cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.AllArgsConstructor; | ||
| 5 | -import lombok.Data; | ||
| 6 | -import lombok.NoArgsConstructor; | ||
| 7 | - | ||
| 8 | -import javax.validation.constraints.NotNull; | ||
| 9 | -import java.time.LocalDateTime; | ||
| 10 | - | ||
| 11 | -/** | ||
| 12 | - * 贸易售后日志详情 DTO | ||
| 13 | - * | ||
| 14 | - * @author HUIHUI | ||
| 15 | - */ | ||
| 16 | -@Data | ||
| 17 | -@NoArgsConstructor | ||
| 18 | -@AllArgsConstructor | ||
| 19 | -public class TradeAfterSaleLogRespVO { | ||
| 20 | - | ||
| 21 | - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20669") | ||
| 22 | - private Long id; | ||
| 23 | - | ||
| 24 | - @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "22634") | ||
| 25 | - @NotNull(message = "用户编号不能为空") | ||
| 26 | - private Long userId; | ||
| 27 | - | ||
| 28 | - @Schema(description = "用户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | ||
| 29 | - @NotNull(message = "用户类型不能为空") | ||
| 30 | - private Integer userType; | ||
| 31 | - | ||
| 32 | - @Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3023") | ||
| 33 | - @NotNull(message = "售后编号不能为空") | ||
| 34 | - private Long afterSaleId; | ||
| 35 | - | ||
| 36 | - @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "25870") | ||
| 37 | - @NotNull(message = "订单编号不能为空") | ||
| 38 | - private Long orderId; | ||
| 39 | - | ||
| 40 | - @Schema(description = "订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23154") | ||
| 41 | - @NotNull(message = "订单项编号不能为空") | ||
| 42 | - private Long orderItemId; | ||
| 43 | - | ||
| 44 | - @Schema(description = "售后状态(之前)", example = "2") | ||
| 45 | - private Integer beforeStatus; | ||
| 46 | - | ||
| 47 | - @Schema(description = "售后状态(之后)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 48 | - @NotNull(message = "售后状态(之后)不能为空") | ||
| 49 | - private Integer afterStatus; | ||
| 50 | - | ||
| 51 | - @Schema(description = "操作明细", requiredMode = Schema.RequiredMode.REQUIRED, example = "维权完成,退款金额:¥37776.00") | ||
| 52 | - @NotNull(message = "操作明细不能为空") | ||
| 53 | - private String content; | ||
| 54 | - | ||
| 55 | - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 56 | - private LocalDateTime createTime; | ||
| 57 | - | ||
| 58 | -} |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/aftersalelog/core/service/AfterSaleLogService.java
| 1 | package cn.iocoder.yudao.module.trade.framework.aftersalelog.core.service; | 1 | package cn.iocoder.yudao.module.trade.framework.aftersalelog.core.service; |
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | +import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.log.TradeAfterSaleLogRespVO; | ||
| 4 | import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogCreateReqDTO; | 5 | import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogCreateReqDTO; |
| 5 | -import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogRespVO; | ||
| 6 | 6 | ||
| 7 | import java.util.List; | 7 | import java.util.List; |
| 8 | 8 |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java
| @@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundCreateReqDTO; | @@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundCreateReqDTO; | ||
| 11 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleDisagreeReqVO; | 11 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleDisagreeReqVO; |
| 12 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSalePageReqVO; | 12 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSalePageReqVO; |
| 13 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleRefuseReqVO; | 13 | import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleRefuseReqVO; |
| 14 | +import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.log.TradeAfterSaleLogRespVO; | ||
| 14 | import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSaleCreateReqVO; | 15 | import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSaleCreateReqVO; |
| 15 | import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSaleDeliveryReqVO; | 16 | import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSaleDeliveryReqVO; |
| 16 | import cn.iocoder.yudao.module.trade.convert.aftersale.TradeAfterSaleConvert; | 17 | import cn.iocoder.yudao.module.trade.convert.aftersale.TradeAfterSaleConvert; |
| @@ -26,7 +27,6 @@ import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleWayEnum; | @@ -26,7 +27,6 @@ import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleWayEnum; | ||
| 26 | import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum; | 27 | import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum; |
| 27 | import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum; | 28 | import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum; |
| 28 | import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogCreateReqDTO; | 29 | import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogCreateReqDTO; |
| 29 | -import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.dto.TradeAfterSaleLogRespVO; | ||
| 30 | import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.service.AfterSaleLogService; | 30 | import cn.iocoder.yudao.module.trade.framework.aftersalelog.core.service.AfterSaleLogService; |
| 31 | import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties; | 31 | import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties; |
| 32 | import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService; | 32 | import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService; |
| @@ -449,6 +449,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa | @@ -449,6 +449,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa | ||
| 449 | } | 449 | } |
| 450 | } | 450 | } |
| 451 | 451 | ||
| 452 | + // TODO @puhui999:应该返回 do 哈。 | ||
| 452 | @Override | 453 | @Override |
| 453 | public List<TradeAfterSaleLogRespVO> getLog(Long afterSaleId) { | 454 | public List<TradeAfterSaleLogRespVO> getLog(Long afterSaleId) { |
| 454 | // TODO 不熟悉流程先这么滴 | 455 | // TODO 不熟悉流程先这么滴 |