springdatajpa条件查询

controller

    @ApiOperation(value = "查询所有积分流水列表")
    @PostMapping(value = "/integral")
    public Result list(@RequestBody Map searchMap) {
        return new Result(true, StatusCode.OK, "操作成功", integralFlowService.findList(searchMap));
    }

service

    public List<IntegralFlow> findList(Map searchMap) {
        Specification<IntegralFlow> specification = createSpecification(searchMap);
        return integralFlowDao.findAll(specification);
    }
 /**
     * 动态条件构建
     *
     * @param searchMap
     * @return
     */
    private Specification<IntegralFlow> createSpecification(Map searchMap) {

        return new Specification<IntegralFlow>() {

            @Override
            public Predicate toPredicate(Root<IntegralFlow> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
                List<Predicate> predicateList = new ArrayList<Predicate>();
                if (Objects.nonNull(searchMap.get("idcode"))) {
                    predicateList.add(cb.equal(root.get("idcode").as(Integer.class), searchMap.get("idcode")));
                }
                if (Objects.nonNull(searchMap.get("operatorIdcode"))) {
                    predicateList.add(cb.equal(root.get("operatorIdcode").as(String.class), searchMap.get("operatorIdcode")));
                }
                //角色
                if (Objects.nonNull(searchMap.get("roles"))) {
                    predicateList.add(cb.equal(root.get("roles").as(Integer.class), searchMap.get("roles")));
                }
                // 订单id
                if (Objects.nonNull(searchMap.get("orderId"))) {
                    predicateList.add(cb.like(root.get("orderId").as(String.class), "%" + searchMap.get("orderId") + "%"));
                }
                if (Objects.nonNull(searchMap.get("sourceType"))) {
                    predicateList.add(cb.equal(root.get("sourceType").as(Integer.class), searchMap.get("sourceType")));
                }
                //搜索订单状态 auditType(0:所有;1:未审核;2:已通过;3:未通过)
                Object obj = searchMap.get("auditType");
                if (Objects.nonNull(obj)) {
                    String auditType = obj.toString();
                    if (Objects.equals(auditType, "1")) {
                        predicateList.add(cb.isNull(root.get("audit").as(Boolean.class)));
                    }
                    if (Objects.equals(auditType, "2")) {
                        predicateList.add(cb.equal(root.get("audit").as(Boolean.class), true));
                    }
                    if (Objects.equals(auditType, "3")) {
                        predicateList.add(cb.equal(root.get("audit").as(Boolean.class), false));
                    }
                }
                return cb.and(predicateList.toArray(new Predicate[predicateList.size()]));
            }
        };

    }

分页查询controller

   @ApiOperation(value = "查询所有积分流水列表_分页+多条件查询")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "searchMap", value = "查询条件"),
            @ApiImplicitParam(name = "page", value = "页码"),
            @ApiImplicitParam(name = "size", value = "页大小")
    })
    @PostMapping(value = "/integral/search/{page}/{size}")
    public Result findSearch(@RequestBody Map searchMap, @PathVariable int page, @PathVariable int size) {
        log.debug("传参" + "_page:" + page + "_size:" + size);
        Page<IntegralFlow> pageList = integralFlowService.findSearch(searchMap, page, size);
        return new Result(true, StatusCode.OK, "操作成功", new PageResult<IntegralFlow>(pageList.getTotalElements(), pageList.getContent()));
    }

service

    public Page<IntegralFlow> findSearch(Map searchMap, int page, int size) {
        Specification<IntegralFlow> specification = createSpecification(searchMap);
        PageRequest pageRequest = PageRequest.of(page - 1, size);
        return integralFlowDao.findAll(specification, pageRequest);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值