定时任务 问题

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.product.service.ShopSyncService;
import com.czg.resp.CzgResult; import com.czg.resp.CzgResult;
import com.czg.sa.StpKit; import com.czg.sa.StpKit;
import com.czg.task.CouponTask;
import com.czg.utils.AssertUtil; import com.czg.utils.AssertUtil;
import com.czg.validator.group.DefaultGroup; import com.czg.validator.group.DefaultGroup;
import com.czg.validator.group.InsertGroup; import com.czg.validator.group.InsertGroup;
@@ -42,6 +43,8 @@ public class ACouponController {
private MkShopCouponRecordService couponRecordService; private MkShopCouponRecordService couponRecordService;
@DubboReference @DubboReference
private ShopSyncService shopSyncService; private ShopSyncService shopSyncService;
@Resource
private CouponTask couponTask;
/** /**
* 分页 * 分页
@@ -137,7 +140,6 @@ public class ACouponController {
/** /**
* 优惠券列表/已领取详情 * 优惠券列表/已领取详情
*
*/ */
@GetMapping("/record") @GetMapping("/record")
public CzgResult<Page<MkShopCouponRecordDTO>> getRecordByCoupon( 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) { 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)); 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 * * * ? ") @Scheduled(cron = "0 30 * * * ? ")
public void deliver() { public void deliver() {
LocalDateTime now = LocalDateTime.now(); try {
mkShopCouponRecordService.update(MkShopCouponRecord.builder().status(2).build(), new QueryWrapper() LocalDateTime now = LocalDateTime.now();
.eq(MkShopCouponRecord::getStatus, 0) mkShopCouponRecordService.update(new MkShopCouponRecord().setStatus(2), new QueryWrapper()
.le(MkShopCouponRecord::getUseEndTime, now) .eq(MkShopCouponRecord::getStatus, 0)
); .le(MkShopCouponRecord::getUseEndTime, now)
// 计算当前时间加一小时 );
LocalDateTime oneHourLater = now.plusHours(1); // 计算当前时间加一小时
List<MkShopCouponRecord> list = mkShopCouponRecordService.list(new QueryWrapper() LocalDateTime oneHourLater = now.plusHours(1);
.eq(MkShopCouponRecord::getStatus, 0) List<MkShopCouponRecord> list = mkShopCouponRecordService.list(new QueryWrapper()
.le(MkShopCouponRecord::getUseEndTime, oneHourLater) .eq(MkShopCouponRecord::getStatus, 0)
); .le(MkShopCouponRecord::getUseEndTime, oneHourLater)
for (MkShopCouponRecord mkShopCouponRecord : list) { );
LocalDateTime endTime = mkShopCouponRecord.getUseEndTime(); for (MkShopCouponRecord mkShopCouponRecord : list) {
if (endTime != null) { LocalDateTime endTime = mkShopCouponRecord.getUseEndTime();
Duration duration = Duration.between(now, endTime); if (endTime != null) {
long seconds = duration.getSeconds() % 60; Duration duration = Duration.between(now, endTime);
redisService.set(RedisCst.classKeyExpired.EXPIRED_COUPON + mkShopCouponRecord.getId(), mkShopCouponRecord.getId(), seconds); long seconds = duration.getSeconds() % 60;
redisService.set(RedisCst.classKeyExpired.EXPIRED_COUPON + mkShopCouponRecord.getId(), mkShopCouponRecord.getId(), seconds);
}
} }
} catch (Exception e) {
log.error("优惠券 过期 任务 异常", e);
} }
} }