批量关闭活动问题处理
This commit is contained in:
parent
6ef71d9dfe
commit
2472cfd93b
@ -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
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user