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