From d723fee177238df0dbab80eb788876ebd154927d Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期四, 24 十月 2024 11:55:46 +0800 Subject: [PATCH] Update HDLLoginInterceptor.java --- HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/device/controller/HDLPMDeviceController.java | 733 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 733 insertions(+), 0 deletions(-) diff --git a/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/device/controller/HDLPMDeviceController.java b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/device/controller/HDLPMDeviceController.java new file mode 100644 index 0000000..fbcd40c --- /dev/null +++ b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/device/controller/HDLPMDeviceController.java @@ -0,0 +1,733 @@ +package com.hdl.linkpm.sdk.device.controller; + +import android.text.TextUtils; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.hdl.hdlhttp.HxHttp; +import com.hdl.linkpm.sdk.core.api.HDLCloudHomeApi; +import com.hdl.linkpm.sdk.core.callback.IDefaultCallBack; +import com.hdl.linkpm.sdk.core.callback.IResponseCallBack; +import com.hdl.linkpm.sdk.core.exception.HDLException; +import com.hdl.linkpm.sdk.core.response.HDLResponse; +import com.hdl.linkpm.sdk.device.bean.CategoryInfo; +import com.hdl.linkpm.sdk.device.bean.DeviceOidInfoBean; +import com.hdl.linkpm.sdk.device.bean.FunctionActionBean; +import com.hdl.linkpm.sdk.device.bean.FunctionInfoBaseBean; +import com.hdl.linkpm.sdk.device.bean.FunctionInfoListBean; +import com.hdl.linkpm.sdk.device.bean.GatewayCloudBean; +import com.hdl.linkpm.sdk.device.bean.ProductInfo; +import com.hdl.linkpm.sdk.home.bean.QuestionListInfo; +import com.hdl.linkpm.sdk.utils.HDLExceptionSubmitUtils; +import com.hdl.linkpm.sdk.utils.HDLGsonUtils; + +import java.util.List; + +import io.reactivex.rxjava3.disposables.Disposable; + +/** + * Created by jlchen on 12/3/21. + * 璁惧鐩稿叧鐨勭綉缁滆姹� + */ +public class HDLPMDeviceController { + /** + * instance + */ + private volatile static HDLPMDeviceController instance; + + /** + * getInstance + * + * @return HDLDeviceController + */ + public static synchronized HDLPMDeviceController getInstance() { + if (instance == null) { + synchronized (HDLPMDeviceController.class) { + if (instance == null) { + instance = new HDLPMDeviceController(); + } + } + } + return instance; + } + + /***************4.璁惧銆佸姛鑳藉鍒犳敼鏌ョ鐞�***************/ + /** + * 璁惧鍩烘湰淇℃伅鍒楄〃(oid)鍏ㄩ噺娣诲姞 + * + * @param homeId 浣忓畢id + * @param oidDeviceList 鏈�鏂扮殑璁惧Oid鍒楄〃 + * @param callBack + * @return + */ + public Disposable fullAddDeviceOidList(String homeId, List<DeviceOidInfoBean> oidDeviceList, IDefaultCallBack callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.add("devices", HDLGsonUtils.toJsonArray(oidDeviceList)); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_DEVICE_OID_LIST_FULL_ADD); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String response) { + if (callBack != null) { + callBack.onSuccess(); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 璁惧鍩烘湰淇℃伅鍒楄〃(oid)鑾峰彇 + * + * @param homeId 浣忓畢id + * @param callBack + * @return + */ + public Disposable getDeviceOidList(String homeId, IResponseCallBack<List<DeviceOidInfoBean>> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_DEVICE_OID_LIST_GET); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<List<DeviceOidInfoBean>>() { + @Override + public void onResponse(List<DeviceOidInfoBean> response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 璁惧鍩烘湰淇℃伅(oid)鍒犻櫎 + * 鍒犻櫎璁惧鎴栬�呬粠缃戝叧绛塷id + * + * @param homeId 浣忓畢id + * @param oid 璁惧鐨刼id + * @param callBack + * @return + */ + public Disposable removeDeviceOid(String homeId, String oid, IDefaultCallBack callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("oid", oid); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_DEVICE_OID_REMOVE); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String response) { + if (callBack != null) { + callBack.onSuccess(); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + + /** + * 璁惧锛堝姛鑳斤級鍏ㄩ噺鏇存柊 + * + * @param homeId 浣忓畢id + * @param gatewayId 缃戝叧Id + * @param functionList 鏈�鏂扮殑鍔熻兘鍒楄〃 + * @param callBack + * @return + */ + public Disposable fullAddFunctionList(String homeId, String gatewayId, List<FunctionInfoBaseBean> functionList, IDefaultCallBack callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("gatewayId", gatewayId); + json.add("devices", HDLGsonUtils.toJsonArray(functionList)); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_FUNCTION_LIST_FULL_ADD); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String response) { + if (callBack != null) { + callBack.onSuccess(); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 鑾峰彇浜у搧鍒嗙被鏍� + * + * @param callBack + * @return + */ + public Disposable getCategoryList(IResponseCallBack<List<CategoryInfo>> callBack) { + JsonObject json = new JsonObject(); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_CATEGORY_LIST_ALLTREE); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<List<CategoryInfo>>() { + @Override + public void onResponse(List<CategoryInfo> response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 鑾峰彇缃戝叧鍒楄〃 + * + * @param callBack + * @return + */ + public Disposable getGatewayList(String homeId, IResponseCallBack<List<GatewayCloudBean>> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_GATEWAY_LIST); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<List<GatewayCloudBean>>() { + @Override + public void onResponse(List<GatewayCloudBean> response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + + /** + * 鑾峰彇绫荤洰涓嬭澶囧垪琛� + * + * @param callBack + * @return + */ + public Disposable getCategoryListByName(String productName, IResponseCallBack<List<ProductInfo>> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("productName", productName); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_CATEGORY_DEVICE_LIST); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<List<ProductInfo>>() { + @Override + public void onResponse(List<ProductInfo> response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 鑾峰彇绫荤洰涓嬭澶囧垪琛� + * + * @param callBack + * @return + */ + public Disposable getCategoryListByCode(String categorySecondCode, IResponseCallBack<List<ProductInfo>> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("categorySecondCode", categorySecondCode); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_CATEGORY_DEVICE_LIST); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<List<ProductInfo>>() { + @Override + public void onResponse(List<ProductInfo> response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 璁惧锛堝姛鑳斤級鍒楄〃鑾峰彇 + * + * @param homeId 浣忓畢id + * @param gatewayId 缃戝叧Id + * @param callBack + * @return + */ + public Disposable getFunctionList(String homeId, String gatewayId, IResponseCallBack<FunctionInfoListBean> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("gatewayId", gatewayId); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_FUNCTION_LIST_GET); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<FunctionInfoListBean>() { + @Override + public void onResponse(FunctionInfoListBean response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 璁惧锛堝姛鑳斤級鍒犻櫎锛屾敮鎸佹壒閲� + * + * @param homeId 浣忓畢id + * @param gatewayId 缃戝叧Id + * @param devices 浜戠璁惧ID闆嗗悎 + * @param callBack + * @return + */ + public Disposable batchDeleteFunctionList(String homeId, String gatewayId, List<String> devices, IDefaultCallBack callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("gatewayId", gatewayId); + json.add("devices", HDLGsonUtils.toJsonArray(devices)); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_FUNCTION_BATCH_DELETE); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String response) { + if (callBack != null) { + callBack.onSuccess(); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 鎺у埗璁惧 + * + * @param homeId 浣忓畢id + * @param gatewayId 缃戝叧Id + * @param actions 鍔ㄤ綔 + * @param callBack + * @return + */ + public Disposable controlFunction(String homeId, String gatewayId, List<FunctionActionBean> actions, IDefaultCallBack callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("gatewayId", gatewayId); + json.add("actions", HDLGsonUtils.toJsonArray(actions)); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_FUNCTION_CONTROL); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String response) { + if (callBack != null) { + callBack.onSuccess(); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + + /** + * 鑾峰彇甯歌闂鍒楄〃 + * + * @param languageType 0:涓枃 1:鑻辨枃,鍙敤鍊�:CHINESE,ENGLISH + * @param pageNo 褰撳墠椤� + * @param pageSize 椤甸潰澶у皬 + * @param question 闂 + * @param callBack + * @return + */ + public Disposable getQuestionList(String languageType, String question, String pageNo, String pageSize, IResponseCallBack<QuestionListInfo> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("zoneType", languageType); + json.addProperty("question", question); + json.addProperty("pageNo", pageNo); + json.addProperty("pageSize", pageSize); + json.addProperty("softwareType", "DEBUGGING_TREASURE"); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_QUESTION_GET_LIST); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<QuestionListInfo>() { + @Override + public void onResponse(QuestionListInfo response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 缁戝畾姣背娉㈣澶� + * + * @param homeId 浣忓畢Id + * @param name 璁惧鍚嶇О + * @param apk 浜у搧spk + * @param oid 璁惧oid + * @param mac 璁惧mac + * @param sid 璁惧sid + * @param uidList 鎴块棿uid鍒楄〃 + * @param callBack 鍥炶皟 + * @return - + */ + public Disposable bindMillimeterDevice(String homeId, String name, String apk, String oid, String mac, String sid, List<String> uidList, IResponseCallBack<String> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("name", name); + json.addProperty("spk", apk); + json.addProperty("oid", oid); + json.addProperty("mac", mac); + json.addProperty("sid", sid); + if(uidList!=null) { + json.add("uids", HDLGsonUtils.toJsonArray(uidList)); + } + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_DEVICE_INDEPENDENT_REGISTER); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String str) { + if (callBack != null) { + callBack.onSuccess(str); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 瑙g粦姣背娉㈣澶� + * + * @param homeId 浣忓畢Id + * @param spk 浜у搧spk + * @param mac 璁惧mac + * @param callBack 鍥炶皟 + * @return - + */ + public Disposable unBindMillimeterDevice(String homeId, String spk, String mac, IResponseCallBack<String> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("spk", spk); + json.addProperty("mac", mac); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_DEVICE_INDEPENDENT_UNBIND); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String str) { + if (callBack != null) { + callBack.onSuccess(str); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 鑾峰彇link鍔熻兘鍒楄〃 + * + * @param homeId 浣忓畢Id + * @param spk spk(鎸囧畾鑾峰彇鍗曚釜鍔熻兘) + * @param callBack 鍥炶皟 + * @return - + */ + public Disposable getDeviceList(String homeId, String spk, IResponseCallBack<FunctionInfoListBean> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + if(!TextUtils.isEmpty(spk)) { + json.addProperty("spk", spk); + } + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_FUNCTION_LIST_GET); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<FunctionInfoListBean>() { + @Override + public void onResponse(FunctionInfoListBean functionInfoListBean) { + if (callBack != null) { + callBack.onSuccess(functionInfoListBean); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 鑾峰彇姣背娉�(鑾峰彇璁惧杩滅▼閫氳淇℃伅) + * + * @param homeId 浣忓畢Id + * @param spk spk + * @param mac 璁惧mac + * @param callBack 鍥炶皟 + * @return - + */ + public Disposable getDeviceRemoteInfo(String homeId, String spk,String mac, IResponseCallBack<String> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("spk", spk); + json.addProperty("mac", mac); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_DEVICE_REMOTEINFO_GET); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String str) { + if (callBack != null) { + callBack.onSuccess(str); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + + /** + * 璁惧锛堝姛鑳斤級淇敼澶囨敞 + * + * @param homeId 浣忓畢id + * @param deviceId 璁惧Id + * @param name 璁惧鍚嶇О + * @return callBack + */ + public Disposable rename(String homeId, long deviceId,String name, IResponseCallBack<String> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("deviceId", deviceId); + json.addProperty("name", name); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_DEVICE_RENAME); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String string) { + if (callBack != null) { + callBack.onSuccess(string); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + + /** + * 璁惧锛堝姛鑳斤級缁戝畾鎴块棿 + * + * @param homeId 浣忓畢id + * @param deviceIds 璁惧id鍒楄〃 + * @param roomIds 鎴块棿id鍒楄〃 + * @return callBack + */ + public Disposable bindRoom(String homeId, List<String> deviceIds,List<String> roomIds, IResponseCallBack<String> callBack) { + JsonObject json = new JsonObject(); + JsonArray deviceIdsArray=new JsonArray(); + JsonArray roomIdsArray=new JsonArray(); + for (int i = 0; i < deviceIds.size(); i++) { + deviceIdsArray.add(deviceIdsArray.get(i)); + } + for (int i = 0; i < roomIds.size(); i++) { + roomIdsArray.add(roomIdsArray.get(i)); + } + json.addProperty("homeId", homeId); + json.add("deviceIds", deviceIdsArray); + json.add("roomIds", roomIdsArray); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_DEVICE_BINDROOM); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String string) { + if (callBack != null) { + callBack.onSuccess(string); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + +} -- Gitblit v1.8.0