From dda268997ca8f8a364f7c19b45d7a43a50a98efe Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期二, 25 十月 2022 18:00:11 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java |  103 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 68 insertions(+), 35 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
index 1576f94..2169fc5 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -12,10 +12,13 @@
 import com.sandu.ximon.admin.dto.YSY_AccessTokenDto;
 import com.sandu.ximon.admin.dto.YSY_MonitorDto;
 import com.sandu.ximon.admin.param.MonitorParam;
+import com.sandu.ximon.admin.redis.DeviceRedisKey;
 import com.sandu.ximon.admin.security.SecurityUtils;
 import com.sandu.ximon.admin.utils.ListPagingUtils;
+import com.sandu.ximon.admin.utils.RedisUtils;
 import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
 import com.sandu.ximon.admin.vo.EquipmentInfomation;
+import com.sandu.ximon.admin.vo.RedisDeviceStatus;
 import com.sandu.ximon.dao.bo.MonitorBo;
 import com.sandu.ximon.dao.domain.Monitor;
 import com.sandu.ximon.dao.domain.PoleBinding;
@@ -23,6 +26,7 @@
 import com.sandu.ximon.dao.enums.PoleBindingEnums;
 import com.sandu.ximon.dao.mapper.MonitorMapper;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -33,6 +37,7 @@
 
 @Service
 @AllArgsConstructor
+@Slf4j
 public class MonitorService extends BaseServiceImpl<MonitorMapper, Monitor> {
     private final MonitorMapper monitorMapper;
     //钀ょ煶浜慉ppKey
@@ -56,10 +61,12 @@
 
     private final PoleBindingService poleBindingService;
 
+    private final RedisUtils redisUtils;
+
     /**
-     * 妯$硦鏌ヨ
+     * 鎽勫儚澶村垪琛ㄦā绯婃煡璇�
      */
-    public CommonPage listMonitorByKeyword(BaseConditionVO baseConditionVO,Integer order,Integer seq, MonitorParam monitorParam) {
+    public CommonPage listMonitorByKeyword(BaseConditionVO baseConditionVO, Integer order, Integer seq, MonitorParam monitorParam) {
         //缁戝畾鐘舵�侊細宸茬粦瀹�/鏈粦瀹�/鍏ㄩ儴
         if (monitorParam.getBindingState() == null) {
             //鍏ㄩ儴
@@ -68,7 +75,7 @@
         //鎺掑簭瀛楁
         String orderByResult = "id";
         //姝e簭銆佸�掑彊
-        String orderBySeq =OrderByEnums.ASC.getCode();
+        String orderBySeq = OrderByEnums.ASC.getCode();
         if (order != null) {
             switch (order) {
                 case 1:
@@ -97,9 +104,9 @@
 
         List<MonitorBo> list;
         if (SecurityUtils.getClientId() == null) {
-            list = monitorMapper.listMonitorDeviceSerial1(null, monitorParam.getKeyword(), monitorParam.getBindingState(),orderBy);
+            list = monitorMapper.listMonitorDeviceSerial1(null, monitorParam.getKeyword(), monitorParam.getBindingState(), orderBy);
         } else {
-            list = monitorMapper.listMonitorDeviceSerial1(SecurityUtils.getUserId(), monitorParam.getKeyword(), monitorParam.getBindingState(),orderBy);
+            list = monitorMapper.listMonitorDeviceSerial1(SecurityUtils.getUserId(), monitorParam.getKeyword(), monitorParam.getBindingState(), orderBy);
         }
 
         //娌℃湁鏁版嵁鏃跺�欑洿鎺ヨ繑鍥炵┖鏁扮粍
@@ -143,39 +150,26 @@
         return commonPage;
     }
 
-    public Monitor getYSYMonitorInfoAndaddMonitorToTable(String deviceSerial) {
-        YSY_MonitorDto getMonitorDto = getYSYMonitorInfo(getAccessToken(), deviceSerial);
+    /**
+     * 鎽勫儚澶村垪琛ㄥ湴锛堢敤浜庨椤垫暟鎹粺璁★級
+     *
+     * @return
+     */
+    public List<MonitorBo> listMonitorOnHome() {
 
-        if ("200".equals(getMonitorDto.getCode())) {
-            Monitor monitor = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, deviceSerial));
-            if (monitor != null) {
-                monitor.setDeviceSerial(getMonitorDto.getData().getDeviceSerial());
-
-                monitor.setDeviceName(getMonitorDto.getData().getDeviceName());
-                monitor.setDeviceType(getMonitorDto.getData().getModel());
-                monitor.setEquipmentState(getMonitorDto.getData().getStatus());
-                monitor.setIsEncrypt(getMonitorDto.getData().getIsEncrypt());
-                monitor.setAddTime(getMonitorDto.getData().getUpdateTime());
-                monitor.setNetAddress(getMonitorDto.getData().getNetAddress());
-                //鏇存柊鎽勫儚澶寸姸鎬�
-                updateById(monitor);
-            } else {
-                monitor = new Monitor();
-                monitor.setDeviceSerial(getMonitorDto.getData().getDeviceSerial());
-                monitor.setDeviceName(getMonitorDto.getData().getDeviceName());
-                monitor.setDeviceType(getMonitorDto.getData().getModel());
-                monitor.setEquipmentState(getMonitorDto.getData().getStatus());
-                monitor.setIsEncrypt(getMonitorDto.getData().getIsEncrypt());
-                monitor.setAddTime(getMonitorDto.getData().getUpdateTime());
-                monitor.setNetAddress(getMonitorDto.getData().getNetAddress());
-                //鏇存柊鎽勫儚澶寸姸鎬�
-                save(monitor);
-            }
-
-            return monitor;
+        List<MonitorBo> list;
+        if (SecurityUtils.getClientId() == null) {
+            list = monitorMapper.listMonitorDeviceSerial1(null, null, 2, null);
         } else {
-            return null;
+            list = monitorMapper.listMonitorDeviceSerial1(SecurityUtils.getUserId(), null, 2, null);
         }
+
+        //娌℃湁鏁版嵁鏃跺�欑洿鎺ヨ繑鍥炵┖鏁扮粍
+        if (list == null) {
+            return new ArrayList<>();
+        }
+
+        return list;
     }
 
     /**
@@ -216,7 +210,17 @@
         paramMap.put("appKey", AppKey);
         paramMap.put("appSecret", Secret);
         String s = HttpUtil.post(YSY_URL + ACCESSTOKEN_URL, paramMap);
+        if (!s.startsWith("{") || !s.endsWith("}")) {
+            log.error("鑾峰彇鎽勫儚澶磘oken澶辫触,鏍煎紡鏈夎!");
+        }
         YSY_AccessTokenDto accessTokenDto = JSON.parseObject(s, YSY_AccessTokenDto.class);
+
+        //浜屾鑾峰彇
+        if(accessTokenDto == null){
+            log.error("鑾峰彇鎽勫儚澶磘oken澶辫触,鏍煎紡鏈夎!");
+            s = HttpUtil.post(YSY_URL + ACCESSTOKEN_URL, paramMap);
+            accessTokenDto = JSON.parseObject(s, YSY_AccessTokenDto.class);
+        }
         return accessTokenDto.getData().getAccessToken();
     }
 
@@ -473,4 +477,33 @@
     }
 
 
+    /**
+     * 鍚慠edis涓瓨鍏ヨ澶囩姸鎬�
+     */
+    public void setCacheData() {
+        list().forEach(
+                device -> {
+                    RedisDeviceStatus deviceStatus = new RedisDeviceStatus();
+                    deviceStatus.setDeviceId(device.getDeviceSerial());
+                    if (device != null) {
+                        EquipmentInfomation monitorInfo = getMonitorInfo(device.getDeviceSerial());
+                        if (monitorInfo != null) {
+                            if ("鍦ㄧ嚎".equals(monitorInfo.getEquipmentState())) {
+                                deviceStatus.setStatus(0);
+                            } else {
+                                deviceStatus.setStatus(1);
+                            }
+
+                        } else {
+                            deviceStatus.setStatus(1);
+                        }
+                    }
+                    redisUtils.set(DeviceRedisKey.MONITOR + device.getDeviceSerial(), JSON.toJSONString(deviceStatus));
+//                    redisUtils.delete(DeviceRedisKey.MONITOR + device.getDeviceSerial());
+                }
+        );
+
+    }
+
+
 }

--
Gitblit v1.9.3