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);