From 6002cb9371055af6d37c8581d207cf6e3d0f9a4a Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期四, 29 六月 2023 10:33:28 +0800
Subject: [PATCH] 2023年06月29日10:33:22

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java |   93 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 79 insertions(+), 14 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
index 1faea0a..54a63fe 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
@@ -12,6 +12,10 @@
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.ui.bean.HouseInfoBean;
 import com.hdl.photovoltaic.ui.bean.HouseIdBean;
+import com.hdl.sdk.link.common.exception.HDLLinkException;
+import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
+import com.hdl.sdk.link.core.callback.GatewayCallBack;
+import com.hdl.sdk.link.core.config.HDLLinkConfig;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -53,6 +57,9 @@
     }
 
     public void setHouseInfoList(List<HouseInfoBean> houseInfoList) {
+        if (houseInfoList == null) {
+            houseInfoList = new ArrayList<>();
+        }
         this.houseInfoList = houseInfoList;
     }
 
@@ -66,6 +73,9 @@
     }
 
     public void setHouseIdList(List<HouseIdBean> houseIdList) {
+        if (houseIdList == null) {
+            houseIdList = new ArrayList<>();
+        }
         this.houseIdList = houseIdList;
     }
 
@@ -82,7 +92,7 @@
      */
     public void getHouseList(CloudCallBeak<Boolean> cloudCallBeak) {
         //鑾峰彇浣忓畢ID鍒楄〃
-        getResidenceList("", "", new CloudCallBeak<List<HouseIdBean>>() {
+        getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() {
             @Override
             public void onSuccess(List<HouseIdBean> houseListBeanIDList) {
                 if (houseListBeanIDList != null && houseListBeanIDList.size() > 0) {
@@ -151,7 +161,7 @@
      * @param key      鍙戠數鍔熺巼鎺掑簭(powerSort);浠婃棩鍙戠數閲忔帓搴�(todayElectricitySort);鍒涘缓鏃堕棿鎺掑簭(createTimeSort);
      * @param keyValue (descending:闄嶅簭ascending:鍗囧簭),
      */
-    public void getResidenceList(String key, String keyValue, CloudCallBeak<List<HouseIdBean>> cloudCallBeak) {
+    public void getResidenceIdList(String key, String keyValue, CloudCallBeak<List<HouseIdBean>> cloudCallBeak) {
 
         String requestUrl = HttpApi.POST_PowerStation_List;
         JsonObject json = new JsonObject();
@@ -401,24 +411,36 @@
     }
 
     /**
-     * 鍒囨崲浣忓畢
-     *
-     * @param homeId 浣忓畢id
+     * 鑾峰彇浣忓畢鍥剧墖
      */
-    public Boolean switchHouse(String homeId) {
-        UserConfigManage.getInstance().setHomeId(homeId);
-        HdlThreadLogic.runThread(new Runnable() {
+    public void getResidenceImage(String imageUrl, CloudCallBeak<List<HouseIdBean>> cloudCallBeak) {
+        String requestUrl = imageUrl;
+        JsonObject json = new JsonObject();
+        List<HouseIdBean> list = new ArrayList<>();
+        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() {
             @Override
-            public void run() {
-                //鎼滅储涓�涓嬩綇瀹呰澶�
+            public void onSuccess(HttpResponsePack httpResponsePack) {
+                if (httpResponsePack != null && httpResponsePack.getData() != null) {
+                    Gson gson = new Gson();
+                    String jsonStr = gson.toJson(httpResponsePack.getData());
+                    HouseBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseBeanClass.class);
+                } else {
+                    if (cloudCallBeak != null) {
+                        cloudCallBeak.onSuccess(list);
+                    }
+                }
             }
-        }, null, null);
 
-        //鍏抽棴杩涘害鏉�
+            @Override
+            public void onFailure(Exception exception) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(exception);
+                }
+            }
+        });
 
-        return true;
+
     }
-
 
     /**
      * 娣诲姞銆愪綇瀹呰鎯呫�戝埌鏈湴缂撳瓨
@@ -481,6 +503,49 @@
         }
     }
 
+    /**
+     * 鍒囨崲浣忓畢
+     *
+     * @param houseIdBean 浣忓畢Id瀵硅薄
+     */
+    public void switchHouse(HouseIdBean houseIdBean) {
+        String oidHomeId = UserConfigManage.getInstance().getHomeId();
+        if (houseIdBean.getHomeId().equals(oidHomeId)) {
+            return;
+        }
+        //鍒犻櫎鏃х殑浣忓畢鏂囦欢澶�
+        HdlFileLogic.getInstance().deleteDirectory(HdlFileLogic.getInstance().getCurrentHomeRootPath());
+        //閲嶆柊璁剧疆浣忓畢id
+        UserConfigManage.getInstance().setHomeId(houseIdBean.getHomeId());
+        //閲嶆柊璁剧疆鏈湴閫氳绉橀挜
+        UserConfigManage.getInstance().setLocalSecret(houseIdBean.getLocalSecret());
+        //閲嶆柊鍒涘缓浣忓畢鏂囦欢澶�
+        HdlFileLogic.getInstance().createDirectory();
+        //閰嶇疆鏈湴閫氫俊鐨勪俊鎭�
+        initLocalLinkSdk();
+        HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() {
+            @Override
+            public void onSuccess(List<GatewayBean> gatewayBeanList) {
+
+            }
+
+            @Override
+            public void onError(HDLLinkException e) {
+
+            }
+        });
+
+    }
+
+    /**
+     * 閰嶇疆鏈湴閫氫俊鐨勪俊鎭�(tcp閫氫俊鐢ㄥ埌)
+     */
+    private void initLocalLinkSdk() {
+        HDLLinkConfig.getInstance().setHomeId(UserConfigManage.getInstance().getHomeId());
+        HDLLinkConfig.getInstance().setLocalSecret(UserConfigManage.getInstance().getLocalSecret());
+
+    }
+
 
     static class HouseBeanClass {
 

--
Gitblit v1.8.0