From d8a4151b56f04796dff5bc4164246732036c05f9 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 06 十一月 2024 18:14:27 +0800 Subject: [PATCH] 增加uni请求功能http接口 --- app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 160 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 136 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java index 5a804ba..67b7d2e 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -10,6 +10,7 @@ import android.location.Location; import android.location.LocationManager; import android.os.IBinder; +import android.os.SystemClock; import android.provider.Settings; import android.text.TextUtils; @@ -19,6 +20,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; +import com.hdl.link.error.HDLLinkCode; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.linkpm.sdk.device.bean.DeviceOidInfoBean; import com.hdl.linkpm.sdk.ota.bean.CloudDeviceFirmwaresBean; @@ -29,10 +31,13 @@ import com.hdl.linkpm.sdk.utils.HDLMD5Utils; import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.R; +import com.hdl.photovoltaic.bean.InverterBean; +import com.hdl.photovoltaic.bean.LocalResponse; import com.hdl.photovoltaic.bean.ModBusBean; import com.hdl.photovoltaic.bean.PageNumberObject; import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.config.UserConfigManage; +import com.hdl.photovoltaic.internet.HttpClient; import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer; import com.hdl.photovoltaic.internet.TcpClient; import com.hdl.photovoltaic.internet.api.TopicApi; @@ -44,6 +49,7 @@ import com.hdl.photovoltaic.ui.bean.DeviceTimeBean; import com.hdl.photovoltaic.ui.bean.Geolocation; import com.hdl.photovoltaic.ui.bean.HouseIdBean; +import com.hdl.photovoltaic.ui.bean.HouseInfoBean; import com.hdl.photovoltaic.ui.bean.LinkBean; import com.hdl.photovoltaic.ui.bean.MemberBean; import com.hdl.photovoltaic.ui.bean.NotRunBean; @@ -60,7 +66,6 @@ import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; import com.hdl.photovoltaic.utils.NetworkUtils; import com.hdl.photovoltaic.utils.WifiUtils; -import com.hdl.sdk.link.common.exception.HDLLinkCode; import com.hdl.sdk.link.common.exception.HDLLinkException; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; import com.hdl.sdk.link.core.bean.gateway.GatewayBean; @@ -180,10 +185,7 @@ case HDLUniMP.UNI_EVENT_REPLY_HOME_ADD: { String url = getKeyValue("url", getKeyValue("data", data)); //EventBus浜嬩欢鍒嗗彂 - HdlCommonLogic.getInstance().postEventBusSticky( - HDLUniMP.UNI_EVENT_REPLY_HOME_ADD, - HDLUniMP.UNI_EVENT_REPLY_HOME_ADD, - url); + HdlCommonLogic.getInstance().postEventBusSticky(HDLUniMP.UNI_EVENT_REPLY_HOME_ADD, HDLUniMP.UNI_EVENT_REPLY_HOME_ADD, url); if (callback != null) { uniSuccessCallback(type, null, callback); @@ -200,10 +202,7 @@ //鍒涘缓鐢电珯 case HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION: { //EventBus浜嬩欢鍒嗗彂 - HdlCommonLogic.getInstance().postEventBus( - HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL, - HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION, - getKeyValue("data", data)); + HdlCommonLogic.getInstance().postEventBus(HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL, HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION, getKeyValue("data", data)); if (callback != null) { uniSuccessCallback(type, null, callback); } @@ -238,10 +237,7 @@ //浣忓畢銆愮數绔欍�戠紪杈� case HDLUniMP.UNI_EVENT_REPLY_HOME_EDIT: { //EventBus浜嬩欢鍒嗗彂 - HdlCommonLogic.getInstance().postEventBus( - HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL, - HDLUniMP.UNI_EVENT_REPLY_HOME_EDIT, - getKeyValue("data", data)); + HdlCommonLogic.getInstance().postEventBus(HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL, HDLUniMP.UNI_EVENT_REPLY_HOME_EDIT, getKeyValue("data", data)); if (callback != null) { uniSuccessCallback(type, null, callback); } @@ -365,9 +361,14 @@ this.uniSetDeviceStartup(mode_type, data, callback); } break; - //鑾峰彇璁惧璇︽儏 + //鑾峰彇璁惧璇︽儏锛堜簯绔澶囷級 case HDLUniMP.UNI_EVENT_REPLY_DEVICE_OPEN_DEVICE_info: { this.uniGetDeviceInfo(mode_type, data, callback); + } + break; + //鑾峰彇閫嗗彉鍣ㄨ鎯咃紙鐗╃悊璁惧锛� + case HDLUniMP.UNI_EVENT_REPLY_DEVICE_OPEN_gateway_info: { + this.uniGetGatewayInfo(mode_type, data, callback); } break; } @@ -677,25 +678,89 @@ String localSecret = HDLLinkConfig.getInstance().getLocalSecret(); JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("local_encrypt", localSecret); + HdlLogLogic.print("uni---log---鏈湴瀵嗛挜鑾峰彇---" + localSecret, true); if (callback != null) { uniSuccessCallback(type, jsonObject, callback); } - HdlLogLogic.print("uni---log---" + localSecret, true); } break; //鏈湴瀵嗛挜璁剧疆 case HDLUniMP.UNI_EVENT_REPLY_OTHER_LOCAL_ENCRYPT_SET: { String local_encrypt = getKeyValue("local_encrypt", getKeyValue("data", data)); - //閲嶆柊璁剧疆鏈湴閫氳绉橀挜 - UserConfigManage.getInstance().setLocalSecret(local_encrypt); - UserConfigManage.getInstance().Save(); - //閰嶇疆鏈湴閫氫俊鐨勪俊鎭� - HDLLinkConfig.getInstance().setLocalSecret(local_encrypt); - HdlLogLogic.print("uni---log---" + local_encrypt, true); - + if (!TextUtils.isEmpty(local_encrypt)) { + //閲嶆柊璁剧疆鏈湴閫氳绉橀挜 + UserConfigManage.getInstance().setLocalSecret(local_encrypt); + UserConfigManage.getInstance().Save(); + //閰嶇疆鏈湴閫氫俊鐨勪俊鎭� + HDLLinkConfig.getInstance().setLocalSecret(local_encrypt); + HdlLogLogic.print("uni---log---鏈湴瀵嗛挜璁剧疆---" + local_encrypt, true); + } + if (callback != null) { + uniSuccessCallback(type, true, callback); + } } break; + //link杩涜瀵嗙爜楠岃瘉 + case HDLUniMP.UNI_EVENT_REPLY_OTHER_PASSWORD_VERIFIY: { + uniCheckPasswordVerification(mode_type, data, callback); + } + break; + //鏈湴json璧勬簮鏂囦欢鑾峰彇 + case HDLUniMP.UNI_EVENT_REPLY_OTHER_GET_LOCAL_JSON: { + String url = getKeyValue("url", getKeyValue("data", data)); + String deviceModel = getKeyValue("deviceModel", getKeyValue("data", data)); + String language = getKeyValue("language", getKeyValue("data", data)); + String json = HdlESLocalJsonLogic.getInstance().readHdlESLocalJson(url, deviceModel); + if (TextUtils.isEmpty(json)) { + //鏈湴娌℃湁缂撳瓨 + HdlESLocalJsonLogic.getInstance().getHdlESLocalJson(url, deviceModel, new CloudCallBeak<String>() { + @Override + public void onSuccess(String obj) { + if (callback != null) { + uniSuccessCallback(type, obj, callback); + } + } + + @Override + public void onFailure(HDLException e) { + if (callback != null) { + uniExceptionCallback(type, e, callback); + } + } + }); + } else { + //鏈湴缂撳瓨鏁版嵁 + if (callback != null) { + uniSuccessCallback(type, json, callback); + } + } + } + break; + } + } else if (HDLUniMP.UNI_EVENT_REPLY_COMMON_MODEL.equals(topic)) { + //缃戠粶璇锋眰妯″潡 + if (type.equals(HDLUniMP.UNI_EVENT_REPLY_UNI_SEND_TO_CLOUD)) { + String url = getKeyValue("url", getKeyValue("data", data)); + JsonObject jObject = new JsonObject(); + String body = getKeyValue("body", getKeyValue("data", data)); + if (!TextUtils.isEmpty(body)) { + try { + jObject = new Gson().fromJson(body, JsonObject.class); + } catch (Exception ignored) { + } + } + HttpClient.getInstance().requestHttp(url, jObject.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + uniSuccessCallback(mode_type, jsonStr, callback); + } + + @Override + public void onFailure(HDLException e) { + uniExceptionCallback(mode_type, e, callback); + } + }); } } @@ -744,6 +809,31 @@ //region ******uni鎺ュ彛鏂规硶****** /** + * link杩涜瀵嗙爜楠岃瘉 + */ + private void uniCheckPasswordVerification(String type, Object data, DCUniMPJSCallback callback) { + String password = getKeyValue("password", getKeyValue("data", data)); + String mac = getKeyValue("mac", getKeyValue("data", data)); + HdlDeviceLogic.getInstance().getPasswordVerification(mac, password, new LinkCallBack<LocalResponse>() { + @Override + public void onSuccess(LocalResponse obj) { + + if (callback != null) { + uniCallbackData(type, obj.getObjects(), obj.getCode(), obj.getMsg(), callback); + } + } + + @Override + public void onError(HDLLinkException e) { + + if (callback != null) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } + } + }); + } + + /** * 鐢电珯鍒犻櫎 */ private void uniGetDelResidence(String type, Object data, DCUniMPJSCallback callback) { @@ -778,7 +868,7 @@ HdlUniLogic.getInstance().openUniMP(path, null); } else { HouseIdBean houseIdBean = HouseIdList.get(0);//榛樿鎷跨涓�涓� - HdlResidenceLogic.getInstance().switchHouse(houseIdBean); + HdlResidenceLogic.getInstance().switchHouse(houseIdBean, true); JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("homeId", houseIdBean.getHomeId()); jsonObject.addProperty("homeName", houseIdBean.getHomeName()); @@ -2531,7 +2621,7 @@ } /** - * 鑾峰彇璁惧璇︽儏 + * 鑾峰彇璁惧璇︽儏锛堜簯绔級 * * @param type 绫诲瀷 * @param data uni璇锋眰鏁版嵁 @@ -2554,6 +2644,28 @@ }); } + /** + * 鑾峰彇閫嗗彉鍣ㄨ鎯� + * + * @param type 绫诲瀷 + * @param data uni璇锋眰鏁版嵁 + * @param callback uni鍥炶皟 + */ + public void uniGetGatewayInfo(String type, Object data, DCUniMPJSCallback callback) { + String mac = getKeyValue("mac", getKeyValue("data", data)); + HdlDeviceLogic.getInstance().getGatewayInfo(mac, new LinkCallBack<InverterBean>() { + @Override + public void onSuccess(InverterBean obj) { + uniSuccessCallback(type, obj, callback); + } + + @Override + public void onError(HDLLinkException e) { + uniCallbackData(type, null, e.getCode(), e.getMsg(), callback); + } + }); + } + /** * 鍙戦�乵odbus鍗忚鏁版嵁 -- Gitblit v1.8.0