diff --git a/backend/framework/sdk/src/main/java/io/metersphere/sdk/mapper/BaseUserMapper.java b/backend/framework/sdk/src/main/java/io/metersphere/sdk/mapper/BaseUserMapper.java index 5c8c3128b3..0d34bca07b 100644 --- a/backend/framework/sdk/src/main/java/io/metersphere/sdk/mapper/BaseUserMapper.java +++ b/backend/framework/sdk/src/main/java/io/metersphere/sdk/mapper/BaseUserMapper.java @@ -33,5 +33,7 @@ public interface BaseUserMapper { List getExcludeSelectOption(); - List getSelectOptionByIds(List ids); + List getSelectOptionByIdsWithDeleted(List ids); + + List getSelectOptionWithDeleted(); } diff --git a/backend/framework/sdk/src/main/java/io/metersphere/sdk/mapper/BaseUserMapper.xml b/backend/framework/sdk/src/main/java/io/metersphere/sdk/mapper/BaseUserMapper.xml index 2ec9b2f71b..98c1b990b7 100644 --- a/backend/framework/sdk/src/main/java/io/metersphere/sdk/mapper/BaseUserMapper.xml +++ b/backend/framework/sdk/src/main/java/io/metersphere/sdk/mapper/BaseUserMapper.xml @@ -27,6 +27,7 @@ @@ -95,8 +96,9 @@ - SELECT id, name FROM user WHERE id IN @@ -105,4 +107,8 @@ #{id} + \ No newline at end of file diff --git a/backend/framework/sdk/src/main/java/io/metersphere/sdk/service/BaseUserService.java b/backend/framework/sdk/src/main/java/io/metersphere/sdk/service/BaseUserService.java index d3d2249e53..bfa243e7c5 100644 --- a/backend/framework/sdk/src/main/java/io/metersphere/sdk/service/BaseUserService.java +++ b/backend/framework/sdk/src/main/java/io/metersphere/sdk/service/BaseUserService.java @@ -429,12 +429,16 @@ public class BaseUserService { return baseUserMapper.getExcludeSelectOption(); } - public List getSelectOptionByIds(List ids) { - return baseUserMapper.getSelectOptionByIds(ids); + public List getSelectOptionWithDeleted() { + return baseUserMapper.getSelectOptionWithDeleted(); + } + + public List getSelectOptionByIdsWithDeleted(List ids) { + return baseUserMapper.getSelectOptionByIdsWithDeleted(ids); } public Map getUserNameMap() { - List excludeSelectOption = getExcludeSelectOption(); + List excludeSelectOption = getSelectOptionWithDeleted(); Map nameMap = new HashMap<>(); excludeSelectOption.forEach(option -> nameMap.put(option.getId(), option.getName())); return nameMap; @@ -450,7 +454,7 @@ public class BaseUserService { if (CollectionUtils.isEmpty(userIds)) { return Collections.emptyMap(); } - return getSelectOptionByIds(userIds) + return getSelectOptionByIdsWithDeleted(userIds) .stream() .collect(Collectors.toMap(OptionDTO::getId, OptionDTO::getName)); } diff --git a/backend/services/system-setting/src/test/java/io/metersphere/system/controller/GlobalUserRoleRelationControllerTests.java b/backend/services/system-setting/src/test/java/io/metersphere/system/controller/GlobalUserRoleRelationControllerTests.java index da4a578e63..fa228a743f 100644 --- a/backend/services/system-setting/src/test/java/io/metersphere/system/controller/GlobalUserRoleRelationControllerTests.java +++ b/backend/services/system-setting/src/test/java/io/metersphere/system/controller/GlobalUserRoleRelationControllerTests.java @@ -12,10 +12,12 @@ import io.metersphere.sdk.service.BaseUserService; import io.metersphere.sdk.util.Pager; import io.metersphere.system.controller.param.GlobalUserRoleRelationQueryRequestDefinition; import io.metersphere.system.controller.param.GlobalUserRoleRelationUpdateRequestDefinition; +import io.metersphere.system.domain.UserExample; import io.metersphere.system.domain.UserRole; import io.metersphere.system.domain.UserRoleRelation; import io.metersphere.system.domain.UserRoleRelationExample; import io.metersphere.system.dto.request.GlobalUserRoleRelationQueryRequest; +import io.metersphere.system.mapper.UserMapper; import io.metersphere.system.mapper.UserRoleMapper; import io.metersphere.system.mapper.UserRoleRelationMapper; import jakarta.annotation.Resource; @@ -51,6 +53,8 @@ class GlobalUserRoleRelationControllerTests extends BaseTest { @Resource private UserRoleMapper userRoleMapper; @Resource + private UserMapper userMapper; + @Resource private BaseUserService baseUserService; @Resource private BaseUserRoleRelationMapper baseUserRoleRelationMapper; @@ -156,6 +160,13 @@ class GlobalUserRoleRelationControllerTests extends BaseTest { .collect(Collectors.toSet()); // 校验数量 Assertions.assertTrue(options.size() == excludeSelectOption.size()); + + UserExample example = new UserExample(); + example.createCriteria().andIdIn(excludeUserIds.stream().toList()) + .andDeletedEqualTo(true); + // 校验获取的用户是不是都是未删除的用户 + Assertions.assertTrue(CollectionUtils.isEmpty(userMapper.selectByExample(example))); + options.forEach(item -> { // 校验 exclude 字段 Assertions.assertTrue(item.getExclude() == excludeUserIds.contains(item.getId()));