From e55c8b0a92eb9715edd90c31dfd4de51a47b588b Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期五, 04 十一月 2022 17:40:08 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java |   98 ++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 77 insertions(+), 21 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 4b162fe..4188b54 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
@@ -55,6 +60,8 @@
 
 
     private final PoleBindingService poleBindingService;
+
+    private final RedisUtils redisUtils;
 
     /**
      * 鎽勫儚澶村垪琛ㄦā绯婃煡璇�
@@ -168,30 +175,40 @@
     /**
      * 鍒犻櫎鎽勫儚澶�
      *
-     * @param Id
+     * @param
      * @return
      */
-    public boolean deleteMonitor(Long Id) {
-        Monitor monitor = getById(Id);
-        if (monitor == null) {
-            throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
+    public boolean deleteMonitor(List<Long> ids) {
+        List<Long> idList = new ArrayList<Long>();
+        List<Monitor> monitors = listByIds(ids);
+        if (!monitors.isEmpty()) {
+            monitors.forEach(
+                    monitor -> {
+                        if (monitor == null) {
+                            throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
+                        }
+                        PoleBinding one = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, monitor.getDeviceSerial()));
+                        if (one != null) {
+                            //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
+                            poleBindingService.unBindPole(null, monitor.getDeviceSerial());
+                        }
+                        /**
+                         * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曞紑濮�
+                         */
+                        String content = "{鎽勫儚澶碈ode锛�" + monitor.getDeviceSerial() + "锛� 鎽勫儚澶村悕绉帮細" + monitor.getDeviceName() + " }";
+                        List<String> listCode = new ArrayList<>();
+                        listCode.add(monitor.getDeviceSerial());
+                        StoreOperationRecordsUtils.storeOperationData(listCode, null, "鍒犻櫎鎽勫儚澶�", content);
+                        /**
+                         * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曠粨鏉�
+                         */
+                        idList.add(monitor.getId());
+                    }
+            );
         }
-        PoleBinding one = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, monitor.getDeviceSerial()));
-        if (one != null) {
-            //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
-            poleBindingService.unBindPole(null, monitor.getDeviceSerial());
-        }
-        /**
-         * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曞紑濮�
-         */
-        String content = "{鎽勫儚澶碈ode锛�" + monitor.getDeviceSerial() + "锛� 鎽勫儚澶村悕绉帮細" + monitor.getDeviceName() + " }";
-        List<String> listCode = new ArrayList<>();
-        listCode.add(monitor.getDeviceSerial());
-        StoreOperationRecordsUtils.storeOperationData(listCode, null, "鍒犻櫎鎽勫儚澶�", content);
-        /**
-         * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曠粨鏉�
-         */
-        return removeById(Id);
+        //鍏ㄩ儴鍒犻櫎鎴愬姛
+        return removeByIds(idList);
+
     }
 
     /**
@@ -203,7 +220,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();
     }
 
@@ -460,4 +487,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