From 2c97f9adf61f846edbce4ef458400416f0003ff8 Mon Sep 17 00:00:00 2001
From: liusuyi <13324259@qq.com>
Date: 星期五, 28 七月 2023 23:16:31 +0800
Subject: [PATCH] 修改exe程序调用方式 修改推送app实时位置为传参开启

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java |  111 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 61 insertions(+), 50 deletions(-)

diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java
index d97418c..f844f56 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java
@@ -1,24 +1,21 @@
 package com.ruoyi.quartz.task;
 
+import com.ruoyi.common.constant.CacheConstants;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.spring.SpringUtils;
-import com.ruoyi.common.websocket.util.WebSocketUtils;
+import com.ruoyi.utils.websocket.util.WebSocketUtils;
 import com.ruoyi.device.camera.domain.ArdCameras;
 import com.ruoyi.device.camera.domain.CameraCmd;
-import com.ruoyi.device.camera.service.IArdCamerasService;
 import com.ruoyi.device.hiksdk.common.GlobalVariable;
 import com.ruoyi.device.hiksdk.service.IHikClientService;
-import com.ruoyi.system.service.ISysUserService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+import java.util.*;
 
-import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static com.ruoyi.common.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
+import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
 
 /**
  * @Description:
@@ -28,6 +25,7 @@
  * @Version: 1.0
  **/
 @Component("SdkTask")
+@Slf4j(topic = "hikSdk")
 public class SdkTask {
 
     /**
@@ -39,48 +37,61 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     public void ptzPush() {
-        ISysUserService sysUserService = SpringUtils.getBean(ISysUserService.class);
-        IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class);
-        IHikClientService hikClientService = SpringUtils.getBean(IHikClientService.class);
-        List<Map<String, Object>> list = new ArrayList<>();
-        ArdCameras ardCameras = new ArdCameras();
-        ardCameras.setGdtype("1");
-        List<ArdCameras> ardCamerasList = ardCamerasService.selectArdCamerasListNoDataScope(ardCameras);
-        for (ArdCameras camera : ardCamerasList) {
-            CameraCmd cmd = new CameraCmd();
-            cmd.setCameraId(camera.getId());
-            cmd.setChannelNum(1);
-            cmd.setOperator(camera.getOperatorId());
-            if (!GlobalVariable.loginMap.containsKey(camera.getId()))//鍙帹閫佺櫥褰曟垚鍔熺殑鐩告満
-            {
-                continue;
-            }
-            Map<String, Object> ptz = hikClientService.getPtz(cmd);
-            if (StringUtils.isNull(ptz)) {
-                continue;
-            }
-            SysUser sysUser = sysUserService.selectUserById(camera.getOperatorId());
-            if(StringUtils.isNotNull(sysUser))
-            {
-                cmd.setOperatorZh(sysUser.getNickName());
-            }
-            else
-            {
-                cmd.setOperatorZh(cmd.getOperator());
-            }
+        try {
+            RedisCache redisCache = SpringUtils.getBean(RedisCache.class);
+            IHikClientService hikClientService = SpringUtils.getBean(IHikClientService.class);
+            List<Map<String, Object>> list = new ArrayList<>();
+            ArdCameras ardCameras = new ArdCameras();
+            ardCameras.setGdtype("1");
+            List<Object> Objects = redisCache.getListKey(CacheConstants.CAMERA_LIST_KEY);
+            if (Objects.size() > 0) {
+                for (Object obj : Objects) {
+                    ArdCameras camera = (ArdCameras) obj;
+                    CameraCmd cmd = new CameraCmd();
+                    cmd.setCameraId(camera.getId());
+                    cmd.setChannelNum(1);
+                    cmd.setOperator(camera.getOperatorId());
+                    if (!GlobalVariable.loginMap.containsKey(camera.getId()))//鍙帹閫佺櫥褰曟垚鍔熺殑鐩告満
+                    {
+                        continue;
+                    }
+                    Map<String, Object> ptz = hikClientService.getPtz(cmd);
+                    if (StringUtils.isNull(ptz)) {
+                        continue;
+                    }
+                    SysUser sysUser = redisCache.getCacheObject(CacheConstants.USER_LIST_KEY + camera.getOperatorId());
+                    if (StringUtils.isNotNull(sysUser)) {
+                        cmd.setOperatorZh(sysUser.getNickName());
+                    } else {
+                        cmd.setOperatorZh(cmd.getOperator());
+                    }
 
-            if (ptz.size() > 0) {
-                ptz.put("cameraId", cmd.getCameraId());
-                ptz.put("usernameZh",cmd.getOperatorZh());
-                ptz.put("operatorId", cmd.getOperator());//涓婇攣鐢ㄦ埛id
-                ptz.put("operatorExpired",camera.getOperatorExpired());
-                list.add(ptz);
+                    //鑾峰彇鏃堕棿宸�
+                    long secDatePoor = 0;
+                    if (StringUtils.isNotNull(camera.getOperatorExpired())) {
+                        secDatePoor = DateUtils.getSecDatePoor(camera.getOperatorExpired(), new Date());
+                        if (secDatePoor < 0) {
+                            secDatePoor = 0;
+                        }
+                    }
+
+                    if (ptz.size() > 0) {
+                        ptz.put("cameraId", cmd.getCameraId());
+                        ptz.put("usernameZh", cmd.getOperatorZh());
+                        ptz.put("operatorId", cmd.getOperator());//涓婇攣鐢ㄦ埛id
+                        ptz.put("expirationRemainingSecond", secDatePoor);
+                        list.add(ptz);
+                    }
+                }
+                if (ONLINE_USER_SESSIONS.size() > 0) {
+                    Map<String, Object> sendMap = new HashMap<>();
+                    sendMap.put("10000", list);
+                    WebSocketUtils.sendMessageAll(sendMap);
+                }
             }
-        }
-        if (ONLINE_USER_SESSIONS.size() > 0) {
-            Map<String, Object> sendMap = new HashMap<>();
-            sendMap.put("10000", list);
-            WebSocketUtils.sendMessageAll(sendMap);
+        } catch (Exception ex) {
+            log.error("鎺ㄩ�乸tz寮傚父:" + ex.getMessage());
         }
     }
+
 }

--
Gitblit v1.9.3