From 2472cfd93be9dbbeb63b0af75a88e9655f90cda5 Mon Sep 17 00:00:00 2001 From: Chopper Date: Sun, 13 Jun 2021 14:48:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=85=B3=E9=97=AD=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E9=97=AE=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../promotion/PromotionEverydayExecute.java | 119 ++++++++++-------- 1 file changed, 68 insertions(+), 51 deletions(-) diff --git a/consumer/src/main/java/cn/lili/timetask/handler/impl/promotion/PromotionEverydayExecute.java b/consumer/src/main/java/cn/lili/timetask/handler/impl/promotion/PromotionEverydayExecute.java index 946931a3..641dd29b 100644 --- a/consumer/src/main/java/cn/lili/timetask/handler/impl/promotion/PromotionEverydayExecute.java +++ b/consumer/src/main/java/cn/lili/timetask/handler/impl/promotion/PromotionEverydayExecute.java @@ -12,6 +12,7 @@ import cn.lili.modules.search.service.EsGoodsIndexService; import cn.lili.timetask.handler.EveryDayExecute; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; @@ -28,8 +29,8 @@ import java.util.List; * @author Chopper * @date 2021/3/18 3:23 下午 */ +@Slf4j @Component - public class PromotionEverydayExecute implements EveryDayExecute { //Mongo @@ -60,80 +61,94 @@ public class PromotionEverydayExecute implements EveryDayExecute { */ @Override public void execute() { - + //mongo查询条件 Query query = new Query(); -// 结束条件 活动关闭/活动结束 + //结束条件 活动未关闭/活动未结束 query.addCriteria(Criteria.where("promotionStatus").ne(PromotionStatusEnum.END.name()) .orOperator(Criteria.where("promotionStatus").ne(PromotionStatusEnum.CLOSE.name()))); + //结束条件 活动结束时间大于当前时间 query.addCriteria(Criteria.where("endTime").lt(new Date())); - List promotionIds = new ArrayList<>(); - - //关闭满减活动 - List fullDiscountVOS = mongoTemplate.find(query, FullDiscountVO.class); - if (!fullDiscountVOS.isEmpty()) { - List ids = new ArrayList<>(); - for (FullDiscountVO vo : fullDiscountVOS) { - vo.setPromotionStatus(PromotionStatusEnum.END.name()); - if (vo.getPromotionGoodsList() != null && !vo.getPromotionGoodsList().isEmpty()) { - for (PromotionGoods promotionGoods : vo.getPromotionGoodsList()) { - promotionGoods.setPromotionStatus(PromotionStatusEnum.END.name()); - esGoodsIndexService.deleteEsGoodsPromotionByPromotionId(promotionGoods.getSkuId(), vo.getId()); + try { + //关闭满减活动 + List fullDiscountVOS = mongoTemplate.find(query, FullDiscountVO.class); + if (!fullDiscountVOS.isEmpty()) { + List ids = new ArrayList<>(); + //循环活动 关闭活动 + for (FullDiscountVO vo : fullDiscountVOS) { + vo.setPromotionStatus(PromotionStatusEnum.END.name()); + if (vo.getPromotionGoodsList() != null && !vo.getPromotionGoodsList().isEmpty()) { + for (PromotionGoods promotionGoods : vo.getPromotionGoodsList()) { + promotionGoods.setPromotionStatus(PromotionStatusEnum.END.name()); + esGoodsIndexService.deleteEsGoodsPromotionByPromotionId(promotionGoods.getSkuId(), vo.getId()); + } } + mongoTemplate.save(vo); + ids.add(vo.getId()); } - mongoTemplate.save(vo); - ids.add(vo.getId()); + fullDiscountService.update(this.getUpdatePromotionWrapper(ids)); } - fullDiscountService.update(this.getUpdatePromotionWrapper(ids)); - promotionIds.addAll(ids); + } catch (Exception e) { + log.error("满减活动关闭错误", e); } - //关闭拼团活动 - List pintuanVOS = mongoTemplate.find(query, PintuanVO.class); - if (!pintuanVOS.isEmpty()) { - //准备修改活动的id - List ids = new ArrayList<>(); - for (PintuanVO vo : pintuanVOS) { - vo.setPromotionStatus(PromotionStatusEnum.END.name()); - if (vo.getPromotionGoodsList() != null && !vo.getPromotionGoodsList().isEmpty()) { - for (PromotionGoods promotionGoods : vo.getPromotionGoodsList()) { - promotionGoods.setPromotionStatus(PromotionStatusEnum.END.name()); - esGoodsIndexService.deleteEsGoodsPromotionByPromotionId(promotionGoods.getSkuId(), vo.getId()); + try { + //关闭拼团活动 + List pintuanVOS = mongoTemplate.find(query, PintuanVO.class); + if (!pintuanVOS.isEmpty()) { + //准备修改活动的id + List ids = new ArrayList<>(); + for (PintuanVO vo : pintuanVOS) { + vo.setPromotionStatus(PromotionStatusEnum.END.name()); + if (vo.getPromotionGoodsList() != null && !vo.getPromotionGoodsList().isEmpty()) { + for (PromotionGoods promotionGoods : vo.getPromotionGoodsList()) { + promotionGoods.setPromotionStatus(PromotionStatusEnum.END.name()); + esGoodsIndexService.deleteEsGoodsPromotionByPromotionId(promotionGoods.getSkuId(), vo.getId()); + } } + mongoTemplate.save(vo); + ids.add(vo.getId()); } - mongoTemplate.save(vo); - ids.add(vo.getId()); + pintuanService.update(this.getUpdatePromotionWrapper(ids)); + //将活动商品对照表进行结束处理 + promotionGoodsService.update(this.getUpdatePromotionGoodsWrapper(ids)); } - pintuanService.update(this.getUpdatePromotionWrapper(ids)); - promotionIds.addAll(ids); + } catch (Exception e) { + log.error("拼团活动关闭错误", e); } - //关闭优惠券活动 - List couponVOS = mongoTemplate.find(query, CouponVO.class); - if (!couponVOS.isEmpty()) { - List ids = new ArrayList<>(); - for (CouponVO vo : couponVOS) { - vo.setPromotionStatus(PromotionStatusEnum.END.name()); - if (vo.getPromotionGoodsList() != null && !vo.getPromotionGoodsList().isEmpty()) { - for (PromotionGoods promotionGoods : vo.getPromotionGoodsList()) { - promotionGoods.setPromotionStatus(PromotionStatusEnum.END.name()); - esGoodsIndexService.deleteEsGoodsPromotionByPromotionId(promotionGoods.getSkuId(), vo.getId()); + try { + //关闭优惠券活动 + List couponVOS = mongoTemplate.find(query, CouponVO.class); + if (!couponVOS.isEmpty()) { + List ids = new ArrayList<>(); + // // 关闭的优惠券活动 + for (CouponVO vo : couponVOS) { + vo.setPromotionStatus(PromotionStatusEnum.END.name()); + if (vo.getPromotionGoodsList() != null && !vo.getPromotionGoodsList().isEmpty()) { + for (PromotionGoods promotionGoods : vo.getPromotionGoodsList()) { + promotionGoods.setPromotionStatus(PromotionStatusEnum.END.name()); + esGoodsIndexService.deleteEsGoodsPromotionByPromotionId(promotionGoods.getSkuId(), vo.getId()); + } } + mongoTemplate.save(vo); + ids.add(vo.getId()); } - mongoTemplate.save(vo); - ids.add(vo.getId()); + couponService.update(this.getUpdatePromotionWrapper(ids)); + LambdaUpdateWrapper memberCouponLambdaUpdateWrapper = new LambdaUpdateWrapper().in(MemberCoupon::getCouponId, ids).set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.EXPIRE.name()); + memberCouponService.update(memberCouponLambdaUpdateWrapper); + //将活动商品对照表进行结束处理 + promotionGoodsService.update(this.getUpdatePromotionGoodsWrapper(ids)); } - couponService.update(this.getUpdatePromotionWrapper(ids)); - LambdaUpdateWrapper memberCouponLambdaUpdateWrapper = new LambdaUpdateWrapper().in(MemberCoupon::getCouponId, ids).set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.EXPIRE.name()); - memberCouponService.update(memberCouponLambdaUpdateWrapper); - promotionIds.addAll(ids); + } catch (Exception e) { + log.error("优惠券活动关闭错误", e); } - promotionGoodsService.update(this.getUpdatePromotionGoodsWrapper(promotionIds)); } /** * 获取促销修改查询条件 修改活动状态 + * * @param ids * @return */ @@ -143,8 +158,10 @@ public class PromotionEverydayExecute implements EveryDayExecute { updateWrapper.set("promotion_status", PromotionStatusEnum.END.name()); return updateWrapper; } + /** * 获取商品的促销修改查询条件 修改商品状态 + * * @param ids * @return */