温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

spring mybatis汇总统计处理的示例分析

发布时间:2021-12-15 11:48:34 来源:亿速云 阅读:225 作者:小新 栏目:编程语言

这篇文章主要为大家展示了“spring mybatis汇总统计处理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“spring mybatis汇总统计处理的示例分析”这篇文章吧。

public PageInfo getCenterInvestAnswerSum(GetCenterInvestSumReq askReq)    throws BusinessException {   PageInfo pageResult = new PageInfo();   final String METHOD = "getCenterAskInvestSum";   try {    PageHelper.startPage(askReq.getPageNum(), askReq.getPageSize());    LogUtil.logInput(LOG_TYPE.BIZ.val, this, METHOD, askReq);    // 1.如果存在投顾,es查询投顾信息    List adviserIdList = null;    Map adviserMap = null;    if (StringUtils.hasLength(askReq.getInvestAdviserName())) {     AdviserEsReq adviserEsReq = new AdviserEsReq();     adviserEsReq.setInvestAdviserName(askReq.getInvestAdviserName());     adviserEsReq.setPageSize(1000);     PageInfo pageInfo = AdviserEsUtils.findByParams(adviserEsReq);     if (CollectionUtils.isEmpty(pageInfo.getList())) {      return pageResult;     }     adviserIdList = new ArrayList();     adviserMap = new HashMap();     for (VdInvestAdviser adviser : pageInfo.getList()) {      adviserIdList.add(adviser.getId());      adviserMap.put(adviser.getId(), adviser);     }    }    // 2.查询需要统计的问股数据    AskStockStatisticsReq statisticsReq = new AskStockStatisticsReq();    statisticsReq.setBeginDate(DateUtils.toDate(askReq.getStartDate(), DateFormat.YEAR_MONTH_DAY));    statisticsReq.setEndDate(      DateUtils.nextDays(DateUtils.toDate(askReq.getEndDate(), DateFormat.YEAR_MONTH_DAY), 1));    statisticsReq.setAdviserIdList(adviserIdList);    List askList = this.apAskExtMapper.findByCreateTime(statisticsReq);    if (CollectionUtils.isEmpty(askList)) {     return pageResult;    }    // 3.判断是否需要查询投顾信息,用户未根据投顾姓名搜索则需要重新查询投顾信息    if (CollectionUtils.isEmpty(adviserIdList)) {     adviserIdList = new ArrayList();// 最后循环组数据要用     Set adviserIdSet = new HashSet();// 去重用     adviserMap = new HashMap();     askList.forEach(ask -> {      adviserIdSet.add(ask.getAdviserId());     });     adviserIdList.addAll(adviserIdSet);     List adviserList = AdviserEsUtils.findByIds(adviserIdList);     for (VdInvestAdviser adviser : adviserList) {      adviserMap.put(adviser.getId(), adviser);     }    }    // 4.统计数据    Map askCountMap = new HashMap();// 提问数map    Map answerCountMap = new HashMap();// 解答数map    Map reportCountMap = new HashMap();// 举报数map    Map qualifiedCountMap = new HashMap();// 合格数map    Map complianceCountMap = new HashMap();// 合规数map    askList.forEach(ask -> {     Long key = ask.getAdviserId();     setDataMap(askCountMap, key, 1);     if (ask.getAnswerFlag() != null && ask.getAnswerFlag()) {      setDataMap(answerCountMap, key, 1);     }     if (ask.getReportFlag() != null && ask.getReportFlag()) {      setDataMap(reportCountMap, key, 1);     }     if (ask.getQualifiedFlag() != null && ask.getQualifiedFlag()) {      setDataMap(qualifiedCountMap, key, 1);     }     if (ask.getComplianceFlag() != null && ask.getComplianceFlag()) {      setDataMap(complianceCountMap, key, 1);     }    });    // 5.组返回页面数据    List resultList = new ArrayList();    for (Long adviserId : adviserIdList) {     VdInvestAdviser adviser = adviserMap.get(adviserId);     GetCenterInvestSumRes res = new GetCenterInvestSumRes();     res.setAdviserId(adviserId);     res.setInvestAdviserName(adviser.getInvestAdviserName());     res.setInvestAdviserDept(adviser.getInvestAdviserDept());     res.setSatisfied(adviser.getAverageSatisfied());     res.setYybCode(adviser.getYybCode());     res.setAskAdviserCount(answerCountMap.containsKey(adviserId) ? answerCountMap.get(adviserId) : 0);     res.setAskCount(askCountMap.containsKey(adviserId) ? askCountMap.get(adviserId) : 0);     res.setQualifiedCount(qualifiedCountMap.containsKey(adviserId) ? qualifiedCountMap.get(adviserId) : 0);     res.setComplianceCount(       complianceCountMap.containsKey(adviserId) ? complianceCountMap.get(adviserId) : 0);     res.setReportFlagCount(reportCountMap.containsKey(adviserId) ? reportCountMap.get(adviserId) : 0);     resultList.add(res);    }    pageResult.setList(resultList);   } catch (Exception e) {    LogUtil.logError(LOG_TYPE.BIZ.val, this, METHOD, e);    throw ExceptionUtil.generateException("统计解答问股的投股信息", e);   }   return pageResult;  }

以上是“spring mybatis汇总统计处理的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI