From a4e8dee87338beef6f45f053d8fa9c36dc74ed09 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期一, 06 五月 2024 19:53:17 +0800 Subject: [PATCH] 2024年05月06日19:53:11 --- app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java | 142 ++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 120 insertions(+), 22 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 a21d962..a7b54f7 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java @@ -16,6 +16,7 @@ import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.ui.bean.CloudInverterDeviceBean; +import com.hdl.photovoltaic.ui.bean.DeviceBean; import com.hdl.photovoltaic.ui.bean.HouseInfoBean; import com.hdl.photovoltaic.ui.bean.HouseIdBean; import com.hdl.photovoltaic.ui.bean.MessageBean; @@ -74,21 +75,68 @@ this.houseInfoList = houseInfoList; } + public void clearHouseList() { + if (houseInfoList == null) { + return; + } + if (houseInfoList.size() > 0) { + houseInfoList.clear(); + } + } + + /** * 鑾峰彇缂撳瓨浣忓畢ID鍒楄〃 * * @return 浣忓畢ID鍒楄〃 */ public List<HouseIdBean> getHouseIdList() { - return houseIdList; + return mHouseIdList; } - public void setHouseIdList(List<HouseIdBean> houseIdList) { - if (houseIdList == null) { - houseIdList = new ArrayList<>(); + public void setHouseIdList(List<HouseIdBean> list) { + if (list == null || list.size() == 0) { + return; } - this.houseIdList = houseIdList; + if (this.mHouseIdList.size() == 0) { + this.mHouseIdList.addAll(list); + return; + } + for (int i = 0; i < list.size(); i++) { + this.setSingleHouseId(list.get(i)); + } } + + /** + * 娣诲姞鐢电珯Id鍒板垪琛ㄩ噷闈� + * + * @param houseIdBean -鐢电珯Id瀵硅薄 + */ + public void setSingleHouseId(HouseIdBean houseIdBean) { + try { + if (houseIdBean == null) { + return; + } + boolean if_boolean = false; + for (int i = 0; i < mHouseIdList.size(); i++) { + if (mHouseIdList.get(i).getHomeId().equals(houseIdBean.getHomeId())) { + //瀛樺湪鏇挎崲 + mHouseIdList.remove(i); + mHouseIdList.add(i, houseIdBean); + if_boolean = true; + break; + } + } + if (!if_boolean) { + //娌℃湁娣诲姞 + this.mHouseIdList.add(houseIdBean); + } + } catch (Exception e) { + String mes = e.getMessage(); + HdlLogLogic.print("--->" + mes); + } + } + /** * 鍒犻櫎鐢电珯 @@ -99,9 +147,9 @@ if (TextUtils.isEmpty(houseId)) { return; } - for (int i = 0; i < houseIdList.size(); i++) { - if (houseIdList.get(i).getHomeId().equals(houseId)) { - houseIdList.remove(i); + for (int i = 0; i < mHouseIdList.size(); i++) { + if (mHouseIdList.get(i).getHomeId().equals(houseId)) { + mHouseIdList.remove(i); break; } } @@ -117,8 +165,8 @@ return; } int index = -1; - for (int i = 0; i < houseIdList.size(); i++) { - if (houseIdList.get(i).getHomeId().equals(houseId)) { + for (int i = 0; i < mHouseIdList.size(); i++) { + if (mHouseIdList.get(i).getHomeId().equals(houseId)) { index = i; break; } @@ -128,12 +176,12 @@ } //index==0琛ㄧず鍙湁涓�涓厓绱犳垨鑰呭湪棣栦綅,涓嶉渶瑕佺Щ鍔ㄤ綅缃� if (index > 0) { - Collections.swap(houseIdList, index - 1, index); + Collections.swap(mHouseIdList, index - 1, index); } } //浣忓畢ID鍒楄〃 - private List<HouseIdBean> houseIdList = new ArrayList<>(); + private List<HouseIdBean> mHouseIdList = new ArrayList<>(); //浣忓畢璇︽儏鍒楄〃 private List<HouseInfoBean> houseInfoList = new ArrayList<>(); @@ -149,12 +197,12 @@ @Override public void onSuccess(List<HouseIdBean> houseListBeanIDList) { if (houseListBeanIDList != null && houseListBeanIDList.size() > 0) { - houseIdList.clear(); - houseIdList.addAll(houseListBeanIDList); + mHouseIdList.clear(); + mHouseIdList.addAll(houseListBeanIDList); //璁板綍璇锋眰鏉℃暟 AtomicInteger atomicInteger = new AtomicInteger(0); - for (int i = 0; i < houseIdList.size(); i++) { - HouseIdBean houseIdBean = houseIdList.get(i); + for (int i = 0; i < mHouseIdList.size(); i++) { + HouseIdBean houseIdBean = mHouseIdList.get(i); //鑾峰彇浣忓畢璇︽儏鍒楄〃 getResidenceInfo(houseIdBean.getHomeId(), new CloudCallBeak<HouseInfoBean>() { @Override @@ -169,7 +217,7 @@ //娣诲姞鍒版湰鍦扮紦瀛� addHouseToLocalMemory(houseInfoBean); } - if (atomicInteger.get() == houseIdList.size()) { + if (atomicInteger.get() == mHouseIdList.size()) { //鏈�鍚庝竴鏉¢��鍑� if (cloudCallBeak != null) { cloudCallBeak.onSuccess(true); @@ -181,7 +229,7 @@ @Override public void onFailure(HDLException e) { atomicInteger.set(atomicInteger.get() + 1); - if (atomicInteger.get() == houseIdList.size()) { + if (atomicInteger.get() == mHouseIdList.size()) { //鏈�鍚庝竴鏉¢��鍑� if (cloudCallBeak != null) { cloudCallBeak.onFailure(e); @@ -279,6 +327,56 @@ } }); } + + } + + @Override + public void onFailure(HDLException exception) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(exception); + } + } + }); + + + } + + /** + * 鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃 + * + * @param key 鍙戠數鍔熺巼鎺掑簭(powerSort); + * 浠婃棩鍙戠數閲忔帓搴�(todayElectricitySort); + * 鍒涘缓鏃堕棿鎺掑簭(createTimeSort); + * @param keyValue (descending:闄嶅簭 + * ascending:鍗囧簭), + * @param pageNo 椤电爜 + * @param pageSize 椤垫暟锛堜竴椤靛灏戞暟鎹級 + */ + public void getResidenceIdList(String key, String keyValue, long pageNo, long pageSize, CloudCallBeak<HouseBeanClass> cloudCallBeak) { + + 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("zoneType", "password");//鍖哄煙 + json.addProperty("pageNo", pageNo);//椤电爜 + json.addProperty("pageSize", pageSize);//椤垫暟 + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (TextUtils.isEmpty(jsonStr)) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(new HouseBeanClass()); + } + return; + } + Gson gson = new Gson(); + HouseBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseBeanClass.class); + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(houseInfoBeanClass); + } + } @@ -655,9 +753,9 @@ * @return 鍒楄〃绱㈠紩 */ public HouseIdBean getHouseId(String homeId) { - for (int i = 0; i < houseIdList.size(); i++) { - if (houseIdList.get(i).getHomeId().equals(homeId)) { - return houseIdList.get(i); + for (int i = 0; i < mHouseIdList.size(); i++) { + if (mHouseIdList.get(i).getHomeId().equals(homeId)) { + return mHouseIdList.get(i); } } return null; @@ -760,7 +858,7 @@ } - static class HouseBeanClass { + public static class HouseBeanClass { //鎬绘潯鏁� private long totalCount; -- Gitblit v1.8.0