设置秒杀活动为自动开启
This commit is contained in:
@@ -3,15 +3,21 @@ package cn.lili.timetask.handler.impl.promotion;
|
||||
import cn.lili.modules.order.cart.entity.vo.FullDiscountVO;
|
||||
import cn.lili.modules.promotion.entity.dos.MemberCoupon;
|
||||
import cn.lili.modules.promotion.entity.dos.PromotionGoods;
|
||||
import cn.lili.modules.promotion.entity.dos.Seckill;
|
||||
import cn.lili.modules.promotion.entity.enums.MemberCouponStatusEnum;
|
||||
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
|
||||
import cn.lili.modules.promotion.entity.vos.CouponVO;
|
||||
import cn.lili.modules.promotion.entity.vos.PintuanVO;
|
||||
import cn.lili.modules.promotion.service.*;
|
||||
import cn.lili.modules.search.service.EsGoodsIndexService;
|
||||
import cn.lili.modules.system.entity.dos.Setting;
|
||||
import cn.lili.modules.system.entity.dto.SeckillSetting;
|
||||
import cn.lili.modules.system.entity.enums.SettingEnum;
|
||||
import cn.lili.modules.system.service.SettingService;
|
||||
import cn.lili.timetask.handler.EveryDayExecute;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.google.gson.Gson;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
@@ -53,6 +59,12 @@ public class PromotionEverydayExecute implements EveryDayExecute {
|
||||
//促销商品
|
||||
@Autowired
|
||||
private PromotionGoodsService promotionGoodsService;
|
||||
//设置
|
||||
@Autowired
|
||||
private SettingService settingService;
|
||||
@Autowired
|
||||
private SeckillService seckillService;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@@ -68,7 +80,35 @@ public class PromotionEverydayExecute implements EveryDayExecute {
|
||||
query.addCriteria(Criteria.where("endTime").lt(new Date()));
|
||||
|
||||
List<String> promotionIds = new ArrayList<>();
|
||||
//关闭满减活动
|
||||
endFullDiscount(promotionIds,query);
|
||||
//关闭拼团活动
|
||||
endPintuan(promotionIds,query);
|
||||
//关闭优惠券
|
||||
endCoupon(promotionIds,query);
|
||||
//每日新增秒杀活动
|
||||
addSeckill();
|
||||
promotionGoodsService.update(this.getUpdatePromotionGoodsWrapper(promotionIds));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加秒杀活动
|
||||
* 从系统设置中获取秒杀活动的配置
|
||||
* 添加30天后的秒杀活动
|
||||
*/
|
||||
private void addSeckill(){
|
||||
Setting setting = settingService.get(SettingEnum.SECKILL_SETTING.name());
|
||||
SeckillSetting seckillSetting=new Gson().fromJson(setting.getSettingValue(), SeckillSetting.class);
|
||||
Seckill seckill=new Seckill(seckillSetting.getHours(),seckillSetting.getSeckillRule());
|
||||
seckillService.saveSeckill(seckill);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改满额活动下的商品
|
||||
* @param promotionIds 促销活动ID
|
||||
* @param query 查询Wrapper
|
||||
*/
|
||||
private void endFullDiscount(List<String> promotionIds,Query query){
|
||||
//关闭满减活动
|
||||
List<FullDiscountVO> fullDiscountVOS = mongoTemplate.find(query, FullDiscountVO.class);
|
||||
if (!fullDiscountVOS.isEmpty()) {
|
||||
@@ -87,7 +127,14 @@ public class PromotionEverydayExecute implements EveryDayExecute {
|
||||
fullDiscountService.update(this.getUpdatePromotionWrapper(ids));
|
||||
promotionIds.addAll(ids);
|
||||
}
|
||||
//关闭拼团活动
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改拼团活动下的商品
|
||||
* @param promotionIds 促销活动ID
|
||||
* @param query 查询Wrapper
|
||||
*/
|
||||
private void endPintuan(List<String> promotionIds,Query query){
|
||||
List<PintuanVO> pintuanVOS = mongoTemplate.find(query, PintuanVO.class);
|
||||
if (!pintuanVOS.isEmpty()) {
|
||||
//准备修改活动的id
|
||||
@@ -106,8 +153,14 @@ public class PromotionEverydayExecute implements EveryDayExecute {
|
||||
pintuanService.update(this.getUpdatePromotionWrapper(ids));
|
||||
promotionIds.addAll(ids);
|
||||
}
|
||||
}
|
||||
|
||||
//关闭优惠券活动
|
||||
/**
|
||||
* 修改优惠券下的商品
|
||||
* @param promotionIds 促销活动ID
|
||||
* @param query 查询Wrapper
|
||||
*/
|
||||
private void endCoupon(List<String> promotionIds,Query query){
|
||||
List<CouponVO> couponVOS = mongoTemplate.find(query, CouponVO.class);
|
||||
if (!couponVOS.isEmpty()) {
|
||||
List<String> ids = new ArrayList<>();
|
||||
@@ -123,19 +176,19 @@ public class PromotionEverydayExecute implements EveryDayExecute {
|
||||
ids.add(vo.getId());
|
||||
}
|
||||
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)
|
||||
.eq(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.NEW.name())
|
||||
.set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.EXPIRE.name());
|
||||
memberCouponService.update(memberCouponLambdaUpdateWrapper);
|
||||
promotionIds.addAll(ids);
|
||||
}
|
||||
|
||||
promotionGoodsService.update(this.getUpdatePromotionGoodsWrapper(promotionIds));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取促销修改查询条件 修改活动状态
|
||||
* @param ids
|
||||
* @return
|
||||
* @param ids 促销活动ID
|
||||
* @return 促销活动商品查询Wrapper
|
||||
*/
|
||||
private UpdateWrapper getUpdatePromotionWrapper(List<String> ids) {
|
||||
UpdateWrapper updateWrapper = new UpdateWrapper<>();
|
||||
@@ -145,8 +198,8 @@ public class PromotionEverydayExecute implements EveryDayExecute {
|
||||
}
|
||||
/**
|
||||
* 获取商品的促销修改查询条件 修改商品状态
|
||||
* @param ids
|
||||
* @return
|
||||
* @param ids 促销活动ID
|
||||
* @return 促销活动商品修改Wrapper
|
||||
*/
|
||||
private UpdateWrapper getUpdatePromotionGoodsWrapper(List<String> ids) {
|
||||
UpdateWrapper updateWrapper = new UpdateWrapper<>();
|
||||
|
||||
Reference in New Issue
Block a user