Browse Source

【代码评审】商城:满减送活动的实现

YunaiV 6 months ago
parent
commit
f5706972a0

+ 7 - 7
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/reward/vo/RewardActivityBaseVO.java

@@ -60,13 +60,6 @@ public class RewardActivityBaseVO {
     @Valid // 校验下子对象
     private List<Rule> rules;
 
-    @AssertTrue(message = "商品范围编号的数组不能为空")
-    @JsonIgnore
-    public boolean isProductScopeValuesValid() {
-        return Objects.equals(productScope, PromotionProductScopeEnum.ALL.getScope()) // 全部范围时,可以为空
-                || CollUtil.isNotEmpty(productScopeValues);
-    }
-
     @Schema(description = "优惠规则")
     @Data
     public static class Rule {
@@ -114,4 +107,11 @@ public class RewardActivityBaseVO {
 
     }
 
+    @AssertTrue(message = "商品范围编号的数组不能为空")
+    @JsonIgnore
+    public boolean isProductScopeValuesValid() {
+        return Objects.equals(productScope, PromotionProductScopeEnum.ALL.getScope()) // 全部范围时,可以为空
+                || CollUtil.isNotEmpty(productScopeValues);
+    }
+
 }

+ 2 - 0
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/reward/RewardActivityDO.java

@@ -99,6 +99,7 @@ public class RewardActivityDO extends BaseDO {
          * 是否包邮
          */
         private Boolean freeDelivery;
+        // TODO @puhui999:是不是大于零,就认为赠送积分哈;简洁一点;
         /**
          * 是否赠送积分
          */
@@ -107,6 +108,7 @@ public class RewardActivityDO extends BaseDO {
          * 赠送的积分
          */
         private Integer point;
+        // TODO @puhui999:非空,就认为赠送优惠劵
         /**
          * 是否赠送优惠券
          */

+ 1 - 0
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/reward/RewardActivityServiceImpl.java

@@ -82,6 +82,7 @@ public class RewardActivityServiceImpl implements RewardActivityService {
     @Override
     public void closeRewardActivity(Long id) {
         // 校验存在
+        // TODO @puhui999:去掉 PromotionActivityStatusEnum,使用 CommonStatus 作为状态哈。开启,关闭
         RewardActivityDO dbRewardActivity = validateRewardActivityExists(id);
         if (dbRewardActivity.getStatus().equals(PromotionActivityStatusEnum.CLOSE.getStatus())) { // 已关闭的活动,不能关闭噢
             throw exception(REWARD_ACTIVITY_CLOSE_FAIL_STATUS_CLOSED);

+ 1 - 0
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/reward/RewardActivityServiceImplTest.java

@@ -190,6 +190,7 @@ public class RewardActivityServiceImplTest extends BaseDbUnitTest {
     @Test
     public void testGetRewardActivities_product() {
         // mock 数据
+       // TODO @puhui999:有单测的问题,也一起瞅瞅
         RewardActivityDO productActivity01 = randomPojo(RewardActivityDO.class, o -> o.setStatus(PromotionActivityStatusEnum.RUN.getStatus())
                 .setProductScope(PromotionProductScopeEnum.SPU.getScope()).setProductSpuIds(asList(1L, 2L)));
         rewardActivityMapper.insert(productActivity01);