From 41feaf34a801b9fafee93317f96337b01f763be7 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期四, 25 八月 2022 15:20:53 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java |   39 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 37 insertions(+), 2 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 6dc3ec0..aaf9448 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
@@ -13,13 +13,18 @@
 import com.sandu.ximon.admin.manager.iot.rrpc.dto.WrapResponseCommonFrame;
 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.List;
+import java.util.Map;
 
 /**
  * @author chenjiantian
  * @date 2021/12/2 18:21
  */
+@Slf4j
 public abstract class BaseInvokeSyncService implements IInvoke, IBaseTopic, ICustomizeTopic {
 
     /**
@@ -30,7 +35,36 @@
      * @param clz           鍐呴儴甯у搷搴斿疄浣撶被 濡傛灉涓嶆兂鑷繁瑙f瀽 鍙甫涓�
      * @return 杩斿洖鐨勮В鐮佸抚瀹炰綋绫� 鍚屾椂鎶婂唴閮ㄥ抚瑙g爜涔嬪悗涔熸惡甯︿笂
      */
-    public abstract <T extends BaseResponseInnerFrame<T>> WrapResponseCommonFrame<T> sendRRPC(String deviceName, IRequestFrame iRequestFrame, Class<T> clz);
+    public <T extends BaseResponseInnerFrame<T>> WrapResponseCommonFrame<T> sendRRPC(String deviceName, IRequestFrame iRequestFrame, Class<T> clz){
+        CommonFrame commonFrame = sendRRPC(deviceName, iRequestFrame);
+        if (commonFrame == null) {
+            return null;
+        }
+        WrapResponseCommonFrame<T> responseCommonFrame = new WrapResponseCommonFrame<>();
+        BeanUtils.copyProperties(commonFrame, responseCommonFrame);
+        try {
+            responseCommonFrame.setResponseInnerFrame(clz.newInstance().transformFrame(responseCommonFrame.getPayload()));
+        } catch (InstantiationException | IllegalAccessException e) {
+            throw new BusinessException(String.format("鎵句笉鍒�%s鐨勬瀯閫犲嚱鏁�", clz.getName()));
+        }
+        return responseCommonFrame;
+    }
+
+    @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);
+        if (data == null) {
+            return null;
+        }
+        String result = data.getResult();
+        result = result.replace("\\", "");
+        Map map = JSON.parseObject(result, Map.class);
+        result = (String) map.get("msg");
+        return FrameUtils.transformMessageToFrame(result);
+    }
 
     /**
      * 鍩虹閫氫俊鍚屾璋冪敤
@@ -143,9 +177,10 @@
             response = getClient().getAcsResponse(request);
         } catch (ClientException e) {
             e.printStackTrace();
+            throw new BusinessException("纭欢璇锋眰澶辫触锛岃妫�鏌ョ‖浠惰澶囷紒");
         }
         if (response == null) {
-            throw new BusinessException("璋冪敤rrpc澶辫触");
+            throw new BusinessException("璋冪敤rrpc澶辫触锛屽搷搴斾负绌猴紒");
         }
         if (!response.getSuccess()) {
             throw new BusinessException("璋冪敤rrpc澶辫触锛�" + response.getErrorMessage());

--
Gitblit v1.9.3