wrapper 为包装类,QueryWrapper查询包装类
public List<Map<String, Object>> getWrapper(Map<String, Object> param) {
QueryWrapper<Project> wrapper = new QueryWrapper<>();//新建查询包装类
String key = "name";
String where = StringKit.of(param.get(key));
if (!where.isEmpty()) {
wrapper.like(key, where); //模糊匹配key(name)和where(param.get(key))
}
key = "department_id";
where = StringKit.of(param.get(key)); // 未加 if 判断 传参中是否包含该 key, 则此 key 为必传项,不传或传空,均直接返回 null
if (where.isEmpty()) {
return null;
}
wrapper.eq(key, where);//查询 project 中 key(department_id)对应的值与 where 相等的 project
key = "language";//key为language
if (param.containsKey(key)) { //判断传参中是否包含该 key ,包含才有后续判断,不包含则不带此 key 的筛选条件
where = StringKit.of(param.get(key));//where为key对应的value
if (where.isEmpty()) {
return null;
}
String[] lanArray = where.split(",");//where为逗号分割的字符串,转化为字符串数组
List<Object> lanList = new ArrayList<>();
for (String lan : lanArray) {
if (StringKit.notEmpty(lan)) {
lanList.add(lan);
}
}
if (lanList.isEmpty()) {
return null;
}
wrapper.in(key, lanList);//查询 Project 中 key(language)对应的值在 lanList 当中的 project
List<Map<String,Object>> pros = wrapper == null ? new ArrayList<>() : getInfo((mapper.selectList(wrapper)));
return pros;
}
//mapper.selectList(wrapper) 为获取 按 wrapper 条件查找到的 project 的列表
//mapper.selectCount(wrapper) 为获取 按 wrapper 条件查找到的 project 的数量