From 3ec7de773bff5582411c6f1f659d35cf8fb1734a Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期二, 16 七月 2024 15:13:51 +0800 Subject: [PATCH] Merge branch 'feature/v1.4.1' --- app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java | 470 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 434 insertions(+), 36 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 4cf0947..8884190 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java @@ -2,30 +2,26 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.os.Build; import android.text.TextUtils; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.hdl.linkpm.sdk.core.exception.HDLException; -import com.hdl.photovoltaic.bean.HttpResponsePack; +import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.internet.HttpClient; import com.hdl.photovoltaic.internet.api.HttpApi; -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.ContactBean; import com.hdl.photovoltaic.ui.bean.HouseInfoBean; import com.hdl.photovoltaic.ui.bean.HouseIdBean; -import com.hdl.photovoltaic.ui.bean.MessageBean; -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.photovoltaic.ui.bean.StatusOverviewBean; import com.hdl.sdk.link.core.config.HDLLinkConfig; import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient; -import com.hdl.sdk.link.gateway.HDLLinkLocalGateway; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; @@ -71,24 +67,113 @@ this.houseInfoList = houseInfoList; } + public void clearHouseList() { + if (mHouseIdList != null && mHouseIdList.size() > 0) { + mHouseIdList.clear(); + } + if (houseInfoList != null && 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); + } + } + + + /** + * 鍒犻櫎鐢电珯 + * + * @param houseId 鐢电珯id + */ + public void delHouseId(String houseId) { + if (TextUtils.isEmpty(houseId)) { + return; + } + for (int i = 0; i < mHouseIdList.size(); i++) { + if (mHouseIdList.get(i).getHomeId().equals(houseId)) { + mHouseIdList.remove(i); + break; + } + } + } + + /** + * 绉诲姩鐢电珯浣嶇疆 + * + * @param houseId 鐢电珯id + */ + public void moveHouseId(String houseId) { + if (TextUtils.isEmpty(houseId)) { + return; + } + int index = -1; + for (int i = 0; i < mHouseIdList.size(); i++) { + if (mHouseIdList.get(i).getHomeId().equals(houseId)) { + index = i; + break; + } + } + if (index == -1) { + return; + } + //index==0琛ㄧず鍙湁涓�涓厓绱犳垨鑰呭湪棣栦綅,涓嶉渶瑕佺Щ鍔ㄤ綅缃� + if (index > 0) { + 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<>(); @@ -104,12 +189,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 @@ -124,7 +209,7 @@ //娣诲姞鍒版湰鍦扮紦瀛� addHouseToLocalMemory(houseInfoBean); } - if (atomicInteger.get() == houseIdList.size()) { + if (atomicInteger.get() == mHouseIdList.size()) { //鏈�鍚庝竴鏉¢��鍑� if (cloudCallBeak != null) { cloudCallBeak.onSuccess(true); @@ -136,7 +221,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); @@ -249,6 +334,94 @@ } /** + * 鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃 + * + * @param key 鍙戠數鍔熺巼鎺掑簭(powerSort); + * 浠婃棩鍙戠數閲忔帓搴�(todayElectricitySort); + * 鍒涘缓鏃堕棿鎺掑簭(createTimeSort); + * @param keyValue (descending:闄嶅簭 + * ascending:鍗囧簭), + * @param installedCapacityMin 鏈�灏忕粍涓插閲�(瑁呮満瀹归噺) + * @param installedCapacityMax 鏈�澶х粍涓插閲�(瑁呮満瀹归噺) + * @param gridType 骞剁綉鐘舵�� (鍏ㄩ儴 锛�"";FULL_GRID 锛� 骞剁綉;OFFLINE 锛氱缃�) + * @param powerStationStatus 鐢电珯鐘舵�� (鍏ㄩ儴 锛�"";1 锛� 姝e父;2 锛� 绂荤嚎; 3 锛� 寰呮帴鍏�;4 锛� 鏁呴殰) + * @param pageNo 椤电爜 + * @param pageSize 椤垫暟锛堜竴椤靛灏戞暟鎹級 + */ + public void getResidenceIdList( + String key, + String keyValue, + String installedCapacityMin, + String installedCapacityMax, + String gridType, + String powerStationStatus, + 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:鍗囧簭) + } + if (!TextUtils.isEmpty(installedCapacityMin)) { + try { + int value = Integer.parseInt(installedCapacityMin);//鍙兘鏈夊紓甯�,鐢ㄦ埛杈撳叆鍊艰秴鏃秈nt鏈�澶ц嚧瀵艰嚧鐨� + json.addProperty("installedCapacityMin", value); + } catch (Exception ignored) { + } + } + if (!TextUtils.isEmpty(installedCapacityMax)) { + try { + int value = Integer.parseInt(installedCapacityMax);//鍙兘鏈夊紓甯�,鐢ㄦ埛杈撳叆鍊艰秴鏃秈nt鏈�澶ц嚧瀵艰嚧鐨� + json.addProperty("installedCapacityMax", value); + } catch (Exception ignored) { + } + } + if (!TextUtils.isEmpty(gridType)) { + try { + json.addProperty("gridType", gridType); + } catch (Exception ignored) { + } + } + if (!TextUtils.isEmpty(powerStationStatus)) { + try { + int value = Integer.parseInt(powerStationStatus); + json.addProperty("powerStationStatus", value); + } catch (Exception ignored) { + } + } +// 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); + } + + + } + + @Override + public void onFailure(HDLException exception) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(exception); + } + } + }); + + + } + + /** * 鑾峰彇浣忓畢(鐢电珯)ID璇︽儏 * * @param homeId 浣忓畢id @@ -336,6 +509,39 @@ } /** + * 浣忓畢(鐢电珯)绉诲姩浣嶇疆 + * + * @param homeId 鐢电珯id + * @param frontHomeId 鍓嶉潰鐨勭數绔檌d锛屽鏋滀笉浼犺〃绀烘帓鍒扮涓�浣� + * @param cloudCallBeak - + */ + public void moveResidence(String homeId, String frontHomeId, CloudCallBeak<Boolean> cloudCallBeak) { + String requestUrl = HttpApi.POST_PowerStation_UserSort; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + if (!TextUtils.isEmpty(frontHomeId)) { + json.addProperty("frontHomeId", frontHomeId); + } +// json.addProperty("zoneType", "zoneType"); + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String str) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(true); + } + + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + } + + /** * 鍒犻櫎浣忓畢(鐢电珯) * * @param homeId - @@ -363,6 +569,37 @@ } }); + } + + /** + * 鐢电珯鐘舵�佹瑙�(瀹夎鍟�) + */ + public void getStatusOverview(CloudCallBeak<StatusOverviewBean> cloudCallBeak) { + String requestUrl = HttpApi.POST_statusOverview; + JsonObject json = new JsonObject(); +// json.addProperty("zoneType", zoneType);//鍖哄煙 + 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 StatusOverviewBean()); + } + } + Gson gson = new Gson(); + StatusOverviewBean statusOverviewBean = gson.fromJson(jsonStr, StatusOverviewBean.class); + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(statusOverviewBean); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); } /** @@ -452,14 +689,12 @@ /** * 鐢ㄦ埛鑷畾涔夐厤缃俯搴﹀崟浣� * - * @param homeId 浣忓畢id * @param tempType 娓╁害鍗曚綅绫诲瀷 (C 锛氭憚姘忓害锛� F 锛氬崕姘忓害) * @param cloudCallBeak - */ - public void setResidenceTemperatureUnit(String homeId, String tempType, CloudCallBeak<Boolean> cloudCallBeak) { + public void setResidenceTemperatureUnit(String tempType, CloudCallBeak<Boolean> cloudCallBeak) { String requestUrl = HttpApi.POST_C_F_CustomConfig; JsonObject json = new JsonObject(); - json.addProperty("homeId", homeId); json.addProperty("tempType", tempType); HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { @Override @@ -480,18 +715,51 @@ } + + /** + * 鑱旂郴鎴戜滑 + * + * @param cloudCallBeak - + */ + public void getResidenceUtilContact(CloudCallBeak<ContactBean> cloudCallBeak) { + String requestUrl = HttpApi.B_POST_GET_UTIL_CONTACT; + JsonObject json = new JsonObject(); + 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 ContactBean()); + return; + } + } + ContactBean contactBean = new Gson().fromJson(jsonStr, ContactBean.class); + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(contactBean); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + + } + /** * 鑾峰彇鐢ㄦ埛鑷畾涔夐厤缃俯搴﹀崟浣嶈鎯� * - * @param homeId 浣忓畢id * @param cloudCallBeak - */ - public void getResidenceTemperatureUnit(String homeId, CloudCallBeak<String> cloudCallBeak) { + public void getResidenceTemperatureUnit(CloudCallBeak<String> cloudCallBeak) { String requestUrl = HttpApi.POST_C_F_CustomConfigInfo; JsonObject json = new JsonObject(); - json.addProperty("homeId", homeId); +// json.addProperty("homeId", homeId); - List<MessageBean> list = new ArrayList<>(); HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { @Override public void onSuccess(String jsonStr) { @@ -580,9 +848,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; @@ -594,9 +862,9 @@ * @param houseIdBean 浣忓畢Id瀵硅薄 */ public void switchHouse(HouseIdBean houseIdBean) { - String oidHomeId = UserConfigManage.getInstance().getHomeId(); - if (houseIdBean.getHomeId().equals(oidHomeId)) { - HdlLogLogic.print("鐐瑰嚮鍚屼竴涓綇瀹�"); + String homeId = UserConfigManage.getInstance().getHomeId(); + if (houseIdBean.getHomeId().equals(homeId)) { + HdlLogLogic.print("鐐瑰嚮鍚屼竴涓綇瀹�--->" + homeId); return; } //璁㈤槄瑕佸叏閮ㄥ彇娑� @@ -612,13 +880,14 @@ UserConfigManage.getInstance().setHomeName(houseIdBean.getHomeName()); //閲嶆柊璁剧疆鏈湴閫氳绉橀挜 UserConfigManage.getInstance().setLocalSecret(houseIdBean.getLocalSecret()); + UserConfigManage.getInstance().Save(); //閰嶇疆鏈湴閫氫俊鐨勪俊鎭� HDLLinkConfig.getInstance().setHomeId(UserConfigManage.getInstance().getHomeId()); HDLLinkConfig.getInstance().setLocalSecret(UserConfigManage.getInstance().getLocalSecret()); //閲嶆柊鍒涘缓浣忓畢鏂囦欢澶� HdlFileLogic.getInstance().createDirectory(); //杩涘幓浣忓畢璇︽儏鎼滅储涓�涓嬮�嗗彉鍣ㄥ垪琛�,鐩殑鏄缓绔嬮�氳閫氶亾; - HdlDeviceLogic.getInstance().searchCurrentHomeGateway(null); + HdlDeviceLogic.getInstance().searchCurrentHomeGateway(houseIdBean.getHomeId(),null); } @@ -649,7 +918,136 @@ }); } - static class HouseBeanClass { + /** + * 鐢电珯鎺堟潈瀹夎鍟嗭紙C绔級 + * 鎻忚堪锛氫氦浠樺悗鐨勪綇瀹咃紝C绔敤鎴峰彲浠ュ紑鍚巿鏉冨悗瀹夎鍟嗗彲浠ョ户缁皟璇曠數绔� + * + * @param homeId 鐢电珯id + * @param debugPerm 鎺堟潈鐘舵�侊紙true鍙互缁х画璋冭瘯锛� + * @param cloudCallBeak - + */ + public void homeUpdateDebugPerm(String homeId, boolean debugPerm, CloudCallBeak<Boolean> cloudCallBeak) { + String requestUrl = HttpApi.C_POST_HOME_UPDATEDEBUGPERM; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("debugPerm", debugPerm); +// json.addProperty("zoneType", memberBean.getId());//鍖哄煙 + + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(true); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + } + /** + * 鑾峰彇鐢电珯浜や粯浜岀淮鐮侊紙B绔級 + * 鎻忚堪锛氬畨瑁呭晢鐢电珯鐨勪氦浠樹簩缁寸爜 + * + * @param homeId 鐢电珯id + * @param cloudCallBeak - + */ + public void getDeliveryUrlQrcode(String homeId, CloudCallBeak<String> cloudCallBeak) { + String requestUrl = HttpApi.POST_getDeliveryUrlQrcode; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); +// json.addProperty("zoneType", memberBean.getId());//鍖哄煙 + + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(jsonStr); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + } + + /** + * 鐢电珯鎵嬪姩浜や粯(B绔�) + * 鎻忚堪锛氬畨瑁呭晢鎵嬪姩浜や粯鐢电珯缁欐寚瀹氱殑C绔处鍙� + * + * @param homeId 鐢电珯id + * @param account C绔处鍙� + * @param cloudCallBeak - + */ + public void getDeliverToAccount(String homeId, String account, CloudCallBeak<Boolean> cloudCallBeak) { + String requestUrl = HttpApi.POST_deliverToAccount; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("account", account);//C绔处鍙� +// json.addProperty("zoneType", memberBean.getId());//鍖哄煙 + + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(true); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + } + /** + * 娣诲姞鎺ㄩ�乀oken + * + * @param cloudCallBeak - + */ + public void pushAdd(CloudCallBeak<String> cloudCallBeak) { + String requestUrl = HttpApi.POST_push_add; + JsonObject json = new JsonObject(); + json.addProperty("deviceName", Build.MODEL);//璁惧鍚嶇О + json.addProperty("deviceType", "Android");//璁惧绫诲瀷 + json.addProperty("produce", AppConfigManage.isIsOnlineServer());//琛ㄧず鏄惁鏄寮忔湇鍔″櫒 + json.addProperty("pushToken", UserConfigManage.getInstance().getRegistrationID());//App鐨勬帹閫乀oken锛屽湪鏋佸厜涓篟egId + json.addProperty("software", "PHOTOVOLTAIC");//杞欢鏉ユ簮 + + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(jsonStr); + } + + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + + } + + public static class HouseBeanClass { //鎬绘潯鏁� private long totalCount; -- Gitblit v1.8.0