From 7e50bc3d37c7913de6e3d75fd03264288ee83c95 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期二, 19 八月 2025 10:29:37 +0800
Subject: [PATCH] 部分新功能
---
multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java | 79 ++++++++++++++++++++++++++++++---------
1 files changed, 60 insertions(+), 19 deletions(-)
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
index 31c246a..04d642e 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
@@ -7,6 +7,7 @@
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.constant.CacheConstant;
import com.gkhy.exam.common.constant.UserConstant;
+import com.gkhy.exam.common.domain.entity.SysRole;
import com.gkhy.exam.common.domain.entity.SysUser;
import com.gkhy.exam.common.enums.UserTypeEnum;
import com.gkhy.exam.common.exception.ApiException;
@@ -14,19 +15,19 @@
import com.gkhy.exam.common.utils.RedisUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.common.utils.StringUtils;
+import com.gkhy.exam.system.domain.ExStudent;
import com.gkhy.exam.system.domain.SysUserRole;
import com.gkhy.exam.system.mapper.SysUserMapper;
import com.gkhy.exam.system.mapper.SysUserRoleMapper;
+import com.gkhy.exam.system.service.ExStudentService;
import com.gkhy.exam.system.service.SysConfigService;
import com.gkhy.exam.system.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import javax.validation.Validator;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -50,6 +51,9 @@
@Autowired
private SysUserRoleMapper userRoleMapper;
+ @Autowired
+ private ExStudentService exStudentService;
+
@Override
public CommonPage<SysUser> selectUserList(SysUser user) {
SysUser currentUser=SecurityUtils.getLoginUser().getUser();
@@ -58,7 +62,7 @@
if(!currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())){
user.setCompanyId(currentUser.getCompanyId());
Map<String,Object> paramsMap=new HashMap<>();
- paramsMap.put("userType",currentUser.getUserType());
+// paramsMap.put("userType",currentUser.getUserType());
user.setParams(paramsMap);
}
PageUtils.startPage();
@@ -124,28 +128,62 @@
@Override
public int deleteUserById(Long userId) {
SysUser user=checkUserDataScope(userId);
+ if (user.getId().toString().equals("1")){
+ throw new ApiException("管理员用户不能被删除");
+ }
delCacheByUsername(user.getUsername());
return baseMapper.deleteUserById(userId);
}
@Override
+ @Transactional(rollbackFor = RuntimeException.class)
public int addUser(SysUser user) {
+ ExStudent exStudent = new ExStudent();
+ exStudent.setCompanyId(user.getCompanyId());
+ exStudent.setName(user.getName());
+ exStudent.setPassword(user.getPassword());
+ exStudent.setDeptId(user.getDeptId());
+ exStudent.setDuty(user.getDuty());
+ exStudent.setSex(user.getSex());
+ exStudent.setPhone(user.getPhone());
checkRequestData(user);
checkUserAllowed(user);
user.setCreateBy(SecurityUtils.getUsername());
user.setPassword(SecurityUtils.encryptPassword(Base64.decodeStr(user.getPassword())));
int row=baseMapper.insert(user);
- List<SysUserRole> userRoleList = new ArrayList<>();
- SysUserRole sysUserRole = new SysUserRole();
- sysUserRole.setUserId(user.getId());
- sysUserRole.setRoleId(2L);
- userRoleList.add(sysUserRole);
- userRoleMapper.batchUserRole(userRoleList);
+
+ batchSaveRole(user.getRoles(),user.getId(),false);
+
+ exStudentService.insertStudent(exStudent);
if(row<1){
throw new ApiException("新增用户失败");
}
return row;
+ }
+
+ public void batchSaveRole(List<SysRole> roleIds, Long userId, boolean isUpdate){
+
+ if (isUpdate){
+ userRoleMapper.deleteUserRoleByUserId(userId);
+ }
+
+ List<SysUserRole> userRoleList = new ArrayList<>();
+ if(roleIds != null && !roleIds.isEmpty()){
+
+ for (SysRole roleId : roleIds) {
+ SysUserRole sysUserRole = new SysUserRole();
+ sysUserRole.setUserId(userId);
+ sysUserRole.setRoleId(roleId.getRoleId());
+ userRoleList.add(sysUserRole);
+ }
+ }else {
+ SysUserRole sysUserRole = new SysUserRole();
+ sysUserRole.setUserId(userId);
+ sysUserRole.setRoleId(2L);
+ userRoleList.add(sysUserRole);
+ }
+ userRoleMapper.batchUserRole(userRoleList);
}
@Override
@@ -155,6 +193,8 @@
user.setUpdateBy(SecurityUtils.getUsername());
user.setPassword(null);
int row=baseMapper.updateById(user);
+ batchSaveRole(user.getRoles(),user.getId(),true);
+
if(row<1){
throw new ApiException("更新用户信息失败");
}
@@ -227,23 +267,24 @@
Integer currentUserType=currentUser.getUserType();
Integer userType=user.getUserType();
//校验权限,规则:上一级用户可以增加下一级用户类型的用户
- if(currentUserType.equals(UserTypeEnum.SYSTEM_USER.getCode())){
+// if(currentUserType.equals(UserTypeEnum.SYSTEM_USER.getCode())){
// if( !userType.equals(UserTypeEnum.SYSTEM_USER.getCode())&&!userType.equals(UserTypeEnum.OTHER_USER.getCode()) &&!userType.equals(UserTypeEnum.COMPANY_USER.getCode())){
// throw new ApiException("管理员只能操作管理员、企业级和其他类型的用户");
// }
- if (user.getId().toString().equals("1")){
- throw new ApiException("管理员用户不能被删除");
- }
- }else{
+// if (user.getId().toString().equals("1")){
+// throw new ApiException("管理员用户不能被删除");
+// }
+// }else{
+ if(!currentUserType.equals(UserTypeEnum.SYSTEM_USER.getCode())){
if(userType.equals(UserTypeEnum.OTHER_USER.getCode())){
throw new ApiException("没有权限操作或者更新上级用户类型的用户");
}
- if(currentUserType.equals(UserTypeEnum.OTHER_USER.getCode())){
- if(userType<=UserTypeEnum.COMPANY_USER.getCode()){
+ if(currentUserType.equals(UserTypeEnum.OTHER_USER.getCode()) || currentUserType.equals(UserTypeEnum.COMPANY_ADMIN.getCode())){
+ if(userType<=UserTypeEnum.COMPANY_USER.getCode() && !currentUserType.equals(UserTypeEnum.COMPANY_ADMIN.getCode())){
throw new ApiException("没有权限操作或者更新上级用户类型的用户");
}
}else{
- if(userType<=currentUserType){
+ if(userType<currentUserType){
throw new ApiException("没有权限操作或者更新上级用户类型的用户");
}
}
--
Gitblit v1.9.2