LambdaQueryWrapper 自定义返回字段(分组后统计)

  1. QueryWrapper 指定想要返回的字段名,然后转化为LambdaQueryWrapper;
 QueryWrapper<RiskResultsDO> wrapper = new QueryWrapper<>();
        wrapper.select("count(1) as countNum,risk_level_code as riskLevelCode,whether_forecast as whetherForecast ");
        LambdaQueryWrapper<RiskResultsDO> searchInfo = riskResultsRepository.dealSearchInfo(req, wrapper.lambda());
        searchInfo.groupBy(RiskResultsDO::getWhetherForecast);
        searchInfo.groupBy(RiskResultsDO::getRiskLevelCode);
        List<Map<String, Object>> maps = riskResultsRepository.listMaps(searchInfo);
  1. 搜索条件处理
 public LambdaQueryWrapper<RiskResultsDO> dealSearchInfo(RiskResultsPageReq req, LambdaQueryWrapper<RiskResultsDO> lambdaQueryWrapper, SFunction<RiskResultsDO, ?> sortFiled, boolean whetherAsc) {
        lambdaQueryWrapper.eq(StringUtils.isNotBlank(req.getEvaluationTypeCode()), RiskResultsDO::getEvaluationTypeCode, req.getEvaluationTypeCode())
                .ge(StringUtils.isNotBlank(req.getStartEvaluationTime()), RiskResultsDO::getEvaluationTime, req.getStartEvaluationTime() + DateUtilConstant.MIN_DAY_TIME)
                .le(StringUtils.isNotBlank(req.getEndEvaluationTime()), RiskResultsDO::getEvaluationTime, req.getEndEvaluationTime() + DateUtilConstant.MAX_DAY_TIME)
                .ge(StringUtils.isNotBlank(req.getStartForecastBelongTime()), RiskResultsDO::getForecastBelongTime, req.getStartForecastBelongTime() + DateUtilConstant.MIN_DAY_TIME)
                .le(StringUtils.isNotBlank(req.getEndForecastBelongTime()), RiskResultsDO::getForecastBelongTime, req.getEndForecastBelongTime() + DateUtilConstant.MAX_DAY_TIME)
                .apply(ObjectUtil.isNotNull(req.getAreaId()), " FIND_IN_SET (" + req.getAreaId() + ",area_ids) ")
                .eq(ObjectUtil.isNotNull(req.getWhetherForecast()), RiskResultsDO::getWhetherForecast, req.getWhetherForecast())
                .eq(ObjectUtil.isNotNull(req.getStationAreaId()), RiskResultsDO::getAreaId, req.getStationAreaId())
                .eq(ObjectUtil.isNotNull(req.getRiskLevelCode()), RiskResultsDO::getRiskLevelCode, req.getRiskLevelCode())
                .eq(ObjectUtil.isNotNull(req.getBelongTypeCode()), RiskResultsDO::getBelongTypeCode, req.getBelongTypeCode());
        if (ObjectUtil.isNotEmpty(req.getWhetherTown()) && req.getWhetherTown().equals(1)) {
            lambdaQueryWrapper.isNotNull(RiskResultsDO::getVillageTownId);
        }
        lambdaQueryWrapper.orderBy(true, whetherAsc, sortFiled);
        return lambdaQueryWrapper;
    }

这个主要是不想维护常量字段名使用~

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值