Browse Source

定时任务处理到期的用户权益

skyline 2 years ago
parent
commit
515aaf3c63

+ 2 - 2
admin/src/main/java/com/kym/admin/jobs/OfflineNotify.java → admin/src/main/java/com/kym/admin/jobs/OfflineNotifyJob.java

@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
  */
 @Component
 @Slf4j
-public class OfflineNotify {
+public class OfflineNotifyJob {
 
     private final StringRedisTemplate redisTemplate;
     private final KymCache kymCache;
@@ -33,7 +33,7 @@ public class OfflineNotify {
     @Value("${kym.notify-email}")
     private String notifyEmail;
 
-    public OfflineNotify(StringRedisTemplate redisTemplate, @Lazy KymCache kymCache) {
+    public OfflineNotifyJob(StringRedisTemplate redisTemplate, @Lazy KymCache kymCache) {
         this.redisTemplate = redisTemplate;
         this.kymCache = kymCache;
     }

+ 43 - 0
miniapp/src/main/java/com/kym/miniapp/jobs/UserRechargeRightsJob.java

@@ -0,0 +1,43 @@
+package com.kym.miniapp.jobs;
+
+import com.kym.common.utils.CommUtil;
+import com.kym.entity.miniapp.UserRechargeRights;
+import com.kym.service.miniapp.UserRechargeRightsService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author skyline
+ * @description 用户权益到期处理
+ * @date 2023-11-15 14:00
+ */
+@Component
+@Slf4j
+public class UserRechargeRightsJob {
+
+    private final UserRechargeRightsService userRechargeRightsService;
+
+    public UserRechargeRightsJob(UserRechargeRightsService userRechargeRightsService) {
+        this.userRechargeRightsService = userRechargeRightsService;
+    }
+
+    // 每天凌晨0点执行一次
+    @Scheduled(cron = "0 0 0 * * ?")
+    public void execute() {
+        log.info("用户权益到期处理启动...");
+        var list = userRechargeRightsService.lambdaQuery()
+                .eq(UserRechargeRights::getStatus, UserRechargeRights.STATUS_有效)
+                .le(UserRechargeRights::getEndTime, LocalDateTime.now())
+                .list();
+        if (!CommUtil.isEmptyOrNull(list)) {
+            userRechargeRightsService.lambdaUpdate()
+                    .set(UserRechargeRights::getStatus, UserRechargeRights.STATUS_无效)
+                    .in(UserRechargeRights::getId, list.stream().map(UserRechargeRights::getId).toList())
+                    .update();
+        }
+        log.info("用户权益到期处理结束,共处理{}条数据", list.size());
+    }
+}