Commit ea6e365097e4f3c00672a6c9a69e8982ff8a6340
1 parent
a808157a
【代码优化】商城: 满减送活动校验提示优化
Showing
2 changed files
with
8 additions
and
8 deletions
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 | } |