条件查询list,分页条件查询

本文深入探讨了使用条件查询和集合转换在处理大量客户数据时的高效方法,包括等值匹配、模糊搜索及定制化数据展示,适用于企业级应用的数据管理和分析场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

List<CustomerPoJo> list =
    list(
        query ->
            query
                .getConditions()
                .eq(AbstractEntityPoJo::getCompanyId, companyId)
                .eq(CustomerPoJo::getIsDelete, false)
                .eq(CustomerPoJo::getId, customerId),
        CustomerPoJo.class);
    Page<CustomerResponse> customerResponsePage =
        CollectionUtils.toPage(
            page(
                queryColumn ->
                    queryColumn
                        .getConditions()
                        .eq(AbstractEntityPoJo::getCompanyId, companyId)
                        .eq(CustomerPoJo::getIsCaller, false)
                        .in(finalVipIds.size() > 0, CustomerPoJo::getVipId, finalVipIds)
                        .and(
                            Objects.nonNull(keywords) && StringUtils.isNotEmpty(keywords)
                                ? Conditions.of(queryColumn)
                                    .like(CustomerPoJo::getName, keywords)
                                    .or(
                                        Conditions.of(queryColumn)
                                            .like(CustomerPoJo::getWxNickname, keywords))
                                : null)
                        .and(
                            Objects.nonNull(tel) && StringUtils.isNotEmpty(tel)
                                ? Conditions.of(queryColumn).like(CustomerPoJo::getTel, tel)
                                : null),
                page,
                size,
                SortColumn.builder().add(SortColumn.desc("update_time")).build(),
                CustomerPoJo.class),
            customer -> {
              if (customer.getVipId() != 0) {
                CustomerVipPoJo customerVipPoJo = customerVipService.getById(customer.getVipId());
                if (ObjectUtils.isNotNull(customerVipPoJo)) {
                  customer.setVipName(customerVipPoJo.getName());
                } else {
                  customer.setVipName("");
                }
              } else {
                customer.setVipName("");
              }
              return CustomerResponse.of(customer);
            },
            null);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值