Pārlūkot izejas kodu

优化门锁开门记录定时任务

xiari 11 mēneši atpakaļ
vecāks
revīzija
7330d9b25f

+ 8 - 6
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/controller/lock/LockController.java

@@ -4,8 +4,11 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.backstage.business.lock.LockBusiness;
 import org.dromara.backstage.domain.bo.lock.RoomCardBo;
+import org.dromara.backstage.task.ScheduledTasks;
 import org.dromara.common.core.api.ResponseResult;
 import org.dromara.common.core.api.ReturnResult;
+import org.dromara.common.core.config.DefaultConfig;
+import org.dromara.common.core.constant.DefaultConstants;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.enums.ResultCodeEnum;
 import org.springframework.web.bind.annotation.*;
@@ -30,6 +33,8 @@ import java.text.MessageFormat;
 public class LockController {
     private final LockBusiness lockBusiness;
 
+    private final ScheduledTasks tasks;
+
     /**
      * 查询门锁电量
      *
@@ -121,11 +126,8 @@ public class LockController {
     }
 
     @GetMapping(value = "/open/record/executeTask")
-    public ReturnResult queryOpenDoorRecordExectueTask() {
-        Integer syncCount = lockBusiness.queryOpenDoorRecord(1);
-        String message = MessageFormat.format("开门记录同步完成,本次同步了 {0} 条记录", syncCount);
-        log.info(message);
-        return ReturnResult.success(message);
+    public void queryOpenDoorRecordExectueTask() {
+        tasks.syncDoorOpenRecord();
     }
-    
+
 }

+ 9 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/task/ScheduledTasks.java

@@ -4,6 +4,8 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.backstage.business.lock.LockBusiness;
 import org.dromara.backstage.business.self.SelfBusiness;
+import org.dromara.common.core.config.DefaultConfig;
+import org.dromara.common.core.constant.DefaultConstants;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -26,6 +28,8 @@ public class ScheduledTasks {
     private final LockBusiness lockBusiness;
     private final SelfBusiness selfBusiness;
 
+    private final DefaultConfig defaultConfig;
+
     /**
      * 定时刷新短信token
      */
@@ -43,6 +47,11 @@ public class ScheduledTasks {
 
     @Scheduled(cron = "0 0 23 * * *")
     public void syncDoorOpenRecord(){
+        if(DefaultConstants.LOCAL_FLAG.equals(defaultConfig.getLocationFlag())){
+            // 校内不允许此任务运行
+            log.warn("syncDoorOpenRecord: 不允许在本地运行");
+            return;
+        }
         int iCount = lockBusiness.queryOpenDoorRecord(1);
         String message = MessageFormat.format("开门记录同步完成,本次同步了 {0} 条记录", iCount);
         log.info(message);