public static JSONArray sendByQCCGetListArrayString(JSONArray jsonArrayResult, BaseHttpService<String,String> baseHttpService, Map<String, String> map, OperatorBO operatorBO){
try {
map.put("pageIndex",1+"");
if(map.get("PageSize")==null)
map.put("PageSize","20");//分页数目,默认10条,最大不超过20条
RestResult<String> json = baseHttpService.getChannelData("", HttpMethod.GET, operatorBO, map);
JSONObject jsonObject = JSON.parseObject(json.getData());
if("200".equals(json.getCode())){
jsonArrayResult = new JSONArray();
jsonArrayResult.add(0,jsonObject.getJSONObject("Paging"));
jsonArrayResult.add(1,jsonObject.getJSONArray("Result"));
if(jsonObject.getJSONObject("Paging")!=null&&jsonObject.getJSONObject("Paging").containsKey("TotalRecords")) {
int totalPages = jsonObject.getJSONObject("Paging").getIntValue("TotalRecords") % Integer.parseInt(map.get("PageSize")) == 0
? jsonObject.getJSONObject("Paging").getIntValue("TotalRecords") / Integer.parseInt(map.get("PageSize"))
: jsonObject.getJSONObject("Paging").getIntValue("TotalRecords") / Integer.parseInt(map.get("PageSize")) + 1;
for (int i = 2; i <= totalPages; i++) {
map.put("pageIndex", i + "");
RestResult<String> jsons = baseHttpService.getChannelData("", HttpMethod.GET, operatorBO, map);
JSONObject jsonObjects = JSON.parseObject(jsons.getData());
if ("200".equals(json.getCode())) {
jsonArrayResult.add(i, jsonObjects.getJSONArray("Result"));
} else {
//结果如果失败,则置空结果集
jsonArrayResult = null;
}
}
}
}
}catch (Exception e){
log.info("get接口调用{}异常",map.toString(),e);
e.printStackTrace();
//结果如果失败,则置空结果集
jsonArrayResult = null;
}
return jsonArrayResult;
}
public TableDataInfo queryStrategyTaskList(@RequestBody PersonalGrantTaskDTO grantTaskDTO, HttpServletRequest request) {
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
List<PersonalGrantRecordVO> list = personalGrantRecordService.getTaskList(request, grantTaskDTO);
int num = list.size();
if (num > 0) {
list = list.stream()
.skip((pageNum - 1) * pageSize)
.limit(pageSize)
.collect(Collectors.toList());
}
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setRows(list);
rspData.setTotal(num);
return rspData;
}
/**
* @param req post请求参数,json字符串
* @param httpMethod 请求格式 get,post,put,delete
* @param operatorBO 操作人
* @param paramMap get请求参数,例如name=张三,map.put("name","张三")
* @return 返回结果
* */
@Transactional(propagation = Propagation.REQUIRES_NEW)
public RestResult<Resp> getChannelData(Req req, HttpMethod httpMethod, OperatorBO operatorBO,Map<String,String> paramMap) {
RestResult<Resp> restResult = null;
//get请求拼接参数
String urlParm = "";
if(paramMap != null){
for (String key: paramMap.keySet()) {
urlParm += "&"+key+"="+paramMap.get(key);
}
}
String url = getReqUrl(1) + urlParm;
String logUrl = getReqUrl(2) + urlParm;
if (StringUtils.isBlank(url) || StringUtils.isBlank(getReqUrl(1))) {
restResult = new RestResult<Resp>(ExpandResponseStatus.REQ_URL_EMPTY.getCode(), ExpandResponseStatus.REQ_URL_EMPTY.getMessage());
return restResult;
}
if (getTypeRef() == null) {
restResult = new RestResult<Resp>(ExpandResponseStatus.RESP_MAPPING_EMPTY.getCode(), ExpandResponseStatus.RESP_MAPPING_EMPTY.getMessage());
return restResult;
}
restResult = getCacheData(req);
if (restResult == null) {
long logId = 0;
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
List<MediaType> mediaTypeList = new ArrayList<>();
mediaTypeList.add(MediaType.APPLICATION_JSON_UTF8);
headers.setAccept(mediaTypeList);
addHeaders(headers);
HttpEntity<Req> request = new HttpEntity<>(req,headers);
//记录请求日志
logId = addRequestLog(logUrl,req,operatorBO);
log.info("日志记录logId【{}】,请求{}查询数据开始, ReqUrl={} ,请求参数={}",logId, getDataType() , logUrl , SimpleToolUtil.hideText(req!=null?req.toString():""));
//发起接口请求
ResponseEntity<Resp> responseEntity = null;
//企业征信暂时调用
// if(SystemConfig.DEBUG||(("checkCorporateCreditService".equals(getDataType())||"queryCorporateCreditService".equals(getDataType()))&&SystemConfig.CORPORATE_CREDIT)){
// //if(SystemConfig.DEBUG){
// String mockStr = new BaseHttpMockUtil<Req>().mock(req,getDataType());
// responseEntity = new ResponseEntity<Resp>((Resp)mockStr,HttpStatus.OK);
// }else{
responseEntity = (ResponseEntity<Resp>)restTemplate.exchange(url , httpMethod, request, getTypeRef());
// }
//组装返回结果
restResult = new RestResult<Resp>(ExpandResponseStatus.SUCCESS.getCode(), ExpandResponseStatus.SUCCESS.getMessage(),responseEntity.getBody());
log.info("日志记录logId【{}】,请求{}查询数据结束,判断调取结果中... ..., ReqUrl={},请求参数={},请求结果={}",logId, getDataType() , logUrl ,SimpleToolUtil.hideText(req!=null?req.toString():""),responseEntity.getBody());
if (restResult.ok() || ExpandResponseStatus.RESULT_IS_EMPTY.getCode().equalsIgnoreCase(restResult.getCode())) {
//返回结果转json
JSONObject jsonObject = JSON.parseObject((String)restResult.getData());
//获取解析返回结果的参数关键字
Map<String,String> resultMap = processingRequestResult();
if(resultMap.get("codeValue").contains(jsonObject.get(resultMap.get("code"))+"")){
log.info("日志记录logId【{}】,请求{}查询数据成功, ReqUrl={},请求参数={},请求结果={}",logId, getDataType() , logUrl ,SimpleToolUtil.hideText(req!=null?req.toString():""),responseEntity.getBody());
//异步记录缓存
cacheData(req, restResult.getData());
//异步更新请求日志
updateRequestLog(logId,"1",""+jsonObject.get(resultMap.get("code")),(String)jsonObject.get(resultMap.get("message")));
} else{
log.info("日志记录logId【{}】,请求{}查询数据失败, ReqUrl={},请求参数={},请求结果={}",logId, getDataType() , logUrl ,SimpleToolUtil.hideText(req!=null?req.toString():""),responseEntity.getBody());
//请求失败
updateRequestLog(logId,"2",""+jsonObject.get(resultMap.get("code")),(String)jsonObject.get(resultMap.get("message")));
restResult = new RestResult<Resp>(ExpandResponseStatus.URL_POST_ERROR.getCode(), ExpandResponseStatus.URL_POST_ERROR.getMessage(),responseEntity.getBody());
}
}
} catch (Exception e) {
log.info("日志记录logId【{}】,请求{}查询数据异常, ReqUrl={},请求参数={}", logId , getDataType() , logUrl ,SimpleToolUtil.hideText(req!=null?req.toString():""));
log.error("接口请求数据失败,logId=="+logId, e);
//异步更新请求日志
updateRequestLog(logId,"2","500","系统调用接口异常");
restResult = new RestResult<Resp>(ExpandResponseStatus.URL_POST_ERROR.getCode(), ExpandResponseStatus.URL_POST_ERROR.getMessage());
}
}
return restResult;
}