Commit 159c74ce15ca924d251ae41a213cf80490acd70d
1 parent
60171ce7
订单:
1. review 发货 2. review 拼团逻辑
Showing
18 changed files
with
112 additions
and
131 deletions
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/bargain/BargainRecordApi.java
| @@ -18,7 +18,7 @@ public interface BargainRecordApi { | @@ -18,7 +18,7 @@ public interface BargainRecordApi { | ||
| 18 | * | 18 | * |
| 19 | * @param reqDTO 请求 DTO | 19 | * @param reqDTO 请求 DTO |
| 20 | */ | 20 | */ |
| 21 | - void createRecord(@Valid BargainRecordCreateReqDTO reqDTO); | 21 | + void createBargainRecord(@Valid BargainRecordCreateReqDTO reqDTO); |
| 22 | 22 | ||
| 23 | /** | 23 | /** |
| 24 | * 查询砍价是否成功 | 24 | * 查询砍价是否成功 |
| @@ -27,6 +27,6 @@ public interface BargainRecordApi { | @@ -27,6 +27,6 @@ public interface BargainRecordApi { | ||
| 27 | * @param orderId 订单编号 | 27 | * @param orderId 订单编号 |
| 28 | * @return 砍价是否成功 | 28 | * @return 砍价是否成功 |
| 29 | */ | 29 | */ |
| 30 | - boolean validateRecordSuccess(Long userId, Long orderId); | 30 | + boolean isBargainRecordSuccess(Long userId, Long orderId); |
| 31 | 31 | ||
| 32 | } | 32 | } |
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/combination/CombinationRecordApi.java
| @@ -21,7 +21,7 @@ public interface CombinationRecordApi { | @@ -21,7 +21,7 @@ public interface CombinationRecordApi { | ||
| 21 | * | 21 | * |
| 22 | * @param reqDTO 请求 DTO | 22 | * @param reqDTO 请求 DTO |
| 23 | */ | 23 | */ |
| 24 | - void createRecord(@Valid CombinationRecordCreateReqDTO reqDTO); | 24 | + void createCombinationRecord(@Valid CombinationRecordCreateReqDTO reqDTO); |
| 25 | 25 | ||
| 26 | /** | 26 | /** |
| 27 | * 查询拼团记录是否成功 | 27 | * 查询拼团记录是否成功 |
| @@ -30,7 +30,7 @@ public interface CombinationRecordApi { | @@ -30,7 +30,7 @@ public interface CombinationRecordApi { | ||
| 30 | * @param orderId 订单编号 | 30 | * @param orderId 订单编号 |
| 31 | * @return 拼团是否成功 | 31 | * @return 拼团是否成功 |
| 32 | */ | 32 | */ |
| 33 | - boolean validateRecordSuccess(Long userId, Long orderId); | 33 | + boolean isCombinationRecordSuccess(Long userId, Long orderId); |
| 34 | 34 | ||
| 35 | /** | 35 | /** |
| 36 | * 获取拼团记录 | 36 | * 获取拼团记录 |
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/combination/dto/CombinationRecordRespDTO.java
| 1 | package cn.iocoder.yudao.module.promotion.api.combination.dto; | 1 | package cn.iocoder.yudao.module.promotion.api.combination.dto; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.module.promotion.enums.combination.CombinationRecordStatusEnum; | ||
| 3 | import lombok.Data; | 4 | import lombok.Data; |
| 4 | 5 | ||
| 5 | -import javax.validation.constraints.NotNull; | ||
| 6 | - | ||
| 7 | /** | 6 | /** |
| 8 | * 拼团记录 Response DTO | 7 | * 拼团记录 Response DTO |
| 9 | * | 8 | * |
| @@ -15,32 +14,28 @@ public class CombinationRecordRespDTO { | @@ -15,32 +14,28 @@ public class CombinationRecordRespDTO { | ||
| 15 | /** | 14 | /** |
| 16 | * 拼团活动编号 | 15 | * 拼团活动编号 |
| 17 | */ | 16 | */ |
| 18 | - @NotNull(message = "拼团活动编号不能为空") | ||
| 19 | private Long activityId; | 17 | private Long activityId; |
| 20 | /** | 18 | /** |
| 21 | - * spu 编号 | 19 | + * SPU 编号 |
| 22 | */ | 20 | */ |
| 23 | - @NotNull(message = "spu 编号不能为空") | ||
| 24 | private Long spuId; | 21 | private Long spuId; |
| 25 | /** | 22 | /** |
| 26 | - * sku 编号 | 23 | + * SKU 编号 |
| 27 | */ | 24 | */ |
| 28 | - @NotNull(message = "sku 编号不能为空") | ||
| 29 | private Long skuId; | 25 | private Long skuId; |
| 30 | /** | 26 | /** |
| 31 | * 用户编号 | 27 | * 用户编号 |
| 32 | */ | 28 | */ |
| 33 | - @NotNull(message = "用户编号不能为空") | ||
| 34 | private Long userId; | 29 | private Long userId; |
| 35 | /** | 30 | /** |
| 36 | * 订单编号 | 31 | * 订单编号 |
| 37 | */ | 32 | */ |
| 38 | - @NotNull(message = "订单编号不能为空") | ||
| 39 | private Long orderId; | 33 | private Long orderId; |
| 40 | /** | 34 | /** |
| 41 | - * 开团状态:正在开团 拼团成功 拼团失败 | 35 | + * 开团状态 |
| 36 | + * | ||
| 37 | + * 枚举 {@link CombinationRecordStatusEnum} | ||
| 42 | */ | 38 | */ |
| 43 | - @NotNull(message = "开团状态不能为空") | ||
| 44 | private Integer status; | 39 | private Integer status; |
| 45 | 40 | ||
| 46 | } | 41 | } |
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/ErrorCodeConstants.java
| @@ -62,22 +62,26 @@ public interface ErrorCodeConstants { | @@ -62,22 +62,26 @@ public interface ErrorCodeConstants { | ||
| 62 | ErrorCode COMBINATION_ACTIVITY_STATUS_DISABLE = new ErrorCode(1013010002, "拼团活动已关闭不能修改"); | 62 | ErrorCode COMBINATION_ACTIVITY_STATUS_DISABLE = new ErrorCode(1013010002, "拼团活动已关闭不能修改"); |
| 63 | ErrorCode COMBINATION_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END = new ErrorCode(1013010003, "拼团活动未关闭或未结束,不能删除"); | 63 | ErrorCode COMBINATION_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END = new ErrorCode(1013010003, "拼团活动未关闭或未结束,不能删除"); |
| 64 | ErrorCode COMBINATION_RECORD_NOT_EXISTS = new ErrorCode(1013010004, "拼团不存在"); | 64 | ErrorCode COMBINATION_RECORD_NOT_EXISTS = new ErrorCode(1013010004, "拼团不存在"); |
| 65 | - ErrorCode COMBINATION_RECORD_EXISTS = new ErrorCode(1013010005, "拼团失败,已参与过该拼团"); | ||
| 66 | - ErrorCode COMBINATION_RECORD_HEAD_NOT_EXISTS = new ErrorCode(1013010006, "拼团失败,父拼团不存在"); | ||
| 67 | - ErrorCode COMBINATION_RECORD_USER_FULL = new ErrorCode(1013010007, "拼团失败,拼团人数已满"); | ||
| 68 | - ErrorCode COMBINATION_RECORD_FAILED_HAVE_JOINED = new ErrorCode(1013010008, "拼团失败,已参与其它拼团"); | ||
| 69 | - ErrorCode COMBINATION_RECORD_FAILED_TIME_END = new ErrorCode(1013010009, "拼团失败,活动已经结束"); | ||
| 70 | - ErrorCode COMBINATION_RECORD_FAILED_SINGLE_LIMIT_COUNT_EXCEED = new ErrorCode(1013010010, "拼团失败,单次限购超出"); | ||
| 71 | - ErrorCode COMBINATION_RECORD_FAILED_TOTAL_LIMIT_COUNT_EXCEED = new ErrorCode(1013010011, "拼团失败,单次限购超出"); | ||
| 72 | - | ||
| 73 | - // ========== 砍价活动 1013011000 ========== | ||
| 74 | - ErrorCode BARGAIN_ACTIVITY_NOT_EXISTS = new ErrorCode(1013011000, "砍价活动不存在"); | ||
| 75 | - ErrorCode BARGAIN_ACTIVITY_SPU_CONFLICTS = new ErrorCode(1013011001, "存在商品参加了其它砍价活动"); | ||
| 76 | - ErrorCode BARGAIN_ACTIVITY_STATUS_DISABLE = new ErrorCode(1013011002, "砍价活动已关闭不能修改"); | ||
| 77 | - ErrorCode BARGAIN_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END = new ErrorCode(1013011003, "砍价活动未关闭或未结束,不能删除"); | ||
| 78 | - ErrorCode BARGAIN_RECORD_NOT_EXISTS = new ErrorCode(1013011004, "砍价记录不存在"); | ||
| 79 | - ErrorCode BARGAIN_RECORD_EXISTS = new ErrorCode(1013011005, "砍价失败,已参与过该砍价"); | ||
| 80 | - ErrorCode BARGAIN_RECORD_HEAD_NOT_EXISTS = new ErrorCode(1013011006, "砍价失败,父砍价不存在"); | ||
| 81 | - ErrorCode BARGAIN_RECORD_USER_FULL = new ErrorCode(1013011007, "砍价失败,砍价人数已满"); | 65 | + |
| 66 | + // ========== 拼团记录 1013011000 ========== | ||
| 67 | + ErrorCode COMBINATION_RECORD_EXISTS = new ErrorCode(1013011000, "拼团失败,已参与过该拼团"); | ||
| 68 | + ErrorCode COMBINATION_RECORD_HEAD_NOT_EXISTS = new ErrorCode(1013011001, "拼团失败,父拼团不存在"); | ||
| 69 | + ErrorCode COMBINATION_RECORD_USER_FULL = new ErrorCode(1013011002, "拼团失败,拼团人数已满"); | ||
| 70 | + ErrorCode COMBINATION_RECORD_FAILED_HAVE_JOINED = new ErrorCode(1013011003, "拼团失败,已参与其它拼团"); | ||
| 71 | + ErrorCode COMBINATION_RECORD_FAILED_TIME_END = new ErrorCode(1013011004, "拼团失败,活动已经结束"); | ||
| 72 | + ErrorCode COMBINATION_RECORD_FAILED_SINGLE_LIMIT_COUNT_EXCEED = new ErrorCode(1013011005, "拼团失败,单次限购超出"); | ||
| 73 | + ErrorCode COMBINATION_RECORD_FAILED_TOTAL_LIMIT_COUNT_EXCEED = new ErrorCode(1013011006, "拼团失败,单次限购超出"); | ||
| 74 | + | ||
| 75 | + // ========== 砍价活动 1013012000 ========== | ||
| 76 | + ErrorCode BARGAIN_ACTIVITY_NOT_EXISTS = new ErrorCode(1013012000, "砍价活动不存在"); | ||
| 77 | + ErrorCode BARGAIN_ACTIVITY_SPU_CONFLICTS = new ErrorCode(1013012001, "存在商品参加了其它砍价活动"); | ||
| 78 | + ErrorCode BARGAIN_ACTIVITY_STATUS_DISABLE = new ErrorCode(1013012002, "砍价活动已关闭不能修改"); | ||
| 79 | + ErrorCode BARGAIN_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END = new ErrorCode(1013012003, "砍价活动未关闭或未结束,不能删除"); | ||
| 80 | + | ||
| 81 | + // ========== 砍价记录 1013013000 ========== | ||
| 82 | + ErrorCode BARGAIN_RECORD_NOT_EXISTS = new ErrorCode(1013013000, "砍价记录不存在"); | ||
| 83 | + ErrorCode BARGAIN_RECORD_EXISTS = new ErrorCode(1013013001, "砍价失败,已参与过该砍价"); | ||
| 84 | + ErrorCode BARGAIN_RECORD_HEAD_NOT_EXISTS = new ErrorCode(1013013002, "砍价失败,父砍价不存在"); | ||
| 85 | + ErrorCode BARGAIN_RECORD_USER_FULL = new ErrorCode(1013013003, "砍价失败,砍价人数已满"); | ||
| 82 | 86 | ||
| 83 | } | 87 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/api/bargain/BargainRecordApiImpl.java
| @@ -12,12 +12,12 @@ import org.springframework.stereotype.Service; | @@ -12,12 +12,12 @@ import org.springframework.stereotype.Service; | ||
| 12 | public class BargainRecordApiImpl implements BargainRecordApi { | 12 | public class BargainRecordApiImpl implements BargainRecordApi { |
| 13 | 13 | ||
| 14 | @Override | 14 | @Override |
| 15 | - public void createRecord(BargainRecordCreateReqDTO reqDTO) { | 15 | + public void createBargainRecord(BargainRecordCreateReqDTO reqDTO) { |
| 16 | 16 | ||
| 17 | } | 17 | } |
| 18 | 18 | ||
| 19 | @Override | 19 | @Override |
| 20 | - public boolean validateRecordSuccess(Long userId, Long orderId) { | 20 | + public boolean isBargainRecordSuccess(Long userId, Long orderId) { |
| 21 | return false; | 21 | return false; |
| 22 | } | 22 | } |
| 23 | 23 |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/api/combination/CombinationRecordApiImpl.java
| @@ -23,12 +23,12 @@ public class CombinationRecordApiImpl implements CombinationRecordApi { | @@ -23,12 +23,12 @@ public class CombinationRecordApiImpl implements CombinationRecordApi { | ||
| 23 | private CombinationRecordService recordService; | 23 | private CombinationRecordService recordService; |
| 24 | 24 | ||
| 25 | @Override | 25 | @Override |
| 26 | - public void createRecord(CombinationRecordCreateReqDTO reqDTO) { | 26 | + public void createCombinationRecord(CombinationRecordCreateReqDTO reqDTO) { |
| 27 | recordService.createCombinationRecord(reqDTO); | 27 | recordService.createCombinationRecord(reqDTO); |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | @Override | 30 | @Override |
| 31 | - public boolean validateRecordSuccess(Long userId, Long orderId) { | 31 | + public boolean isCombinationRecordSuccess(Long userId, Long orderId) { |
| 32 | return CombinationRecordStatusEnum.isSuccess(recordService.getCombinationRecord(userId, orderId).getStatus()); | 32 | return CombinationRecordStatusEnum.isSuccess(recordService.getCombinationRecord(userId, orderId).getStatus()); |
| 33 | } | 33 | } |
| 34 | 34 |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/bargain/BargainActivityController.java
| @@ -3,8 +3,7 @@ package cn.iocoder.yudao.module.promotion.controller.admin.bargain; | @@ -3,8 +3,7 @@ package cn.iocoder.yudao.module.promotion.controller.admin.bargain; | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | -import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi; | ||
| 7 | -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityBaseVO; | 6 | +import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityCreateReqVO; |
| 8 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityPageReqVO; | 7 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityPageReqVO; |
| 9 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityRespVO; | 8 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityRespVO; |
| 10 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO; | 9 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO; |
| @@ -32,13 +31,10 @@ public class BargainActivityController { | @@ -32,13 +31,10 @@ public class BargainActivityController { | ||
| 32 | @Resource | 31 | @Resource |
| 33 | private BargainActivityService activityService; | 32 | private BargainActivityService activityService; |
| 34 | 33 | ||
| 35 | - @Resource | ||
| 36 | - private ProductSpuApi productSpuApi; | ||
| 37 | - | ||
| 38 | @PostMapping("/create") | 34 | @PostMapping("/create") |
| 39 | @Operation(summary = "创建砍价活动") | 35 | @Operation(summary = "创建砍价活动") |
| 40 | @PreAuthorize("@ss.hasPermission('promotion:bargain-activity:create')") | 36 | @PreAuthorize("@ss.hasPermission('promotion:bargain-activity:create')") |
| 41 | - public CommonResult<Long> createBargainActivity(@Valid @RequestBody BargainActivityBaseVO createReqVO) { | 37 | + public CommonResult<Long> createBargainActivity(@Valid @RequestBody BargainActivityCreateReqVO createReqVO) { |
| 42 | return success(activityService.createBargainActivity(createReqVO)); | 38 | return success(activityService.createBargainActivity(createReqVO)); |
| 43 | } | 39 | } |
| 44 | 40 |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/bargain/vo/BargainActivityCreateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.Data; | ||
| 5 | +import lombok.EqualsAndHashCode; | ||
| 6 | +import lombok.ToString; | ||
| 7 | + | ||
| 8 | +@Schema(description = "管理后台 - 砍价活动创建 Request VO") | ||
| 9 | +@Data | ||
| 10 | +@EqualsAndHashCode(callSuper = true) | ||
| 11 | +@ToString(callSuper = true) | ||
| 12 | +public class BargainActivityCreateReqVO extends BargainActivityBaseVO { | ||
| 13 | + | ||
| 14 | +} |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/bargain/vo/BargainActivityPageReqVO.java
| @@ -15,7 +15,7 @@ public class BargainActivityPageReqVO extends PageParam { | @@ -15,7 +15,7 @@ public class BargainActivityPageReqVO extends PageParam { | ||
| 15 | @Schema(description = "砍价名称", example = "赵六") | 15 | @Schema(description = "砍价名称", example = "赵六") |
| 16 | private String name; | 16 | private String name; |
| 17 | 17 | ||
| 18 | - @Schema(description = "活动状态:0开启 1关闭", example = "0") | 18 | + @Schema(description = "活动状态", example = "0") |
| 19 | private Integer status; | 19 | private Integer status; |
| 20 | 20 | ||
| 21 | } | 21 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/combination/CombinationActivityConvert.java
| @@ -42,8 +42,8 @@ public interface CombinationActivityConvert { | @@ -42,8 +42,8 @@ public interface CombinationActivityConvert { | ||
| 42 | 42 | ||
| 43 | CombinationProductRespVO convert(CombinationProductDO bean); | 43 | CombinationProductRespVO convert(CombinationProductDO bean); |
| 44 | 44 | ||
| 45 | - default CombinationActivityRespVO convert(CombinationActivityDO bean, List<CombinationProductDO> productDOs) { | ||
| 46 | - return convert(bean).setProducts(convertList2(productDOs)); | 45 | + default CombinationActivityRespVO convert(CombinationActivityDO activity, List<CombinationProductDO> products) { |
| 46 | + return convert(activity).setProducts(convertList2(products)); | ||
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | List<CombinationActivityRespVO> convertList(List<CombinationActivityDO> list); | 49 | List<CombinationActivityRespVO> convertList(List<CombinationActivityDO> list); |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillactivity/SeckillActivityConvert.java
| @@ -40,24 +40,24 @@ public interface SeckillActivityConvert { | @@ -40,24 +40,24 @@ public interface SeckillActivityConvert { | ||
| 40 | 40 | ||
| 41 | PageResult<SeckillActivityRespVO> convertPage(PageResult<SeckillActivityDO> page); | 41 | PageResult<SeckillActivityRespVO> convertPage(PageResult<SeckillActivityDO> page); |
| 42 | 42 | ||
| 43 | - default PageResult<SeckillActivityRespVO> convertPage(PageResult<SeckillActivityDO> page, List<SeckillProductDO> seckillProducts, List<ProductSpuRespDTO> spuList) { | ||
| 44 | - Map<Long, ProductSpuRespDTO> spuMap = CollectionUtils.convertMap(spuList, ProductSpuRespDTO::getId); | 43 | + default PageResult<SeckillActivityRespVO> convertPage(PageResult<SeckillActivityDO> page, |
| 44 | + List<SeckillProductDO> seckillProducts, | ||
| 45 | + List<ProductSpuRespDTO> spuList) { | ||
| 45 | PageResult<SeckillActivityRespVO> pageResult = convertPage(page); | 46 | PageResult<SeckillActivityRespVO> pageResult = convertPage(page); |
| 47 | + // 拼接商品 | ||
| 48 | + Map<Long, ProductSpuRespDTO> spuMap = CollectionUtils.convertMap(spuList, ProductSpuRespDTO::getId); | ||
| 46 | pageResult.getList().forEach(item -> { | 49 | pageResult.getList().forEach(item -> { |
| 47 | - MapUtils.findAndThen(spuMap, item.getSpuId(), spu -> { | ||
| 48 | - item.setSpuName(spu.getName()); | ||
| 49 | - item.setPicUrl(spu.getPicUrl()); | ||
| 50 | - }); | ||
| 51 | - | ||
| 52 | item.setProducts(convertList2(seckillProducts)); | 50 | item.setProducts(convertList2(seckillProducts)); |
| 51 | + MapUtils.findAndThen(spuMap, item.getSpuId(), | ||
| 52 | + spu -> item.setSpuName(spu.getName()).setPicUrl(spu.getPicUrl())); | ||
| 53 | }); | 53 | }); |
| 54 | return pageResult; | 54 | return pageResult; |
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | - SeckillActivityDetailRespVO convert1(SeckillActivityDO seckillActivity); | 57 | + SeckillActivityDetailRespVO convert1(SeckillActivityDO activity); |
| 58 | 58 | ||
| 59 | - default SeckillActivityDetailRespVO convert(SeckillActivityDO seckillActivity, List<SeckillProductDO> seckillProducts) { | ||
| 60 | - return convert1(seckillActivity).setProducts(convertList2(seckillProducts)); | 59 | + default SeckillActivityDetailRespVO convert(SeckillActivityDO activity, List<SeckillProductDO> products) { |
| 60 | + return convert1(activity).setProducts(convertList2(products)); | ||
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | @Mappings({ | 63 | @Mappings({ |
| @@ -77,6 +77,6 @@ public interface SeckillActivityConvert { | @@ -77,6 +77,6 @@ public interface SeckillActivityConvert { | ||
| 77 | return CollectionUtils.convertList(products, item -> convert(activity, item).setActivityStatus(activity.getStatus())); | 77 | return CollectionUtils.convertList(products, item -> convert(activity, item).setActivityStatus(activity.getStatus())); |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | - List<SeckillProductRespVO> convertList2(List<SeckillProductDO> productDOs); | 80 | + List<SeckillProductRespVO> convertList2(List<SeckillProductDO> list); |
| 81 | 81 | ||
| 82 | } | 82 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/bargain/BargainActivityDO.java
| 1 | package cn.iocoder.yudao.module.promotion.dal.dataobject.bargain; | 1 | package cn.iocoder.yudao.module.promotion.dal.dataobject.bargain; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 4 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 4 | import com.baomidou.mybatisplus.annotation.KeySequence; | 5 | import com.baomidou.mybatisplus.annotation.KeySequence; |
| 5 | import com.baomidou.mybatisplus.annotation.TableId; | 6 | import com.baomidou.mybatisplus.annotation.TableId; |
| @@ -38,7 +39,6 @@ public class BargainActivityDO extends BaseDO { | @@ -38,7 +39,6 @@ public class BargainActivityDO extends BaseDO { | ||
| 38 | * 活动开始时间 | 39 | * 活动开始时间 |
| 39 | */ | 40 | */ |
| 40 | private LocalDateTime startTime; | 41 | private LocalDateTime startTime; |
| 41 | - | ||
| 42 | /** | 42 | /** |
| 43 | * 活动结束时间 | 43 | * 活动结束时间 |
| 44 | */ | 44 | */ |
| @@ -46,6 +46,8 @@ public class BargainActivityDO extends BaseDO { | @@ -46,6 +46,8 @@ public class BargainActivityDO extends BaseDO { | ||
| 46 | 46 | ||
| 47 | /** | 47 | /** |
| 48 | * 活动状态 | 48 | * 活动状态 |
| 49 | + * | ||
| 50 | + * 枚举 {@link CommonStatusEnum} | ||
| 49 | */ | 51 | */ |
| 50 | private Integer status; | 52 | private Integer status; |
| 51 | 53 | ||
| @@ -66,10 +68,14 @@ public class BargainActivityDO extends BaseDO { | @@ -66,10 +68,14 @@ public class BargainActivityDO extends BaseDO { | ||
| 66 | */ | 68 | */ |
| 67 | private Integer bargainPrice; | 69 | private Integer bargainPrice; |
| 68 | /** | 70 | /** |
| 71 | + * 砍价活动库存 | ||
| 72 | + */ | ||
| 73 | + private Integer stock; | ||
| 74 | + | ||
| 75 | + /** | ||
| 69 | * 达到该人数,才能砍到低价 | 76 | * 达到该人数,才能砍到低价 |
| 70 | */ | 77 | */ |
| 71 | private Integer userSize; | 78 | private Integer userSize; |
| 72 | - | ||
| 73 | /** | 79 | /** |
| 74 | * 最大帮砍次数 | 80 | * 最大帮砍次数 |
| 75 | */ | 81 | */ |
| @@ -79,22 +85,14 @@ public class BargainActivityDO extends BaseDO { | @@ -79,22 +85,14 @@ public class BargainActivityDO extends BaseDO { | ||
| 79 | * 总限购数量 | 85 | * 总限购数量 |
| 80 | */ | 86 | */ |
| 81 | private Integer totalLimitCount; | 87 | private Integer totalLimitCount; |
| 82 | - | ||
| 83 | - /** | ||
| 84 | - * 砍价活动库存 | ||
| 85 | - */ | ||
| 86 | - private Integer stock; | ||
| 87 | - | ||
| 88 | /** | 88 | /** |
| 89 | * 用户每次砍价的最小金额,单位:分 | 89 | * 用户每次砍价的最小金额,单位:分 |
| 90 | */ | 90 | */ |
| 91 | private Integer randomMinPrice; | 91 | private Integer randomMinPrice; |
| 92 | - | ||
| 93 | /** | 92 | /** |
| 94 | * 用户每次砍价的最大金额,单位:分 | 93 | * 用户每次砍价的最大金额,单位:分 |
| 95 | */ | 94 | */ |
| 96 | private Integer randomMaxPrice; | 95 | private Integer randomMaxPrice; |
| 97 | - | ||
| 98 | /** | 96 | /** |
| 99 | * 砍价成功数量 | 97 | * 砍价成功数量 |
| 100 | */ | 98 | */ |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainActivityService.java
| 1 | package cn.iocoder.yudao.module.promotion.service.bargain; | 1 | package cn.iocoder.yudao.module.promotion.service.bargain; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityBaseVO; | 4 | +import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityCreateReqVO; |
| 5 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityPageReqVO; | 5 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityPageReqVO; |
| 6 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO; | 6 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO; |
| 7 | import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO; | 7 | import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO; |
| @@ -21,7 +21,7 @@ public interface BargainActivityService { | @@ -21,7 +21,7 @@ public interface BargainActivityService { | ||
| 21 | * @param createReqVO 创建信息 | 21 | * @param createReqVO 创建信息 |
| 22 | * @return 编号 | 22 | * @return 编号 |
| 23 | */ | 23 | */ |
| 24 | - Long createBargainActivity(@Valid BargainActivityBaseVO createReqVO); | 24 | + Long createBargainActivity(@Valid BargainActivityCreateReqVO createReqVO); |
| 25 | 25 | ||
| 26 | /** | 26 | /** |
| 27 | * 更新砍价活动 | 27 | * 更新砍价活动 |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainActivityServiceImpl.java
| 1 | package cn.iocoder.yudao.module.promotion.service.bargain; | 1 | package cn.iocoder.yudao.module.promotion.service.bargain; |
| 2 | 2 | ||
| 3 | -import cn.hutool.core.collection.CollUtil; | ||
| 4 | -import cn.hutool.core.collection.CollectionUtil; | ||
| 5 | import cn.hutool.core.util.ObjectUtil; | 3 | import cn.hutool.core.util.ObjectUtil; |
| 6 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 4 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 7 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 8 | -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | ||
| 9 | import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi; | 6 | import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi; |
| 10 | import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; | 7 | import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; |
| 11 | -import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi; | ||
| 12 | -import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; | ||
| 13 | -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityBaseVO; | 8 | +import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityCreateReqVO; |
| 14 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityPageReqVO; | 9 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityPageReqVO; |
| 15 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO; | 10 | import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO; |
| 16 | import cn.iocoder.yudao.module.promotion.convert.bargain.BargainActivityConvert; | 11 | import cn.iocoder.yudao.module.promotion.convert.bargain.BargainActivityConvert; |
| 17 | import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO; | 12 | import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO; |
| 18 | import cn.iocoder.yudao.module.promotion.dal.mysql.bargain.BargainActivityMapper; | 13 | import cn.iocoder.yudao.module.promotion.dal.mysql.bargain.BargainActivityMapper; |
| 19 | -import cn.iocoder.yudao.module.promotion.dal.mysql.bargain.BargainRecordMapper; | ||
| 20 | import org.springframework.stereotype.Service; | 14 | import org.springframework.stereotype.Service; |
| 21 | import org.springframework.transaction.annotation.Transactional; | 15 | import org.springframework.transaction.annotation.Transactional; |
| 22 | import org.springframework.validation.annotation.Validated; | 16 | import org.springframework.validation.annotation.Validated; |
| @@ -27,7 +21,6 @@ import java.util.List; | @@ -27,7 +21,6 @@ import java.util.List; | ||
| 27 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | 21 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 28 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.anyMatch; | 22 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.anyMatch; |
| 29 | import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SKU_NOT_EXISTS; | 23 | import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SKU_NOT_EXISTS; |
| 30 | -import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SPU_NOT_EXISTS; | ||
| 31 | import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*; | 24 | import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*; |
| 32 | 25 | ||
| 33 | /** | 26 | /** |
| @@ -39,62 +32,27 @@ import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*; | @@ -39,62 +32,27 @@ import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*; | ||
| 39 | @Validated | 32 | @Validated |
| 40 | public class BargainActivityServiceImpl implements BargainActivityService { | 33 | public class BargainActivityServiceImpl implements BargainActivityService { |
| 41 | 34 | ||
| 42 | - | ||
| 43 | @Resource | 35 | @Resource |
| 44 | private BargainActivityMapper bargainActivityMapper; | 36 | private BargainActivityMapper bargainActivityMapper; |
| 45 | - @Resource | ||
| 46 | - private BargainRecordMapper recordMapper; | ||
| 47 | - @Resource | ||
| 48 | - private ProductSpuApi productSpuApi; | 37 | + |
| 49 | @Resource | 38 | @Resource |
| 50 | private ProductSkuApi productSkuApi; | 39 | private ProductSkuApi productSkuApi; |
| 51 | 40 | ||
| 52 | - private static void validateSku(Long skuId, List<ProductSkuRespDTO> skus) { | ||
| 53 | - // 校验商品 sku 是否存在 | ||
| 54 | - if (!CollectionUtils.convertSet(skus, ProductSkuRespDTO::getId).contains(skuId)) { | ||
| 55 | - throw exception(SKU_NOT_EXISTS); | ||
| 56 | - } | ||
| 57 | - } | ||
| 58 | - | ||
| 59 | @Override | 41 | @Override |
| 60 | - @Transactional(rollbackFor = Exception.class) | ||
| 61 | - public Long createBargainActivity(BargainActivityBaseVO createReqVO) { | 42 | + public Long createBargainActivity(BargainActivityCreateReqVO createReqVO) { |
| 62 | // 校验商品 SPU 是否存在是否参加的别的活动 | 43 | // 校验商品 SPU 是否存在是否参加的别的活动 |
| 63 | validateBargainConflict(createReqVO.getSpuId(), null); | 44 | validateBargainConflict(createReqVO.getSpuId(), null); |
| 64 | - // 获取所选 spu下的所有 sku | ||
| 65 | - List<ProductSkuRespDTO> skus = productSkuApi.getSkuListBySpuId(CollectionUtil.newArrayList(createReqVO.getSpuId())); | ||
| 66 | - validateSku(createReqVO.getSkuId(), skus); | 45 | + // 校验商品 sku 是否存在 |
| 46 | + validateSku(createReqVO.getSkuId()); | ||
| 67 | 47 | ||
| 68 | // 插入砍价活动 | 48 | // 插入砍价活动 |
| 69 | - BargainActivityDO activityDO = BargainActivityConvert.INSTANCE.convert(createReqVO); | ||
| 70 | - // TODO 营销相关属性初始化 砍价成功更新相关属性 | ||
| 71 | - activityDO.setSuccessCount(0); | ||
| 72 | - activityDO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | 49 | + BargainActivityDO activityDO = BargainActivityConvert.INSTANCE.convert(createReqVO) |
| 50 | + .setStatus(CommonStatusEnum.ENABLE.getStatus()).setSuccessCount(0); | ||
| 73 | bargainActivityMapper.insert(activityDO); | 51 | bargainActivityMapper.insert(activityDO); |
| 74 | - // 返回 | ||
| 75 | return activityDO.getId(); | 52 | return activityDO.getId(); |
| 76 | } | 53 | } |
| 77 | 54 | ||
| 78 | - private void validateBargainConflict(Long spuId, Long activityId) { | ||
| 79 | - // 校验商品 spu 是否存在 | ||
| 80 | - List<ProductSpuRespDTO> spuList = productSpuApi.getSpuList(CollUtil.newArrayList(spuId)); | ||
| 81 | - if (CollUtil.isEmpty(spuList)) { | ||
| 82 | - throw exception(SPU_NOT_EXISTS); | ||
| 83 | - } | ||
| 84 | - // 查询所有开启的砍价活动 | ||
| 85 | - List<BargainActivityDO> activityDOs = bargainActivityMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus()); | ||
| 86 | - // 更新时排除自己 | ||
| 87 | - if (activityId != null) { | ||
| 88 | - activityDOs.removeIf(item -> ObjectUtil.equal(item.getId(), activityId)); | ||
| 89 | - } | ||
| 90 | - // 校验商品 spu 是否参加了其它活动 | ||
| 91 | - if (anyMatch(activityDOs, s -> ObjectUtil.equal(s.getId(), spuId))) { | ||
| 92 | - throw exception(BARGAIN_ACTIVITY_SPU_CONFLICTS); | ||
| 93 | - } | ||
| 94 | - } | ||
| 95 | - | ||
| 96 | @Override | 55 | @Override |
| 97 | - @Transactional(rollbackFor = Exception.class) | ||
| 98 | public void updateBargainActivity(BargainActivityUpdateReqVO updateReqVO) { | 56 | public void updateBargainActivity(BargainActivityUpdateReqVO updateReqVO) { |
| 99 | // 校验存在 | 57 | // 校验存在 |
| 100 | BargainActivityDO activityDO = validateBargainActivityExists(updateReqVO.getId()); | 58 | BargainActivityDO activityDO = validateBargainActivityExists(updateReqVO.getId()); |
| @@ -104,15 +62,31 @@ public class BargainActivityServiceImpl implements BargainActivityService { | @@ -104,15 +62,31 @@ public class BargainActivityServiceImpl implements BargainActivityService { | ||
| 104 | } | 62 | } |
| 105 | // 校验商品冲突 | 63 | // 校验商品冲突 |
| 106 | validateBargainConflict(updateReqVO.getSpuId(), updateReqVO.getId()); | 64 | validateBargainConflict(updateReqVO.getSpuId(), updateReqVO.getId()); |
| 107 | - // 获取所选 spu下的所有 sku | ||
| 108 | - List<ProductSkuRespDTO> skus = productSkuApi.getSkuListBySpuId(CollectionUtil.newArrayList(updateReqVO.getSpuId())); | ||
| 109 | // 校验商品 sku 是否存在 | 65 | // 校验商品 sku 是否存在 |
| 110 | - validateSku(updateReqVO.getSkuId(), skus); | 66 | + validateSku(updateReqVO.getSkuId()); |
| 111 | 67 | ||
| 112 | // 更新 | 68 | // 更新 |
| 113 | BargainActivityDO updateObj = BargainActivityConvert.INSTANCE.convert(updateReqVO); | 69 | BargainActivityDO updateObj = BargainActivityConvert.INSTANCE.convert(updateReqVO); |
| 114 | bargainActivityMapper.updateById(updateObj); | 70 | bargainActivityMapper.updateById(updateObj); |
| 71 | + } | ||
| 72 | + | ||
| 73 | + private void validateBargainConflict(Long spuId, Long activityId) { | ||
| 74 | + // 查询所有开启的砍价活动 | ||
| 75 | + List<BargainActivityDO> activityList = bargainActivityMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus()); | ||
| 76 | + if (activityId != null) { // 更新时排除自己 | ||
| 77 | + activityList.removeIf(item -> ObjectUtil.equal(item.getId(), activityId)); | ||
| 78 | + } | ||
| 79 | + // 校验商品 spu 是否参加了其它活动 | ||
| 80 | + if (anyMatch(activityList, activity -> ObjectUtil.equal(activity.getSpuId(), spuId))) { | ||
| 81 | + throw exception(BARGAIN_ACTIVITY_SPU_CONFLICTS); | ||
| 82 | + } | ||
| 83 | + } | ||
| 115 | 84 | ||
| 85 | + private void validateSku(Long skuId) { | ||
| 86 | + ProductSkuRespDTO sku = productSkuApi.getSku(skuId); | ||
| 87 | + if (sku == null) { | ||
| 88 | + throw exception(SKU_NOT_EXISTS); | ||
| 89 | + } | ||
| 116 | } | 90 | } |
| 117 | 91 | ||
| 118 | @Override | 92 | @Override |
| @@ -139,7 +113,7 @@ public class BargainActivityServiceImpl implements BargainActivityService { | @@ -139,7 +113,7 @@ public class BargainActivityServiceImpl implements BargainActivityService { | ||
| 139 | 113 | ||
| 140 | @Override | 114 | @Override |
| 141 | public BargainActivityDO getBargainActivity(Long id) { | 115 | public BargainActivityDO getBargainActivity(Long id) { |
| 142 | - return validateBargainActivityExists(id); | 116 | + return bargainActivityMapper.selectById(id); |
| 143 | } | 117 | } |
| 144 | 118 | ||
| 145 | @Override | 119 | @Override |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderDeliveryReqVO.java
| @@ -16,6 +16,7 @@ public class TradeOrderDeliveryReqVO { | @@ -16,6 +16,7 @@ public class TradeOrderDeliveryReqVO { | ||
| 16 | @NotNull(message = "订单编号不能为空") | 16 | @NotNull(message = "订单编号不能为空") |
| 17 | private Long id; | 17 | private Long id; |
| 18 | 18 | ||
| 19 | + // TODO @puhui999:可以去掉 type;如果无需发货,则 logisticsId 传递 0;logisticsNo 传递空串 | ||
| 19 | @Schema(description = "发货类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") | 20 | @Schema(description = "发货类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") |
| 20 | @InEnum(DeliveryTypeEnum.class) | 21 | @InEnum(DeliveryTypeEnum.class) |
| 21 | @NotNull(message = "发货类型不能为空") | 22 | @NotNull(message = "发货类型不能为空") |
| @@ -29,5 +30,4 @@ public class TradeOrderDeliveryReqVO { | @@ -29,5 +30,4 @@ public class TradeOrderDeliveryReqVO { | ||
| 29 | @NotEmpty(message = "发货物流单号不能为空") | 30 | @NotEmpty(message = "发货物流单号不能为空") |
| 30 | private String logisticsNo; | 31 | private String logisticsNo; |
| 31 | 32 | ||
| 32 | - | ||
| 33 | } | 33 | } |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/AppTradeOrderController.java
| @@ -150,7 +150,8 @@ public class AppTradeOrderController { | @@ -150,7 +150,8 @@ public class AppTradeOrderController { | ||
| 150 | @Operation(summary = "确认交易订单收货") | 150 | @Operation(summary = "确认交易订单收货") |
| 151 | @Parameter(name = "id", description = "交易订单编号") | 151 | @Parameter(name = "id", description = "交易订单编号") |
| 152 | public CommonResult<Boolean> takeOrder(@RequestParam("id") Long id) { | 152 | public CommonResult<Boolean> takeOrder(@RequestParam("id") Long id) { |
| 153 | - return success(tradeOrderService.receiveOrder(getLoginUserId(), id)); | 153 | + tradeOrderService.receiveOrder(getLoginUserId(), id); |
| 154 | + return success(true); | ||
| 154 | } | 155 | } |
| 155 | 156 | ||
| 156 | @DeleteMapping("/cancel") | 157 | @DeleteMapping("/cancel") |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java
| @@ -66,9 +66,8 @@ public interface TradeOrderService { | @@ -66,9 +66,8 @@ public interface TradeOrderService { | ||
| 66 | * | 66 | * |
| 67 | * @param userId 用户编号 | 67 | * @param userId 用户编号 |
| 68 | * @param id 订单编号 | 68 | * @param id 订单编号 |
| 69 | - * @return 成功/失败 | ||
| 70 | */ | 69 | */ |
| 71 | - Boolean receiveOrder(Long userId, Long id); | 70 | + void receiveOrder(Long userId, Long id); |
| 72 | 71 | ||
| 73 | /** | 72 | /** |
| 74 | * 获得指定编号的交易订单 | 73 | * 获得指定编号的交易订单 |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java
| @@ -190,7 +190,7 @@ public class TradeOrderServiceImpl implements TradeOrderService { | @@ -190,7 +190,7 @@ public class TradeOrderServiceImpl implements TradeOrderService { | ||
| 190 | CollectionUtils.getSumValue(tradeOrderItemDOS, TradeOrderItemDO::getCount, Integer::sum), orderItemDO.getCount()); | 190 | CollectionUtils.getSumValue(tradeOrderItemDOS, TradeOrderItemDO::getCount, Integer::sum), orderItemDO.getCount()); |
| 191 | } | 191 | } |
| 192 | 192 | ||
| 193 | - combinationRecordApi.createRecord(TradeOrderConvert.INSTANCE.convert(order, orderItemDO, createReqVO, user)); | 193 | + combinationRecordApi.createCombinationRecord(TradeOrderConvert.INSTANCE.convert(order, orderItemDO, createReqVO, user)); |
| 194 | } | 194 | } |
| 195 | // TODO 秒杀扣减库存是下单就扣除还是等待订单支付成功再扣除 | 195 | // TODO 秒杀扣减库存是下单就扣除还是等待订单支付成功再扣除 |
| 196 | if (Objects.equals(TradeOrderTypeEnum.SECKILL.getType(), order.getType())) { | 196 | if (Objects.equals(TradeOrderTypeEnum.SECKILL.getType(), order.getType())) { |
| @@ -392,10 +392,10 @@ public class TradeOrderServiceImpl implements TradeOrderService { | @@ -392,10 +392,10 @@ public class TradeOrderServiceImpl implements TradeOrderService { | ||
| 392 | return new KeyValue<>(order, payOrder); | 392 | return new KeyValue<>(order, payOrder); |
| 393 | } | 393 | } |
| 394 | 394 | ||
| 395 | - // TODO @芋艿:后续在 review 下发货逻辑 | ||
| 396 | @Override | 395 | @Override |
| 397 | @Transactional(rollbackFor = Exception.class) | 396 | @Transactional(rollbackFor = Exception.class) |
| 398 | public void deliveryOrder(Long userId, TradeOrderDeliveryReqVO deliveryReqVO) { | 397 | public void deliveryOrder(Long userId, TradeOrderDeliveryReqVO deliveryReqVO) { |
| 398 | + // TODO @puhui999:只有选择快递的,才可以发货 | ||
| 399 | // 1.1 校验并获得交易订单(可发货) | 399 | // 1.1 校验并获得交易订单(可发货) |
| 400 | TradeOrderDO order = validateOrderDeliverable(deliveryReqVO.getId()); | 400 | TradeOrderDO order = validateOrderDeliverable(deliveryReqVO.getId()); |
| 401 | TradeOrderDO updateOrderObj = new TradeOrderDO(); | 401 | TradeOrderDO updateOrderObj = new TradeOrderDO(); |
| @@ -412,6 +412,7 @@ public class TradeOrderServiceImpl implements TradeOrderService { | @@ -412,6 +412,7 @@ public class TradeOrderServiceImpl implements TradeOrderService { | ||
| 412 | } | 412 | } |
| 413 | updateOrderObj.setLogisticsId(deliveryReqVO.getLogisticsId()).setLogisticsNo(deliveryReqVO.getLogisticsNo()).setDeliveryType(DeliveryTypeEnum.EXPRESS.getMode()); | 413 | updateOrderObj.setLogisticsId(deliveryReqVO.getLogisticsId()).setLogisticsNo(deliveryReqVO.getLogisticsNo()).setDeliveryType(DeliveryTypeEnum.EXPRESS.getMode()); |
| 414 | } | 414 | } |
| 415 | + // TODO @puhui999:无需发货时,更新 logisticsId 为 0; | ||
| 415 | // 2.2 无需发货 | 416 | // 2.2 无需发货 |
| 416 | if (Objects.equals(deliveryReqVO.getType(), DeliveryTypeEnum.NULL.getMode())) { | 417 | if (Objects.equals(deliveryReqVO.getType(), DeliveryTypeEnum.NULL.getMode())) { |
| 417 | updateOrderObj.setLogisticsId(null).setLogisticsNo("").setDeliveryType(DeliveryTypeEnum.NULL.getMode()); | 418 | updateOrderObj.setLogisticsId(null).setLogisticsNo("").setDeliveryType(DeliveryTypeEnum.NULL.getMode()); |
| @@ -458,14 +459,14 @@ public class TradeOrderServiceImpl implements TradeOrderService { | @@ -458,14 +459,14 @@ public class TradeOrderServiceImpl implements TradeOrderService { | ||
| 458 | // 订单类型:拼团 | 459 | // 订单类型:拼团 |
| 459 | if (Objects.equals(TradeOrderTypeEnum.COMBINATION.getType(), order.getType())) { | 460 | if (Objects.equals(TradeOrderTypeEnum.COMBINATION.getType(), order.getType())) { |
| 460 | // 校验订单拼团是否成功 | 461 | // 校验订单拼团是否成功 |
| 461 | - if (combinationRecordApi.validateRecordSuccess(order.getUserId(), order.getId())) { | 462 | + if (combinationRecordApi.isCombinationRecordSuccess(order.getUserId(), order.getId())) { |
| 462 | throw exception(ORDER_DELIVERY_FAIL_COMBINATION_RECORD_STATUS_NOT_SUCCESS); | 463 | throw exception(ORDER_DELIVERY_FAIL_COMBINATION_RECORD_STATUS_NOT_SUCCESS); |
| 463 | } | 464 | } |
| 464 | } | 465 | } |
| 465 | // 订单类类型:砍价 | 466 | // 订单类类型:砍价 |
| 466 | if (Objects.equals(TradeOrderTypeEnum.BARGAIN.getType(), order.getType())) { | 467 | if (Objects.equals(TradeOrderTypeEnum.BARGAIN.getType(), order.getType())) { |
| 467 | // 校验订单砍价是否成功 | 468 | // 校验订单砍价是否成功 |
| 468 | - if (bargainRecordApi.validateRecordSuccess(order.getUserId(), order.getId())) { | 469 | + if (bargainRecordApi.isBargainRecordSuccess(order.getUserId(), order.getId())) { |
| 469 | throw exception(ORDER_DELIVERY_FAIL_BARGAIN_RECORD_STATUS_NOT_SUCCESS); | 470 | throw exception(ORDER_DELIVERY_FAIL_BARGAIN_RECORD_STATUS_NOT_SUCCESS); |
| 470 | } | 471 | } |
| 471 | } | 472 | } |
| @@ -474,7 +475,7 @@ public class TradeOrderServiceImpl implements TradeOrderService { | @@ -474,7 +475,7 @@ public class TradeOrderServiceImpl implements TradeOrderService { | ||
| 474 | 475 | ||
| 475 | @Override | 476 | @Override |
| 476 | @Transactional(rollbackFor = Exception.class) | 477 | @Transactional(rollbackFor = Exception.class) |
| 477 | - public Boolean receiveOrder(Long userId, Long id) { | 478 | + public void receiveOrder(Long userId, Long id) { |
| 478 | // 校验并获得交易订单(可收货) | 479 | // 校验并获得交易订单(可收货) |
| 479 | TradeOrderDO order = validateOrderReceivable(userId, id); | 480 | TradeOrderDO order = validateOrderReceivable(userId, id); |
| 480 | 481 | ||
| @@ -489,7 +490,6 @@ public class TradeOrderServiceImpl implements TradeOrderService { | @@ -489,7 +490,6 @@ public class TradeOrderServiceImpl implements TradeOrderService { | ||
| 489 | // TODO 芋艿:lili 发送订单变化的消息 | 490 | // TODO 芋艿:lili 发送订单变化的消息 |
| 490 | 491 | ||
| 491 | // TODO 芋艿:lili 发送商品被购买完成的数据 | 492 | // TODO 芋艿:lili 发送商品被购买完成的数据 |
| 492 | - return Boolean.TRUE; | ||
| 493 | } | 493 | } |
| 494 | 494 | ||
| 495 | /** | 495 | /** |