json格式分页处理

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;
    }
posted @ 2023-04-25 14:43  我的心儿  阅读(68)  评论(0)    收藏  举报