From 0c1949984e4c59d4ae5f2d96c6b7438364642a08 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期四, 12 十二月 2024 17:25:18 +0800
Subject: [PATCH] 2024年12月12日17:25:15

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java |   95 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 89 insertions(+), 6 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
index 67b7d2e..c369bc7 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -79,6 +79,7 @@
 import com.hdl.sdk.link.gateway.HDLLinkLocalGateway;
 
 import org.greenrobot.eventbus.EventBus;
+import org.json.JSONArray;
 import org.json.JSONObject;
 
 
@@ -243,9 +244,14 @@
                         }
                     }
                     break;
-                    //鐢电珯鐨勪氦浠樹簩缁寸爜(瀹夎鍟�)
+//                    //鐢电珯鐨勪氦浠樹簩缁寸爜(瀹夎鍟�)
+//                    case HDLUniMP.UNI_EVENT_REPLY_HOME_DELIVERYURLQRCODE: {
+//                        uniGetDeliveryUrlQrcode(type, data, callback);
+//                    }
+//                    break;
+                    //鐢电珯鐨勪氦浠楿RL(瀹夎鍟�)
                     case HDLUniMP.UNI_EVENT_REPLY_HOME_DELIVERYURLQRCODE: {
-                        uniGetDeliveryUrlQrcode(type, data, callback);
+                        uniGetDeliveryUrl(type, data, callback);
                     }
                     break;
                     //鐢电珯鎵嬪姩浜や粯(瀹夎鍟�)
@@ -717,8 +723,23 @@
                             HdlESLocalJsonLogic.getInstance().getHdlESLocalJson(url, deviceModel, new CloudCallBeak<String>() {
                                 @Override
                                 public void onSuccess(String obj) {
+//                                    if (callback != null) {
+//                                        uniSuccessCallback(type, obj, callback);
+//                                    }
+                                    String s = HdlESLocalJsonLogic.getInstance().readHdlESLocalJson(url, deviceModel);
+                                    //鏈湴缂撳瓨鏁版嵁
                                     if (callback != null) {
-                                        uniSuccessCallback(type, obj, callback);
+                                        try {
+                                            if (s.startsWith("{")) {
+                                                uniSuccessCallback(type, new Gson().fromJson(s, JsonObject.class), callback);
+                                            } else if (s.startsWith("[")) {
+                                                uniSuccessCallback(type, new Gson().fromJson(s, JsonArray.class), callback);
+                                            } else {
+                                                uniSuccessCallback(type, s, callback);
+                                            }
+                                        } catch (Exception e) {
+                                            uniSuccessCallback(type, s, callback);
+                                        }
                                     }
                                 }
 
@@ -732,7 +753,17 @@
                         } else {
                             //鏈湴缂撳瓨鏁版嵁
                             if (callback != null) {
-                                uniSuccessCallback(type, json, callback);
+                                try {
+                                    if (json.startsWith("{")) {
+                                        uniSuccessCallback(type, new Gson().fromJson(json, JsonObject.class), callback);
+                                    } else if (json.startsWith("[")) {
+                                        uniSuccessCallback(type, new Gson().fromJson(json, JsonArray.class), callback);
+                                    } else {
+                                        uniSuccessCallback(type, json, callback);
+                                    }
+                                } catch (Exception e) {
+                                    uniSuccessCallback(type, json, callback);
+                                }
                             }
                         }
                     }
@@ -946,6 +977,32 @@
             @Override
             public void onSuccess(String obj) {
                 uniSuccessCallback(type, obj, callback);
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                uniExceptionCallback(type, e, callback);
+            }
+        });
+
+    }
+
+    /**
+     * 鐢电珯鐨勪氦浠楿Rl(瀹夎鍟�)
+     */
+    private void uniGetDeliveryUrl(String type, Object data, DCUniMPJSCallback callback) {
+        String homeId = getKeyValue("homeId", getKeyValue("data", data));
+        HdlResidenceLogic.getInstance().getDeliveryUrl(homeId, new CloudCallBeak<String>() {
+            @Override
+            public void onSuccess(String obj) {
+                try {
+                    Gson g = new Gson();
+                    JsonObject jObject = g.fromJson(obj, JsonObject.class);
+                    String deliveryUrl = jObject.get("deliveryUrl").toString();
+                    uniSuccessCallback(type, deliveryUrl, callback);
+                } catch (Exception ignored) {
+                    uniSuccessCallback(type, obj, callback);
+                }
             }
 
             @Override
@@ -2308,8 +2365,9 @@
         HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(homeId, new CloudCallBeak<List<GatewayBean>>() {
             @Override
             public void onSuccess(List<GatewayBean> list) {
+                List<GatewayBean> newList = sortLogic(list);
                 if (callback != null) {
-                    uniSuccessCallback(type, list, callback);
+                    uniSuccessCallback(type, newList, callback);
                 }
                 //EventBus浜嬩欢鍒嗗彂,杩涘叆浣忓畢寮�濮嬭闃呬富棰�
                 BaseEventBus baseEventBus = new BaseEventBus();
@@ -2318,7 +2376,7 @@
                 baseEventBus.setData(homeId);
                 EventBus.getDefault().post(baseEventBus);
                 //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�;
-                HdlDeviceLogic.getInstance().uploadOidDataToCloud(homeId, list, false, null);
+                HdlDeviceLogic.getInstance().uploadOidDataToCloud(homeId, newList, false, null);
             }
 
             @Override
@@ -2332,6 +2390,31 @@
     }
 
     /**
+     * 杩涜鎺掑簭锛堥�嗗彉鍣�-璐熻浇涓績锛�
+     *
+     * @param list 婧愭暟鎹�
+     * @return 杩斿洖鍒楄〃
+     */
+    private List<GatewayBean> sortLogic(List<GatewayBean> list) {
+        if (list == null || list.size() == 0) {
+            return new ArrayList<>();
+        }
+        List<GatewayBean> newList = new ArrayList<>();
+        List<GatewayBean> inverterList = new ArrayList<>();
+        List<GatewayBean> lcList = new ArrayList<>();
+        for (int i = 0; i < list.size(); i++) {
+            if (list.get(i).getSpk().equals(HdlDeviceLogic.getInstance().INVERTER_DEVICE_SPK)) {
+                inverterList.add(list.get(i));
+            } else {
+                lcList.add(list.get(i));
+            }
+        }
+        newList.addAll(inverterList);
+        newList.addAll(lcList);
+        return newList;
+    }
+
+    /**
      * link spk 灞炴�х紪杈�
      *
      * @param data     uni鏁版嵁

--
Gitblit v1.8.0