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/workbench/databackup/controller/DataBackupController.java |  377 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 377 insertions(+), 0 deletions(-)

diff --git a/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/workbench/databackup/controller/DataBackupController.java b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/workbench/databackup/controller/DataBackupController.java
new file mode 100644
index 0000000..93c8e76
--- /dev/null
+++ b/HDLLinkPMSdk/src/main/java/com/hdl/linkpm/sdk/workbench/databackup/controller/DataBackupController.java
@@ -0,0 +1,377 @@
+package com.hdl.linkpm.sdk.workbench.databackup.controller;
+
+
+
+import android.os.Environment;
+
+import com.google.gson.JsonObject;
+import com.hdl.hdlhttp.HxHttp;
+import com.hdl.hdlhttp.callback.HxException;
+import com.hdl.linkpm.sdk.HDLLinkPMSdk;
+import com.hdl.linkpm.sdk.core.api.HDLCloudUserApi;
+import com.hdl.linkpm.sdk.core.bean.PageInfoListBean;
+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.utils.HDLExceptionSubmitUtils;
+import com.hdl.linkpm.sdk.utils.HDLFileUtils;
+import com.hdl.linkpm.sdk.utils.HDLGsonUtils;
+import com.hdl.linkpm.sdk.workbench.databackup.bean.BackupListBean;
+import com.hdl.linkpm.sdk.workbench.databackup.bean.GatewayBackupBean;
+
+import java.io.File;
+import java.util.List;
+
+import io.reactivex.rxjava3.disposables.Disposable;
+import io.reactivex.rxjava3.subscribers.DisposableSubscriber;
+import okhttp3.ResponseBody;
+
+/**
+ * Created by hxb on 2022/2/23.
+ */
+public class DataBackupController {
+    /**
+     * instance
+     */
+    private volatile static DataBackupController instance;
+
+    /**
+     * getInstance
+     *
+     * @return DataBackupController
+     */
+    public static synchronized DataBackupController getInstance() {
+        if (instance == null) {
+            synchronized (DataBackupController.class) {
+                if (instance == null) {
+                    instance = new DataBackupController();
+                }
+            }
+        }
+        return instance;
+    }
+
+    /**
+     * 涓婁紶澶囦唤鏁版嵁
+     *
+     * @param homeId   浣忓畢ID
+     * @param data     涓婁紶鐨勬暟鎹唴瀹�
+     * @param callBack
+     * @return
+     */
+    public Disposable dataBackupUpload(String homeId, byte[] data, IDefaultCallBack callBack) {
+        String requestUrl = HDLLinkPMSdk.getUserRegionUrl() + HDLCloudUserApi.POST_BACKUP_UPLOAD + "?houseId=" + homeId;
+        String path = HDLLinkPMSdk.getContext().getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath() + "/Temp/";
+        String fileName = System.currentTimeMillis() + "";
+        HDLFileUtils.byteToFile(data, path, fileName);
+        File file = new File(path + fileName);
+
+        return HxHttp.builder()
+                .file(file, "file")
+                .url(requestUrl)
+                .build()
+                .upload()
+                .subscribeWith(new HDLResponse<String>() {
+                    @Override
+                    public void onResponse(String code) {
+                        HDLFileUtils.deleteFile(file);
+                        if (callBack != null) {
+                            callBack.onSuccess();
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HDLFileUtils.deleteFile(file);
+                        HDLExceptionSubmitUtils.submit(requestUrl, homeId, e);
+                        if (callBack != null) {
+                            callBack.onFailure(e);
+                        }
+                    }
+                });
+    }
+
+    /**
+     * 鍒犻櫎澶囦唤鏁版嵁
+     *
+     * @param homeId   浣忓畢ID
+     * @param callBack
+     * @return
+     */
+    public Disposable databackDel(String homeId, IDefaultCallBack callBack) {
+        String requestUrl = HDLLinkPMSdk.getUserRegionUrl() + HDLCloudUserApi.POST_BACKUP_DEL;
+        JsonObject json = new JsonObject();
+        json.add("houseIds", HDLGsonUtils.toJsonArray(new String[]{homeId}));
+        return HxHttp.builder()
+                .raw(json.toString())
+                .url(requestUrl)
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<String>() {
+                    @Override
+                    public void onResponse(String url) {
+                        if (null != callBack) {
+                            callBack.onSuccess();
+                        }
+                    }
+
+                    @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 databackDownload(String homeId,String path, IDefaultCallBack callBack) {
+        String requestUrl = HDLLinkPMSdk.getUserRegionUrl() + HDLCloudUserApi.POST_BACKUP_DOWNLOAD_URL;
+        JsonObject json = new JsonObject();
+        json.addProperty("houseId", homeId);
+        return HxHttp.builder()
+                .raw(json.toString())
+                .url(requestUrl)
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<String>() {
+                    @Override
+                    public void onResponse(String url) {
+                        HxHttp.builder()
+                                .url(url)
+                                .build()
+                                .download()
+                                .subscribe(new DisposableSubscriber<ResponseBody>() {
+                                    @Override
+                                    public void onNext(ResponseBody responseBody) {
+                                        if (HDLFileUtils.writeFile(path, responseBody.byteStream())) {
+                                            if (null != callBack) {
+                                                callBack.onSuccess();
+                                            }
+                                        } else {
+                                            if (callBack != null) {
+                                                callBack.onFailure(new HDLException(HxException.ErrorCode.UNKNOWN, "Download Fail"));
+                                            }
+                                        }
+                                    }
+
+                                    @Override
+                                    public void onError(Throwable t) {
+                                        if (callBack != null) {
+                                            callBack.onFailure(new HDLException(HxException.ErrorCode.UNKNOWN, t.getMessage()));
+                                        }
+                                    }
+
+                                    @Override
+                                    public void onComplete() {
+
+                                    }
+                                });
+
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HDLExceptionSubmitUtils.submit(requestUrl, json, e);
+                        if (callBack != null) {
+                            callBack.onFailure(e);
+                        }
+                    }
+                });
+    }
+
+    /**
+     * 鑾峰彇澶囦唤鍒楄〃
+     *
+     * @param userId   鐢ㄦ埛ID
+     * @param pageNo 寮�濮嬬储寮�
+     * @param pageSize 椤甸潰澶у皬
+     * @param callBack
+     * @return
+     */
+    public Disposable databackList(String userId,int pageNo, int pageSize, IResponseCallBack<PageInfoListBean<BackupListBean>> callBack) {
+        String requestUrl = HDLLinkPMSdk.getUserRegionUrl() + HDLCloudUserApi.POST_BACKUP_LIST;
+        JsonObject json = new JsonObject();
+        json.addProperty("pageNo", pageNo);
+        json.addProperty("pageSize", pageSize);
+        json.addProperty("debugUserId", userId);
+        return HxHttp.builder()
+                .raw(json.toString())
+                .url(requestUrl)
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<PageInfoListBean<BackupListBean>>() {
+                    @Override
+                    public void onResponse(PageInfoListBean<BackupListBean> 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 浜戠涓婄綉鍏砱atewayId
+     * @param callBack
+     * @return
+     */
+    public Disposable getGatewayBackupDataList(String homeId, String gatewayId, IResponseCallBack<List<GatewayBackupBean>> callBack) {
+        String requestUrl = HDLLinkPMSdk.getUserRegionUrl() + HDLCloudUserApi.POST_GATEWAY_BACKUP_LIST;
+        JsonObject json = new JsonObject();
+        json.addProperty("spaceCode", homeId);
+        json.addProperty("gatewayId", gatewayId);
+        return HxHttp.builder()
+                .raw(json.toString())
+                .url(requestUrl)
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<List<GatewayBackupBean>>() {
+                    @Override
+                    public void onResponse(List<GatewayBackupBean> 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 浜戠涓婄綉鍏砱atewayId
+     * @param callBack
+     * @return
+     */
+    public Disposable getDebugGatewayBackupDataList(String homeId, String gatewayId, IResponseCallBack<GatewayBackupBean> callBack) {
+        String requestUrl = HDLLinkPMSdk.getUserRegionUrl() + HDLCloudUserApi.POST_GATEWAY_BACKUP_DEBUGCOMPLETEBACKUPFILE;
+        JsonObject json = new JsonObject();
+        json.addProperty("spaceCode", homeId);
+        json.addProperty("gatewayId", gatewayId);
+        return HxHttp.builder()
+                .raw(json.toString())
+                .url(requestUrl)
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<GatewayBackupBean>() {
+                    @Override
+                    public void onResponse(GatewayBackupBean 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 浜戠涓婄綉鍏砱atewayId
+     * @param recordId 澶囦唤璁板綍id
+     * @param callBack 鍥炶皟
+     * @return Disposable
+     */
+    public Disposable getGatewayBackupRecover(String homeId, String gatewayId,long recordId, IResponseCallBack  callBack) {
+        String requestUrl = HDLLinkPMSdk.getUserRegionUrl() + HDLCloudUserApi.POST_GATEWAY_BACKUP_RECOVER;
+        JsonObject json = new JsonObject();
+        json.addProperty("spaceCode", homeId);
+        json.addProperty("gatewayId", gatewayId);
+        json.addProperty("recordId", recordId);
+        return HxHttp.builder()
+                .raw(json.toString())
+                .url(requestUrl)
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<String>() {
+                    @Override
+                    public void onResponse(String 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 浜戠涓婄綉鍏砱atewayId
+     * @param newMac newMac	鏂扮綉鍏砿ac
+     * @param callBack 鍥炶皟
+     * @return Disposable
+     */
+    public Disposable getGatewayReplace(String homeId, String gatewayId,String newMac, IResponseCallBack  callBack) {
+        String requestUrl = HDLLinkPMSdk.getUserRegionUrl() + HDLCloudUserApi.POST_GATEWAY_REPLACE;
+        JsonObject json = new JsonObject();
+        json.addProperty("homeId", homeId);
+        json.addProperty("gatewayId", gatewayId);//鏃х綉鍏砳d
+        json.addProperty("newMac", newMac);//newMac	鏂扮綉鍏砿ac
+        return HxHttp.builder()
+                .raw(json.toString())
+                .url(requestUrl)
+                .build()
+                .post()
+                .subscribeWith(new HDLResponse<String>() {
+                    @Override
+                    public void onResponse(String response) {
+                        if (callBack != null) {
+                            callBack.onSuccess(response);
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HDLExceptionSubmitUtils.submit(requestUrl, json, e);
+                        if (callBack != null) {
+                            callBack.onFailure(e);
+                        }
+                    }
+                });
+    }
+
+
+}

--
Gitblit v1.8.0