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/AirEquipmentService.java |   52 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 44 insertions(+), 8 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java
index d15a52d..8e5bb04 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java
@@ -1,5 +1,6 @@
 package com.sandu.ximon.admin.service;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.sandu.common.execption.BusinessException;
@@ -10,16 +11,19 @@
 import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartBeatTimeReportInnerFrame;
 import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereOperationReportInnerFrame;
 import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereQuerySensorInfoReportInnerFrame;
+import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereQueryVersionReportInnerFrame;
 import com.sandu.ximon.admin.manager.iot.frame.inner.request.*;
 import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
 import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum;
 import com.sandu.ximon.admin.manager.iot.rrpc.enums.AtmoFunctionCode;
 import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
+import com.sandu.ximon.admin.redis.DeviceRedisKey;
 import com.sandu.ximon.admin.security.SecurityUtils;
 import com.sandu.ximon.admin.utils.RedisUtils;
 import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
 import com.sandu.ximon.admin.utils.StringUtil;
 import com.sandu.ximon.admin.vo.EquipmentInfomation;
+import com.sandu.ximon.admin.vo.RedisDeviceStatus;
 import com.sandu.ximon.dao.bo.AirEquipmentBo;
 import com.sandu.ximon.dao.domain.AirEquipment;
 import com.sandu.ximon.dao.mapper.AirEquipmentMapper;
@@ -34,6 +38,7 @@
 public class AirEquipmentService extends BaseServiceImpl<AirEquipmentMapper, AirEquipment> {
 
     private final AirEquipmentMapper airEquipmentMapper;
+    private final RedisUtils redisUtils;
 
 
     /**
@@ -74,9 +79,7 @@
      */
     public void addAirEquipment(AirEquipment airEquipment) {
         AirEquipment one = getOne(Wrappers.lambdaQuery(AirEquipment.class).eq(AirEquipment::getMac, airEquipment.getMac()));
-//        //瀛樺偍璁惧鐘舵�佸埌缂撳瓨
-//        RedisUtils.getBean().set(AtmoFunctionCode.AIR_EQUIPMENT_STATE.getCode() + airEquipment.getMac()
-//                , 1, 300L);
+
         if (one == null) {
             save(airEquipment);
             /**
@@ -254,11 +257,10 @@
      * @param mac
      * @return
      */
-    public void QueryVersion(String mac) {
+    public String QueryVersion(String mac) {
         if (StringUtil.strIsNullOrEmpty(mac)) {
             throw new BusinessException("鐏潌mac鍙傛暟閿欒锛�");
         }
-        //TODO
         AirEquipment airEquipment = SpringContextHolder.getBean(AirEquipmentService.class).
                 getOne(Wrappers.lambdaQuery(AirEquipment.class).eq(AirEquipment::getMac, mac).last("limit 1"));
 
@@ -273,7 +275,14 @@
         System.out.println(commonFrame + "         -----------commonFrame");
 
 //        FEA504000AFE040002FFFF8E00974C          --------a5Frame
-//        FEA584000BFE040003FFFFFF38586A49EE3EAF62         -----------commonFrame
+//        FEA584000CFE040004FFFF0105954FAA7F1123C0CB         -----------commonFrame
+        A5AtmosphereQueryVersionReportInnerFrame a5AtmosphereQueryVersionReportInnerFrame =
+                new A5AtmosphereQueryVersionReportInnerFrame().transformFrame(commonFrame.getPayload());
+        if (a5AtmosphereQueryVersionReportInnerFrame != null && a5AtmosphereQueryVersionReportInnerFrame.isValidate()) {
+            return a5AtmosphereQueryVersionReportInnerFrame.getVersion();
+        } else {
+            throw new BusinessException("鏁版嵁鏍¢獙寮傚父锛�");
+        }
     }
 
     /**
@@ -317,8 +326,7 @@
      * @param valueOfReal     浼犳劅鍣ㄦ暟鍊�
      * @param valueOfStandard 鏍囧噯浠櫒鏁板��
      */
-    public void ModifiedData(String mac, String type, Double valueOfReal, Double valueOfStandard) {
-        //TODO
+    public String ModifiedData(String mac, String type, String valueOfReal, String valueOfStandard) {
         if (StringUtil.strIsNullOrEmpty(mac)) {
             throw new BusinessException("鐏潌mac鍙傛暟閿欒锛�");
         }
@@ -340,5 +348,33 @@
         System.out.println(commonFrame + "         -----------commonFrame");
 
 
+        A5AtmosphereOperationReportInnerFrame a5AtmosphereOperationReportInnerFrame
+                = new A5AtmosphereOperationReportInnerFrame().transformFrame(commonFrame.getPayload());
+        if (a5AtmosphereOperationReportInnerFrame.isValidate()) {
+            return a5AtmosphereOperationReportInnerFrame.getState();
+        } else {
+            throw new BusinessException("鏁版嵁鏍¢獙寮傚父锛�");
+        }
+    }
+
+
+    /**
+     * 鍚慠edis涓瓨鍏ヨ澶囩姸鎬�
+     */
+    public void setCacheData() {
+        list().forEach(
+                device -> {
+                    RedisDeviceStatus deviceStatus = new RedisDeviceStatus();
+                    deviceStatus.setDeviceId(device.getMac());
+
+                    if (RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT_STATE.getCode() + device.getMac()) != null) {
+                        deviceStatus.setStatus(0);
+                    } else {
+                        deviceStatus.setStatus(1);
+                    }
+                    redisUtils.set(DeviceRedisKey.AIR + device.getMac(), JSON.toJSONString(deviceStatus));
+//                    redisUtils.delete(DeviceRedisKey.AIR + device.getAirMac());
+                }
+        );
     }
 }

--
Gitblit v1.9.3