From 3d94f1da938ec81c6e666a1d6e09088769e0e538 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 27 六月 2023 13:48:04 +0800
Subject: [PATCH] 2023年06月27日13:47:26

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java |  161 ++++++++++++++++++-----------------------------------
 1 files changed, 55 insertions(+), 106 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 6b2f341..1faea0a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
@@ -1,8 +1,6 @@
 package com.hdl.photovoltaic.other;
 
-import android.os.SystemClock;
 import android.text.TextUtils;
-import android.util.Log;
 
 import com.google.gson.Gson;
 import com.google.gson.JsonObject;
@@ -13,13 +11,10 @@
 import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.ui.bean.HouseInfoBean;
-import com.hdl.photovoltaic.ui.bean.HouseListBean;
-
-import org.w3c.dom.Text;
+import com.hdl.photovoltaic.ui.bean.HouseIdBean;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
@@ -48,6 +43,11 @@
         return sHdlResidenceLogic;
     }
 
+    /**
+     * 鑾峰彇浣忓畢鍒楄〃
+     *
+     * @return 浣忓畢鍒楄〃
+     */
     public List<HouseInfoBean> getHouseInfoList() {
         return houseInfoList;
     }
@@ -56,16 +56,21 @@
         this.houseInfoList = houseInfoList;
     }
 
-    public List<HouseListBean> getHouseInfoBeanList() {
-        return houseList;
+    /**
+     * 鑾峰彇浣忓畢ID鍒楄〃
+     *
+     * @return 浣忓畢ID鍒楄〃
+     */
+    public List<HouseIdBean> getHouseIdList() {
+        return houseIdList;
     }
 
-    public void setHouseInfoBeanList(List<HouseListBean> houseListBeanList) {
-        this.houseList = houseListBeanList;
+    public void setHouseIdList(List<HouseIdBean> houseIdList) {
+        this.houseIdList = houseIdList;
     }
 
-    //浣忓畢鍒楄〃
-    private List<HouseListBean> houseList = new ArrayList<>();
+    //浣忓畢ID鍒楄〃
+    private List<HouseIdBean> houseIdList = new ArrayList<>();
     //浣忓畢璇︽儏鍒楄〃
     private List<HouseInfoBean> houseInfoList = new ArrayList<>();
 
@@ -76,32 +81,32 @@
      * @param cloudCallBeak -
      */
     public void getHouseList(CloudCallBeak<Boolean> cloudCallBeak) {
-        //鑾峰彇浣忓畢鍒楄〃
-        getResidenceList("", "", new CloudCallBeak<List<HouseListBean>>() {
+        //鑾峰彇浣忓畢ID鍒楄〃
+        getResidenceList("", "", new CloudCallBeak<List<HouseIdBean>>() {
             @Override
-            public void onSuccess(List<HouseListBean> houseListBeanList) {
-                if (houseListBeanList != null && houseListBeanList.size() > 0) {
-                    houseList.clear();
-                    houseList.addAll(houseListBeanList);
-                    //鏍囪鏈�鍚庝竴鏉�
+            public void onSuccess(List<HouseIdBean> houseListBeanIDList) {
+                if (houseListBeanIDList != null && houseListBeanIDList.size() > 0) {
+                    houseIdList.clear();
+                    houseIdList.addAll(houseListBeanIDList);
+                    //璁板綍璇锋眰鏉℃暟
                     AtomicInteger atomicInteger = new AtomicInteger(0);
-                    for (int i = 0; i < houseList.size(); i++) {
-                        HouseListBean houseListBean = houseList.get(i);
-                        atomicInteger.set(i);
+                    for (int i = 0; i < houseIdList.size(); i++) {
+                        HouseIdBean houseIdBean = houseIdList.get(i);
                         //鑾峰彇浣忓畢璇︽儏鍒楄〃
-                        getResidenceInfo(houseListBean.getHomeId(), new CloudCallBeak<HouseInfoBean>() {
+                        getResidenceInfo(houseIdBean.getHomeId(), new CloudCallBeak<HouseInfoBean>() {
                             @Override
                             public void onSuccess(HouseInfoBean houseInfoBean) {
+                                atomicInteger.set(atomicInteger.get() + 1);
                                 if (houseInfoBean != null) {
-                                    houseInfoBean.setHomeImage(houseListBean.getHomeImage());//鐢电珯鍥剧墖
-                                    houseInfoBean.setInstalledCapacity(houseListBean.getInstalledCapacity());//瑁呮満瀹归噺
-                                    houseInfoBean.setPower(houseListBean.getPower());//鍙戠數鍔熺巼
-                                    houseInfoBean.setTodayElectricity(houseListBean.getTodayElectricity());//浠婂ぉ鍙戠數閲�
-                                    houseInfoBean.setPowerStationStatus(houseListBean.getPowerStationStatus());//鐢电珯鐘舵��(鐢电珯鐘舵��	1:姝e父(杩愯),2:绂荤嚎,3:杩炴帴涓�,4:鏁呴殰)
+                                    houseInfoBean.setHomeImage(houseIdBean.getHomeImage());//鐢电珯鍥剧墖
+                                    houseInfoBean.setInstalledCapacity(houseIdBean.getInstalledCapacity());//瑁呮満瀹归噺
+                                    houseInfoBean.setPower(houseIdBean.getPower());//鍙戠數鍔熺巼
+                                    houseInfoBean.setTodayElectricity(houseIdBean.getTodayElectricity());//浠婂ぉ鍙戠數閲�
+                                    houseInfoBean.setPowerStationStatus(houseIdBean.getPowerStationStatus());//鐢电珯鐘舵��(鐢电珯鐘舵��	1:姝e父(杩愯),2:绂荤嚎,3:杩炴帴涓�,4:鏁呴殰)
                                     //娣诲姞鍒版湰鍦扮紦瀛�
                                     addHouseToLocalMemory(houseInfoBean);
                                 }
-                                if (atomicInteger.get() == houseList.size() - 1) {
+                                if (atomicInteger.get() == houseIdList.size()) {
                                     //鏈�鍚庝竴鏉¢��鍑�
                                     if (cloudCallBeak != null) {
                                         cloudCallBeak.onSuccess(true);
@@ -112,7 +117,9 @@
 
                             @Override
                             public void onFailure(Exception exception) {
-                                if (atomicInteger.get() == houseList.size() - 1) {
+                                atomicInteger.set(atomicInteger.get() + 1);
+                                if (atomicInteger.get() == houseIdList.size()) {
+                                    //鏈�鍚庝竴鏉¢��鍑�
                                     if (cloudCallBeak != null) {
                                         cloudCallBeak.onFailure(exception);
                                     }
@@ -139,71 +146,12 @@
     }
 
     /**
-     * 鑾峰彇浣忓畢(鐢电珯)鍒楄〃
+     * 鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃
      *
-     * @param pageNo   褰撳墠椤垫暟 寮�濮嬮粯璁�1
-     * @param pageSize 涓�椤靛ぇ灏� 寮�濮嬮粯璁�50
      * @param key      鍙戠數鍔熺巼鎺掑簭(powerSort);浠婃棩鍙戠數閲忔帓搴�(todayElectricitySort);鍒涘缓鏃堕棿鎺掑簭(createTimeSort);
      * @param keyValue (descending:闄嶅簭ascending:鍗囧簭),
      */
-    public void getResidenceList(int pageNo, int pageSize, String key, String keyValue, CloudCallBeak<Boolean> cloudCallBeak) {
-        if (pageNo == 1) {
-            //绗竴娆¤繘鏉ユ竻绌哄垪琛�
-            houseList.clear();
-        }
-        String requestUrl = HttpApi.POST_PowerStation_List;
-        JsonObject json = new JsonObject();
-        if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(keyValue)) {
-            json.addProperty(key, keyValue);//鍙戠數鍔熺巼鎺掑簭(descending:闄嶅簭ascending:鍗囧簭)
-        }
-//        json.addProperty("powerSort", "descending");//鍙戠數鍔熺巼鎺掑簭(descending:闄嶅簭ascending:鍗囧簭)
-//        json.addProperty("todayElectricitySort", "descending");//浠婃棩鍙戠數閲忔帓搴�
-//        json.addProperty("createTimeSort", "descending");//鍒涘缓鏃堕棿鎺掑簭
-//        json.addProperty("zoneType", "password");//鍖哄煙
-        json.addProperty("pageNo", pageNo);//椤电爜
-        json.addProperty("pageSize", pageSize);//椤垫暟
-
-        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() {
-            @Override
-            public void onSuccess(HttpResponsePack httpResponsePack) {
-                if (httpResponsePack != null && httpResponsePack.getData() != null) {
-                    Gson gson = new Gson();
-                    String jsonStr = gson.toJson(httpResponsePack.getData());
-                    HouseInfoBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseInfoBeanClass.class);
-                    //娣诲姞銆愪綇瀹呫�戝埌鏈湴缂撳瓨
-                    houseList.addAll(houseInfoBeanClass.getList());
-                    //鎬诲叡鏈夊灏戦〉
-                    long totalPage = houseInfoBeanClass.totalPage;
-                    if (totalPage == houseInfoBeanClass.getPageNo()) {
-                        if (cloudCallBeak != null) {
-                            cloudCallBeak.onSuccess(true);
-                        }
-                        return;
-                    }
-                    if (pageNo > totalPage) {
-                        //褰撳墠璇锋眰鐨勯〉鏁板ぇ浜庢�婚〉鏁�,浜戠鍑洪敊浜嗙珛鍗宠繑鍥炲幓;
-                        if (cloudCallBeak != null) {
-                            cloudCallBeak.onSuccess(true);
-                        }
-                        return;
-                    }
-                    getResidenceList(pageNo + 1, pageSize, key, keyValue, cloudCallBeak);
-
-                }
-            }
-
-
-            @Override
-            public void onFailure(Exception exception) {
-                if (cloudCallBeak != null) {
-                    cloudCallBeak.onFailure(exception);
-                }
-            }
-        });
-    }
-
-
-    public void getResidenceList(String key, String keyValue, CloudCallBeak<List<HouseListBean>> cloudCallBeak) {
+    public void getResidenceList(String key, String keyValue, CloudCallBeak<List<HouseIdBean>> cloudCallBeak) {
 
         String requestUrl = HttpApi.POST_PowerStation_List;
         JsonObject json = new JsonObject();
@@ -216,14 +164,14 @@
 //        json.addProperty("zoneType", "password");//鍖哄煙
         json.addProperty("pageNo", 1);//椤电爜
         json.addProperty("pageSize", pageSize);//椤垫暟
-        List<HouseListBean> list = new ArrayList<>();
+        List<HouseIdBean> list = new ArrayList<>();
         HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() {
             @Override
             public void onSuccess(HttpResponsePack httpResponsePack) {
                 if (httpResponsePack != null && httpResponsePack.getData() != null) {
                     Gson gson = new Gson();
                     String jsonStr = gson.toJson(httpResponsePack.getData());
-                    HouseInfoBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseInfoBeanClass.class);
+                    HouseBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseBeanClass.class);
                     list.addAll(houseInfoBeanClass.getList());
                     //鎬诲叡鏈夊灏戦〉
                     long totalPage = houseInfoBeanClass.totalPage;
@@ -233,22 +181,21 @@
                         }
                         return;
                     }
-                    //鏍囪鏈�鍚庝竴鏉�
-                    AtomicBoolean isLast = new AtomicBoolean(false);
+                    //璁板綍璇锋眰鏉℃暟
+                    AtomicInteger atomicInteger = new AtomicInteger(0);
                     //浠庣浜岄〉鑾峰彇鏁版嵁
                     for (int i = 2; i <= totalPage; i++) {
-                        if (totalPage == i) {
-                            isLast.set(true);
-                        }
                         json.addProperty("pageNo", i);//鏇存柊椤电爜
                         HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() {
                             @Override
                             public void onSuccess(HttpResponsePack httpResponsePack) {
+                                atomicInteger.set(atomicInteger.get() + 1);
                                 Gson gson = new Gson();
                                 String jsonStr = gson.toJson(httpResponsePack.getData());
-                                HouseInfoBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseInfoBeanClass.class);
+                                HouseBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseBeanClass.class);
                                 list.addAll(houseInfoBeanClass.getList());
-                                if (isLast.get()) {
+                                if (atomicInteger.get() == totalPage - 1) {
+                                    //鏈�鍚庝竴鏉¢��鍑�
                                     if (cloudCallBeak != null) {
                                         cloudCallBeak.onSuccess(list);
                                     }
@@ -257,7 +204,9 @@
 
                             @Override
                             public void onFailure(Exception exception) {
-                                if (isLast.get()) {
+                                atomicInteger.set(atomicInteger.get() + 1);
+                                if (atomicInteger.get() == totalPage - 1) {
+                                    //鏈�鍚庝竴鏉¢��鍑�
                                     if (cloudCallBeak != null) {
                                         cloudCallBeak.onSuccess(list);
                                     }
@@ -285,7 +234,7 @@
     }
 
     /**
-     * 鑾峰彇浣忓畢(鐢电珯)璇︽儏
+     * 鑾峰彇浣忓畢(鐢电珯)ID璇︽儏
      *
      * @param homeId        浣忓畢id
      * @param cloudCallBeak 鍥炶皟
@@ -533,7 +482,7 @@
     }
 
 
-    static class HouseInfoBeanClass {
+    static class HouseBeanClass {
 
         //鎬绘潯鏁�
         private long totalCount;
@@ -544,7 +493,7 @@
         //椤垫暟
         private long pageSize;
         //鐢电珯鍒楄〃
-        private List<HouseListBean> list;
+        private List<HouseIdBean> list;
 
         public long getTotalCount() {
             return totalCount;
@@ -578,11 +527,11 @@
             this.pageSize = pageSize;
         }
 
-        public List<HouseListBean> getList() {
+        public List<HouseIdBean> getList() {
             return list == null ? new ArrayList<>() : list;
         }
 
-        public void setList(List<HouseListBean> list) {
+        public void setList(List<HouseIdBean> list) {
             this.list = list;
         }
     }

--
Gitblit v1.8.0