diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 5d4e63b..3d77f63 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -3,6 +3,8 @@ package com.ruoyi.web.controller.system; import java.util.List; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.system.mapper.SysRoleDeptMapper; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -49,6 +51,9 @@ public class SysUserController extends BaseController @Autowired private ISysPostService postService; + @Autowired + SysRoleDeptMapper roleDeptMapper; + /** * 获取用户列表 */ @@ -160,6 +165,9 @@ public class SysUserController extends BaseController return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setUpdateBy(getUsername()); + + String stuClass = roleDeptMapper.selectNameById(user.getDeptId()); + user.setStuClass(stuClass); return toAjax(userService.updateUser(user)); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index 27db814..d8ddbb3 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -65,7 +65,7 @@ public class SysUser extends BaseEntity { /** * 班级 */ - @Excel(name = "学生班级") + @Excel(name = "所属班级") private String stuClass; /** @@ -103,7 +103,7 @@ public class SysUser extends BaseEntity { /** * 帐号状态(0正常 1停用) */ - @Excel(name = "帐号状态(0=正常,1=停用)", readConverterExp = "0=正常,1=停用") +// @Excel(name = "帐号状态(0=正常,1=停用)", readConverterExp = "0=正常,1=停用") private String status; /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java index 64c6802..79ff3af 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.system.mapper; import java.util.List; import com.ruoyi.system.domain.SysRoleDept; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -10,6 +11,7 @@ import org.apache.ibatis.annotations.Select; * * @author ruoyi */ +@Mapper public interface SysRoleDeptMapper { /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTrainingScoreMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTrainingScoreMapper.java index 7488cca..c770a14 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTrainingScoreMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTrainingScoreMapper.java @@ -121,4 +121,9 @@ public interface SysTrainingScoreMapper { int updateByPrimaryKey(SysTrainingScore record); List selectAllReportContent(); + + + void deleteByUserId(Long userId); + + void deleteByUserIds(Long[] userIds); } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 6f3ff02..630b980 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -32,11 +32,12 @@ import com.ruoyi.system.service.ISysUserService; /** * 用户 业务层处理 - * + * * @author ruoyi */ @Service -public class SysUserServiceImpl implements ISysUserService { +public class SysUserServiceImpl implements ISysUserService +{ private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); @Autowired @@ -109,31 +110,35 @@ public class SysUserServiceImpl implements ISysUserService { * @return 用户对象信息 */ @Override - public SysUser selectUserByUserName(String userName) { + public SysUser selectUserByUserName(String userName) + { return userMapper.selectUserByUserName(userName); } /** * 通过用户ID查询用户 - * + * * @param userId 用户ID * @return 用户对象信息 */ @Override - public SysUser selectUserById(Long userId) { + public SysUser selectUserById(Long userId) + { return userMapper.selectUserById(userId); } /** * 查询用户所属角色组 - * + * * @param userName 用户名 * @return 结果 */ @Override - public String selectUserRoleGroup(String userName) { + public String selectUserRoleGroup(String userName) + { List list = roleMapper.selectRolesByUserName(userName); - if (CollectionUtils.isEmpty(list)) { + if (CollectionUtils.isEmpty(list)) + { return StringUtils.EMPTY; } return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(",")); @@ -141,14 +146,16 @@ public class SysUserServiceImpl implements ISysUserService { /** * 查询用户所属岗位组 - * + * * @param userName 用户名 * @return 结果 */ @Override - public String selectUserPostGroup(String userName) { + public String selectUserPostGroup(String userName) + { List list = postMapper.selectPostsByUserName(userName); - if (CollectionUtils.isEmpty(list)) { + if (CollectionUtils.isEmpty(list)) + { return StringUtils.EMPTY; } return list.stream().map(SysPost::getPostName).collect(Collectors.joining(",")); @@ -156,14 +163,16 @@ public class SysUserServiceImpl implements ISysUserService { /** * 校验用户名称是否唯一 - * + * * @param userName 用户名称 * @return 结果 */ @Override - public String checkUserNameUnique(String userName) { + public String checkUserNameUnique(String userName) + { int count = userMapper.checkUserNameUnique(userName); - if (count > 0) { + if (count > 0) + { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -176,10 +185,12 @@ public class SysUserServiceImpl implements ISysUserService { * @return */ @Override - public String checkPhoneUnique(SysUser user) { + public String checkPhoneUnique(SysUser user) + { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) + { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -192,10 +203,12 @@ public class SysUserServiceImpl implements ISysUserService { * @return */ @Override - public String checkEmailUnique(SysUser user) { + public String checkEmailUnique(SysUser user) + { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkEmailUnique(user.getEmail()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) + { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -203,28 +216,33 @@ public class SysUserServiceImpl implements ISysUserService { /** * 校验用户是否允许操作 - * + * * @param user 用户信息 */ @Override - public void checkUserAllowed(SysUser user) { - if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) { + public void checkUserAllowed(SysUser user) + { + if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) + { throw new ServiceException("不允许操作超级管理员用户"); } } /** * 校验用户是否有数据权限 - * + * * @param userId 用户id */ @Override - public void checkUserDataScope(Long userId) { - if (!SysUser.isAdmin(SecurityUtils.getUserId())) { + public void checkUserDataScope(Long userId) + { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) + { SysUser user = new SysUser(); user.setUserId(userId); List users = SpringUtils.getAopProxy(this).selectUserList(user); - if (StringUtils.isEmpty(users)) { + if (StringUtils.isEmpty(users)) + { throw new ServiceException("没有权限访问用户数据!"); } } @@ -232,7 +250,7 @@ public class SysUserServiceImpl implements ISysUserService { /** * 新增保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -240,9 +258,9 @@ public class SysUserServiceImpl implements ISysUserService { @Transactional public int insertUser(SysUser user) { // 新增用户信息 - int rows = userMapper.insertUser(user); String deptName = roleDeptMapper.selectNameById(user.getDeptId()); user.setStuClass(deptName); + int rows = userMapper.insertUser(user); // 新增用户岗位关联 insertUserPost(user); // 新增用户与角色管理 @@ -250,7 +268,7 @@ public class SysUserServiceImpl implements ISysUserService { //新增实训成绩 Long userId = userMapper.selectUserIDByStuNum(user.getStudentNumber()); SysTrainingScore sysTrainingScore = new SysTrainingScore(); - sysTrainingScore.setUserid(user.getUserId()); + sysTrainingScore.setUserid(userId); sysTrainingScore.setStatus(0); sysTrainingScore.setId(String.valueOf(UUID.randomUUID())); trainingScoreMapper.insert(sysTrainingScore); @@ -259,24 +277,26 @@ public class SysUserServiceImpl implements ISysUserService { /** * 注册用户信息 - * + * * @param user 用户信息 * @return 结果 */ @Override - public boolean registerUser(SysUser user) { + public boolean registerUser(SysUser user) + { return userMapper.insertUser(user) > 0; } /** * 修改保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @Override @Transactional - public int updateUser(SysUser user) { + public int updateUser(SysUser user) + { Long userId = user.getUserId(); // 删除用户与角色关联 userRoleMapper.deleteUserRoleByUserId(userId); @@ -291,94 +311,104 @@ public class SysUserServiceImpl implements ISysUserService { /** * 用户授权角色 - * - * @param userId 用户ID + * + * @param userId 用户ID * @param roleIds 角色组 */ @Override @Transactional - public void insertUserAuth(Long userId, Long[] roleIds) { + public void insertUserAuth(Long userId, Long[] roleIds) + { userRoleMapper.deleteUserRoleByUserId(userId); insertUserRole(userId, roleIds); } /** * 修改用户状态 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int updateUserStatus(SysUser user) { + public int updateUserStatus(SysUser user) + { return userMapper.updateUser(user); } /** * 修改用户基本信息 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int updateUserProfile(SysUser user) { + public int updateUserProfile(SysUser user) + { return userMapper.updateUser(user); } /** * 修改用户头像 - * + * * @param userName 用户名 - * @param avatar 头像地址 + * @param avatar 头像地址 * @return 结果 */ @Override - public boolean updateUserAvatar(String userName, String avatar) { + public boolean updateUserAvatar(String userName, String avatar) + { return userMapper.updateUserAvatar(userName, avatar) > 0; } /** * 重置用户密码 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int resetPwd(SysUser user) { + public int resetPwd(SysUser user) + { return userMapper.updateUser(user); } /** * 重置用户密码 - * + * * @param userName 用户名 * @param password 密码 * @return 结果 */ @Override - public int resetUserPwd(String userName, String password) { + public int resetUserPwd(String userName, String password) + { return userMapper.resetUserPwd(userName, password); } /** * 新增用户角色信息 - * + * * @param user 用户对象 */ - public void insertUserRole(SysUser user) { + public void insertUserRole(SysUser user) + { this.insertUserRole(user.getUserId(), user.getRoleIds()); } /** * 新增用户岗位信息 - * + * * @param user 用户对象 */ - public void insertUserPost(SysUser user) { + public void insertUserPost(SysUser user) + { Long[] posts = user.getPostIds(); - if (StringUtils.isNotEmpty(posts)) { + if (StringUtils.isNotEmpty(posts)) + { // 新增用户与岗位管理 List list = new ArrayList(posts.length); - for (Long postId : posts) { + for (Long postId : posts) + { SysUserPost up = new SysUserPost(); up.setUserId(user.getUserId()); up.setPostId(postId); @@ -390,15 +420,18 @@ public class SysUserServiceImpl implements ISysUserService { /** * 新增用户角色信息 - * - * @param userId 用户ID + * + * @param userId 用户ID * @param roleIds 角色组 */ - public void insertUserRole(Long userId, Long[] roleIds) { - if (StringUtils.isNotEmpty(roleIds)) { + public void insertUserRole(Long userId, Long[] roleIds) + { + if (StringUtils.isNotEmpty(roleIds)) + { // 新增用户与角色管理 List list = new ArrayList(roleIds.length); - for (Long roleId : roleIds) { + for (Long roleId : roleIds) + { SysUserRole ur = new SysUserRole(); ur.setUserId(userId); ur.setRoleId(roleId); @@ -410,30 +443,34 @@ public class SysUserServiceImpl implements ISysUserService { /** * 通过用户ID删除用户 - * + * * @param userId 用户ID * @return 结果 */ @Override @Transactional - public int deleteUserById(Long userId) { + public int deleteUserById(Long userId) + { // 删除用户与角色关联 userRoleMapper.deleteUserRoleByUserId(userId); // 删除用户与岗位表 userPostMapper.deleteUserPostByUserId(userId); + trainingScoreMapper.deleteByUserId(userId); return userMapper.deleteUserById(userId); } /** * 批量删除用户信息 - * + * * @param userIds 需要删除的用户ID * @return 结果 */ @Override @Transactional - public int deleteUserByIds(Long[] userIds) { - for (Long userId : userIds) { + public int deleteUserByIds(Long[] userIds) + { + for (Long userId : userIds) + { checkUserAllowed(new SysUser(userId)); checkUserDataScope(userId); } @@ -441,20 +478,26 @@ public class SysUserServiceImpl implements ISysUserService { userRoleMapper.deleteUserRole(userIds); // 删除用户与岗位关联 userPostMapper.deleteUserPost(userIds); + //删除用户实训记录 + for (int i = 0; i < userIds.length; i++) { + trainingScoreMapper.deleteByUserId(userIds[i]); + } return userMapper.deleteUserByIds(userIds); } /** * 导入用户数据 - * - * @param userList 用户数据列表 + * + * @param userList 用户数据列表 * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 - * @param operName 操作用户 + * @param operName 操作用户 * @return 结果 */ @Override - public String importUser(List userList, Boolean isUpdateSupport, String operName) { - if (StringUtils.isNull(userList) || userList.size() == 0) { + public String importUser(List userList, Boolean isUpdateSupport, String operName) + { + if (StringUtils.isNull(userList) || userList.size() == 0) + { throw new ServiceException("导入用户数据不能为空!"); } int successNum = 0; @@ -462,38 +505,50 @@ public class SysUserServiceImpl implements ISysUserService { StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); String password = configService.selectConfigByKey("sys.user.initPassword"); - for (SysUser user : userList) { - try { + for (SysUser user : userList) + { + try + { // 验证是否存在这个用户 SysUser u = userMapper.selectUserByUserName(user.getUserName()); - if (StringUtils.isNull(u)) { + if (StringUtils.isNull(u)) + { BeanValidators.validateWithException(validator, user); user.setPassword(SecurityUtils.encryptPassword(password)); user.setCreateBy(operName); this.insertUser(user); successNum++; successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 导入成功"); - } else if (isUpdateSupport) { + } + else if (isUpdateSupport) + { BeanValidators.validateWithException(validator, user); user.setUpdateBy(operName); this.updateUser(user); successNum++; successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 更新成功"); - } else { + } + else + { failureNum++; failureMsg.append("
" + failureNum + "、账号 " + user.getUserName() + " 已存在"); } - } catch (Exception e) { + } + catch (Exception e) + { failureNum++; String msg = "
" + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; failureMsg.append(msg + e.getMessage()); log.error(msg, e); } } - if (failureNum > 0) { + if (failureNum > 0) + { failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); throw new ServiceException(failureMsg.toString()); - } else { + } + else + { successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); } return successMsg.toString(); diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index 1e7ffcb..507906b 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -55,7 +55,7 @@ diff --git a/ruoyi-system/src/main/resources/mapper/system/SysTrainingScoreMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysTrainingScoreMapper.xml index 4f003a5..a296ca8 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysTrainingScoreMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysTrainingScoreMapper.xml @@ -1615,4 +1615,15 @@ + + + delete from sys_training_score where userid=#{userId} + + + + delete from sys_training_score where userid in + + #{userId} + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 4d1a95a..0beab46 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -259,8 +259,8 @@ nick_name = #{nickName}, email = #{email}, phonenumber = #{phonenumber}, - #{studentNumber}, - #{stuClass}, + studentnumber = #{studentNumber}, + stuClass = #{stuClass}, sex = #{sex}, avatar = #{avatar}, password = #{password},