批量关闭活动问题处理

This commit is contained in:
Chopper 2021-06-13 14:48:45 +08:00
parent 6ef71d9dfe
commit 2472cfd93b

View File

@ -12,6 +12,7 @@ import cn.lili.modules.search.service.EsGoodsIndexService;
import cn.lili.timetask.handler.EveryDayExecute; import cn.lili.timetask.handler.EveryDayExecute;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
@ -28,8 +29,8 @@ import java.util.List;
* @author Chopper * @author Chopper
* @date 2021/3/18 3:23 下午 * @date 2021/3/18 3:23 下午
*/ */
@Slf4j
@Component @Component
public class PromotionEverydayExecute implements EveryDayExecute { public class PromotionEverydayExecute implements EveryDayExecute {
//Mongo //Mongo
@ -60,19 +61,20 @@ public class PromotionEverydayExecute implements EveryDayExecute {
*/ */
@Override @Override
public void execute() { public void execute() {
//mongo查询条件
Query query = new Query(); Query query = new Query();
// 结束条件 活动关闭/活动结束 //结束条件 活动关闭/活动结束
query.addCriteria(Criteria.where("promotionStatus").ne(PromotionStatusEnum.END.name()) query.addCriteria(Criteria.where("promotionStatus").ne(PromotionStatusEnum.END.name())
.orOperator(Criteria.where("promotionStatus").ne(PromotionStatusEnum.CLOSE.name()))); .orOperator(Criteria.where("promotionStatus").ne(PromotionStatusEnum.CLOSE.name())));
//结束条件 活动结束时间大于当前时间
query.addCriteria(Criteria.where("endTime").lt(new Date())); query.addCriteria(Criteria.where("endTime").lt(new Date()));
List<String> promotionIds = new ArrayList<>(); try {
//关闭满减活动 //关闭满减活动
List<FullDiscountVO> fullDiscountVOS = mongoTemplate.find(query, FullDiscountVO.class); List<FullDiscountVO> fullDiscountVOS = mongoTemplate.find(query, FullDiscountVO.class);
if (!fullDiscountVOS.isEmpty()) { if (!fullDiscountVOS.isEmpty()) {
List<String> ids = new ArrayList<>(); List<String> ids = new ArrayList<>();
//循环活动 关闭活动
for (FullDiscountVO vo : fullDiscountVOS) { for (FullDiscountVO vo : fullDiscountVOS) {
vo.setPromotionStatus(PromotionStatusEnum.END.name()); vo.setPromotionStatus(PromotionStatusEnum.END.name());
if (vo.getPromotionGoodsList() != null && !vo.getPromotionGoodsList().isEmpty()) { if (vo.getPromotionGoodsList() != null && !vo.getPromotionGoodsList().isEmpty()) {
@ -85,8 +87,11 @@ public class PromotionEverydayExecute implements EveryDayExecute {
ids.add(vo.getId()); ids.add(vo.getId());
} }
fullDiscountService.update(this.getUpdatePromotionWrapper(ids)); fullDiscountService.update(this.getUpdatePromotionWrapper(ids));
promotionIds.addAll(ids);
} }
} catch (Exception e) {
log.error("满减活动关闭错误", e);
}
try {
//关闭拼团活动 //关闭拼团活动
List<PintuanVO> pintuanVOS = mongoTemplate.find(query, PintuanVO.class); List<PintuanVO> pintuanVOS = mongoTemplate.find(query, PintuanVO.class);
if (!pintuanVOS.isEmpty()) { if (!pintuanVOS.isEmpty()) {
@ -104,13 +109,19 @@ public class PromotionEverydayExecute implements EveryDayExecute {
ids.add(vo.getId()); ids.add(vo.getId());
} }
pintuanService.update(this.getUpdatePromotionWrapper(ids)); pintuanService.update(this.getUpdatePromotionWrapper(ids));
promotionIds.addAll(ids); //将活动商品对照表进行结束处理
promotionGoodsService.update(this.getUpdatePromotionGoodsWrapper(ids));
}
} catch (Exception e) {
log.error("拼团活动关闭错误", e);
} }
try {
//关闭优惠券活动 //关闭优惠券活动
List<CouponVO> couponVOS = mongoTemplate.find(query, CouponVO.class); List<CouponVO> couponVOS = mongoTemplate.find(query, CouponVO.class);
if (!couponVOS.isEmpty()) { if (!couponVOS.isEmpty()) {
List<String> ids = new ArrayList<>(); List<String> ids = new ArrayList<>();
// // 关闭的优惠券活动
for (CouponVO vo : couponVOS) { for (CouponVO vo : couponVOS) {
vo.setPromotionStatus(PromotionStatusEnum.END.name()); vo.setPromotionStatus(PromotionStatusEnum.END.name());
if (vo.getPromotionGoodsList() != null && !vo.getPromotionGoodsList().isEmpty()) { if (vo.getPromotionGoodsList() != null && !vo.getPromotionGoodsList().isEmpty()) {
@ -125,15 +136,19 @@ public class PromotionEverydayExecute implements EveryDayExecute {
couponService.update(this.getUpdatePromotionWrapper(ids)); couponService.update(this.getUpdatePromotionWrapper(ids));
LambdaUpdateWrapper<MemberCoupon> memberCouponLambdaUpdateWrapper = new LambdaUpdateWrapper<MemberCoupon>().in(MemberCoupon::getCouponId, ids).set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.EXPIRE.name()); LambdaUpdateWrapper<MemberCoupon> memberCouponLambdaUpdateWrapper = new LambdaUpdateWrapper<MemberCoupon>().in(MemberCoupon::getCouponId, ids).set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.EXPIRE.name());
memberCouponService.update(memberCouponLambdaUpdateWrapper); memberCouponService.update(memberCouponLambdaUpdateWrapper);
promotionIds.addAll(ids); //将活动商品对照表进行结束处理
promotionGoodsService.update(this.getUpdatePromotionGoodsWrapper(ids));
}
} catch (Exception e) {
log.error("优惠券活动关闭错误", e);
} }
promotionGoodsService.update(this.getUpdatePromotionGoodsWrapper(promotionIds));
} }
/** /**
* 获取促销修改查询条件 修改活动状态 * 获取促销修改查询条件 修改活动状态
*
* @param ids * @param ids
* @return * @return
*/ */
@ -143,8 +158,10 @@ public class PromotionEverydayExecute implements EveryDayExecute {
updateWrapper.set("promotion_status", PromotionStatusEnum.END.name()); updateWrapper.set("promotion_status", PromotionStatusEnum.END.name());
return updateWrapper; return updateWrapper;
} }
/** /**
* 获取商品的促销修改查询条件 修改商品状态 * 获取商品的促销修改查询条件 修改商品状态
*
* @param ids * @param ids
* @return * @return
*/ */