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

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 // 校验下子对象
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);
}
}

View File

@ -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非空就认为赠送优惠劵
/**
* 是否赠送优惠券
*/

View File

@ -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);

View File

@ -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);