diff --git a/cash-api/market-server/src/main/java/com/czg/controller/admin/ACouponController.java b/cash-api/market-server/src/main/java/com/czg/controller/admin/ACouponController.java index 7b778692c..02a90dfe2 100644 --- a/cash-api/market-server/src/main/java/com/czg/controller/admin/ACouponController.java +++ b/cash-api/market-server/src/main/java/com/czg/controller/admin/ACouponController.java @@ -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> getRecordByCoupon( @@ -202,4 +204,11 @@ public class ACouponController { public CzgResult> 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 getCouponGiftPage() { + couponTask.deliver(); + return CzgResult.success(); + } } diff --git a/cash-api/market-server/src/main/java/com/czg/task/CouponTask.java b/cash-api/market-server/src/main/java/com/czg/task/CouponTask.java index 0bb377ec4..d0013058a 100644 --- a/cash-api/market-server/src/main/java/com/czg/task/CouponTask.java +++ b/cash-api/market-server/src/main/java/com/czg/task/CouponTask.java @@ -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 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 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); } }