From fcc5791b5d0d03e346896800fbbc51994a93a32a Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期三, 12 三月 2025 17:37:32 +0800 Subject: [PATCH] SDK 业务功能 --- iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java | 132 +++++++++++++++++++++++++++++++------------ 1 files changed, 94 insertions(+), 38 deletions(-) diff --git a/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java b/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java index 0a25789..e0a76ef 100644 --- a/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java +++ b/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java @@ -3,7 +3,12 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; -import com.iailab.sdk.auth.client.dto.ApiDataQueryDTO; +import com.iailab.sdk.auth.client.common.exception.enums.GlobalErrorCodeConstants; +import com.iailab.sdk.auth.client.common.pojo.CommonResult; +import com.iailab.sdk.auth.client.common.pojo.PageResult; +import com.iailab.sdk.auth.client.dto.ApiPointsValueQueryDTO; +import com.iailab.sdk.auth.client.dto.StAlarmAndSuggestPageReqDTO; +import com.iailab.sdk.auth.client.dto.StAlarmAndSuggestRespDTO; import com.iailab.sdk.auth.client.dto.TokenDTO; import com.iailab.sdk.auth.config.SdkAutoConfiguration; import com.iailab.sdk.auth.constants.SdkErrorCodeConstants; @@ -20,6 +25,7 @@ import java.util.*; import static com.iailab.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.iailab.framework.common.pojo.CommonResult.success; /** * @author Houzhongjian @@ -70,6 +76,7 @@ public static Long expireTime; private static final String RESP_CODE = "code"; + private static final String RESP_MSG = "msg"; private static final String RESP_DATA = "data"; /** @@ -98,17 +105,17 @@ Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功"); Map<String, Object> authMap = exchange.getBody(); Object code = authMap.get("code"); - if(SdkErrorCodeConstants.AUTH_BAD_CREDENTIALS.getCode().equals(code)) { + if (SdkErrorCodeConstants.AUTH_BAD_CREDENTIALS.getCode().equals(code)) { throw exception(SdkErrorCodeConstants.AUTH_BAD_CREDENTIALS); - } else if(SdkErrorCodeConstants.AUTH_LOGIN_BAD_CREDENTIALS.getCode().equals(code)) { + } else if (SdkErrorCodeConstants.AUTH_LOGIN_BAD_CREDENTIALS.getCode().equals(code)) { throw exception(SdkErrorCodeConstants.AUTH_LOGIN_BAD_CREDENTIALS); - } else if(SdkErrorCodeConstants.OAUTH2_CLIENT_REDIRECT_URI_NOT_MATCH.getCode().equals(code)) { + } else if (SdkErrorCodeConstants.OAUTH2_CLIENT_REDIRECT_URI_NOT_MATCH.getCode().equals(code)) { throw exception(SdkErrorCodeConstants.OAUTH2_CLIENT_REDIRECT_URI_NOT_MATCH); - } else if(SdkErrorCodeConstants.OAUTH2_CLIENT_CLIENT_SECRET_ERROR.getCode().equals(code)) { + } else if (SdkErrorCodeConstants.OAUTH2_CLIENT_CLIENT_SECRET_ERROR.getCode().equals(code)) { throw exception(SdkErrorCodeConstants.OAUTH2_CLIENT_CLIENT_SECRET_ERROR); - } else if(SdkErrorCodeConstants.OAUTH2_CLIENT_NOT_EXISTS.getCode().equals(code)) { + } else if (SdkErrorCodeConstants.OAUTH2_CLIENT_NOT_EXISTS.getCode().equals(code)) { throw exception(SdkErrorCodeConstants.OAUTH2_CLIENT_NOT_EXISTS); - } else if(SdkErrorCodeConstants.OAUTH2_CLIENT_DISABLE.getCode().equals(code)) { + } else if (SdkErrorCodeConstants.OAUTH2_CLIENT_DISABLE.getCode().equals(code)) { throw exception(SdkErrorCodeConstants.OAUTH2_CLIENT_DISABLE); } accessToken = authMap.get("access_token").toString(); @@ -150,6 +157,7 @@ /** * 平台http请求封装 + * * @param method * @param url * @param params @@ -159,9 +167,9 @@ public static String doHttp(String method, String url, Map<String, Object> params) throws Exception { String response = null; String upperMethod = method.toUpperCase(); - if("GET".equals(upperMethod)) { + if ("GET".equals(upperMethod)) { response = IailabHttpUtils.doGet(url, params, CHARSET); - } else if("POST".equals(upperMethod)) { + } else if ("POST".equals(upperMethod)) { ObjectMapper objectMapper = new ObjectMapper(); response = IailabHttpUtils.doPost(url, objectMapper.writeValueAsString(params), CHARSET); } @@ -177,35 +185,22 @@ headers.set("tenant-id", TENANT_ID.toString()); } - // 统一处理响应 + /** + * 统一处理响应 + * + * @param response + * @param <T> + * @return + */ private static <T> TokenDTO handleResponse(ResponseEntity<T> response) { Assert.isTrue(response.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功"); System.out.println(response); TokenDTO authTokenDTO = new TokenDTO(); - Map<String, Object> authMap = (Map<String, Object>)response.getBody(); + Map<String, Object> authMap = (Map<String, Object>) response.getBody(); authTokenDTO.setAccessToken(authMap.get("access_token").toString()); authTokenDTO.setRefreshToken(authMap.get("refresh_token").toString()); authTokenDTO.setExpiresTime(Long.valueOf(authMap.get("expires_time").toString())); return authTokenDTO; - } - - /** - * 查询计划chart (测试用) - * @param apiDataQueryDTO - * @return - * @throws Exception - */ - public Map<String, Object> queryPlanChart(ApiDataQueryDTO apiDataQueryDTO) throws Exception { - Map<String, Object> data = new HashMap<>(); - ObjectMapper objectMapper = new ObjectMapper(); - String jsonString = objectMapper.writeValueAsString(apiDataQueryDTO); - String resp = IailabHttpUtils.doPost(BASE_URL + "/data/api/query-plans/chart", jsonString, "utf-8"); - if (StringUtils.isEmpty(resp)) { - return data; - } - JSONObject jsonObject = JSON.parseObject(resp); - data = jsonObject.getJSONObject(RESP_DATA).toJavaObject(Map.class); - return data; } /** @@ -214,16 +209,77 @@ * @param pointNos * @return */ - public Map<String, Object> queryPointsRealValue(List<String> pointNos) throws Exception { + public CommonResult<Map<String, Object>> queryPointsRealValue(List<String> pointNos) { Map<String, Object> data = new HashMap<>(); - String url = BASE_URL + "/data/api/query-points/real-value"; - String resp = IailabHttpUtils.doPost(url, JSON.toJSONString(pointNos), "UTF-8"); - if (StringUtils.isEmpty(resp)) { - return data; + try { + String url = BASE_URL + "/data/api/query-points/real-value"; + String resp = IailabHttpUtils.doPost(url, JSON.toJSONString(pointNos), "UTF-8"); + if (StringUtils.isEmpty(resp)) { + return CommonResult.error(GlobalErrorCodeConstants.EMPTY_RESP); + } + JSONObject jsonObject = JSON.parseObject(resp); + Integer respCode = jsonObject.getInteger(RESP_CODE); + if (!GlobalErrorCodeConstants.SUCCESS.getCode().equals(respCode)) { + CommonResult.error(respCode, jsonObject.getString(RESP_MSG)); + } + data = jsonObject.getJSONObject(RESP_DATA).toJavaObject(Map.class); + } catch (Exception ex) { + return CommonResult.error(GlobalErrorCodeConstants.UNKNOWN.getCode(), ex.getMessage()); } - JSONObject jsonObject = JSON.parseObject(resp); - data = jsonObject.getJSONObject(RESP_DATA).toJavaObject(Map.class); - return data; + return CommonResult.success(data); } + /** + * 查询多个测点历史值 + * + * @param queryDto + * @return + */ + public CommonResult<Map<String, List<Map<String, Object>>>> queryPointsHistoryValue(ApiPointsValueQueryDTO queryDto) { + Map<String, List<Map<String, Object>>> data = new HashMap<>(); + try { + String url = BASE_URL + "/data/api/query-points/history-value"; + String resp = IailabHttpUtils.doPost(url, JSON.toJSONString(queryDto), "UTF-8"); + if (StringUtils.isEmpty(resp)) { + return CommonResult.error(GlobalErrorCodeConstants.EMPTY_RESP); + } + JSONObject jsonObject = JSON.parseObject(resp); + Integer respCode = jsonObject.getInteger(RESP_CODE); + if (!GlobalErrorCodeConstants.SUCCESS.getCode().equals(respCode)) { + CommonResult.error(respCode, jsonObject.getString(RESP_MSG)); + } + data = jsonObject.getJSONObject(RESP_DATA).toJavaObject(Map.class); + } catch (Exception ex) { + return CommonResult.error(GlobalErrorCodeConstants.UNKNOWN.getCode(), ex.getMessage()); + } + return CommonResult.success(data); + } + + /** + * 获取预警信息和调度建议分页列表 + * + * @param reqVO + * @return + */ + public CommonResult<PageResult<StAlarmAndSuggestRespDTO>> getAlarmAndSuggestPage(StAlarmAndSuggestPageReqDTO reqVO) { + PageResult<StAlarmAndSuggestRespDTO> data = new PageResult<>(); + try { + String url = BASE_URL + "/model/api/mcs/alarm-suggest/page"; + String resp = IailabHttpUtils.doPost(url, JSON.toJSONString(reqVO), "UTF-8"); + if (StringUtils.isEmpty(resp)) { + return CommonResult.error(GlobalErrorCodeConstants.EMPTY_RESP); + } + JSONObject jsonObject = JSON.parseObject(resp); + Integer respCode = jsonObject.getInteger(RESP_CODE); + if (!GlobalErrorCodeConstants.SUCCESS.getCode().equals(respCode)) { + CommonResult.error(respCode, jsonObject.getString(RESP_MSG)); + } + Long total = Long.parseLong(jsonObject.getJSONObject(RESP_DATA).get("total").toString()); + List<StAlarmAndSuggestRespDTO> list = jsonObject.getJSONObject(RESP_DATA).getJSONArray("list").toJavaList(StAlarmAndSuggestRespDTO.class); + data = new PageResult<>(list, total); + } catch (Exception ex) { + return CommonResult.error(GlobalErrorCodeConstants.UNKNOWN.getCode(), ex.getMessage()); + } + return CommonResult.success(data); + } } \ No newline at end of file -- Gitblit v1.9.3