From 773b9953ad645b39a9efa8ab6d71dfc9d9e4e22e Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 24 十月 2024 11:51:57 +0800
Subject: [PATCH] 补全了所有日志

---
 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