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/scene/controller/HDLPMSceneController.java | 189 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 189 insertions(+), 0 deletions(-) diff --git a/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/scene/controller/HDLPMSceneController.java b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/scene/controller/HDLPMSceneController.java new file mode 100644 index 0000000..7a02243 --- /dev/null +++ b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/scene/controller/HDLPMSceneController.java @@ -0,0 +1,189 @@ +package com.hdl.linkpm.sdk.scene.controller; + +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.scene.bean.SceneInfoBean; +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/13/21. + * 鍦烘櫙鐩稿叧鐨勭綉缁滆姹� + */ +public class HDLPMSceneController { + /** + * instance + */ + private volatile static HDLPMSceneController instance; + + /** + * getInstance + * + * @return HDLPMSceneController + */ + public static synchronized HDLPMSceneController getInstance() { + if (instance == null) { + synchronized (HDLPMSceneController.class) { + if (instance == null) { + instance = new HDLPMSceneController(); + } + } + } + return instance; + } + +/***************5.鍦烘櫙澧炲垹鏀规煡绠$悊***************/ + /** + * 鍏ㄩ噺鍚屾鍦烘櫙 + * + * @param homeId 浣忓畢id + * @param sceneInfoBeanList 鍦烘櫙鍒楄〃 + * @param callBack + * @return + */ + public Disposable fullSyncSceneList(String homeId, List<SceneInfoBean> sceneInfoBeanList, IDefaultCallBack callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.add("scenes", HDLGsonUtils.toJsonArray(sceneInfoBeanList)); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_SCENE_LIST_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); + } + } + }); + } + + /** + * 鑾峰彇鍦烘櫙鍒楄〃 + * + * @param homeId 浣忓畢id + * @param uid 鎴块棿uid,涓嶄紶榛樿鏌ュ叏閮� + * @param callBack + * @return + */ + public Disposable getSceneList(String homeId, String uid, IResponseCallBack<List<SceneInfoBean>> callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("uid", uid); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_SCENE_LIST_GET); + return HxHttp.builder() + .url(requestUrl) + .raw(json.toString()) + .build() + .post() + .subscribeWith(new HDLResponse<List<SceneInfoBean>>() { + @Override + public void onResponse(List<SceneInfoBean> 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 sids 鍦烘櫙sid鍒楄〃 + * @param callBack + * @return + */ + public Disposable deleteScene(String homeId, List<String> sids, IDefaultCallBack callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.add("sids", HDLGsonUtils.toJsonArray(sids)); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_SCENE_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 sids 鍦烘櫙IDs + * @param callBack + * @return + */ + public Disposable controlScene(String homeId, List<String> sids, IDefaultCallBack callBack) { + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.add("sids", HDLGsonUtils.toJsonArray(sids)); + String requestUrl = HDLCloudHomeApi.getRequestUrl(HDLCloudHomeApi.POST_SCENE_EXECUTE); + 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