From ce88de4891b87c3b7b2750575e15d6e48d518852 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 24 十月 2024 10:39:12 +0800
Subject: [PATCH] 增加云端库

---
 HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/project/controller/HDLPMProjectController.java | 1092 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,092 insertions(+), 0 deletions(-)

diff --git a/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/project/controller/HDLPMProjectController.java b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/project/controller/HDLPMProjectController.java
new file mode 100644
index 0000000..43dbbc8
--- /dev/null
+++ b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/project/controller/HDLPMProjectController.java
@@ -0,0 +1,1092 @@
+package com.hdl.linkpm.sdk.project.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.HDLCloudProjectApi;
+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.interceptor.HDLSmartHeader;
+import com.hdl.linkpm.sdk.core.response.HDLResponse;
+import com.hdl.linkpm.sdk.project.bean.DriveDetailListBean;
+import com.hdl.linkpm.sdk.project.bean.DriveTypeListBean;
+import com.hdl.linkpm.sdk.project.bean.EmployeeInfoBean;
+import com.hdl.linkpm.sdk.project.bean.HousePageRequestBean;
+import com.hdl.linkpm.sdk.project.bean.IrDeviceBrandBean;
+import com.hdl.linkpm.sdk.project.bean.IrDeviceCodeBean;
+import com.hdl.linkpm.sdk.project.bean.IrDeviceTypeBean;
+import com.hdl.linkpm.sdk.project.bean.ProjectHouseListBean;
+import com.hdl.linkpm.sdk.project.bean.NewProjectRequestBean;
+import com.hdl.linkpm.sdk.project.bean.ProjectInfoListBean;
+import com.hdl.linkpm.sdk.project.callback.DriverDetailListCallBack;
+import com.hdl.linkpm.sdk.project.callback.DriverDownLoadCallBack;
+import com.hdl.linkpm.sdk.project.callback.DriverTypeListCallBack;
+import com.hdl.linkpm.sdk.project.callback.IEmployeeInfoCallBack;
+import com.hdl.linkpm.sdk.project.callback.IProjectHouseListCallBack;
+import com.hdl.linkpm.sdk.project.callback.IProjectInfoListCallBack;
+import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
+import com.hdl.linkpm.sdk.utils.HDLExceptionSubmitUtils;
+import com.hdl.linkpm.sdk.utils.HDLGsonUtils;
+
+import java.util.List;
+
+import io.reactivex.rxjava3.disposables.Disposable;
+import io.reactivex.rxjava3.functions.Consumer;
+import okhttp3.ResponseBody;
+
+/**
+ * Created by jlchen on 12/8/21.
+ * 椤圭洰绠$悊鐩稿叧鐨勭綉缁滆姹�
+ */
+public class HDLPMProjectController {
+    /**
+     * instance
+     */
+    private volatile static HDLPMProjectController instance;
+
+    /**
+     * getInstance
+     *
+     * @return HDLProjectController
+     */
+    public static synchronized HDLPMProjectController getInstance() {
+        if (instance == null) {
+            synchronized (HDLPMProjectController.class) {
+                if (instance == null) {
+                    instance = new HDLPMProjectController();
+                }
+            }
+        }
+        return instance;
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾鍏徃鍛樺伐鍒楄〃 鏀寔鍚嶇О妯$硦鏌ヨ
+     *
+     * @param companyId 鍏徃ID
+     * @param userName  鍚嶇О妯$硦鏌ヨ
+     * @param callBack
+     * @return
+     */
+    public Disposable getDebuggerList(String companyId, String userName, IEmployeeInfoCallBack callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_DEBUGGER_GET);
+        JsonObject json = new JsonObject();
+        json.addProperty("companyId", companyId);
+        json.addProperty("userName", userName);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<List<EmployeeInfoBean>>() {
+                    @Override
+                    public void onResponse(List<EmployeeInfoBean> 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 houseId  浣忓畢id
+     * @param userId   鐢ㄦ埛id
+     * @param callBack
+     * @return
+     */
+    public Disposable changeHomeDebugger(String houseId, String userId, IDefaultCallBack callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_HOUSE_DEBUGGER_ADD);
+        JsonObject json = new JsonObject();
+        json.addProperty("houseId", houseId);
+        json.addProperty("userId", userId);
+        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 houseIds      浣忓畢id 鍒楄〃
+     * @param userId        鐢ㄦ埛id
+     * @param communityCode 绀惧尯code
+     * @param callBack
+     * @return
+     */
+    public Disposable batchChangeHomeDebugger(List<String> houseIds, String userId, String communityCode, IDefaultCallBack callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_HOUSE_DEBUGGER_BATCHADD);
+        JsonObject json = new JsonObject();
+        json.add("houseIds", HDLGsonUtils.toJsonArray(houseIds));
+        json.addProperty("userId", userId);
+        json.addProperty("communityCode", communityCode);
+        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 driverList(String driverTypeId, DriverTypeListCallBack callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_GET_DRIVERLIST);
+        JsonObject json = new JsonObject();
+        json.addProperty("driverTypeId", driverTypeId);
+        json.addProperty("pageNo", "1");
+        json.addProperty("pageSize", "100");
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<DriveTypeListBean>() {
+                    @Override
+                    public void onResponse(DriveTypeListBean 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 versionList(String driverId, DriverDetailListCallBack callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_GET_VERSIONLIST);
+        JsonObject json = new JsonObject();
+        json.addProperty("driverId", driverId);
+        json.addProperty("pageNo", "1");
+        json.addProperty("pageSize", "100");
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<DriveDetailListBean>() {
+                    @Override
+                    public void onResponse(DriveDetailListBean 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 getIrDeviceTypeList(String deviceType, IResponseCallBack<List<IrDeviceTypeBean>> callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_GET_IR_DEVICETYPELIST);
+        JsonObject json = new JsonObject();
+        if (!TextUtils.isEmpty(deviceType)) {
+            json.addProperty("deviceType", deviceType);
+        }
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<List<IrDeviceTypeBean>>() {
+                    @Override
+                    public void onResponse(List<IrDeviceTypeBean> 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 getIrDeviceBrandList(String deviceTypeId, IResponseCallBack<List<IrDeviceBrandBean>> callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_GET_IR_DEVICEBRANDLIST);
+        JsonObject json = new JsonObject();
+        json.addProperty("deviceTypeId", deviceTypeId);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<List<IrDeviceBrandBean>>() {
+                    @Override
+                    public void onResponse(List<IrDeviceBrandBean> 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 getIrDeviceCodeList(String brandId, IResponseCallBack<List<IrDeviceCodeBean>> callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_GET_IR_DEVICECODELIST);
+        JsonObject json = new JsonObject();
+        json.addProperty("brandId", brandId);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<List<IrDeviceCodeBean>>() {
+                    @Override
+                    public void onResponse(List<IrDeviceCodeBean> 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 downLoadDriver(String url, DriverDownLoadCallBack callBack) {
+        return HxHttp.builder()
+                .url(url)
+                .headers(HDLSmartHeader.IGNORE_SIGN_HEADER, 1)
+                .build()
+                .download()
+                .subscribe(new Consumer<ResponseBody>() {
+                    @Override
+                    public void accept(ResponseBody responseBody) throws Exception {
+                        //缃戠粶璇锋眰鎴愬姛锛岃鍙栨枃浠朵繚瀛樺埌sd鍗�
+                        callBack.onSuccess(responseBody);
+                    }
+                }, new Consumer<Throwable>() {
+                    @Override
+                    public void accept(Throwable throwable) throws Exception {
+                        /**
+                         * 缃戠粶璇锋眰澶辫触
+                         * 鍏蜂綋鍙互鑷繁瀹炵幇
+                         */
+                        HDLExceptionSubmitUtils.submit(url, null, throwable);
+                        if (callBack != null) {
+                            callBack.onFailure(new HDLException(403, throwable.getMessage()));
+                        }
+                    }
+                });
+    }
+
+
+    /******************************************************************/
+
+
+    /******************************椤圭洰绠$悊******************************/
+    /**
+     * 鑾峰彇椤圭洰鍒楄〃
+     *
+     * @param projectTypes  鏁扮粍 椤圭洰绫诲瀷 ProjectType.Home銆丳rojectType.RealEstate銆丳rojectType.PublicBuilding銆丳rojectType.Hotel
+     * @param communityName 閫氳繃椤圭洰鍚嶇О妯$硦鏌ヨ
+     * @param debugStatus   鏁扮粍 璋冭瘯鐘舵�� To_Be_Debugged(0, "寰呰皟璇�")銆丏ebugging(1, "璋冭瘯涓�")銆乄AIT_DELIVERED(3, "寰呬氦浠�")銆丏elivered(4, "宸蹭氦浠�")銆両NITIAL_TATE(5,"鍒濆鎬�")
+     * @param pageNo
+     * @param pageSize
+     * @param callBack
+     * @return
+     */
+    public Disposable getProjectList(List<String> projectTypes, String communityName, List<String> debugStatus, int pageNo, int pageSize, IProjectInfoListCallBack callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_PROJECT_GET_PAGE);
+        JsonObject json = new JsonObject();
+        json.add("projectTypes", HDLGsonUtils.toJsonArray(projectTypes));
+        json.addProperty("pageNo", pageNo);
+        json.addProperty("pageSize", pageSize);
+        if (debugStatus != null && debugStatus.size() > 0) {
+            json.add("debugStatus", HDLGsonUtils.toJsonArray(debugStatus));
+        }
+        if (!TextUtils.isEmpty(communityName)) {
+            json.addProperty("communityName", communityName);
+        }
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<ProjectInfoListBean>() {
+                    @Override
+                    public void onResponse(ProjectInfoListBean 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 companyId   鎵�灞炰紒涓氬崟浣峣d
+     * @param debugUserId 璋冭瘯鍛樺伐璐﹀彿id
+     * @param pageNo
+     * @param pageSize
+     * @param callBack
+     * @return
+     */
+    public Disposable getReDebugProjectList(String communityName, String companyId, String debugUserId, int pageNo, int pageSize, IProjectInfoListCallBack callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_REDEBUG_GET_PAGE);
+        JsonObject json = new JsonObject();
+        json.addProperty("companyId", companyId);
+        json.addProperty("debugUserId", debugUserId);
+        json.addProperty("pageNo", pageNo);
+        json.addProperty("pageSize", pageSize);
+        if (!TextUtils.isEmpty(communityName)) {
+            json.addProperty("communityName", communityName);
+        }
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<ProjectInfoListBean>() {
+                    @Override
+                    public void onResponse(ProjectInfoListBean response) {
+                        if (callBack != null) {
+                            callBack.onSuccess(response);
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HDLExceptionSubmitUtils.submit(requestUrl, json, e);
+                        if (callBack != null) {
+                            callBack.onFailure(e);
+                        }
+                    }
+                });
+    }
+
+    public Disposable getProjectListExecute(List<String> projectTypes, String communityName, List<String> debugStatus, int pageNo, int pageSize, IProjectInfoListCallBack callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_PROJECT_GET_PAGE);
+        JsonObject json = new JsonObject();
+        json.add("projectTypes", HDLGsonUtils.toJsonArray(projectTypes));
+        json.addProperty("pageNo", pageNo);
+        json.addProperty("pageSize", pageSize);
+        if (debugStatus != null && debugStatus.size() > 0) {
+            json.add("debugStatus", HDLGsonUtils.toJsonArray(debugStatus));
+        }
+        if (!TextUtils.isEmpty(communityName)) {
+            json.addProperty("communityName", communityName);
+        }
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .executePost()
+                .subscribeWith(new HDLResponse<ProjectInfoListBean>() {
+                    @Override
+                    public void onResponse(ProjectInfoListBean 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 newProjectRequestBean 椤圭洰淇℃伅瀵硅薄
+     * @param callBack
+     * @return
+     */
+    public Disposable addNewHouseProject(NewProjectRequestBean newProjectRequestBean, IDefaultCallBack callBack) {
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_PROJECT_CREATE);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(HDLGsonUtils.toJson(newProjectRequestBean))
+                .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, newProjectRequestBean, e);
+                        if (callBack != null) {
+                            callBack.onFailure(e);
+                        }
+                    }
+                });
+
+    }
+
+    /**
+     * 浜や粯椤圭洰 鎵�鏈夋埧灞嬪浜庡凡浜や粯鐘舵�佹墠閫氳繃 鍚﹀垯鎻愮ず灏氭湭鏈夋湭浜や粯鐨勬埧灞�
+     * 閽堝閰掑簵鍜屽湴浜ч」鐩�
+     *
+     * @param communityId 灏忓尯ID
+     * @param callBack
+     * @return
+     */
+    public Disposable deliveryRoject(String communityId, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("communityId", communityId);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_PROJECT_DELIVERY_ROJECT);
+        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 communityId 灏忓尯ID
+     * @param callBack
+     * @return
+     */
+    public Disposable withdrawDeliveryProject(String communityId, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("communityId", communityId);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_PROJECT_WITHDRAW_DELIVERY_PROJECT);
+        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 requestBean 璇锋眰鍙傛暟瀵硅薄
+     * @param callBack
+     * @return
+     */
+    public Disposable getProjecHouseList(HousePageRequestBean requestBean, IProjectHouseListCallBack callBack) {
+        String requestJsonStr = HDLGsonUtils.toJson(requestBean);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_PROJECT_GET_HOUSE_PAGE);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(requestJsonStr)
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<ProjectHouseListBean>() {
+                    @Override
+                    public void onResponse(ProjectHouseListBean response) {
+                        if (callBack != null) {
+                            callBack.onSuccess(response);
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HDLExceptionSubmitUtils.submit(requestUrl, requestBean, e);
+                        if (callBack != null) {
+                            callBack.onFailure(e);
+                        }
+                    }
+                });
+
+    }
+
+    public Disposable getProjecHouseListExecute(HousePageRequestBean requestBean, IProjectHouseListCallBack callBack) {
+        String requestJsonStr = HDLGsonUtils.toJson(requestBean);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_PROJECT_GET_HOUSE_PAGE);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(requestJsonStr)
+                .build()
+                .executePost()
+                .subscribeWith(new HDLResponse<ProjectHouseListBean>() {
+                    @Override
+                    public void onResponse(ProjectHouseListBean response) {
+                        if (callBack != null) {
+                            callBack.onSuccess(response);
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HDLExceptionSubmitUtils.submit(requestUrl, requestBean, e);
+                        if (callBack != null) {
+                            callBack.onFailure(e);
+                        }
+                    }
+                });
+
+    }
+
+    /**
+     * 鎵归噺鏇存柊鎴垮眿璋冭瘯鐘舵��
+     *
+     * @param communityCode 椤圭洰code
+     * @param debugStatus   璋冭瘯鐘舵�� 0锛氬緟璋冭瘯  1锛氳皟璇曚腑 2锛氬緟楠屾敹 3锛氬凡瀹屾垚 4锛氬凡浜や粯锛屼负绌哄垯涓嶈繃婊�
+     * @param houseIds      鎴垮眿id闆嗗悎
+     * @param callBack
+     * @return
+     */
+    public Disposable batchChangeHouseDebugstatus(String communityCode, int debugStatus, List<String> houseIds, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("communityCode", communityCode);
+        json.addProperty("debugStatus", debugStatus);
+        json.add("houseIds", HDLGsonUtils.toJsonArray(houseIds));
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_HOUSE_BATCH_UPDATE_STATUS);
+        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
+     * @param devicesInfo
+     * @param callBack
+     * @return
+     */
+    public Disposable fullUpdateDeviceInfo(String homeId, JsonArray devicesInfo, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("homeId", homeId);
+        json.add("devices", devicesInfo);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_HOUSE_DEVICE_FULL_UPDATE);
+        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);
+                        }
+                    }
+                });
+    }
+
+
+    /**
+     * 鏇存柊鍔熻兘淇℃伅锛屽叏閲�
+     */
+    public Disposable fullUpdateFunctionListInfo(String homeId, String gatewayId, JsonArray functionListInfo, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("homeId", homeId);
+        json.addProperty("gatewayId", gatewayId);
+        json.add("devices", functionListInfo);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_HOUSE_FUNCTION_FULL_UPDATE);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .executePost()
+                .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);
+                        }
+                    }
+                });
+    }
+
+    public Disposable fullUpdateSceneListInfo(String homeId, JsonArray data, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("homeId", homeId);
+        json.add("scenes", data);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_HOUSE_SCENE_FULL_UPDATE);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .executePost()
+                .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);
+                        }
+                    }
+                });
+    }
+
+    public Disposable fullUpdateLogicListInfo(String homeId, JsonArray data, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("homeId", homeId);
+        json.add("logics", data);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_HOUSE_LOGIC_FULL_UPDATE);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .executePost()
+                .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);
+                        }
+                    }
+                });
+    }
+
+    public Disposable fullUpdateUidInfo(String homeId, JsonArray data, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("homeId", homeId);
+        json.add("rooms", data);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_HOUSE_ROOM_FULL_UPDATE);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .executePost()
+                .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);
+                        }
+                    }
+                });
+    }
+
+    public Disposable fullUpdateSecuritysListInfo(String homeId, String gatewayId, JsonArray data, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("homeId", homeId);
+        json.addProperty("gatewayId", gatewayId);
+        json.add("securitys", data);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_HOUSE_SECURITY_FULL_UPDATE);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .executePost()
+                .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);
+                        }
+                    }
+                });
+    }
+    public Disposable fullAddGroupControlList(String homeId, String gatewayId, JsonArray data, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("homeId", homeId);
+        json.addProperty("gatewayId", gatewayId);
+        json.add("infos", data);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_HOUSE_GROUPCONTROL_FULL_UPDATE);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .executePost()
+                .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);
+                        }
+                    }
+                });
+    }
+
+    public Disposable updateHouseName(String homeId, String homeName, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("homeId", homeId);
+        json.addProperty("homeName", homeName);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_HOUSENAME_UPDATE);
+        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);
+                        }
+                    }
+                });
+    }
+
+    public Disposable addDownloadCount(String driverVersionId) {
+        JsonObject json = new JsonObject();
+        json.addProperty("driverVersionId", driverVersionId);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_ADD_DOWNLOADCOUNT);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<String>() {
+                    @Override
+                    public void onResponse(String response) {
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HDLExceptionSubmitUtils.submit(requestUrl, json, e);
+                    }
+                });
+    }
+
+    public Disposable addDownloadFirmwareCount(String firmwareVersionId) {
+        JsonObject json = new JsonObject();
+        json.addProperty("firmwareVersionId", firmwareVersionId);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_ADD_FIRMWARE_DOWNLOADCOUNT);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<String>() {
+                    @Override
+                    public void onResponse(String response) {
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HDLExceptionSubmitUtils.submit(requestUrl, json, e);
+                    }
+                });
+    }
+
+    public Disposable addDownloadThirdCount(String thirdFirmwareVersionId) {
+        JsonObject json = new JsonObject();
+        json.addProperty("thirdFirmwareVersionId", thirdFirmwareVersionId);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_ADD_THIRD_DOWNLOADCOUNT);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<String>() {
+                    @Override
+                    public void onResponse(String response) {
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HDLExceptionSubmitUtils.submit(requestUrl, json, e);
+                    }
+                });
+    }
+
+
+    /******************************鏋佸厜鎺ㄩ��******************************/
+
+    public Disposable bindJPushId(String deviceName, String pushToken, String software, IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("deviceName", deviceName);
+        json.addProperty("deviceType", "Android");
+        json.addProperty("produce", "true");
+        json.addProperty("pushToken", pushToken);
+        json.addProperty("software", software);
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_JPUSH_BIND);
+        return HxHttp.builder()
+                .url(requestUrl)
+                .raw(json.toString())
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<String>() {
+                    @Override
+                    public void onResponse(String response) {
+                        if (callBack != null) {
+                            HDLLinkPMUser.getInstance().saveHDLJpushId(response);
+                            callBack.onSuccess();
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HDLExceptionSubmitUtils.submit(requestUrl, json, e);
+                        if (callBack != null) {
+                            callBack.onFailure(e);
+                        }
+                    }
+                });
+    }
+
+    public Disposable unBindJPushId(IDefaultCallBack callBack) {
+        JsonObject json = new JsonObject();
+        json.addProperty("pushId", HDLLinkPMUser.getInstance().getHDLJpushId());
+        String requestUrl = HDLCloudProjectApi.getRequestUrl(HDLCloudProjectApi.POST_JPUSH_UNBIND);
+        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