From 28fddc43322909975168567e3af8a6b3e7239e56 Mon Sep 17 00:00:00 2001 From: zhuxinru Date: Tue, 3 Feb 2026 10:25:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spdm/controller/SpdmUserController.java | 2 +- .../spdm/feign/RemoteTenantServiceFeign.java | 3 + .../spdm/feign/RemoteUserServiceFeign.java | 3 + .../tenant/controller/SysStaffController.java | 7 +++ .../tenant/service/SysStaffService.java | 2 + .../service/impl/SysStaffServiceImpl.java | 62 +++++++++++++++++++ .../user/feign/HoneycomUserServiceFeign.java | 3 + .../user/controller/SysUserController.java | 7 +++ .../honeycom/user/service/SysUserService.java | 2 + .../user/service/impl/SysUserServiceImpl.java | 14 +++++ 10 files changed, 104 insertions(+), 1 deletion(-) diff --git a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/controller/SpdmUserController.java b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/controller/SpdmUserController.java index c13d9c7..4e4e20e 100644 --- a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/controller/SpdmUserController.java +++ b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/controller/SpdmUserController.java @@ -80,7 +80,7 @@ public class SpdmUserController { @Operation(summary = "条件查询用户列表") @PostMapping(value = "/listUser") public ResponseR listUser(@RequestBody UserPageQueryDto userPageQueryDto) { - R> sysStaffPageR = remoteTenantServiceFeign.listStaffForPage( + R> sysStaffPageR = remoteTenantServiceFeign.listStaffForPage2( StaffPageQueryDto.builder() .tenantId(userPageQueryDto.getTenantId()) .nickname(userPageQueryDto.getNickname()) diff --git a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteTenantServiceFeign.java b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteTenantServiceFeign.java index ecfaa41..291a84a 100644 --- a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteTenantServiceFeign.java +++ b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteTenantServiceFeign.java @@ -47,6 +47,9 @@ public interface RemoteTenantServiceFeign { @GetMapping("/sysStaff/page") R> listStaffForPage(@SpringQueryMap StaffPageQueryDto pageQueryDto, @RequestHeader(CommonConstants.TENANT_ID) String tenantIdHeader); + @GetMapping("/sysStaff/pageForSpdm") + R> listStaffForPage2(@SpringQueryMap StaffPageQueryDto pageQueryDto, @RequestHeader(CommonConstants.TENANT_ID) String tenantIdHeader); + @GetMapping("/sysStaff/findStaffListByUserId") R> findStaffListByUserId(@RequestParam Long userId, @RequestHeader(SecurityConstants.FROM) String from); diff --git a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteUserServiceFeign.java b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteUserServiceFeign.java index fa10aa6..5724441 100644 --- a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteUserServiceFeign.java +++ b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteUserServiceFeign.java @@ -8,6 +8,7 @@ import com.honeycombis.honeycom.common.core.util.R; import com.honeycombis.honeycom.common.feign.config.FeignConfig; import com.honeycombis.honeycom.spdm.dto.UserPageQueryDto; import com.honeycombis.honeycom.spdm.dto.UserPageResultDto; +import com.honeycombis.honeycom.tenant.vo.SysUserOnTenantVO; import com.honeycombis.honeycom.user.vo.SysUserInfoVO; import com.honeycombis.honeycom.user.vo.SysUserVO; import org.springframework.cloud.openfeign.FeignClient; @@ -32,4 +33,6 @@ public interface RemoteUserServiceFeign { @GetMapping("/user/getUserListByIds") R> getUserListByIds(@RequestParam("userIds") List userIds, @RequestHeader(SecurityConstants.FROM) String from, @RequestHeader(CommonConstants.TENANT_ID) String tenantId); + @PostMapping("/user/findStaffUserByIdsForSpdm") + R> findStaffUserByIdsForSpdm(@RequestBody List userIds); } diff --git a/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/controller/SysStaffController.java b/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/controller/SysStaffController.java index d962c8a..0046d0e 100644 --- a/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/controller/SysStaffController.java +++ b/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/controller/SysStaffController.java @@ -49,6 +49,13 @@ public class SysStaffController { return R.ok(sysStaffService.page(page, sysStaffQueryDTO)); } + @Inner(false) + @Operation(summary = "分页查询" , description = "分页查询" ) + @GetMapping("/pageForSpdm" ) + public R> pageForSpdm(@ParameterObject Page page, @ParameterObject SysStaffQueryDTO sysStaffQueryDTO) { + return R.ok(sysStaffService.pageForSpdm(page, sysStaffQueryDTO)); + } + @Operation(summary = "通过部门Id查询部门下(包括子部门)的员工列表" , description = "通过部门Id查询部门下(包括子部门)的员工列表" ) @GetMapping("/retrieve/dept" ) public R> findByDeptId(@RequestParam(required = false) Long deptId) { diff --git a/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/service/SysStaffService.java b/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/service/SysStaffService.java index d78f19d..65fcd5d 100644 --- a/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/service/SysStaffService.java +++ b/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/service/SysStaffService.java @@ -35,6 +35,8 @@ public interface SysStaffService extends IService { IPage page(Page page, SysStaffQueryDTO sysStaffQueryDTO); + IPage pageForSpdm(Page page, SysStaffQueryDTO sysStaffQueryDTO); + SysStaffDetailVO getStaffById(Long staffId); void updateStaffById(SysStaffUpdateDTO sysStaffUpdateDTO); diff --git a/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/service/impl/SysStaffServiceImpl.java b/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/service/impl/SysStaffServiceImpl.java index 4824eec..a8cccd3 100644 --- a/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/service/impl/SysStaffServiceImpl.java +++ b/honeycom-tenant/honeycom-tenant-biz/src/main/java/com/honeycombis/honeycom/tenant/service/impl/SysStaffServiceImpl.java @@ -448,6 +448,55 @@ public class SysStaffServiceImpl extends ServiceImpl pageForSpdm(Page page, SysStaffQueryDTO sysStaffQueryDTO) { + if (Objects.isNull(page)) { + throw new HoneycomException(ErrorType.PARAM_ERROR.getCode()); + } + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (!Objects.isNull(sysStaffQueryDTO)) { + if (StringUtils.isNotBlank(sysStaffQueryDTO.getStaffCode())) { + queryWrapper.like(SysStaffEntity::getStaffCode, sysStaffQueryDTO.getStaffCode()); + } + if (StringUtils.isNotBlank(sysStaffQueryDTO.getEmail())) { + queryWrapper.like(SysStaffEntity::getEmail, sysStaffQueryDTO.getEmail()); + } + if (ObjectUtil.isNotEmpty(sysStaffQueryDTO.getUserId())) { + queryWrapper.eq(SysStaffEntity::getUserId, sysStaffQueryDTO.getUserId()); + } + if (StringUtils.isNotBlank(sysStaffQueryDTO.getNickname())) { + R> userIdListByNickNameLike = honeycomUserServiceFeign.getUserIdListByNickNameLike(sysStaffQueryDTO.getNickname(), SecurityConstants.FROM_IN);; + if (CollectionUtils.isNotEmpty(userIdListByNickNameLike.getData())) { + queryWrapper.in(SysStaffEntity::getUserId, userIdListByNickNameLike.getData()); + } else { + queryWrapper.in(SysStaffEntity::getUserId, -1L); + } + } + if (!Objects.isNull(sysStaffQueryDTO.getTenantId())) { + queryWrapper.eq(SysStaffEntity::getTenantId, sysStaffQueryDTO.getTenantId()); + } else { + queryWrapper.eq(SysStaffEntity::getTenantId, TenantContextHolder.getTenantId()); + } + } + + Page pageData = this.page(page, queryWrapper); + if (Objects.isNull(pageData)) { + throw new HoneycomException(UserErrorType.QUERY_USER_PAGE_ERROR.getCode()); + } + + IPage result = pageData.convert(SysStaffDetailVO::new); + List sysUserList = result.getRecords(); + List userIds = sysUserList.stream().map(SysStaffDetailVO::getUserId).distinct().toList(); + Map userMap = this.getMapStaffUserInfoForSpdm(userIds); + for (SysStaffDetailVO record : sysUserList) { + if (userMap.containsKey(record.getUserId())) { + record.setUserInfo(userMap.get(record.getUserId())); + } + } + return result; + } + private void setSysUserDetailInfo(List sysUserList) { if (CollectionUtils.isNotEmpty(sysUserList)) { List staffIds = sysUserList.stream().map(SysStaffDetailVO::getStaffId).distinct().toList(); @@ -488,6 +537,19 @@ public class SysStaffServiceImpl extends ServiceImpl key2)); } + private Map getMapStaffUserInfoForSpdm(List userIds) { + if (CollectionUtils.isEmpty(userIds)) { + throw new HoneycomException(ErrorType.PARAM_ERROR.getCode()); + } + + R> userListR = honeycomUserServiceFeign.findStaffUserByIdsForSpdm(userIds, SecurityConstants.FROM_IN); + if (Objects.isNull(userListR) || !userListR.isSuccess() || CollectionUtils.isEmpty(userListR.getData())) { + throw new HoneycomException(TenantErrorType.USER_INFO_QUERY_FAILED.getCode()); + } + + return userListR.getData().stream().collect(Collectors.toMap(SysUserOnTenantVO::getUserId, Function.identity(), (key1, key2) -> key2)); + } + @Override public SysStaffDetailVO getStaffById(Long staffId) { if (Objects.isNull(staffId)) { diff --git a/honeycom-user/honeycom-user-api/src/main/java/com/honeycombis/honeycom/user/feign/HoneycomUserServiceFeign.java b/honeycom-user/honeycom-user-api/src/main/java/com/honeycombis/honeycom/user/feign/HoneycomUserServiceFeign.java index bd7b75a..d6c4105 100644 --- a/honeycom-user/honeycom-user-api/src/main/java/com/honeycombis/honeycom/user/feign/HoneycomUserServiceFeign.java +++ b/honeycom-user/honeycom-user-api/src/main/java/com/honeycombis/honeycom/user/feign/HoneycomUserServiceFeign.java @@ -45,6 +45,9 @@ public interface HoneycomUserServiceFeign { @GetMapping("/user/findStaffUserByIds") R> findStaffUserByIds(@RequestParam("userIds") List userIds, @RequestHeader(SecurityConstants.FROM) String from); + @PostMapping("/user/findStaffUserByIdsForSpdm") + R> findStaffUserByIdsForSpdm(@RequestBody List userIds, @RequestHeader(SecurityConstants.FROM) String from); + @GetMapping("/user/getUserIdListByNickNameLike") R> getUserIdListByNickNameLike(@RequestParam("nickName") String nickName, @RequestHeader(SecurityConstants.FROM) String from); diff --git a/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/controller/SysUserController.java b/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/controller/SysUserController.java index 56162c6..7037a3b 100644 --- a/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/controller/SysUserController.java +++ b/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/controller/SysUserController.java @@ -197,6 +197,13 @@ public class SysUserController { return R.ok(sysUserService.findStaffUserByIds(userIds)); } + @Inner(value = false) + @Operation(summary = "根据用户Id集合获取用户信息(返回StaffUser)" , description = "根据用户Id集合获取用户信息(返回StaffUser)" ) + @PostMapping("/findStaffUserByIdsForSpdm") + public R> findStaffUserByIdsForSpdm(@RequestBody List userIds) { + return R.ok(sysUserService.findStaffUserByIdsForSpdm(userIds)); + } + /** * 获取当前登录用户全部信息 * diff --git a/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/service/SysUserService.java b/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/service/SysUserService.java index 8e610a0..dd0d28d 100644 --- a/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/service/SysUserService.java +++ b/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/service/SysUserService.java @@ -50,6 +50,8 @@ public interface SysUserService extends IService { List findStaffUserByIds(List ids); + List findStaffUserByIdsForSpdm(List ids); + List findAll(); SysUserVO findByUserId(Long userId); diff --git a/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/service/impl/SysUserServiceImpl.java b/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/service/impl/SysUserServiceImpl.java index 69162c8..3c8957a 100644 --- a/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/service/impl/SysUserServiceImpl.java +++ b/honeycom-user/honeycom-user-biz/src/main/java/com/honeycombis/honeycom/user/service/impl/SysUserServiceImpl.java @@ -452,6 +452,20 @@ public class SysUserServiceImpl extends ServiceImpl findStaffUserByIdsForSpdm(List ids) { + List dataList = this.findByIds(ids); + List result = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(dataList)) { + for (SysUserVO sysUser : dataList) { + SysUserOnTenantVO sysStaffUser = new SysUserOnTenantVO(); + BeanUtils.copyProperties(sysUser, sysStaffUser); + result.add(sysStaffUser); + } + } + return result; + } + @Override public List findAll() { List userInfoList = this.list(new QueryWrapper<>());