From 73a49ddd0516e5c9a4b697c593d62c74e420403b Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 24 十月 2024 12:27:31 +0800 Subject: [PATCH] 2024年10月24日12:27:28 --- HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/home/controller/HDLPMHomeController.java | 493 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 493 insertions(+), 0 deletions(-) diff --git a/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/home/controller/HDLPMHomeController.java b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/home/controller/HDLPMHomeController.java new file mode 100644 index 0000000..153959e --- /dev/null +++ b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/home/controller/HDLPMHomeController.java @@ -0,0 +1,493 @@ +package com.hdl.linkpm.sdk.home.controller; + +import android.text.TextUtils; + +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.home.bean.GatewayInfoBean; +import com.hdl.linkpm.sdk.home.bean.GatewayBindBean; +import com.hdl.linkpm.sdk.home.bean.HomeInfoBean; +import com.hdl.linkpm.sdk.home.bean.logic.LogicInfoBean; +import com.hdl.linkpm.sdk.home.bean.RoomInfoBean; +import com.hdl.linkpm.sdk.home.bean.RoomInfoListBean; +import com.hdl.linkpm.sdk.home.bean.logic.SecurityInfoBean; +import com.hdl.linkpm.sdk.home.callback.IAddRoomListCallBack; +import com.hdl.linkpm.sdk.home.callback.IRoomListCallBack; +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 HDLPMHomeController { + /** + * instance + */ + private volatile static HDLPMHomeController instance; + + /** + * getInstance + * + * @return HDLHomeController + */ + public static synchronized HDLPMHomeController getInstance() { + if (instance == null) { + synchronized (HDLPMHomeController.class) { + if (instance == null) { + instance = new HDLPMHomeController(); + } + } + } + return instance; + } + + /** + * house琛ㄧ殑鏁版嵁娌℃湁鍚屾鍒癶ome琛ㄣ�佹暟鎹瓨鍦ㄤ袱寮犺〃閲岄潰锛岄渶瑕佸鎴风璋冩帴鍙e悓姝� + * + * @param homeInfoBean 浣忓畢Info + * @param callBack + * @return + */ + public Disposable synchHouseToHome(HomeInfoBean homeInfoBean, IDefaultCallBack callBack) { + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_PROGRAM_HOME_ADD); + return HxHttp.builder() + .url(requestUrl) + .raw(HDLGsonUtils.toJson(homeInfoBean)) + .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,homeInfoBean,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + + } + + /***************2.鎴块棿绠$悊***************/ + /** + * 鑾峰彇浣忓畢涓嬫埧闂磋〃 + * + * @param homeId 浣忓畢ID + * @param roomType 鎴垮眿绫诲瀷 FLOOR ROOM銆佷负绌虹殑鏃跺�欐煡鍏ㄩ儴 + * @param pageNo 鍝竴椤� + * @param pageSize 椤甸潰澶у皬 + * @param callBack + * @return + */ + public Disposable getRoomList(String homeId, String roomType, int pageNo, int pageSize, IRoomListCallBack callBack) { + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_ROOM_GET_LIST); + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + if (!TextUtils.isEmpty(roomType)) { + json.addProperty("roomType", roomType); + } + json.addProperty("pageNo", pageNo); + json.addProperty("pageSize", pageSize); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<RoomInfoListBean>() { + @Override + public void onResponse(RoomInfoListBean 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 roomList 鏈�鏂扮殑鎴块棿鍒楄〃 + * @param callBack + * @return + */ + public Disposable fullAddOrEditRoomList(String homeId, List<RoomInfoBean> roomList, IAddRoomListCallBack callBack) { + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_ROOM_FULL_ADD_OR_EDIT); + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.add("rooms", HDLGsonUtils.toJsonArray(roomList)); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<Boolean>() { + @Override + public void onResponse(Boolean response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + + /***************3.缃戝叧绠$悊***************/ + /** + * 缁戝畾缃戝叧鍒颁綇瀹� + * + * @param bean 缃戝叧淇℃伅 + * @param callBack + * @return + */ + public Disposable bindGateway(GatewayBindBean bean, IResponseCallBack<GatewayInfoBean> callBack) { + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_GATEWAY_BIND); + return HxHttp.builder() + .url(requestUrl) + .raw(HDLGsonUtils.toJson(bean)) + .build() + .post() + .subscribeWith(new HDLResponse<GatewayInfoBean>() { + @Override + public void onResponse(GatewayInfoBean response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,bean,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 寮哄埗缁戝畾缃戝叧 + * 濡傛灉缁戝畾缃戝叧杩斿洖10510 宸茬粡琚粦瀹氫簡,鍒欒皟杩欎釜鎺ュ彛寮哄埗鎹㈢粦 + * + * @param homeId 浣忓畢ID + * @param mac 缃戝叧MAC + * @param callBack + * @return + */ + public Disposable forceBindGateway(String homeId, String mac, IResponseCallBack<GatewayInfoBean> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("mac", mac); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_GATEWAY_FORCE_BIND); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<GatewayInfoBean>() { + @Override + public void onResponse(GatewayInfoBean response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 瑙g粦缃戝叧 + * + * @param homeId 浣忓畢id + * @param gatewayId 缃戝叧gatewayId + * @param callBack + * @return + */ + public Disposable unbindGateway(String homeId, String gatewayId, IResponseCallBack<Boolean> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("gatewayId", gatewayId); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_GATEWAY_UNBIND); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<Boolean>() { + @Override + public void onResponse(Boolean response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + /** + * 瑙g粦缃戝叧 + * + * @param mac 缃戝叧mac鍦板潃 + * @param callBack + * @return + */ + public Disposable getGatewayHomeInfo(String mac, IResponseCallBack<GatewayInfoBean> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("mac", mac); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_GATEWAY_HOMEINFO); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<GatewayInfoBean>() { + @Override + public void onResponse(GatewayInfoBean response) { + if (callBack != null) { + callBack.onSuccess(response); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + /** + * 瑙g粦浠庣綉鍏� + * + * @param homeId 浣忓畢id + * @param oid 璁惧oid + * @param callBack + * @return + */ + public Disposable unbindFalseGateway(String homeId, String oid,IResponseCallBack<Boolean> 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<Boolean>() { + @Override + public void onResponse(Boolean 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 callBack + * @return + */ + public Disposable getGatewayList(String homeId, IResponseCallBack<List<GatewayInfoBean>> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_GATEWAY_GET_LIST); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<List<GatewayInfoBean>>() { + @Override + public void onResponse(List<GatewayInfoBean> 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 鏃х綉鍏砳d + * @param newMac 鏂扮綉鍏砿ac + * @param callBack + * @return + */ + public Disposable replaceGateway(String homeId, String gatewayId, String newMac, IDefaultCallBack callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("gatewayId", gatewayId); + json.addProperty("newMac", newMac); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_GATEWAY_REPLACE); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<List<String>>() { + @Override + public void onResponse(List<String> response) { + if (callBack != null) { + callBack.onSuccess(); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl,json,e); + if (callBack != null) { + callBack.onFailure(e); + } + } + }); + } + + + /***************6.鑷姩鍖栧鍒犳敼鏌ョ鐞�***************/ + /** + * 鍏ㄩ噺鏇存柊鍚屾鑷姩鍖栥�佸瓨鍦ㄤ笉鍙�,涓嶅瓨鍦ㄦ柊澧� + * + * @param homeId 浣忓畢id + * @param logics 鑷姩鍖栧垪琛� + * @param callBack + * @return + */ + public Disposable fullAddLogicList(String homeId, List<LogicInfoBean> logics, IDefaultCallBack callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.add("logics", HDLGsonUtils.toJsonArray(logics)); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_LOGIC_FULL_SYNC); + 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); + } + } + }); + } + + /***************7.瀹夐槻鍖栧鍒犳敼鏌ョ鐞�***************/ + /** + * 鍏ㄩ噺鏇存柊鍚屾瀹夐槻銆佸瓨鍦ㄤ笉鍙�,涓嶅瓨鍦ㄦ柊澧� + * + * @param homeId 浣忓畢id + * @param gatewayId 缃戝叧ID + * @param securitys 瀹夐槻鍒楄〃 + * @param callBack + * @return + */ + public Disposable fullAddSecurityList(String homeId, String gatewayId, List<SecurityInfoBean> securitys, IDefaultCallBack callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("gatewayId", gatewayId); + json.add("securitys", HDLGsonUtils.toJsonArray(securitys)); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_SECURITY_FULL_SYNC); + 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); + } + } + }); + } + + +} -- Gitblit v1.8.0