diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java index be648aea..4e7614b4 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java @@ -121,8 +121,43 @@ public class CeesWaiTeacherServiceImpl extends ServiceImpl queryPageList(CeesWaiTeacher ceesWaiTeacher, Integer pageNo, Integer pageSize, HttpServletRequest req) { - + // 1. 从请求中获取 dormitoryName 参数值 + String dormitoryName = req.getParameter("dormitoryName"); + String groupName = req.getParameter("groupName"); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(ceesWaiTeacher, req.getParameterMap()); + // 3. 处理 dormitoryName 模糊查询逻辑 + if (StringUtils.isNotBlank(dormitoryName)) { + // 3.1 先查询匹配的宿舍ID列表 + LambdaQueryWrapper dormWrapper = Wrappers.lambdaQuery(); + dormWrapper.like(CeesDormitoryInfo::getDormitory, dormitoryName); + List 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 groupWrapper = Wrappers.lambdaQuery(); + groupWrapper.like(CeesGroup::getName, groupName); + List 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 page = new Page<>(pageNo, pageSize); IPage pageList = page(page, queryWrapper);