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

This commit is contained in:
YunaiV 2024-08-23 19:08:10 +08:00
parent 4c2ed461d4
commit f5706972a0
4 changed files with 11 additions and 7 deletions

View File

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

View File

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

View File

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

View File

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