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>() { @Override public void onResponse(List 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() { @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 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() { @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() { @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() { @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> 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>() { @Override public void onResponse(List 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> 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>() { @Override public void onResponse(List 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> 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>() { @Override public void onResponse(List 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() { @Override public void accept(ResponseBody responseBody) throws Exception { //网络请求成功,读取文件保存到sd卡 callBack.onSuccess(responseBody); } }, new Consumer() { @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、ProjectType.RealEstate、ProjectType.PublicBuilding、ProjectType.Hotel * @param communityName 通过项目名称模糊查询 * @param debugStatus 数组 调试状态 To_Be_Debugged(0, "待调试")、Debugging(1, "调试中")、WAIT_DELIVERED(3, "待交付")、Delivered(4, "已交付")、INITIAL_TATE(5,"初始态") * @param pageNo * @param pageSize * @param callBack * @return */ public Disposable getProjectList(List projectTypes, String communityName, List 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() { @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 所属企业单位id * @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() { @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 projectTypes, String communityName, List 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() { @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() { @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() { @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() { @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() { @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() { @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 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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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); } } }); } }