package com.integrated.zyyt.util; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.integrated.zyyt.ZyytConstant; import com.integrated.zyyt.enetity.TokenResult; import com.integrated.zyyt.enetity.ZyytDataResult; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.time.LocalDate; import java.util.HashMap; import java.util.List; /** * @ClassName ZyytGetData * @Author cy * @Date 2022/11/11 * @Description * @Version 1.0 **/ @Component @Slf4j public class ZyytUtil { /** * 获取批次号 * * @return */ public static String getBatchNo(LocalDate date) { if (date == null) { date = LocalDate.now(); } // return batchNoPrefix + DateUtil.format(date, "yyyyMMddHHmmss"); return ZyytConstant.batchNoPrefix + date; } /** * 获取授权 * * @param url 请求地址 * @param eciphrtext false * @param client 为数据服务平台API授权中的授权账号; * @param secret secret 为数据服务平台API授权中的登陆密钥。 * @return */ public static TokenResult getAuth(String url, boolean eciphrtext, String client, String secret, String sourceSysKey) { HashMap params = new HashMap(); params.put("ciphertext", eciphrtext); params.put("client", client); params.put("secret", secret); String httpResult = HttpRequest.post(url) .form(params) .header("X-EOS-SourceSysKey", sourceSysKey) .execute() .body(); log.info("url =》》{}", url); log.info("params =》》{}", params); log.info("result =》》{}", httpResult); try { return JSONObject.parseObject(httpResult, TokenResult.class); } catch (Exception e) { log.error(e.getMessage()); return null; } } /** * 获取数据 * * @param url * @param bearToken * @param sourceSysKey * @param params * @return */ public static ZyytDataResult getData(String url, String bearToken, String sourceSysKey, JSONObject params, int pageNum, int pageSize, Class tClass) { HashMap header = new HashMap(); header.put("Authorization", "Bearer " + bearToken); header.put("X-EOS-SourceSysKey", sourceSysKey); String trueUrl = url + "?pageNumber=" + pageNum + "&pageSize=" + pageSize; log.info("url =》》{}", trueUrl); log.info("header=>>bearToken》》{}\r\nSourceSysKey=>>{}", bearToken, sourceSysKey); log.info("params =》》{}", params); String httpResult = HttpRequest.post(trueUrl) .addHeaders(header) .contentType("application/json") .body(params.toJSONString()) .timeout(1000 * 50) .execute() .body(); try { JSONObject respJson = JSONObject.parseObject(httpResult); log.info("开始解析结果4"); Long contentSize = respJson.getLong("contentSize"); if (contentSize != null && contentSize.compareTo(0L) > 0) { JSONArray dataArray = respJson.getJSONArray("content"); log.info("开始解析结果5"); List content = dataArray.toJavaList(tClass); respJson.remove("content"); log.info("开始解析结果6"); ZyytDataResult zyytDataResult = respJson.toJavaObject(ZyytDataResult.class); zyytDataResult.setContent(content); return zyytDataResult; } else { log.info("result =》》{}", httpResult); return respJson.toJavaObject(ZyytDataResult.class); } } catch (Exception e) { log.error("getData 异常"); e.printStackTrace(); return null; } } }