以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
在Java Spring Boot项目中使用QueryWrapper
进行多条件查询是一种常见的需求。QueryWrapper
提供了丰富的API来构建复杂的查询条件。以下是如何扩展你的代码以满足多条件查询的示例:
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
// 假设 TempService 和 TempVO 已经定义好
public R pageQuery(@RequestBody TempRequestVO requestVO) {
QueryWrapper<Temp> query = new QueryWrapper<>();
// 首先检查时间数组是否非空且时间字段不为空
if (requestVO.getArry() != null && requestVO.getSelectTime() != null) {
// 假设 selectTime 是一个包含两个元素的数组,分别代表时间范围的开始和结束
query.between("date_time", requestVO.getSelectTime()[0], requestVO.getSelectTime()[1]);
}
// 检查其他条件,例如某个字段是否非空
if (StringUtils.isNotBlank(requestVO.getSomeField())) {
query.eq("some_field", requestVO.getSomeField());
}
// 可以继续添加更多的条件,例如 like 条件
if (StringUtils.isNotBlank(requestVO.getAnotherField())) {
query.like("another_field", requestVO.getAnotherField());
}
// 构建分页查询
Page<Temp> page = new Page<>(requestVO.getPageNum(), requestVO.getPageSize());
page = tempService.page(page, query);
return R.ok(page);
}
在上面的代码中,我们首先创建了一个QueryWrapper
实例,并根据条件添加了时间范围查询。然后,我们检查了其他可能的条件,例如某个字段是否非空,并相应地添加了查询条件。使用eq
方法添加了等于条件,使用like
方法添加了模糊匹配条件。你可以根据自己的需求继续添加更多的条件。
最后,我们使用Page
对象进行分页查询,并将查询结果封装在R.ok
响应中返回。
请注意,你需要根据你的实体类和字段调整字段名称和查询逻辑。此外,确保你的TempRequestVO
类中有正确的属性和getter方法,以便能够正确地从请求体中获取参数。