|
@@ -6,10 +6,13 @@ import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
import shop.alien.entity.store.LifeCoupon;
|
|
import shop.alien.entity.store.LifeCoupon;
|
|
|
|
|
+import shop.alien.entity.store.LifeGroupBuyMain;
|
|
|
import shop.alien.entity.store.LifeUserOrder;
|
|
import shop.alien.entity.store.LifeUserOrder;
|
|
|
import shop.alien.mapper.LifeCouponMapper;
|
|
import shop.alien.mapper.LifeCouponMapper;
|
|
|
|
|
+import shop.alien.mapper.LifeGroupBuyMainMapper;
|
|
|
import shop.alien.mapper.LifeUserOrderMapper;
|
|
import shop.alien.mapper.LifeUserOrderMapper;
|
|
|
import shop.alien.util.common.AlipayTradeRefund;
|
|
import shop.alien.util.common.AlipayTradeRefund;
|
|
|
|
|
+import shop.alien.util.common.constant.CouponStatusEnum;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.Calendar;
|
|
import java.util.Calendar;
|
|
@@ -33,11 +36,13 @@ public class LifeCouponJob {
|
|
|
private final LifeUserOrderMapper lifeUserOrderMapper;
|
|
private final LifeUserOrderMapper lifeUserOrderMapper;
|
|
|
|
|
|
|
|
private final AlipayTradeRefund alipayTradeRefund;
|
|
private final AlipayTradeRefund alipayTradeRefund;
|
|
|
|
|
+ private final LifeGroupBuyMainMapper lifeGroupBuyMainMapper;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 该方法用于定时更新生活优惠券(LifeCoupon)的状态
|
|
* 该方法用于定时更新生活优惠券(LifeCoupon)的状态
|
|
|
*/
|
|
*/
|
|
|
@XxlJob("quanStatusUpdateTask")
|
|
@XxlJob("quanStatusUpdateTask")
|
|
|
|
|
+ @Deprecated
|
|
|
public void quanStatusUpdateTask() {
|
|
public void quanStatusUpdateTask() {
|
|
|
//执行修改代金券状态
|
|
//执行修改代金券状态
|
|
|
System.out.println("执行修改代金券状态 ===>");
|
|
System.out.println("执行修改代金券状态 ===>");
|
|
@@ -125,6 +130,7 @@ public class LifeCouponJob {
|
|
|
* 过期自动退
|
|
* 过期自动退
|
|
|
*/
|
|
*/
|
|
|
@XxlJob("orderStatusUpdateTask")
|
|
@XxlJob("orderStatusUpdateTask")
|
|
|
|
|
+ @Deprecated
|
|
|
public void orderStatusUpdateTask() {
|
|
public void orderStatusUpdateTask() {
|
|
|
Date now = new Date();
|
|
Date now = new Date();
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
Calendar calendar = Calendar.getInstance();
|
|
@@ -160,5 +166,195 @@ public class LifeCouponJob {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 代金券状态更新 (到时间定时上架,过期自动下架)
|
|
|
|
|
+ */
|
|
|
|
|
+ @XxlJob("couponStatusUpdateTask")
|
|
|
|
|
+ public void couponStatusUpdateTask(){
|
|
|
|
|
+ //执行修改代金券状态
|
|
|
|
|
+ System.out.println("执行修改代金券状态 ===>");
|
|
|
|
|
+ // 获取当前时间
|
|
|
|
|
+ Date now = new Date();
|
|
|
|
|
+ // 创建一个 Calendar 实例,用于对日期进行操作
|
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
|
+ // 将 Calendar 的时间设置为当前时间
|
|
|
|
|
+ calendar.setTime(now);
|
|
|
|
|
+ // 将 Calendar 的小时设置为 0
|
|
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
|
+ // 将 Calendar 的分钟设置为 0
|
|
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
|
|
+ // 将 Calendar 的秒设置为 0
|
|
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
|
|
+ // 将 Calendar 的毫秒设置为 0
|
|
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
|
|
+ // 获取处理后的时间,即当前日期的零点
|
|
|
|
|
+ now = calendar.getTime();
|
|
|
|
|
|
|
|
|
|
+ // 创建一个 LambdaUpdateWrapper 用于查询生活优惠券,这里实际上主要用于查询操作
|
|
|
|
|
+ LambdaUpdateWrapper<LifeCoupon> selectWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ // 创建一个集合,用于存储要查询的优惠券状态值
|
|
|
|
|
+ List<Integer> status = new ArrayList<>();
|
|
|
|
|
+ //
|
|
|
|
|
+ status.add(CouponStatusEnum.NOT_START.getCode());
|
|
|
|
|
+ status.add(CouponStatusEnum.SOLD_OUT.getCode());
|
|
|
|
|
+ status.add(CouponStatusEnum.ONGOING.getCode());
|
|
|
|
|
+ status.add(CouponStatusEnum.SOLD_OFF.getCode());
|
|
|
|
|
+
|
|
|
|
|
+ // 设置查询条件,查询状态为2,4,5,6 的生活优惠券
|
|
|
|
|
+ selectWrapper.in(LifeCoupon::getStatus, status);
|
|
|
|
|
+ // 调用 lifeCouponMapper 的 selectList 方法,根据上述条件查询生活优惠券列表
|
|
|
|
|
+ List<LifeCoupon> jinxingzhongList = lifeCouponMapper.selectList(selectWrapper);
|
|
|
|
|
+ System.out.println("执行修改代金券状态 ===> 未开始 已售罄 进行中,已下架 优惠券列表 ===> " + jinxingzhongList);
|
|
|
|
|
+ List<String> endCouponIds = new ArrayList<>();
|
|
|
|
|
+ // 判断查询结果列表是否不为空
|
|
|
|
|
+ if (!jinxingzhongList.isEmpty()) {
|
|
|
|
|
+ // 遍历查询到的生活优惠券列表
|
|
|
|
|
+ for (LifeCoupon quan : jinxingzhongList) {
|
|
|
|
|
+ // 获取当前优惠券的结束日期
|
|
|
|
|
+ Date endTime = quan.getEndDate();
|
|
|
|
|
+ // 比较当前日期(零点)和优惠券的结束日期,如果当前日期大于结束日期 将状态变成已结束
|
|
|
|
|
+ if (now.compareTo(endTime) > 0) {
|
|
|
|
|
+ endCouponIds.add(quan.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 创建一个 LambdaUpdateWrapper 用于更新生活优惠券的状态
|
|
|
|
|
+ LambdaUpdateWrapper<LifeCoupon> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ // 设置更新条件,根据优惠券的 ID 进行更新
|
|
|
|
|
+ updateWrapper.in(LifeCoupon::getId,endCouponIds)
|
|
|
|
|
+ // 设置要更新的字段,将优惠券的状态更新为 3
|
|
|
|
|
+ .set(LifeCoupon::getStatus, CouponStatusEnum.ENDED.getCode());
|
|
|
|
|
+ // 调用 lifeCouponMapper 的 update 方法,根据上述条件更新优惠券的状态
|
|
|
|
|
+ int updateNum = lifeCouponMapper.update(null, updateWrapper);
|
|
|
|
|
+ System.out.println("执行修改代金券状态 ===> 已结束 优惠券列表 ===> " + endCouponIds);
|
|
|
|
|
+ System.out.println("执行修改代金券状态 ===> 已结束 优惠券数量 ===> " + updateNum);
|
|
|
|
|
+// --------------------------------------------------------------------------------------------------------
|
|
|
|
|
+ // 创建另一个 LambdaUpdateWrapper 用于查询状态为 0 的生活优惠券
|
|
|
|
|
+ LambdaUpdateWrapper<LifeCoupon> selectWrapper2 = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ // 设置查询条件,查询状态为 0 的生活优惠券
|
|
|
|
|
+ selectWrapper2.eq(LifeCoupon::getStatus, CouponStatusEnum.NOT_START.getCode());
|
|
|
|
|
+ // 调用 lifeCouponMapper 的 selectList 方法,根据上述条件查询生活优惠券列表
|
|
|
|
|
+ List<LifeCoupon> weikaishiList = lifeCouponMapper.selectList(selectWrapper2);
|
|
|
|
|
+ List<String> startCouponIds = new ArrayList<>();
|
|
|
|
|
+ // 判断查询结果列表是否不为空
|
|
|
|
|
+ if (!weikaishiList.isEmpty()) {
|
|
|
|
|
+ // 遍历查询到的生活优惠券列表
|
|
|
|
|
+ for (LifeCoupon quan : weikaishiList) {
|
|
|
|
|
+ // 获取当前优惠券的开始日期
|
|
|
|
|
+ Date startTime = quan.getStartDate();
|
|
|
|
|
+ // 获取当前优惠券的结束日期
|
|
|
|
|
+ Date endTime = quan.getEndDate();
|
|
|
|
|
+ // 判断当前日期(零点)是否在优惠券的开始日期和结束日期之间 将待使用变成进行中
|
|
|
|
|
+ if (now.compareTo(startTime) >= 0 && now.compareTo(endTime) <= 0) {
|
|
|
|
|
+ startCouponIds.add(quan.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 创建一个 LambdaUpdateWrapper 用于更新生活优惠券的状态
|
|
|
|
|
+ LambdaUpdateWrapper<LifeCoupon> updateWrapper2 = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ // 设置更新条件,根据优惠券的 ID 进行更新
|
|
|
|
|
+ updateWrapper.eq(LifeCoupon::getId, startCouponIds)
|
|
|
|
|
+ // 设置要更新的字段,将优惠券的状态更新为 1
|
|
|
|
|
+ .set(LifeCoupon::getStatus, CouponStatusEnum.ONGOING.getCode());
|
|
|
|
|
+ // 调用 lifeCouponMapper 的 update 方法,根据上述条件更新优惠券的状态
|
|
|
|
|
+ int updateNum2 = lifeCouponMapper.update(null, updateWrapper2);
|
|
|
|
|
+ System.out.println("执行修改代金券状态 ===> 进行中 优惠券列表 ===> " + startCouponIds);
|
|
|
|
|
+ System.out.println("执行修改代金券状态 ===> 进行中 优惠券数量 ===> " + updateNum2);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 团购状态更新
|
|
|
|
|
+ */
|
|
|
|
|
+ @XxlJob("groupBuyStatusUpdateTask")
|
|
|
|
|
+ public void groupBuyStatusUpdateTask(){
|
|
|
|
|
+ //执行修改团购状态
|
|
|
|
|
+ System.out.println("执行修改团购状态 ===>");
|
|
|
|
|
+ // 获取当前时间
|
|
|
|
|
+ Date now = new Date();
|
|
|
|
|
+ // 创建一个 Calendar 实例,用于对日期进行操作
|
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
|
+ // 将 Calendar 的时间设置为当前时间
|
|
|
|
|
+ calendar.setTime(now);
|
|
|
|
|
+ // 将 Calendar 的小时设置为 0
|
|
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
|
+ // 将 Calendar 的分钟设置为 0
|
|
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
|
|
+ // 将 Calendar 的秒设置为 0
|
|
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
|
|
+ // 将 Calendar 的毫秒设置为 0
|
|
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
|
|
+ // 获取处理后的时间,即当前日期的零点
|
|
|
|
|
+ now = calendar.getTime();
|
|
|
|
|
+
|
|
|
|
|
+ // 创建一个 LambdaUpdateWrapper 用于查询生活优惠券,这里实际上主要用于查询操作
|
|
|
|
|
+ LambdaUpdateWrapper<LifeGroupBuyMain> selectWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ // 创建一个集合,用于存储要查询的优惠券状态值
|
|
|
|
|
+ List<Integer> status = new ArrayList<>();
|
|
|
|
|
+ //
|
|
|
|
|
+ status.add(CouponStatusEnum.NOT_START.getCode());
|
|
|
|
|
+ status.add(CouponStatusEnum.SOLD_OUT.getCode());
|
|
|
|
|
+ status.add(CouponStatusEnum.ONGOING.getCode());
|
|
|
|
|
+ status.add(CouponStatusEnum.SOLD_OFF.getCode());
|
|
|
|
|
+
|
|
|
|
|
+ // 设置查询条件,查询状态为2,4,5,6 的生活优惠券
|
|
|
|
|
+ selectWrapper.in(LifeGroupBuyMain::getStatus, status);
|
|
|
|
|
+ // 调用 lifeCouponMapper 的 selectList 方法,根据上述条件查询生活优惠券列表
|
|
|
|
|
+ List<LifeGroupBuyMain> jinxingzhongList = lifeGroupBuyMainMapper.selectList(selectWrapper);
|
|
|
|
|
+ System.out.println("执行修改团购状态 ===> 未开始 已售罄 进行中,已下架 优惠券列表 ===> " + jinxingzhongList);
|
|
|
|
|
+ List<Integer> endCouponIds = new ArrayList<>();
|
|
|
|
|
+ // 判断查询结果列表是否不为空
|
|
|
|
|
+ if (!jinxingzhongList.isEmpty()) {
|
|
|
|
|
+ // 遍历查询到的生活优惠券列表
|
|
|
|
|
+ for (LifeGroupBuyMain groupBuy : jinxingzhongList) {
|
|
|
|
|
+ // 获取当前优惠券的结束日期
|
|
|
|
|
+ Date endTime = groupBuy.getEndTime();
|
|
|
|
|
+ // 比较当前日期(零点)和优惠券的结束日期,如果当前日期大于结束日期 将状态变成已结束
|
|
|
|
|
+ if (now.compareTo(endTime) > 0) {
|
|
|
|
|
+ endCouponIds.add(groupBuy.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 创建一个 LambdaUpdateWrapper 用于更新生活优惠券的状态
|
|
|
|
|
+ LambdaUpdateWrapper<LifeGroupBuyMain> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ // 设置更新条件,根据优惠券的 ID 进行更新
|
|
|
|
|
+ updateWrapper.in(LifeGroupBuyMain::getId,endCouponIds)
|
|
|
|
|
+ // 设置要更新的字段,将优惠券的状态更新为 7
|
|
|
|
|
+ .set(LifeGroupBuyMain::getStatus, CouponStatusEnum.ENDED.getCode());
|
|
|
|
|
+ // 调用 lifeCouponMapper 的 update 方法,根据上述条件更新优惠券的状态
|
|
|
|
|
+ int updateNum = lifeGroupBuyMainMapper.update(null, updateWrapper);
|
|
|
|
|
+ System.out.println("执行修改团购状态 ===> 已结束 优惠券列表 ===> " + endCouponIds);
|
|
|
|
|
+ System.out.println("执行修改团购状态 ===> 已结束 优惠券数量 ===> " + updateNum);
|
|
|
|
|
+// --------------------------------------------------------------------------------------------------------
|
|
|
|
|
+ // 创建另一个 LambdaUpdateWrapper 用于查询状态为 0 的生活优惠券
|
|
|
|
|
+ LambdaUpdateWrapper<LifeGroupBuyMain> selectWrapper2 = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ // 设置查询条件,查询状态为 0 的生活优惠券
|
|
|
|
|
+ selectWrapper2.eq(LifeGroupBuyMain::getStatus, CouponStatusEnum.NOT_START.getCode());
|
|
|
|
|
+ // 调用 lifeCouponMapper 的 selectList 方法,根据上述条件查询生活优惠券列表
|
|
|
|
|
+ List<LifeGroupBuyMain> weikaishiList = lifeGroupBuyMainMapper.selectList(selectWrapper2);
|
|
|
|
|
+ List<Integer> startCouponIds = new ArrayList<>();
|
|
|
|
|
+ // 判断查询结果列表是否不为空
|
|
|
|
|
+ if (!weikaishiList.isEmpty()) {
|
|
|
|
|
+ // 遍历查询到的生活优惠券列表
|
|
|
|
|
+ for (LifeGroupBuyMain quan : weikaishiList) {
|
|
|
|
|
+ // 获取当前优惠券的开始日期
|
|
|
|
|
+ Date startTime = quan.getStartTimeValue();
|
|
|
|
|
+ // 获取当前优惠券的结束日期
|
|
|
|
|
+ Date endTime = quan.getEndTime();
|
|
|
|
|
+ // 判断当前日期(零点)是否在优惠券的开始日期和结束日期之间 将待使用变成进行中
|
|
|
|
|
+ if (now.compareTo(startTime) >= 0 && now.compareTo(endTime) <= 0) {
|
|
|
|
|
+ startCouponIds.add(quan.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 创建一个 LambdaUpdateWrapper 用于更新生活优惠券的状态
|
|
|
|
|
+ LambdaUpdateWrapper<LifeGroupBuyMain> updateWrapper2 = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ // 设置更新条件,根据优惠券的 ID 进行更新
|
|
|
|
|
+ updateWrapper.eq(LifeGroupBuyMain::getId, startCouponIds)
|
|
|
|
|
+ // 设置要更新的字段,将优惠券的状态更新为 1
|
|
|
|
|
+ .set(LifeGroupBuyMain::getStatus, CouponStatusEnum.ONGOING.getCode());
|
|
|
|
|
+ // 调用 lifeCouponMapper 的 update 方法,根据上述条件更新优惠券的状态
|
|
|
|
|
+ int updateNum2 = lifeGroupBuyMainMapper.update(null, updateWrapper2);
|
|
|
|
|
+ System.out.println("执行修改团购状态 ===> 进行中 优惠券列表 ===> " + startCouponIds);
|
|
|
|
|
+ System.out.println("执行修改团购状态 ===> 进行中 优惠券数量 ===> " + updateNum2);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|