From 826976ff37a83fc8fec64aeb19727d69afc6fcfa Mon Sep 17 00:00:00 2001 From: heheng <475597332@qq.com> Date: 星期四, 31 七月 2025 16:05:24 +0800 Subject: [PATCH] 修改人员角色绑定 --- multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java | 42 ++++++++++++++++++++++++++++++++---------- 1 files changed, 32 insertions(+), 10 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 4d1859f..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; @@ -23,12 +24,10 @@ 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; @@ -137,6 +136,7 @@ } @Override + @Transactional(rollbackFor = RuntimeException.class) public int addUser(SysUser user) { ExStudent exStudent = new ExStudent(); exStudent.setCompanyId(user.getCompanyId()); @@ -151,12 +151,8 @@ 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); @@ -166,6 +162,30 @@ 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 public int updateUser(SysUser user) { checkRequestData(user); @@ -173,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("更新用户信息失败"); } -- Gitblit v1.9.2