我搜索 head 是 一厂的某个设备模糊搜索(head是下拉 选择厂)。
这时候我把二厂 三厂 类似名子也搜索出来了。 所以说我们这个模糊查询也要改一下。
要同时搜索`headId`和`q`,并且确保`headId`条件始终生效,您可以将这两个条件分别设置,
并使用`and()`逻辑运算符连接它们。这样可以确保同时满足`headId`和`q`条件的记录被正确筛选出来。
以下是您可以修改的代码示例:
```java
@Override
public Page<Shebei> list(Map<String, Object> map, Integer page, Integer limit) {
Page<Shebei> pageBean = new Page<Shebei>(page, limit);
LambdaQueryWrapper<Shebei> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.orderByAsc(Shebei::getOrderNo);
if (map.get("headId") != null) {
queryWrapper.eq(Shebei::getHeadId, map.get("headId"));
}
if (map.get("q") != null) {
queryWrapper.and(wrapper -> wrapper
.like(Shebei::getName, map.get("q"))
.or()
.like(Shebei::getPos, map.get("q"))
.or()
.like(Shebei::getXinghao, map.get("q"))
.or()
.like(Shebei::getWei, map.get("q"))
);
}
// 添加其他条件的代码...
Page<Shebei> page2 = shebeiMapper.selectPage(pageBean, queryWrapper);
return page2;
}
```
在上述代码中,我们使用`and()`逻辑运算符将`headId`和`q`条件连接在一起,确保这两个条件同时生效。
这样可以保证在搜索时同时考虑`headId`和`q`条件,且`headId`条件不会被覆盖。您可以根据需要继续添加其他条件。模糊查询不能使用like 要使用and
@Override
public Page<Shebei> list(Map<String, Object> map, Integer page, Integer limit) {
Page<Shebei> pageBean = new Page<Shebei>(page, limit);
LambdaQueryWrapper<Shebei> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.orderByAsc(Shebei::getOrderNo);
if( map.get("headId")!=null){
queryWrapper.eq(Shebei::getHeadId,map.get("headId"));
}
if( map.get("recordHeadId")!=null){
queryWrapper.eq(Shebei::getRecordHeadId,map.get("recordHeadId"));
}
if( map.get("name")!=null){
queryWrapper.eq(Shebei::getName,map.get("name"));
}
if( map.get("xinghao")!=null){
queryWrapper.eq(Shebei::getXinghao,map.get("xinghao"));
}
if( map.get("pos")!=null){
queryWrapper.eq(Shebei::getPos,map.get("pos"));
}
if( map.get("wei")!=null){
queryWrapper.eq(Shebei::getWei,map.get("wei"));
}
if( map.get("type")!=null){
queryWrapper.eq(Shebei::getType,map.get("type"));
}
if( map.get("state")!=null){
queryWrapper.eq(Shebei::getState,map.get("state"));
}
if( map.get("q")!=null){
queryWrapper.like(Shebei::getName,map.get("q"))
.or()
.like(Shebei::getPos,map.get("q"))
.or()
.like(Shebei::getXinghao,map.get("q"))
.or()
.like(Shebei::getWei,map.get("q"))
;
}
//参数1分页 参数2分页条件。
Page<Shebei> page2 = shebeiMapper.selectPage(pageBean, queryWrapper);
//总记录total
return page2;
}站长微信:xiaomao0055
站长QQ:14496453