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