优化外校老师宿舍、分组查询

This commit is contained in:
Qi 2025-06-08 21:06:05 +08:00
parent c90cc16c27
commit 0b27a5cb42
1 changed files with 36 additions and 1 deletions

View File

@ -121,8 +121,43 @@ public class CeesWaiTeacherServiceImpl extends ServiceImpl<CeesWaiTeacherMapper,
*/ */
@Override @Override
public IPage<CeesWaiTeacher> queryPageList(CeesWaiTeacher ceesWaiTeacher, Integer pageNo, Integer pageSize, HttpServletRequest req) { public IPage<CeesWaiTeacher> queryPageList(CeesWaiTeacher ceesWaiTeacher, Integer pageNo, Integer pageSize, HttpServletRequest req) {
// 1. 从请求中获取 dormitoryName 参数值
String dormitoryName = req.getParameter("dormitoryName");
String groupName = req.getParameter("groupName");
QueryWrapper<CeesWaiTeacher> queryWrapper = QueryGenerator.initQueryWrapper(ceesWaiTeacher, req.getParameterMap()); QueryWrapper<CeesWaiTeacher> queryWrapper = QueryGenerator.initQueryWrapper(ceesWaiTeacher, req.getParameterMap());
// 3. 处理 dormitoryName 模糊查询逻辑
if (StringUtils.isNotBlank(dormitoryName)) {
// 3.1 先查询匹配的宿舍ID列表
LambdaQueryWrapper<CeesDormitoryInfo> dormWrapper = Wrappers.lambdaQuery();
dormWrapper.like(CeesDormitoryInfo::getDormitory, dormitoryName);
List<String> dormitoryIds = ceesDormitoryInfoMapper.selectList(dormWrapper)
.stream()
.map(CeesDormitoryInfo::getId)
.collect(Collectors.toList());
// 3.2 添加宿舍ID查询条件
if (!dormitoryIds.isEmpty()) {
queryWrapper.in("dormitory_id", dormitoryIds);
} else {
// 无匹配宿舍时返回空结果
queryWrapper.isNull("dormitory_id"); // .eq("1", "0")
}
}
// 3. 处理 groupName 模糊查询
if (StringUtils.isNotBlank(groupName)) {
LambdaQueryWrapper<CeesGroup> groupWrapper = Wrappers.lambdaQuery();
groupWrapper.like(CeesGroup::getName, groupName);
List<String> groupIds = ceesGroupMapper.selectList(groupWrapper)
.stream()
.map(CeesGroup::getId)
.collect(Collectors.toList());
if (!groupIds.isEmpty()) {
queryWrapper.in("group_id", groupIds);
} else {
queryWrapper.isNull("group_id");
}
}
Page<CeesWaiTeacher> page = new Page<>(pageNo, pageSize); Page<CeesWaiTeacher> page = new Page<>(pageNo, pageSize);
IPage<CeesWaiTeacher> pageList = page(page, queryWrapper); IPage<CeesWaiTeacher> pageList = page(page, queryWrapper);