diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesGroupController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesGroupController.java index 8527832c..ab3c4013 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesGroupController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesGroupController.java @@ -52,10 +52,12 @@ public class CeesGroupController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(ceesGroup, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage pageList = ceesGroupService.page(page, queryWrapper); - return Result.OK(pageList); + + return Result.OK(ceesGroupService.queryPageList(ceesGroup,pageNo,pageSize,req)); +// QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(ceesGroup, req.getParameterMap()); +// Page page = new Page(pageNo, pageSize); +// IPage pageList = ceesGroupService.page(page, queryWrapper); +// return Result.OK(pageList); } /** diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesUserController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesUserController.java index fc4e741e..1c9bbd1e 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesUserController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesUserController.java @@ -2,20 +2,24 @@ package org.jeecg.modules.contoller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.entity.CeesDormitoryInfo; import org.jeecg.modules.entity.CeesUser; import org.jeecg.modules.entity.CeesWaiTeacher; import org.jeecg.modules.entity.dto.CreateAccountDto; import org.jeecg.modules.enums.IdentityEnum; import org.jeecg.modules.enums.MajorEnum; +import org.jeecg.modules.mapper.CeesDormitoryInfoMapper; import org.jeecg.modules.mapper.CeesUserMapper; import org.jeecg.modules.service.ICeesLocalTeacherService; import org.jeecg.modules.service.ICeesUserService; @@ -27,9 +31,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -53,6 +55,8 @@ public class CeesUserController extends JeecgController delete(@RequestParam(name = "id", required = true) String id) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(CeesUser::getId, id); - CeesUser ceesUser = ceesUserMapper.selectOne(queryWrapper); - ceesUserService.removeById(id); - //学生 - if(ceesUser.getIdentity() == 2){ - String data = studentService.removeByUserId(ceesUser.getUserId()); - if(data == "true"){ - return Result.OK("本校老师数据删除成功!"); - }else if(data == "null"){ - return Result.ok("数据删除成功!"); - }else { - return Result.error("本校老师数据删除失败!"); - } - }else if(ceesUser.getIdentity() == 3){ - String data = ceesLocalTeacherService.removeByUserId(ceesUser.getUserId()); - if(data == "true"){ - return Result.OK("本校老师数据删除成功!"); - }else if(data == "null"){ - return Result.ok("数据删除成功!"); - }else { - return Result.error("本校老师数据删除失败!"); - } - }else if(ceesUser.getIdentity() == 4){ - String data = ceesWaiTeacherService.removeByUserId(ceesUser.getUserId()); - if(data == "true"){ - return Result.OK("本校老师数据删除成功!"); - }else if(data == "null"){ - return Result.ok("数据删除成功!"); - }else { - return Result.error("本校老师数据删除失败!"); - } - }else{ - return Result.error("数据删除错误!!"); + // 1. 查询要删除的用户 + CeesUser ceesUser = ceesUserService.getById(id); + if (ceesUser == null) { + return Result.error("用户不存在"); } + // 2. 根据身份类型处理不同的删除逻辑 + switch (ceesUser.getIdentity()) { + case 2: // 学生 + String studentResult = studentService.removeByUserId(ceesUser.getUserId()); + if ("true".equals(studentResult)) { + ceesUserService.removeById(id); + return Result.OK("学生数据删除成功!"); + } else if ("null".equals(studentResult)) { + ceesUserService.removeById(id); + return Result.OK("数据删除成功!"); + } else { + return Result.error("学生数据删除失败!"); + } + + case 3: // 本校老师 + String teacherResult = ceesLocalTeacherService.removeByUserId(ceesUser.getUserId()); + if ("true".equals(teacherResult)) { + ceesUserService.removeById(id); + return Result.OK("本校老师数据删除成功!"); + } else if ("null".equals(teacherResult)) { + ceesUserService.removeById(id); + return Result.OK("数据删除成功!"); + } else { + return Result.error("本校老师数据删除失败!"); + } + + case 4: // 外校老师 + // 先查询外校老师信息 + CeesWaiTeacher waiTeacher = ceesWaiTeacherService.getByUserId(ceesUser.getUserId()); + + // 删除外校老师记录 + String waiTeacherResult = ceesWaiTeacherService.removeByUserId(ceesUser.getUserId()); + + if ("true".equals(waiTeacherResult) || "null".equals(waiTeacherResult)) { + // 如果有宿舍关联,更新宿舍人数 + if (waiTeacher != null && StringUtils.isNotBlank(waiTeacher.getDormitoryId())) { + LambdaUpdateWrapper dormitoryUpdate = new LambdaUpdateWrapper<>(); + dormitoryUpdate.eq(CeesDormitoryInfo::getId, waiTeacher.getDormitoryId()) + .setSql("dormitory_num = dormitory_num + 1") // 人数减1 + .setSql("dormitory_status = 0") // 设置为未满状态 + .set(CeesDormitoryInfo::getUpdateTime, new Date()); + ceesDormitoryInfoMapper.update(null, dormitoryUpdate); + } + + ceesUserService.removeById(id); + return "true".equals(waiTeacherResult) ? + Result.OK("外校老师数据删除成功!") : + Result.OK("数据删除成功!"); + } else { + return Result.error("外校老师数据删除失败!"); + } + + default: + return Result.error("未知用户身份类型!"); + } } /** @@ -191,25 +220,33 @@ public class CeesUserController extends JeecgController idList = Arrays.asList(ids.split(",")); // 2. 批量查询用户信息 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(CeesUser::getId, idList); - List users = ceesUserMapper.selectList(queryWrapper); + List users = ceesUserService.listByIds(idList); + if (users.isEmpty()) { + return Result.error("未找到要删除的用户"); + } // 3. 按身份类型分组 Map> groupedUsers = users.stream() .collect(Collectors.groupingBy(CeesUser::getIdentity)); - // 4. 处理不同身份类型的删除 try { - // 4.1 先删除关联数据 - processIdentitySpecificDeletions(groupedUsers); - // 4.2 再批量删除用户主表数据 + // 4. 处理不同身份类型的删除 + Map dormitoryCountMap = processIdentitySpecificDeletions(groupedUsers); + // 5. 更新宿舍人数 + updateDormitoryCounts(dormitoryCountMap); + // 6. 批量删除用户主表数据 ceesUserService.removeByIds(idList); return Result.OK("批量删除成功,共删除 " + idList.size() + " 条记录"); } catch (Exception e) { + log.error("批量删除用户失败", e); return Result.error("批量删除过程中出错: " + e.getMessage()); } } - private void processIdentitySpecificDeletions(Map> groupedUsers) { + /** + * 处理不同身份类型的删除逻辑 + * @return 需要更新的宿舍ID和对应减少的人数Map + */ + private Map processIdentitySpecificDeletions(Map> groupedUsers) { + Map dormitoryCountMap = new HashMap<>(); // 处理学生数据删除 if (groupedUsers.containsKey(2)) { List studentUserIds = groupedUsers.get(2).stream() @@ -229,8 +266,35 @@ public class CeesUserController extends JeecgController waiTeacherUserIds = groupedUsers.get(4).stream() .map(CeesUser::getUserId) .collect(Collectors.toList()); + // 查询外校老师的宿舍信息 + List waiTeachers = ceesWaiTeacherService.listByUserIds(waiTeacherUserIds); + // 按宿舍ID分组统计需要减少的人数 + dormitoryCountMap = waiTeachers.stream() + .filter(t -> StringUtils.isNotBlank(t.getDormitoryId())) + .collect(Collectors.groupingBy( + CeesWaiTeacher::getDormitoryId, + Collectors.counting() + )); + // 删除外校老师记录 ceesWaiTeacherService.removeBatchByUserIds(waiTeacherUserIds); } + return dormitoryCountMap; + } + + /** + * 批量更新宿舍人数 + */ + private void updateDormitoryCounts(Map dormitoryCountMap) { + if (dormitoryCountMap.isEmpty()) { + return; + } + dormitoryCountMap.forEach((dormitoryId, count) -> { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(CeesDormitoryInfo::getId, dormitoryId) + .setSql("dormitory_num = dormitory_num + " + count) + .set(CeesDormitoryInfo::getUpdateTime, new Date()); + ceesDormitoryInfoMapper.update(null, updateWrapper); + }); } /** * 通过id查询 diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java index 0b577655..521dd716 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java @@ -2,16 +2,20 @@ package org.jeecg.modules.contoller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.entity.CeesDormitoryInfo; import org.jeecg.modules.entity.CeesUser; import org.jeecg.modules.entity.CeesWaiTeacher; import org.jeecg.modules.entity.dto.CreateAccountDto; +import org.jeecg.modules.mapper.CeesDormitoryInfoMapper; import org.jeecg.modules.mapper.CeesUserMapper; import org.jeecg.modules.mapper.CeesWaiTeacherMapper; import org.jeecg.modules.service.ICeesUserService; @@ -25,6 +29,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -50,6 +55,8 @@ public class CeesWaiTeacherController extends JeecgController queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(CeesWaiTeacher::getId,id); CeesWaiTeacher ceesWaiTeacher = ceesWaiTeacherMapper.selectOne(queryWrapper); - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.eq(CeesUser::getUserId,ceesWaiTeacher.getUserId()); - CeesUser ceesUser = ceesUserMapper.selectOne(query); - ceesUserService.removeById(ceesUser.getId()); + // 2. 如果有宿舍关联,处理宿舍人数减1 + if (StringUtils.isNotBlank(ceesWaiTeacher.getDormitoryId())) { + LambdaUpdateWrapper dormitoryUpdate = new LambdaUpdateWrapper<>(); + dormitoryUpdate.eq(CeesDormitoryInfo::getId, ceesWaiTeacher.getDormitoryId()) + .setSql("dormitory_num = dormitory_num + 1") // 人数减1 + .setSql("dormitory_status = 0") // 设置为未满状态 + .set(CeesDormitoryInfo::getUpdateTime, new Date()); + ceesDormitoryInfoMapper.update(null, dormitoryUpdate); + } + // 3. 删除关联的用户信息 + if (StringUtils.isNotBlank(ceesWaiTeacher.getUserId())) { + LambdaQueryWrapper userQuery = new LambdaQueryWrapper<>(); + userQuery.eq(CeesUser::getUserId, ceesWaiTeacher.getUserId()); + CeesUser ceesUser = ceesUserMapper.selectOne(userQuery); + if (ceesUser != null) { + ceesUserService.removeById(ceesUser.getId()); + } + } ceesWaiTeacherService.removeById(id); return Result.OK("删除成功!"); } @@ -182,14 +203,35 @@ public class CeesWaiTeacherController extends JeecgController deleteBatch(@RequestParam(name="ids",required=true) String ids) { // 1. 将逗号分隔的ID字符串转换为列表 List idList = Arrays.asList(ids.split(",")); - // 3. 查询这些教师对应的用户ID + + // 2. 查询这些教师信息 LambdaQueryWrapper teacherQuery = new LambdaQueryWrapper<>(); teacherQuery.in(CeesWaiTeacher::getId, idList); List teachers = ceesWaiTeacherMapper.selectList(teacherQuery); + // 3. 处理宿舍人数更新(按宿舍ID分组统计需要减少的人数) + Map dormitoryCountMap = teachers.stream() + .filter(t -> StringUtils.isNotBlank(t.getDormitoryId())) + .collect(Collectors.groupingBy( + CeesWaiTeacher::getDormitoryId, + Collectors.counting() + )); + + // 批量更新宿舍人数 + dormitoryCountMap.forEach((dormitoryId, count) -> { + LambdaUpdateWrapper dormitoryUpdate = new LambdaUpdateWrapper<>(); + dormitoryUpdate.eq(CeesDormitoryInfo::getId, dormitoryId) + .setSql("dormitory_num = dormitory_num + " + count) // 人数减少对应数量 + .setSql("dormitory_status = 0") // 设置为未满状态 + .set(CeesDormitoryInfo::getUpdateTime, new Date()); + ceesDormitoryInfoMapper.update(null, dormitoryUpdate); + }); + // 4. 提取用户ID列表 List userIds = teachers.stream() .map(CeesWaiTeacher::getUserId) + .filter(StringUtils::isNotBlank) + .distinct() .collect(Collectors.toList()); // 5. 批量删除关联的用户记录 @@ -198,8 +240,10 @@ public class CeesWaiTeacherController extends JeecgController { ArrayList getRowUser(String id); void updateGroupUser(UpdateGroupUserDto updateGroupUserDto); + + IPage queryPageList(CeesGroup ceesGroup, Integer pageNo, Integer pageSize, HttpServletRequest req); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesWaiTeacherService.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesWaiTeacherService.java index bff96450..f87fc269 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesWaiTeacherService.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesWaiTeacherService.java @@ -41,4 +41,8 @@ public interface ICeesWaiTeacherService extends IService { String removeByUserId(String userId); boolean removeBatchByUserIds(List waiTeacherUserIds); + + CeesWaiTeacher getByUserId(String userId); + + List listByUserIds(List waiTeacherUserIds); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java index 594f2213..11f54677 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java @@ -13,8 +13,10 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.entity.CeesDormitoryInfo; +import org.jeecg.modules.entity.CeesWaiTeacher; import org.jeecg.modules.enums.MajorEnum; import org.jeecg.modules.mapper.CeesDormitoryInfoMapper; +import org.jeecg.modules.mapper.CeesWaiTeacherMapper; import org.jeecg.modules.service.ICeesDormitoryInfoService; import org.jeecg.modules.system.entity.SysRole; import org.jeecg.modules.system.entity.SysUserRole; @@ -25,7 +27,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Collections; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; @@ -44,6 +48,8 @@ public class CeesDormitoryInfoServiceImpl extends ServiceImpl selectBySex(String sex, Integer majorId) { @@ -102,8 +108,31 @@ public class CeesDormitoryInfoServiceImpl extends ServiceImpl { e.setMajorIdDescription(MajorEnum.describe(e.getMajorId())); // 设置学科描述 + // 根据宿舍ID查询住宿人员名称 + List residentNames = getResidentNamesByDormitoryId(e.getId()); + e.setDormitorydata(String.join(",", residentNames)); // 将人员名称列表转为逗号分隔的字符串 return e; }); return pageList; } + + /** + * 根据宿舍ID查询住宿人员名称 + * @param dormitoryId 宿舍ID + * @return 人员名称列表 + */ + private List getResidentNamesByDormitoryId(String dormitoryId) { + // 直接查询外校老师表中住在该宿舍的老师 + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(CeesWaiTeacher::getDormitoryId, dormitoryId) + .eq(CeesWaiTeacher::getDormitoryStatus, 1) // 1表示已住宿 + .select(CeesWaiTeacher::getUserName); // 只查询用户名字段 + List residents = ceesWaiTeacherMapper.selectList(query); + // 提取用户名列表 + return residents.stream() + .map(CeesWaiTeacher::getUserName) + .filter(Objects::nonNull) // 过滤掉null值 + .collect(Collectors.toList()); + } + } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesGroupServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesGroupServiceImpl.java index 897f34d4..857265f7 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesGroupServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesGroupServiceImpl.java @@ -1,14 +1,28 @@ package org.jeecg.modules.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.entity.CeesDormitoryInfo; import org.jeecg.modules.entity.CeesGroup; import org.jeecg.modules.entity.dto.UpdateGroupUserDto; import org.jeecg.modules.entity.vo.CeesUserGroupVo; +import org.jeecg.modules.enums.MajorEnum; import org.jeecg.modules.mapper.CeesGroupMapper; import org.jeecg.modules.service.ICeesGroupService; +import org.jeecg.modules.system.entity.SysRole; +import org.jeecg.modules.system.entity.SysUserRole; +import org.jeecg.modules.system.mapper.SysRoleMapper; +import org.jeecg.modules.system.mapper.SysUserRoleMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; /** @@ -22,6 +36,11 @@ public class CeesGroupServiceImpl extends ServiceImpl queryPageList(CeesGroup ceesGroup, Integer pageNo, Integer pageSize, HttpServletRequest req) { + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String userId = user.getId(); + + // 查询当前用户的角色 + LambdaQueryWrapper queryUserRole = new LambdaQueryWrapper<>(); + queryUserRole.eq(SysUserRole::getUserId, userId); + SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole); + String roleId = sysUserRole.getRoleId(); + + // 获取对应角色数据 + LambdaQueryWrapper queryRole = new LambdaQueryWrapper<>(); + queryRole.eq(SysRole::getId, roleId); + SysRole sysRole = sysRoleMapper.selectOne(queryRole); + String roleCode = sysRole.getRoleCode(); + + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(ceesGroup, req.getParameterMap()); + if (roleCode.length() == 1) { + queryWrapper.eq("major_id", roleCode); + } + + Page page = new Page<>(pageNo, pageSize); + IPage pageList = page(page, queryWrapper); + return pageList; + } } 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 80bdfd26..a624abd9 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 @@ -36,10 +36,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -378,4 +375,21 @@ public class CeesWaiTeacherServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>(); + query.eq(CeesWaiTeacher::getUserId, userId); + return getOne(query); + } + + @Override + public List listByUserIds(List userIds) { + if (userIds == null || userIds.isEmpty()) { + return Collections.emptyList(); + } + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.in(CeesWaiTeacher::getUserId, userIds); + return list(query); + } }