@ -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 dbDiscountA ctivity = validateDiscountActivityExists ( id ) ;
if ( dbDiscountA ctivity. getStatus ( ) . equals ( CommonStatusEnum . DISABLE . getStatus ( ) ) ) { // 已关闭的活动,不能关闭噢
DiscountActivityDO a ctivity = validateDiscountActivityExists ( id ) ;
if ( a ctivity. 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 ) ;
}
}