实体类封装优化--模糊查询条件拼接

package com.futuredata.web.assess.po.query;

import java.util.List;

import cn.hutool.db.sql.Condition;
import cn.hutool.db.sql.SqlUtil;
import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class ModelQuery extends BaseQuery {

    /**
     * 案由Id
     */
    private String reasonId;

    /**
     * 查询的用户ID
     */
    private String userId;

    /**
     * 部门编码
     */
    private String departmentCode;

    /**
     * 模型状态
     */
    private Integer status;

    /**
     * 当前登录用户ID
     */
    private String loginUserId;

    /**
     * 部门编码集合
     */
    private List<String> departmentCodes;


    /**
     * 构建 案由Id 模糊匹配数据  %reasonId%
     */
    public String getReasonIdLike() {
        return SqlUtil.buildLikeValue(reasonId, Condition.LikeType.Contains, false);
    }

}

package com.futuredata.web.assess.po.query;

import com.google.common.base.MoreObjects;

import cn.hutool.db.sql.Condition;
import cn.hutool.db.sql.SqlUtil;
import lombok.Data;

import static org.apache.commons.lang.StringUtils.EMPTY;

@Data
public class BaseQuery {

    /**
     * 偏移量
     */
    private int offset;

    /**
     * 分页大小
     */
    private int limit;

    /**
     * 关键词
     */
    private String keyword;

    /**
     * 代码进行拼接 like 检索
     *
     * @return
     */
    public String getKeywordLike() {
        return SqlUtil.buildLikeValue(MoreObjects.firstNonNull(keyword, EMPTY), Condition.LikeType.Contains, false);
    }

    /**
     * 填充基础字段
     *
     * @param offset  偏移量
     * @param limit   分页大小
     * @param keyword 关键词
     */
    public void fill(int offset, int limit, String keyword) {
        this.keyword = keyword;
        this.limit = limit;
        this.offset = offset;
    }

    /**
     * 填充基本字段
     *
     * @param offset 偏移量
     * @param limit  分页大小
     */
    public void fill(int offset, int limit) {
        fill(offset, limit, null);
    }

}

调用

        final ModelQuery modelQuery = ModelQuery.builder().reasonId(reasonId).departmentCode(departmentCode)
                .userId(userId).status(status).loginUserId(loginUser.getId()).build();
        modelQuery.fill(offset, limit, keyword);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值