diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java index 0b10fc2a..4b3c3ee4 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java @@ -160,8 +160,9 @@ public class UserController { @GetMapping({"/list-all-simple", "/simple-list"}) @Operation(summary = "获取用户精简信息列表", description = "只包含被开启的用户,主要用于前端的下拉选项") - public CommonResult> getSimpleUserList(@RequestParam(required = false, defaultValue = "1") Integer userType) { - List list = userService.getUserListByStatus(userType, CommonStatusEnum.ENABLE.getStatus()); + public CommonResult> getSimpleUserList(@RequestParam(required = false, defaultValue = "1") Integer userType, + @RequestParam(required = false) Long deptId) { + List list = userService.getUserListByStatus(userType, deptId, CommonStatusEnum.ENABLE.getStatus()); // 拼接数据 Map deptMap = deptService.getDeptMap( convertList(list, AdminUserDO::getDeptId)); @@ -171,8 +172,9 @@ public class UserController { @GetMapping({"/list-all"}) @Operation(summary = "获取用户精简信息列表", description = "只包含被开启的用户,主要用于前端的下拉选项,无数据权限") @DataPermission(enable = false) - public CommonResult> getAllUserList(@RequestParam(required = false, defaultValue = "1") Integer userType) { - List list = userService.getUserListByStatus(userType, CommonStatusEnum.ENABLE.getStatus()); + public CommonResult> getAllUserList(@RequestParam(required = false, defaultValue = "1") Integer userType, + @RequestParam(required = false) Long deptId) { + List list = userService.getUserListByStatus(userType, deptId, CommonStatusEnum.ENABLE.getStatus()); // 拼接数据 Map deptMap = deptService.getDeptMap( convertList(list, AdminUserDO::getDeptId)); @@ -309,7 +311,7 @@ public class UserController { pageResult.getList().forEach(data -> { if (data.getBirthday().format(DateTimeFormatter.ofPattern("MM-dd")).equals(time)) { data.setStatus(1); - }else if (data.getBirthday().getMonthValue() == LocalDateTime.now().getMonthValue()){ + } else if (data.getBirthday().getMonthValue() == LocalDateTime.now().getMonthValue()) { data.setStatus(2); } }); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java index 10c9da4a..bb05abb8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java @@ -65,9 +65,10 @@ public interface AdminUserMapper extends BaseMapperX { return selectList(new LambdaQueryWrapperX().like(AdminUserDO::getNickname, nickname)); } - default List selectListByStatus(Integer userType, Integer status) { + default List selectListByStatus(Integer userType, List deptIds, Integer status) { return selectList(new LambdaQueryWrapperX() .eq(AdminUserDO::getStatus, status) + .inIfPresent(AdminUserDO::getDeptId, deptIds) .eqIfPresent(AdminUserDO::getUserType, userType)); } @@ -158,7 +159,7 @@ public interface AdminUserMapper extends BaseMapperX { if (Objects.nonNull(pageReqVO.getExpirationDate())) { queryWrapper.between("a.expiration_date", pageReqVO.getExpirationDate()[0], pageReqVO.getExpirationDate()[1]); } - queryWrapper.eq(Objects.nonNull(pageReqVO.getStatus()),"a.status", pageReqVO.getStatus()); + queryWrapper.eq(Objects.nonNull(pageReqVO.getStatus()), "a.status", pageReqVO.getStatus()); queryWrapper.groupBy(AdminUserDO::getId); queryWrapper.orderByAsc("a.status"); queryWrapper.orderByAsc(AdminUserDO::getId); @@ -186,8 +187,8 @@ public interface AdminUserMapper extends BaseMapperX { queryWrapper.eq(AdminUserDO::getUserType, 1); queryWrapper.likeIfPresent(AdminUserDO::getNickname, pageReqVO.getName()); queryWrapper.inIfPresent(AdminUserDO::getDeptId, deptIds); - if ( (pageReqVO.getName() == null && pageReqVO.getDeptId() == null) || pageReqVO.getMonth() != null) { - queryWrapper.eq("MONTH(t.birthday_day)",date.getMonthValue()); + if ((pageReqVO.getName() == null && pageReqVO.getDeptId() == null) || pageReqVO.getMonth() != null) { + queryWrapper.eq("MONTH(t.birthday_day)", date.getMonthValue()); queryWrapper.ge("DAY(t.birthday_day)", date.getDayOfMonth()); } queryWrapper.groupBy("t.id"); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java index daadfffb..f7c51bd1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java @@ -980,7 +980,11 @@ public class AttendanceServiceImpl implements AttendanceService { String first = CollectionUtil.getFirst(dateList); String last = CollectionUtil.getLast(dateList); //查询出数据 -- 时间周期 - 用户列表 - List list = attendancePunchRecordMapper.statistics(userList.stream().map(AdminUserDO::getId).collect(Collectors.toList()), dateList); + userIds = userList.stream().map(AdminUserDO::getId).collect(Collectors.toList()); + List list = new ArrayList<>(); + if (CollUtil.isNotEmpty(userIds)) { + list = attendancePunchRecordMapper.statistics(userIds, dateList); + } //获取用户列表 Map userMap = new HashMap<>(); if (CollectionUtil.isNotEmpty(userList)) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImpl.java index 78345181..e38d6867 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImpl.java @@ -123,7 +123,7 @@ public class NoticeServiceImpl implements NoticeService { //全员推送 case 0: //获得用户信息 - userDOs = userService.getUserListByStatus(null, CommonStatusEnum.ENABLE.getStatus()); + userDOs = userService.getUserListByStatus(null, null, CommonStatusEnum.ENABLE.getStatus()); break; //部门推送 case 1: diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java index 77065176..b328d9b6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java @@ -287,11 +287,12 @@ public interface AdminUserService { /** * 获得指定状态的用户们 * - * @param userType 用户类型 1:公司用户 2:工厂用户 + * @param userType 用户类型 1:公司用户 2:工厂用户 + * @param deptId * @param status * @return 用户们 */ - List getUserListByStatus(Integer userType, Integer status); + List getUserListByStatus(Integer userType, Long deptId, Integer status); /** * 判断密码是否匹配 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java index e1b01403..839ec89d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java @@ -675,8 +675,12 @@ public class AdminUserServiceImpl implements AdminUserService { } @Override - public List getUserListByStatus(Integer userType, Integer status) { - return userMapper.selectListByStatus(userType, status); + public List getUserListByStatus(Integer userType, Long deptId, Integer status) { + List deptIds = new ArrayList<>(); + if (deptId != null) { + deptIds = convertList(deptService.getChildDeptList(deptId), DeptDO::getId); + } + return userMapper.selectListByStatus(userType, deptIds, status); } @Override @@ -732,6 +736,9 @@ public class AdminUserServiceImpl implements AdminUserService { @Override public List getAllList(Integer status, Integer type, List userIds) { + if (CollUtil.isEmpty(userIds)){ + return Collections.emptyList(); + } return userMapper.selectList(new LambdaQueryWrapper() .eq(status != null, AdminUserDO::getStatus, status) .eq(type != null, AdminUserDO::getUserType, type) @@ -769,7 +776,7 @@ public class AdminUserServiceImpl implements AdminUserService { date = LocalDate.of(LocalDate.now().getYear(), pageReqVO.getMonth(), 1); } - return userMapper.selectUserPageByBirthday(pageReqVO, deptIds, date); + return userMapper.selectUserPageByBirthday(pageReqVO, deptIds, date); } @Override diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogStatisticsMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogStatisticsMapper.xml index 016f370c..ce5ee841 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogStatisticsMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogStatisticsMapper.xml @@ -170,7 +170,7 @@ - and c.nickname like concat('%', #{dto.nickName}, '%') + and a.nickname like concat('%', #{dto.nickName}, '%') and b.type = #{dto.type} diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java index 03de7e06..69f669cf 100644 --- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java +++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java @@ -708,7 +708,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { Integer status = CommonStatusEnum.DISABLE.getStatus(); // 调用 - List result = userService.getUserListByStatus(status, CommonStatusEnum.ENABLE.getStatus()); + List result = userService.getUserListByStatus(status, null, CommonStatusEnum.ENABLE.getStatus()); // 断言 assertEquals(1, result.size()); assertEquals(user, result.get(0));