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