feat(系统设置): 优化用户创建的逻辑
This commit is contained in:
parent
37098287c8
commit
2bb7b7a8af
|
@ -322,6 +322,8 @@ operation_history.type.length_range=变更记录操作类型长度必须在{min}
|
|||
operation_history.source_id.not_blank=变更记录资源 ID 不能为空
|
||||
operation_history.version_id.not_blank=变更记录版本 ID 不能为空
|
||||
operation_history.version_id.length_range=变更记录版本 ID 长度必须在{min}和{max}之间
|
||||
user_open_source_max=系统用户数超额({num}人),继续添加用户可申请企业版适用
|
||||
user_dept_max=系统用户数超额({num}人),继续添加用户可申请企业版扩容
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -325,4 +325,6 @@ operation_history.version_id.not_blank=Operating history version id cannot be em
|
|||
operation_history.version_id.length_range=Operating history version id length must be between {min} and {max}
|
||||
permission.organization_task_center.name=Task center
|
||||
permission.organization_task_center.stop=Stop task
|
||||
user_open_source_max=There are too many users({num}),please apply for the enterprise version to use
|
||||
user_dept_max=There are too many users({num}),please apply for enterprise version expansion
|
||||
|
||||
|
|
|
@ -327,3 +327,5 @@ operation_history.version_id.length_range=变更记录版本 ID 长度必须在{
|
|||
|
||||
permission.organization_task_center.name=任务中心
|
||||
permission.organization_task_center.stop=停止
|
||||
user_open_source_max=系统用户数超额({0}人),继续添加用户可申请企业版适用
|
||||
user_dept_max=系统用户数超额({0}人),继续添加用户可申请企业版扩容
|
||||
|
|
|
@ -325,4 +325,6 @@ operation_history.version_id.not_blank=變更記錄版本 ID 不能為空
|
|||
operation_history.version_id.length_range=變更記錄版本 ID 長度必須在{min}和{max}之間
|
||||
|
||||
permission.organization_task_center.name=任務中心
|
||||
permission.organization_task_center.stop=停止
|
||||
permission.organization_task_center.stop=停止
|
||||
user_open_source_max=系統用戶數超額({num}人),繼續添加用戶可申請企業版適用
|
||||
user_dept_max=系統用戶數超額({num}人),繼續添加用戶可申請企業版擴容
|
|
@ -9,7 +9,7 @@ import io.metersphere.api.service.definition.ApiDefinitionScheduleService;
|
|||
import io.metersphere.sdk.util.BeanUtils;
|
||||
import io.metersphere.sdk.util.CommonBeanFactory;
|
||||
import io.metersphere.system.schedule.BaseScheduleJob;
|
||||
import io.metersphere.system.service.UserService;
|
||||
import io.metersphere.system.service.NormalUserService;
|
||||
import org.quartz.JobDataMap;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobKey;
|
||||
|
@ -18,12 +18,12 @@ import org.quartz.TriggerKey;
|
|||
public class SwaggerUrlImportJob extends BaseScheduleJob {
|
||||
private ApiDefinitionImportUtilService apiDefinitionImportUtilService;
|
||||
private ApiDefinitionScheduleService apiDefinitionScheduleService;
|
||||
private UserService userService;
|
||||
private NormalUserService normalUserService;
|
||||
|
||||
public SwaggerUrlImportJob() {
|
||||
apiDefinitionImportUtilService = CommonBeanFactory.getBean(ApiDefinitionImportUtilService.class);
|
||||
apiDefinitionScheduleService = CommonBeanFactory.getBean(ApiDefinitionScheduleService.class);
|
||||
userService = CommonBeanFactory.getBean(UserService.class);
|
||||
normalUserService = CommonBeanFactory.getBean(NormalUserService.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -10,7 +10,7 @@ import io.metersphere.system.log.service.OperationLogService;
|
|||
import io.metersphere.system.log.vo.OperationLogResponse;
|
||||
import io.metersphere.system.log.vo.ProOperationLogRequest;
|
||||
import io.metersphere.system.log.vo.SystemOperationLogRequest;
|
||||
import io.metersphere.system.service.UserService;
|
||||
import io.metersphere.system.service.NormalUserService;
|
||||
import io.metersphere.system.utils.PageUtils;
|
||||
import io.metersphere.system.utils.Pager;
|
||||
import io.metersphere.system.utils.SessionUtils;
|
||||
|
@ -37,7 +37,7 @@ import java.util.List;
|
|||
public class ProjectLogController {
|
||||
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
private NormalUserService normalUserService;
|
||||
|
||||
@Autowired
|
||||
private OperationLogService operationLogService;
|
||||
|
@ -48,7 +48,7 @@ public class ProjectLogController {
|
|||
public List<User> getUserList(@PathVariable(value = "projectId") String projectId,
|
||||
@Schema(description = "查询关键字,根据邮箱和用户名查询")
|
||||
@RequestParam(value = "keyword", required = false) String keyword) {
|
||||
return userService.getUserListByOrgId(StringUtils.defaultIfBlank(projectId, SessionUtils.getCurrentProjectId()), keyword);
|
||||
return normalUserService.getUserListByOrgId(StringUtils.defaultIfBlank(projectId, SessionUtils.getCurrentProjectId()), keyword);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -4,17 +4,17 @@ package io.metersphere.system.controller;
|
|||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import io.metersphere.sdk.constants.PermissionConstants;
|
||||
import io.metersphere.system.log.service.OperationLogService;
|
||||
import io.metersphere.system.log.vo.SystemOperationLogRequest;
|
||||
import io.metersphere.system.log.vo.OperationLogResponse;
|
||||
import io.metersphere.system.utils.PageUtils;
|
||||
import io.metersphere.system.utils.Pager;
|
||||
import io.metersphere.system.domain.User;
|
||||
import io.metersphere.system.dto.OrganizationProjectOptionsDTO;
|
||||
import io.metersphere.system.dto.response.OrganizationProjectOptionsResponse;
|
||||
import io.metersphere.system.log.service.OperationLogService;
|
||||
import io.metersphere.system.log.vo.OperationLogResponse;
|
||||
import io.metersphere.system.log.vo.SystemOperationLogRequest;
|
||||
import io.metersphere.system.service.NormalUserService;
|
||||
import io.metersphere.system.service.OrganizationService;
|
||||
import io.metersphere.system.service.SystemProjectService;
|
||||
import io.metersphere.system.service.UserService;
|
||||
import io.metersphere.system.utils.PageUtils;
|
||||
import io.metersphere.system.utils.Pager;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
@ -41,7 +41,7 @@ public class OperationLogController {
|
|||
private OperationLogService operationLogService;
|
||||
|
||||
@Resource
|
||||
private UserService userService;
|
||||
private NormalUserService normalUserService;
|
||||
|
||||
|
||||
@GetMapping("/get/options")
|
||||
|
@ -77,7 +77,7 @@ public class OperationLogController {
|
|||
@RequiresPermissions(PermissionConstants.SYSTEM_LOG_READ)
|
||||
public List<User> getUserList(@Schema(description = "查询关键字,根据邮箱和用户名查询")
|
||||
@RequestParam(value = "keyword", required = false) String keyword) {
|
||||
List<User> userList = userService.getUserList(keyword);
|
||||
List<User> userList = normalUserService.getUserList(keyword);
|
||||
return userList;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,8 +12,8 @@ import io.metersphere.system.log.service.OperationLogService;
|
|||
import io.metersphere.system.log.vo.OperationLogResponse;
|
||||
import io.metersphere.system.log.vo.OrgOperationLogRequest;
|
||||
import io.metersphere.system.log.vo.SystemOperationLogRequest;
|
||||
import io.metersphere.system.service.NormalUserService;
|
||||
import io.metersphere.system.service.SystemProjectService;
|
||||
import io.metersphere.system.service.UserService;
|
||||
import io.metersphere.system.utils.PageUtils;
|
||||
import io.metersphere.system.utils.Pager;
|
||||
import io.metersphere.system.utils.SessionUtils;
|
||||
|
@ -45,7 +45,7 @@ public class OrganizationLogController {
|
|||
private OperationLogService operationLogService;
|
||||
|
||||
@Resource
|
||||
private UserService userService;
|
||||
private NormalUserService normalUserService;
|
||||
|
||||
|
||||
@GetMapping("/get/options/{organizationId}")
|
||||
|
@ -67,7 +67,7 @@ public class OrganizationLogController {
|
|||
public List<User> getLogUserList(@PathVariable(value = "organizationId") String organizationId,
|
||||
@Schema(description = "查询关键字,根据邮箱和用户名查询")
|
||||
@RequestParam(value = "keyword", required = false) String keyword) {
|
||||
return userService.getUserListByOrgId(organizationId, keyword);
|
||||
return normalUserService.getUserListByOrgId(organizationId, keyword);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@ import io.metersphere.system.dto.request.user.PersonalUpdateRequest;
|
|||
import io.metersphere.system.dto.user.PersonalDTO;
|
||||
import io.metersphere.system.log.annotation.Log;
|
||||
import io.metersphere.system.log.constants.OperationLogType;
|
||||
import io.metersphere.system.service.NormalUserService;
|
||||
import io.metersphere.system.service.UserLogService;
|
||||
import io.metersphere.system.service.UserService;
|
||||
import io.metersphere.system.utils.SessionUtils;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
@ -23,13 +23,13 @@ public class
|
|||
PersonalCenterController {
|
||||
|
||||
@Resource
|
||||
private UserService userService;
|
||||
private NormalUserService normalUserService;
|
||||
|
||||
@GetMapping("/get/{id}")
|
||||
@Operation(summary = "个人中心-获取信息")
|
||||
public PersonalDTO getInformation(@PathVariable String id) {
|
||||
this.checkPermission(id);
|
||||
return userService.getPersonalById(id);
|
||||
return normalUserService.getPersonalById(id);
|
||||
}
|
||||
|
||||
@PostMapping("/update-info")
|
||||
|
@ -37,7 +37,7 @@ PersonalCenterController {
|
|||
@Log(type = OperationLogType.UPDATE, expression = "#msClass.updateAccountLog(#request)", msClass = UserLogService.class)
|
||||
public boolean updateUser(@Validated @RequestBody PersonalUpdateRequest request) {
|
||||
this.checkPermission(request.getId());
|
||||
return userService.updateAccount(request, SessionUtils.getUserId());
|
||||
return normalUserService.updateAccount(request, SessionUtils.getUserId());
|
||||
}
|
||||
|
||||
@PostMapping("/update-password")
|
||||
|
@ -45,7 +45,7 @@ PersonalCenterController {
|
|||
@Log(type = OperationLogType.UPDATE, expression = "#msClass.updatePasswordLog(#request)", msClass = UserLogService.class)
|
||||
public String updateUser(@Validated @RequestBody PersonalUpdatePasswordRequest request) {
|
||||
this.checkPermission(request.getId());
|
||||
if (userService.updatePassword(request)) {
|
||||
if (normalUserService.updatePassword(request)) {
|
||||
SessionUtils.kickOutUser(SessionUtils.getUser().getId());
|
||||
}
|
||||
return "OK";
|
||||
|
|
|
@ -11,10 +11,10 @@ import io.metersphere.system.dto.sdk.OptionDTO;
|
|||
import io.metersphere.system.dto.user.UserExtendDTO;
|
||||
import io.metersphere.system.log.annotation.Log;
|
||||
import io.metersphere.system.log.constants.OperationLogType;
|
||||
import io.metersphere.system.service.NormalUserService;
|
||||
import io.metersphere.system.service.OrganizationService;
|
||||
import io.metersphere.system.service.SystemOrganizationLogService;
|
||||
import io.metersphere.system.service.SystemProjectService;
|
||||
import io.metersphere.system.service.UserService;
|
||||
import io.metersphere.system.utils.PageUtils;
|
||||
import io.metersphere.system.utils.Pager;
|
||||
import io.metersphere.system.utils.SessionUtils;
|
||||
|
@ -43,7 +43,7 @@ import java.util.Map;
|
|||
public class SystemOrganizationController {
|
||||
|
||||
@Resource
|
||||
private UserService userService;
|
||||
private NormalUserService normalUserService;
|
||||
@Resource
|
||||
private SystemProjectService systemProjectService;
|
||||
@Resource
|
||||
|
@ -182,6 +182,6 @@ public class SystemOrganizationController {
|
|||
public List<UserExtendDTO> getMemberOption(@PathVariable String sourceId,
|
||||
@Schema(description = "查询关键字,根据邮箱和用户名查询")
|
||||
@RequestParam(value = "keyword", required = false) String keyword) {
|
||||
return userService.getMemberOption(sourceId, keyword);
|
||||
return normalUserService.getMemberOption(sourceId, keyword);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,9 +15,9 @@ import io.metersphere.system.dto.user.UserExtendDTO;
|
|||
import io.metersphere.system.log.annotation.Log;
|
||||
import io.metersphere.system.log.constants.OperationLogType;
|
||||
import io.metersphere.system.security.CheckOwner;
|
||||
import io.metersphere.system.service.NormalUserService;
|
||||
import io.metersphere.system.service.SystemProjectLogService;
|
||||
import io.metersphere.system.service.SystemProjectService;
|
||||
import io.metersphere.system.service.UserService;
|
||||
import io.metersphere.system.utils.PageUtils;
|
||||
import io.metersphere.system.utils.Pager;
|
||||
import io.metersphere.system.utils.SessionUtils;
|
||||
|
@ -43,7 +43,7 @@ public class SystemProjectController {
|
|||
@Resource
|
||||
private SystemProjectService systemProjectService;
|
||||
@Resource
|
||||
private UserService userService;
|
||||
private NormalUserService normalUserService;
|
||||
|
||||
@PostMapping("/add")
|
||||
@RequiresPermissions(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ_ADD)
|
||||
|
@ -156,7 +156,7 @@ public class SystemProjectController {
|
|||
@RequiresPermissions(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ)
|
||||
public List<User> getUserList(@Schema(description = "查询关键字,根据邮箱和用户名查询")
|
||||
@RequestParam(value = "keyword", required = false) String keyword) {
|
||||
return userService.getUserList(keyword);
|
||||
return normalUserService.getUserList(keyword);
|
||||
}
|
||||
|
||||
@PostMapping("/pool-options")
|
||||
|
|
|
@ -49,7 +49,7 @@ import java.util.Map;
|
|||
@RequestMapping("/system/user")
|
||||
public class UserController {
|
||||
@Resource
|
||||
private UserService userService;
|
||||
private NormalUserService normalUserService;
|
||||
@Resource
|
||||
private UserToolService userToolService;
|
||||
@Resource
|
||||
|
@ -67,14 +67,14 @@ public class UserController {
|
|||
@Operation(summary = "通过email或id查找用户")
|
||||
@RequiresPermissions(PermissionConstants.SYSTEM_USER_READ)
|
||||
public UserDTO getUser(@PathVariable String keyword) {
|
||||
return userService.getUserDTOByKeyword(keyword);
|
||||
return normalUserService.getUserDTOByKeyword(keyword);
|
||||
}
|
||||
|
||||
@PostMapping("/add")
|
||||
@Operation(summary = "系统设置-系统-用户-添加用户")
|
||||
@RequiresPermissions(PermissionConstants.SYSTEM_USER_ADD)
|
||||
public UserBatchCreateResponse addUser(@Validated({Created.class}) @RequestBody UserBatchCreateRequest userCreateDTO) {
|
||||
return userService.addUser(userCreateDTO, UserSource.LOCAL.name(), SessionUtils.getUserId());
|
||||
return normalUserService.addUser(userCreateDTO, UserSource.LOCAL.name(), SessionUtils.getUserId());
|
||||
}
|
||||
|
||||
@PostMapping("/update")
|
||||
|
@ -82,7 +82,7 @@ public class UserController {
|
|||
@RequiresPermissions(PermissionConstants.SYSTEM_USER_UPDATE)
|
||||
@Log(type = OperationLogType.UPDATE, expression = "#msClass.updateLog(#request)", msClass = UserLogService.class)
|
||||
public UserEditRequest updateUser(@Validated({Updated.class}) @RequestBody UserEditRequest request) {
|
||||
return userService.updateUser(request, SessionUtils.getUserId());
|
||||
return normalUserService.updateUser(request, SessionUtils.getUserId());
|
||||
}
|
||||
|
||||
@PostMapping("/page")
|
||||
|
@ -91,7 +91,7 @@ public class UserController {
|
|||
public Pager<List<UserTableResponse>> list(@Validated @RequestBody BasePageRequest request) {
|
||||
Page<Object> page = PageHelper.startPage(request.getCurrent(), request.getPageSize(),
|
||||
StringUtils.isNotBlank(request.getSortString("id")) ? request.getSortString("id") : "create_time desc,id desc");
|
||||
return PageUtils.setPageInfo(page, userService.list(request));
|
||||
return PageUtils.setPageInfo(page, normalUserService.list(request));
|
||||
}
|
||||
|
||||
@PostMapping("/update/enable")
|
||||
|
@ -99,14 +99,14 @@ public class UserController {
|
|||
@RequiresPermissions(PermissionConstants.SYSTEM_USER_UPDATE)
|
||||
@Log(type = OperationLogType.UPDATE, expression = "#msClass.batchUpdateEnableLog(#request)", msClass = UserLogService.class)
|
||||
public TableBatchProcessResponse updateUserEnable(@Validated @RequestBody UserChangeEnableRequest request) {
|
||||
return userService.updateUserEnable(request, SessionUtils.getUserId(), SessionUtils.getUser().getName());
|
||||
return normalUserService.updateUserEnable(request, SessionUtils.getUserId(), SessionUtils.getUser().getName());
|
||||
}
|
||||
|
||||
@PostMapping(value = "/import", consumes = {"multipart/form-data"})
|
||||
@Operation(summary = "系统设置-系统-用户-导入用户")
|
||||
@RequiresPermissions(PermissionConstants.SYSTEM_USER_IMPORT)
|
||||
public UserImportResponse importUser(@RequestPart(value = "file", required = false) MultipartFile excelFile) {
|
||||
return userService.importByExcel(excelFile, UserSource.LOCAL.name(), SessionUtils.getUserId());
|
||||
return normalUserService.importByExcel(excelFile, UserSource.LOCAL.name(), SessionUtils.getUserId());
|
||||
}
|
||||
|
||||
@PostMapping("/delete")
|
||||
|
@ -114,7 +114,7 @@ public class UserController {
|
|||
@Log(type = OperationLogType.DELETE, expression = "#msClass.deleteLog(#request)", msClass = UserLogService.class)
|
||||
@RequiresPermissions(PermissionConstants.SYSTEM_USER_DELETE)
|
||||
public TableBatchProcessResponse deleteUser(@Validated @RequestBody TableBatchProcessDTO request) {
|
||||
return userService.deleteUser(request, SessionUtils.getUserId(), SessionUtils.getUser().getName());
|
||||
return normalUserService.deleteUser(request, SessionUtils.getUserId(), SessionUtils.getUser().getName());
|
||||
}
|
||||
|
||||
@PostMapping("/reset/password")
|
||||
|
@ -122,7 +122,7 @@ public class UserController {
|
|||
@RequiresPermissions(PermissionConstants.SYSTEM_USER_UPDATE)
|
||||
@Log(type = OperationLogType.UPDATE, expression = "#msClass.resetPasswordLog(#request)", msClass = UserLogService.class)
|
||||
public TableBatchProcessResponse resetPassword(@Validated @RequestBody TableBatchProcessDTO request) {
|
||||
return userService.resetPassword(request, SessionUtils.getUserId());
|
||||
return normalUserService.resetPassword(request, SessionUtils.getUserId());
|
||||
}
|
||||
|
||||
@GetMapping("/get/global/system/role")
|
||||
|
@ -186,18 +186,18 @@ public class UserController {
|
|||
@Operation(summary = "系统设置-系统-用户-邀请用户注册")
|
||||
@RequiresPermissions(PermissionConstants.SYSTEM_USER_INVITE)
|
||||
public UserInviteResponse invite(@Validated @RequestBody UserInviteRequest request) {
|
||||
return userService.saveInviteRecord(request, SessionUtils.getUser());
|
||||
return normalUserService.saveInviteRecord(request, SessionUtils.getUser());
|
||||
}
|
||||
|
||||
@GetMapping("/check-invite/{inviteId}")
|
||||
@Operation(summary = "系统设置-系统-用户-用户接受注册邀请并创建账户")
|
||||
public void checkInviteNum(@PathVariable String inviteId) {
|
||||
userService.getUserInviteAndCheckEfficient(inviteId);
|
||||
normalUserService.getUserInviteAndCheckEfficient(inviteId);
|
||||
}
|
||||
|
||||
@PostMapping("/register-by-invite")
|
||||
@Operation(summary = "系统设置-系统-用户-用户接受注册邀请并创建账户")
|
||||
public String registerByInvite(@Validated @RequestBody UserRegisterRequest request) throws Exception {
|
||||
return userService.registerByInvite(request);
|
||||
return normalUserService.registerByInvite(request);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,9 @@ import io.metersphere.sdk.exception.IResultCode;
|
|||
*/
|
||||
public enum SystemResultCode implements IResultCode {
|
||||
|
||||
USER_TOO_MANY(101511, "User too many"),
|
||||
DEPT_USER_TOO_MANY(101512, "Department user too many"),
|
||||
|
||||
/**
|
||||
* 调用获取全局用户组接口,如果操作的是非全局的用户组,会返回该响应码
|
||||
*/
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
package io.metersphere.system.service;
|
||||
|
||||
import io.metersphere.sdk.constants.UserRoleScope;
|
||||
import io.metersphere.system.dto.table.TableBatchProcessResponse;
|
||||
import io.metersphere.system.dto.user.UserExcludeOptionDTO;
|
||||
import io.metersphere.system.dto.user.UserRoleRelationUserDTO;
|
||||
import io.metersphere.system.dto.sdk.request.GlobalUserRoleRelationUpdateRequest;
|
||||
import io.metersphere.sdk.exception.MSException;
|
||||
import io.metersphere.system.uid.IDGenerator;
|
||||
import io.metersphere.sdk.util.BeanUtils;
|
||||
import io.metersphere.sdk.util.Translator;
|
||||
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.ExtUserRoleRelationMapper;
|
||||
import io.metersphere.system.dto.request.user.UserRoleBatchRelationRequest;
|
||||
import io.metersphere.system.dto.sdk.request.GlobalUserRoleRelationUpdateRequest;
|
||||
import io.metersphere.system.dto.table.TableBatchProcessResponse;
|
||||
import io.metersphere.system.dto.user.UserExcludeOptionDTO;
|
||||
import io.metersphere.system.dto.user.UserRoleRelationUserDTO;
|
||||
import io.metersphere.system.mapper.ExtUserRoleRelationMapper;
|
||||
import io.metersphere.system.uid.IDGenerator;
|
||||
import io.metersphere.validation.groups.Created;
|
||||
import io.metersphere.validation.groups.Updated;
|
||||
import jakarta.annotation.Resource;
|
||||
|
@ -41,7 +41,7 @@ public class GlobalUserRoleRelationService extends BaseUserRoleRelationService {
|
|||
@Resource
|
||||
private GlobalUserRoleService globalUserRoleService;
|
||||
@Resource
|
||||
private UserService userService;
|
||||
private NormalUserService normalUserService;
|
||||
@Resource
|
||||
private UserToolService userToolService;
|
||||
@Resource
|
||||
|
@ -71,7 +71,7 @@ public class GlobalUserRoleRelationService extends BaseUserRoleRelationService {
|
|||
this.checkGlobalSystemUserRoleLegality(
|
||||
Collections.singletonList(request.getRoleId()));
|
||||
//检查用户的合法性
|
||||
userService.checkUserLegality(request.getUserIds());
|
||||
normalUserService.checkUserLegality(request.getUserIds());
|
||||
List<UserRoleRelation> userRoleRelations = new ArrayList<>();
|
||||
request.getUserIds().forEach(userId -> {
|
||||
UserRoleRelation userRoleRelation = new UserRoleRelation();
|
||||
|
@ -100,7 +100,7 @@ public class GlobalUserRoleRelationService extends BaseUserRoleRelationService {
|
|||
//获取本次处理的用户
|
||||
request.setSelectIds(userToolService.getBatchUserIds(request));
|
||||
//检查用户的合法性
|
||||
userService.checkUserLegality(request.getSelectIds());
|
||||
normalUserService.checkUserLegality(request.getSelectIds());
|
||||
List<UserRoleRelation> savedUserRoleRelation = this.selectByUserIdAndRuleId(request.getSelectIds(), request.getRoleIds());
|
||||
//过滤已经存储过的用户关系
|
||||
Map<String, List<String>> userRoleIdMap = savedUserRoleRelation.stream()
|
||||
|
|
|
@ -2,9 +2,9 @@ package io.metersphere.system.service;
|
|||
|
||||
import com.alibaba.excel.EasyExcelFactory;
|
||||
import io.metersphere.sdk.constants.ParamConstants;
|
||||
import io.metersphere.sdk.constants.UserSource;
|
||||
import io.metersphere.sdk.exception.MSException;
|
||||
import io.metersphere.sdk.util.*;
|
||||
import io.metersphere.system.controller.result.SystemResultCode;
|
||||
import io.metersphere.system.domain.*;
|
||||
import io.metersphere.system.dto.excel.UserExcel;
|
||||
import io.metersphere.system.dto.excel.UserExcelRowDTO;
|
||||
|
@ -32,7 +32,6 @@ import io.metersphere.system.dto.user.response.UserTableResponse;
|
|||
import io.metersphere.system.log.service.OperationLogService;
|
||||
import io.metersphere.system.mapper.*;
|
||||
import io.metersphere.system.notice.sender.impl.MailNoticeSender;
|
||||
import io.metersphere.system.uid.IDGenerator;
|
||||
import io.metersphere.system.utils.SessionUtils;
|
||||
import io.metersphere.system.utils.UserImportEventListener;
|
||||
import jakarta.annotation.Resource;
|
||||
|
@ -63,7 +62,7 @@ import java.util.stream.Collectors;
|
|||
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class UserService {
|
||||
public class NormalUserService {
|
||||
@Resource
|
||||
private BaseUserMapper baseUserMapper;
|
||||
@Resource
|
||||
|
@ -131,29 +130,17 @@ public class UserService {
|
|||
}
|
||||
|
||||
private List<UserCreateInfo> saveUserAndRole(UserBatchCreateRequest userCreateDTO, String source, String operator, String requestPath) {
|
||||
List<UserCreateInfo> insertList = new ArrayList<>();
|
||||
long createTime = System.currentTimeMillis();
|
||||
List<User> saveUserList = new ArrayList<>();
|
||||
//添加用户
|
||||
for (UserCreateInfo userInfo : userCreateDTO.getUserInfoList()) {
|
||||
userInfo.setId(IDGenerator.nextStr());
|
||||
User user = new User();
|
||||
BeanUtils.copyBean(user, userInfo);
|
||||
user.setCreateUser(operator);
|
||||
user.setCreateTime(createTime);
|
||||
user.setUpdateUser(operator);
|
||||
user.setUpdateTime(createTime);
|
||||
user.setPassword(CodingUtils.md5(user.getEmail()));
|
||||
user.setSource(source);
|
||||
user.setDeleted(false);
|
||||
userMapper.insertSelective(user);
|
||||
saveUserList.add(user);
|
||||
insertList.add(userInfo);
|
||||
int responseCode = Objects.requireNonNull(CommonBeanFactory.getBean(UserXpackService.class)).guessWhatHowToAddUser(userCreateDTO, source, operator);
|
||||
if (responseCode == 0) {
|
||||
operationLogService.batchAdd(userLogService.getBatchAddLogs(userCreateDTO.getUserInfoList(), operator, requestPath));
|
||||
} else {
|
||||
if (responseCode == -1) {
|
||||
throw new MSException(SystemResultCode.USER_TOO_MANY, Translator.getWithArgs("user_open_source_max", 30));
|
||||
} else {
|
||||
throw new MSException(SystemResultCode.DEPT_USER_TOO_MANY, Translator.getWithArgs("user_dept_max", responseCode));
|
||||
}
|
||||
}
|
||||
userRoleRelationService.batchSave(userCreateDTO.getUserRoleIdList(), saveUserList);
|
||||
//写入操作日志
|
||||
operationLogService.batchAdd(userLogService.getBatchAddLogs(saveUserList, requestPath));
|
||||
return insertList;
|
||||
return userCreateDTO.getUserInfoList();
|
||||
}
|
||||
|
||||
public UserDTO getUserDTOByKeyword(String email) {
|
||||
|
@ -277,15 +264,16 @@ public class UserService {
|
|||
}
|
||||
|
||||
UserImportResponse importResponse = new UserImportResponse();
|
||||
ExcelParseDTO<UserExcelRowDTO> excelParseDTO = new ExcelParseDTO<>();
|
||||
try {
|
||||
ExcelParseDTO<UserExcelRowDTO> excelParseDTO = this.getUserExcelParseDTO(excelFile);
|
||||
if (CollectionUtils.isNotEmpty(excelParseDTO.getDataList())) {
|
||||
this.saveUserByExcelData(excelParseDTO.getDataList(), source, sessionId);
|
||||
}
|
||||
importResponse.generateResponse(excelParseDTO);
|
||||
excelParseDTO = this.getUserExcelParseDTO(excelFile);
|
||||
} catch (Exception e) {
|
||||
LogUtils.info("import user error", e);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(excelParseDTO.getDataList())) {
|
||||
this.saveUserByExcelData(excelParseDTO.getDataList(), source, sessionId);
|
||||
}
|
||||
importResponse.generateResponse(excelParseDTO);
|
||||
return importResponse;
|
||||
}
|
||||
|
||||
|
@ -297,7 +285,6 @@ public class UserService {
|
|||
|
||||
/**
|
||||
* 校验excel导入的数据是否与数据库中的数据冲突
|
||||
*
|
||||
*/
|
||||
private ExcelParseDTO<UserExcelRowDTO> validateExcelUserInfo(@Valid @NotNull ExcelParseDTO<UserExcelRowDTO> excelParseDTO) {
|
||||
List<UserExcelRowDTO> prepareSaveList = excelParseDTO.getDataList();
|
||||
|
@ -540,28 +527,23 @@ public class UserService {
|
|||
this.add(userInvite.getEmail());
|
||||
}});
|
||||
|
||||
//创建用户
|
||||
long createTime = System.currentTimeMillis();
|
||||
User user = new User();
|
||||
user.setId(IDGenerator.nextStr());
|
||||
user.setEmail(userInvite.getEmail());
|
||||
user.setPassword(CodingUtils.md5(RsaUtils.privateDecrypt(request.getPassword(), RsaUtils.getRsaKey().getPrivateKey())));
|
||||
user.setName(request.getName());
|
||||
user.setPhone(request.getPhone());
|
||||
user.setCreateUser(userInvite.getInviteUser());
|
||||
user.setUpdateUser(userInvite.getInviteUser());
|
||||
user.setCreateTime(createTime);
|
||||
user.setUpdateTime(createTime);
|
||||
user.setSource(UserSource.LOCAL.name());
|
||||
user.setDeleted(false);
|
||||
userMapper.insertSelective(user);
|
||||
int responseCode = Objects.requireNonNull(CommonBeanFactory.getBean(UserXpackService.class)).guessWhatHowToAddUser(request, userInvite);
|
||||
if (responseCode == 0) {
|
||||
//删除本次邀请记录
|
||||
userInviteService.deleteInviteById(userInvite.getId());
|
||||
//写入操作日志
|
||||
UserExample userExample = new UserExample();
|
||||
userExample.createCriteria().andEmailEqualTo(userInvite.getEmail());
|
||||
userLogService.addRegisterLog(userMapper.selectByExample(userExample).getFirst(), userInvite);
|
||||
return userInvite.getEmail();
|
||||
} else {
|
||||
if (responseCode > 30) {
|
||||
throw new MSException(SystemResultCode.DEPT_USER_TOO_MANY, Translator.getWithArgs("user_dept_max", responseCode));
|
||||
} else {
|
||||
throw new MSException(SystemResultCode.USER_TOO_MANY, Translator.getWithArgs("user_open_source_max", responseCode));
|
||||
|
||||
userRoleRelationService.batchSave(JSON.parseArray(userInvite.getRoles(), String.class), user);
|
||||
//删除本次邀请记录
|
||||
userInviteService.deleteInviteById(userInvite.getId());
|
||||
//写入操作日志
|
||||
userLogService.addRegisterLog(user, userInvite);
|
||||
return user.getId();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean updateAccount(PersonalUpdateRequest request, String operator) {
|
|
@ -11,6 +11,7 @@ import io.metersphere.system.domain.*;
|
|||
import io.metersphere.system.dto.builder.LogDTOBuilder;
|
||||
import io.metersphere.system.dto.request.user.*;
|
||||
import io.metersphere.system.dto.table.TableBatchProcessDTO;
|
||||
import io.metersphere.system.dto.user.UserCreateInfo;
|
||||
import io.metersphere.system.log.constants.OperationLogModule;
|
||||
import io.metersphere.system.log.constants.OperationLogType;
|
||||
import io.metersphere.system.log.dto.LogDTO;
|
||||
|
@ -45,7 +46,7 @@ public class UserLogService {
|
|||
private UserRoleMapper userRoleMapper;
|
||||
|
||||
//批量添加用户记录日志
|
||||
public List<LogDTO> getBatchAddLogs(@Valid List<User> userList, String requestPath) {
|
||||
public List<LogDTO> getBatchAddLogs(@Valid List<UserCreateInfo> userList, String operator, String requestPath) {
|
||||
List<LogDTO> logs = new ArrayList<>();
|
||||
userList.forEach(user -> {
|
||||
LogDTO log = LogDTOBuilder.builder()
|
||||
|
@ -58,7 +59,7 @@ public class UserLogService {
|
|||
.sourceId(user.getId())
|
||||
.content(user.getName() + "(" + user.getEmail() + ")")
|
||||
.originalValue(JSON.toJSONBytes(user))
|
||||
.createUser(user.getCreateUser())
|
||||
.createUser(operator)
|
||||
.build().getLogDTO();
|
||||
logs.add(log);
|
||||
});
|
||||
|
|
|
@ -23,10 +23,7 @@ import jakarta.validation.Valid;
|
|||
import jakarta.validation.constraints.NotEmpty;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.ibatis.session.ExecutorType;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.mybatis.spring.SqlSessionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
@ -82,55 +79,6 @@ public class UserRoleRelationService {
|
|||
return logs;
|
||||
}
|
||||
|
||||
public void batchSave(List<String> userRoleIdList, List<User> userList) {
|
||||
long operationTime = System.currentTimeMillis();
|
||||
List<UserRoleRelation> userRoleRelationSaveList = new ArrayList<>();
|
||||
//添加用户组织关系
|
||||
for (String userRoleId : userRoleIdList) {
|
||||
for (User user : userList) {
|
||||
UserRoleRelation userRoleRelation = new UserRoleRelation();
|
||||
userRoleRelation.setId(IDGenerator.nextStr());
|
||||
userRoleRelation.setUserId(user.getId());
|
||||
userRoleRelation.setRoleId(userRoleId);
|
||||
userRoleRelation.setSourceId(UserRoleScope.SYSTEM);
|
||||
userRoleRelation.setCreateTime(operationTime);
|
||||
userRoleRelation.setCreateUser(user.getCreateUser());
|
||||
userRoleRelation.setOrganizationId(UserRoleScope.SYSTEM);
|
||||
userRoleRelationSaveList.add(userRoleRelation);
|
||||
}
|
||||
}
|
||||
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
|
||||
UserRoleRelationMapper batchSaveMapper = sqlSession.getMapper(UserRoleRelationMapper.class);
|
||||
int insertIndex = 0;
|
||||
for (UserRoleRelation userRoleRelation : userRoleRelationSaveList) {
|
||||
batchSaveMapper.insert(userRoleRelation);
|
||||
insertIndex++;
|
||||
if (insertIndex % 50 == 0) {
|
||||
sqlSession.flushStatements();
|
||||
}
|
||||
}
|
||||
sqlSession.flushStatements();
|
||||
SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
|
||||
}
|
||||
|
||||
public void batchSave(List<String> userRoleIdList, User user) {
|
||||
long operationTime = System.currentTimeMillis();
|
||||
List<UserRoleRelation> userRoleRelationSaveList = new ArrayList<>();
|
||||
//添加用户组织关系
|
||||
for (String userRoleId : userRoleIdList) {
|
||||
UserRoleRelation userRoleRelation = new UserRoleRelation();
|
||||
userRoleRelation.setId(IDGenerator.nextStr());
|
||||
userRoleRelation.setUserId(user.getId());
|
||||
userRoleRelation.setRoleId(userRoleId);
|
||||
userRoleRelation.setSourceId(UserRoleScope.SYSTEM);
|
||||
userRoleRelation.setOrganizationId(UserRoleScope.SYSTEM);
|
||||
userRoleRelation.setCreateTime(operationTime);
|
||||
userRoleRelation.setCreateUser(user.getCreateUser());
|
||||
userRoleRelationSaveList.add(userRoleRelation);
|
||||
}
|
||||
userRoleRelationMapper.batchInsert(userRoleRelationSaveList);
|
||||
}
|
||||
|
||||
public Map<Organization, List<Project>> selectOrganizationProjectByUserId(String userId) {
|
||||
Map<Organization, List<Project>> returnMap = new LinkedHashMap<>();
|
||||
UserRoleRelationExample example = new UserRoleRelationExample();
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package io.metersphere.system.service;
|
||||
|
||||
import io.metersphere.system.domain.UserInvite;
|
||||
import io.metersphere.system.dto.request.UserRegisterRequest;
|
||||
import io.metersphere.system.dto.user.request.UserBatchCreateRequest;
|
||||
|
||||
/**
|
||||
* 系统用户相关接口
|
||||
*/
|
||||
public interface UserXpackService {
|
||||
|
||||
int guessWhatHowToAddUser(UserBatchCreateRequest userCreateDTO, String source, String operator);
|
||||
|
||||
int guessWhatHowToAddUser(UserRegisterRequest registerRequest, UserInvite userInvite) throws Exception;
|
||||
}
|
|
@ -15,7 +15,7 @@ import io.metersphere.system.dto.user.UserDTO;
|
|||
import io.metersphere.system.log.constants.OperationLogType;
|
||||
import io.metersphere.system.mapper.UserExtendMapper;
|
||||
import io.metersphere.system.mapper.UserMapper;
|
||||
import io.metersphere.system.service.UserService;
|
||||
import io.metersphere.system.service.NormalUserService;
|
||||
import io.metersphere.system.uid.IDGenerator;
|
||||
import io.metersphere.system.utils.user.PersonalRequestUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
|
@ -39,7 +39,7 @@ public class PersonalControllerTests extends BaseTest {
|
|||
@Resource
|
||||
private UserMapper userMapper;
|
||||
@Resource
|
||||
private UserService userService;
|
||||
private NormalUserService normalUserService;
|
||||
|
||||
@Test
|
||||
@Order(0)
|
||||
|
@ -63,7 +63,7 @@ public class PersonalControllerTests extends BaseTest {
|
|||
@Order(1)
|
||||
void testPersonalUpdateInfo() throws Exception {
|
||||
//方法测试
|
||||
userService.checkUserEmail(IDGenerator.nextStr(), "admin_update@metersphere.io");
|
||||
normalUserService.checkUserEmail(IDGenerator.nextStr(), "admin_update@metersphere.io");
|
||||
|
||||
PersonalUpdateRequest request = new PersonalUpdateRequest();
|
||||
request.setId(loginUser);
|
||||
|
@ -76,7 +76,7 @@ public class PersonalControllerTests extends BaseTest {
|
|||
|
||||
boolean methodCheck = false;
|
||||
try {
|
||||
userService.checkUserEmail(IDGenerator.nextStr(), "admin_update@metersphere.io");
|
||||
normalUserService.checkUserEmail(IDGenerator.nextStr(), "admin_update@metersphere.io");
|
||||
} catch (Exception e) {
|
||||
methodCheck = true;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -24,7 +24,7 @@ import io.metersphere.system.dto.sdk.OptionDTO;
|
|||
import io.metersphere.system.mapper.BaseUserMapper;
|
||||
import io.metersphere.system.mapper.UserMapper;
|
||||
import io.metersphere.system.notice.constants.NoticeConstants;
|
||||
import io.metersphere.system.service.UserService;
|
||||
import io.metersphere.system.service.NormalUserService;
|
||||
import io.metersphere.system.uid.IDGenerator;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
@ -47,7 +47,7 @@ public class TestPlanReportService {
|
|||
@Resource
|
||||
private UserMapper userMapper;
|
||||
@Resource
|
||||
private UserService userService;
|
||||
private NormalUserService normalUserService;
|
||||
@Resource
|
||||
private SqlSessionFactory sqlSessionFactory;
|
||||
@Resource
|
||||
|
@ -91,7 +91,7 @@ public class TestPlanReportService {
|
|||
return new ArrayList<>();
|
||||
}
|
||||
List<String> distinctUserIds = reportList.stream().map(TestPlanReportPageResponse::getCreateUser).distinct().toList();
|
||||
Map<String, String> userMap = userService.getUserMapByIds(distinctUserIds);
|
||||
Map<String, String> userMap = normalUserService.getUserMapByIds(distinctUserIds);
|
||||
reportList.forEach(report -> report.setCreateUserName(userMap.get(report.getCreateUser())));
|
||||
return reportList;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue