From 8ac3affc79126b0b8ec6f4f7e80b73a6b4a4634b Mon Sep 17 00:00:00 2001
From: YYC <1833023622@qq.com>
Date: 星期四, 12 二月 2026 09:21:16 +0800
Subject: [PATCH] APP

---
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java |  117 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 86 insertions(+), 31 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java
index 0c67c5d..7139b81 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java
@@ -12,6 +12,7 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.service.ISysDeptService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.util.*;
@@ -52,6 +53,7 @@
         if (StringUtils.isNotBlank(parentId)) {
             queryWrapper.likeRight("dept_id", parentId);
         }
+        queryWrapper.orderByAsc("order_num");
 
         return gatewaySerMapper.selectList(queryWrapper);
     }
@@ -99,22 +101,52 @@
         if (StringUtils.isEmpty(ser.getCompanyId())) {
             ser.setCompanyId(ContextUtil.getCompanyId());
         }
-        if (StringUtils.isEmpty(ser.getDeptId())) {
-            ser.setDeptId(ContextUtil.subDeptId(null));
+
+        //鍒ゆ柇鎺ュ彛璺緞
+        if (StringUtils.isEmpty(ser.getPlateNumUrl())) {
+            ser.setPlateNumUrl("/open/api/get-plateNum");
         }
-        if (StringUtils.isBlank(ser.getUpdateBy())) {
+        if (StringUtils.isEmpty(ser.getPlayUrl())) {
+            ser.setPlayUrl("/open/api/get-media");
+        }
+        if (StringUtils.isEmpty(ser.getSnapUrl())) {
+            ser.setSnapUrl("/open/api/snap-img");
+        }
+        if (StringUtils.isEmpty(ser.getPtzUrl())) {
+            ser.setPtzUrl("/open/api/ptz-media");
+        }
+
+        ser.setUpdateBy(ContextUtil.getLoginUserName());
+        ser.setUpdateTime(new Date());
+        if (StringUtils.isBlank(ser.getCreateBy())) {
             ser.setCreateBy(ContextUtil.getLoginUserName());
             ser.setCreateTime(new Date());
-            ser.setUpdateBy(ContextUtil.getLoginUserName());
-            ser.setUpdateTime(new Date());
             gatewaySerMapper.insert(ser);
         } else {
-            ser.setUpdateBy(ContextUtil.getLoginUserName());
-            ser.setUpdateTime(new Date());
             gatewaySerMapper.updateById(ser);
         }
 
         refreshCache(ser.getCompanyId());
+    }
+
+    /**
+     * 寮傛鏇存柊缃戝叧鐘舵��
+     * @param ser  淇℃伅
+     * @param status  鐘舵��
+     * @param isUpdateTime  鏄惁鏇存柊蹇冭烦鏃堕棿
+     */
+    @Async
+    public void updateStatus(GatewaySer ser, String status, boolean isUpdateTime) {
+
+        if(isUpdateTime){
+            //蹇冭烦鏃堕棿
+            ser.setUpdateTime(new Date());
+        }
+
+        ser.setStatus(status);
+        gatewaySerMapper.updateById(ser);
+
+        setCacheSer(ser);
     }
 
     /**
@@ -127,35 +159,58 @@
 
         //鍒犻櫎缂撳瓨
         delCache(ser);
+    }
 
+    /**
+     * 鑾峰彇缁勭粐涓嬫墍鏈夌綉鍏充俊鎭�
+     * @param companyId
+     * @return
+     */
+    public List<GatewaySer> getCacheSer(String companyId) {
+        if (StringUtils.isEmpty(companyId)) {
+            companyId = ContextUtil.getCompanyId();
+        }
+
+        List<GatewaySer> result = new ArrayList<>();
+        String patten = RedisConst.buildKey(companyId, RedisConst.KEY_GATEWAY_SER_LIST) + "*";
+        Collection<String> keys = redisCache.keys(patten);
+        if (null != keys) {
+            for (String key : keys) {
+                result.add((GatewaySer) redisCache.getCacheObject(key));
+            }
+        }
+        if(result.isEmpty()){
+            result = getAllSer();
+            this.setCacheSer(result);
+        }
+        return result;
     }
 
     /**
      * 鏍规嵁鍒嗘満ID鑾峰彇鍒嗘満淇℃伅
      *
-     * @param companyId
      * @param deptId
      * @return
      */
-    public List<GatewaySer> getCacheSerByDeptId(String companyId, String deptId) {
+    public GatewaySer getCacheSerByDeptId(String deptId) {
         if (StringUtils.isEmpty(deptId)) {
             return null;
         }
-        if (StringUtils.isEmpty(companyId)) {
-            companyId = ContextUtil.getCompanyId();
-        }
-        String patten = RedisConst.buildKey(companyId, RedisConst.KEY_DEVICE_SER_LIST, deptId) + "*";
+
+        String patten = RedisConst.buildKey(ContextUtil.getCompanyId(), RedisConst.KEY_GATEWAY_SER_LIST) + "*";
         Collection<String> keys = redisCache.keys(patten);
         if (null == keys) {
             return null;
         }
 
-        List<GatewaySer> list = new ArrayList<>();
+        GatewaySer ser = null;
         for (String key : keys) {
-            list.add((GatewaySer) redisCache.getCacheObject(key));
+            ser = (GatewaySer) redisCache.getCacheObject(key);
+            if(deptId.equals(ser.getDeptId())){
+                return ser;
+            }
         }
-
-        return list;
+        return null;
     }
 
     /**
@@ -172,27 +227,27 @@
         if (StringUtils.isEmpty(companyId)) {
             companyId = ContextUtil.getCompanyId();
         }
-        String patten = RedisConst.buildKey(companyId, RedisConst.KEY_DEVICE_SER_LIST) + "*";
-        Collection<String> keys = redisCache.keys(patten);
-        if (null == keys) {
-            return null;
-        }
 
-        List<GatewaySer> list = new ArrayList<>();
+        GatewaySer result = null;
         GatewaySer ser = null;
-        for (String key : keys) {
-            ser = (GatewaySer) redisCache.getCacheObject(key);
-            if(id.equals(ser.getId())){
-                break;
+        String patten = RedisConst.buildKey(companyId, RedisConst.KEY_GATEWAY_SER_LIST) + "*";
+        Collection<String> keys = redisCache.keys(patten);
+        if (null != keys && !keys.isEmpty()) {
+            for (String key : keys) {
+                ser = (GatewaySer) redisCache.getCacheObject(key);
+                if(id.equals(ser.getId())){
+                    result = ser;
+                    break;
+                }
             }
         }
 
-        if(null == ser){
-            ser = getById(id);
-            this.setCacheSer(ser);
+        if(null == result){
+            result = getById(id);
+            this.setCacheSer(result);
         }
 
-        return ser;
+        return result;
     }
 
     /**

--
Gitblit v1.9.3