定时任务 问题
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user