|
@@ -43,7 +43,7 @@ public class DiscountActivityServiceImpl implements DiscountActivityService {
|
|
|
|
|
|
@Override
|
|
|
public List<DiscountProductDO> getMatchDiscountProductList(Collection<Long> skuIds) {
|
|
|
- // 芋艿:开启、满足 skuId、日期内
|
|
|
+ // TODO @zhangshuai:这里是不是可以直接 return discountProductMapper.getMatchDiscountProductList(skuIds); 一般来说,如果 idea 报“黄色”的警告,尽量都处理下哈;原则是,一切警告,皆为异常(错误),这样可以写出更好的代码。
|
|
|
List<DiscountProductDO> matchDiscountProductList = discountProductMapper.getMatchDiscountProductList(skuIds);
|
|
|
return matchDiscountProductList;
|
|
|
}
|
|
@@ -55,9 +55,11 @@ public class DiscountActivityServiceImpl implements DiscountActivityService {
|
|
|
|
|
|
// 插入活动
|
|
|
DiscountActivityDO discountActivity = DiscountActivityConvert.INSTANCE.convert(createReqVO)
|
|
|
+ // TODO @zhangshuai:这里的调用去掉哈,强制就是开启的;
|
|
|
.setStatus(PromotionUtils.calculateActivityStatus(createReqVO.getEndTime()));
|
|
|
discountActivityMapper.insert(discountActivity);
|
|
|
// 插入商品
|
|
|
+ // TODO @zhangshuai:activityStatus 最好代码里,也做下设置噢。
|
|
|
List<DiscountProductDO> discountProducts = convertList(createReqVO.getProducts(),
|
|
|
product -> DiscountActivityConvert.INSTANCE.convert(product).setActivityId(discountActivity.getId()));
|
|
|
discountProductMapper.insertBatch(discountProducts);
|
|
@@ -84,6 +86,8 @@ public class DiscountActivityServiceImpl implements DiscountActivityService {
|
|
|
}
|
|
|
|
|
|
private void updateDiscountProduct(DiscountActivityUpdateReqVO updateReqVO) {
|
|
|
+ // TODO @zhangshuai:这里的逻辑,可以优化下哈;参考 CombinationActivityServiceImpl 的 updateCombinationProduct,主要是 CollectionUtils.diffList 的使用哈;
|
|
|
+ // 然后原先是使用 DiscountActivityConvert.INSTANCE.isEquals 对比,现在看看是不是简化就基于 skuId 对比就完事了;之前写的太精细,意义不大;
|
|
|
List<DiscountProductDO> dbDiscountProducts = discountProductMapper.selectListByActivityId(updateReqVO.getId());
|
|
|
// 计算要删除的记录
|
|
|
List<Long> deleteIds = convertList(dbDiscountProducts, DiscountProductDO::getId,
|
|
@@ -102,7 +106,6 @@ public class DiscountActivityServiceImpl implements DiscountActivityService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 芋艿:校验逻辑简化,只查询时间冲突的活动,开启状态的。
|
|
|
/**
|
|
|
* 校验商品是否冲突
|
|
|
*
|
|
@@ -114,13 +117,11 @@ public class DiscountActivityServiceImpl implements DiscountActivityService {
|
|
|
return;
|
|
|
}
|
|
|
// 查询商品参加的活动
|
|
|
-
|
|
|
+ // TODO @zhangshuai:下面 121 这个查询,是不是不用做呀;直接 convert 出 skuId 集合就 ok 啦;
|
|
|
List<DiscountProductDO> list = discountProductMapper.selectListByActivityId(id);
|
|
|
+ // TODO @zhangshuai:一般简单的 stream 方法,建议是使用 CollectionUtils,例如说这里是 convertList 对把。
|
|
|
List<Long> skuIds = list.stream().map(item -> item.getSkuId()).collect(Collectors.toList());
|
|
|
List<DiscountProductDO> matchDiscountProductList = getMatchDiscountProductList(skuIds);
|
|
|
-// getRewardProductListBySkuIds(
|
|
|
-// convertSet(products, DiscountActivityBaseVO.Product::getSkuId),
|
|
|
-// asList(PromotionActivityStatusEnum.WAIT.getStatus(), PromotionActivityStatusEnum.RUN.getStatus()));
|
|
|
if (id != null) { // 排除自己这个活动
|
|
|
matchDiscountProductList.removeIf(product -> id.equals(product.getActivityId()));
|
|
|
}
|
|
@@ -133,15 +134,12 @@ public class DiscountActivityServiceImpl implements DiscountActivityService {
|
|
|
@Override
|
|
|
public void closeDiscountActivity(Long id) {
|
|
|
// 校验存在
|
|
|
- DiscountActivityDO dbDiscountActivity = validateDiscountActivityExists(id);
|
|
|
- if (dbDiscountActivity.getStatus().equals(CommonStatusEnum.DISABLE.getStatus())) { // 已关闭的活动,不能关闭噢
|
|
|
+ DiscountActivityDO activity = validateDiscountActivityExists(id);
|
|
|
+ if (activity.getStatus().equals(CommonStatusEnum.DISABLE.getStatus())) { // 已关闭的活动,不能关闭噢
|
|
|
throw exception(DISCOUNT_ACTIVITY_CLOSE_FAIL_STATUS_CLOSED);
|
|
|
}
|
|
|
- if (dbDiscountActivity.getStatus().equals(CommonStatusEnum.DISABLE.getStatus())) { // 已关闭的活动,不能关闭噢
|
|
|
- throw exception(DISCOUNT_ACTIVITY_CLOSE_FAIL_STATUS_END);
|
|
|
- }
|
|
|
|
|
|
- // 更新为关闭。
|
|
|
+ // 更新
|
|
|
DiscountActivityDO updateObj = new DiscountActivityDO().setId(id).setStatus(PromotionActivityStatusEnum.CLOSE.getStatus());
|
|
|
discountActivityMapper.updateById(updateObj);
|
|
|
}
|
|
@@ -185,4 +183,5 @@ public class DiscountActivityServiceImpl implements DiscountActivityService {
|
|
|
public List<DiscountProductDO> getDiscountProductsByActivityId(Collection<Long> activityIds) {
|
|
|
return discountProductMapper.selectList("activity_id", activityIds);
|
|
|
}
|
|
|
+
|
|
|
}
|