定时任务 问题

This commit is contained in:
2025-10-11 10:01:08 +08:00
parent 069c3c80bb
commit 6f0c25c16c
2 changed files with 31 additions and 18 deletions

View File

@@ -11,6 +11,7 @@ import com.czg.market.service.ShopCouponService;
import com.czg.product.service.ShopSyncService;
import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
import com.czg.task.CouponTask;
import com.czg.utils.AssertUtil;
import com.czg.validator.group.DefaultGroup;
import com.czg.validator.group.InsertGroup;
@@ -42,6 +43,8 @@ public class ACouponController {
private MkShopCouponRecordService couponRecordService;
@DubboReference
private ShopSyncService shopSyncService;
@Resource
private CouponTask couponTask;
/**
* 分页
@@ -137,7 +140,6 @@ public class ACouponController {
/**
* 优惠券列表/已领取详情
*
*/
@GetMapping("/record")
public CzgResult<Page<MkShopCouponRecordDTO>> getRecordByCoupon(
@@ -202,4 +204,11 @@ public class ACouponController {
public CzgResult<List<UserCouponVo>> findCoupon(@RequestParam Long shopUserId, @RequestParam(required = false) Integer type, @RequestParam(required = false) Integer isFood) {
return CzgResult.success(shopCouponService.findCoupon(StpKit.USER.getShopId(), shopUserId, type, isFood));
}
@GetMapping("/testTask")
public CzgResult<Void> getCouponGiftPage() {
couponTask.deliver();
return CzgResult.success();
}
}

View File

@@ -33,24 +33,28 @@ public class CouponTask {
*/
@Scheduled(cron = "0 30 * * * ? ")
public void deliver() {
LocalDateTime now = LocalDateTime.now();
mkShopCouponRecordService.update(MkShopCouponRecord.builder().status(2).build(), new QueryWrapper()
.eq(MkShopCouponRecord::getStatus, 0)
.le(MkShopCouponRecord::getUseEndTime, now)
);
// 计算当前时间加一小时
LocalDateTime oneHourLater = now.plusHours(1);
List<MkShopCouponRecord> list = mkShopCouponRecordService.list(new QueryWrapper()
.eq(MkShopCouponRecord::getStatus, 0)
.le(MkShopCouponRecord::getUseEndTime, oneHourLater)
);
for (MkShopCouponRecord mkShopCouponRecord : list) {
LocalDateTime endTime = mkShopCouponRecord.getUseEndTime();
if (endTime != null) {
Duration duration = Duration.between(now, endTime);
long seconds = duration.getSeconds() % 60;
redisService.set(RedisCst.classKeyExpired.EXPIRED_COUPON + mkShopCouponRecord.getId(), mkShopCouponRecord.getId(), seconds);
try {
LocalDateTime now = LocalDateTime.now();
mkShopCouponRecordService.update(new MkShopCouponRecord().setStatus(2), new QueryWrapper()
.eq(MkShopCouponRecord::getStatus, 0)
.le(MkShopCouponRecord::getUseEndTime, now)
);
// 计算当前时间加一小时
LocalDateTime oneHourLater = now.plusHours(1);
List<MkShopCouponRecord> list = mkShopCouponRecordService.list(new QueryWrapper()
.eq(MkShopCouponRecord::getStatus, 0)
.le(MkShopCouponRecord::getUseEndTime, oneHourLater)
);
for (MkShopCouponRecord mkShopCouponRecord : list) {
LocalDateTime endTime = mkShopCouponRecord.getUseEndTime();
if (endTime != null) {
Duration duration = Duration.between(now, endTime);
long seconds = duration.getSeconds() % 60;
redisService.set(RedisCst.classKeyExpired.EXPIRED_COUPON + mkShopCouponRecord.getId(), mkShopCouponRecord.getId(), seconds);
}
}
} catch (Exception e) {
log.error("优惠券 过期 任务 异常", e);
}
}