From b531004a3cbd33d7bb9f5b7dce06ddd4f5e7ec9a Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期五, 18 十一月 2022 11:57:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/xm-20221107' into xm-20221107

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java |   98 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 60 insertions(+), 38 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java
index 6e93fc5..c78d4a0 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java
@@ -6,19 +6,26 @@
 import com.aliyuncs.exceptions.ClientException;
 import com.aliyuncs.iot.model.v20180120.*;
 import com.sandu.common.execption.BusinessException;
+import com.sandu.ximon.admin.dto.DeviceStatus;
+import com.sandu.ximon.admin.localMQTT.util.MqttClientUtil;
 import com.sandu.ximon.admin.manager.iot.frame.IRequestFrame;
 import com.sandu.ximon.admin.manager.iot.frame.inner.BaseResponseInnerFrame;
 import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
 import com.sandu.ximon.admin.manager.iot.rrpc.dto.InvokeParam;
 import com.sandu.ximon.admin.manager.iot.rrpc.dto.WrapResponseCommonFrame;
+import com.sandu.ximon.admin.manager.iot.rrpc.enums.DeviceStateEnum;
 import com.sandu.ximon.admin.manager.iot.rrpc.topic.IBaseTopic;
 import com.sandu.ximon.admin.manager.iot.rrpc.topic.ICustomizeTopic;
 import com.sandu.ximon.admin.manager.iot.rrpc.util.FrameUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 
+import java.util.ArrayList;
+import java.util.Base64;
 import java.util.List;
 import java.util.Map;
+
+import static com.sandu.ximon.admin.localMQTT.callback.StatusMqttCallBack.localMqttConnectStatusMap;
 
 /**
  * @author chenjiantian
@@ -52,46 +59,52 @@
 
     @Override
     public CommonFrame sendRRPC(String deviceName, InvokeParam invokeParam) {
-        InvokeThingServiceResponse.Data data = invokeThing(deviceName, invokeParam, false);
-        if (data == null) {
-            return null;
-        }
-        String result = data.getResult();
-        result = result.replace("\\", "");
-        Map map = JSON.parseObject(result, Map.class);
-        result = (String) map.get("msg");
+//        InvokeThingServiceResponse.Data data = invokeThing(deviceName, invokeParam, false);
+//        if (data == null) {
+//            return null;
+//        }
+//        String result = data.getResult();
+//        result = result.replace("\\", "");
+//        Map map = JSON.parseObject(result, Map.class);
+//        result = (String) map.get("msg");
+        String result = MqttClientUtil.sendMqttMsg(deviceName,invokeParam.getFrame());
         return FrameUtils.transformMessageToFrame(result);
     }
 
     @Override
     public CommonFrame sendRRPC(String deviceName, IRequestFrame iRequestFrame) {
-        InvokeParam param = new InvokeParam();
-        param.setOperate("1001");
-        param.setFrame(iRequestFrame.getEncodeFrame());
-        InvokeThingServiceResponse.Data data = invokeThing(deviceName, param, false);
-        if (data == null) {
-            return null;
-        }
-        String result = data.getResult();
-        result = result.replace("\\", "");
-        Map map = JSON.parseObject(result, Map.class);
-        result = (String) map.get("msg");
+//        InvokeParam param = new InvokeParam();
+//        param.setOperate("1001");
+//        param.setFrame(iRequestFrame.getEncodeFrame());
+//        InvokeThingServiceResponse.Data data = invokeThing(deviceName, param, false);
+//        if (data == null) {
+//            return null;
+//        }
+//        String result = data.getResult();
+//        result = result.replace("\\", "");
+//        Map map = JSON.parseObject(result, Map.class);
+//        result = (String) map.get("msg");
+        String frame = FrameUtils.transformMessageToFrame(iRequestFrame.getEncodeFrame()).toString();
+        String result = MqttClientUtil.sendMqttMsg(deviceName,frame);
+        log.info("鑷畾涔塻endRRPC:璇锋眰甯э細{},\n,鍝嶅簲甯�:{}",iRequestFrame.toString(),result);
         return FrameUtils.transformMessageToFrame(result);
     }
 
     @Override
     public CommonFrame sendRRPC(String deviceName, IRequestFrame iRequestFrame, boolean resendFlag) {
-        InvokeParam param = new InvokeParam();
-        param.setOperate("1001");
-        param.setFrame(iRequestFrame.getEncodeFrame());
-        InvokeThingServiceResponse.Data data = invokeThing(deviceName, param, true);
-        if (data == null) {
-            return null;
-        }
-        String result = data.getResult();
-        result = result.replace("\\", "");
-        Map map = JSON.parseObject(result, Map.class);
-        result = (String) map.get("msg");
+//        InvokeParam param = new InvokeParam();
+//        param.setOperate("1001");
+//        param.setFrame(iRequestFrame.getEncodeFrame());
+//        InvokeThingServiceResponse.Data data = invokeThing(deviceName, param, true);
+//        if (data == null) {
+//            return null;
+//        }
+//        String result = data.getResult();
+//        result = result.replace("\\", "");
+//        Map map = JSON.parseObject(result, Map.class);
+//        result = (String) map.get("msg");
+        String frame = FrameUtils.transformMessageToFrame(iRequestFrame.getEncodeFrame()).toString();
+        String result = MqttClientUtil.sendMqttMsg(deviceName,frame);
         return FrameUtils.transformMessageToFrame(result);
     }
 
@@ -175,14 +188,23 @@
 
     @Override
     public List<BatchGetDeviceStateResponse.DeviceStatus> batchGetDeviceState(List<String> deviceNames) {
-        BatchGetDeviceStateRequest request = new BatchGetDeviceStateRequest();
-        request.setDeviceNames(deviceNames);
-        request.setProductKey(getProductKey());
-        BatchGetDeviceStateResponse response = invokeSync(request);
-        if (response != null && response.getSuccess()) {
-            return response.getDeviceStatusList();
-        }
-        return null;
+        List<BatchGetDeviceStateResponse.DeviceStatus> statusList = new ArrayList<>();
+
+        deviceNames.forEach(l -> {
+            BatchGetDeviceStateResponse.DeviceStatus deviceStatus = new BatchGetDeviceStateResponse.DeviceStatus();
+                    deviceStatus.setDeviceName(l);
+
+            if (localMqttConnectStatusMap.get(l)!=null &&
+                    localMqttConnectStatusMap.get(l)== 1){
+                deviceStatus.setStatus("ONLINE");
+            }else {
+                deviceStatus.setStatus("OFFLINE");
+            }
+            statusList.add(deviceStatus);
+        });
+
+
+        return statusList;
     }
 
     /**

--
Gitblit v1.9.3