Commit ea6e365097e4f3c00672a6c9a69e8982ff8a6340

Authored by puhui999
1 parent a808157a

【代码优化】商城: 满减送活动校验提示优化

yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/ErrorCodeConstants.java
@@ -44,7 +44,7 @@ public interface ErrorCodeConstants { @@ -44,7 +44,7 @@ public interface ErrorCodeConstants {
44 ErrorCode REWARD_ACTIVITY_UPDATE_FAIL_STATUS_CLOSED = new ErrorCode(1_013_006_002, "满减送活动已关闭,不能修改"); 44 ErrorCode REWARD_ACTIVITY_UPDATE_FAIL_STATUS_CLOSED = new ErrorCode(1_013_006_002, "满减送活动已关闭,不能修改");
45 ErrorCode REWARD_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED = new ErrorCode(1_013_006_003, "满减送活动未关闭,不能删除"); 45 ErrorCode REWARD_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED = new ErrorCode(1_013_006_003, "满减送活动未关闭,不能删除");
46 ErrorCode REWARD_ACTIVITY_CLOSE_FAIL_STATUS_CLOSED = new ErrorCode(1_013_006_004, "满减送活动已关闭,不能重复关闭"); 46 ErrorCode REWARD_ACTIVITY_CLOSE_FAIL_STATUS_CLOSED = new ErrorCode(1_013_006_004, "满减送活动已关闭,不能重复关闭");
47 - ErrorCode REWARD_ACTIVITY_SCOPE_EXISTS = new ErrorCode(1_013_006_005, "与该时间段已存在的满减送活动商品范围冲突"); 47 + ErrorCode REWARD_ACTIVITY_SCOPE_EXISTS = new ErrorCode(1_013_006_005, "与该时间段满减送活动【{}】商品范围冲突,原因:{}");
48 48
49 // ========== TODO 空着 1-013-007-000 ============ 49 // ========== TODO 空着 1-013-007-000 ============
50 50
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/reward/RewardActivityServiceImpl.java
@@ -135,16 +135,16 @@ public class RewardActivityServiceImpl implements RewardActivityService { @@ -135,16 +135,16 @@ public class RewardActivityServiceImpl implements RewardActivityService {
135 // 例如说,rewardActivity 是全部活动,结果有个 db 里的 activity 是某个分类,它也是冲突的。也就是说,当前时间段内,有且仅有只能有一个活动! 135 // 例如说,rewardActivity 是全部活动,结果有个 db 里的 activity 是某个分类,它也是冲突的。也就是说,当前时间段内,有且仅有只能有一个活动!
136 if (PromotionProductScopeEnum.isAll(item.getProductScope()) || 136 if (PromotionProductScopeEnum.isAll(item.getProductScope()) ||
137 PromotionProductScopeEnum.isAll(rewardActivity.getProductScope())) { 137 PromotionProductScopeEnum.isAll(rewardActivity.getProductScope())) {
138 - // TODO puhui999:需要提示出来与满减送活动“xxx 活动”存在商品范围冲突;这里可能要分情况,下面需要把 activityName 传入  
139 - throw exception(REWARD_ACTIVITY_SCOPE_EXISTS); 138 + throw exception(REWARD_ACTIVITY_SCOPE_EXISTS, item.getName(),
  139 + PromotionProductScopeEnum.isAll(item.getProductScope()) ? "该活动商品范围为全部已覆盖包含本活动范围" :
  140 + "本活动商品范围为全部已覆盖包含了该活动商品范围");
140 } 141 }
141 // 情况二:如果与该时间段内商品范围为类别的活动冲突 142 // 情况二:如果与该时间段内商品范围为类别的活动冲突
142 if (PromotionProductScopeEnum.isCategory(item.getProductScope())) { 143 if (PromotionProductScopeEnum.isCategory(item.getProductScope())) {
143 - // TODO puhui999:前端我们有限制,只允许子分类么?可能要限制下,不然基于分类查询不到对应的商品。因为商品目前必须在子分类下  
144 // 校验分类是否冲突 144 // 校验分类是否冲突
145 if (PromotionProductScopeEnum.isCategory(rewardActivity.getProductScope())) { 145 if (PromotionProductScopeEnum.isCategory(rewardActivity.getProductScope())) {
146 if (!intersectionDistinct(item.getProductScopeValues(), rewardActivity.getProductScopeValues()).isEmpty()) { 146 if (!intersectionDistinct(item.getProductScopeValues(), rewardActivity.getProductScopeValues()).isEmpty()) {
147 - throw exception(REWARD_ACTIVITY_SCOPE_EXISTS); 147 + throw exception(REWARD_ACTIVITY_SCOPE_EXISTS, item.getName(), "商品分类范围重叠");
148 } 148 }
149 } 149 }
150 // 校验商品分类是否冲突 150 // 校验商品分类是否冲突
@@ -152,7 +152,7 @@ public class RewardActivityServiceImpl implements RewardActivityService { @@ -152,7 +152,7 @@ public class RewardActivityServiceImpl implements RewardActivityService {
152 List<ProductSpuRespDTO> spuList = productSpuApi.getSpuList(rewardActivity.getProductScopeValues()); 152 List<ProductSpuRespDTO> spuList = productSpuApi.getSpuList(rewardActivity.getProductScopeValues());
153 if (!intersectionDistinct(item.getProductScopeValues(), 153 if (!intersectionDistinct(item.getProductScopeValues(),
154 convertSet(spuList, ProductSpuRespDTO::getCategoryId)).isEmpty()) { 154 convertSet(spuList, ProductSpuRespDTO::getCategoryId)).isEmpty()) {
155 - throw exception(REWARD_ACTIVITY_SCOPE_EXISTS); 155 + throw exception(REWARD_ACTIVITY_SCOPE_EXISTS, item.getName(), "该活动商品分类范围已包含本活动所选商品");
156 } 156 }
157 } 157 }
158 } 158 }
@@ -161,7 +161,7 @@ public class RewardActivityServiceImpl implements RewardActivityService { @@ -161,7 +161,7 @@ public class RewardActivityServiceImpl implements RewardActivityService {
161 // 校验商品是否冲突 161 // 校验商品是否冲突
162 if (PromotionProductScopeEnum.isSpu(rewardActivity.getProductScope())) { 162 if (PromotionProductScopeEnum.isSpu(rewardActivity.getProductScope())) {
163 if (!intersectionDistinct(item.getProductScopeValues(), rewardActivity.getProductScopeValues()).isEmpty()) { 163 if (!intersectionDistinct(item.getProductScopeValues(), rewardActivity.getProductScopeValues()).isEmpty()) {
164 - throw exception(REWARD_ACTIVITY_SCOPE_EXISTS); 164 + throw exception(REWARD_ACTIVITY_SCOPE_EXISTS, item.getName(), "活动商品范围所选商品重叠");
165 } 165 }
166 } 166 }
167 // 校验商品分类是否冲突 167 // 校验商品分类是否冲突
@@ -169,7 +169,7 @@ public class RewardActivityServiceImpl implements RewardActivityService { @@ -169,7 +169,7 @@ public class RewardActivityServiceImpl implements RewardActivityService {
169 List<ProductSpuRespDTO> spuList = productSpuApi.getSpuList(item.getProductScopeValues()); 169 List<ProductSpuRespDTO> spuList = productSpuApi.getSpuList(item.getProductScopeValues());
170 if (!intersectionDistinct(rewardActivity.getProductScopeValues(), 170 if (!intersectionDistinct(rewardActivity.getProductScopeValues(),
171 convertSet(spuList, ProductSpuRespDTO::getCategoryId)).isEmpty()) { 171 convertSet(spuList, ProductSpuRespDTO::getCategoryId)).isEmpty()) {
172 - throw exception(REWARD_ACTIVITY_SCOPE_EXISTS); 172 + throw exception(REWARD_ACTIVITY_SCOPE_EXISTS, item.getName(), "本活动商品分类范围包含了该活动所选商品");
173 } 173 }
174 } 174 }
175 } 175 }