From a1cf719d268a9d16db81ece94e75037c844f898f Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期二, 18 二月 2020 14:47:23 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue --- ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java | 622 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 311 insertions(+), 311 deletions(-) diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java index 4ca63e4..45898d7 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java @@ -1,311 +1,311 @@ -package com.ruoyi.project.system.service.impl; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import com.ruoyi.common.constant.UserConstants; -import com.ruoyi.common.exception.CustomException; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.aspectj.lang.annotation.DataScope; -import com.ruoyi.project.system.domain.SysRole; -import com.ruoyi.project.system.domain.SysRoleDept; -import com.ruoyi.project.system.domain.SysRoleMenu; -import com.ruoyi.project.system.mapper.SysRoleDeptMapper; -import com.ruoyi.project.system.mapper.SysRoleMapper; -import com.ruoyi.project.system.mapper.SysRoleMenuMapper; -import com.ruoyi.project.system.mapper.SysUserRoleMapper; -import com.ruoyi.project.system.service.ISysRoleService; - -/** - * 瑙掕壊 涓氬姟灞傚鐞� - * - * @author ruoyi - */ -@Service -public class SysRoleServiceImpl implements ISysRoleService -{ - @Autowired - private SysRoleMapper roleMapper; - - @Autowired - private SysRoleMenuMapper roleMenuMapper; - - @Autowired - private SysUserRoleMapper userRoleMapper; - - @Autowired - private SysRoleDeptMapper roleDeptMapper; - - /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁 - * - * @param role 瑙掕壊淇℃伅 - * @return 瑙掕壊鏁版嵁闆嗗悎淇℃伅 - */ - @Override - @DataScope(deptAlias = "d") - public List<SysRole> selectRoleList(SysRole role) - { - return roleMapper.selectRoleList(role); - } - - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 - * - * @param userId 鐢ㄦ埛ID - * @return 鏉冮檺鍒楄〃 - */ - @Override - public Set<String> selectRolePermissionByUserId(Long userId) - { - List<SysRole> perms = roleMapper.selectRolePermissionByUserId(userId); - Set<String> permsSet = new HashSet<>(); - for (SysRole perm : perms) - { - if (StringUtils.isNotNull(perm)) - { - permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); - } - } - return permsSet; - } - - /** - * 鏌ヨ鎵�鏈夎鑹� - * - * @return 瑙掕壊鍒楄〃 - */ - public List<SysRole> selectRoleAll() - { - return roleMapper.selectRoleAll(); - } - - /** - * 鏍规嵁鐢ㄦ埛ID鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛� - * - * @param userId 鐢ㄦ埛ID - * @return 閫変腑瑙掕壊ID鍒楄〃 - */ - public List<Integer> selectRoleListByUserId(Long userId) - { - return roleMapper.selectRoleListByUserId(userId); - } - - /** - * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @return 瑙掕壊瀵硅薄淇℃伅 - */ - public SysRole selectRoleById(Long roleId) - { - return roleMapper.selectRoleById(roleId); - } - - /** - * 鏍¢獙瑙掕壊鍚嶇О鏄惁鍞竴 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - @Override - public String checkRoleNameUnique(SysRole role) - { - Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); - SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName()); - if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; - } - - /** - * 鏍¢獙瑙掕壊鏉冮檺鏄惁鍞竴 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - @Override - public String checkRoleKeyUnique(SysRole role) - { - Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); - SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey()); - if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; - } - - /** - * 鏍¢獙瑙掕壊鏄惁鍏佽鎿嶄綔 - * - * @param role 瑙掕壊淇℃伅 - */ - public void checkRoleAllowed(SysRole role) - { - if (StringUtils.isNotNull(role.getRoleId()) && role.isAdmin()) - { - throw new CustomException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳瑙掕壊"); - } - } - - /** - * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊浣跨敤鏁伴噺 - * - * @param roleId 瑙掕壊ID - * @return 缁撴灉 - */ - @Override - public int countUserRoleByRoleId(Long roleId) - { - return userRoleMapper.countUserRoleByRoleId(roleId); - } - - /** - * 鏂板淇濆瓨瑙掕壊淇℃伅 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - @Override - @Transactional - public int insertRole(SysRole role) - { - // 鏂板瑙掕壊淇℃伅 - roleMapper.insertRole(role); - return insertRoleMenu(role); - } - - /** - * 淇敼淇濆瓨瑙掕壊淇℃伅 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - @Override - @Transactional - public int updateRole(SysRole role) - { - // 淇敼瑙掕壊淇℃伅 - roleMapper.updateRole(role); - // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱� - roleMenuMapper.deleteRoleMenuByRoleId(role.getRoleId()); - return insertRoleMenu(role); - } - - /** - * 淇敼瑙掕壊鐘舵�� - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - public int updateRoleStatus(SysRole role) - { - return roleMapper.updateRole(role); - } - - /** - * 淇敼鏁版嵁鏉冮檺淇℃伅 - * - * @param role 瑙掕壊淇℃伅 - * @return 缁撴灉 - */ - @Override - @Transactional - public int authDataScope(SysRole role) - { - // 淇敼瑙掕壊淇℃伅 - roleMapper.updateRole(role); - // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱� - roleDeptMapper.deleteRoleDeptByRoleId(role.getRoleId()); - // 鏂板瑙掕壊鍜岄儴闂ㄤ俊鎭紙鏁版嵁鏉冮檺锛� - return insertRoleDept(role); - } - - /** - * 鏂板瑙掕壊鑿滃崟淇℃伅 - * - * @param role 瑙掕壊瀵硅薄 - */ - public int insertRoleMenu(SysRole role) - { - int rows = 1; - // 鏂板鐢ㄦ埛涓庤鑹茬鐞� - List<SysRoleMenu> list = new ArrayList<SysRoleMenu>(); - for (Long menuId : role.getMenuIds()) - { - SysRoleMenu rm = new SysRoleMenu(); - rm.setRoleId(role.getRoleId()); - rm.setMenuId(menuId); - list.add(rm); - } - if (list.size() > 0) - { - rows = roleMenuMapper.batchRoleMenu(list); - } - return rows; - } - - /** - * 鏂板瑙掕壊閮ㄩ棬淇℃伅(鏁版嵁鏉冮檺) - * - * @param role 瑙掕壊瀵硅薄 - */ - public int insertRoleDept(SysRole role) - { - int rows = 1; - // 鏂板瑙掕壊涓庨儴闂紙鏁版嵁鏉冮檺锛夌鐞� - List<SysRoleDept> list = new ArrayList<SysRoleDept>(); - for (Long deptId : role.getDeptIds()) - { - SysRoleDept rd = new SysRoleDept(); - rd.setRoleId(role.getRoleId()); - rd.setDeptId(deptId); - list.add(rd); - } - if (list.size() > 0) - { - rows = roleDeptMapper.batchRoleDept(list); - } - return rows; - } - - /** - * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊 - * - * @param roleId 瑙掕壊ID - * @return 缁撴灉 - */ - @Override - public int deleteRoleById(Long roleId) - { - return roleMapper.deleteRoleById(roleId); - } - - /** - * 鎵归噺鍒犻櫎瑙掕壊淇℃伅 - * - * @param roleIds 闇�瑕佸垹闄ょ殑瑙掕壊ID - * @return 缁撴灉 - */ - public int deleteRoleByIds(Long[] roleIds) - { - for (Long roleId : roleIds) - { - checkRoleAllowed(new SysRole(roleId)); - SysRole role = selectRoleById(roleId); - if (countUserRoleByRoleId(roleId) > 0) - { - throw new CustomException(String.format("%1$s宸插垎閰�,涓嶈兘鍒犻櫎", role.getRoleName())); - } - } - return roleMapper.deleteRoleByIds(roleIds); - } -} +package com.ruoyi.project.system.service.impl; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.exception.CustomException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.aspectj.lang.annotation.DataScope; +import com.ruoyi.project.system.domain.SysRole; +import com.ruoyi.project.system.domain.SysRoleDept; +import com.ruoyi.project.system.domain.SysRoleMenu; +import com.ruoyi.project.system.mapper.SysRoleDeptMapper; +import com.ruoyi.project.system.mapper.SysRoleMapper; +import com.ruoyi.project.system.mapper.SysRoleMenuMapper; +import com.ruoyi.project.system.mapper.SysUserRoleMapper; +import com.ruoyi.project.system.service.ISysRoleService; + +/** + * 瑙掕壊 涓氬姟灞傚鐞� + * + * @author ruoyi + */ +@Service +public class SysRoleServiceImpl implements ISysRoleService +{ + @Autowired + private SysRoleMapper roleMapper; + + @Autowired + private SysRoleMenuMapper roleMenuMapper; + + @Autowired + private SysUserRoleMapper userRoleMapper; + + @Autowired + private SysRoleDeptMapper roleDeptMapper; + + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁 + * + * @param role 瑙掕壊淇℃伅 + * @return 瑙掕壊鏁版嵁闆嗗悎淇℃伅 + */ + @Override + @DataScope(deptAlias = "d") + public List<SysRole> selectRoleList(SysRole role) + { + return roleMapper.selectRoleList(role); + } + + /** + * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 + * + * @param userId 鐢ㄦ埛ID + * @return 鏉冮檺鍒楄〃 + */ + @Override + public Set<String> selectRolePermissionByUserId(Long userId) + { + List<SysRole> perms = roleMapper.selectRolePermissionByUserId(userId); + Set<String> permsSet = new HashSet<>(); + for (SysRole perm : perms) + { + if (StringUtils.isNotNull(perm)) + { + permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); + } + } + return permsSet; + } + + /** + * 鏌ヨ鎵�鏈夎鑹� + * + * @return 瑙掕壊鍒楄〃 + */ + public List<SysRole> selectRoleAll() + { + return roleMapper.selectRoleAll(); + } + + /** + * 鏍规嵁鐢ㄦ埛ID鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛� + * + * @param userId 鐢ㄦ埛ID + * @return 閫変腑瑙掕壊ID鍒楄〃 + */ + public List<Integer> selectRoleListByUserId(Long userId) + { + return roleMapper.selectRoleListByUserId(userId); + } + + /** + * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @return 瑙掕壊瀵硅薄淇℃伅 + */ + public SysRole selectRoleById(Long roleId) + { + return roleMapper.selectRoleById(roleId); + } + + /** + * 鏍¢獙瑙掕壊鍚嶇О鏄惁鍞竴 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + @Override + public String checkRoleNameUnique(SysRole role) + { + Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); + SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName()); + if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 鏍¢獙瑙掕壊鏉冮檺鏄惁鍞竴 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + @Override + public String checkRoleKeyUnique(SysRole role) + { + Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); + SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey()); + if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 鏍¢獙瑙掕壊鏄惁鍏佽鎿嶄綔 + * + * @param role 瑙掕壊淇℃伅 + */ + public void checkRoleAllowed(SysRole role) + { + if (StringUtils.isNotNull(role.getRoleId()) && role.isAdmin()) + { + throw new CustomException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳瑙掕壊"); + } + } + + /** + * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊浣跨敤鏁伴噺 + * + * @param roleId 瑙掕壊ID + * @return 缁撴灉 + */ + @Override + public int countUserRoleByRoleId(Long roleId) + { + return userRoleMapper.countUserRoleByRoleId(roleId); + } + + /** + * 鏂板淇濆瓨瑙掕壊淇℃伅 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + @Override + @Transactional + public int insertRole(SysRole role) + { + // 鏂板瑙掕壊淇℃伅 + roleMapper.insertRole(role); + return insertRoleMenu(role); + } + + /** + * 淇敼淇濆瓨瑙掕壊淇℃伅 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + @Override + @Transactional + public int updateRole(SysRole role) + { + // 淇敼瑙掕壊淇℃伅 + roleMapper.updateRole(role); + // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱� + roleMenuMapper.deleteRoleMenuByRoleId(role.getRoleId()); + return insertRoleMenu(role); + } + + /** + * 淇敼瑙掕壊鐘舵�� + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + public int updateRoleStatus(SysRole role) + { + return roleMapper.updateRole(role); + } + + /** + * 淇敼鏁版嵁鏉冮檺淇℃伅 + * + * @param role 瑙掕壊淇℃伅 + * @return 缁撴灉 + */ + @Override + @Transactional + public int authDataScope(SysRole role) + { + // 淇敼瑙掕壊淇℃伅 + roleMapper.updateRole(role); + // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱� + roleDeptMapper.deleteRoleDeptByRoleId(role.getRoleId()); + // 鏂板瑙掕壊鍜岄儴闂ㄤ俊鎭紙鏁版嵁鏉冮檺锛� + return insertRoleDept(role); + } + + /** + * 鏂板瑙掕壊鑿滃崟淇℃伅 + * + * @param role 瑙掕壊瀵硅薄 + */ + public int insertRoleMenu(SysRole role) + { + int rows = 1; + // 鏂板鐢ㄦ埛涓庤鑹茬鐞� + List<SysRoleMenu> list = new ArrayList<SysRoleMenu>(); + for (Long menuId : role.getMenuIds()) + { + SysRoleMenu rm = new SysRoleMenu(); + rm.setRoleId(role.getRoleId()); + rm.setMenuId(menuId); + list.add(rm); + } + if (list.size() > 0) + { + rows = roleMenuMapper.batchRoleMenu(list); + } + return rows; + } + + /** + * 鏂板瑙掕壊閮ㄩ棬淇℃伅(鏁版嵁鏉冮檺) + * + * @param role 瑙掕壊瀵硅薄 + */ + public int insertRoleDept(SysRole role) + { + int rows = 1; + // 鏂板瑙掕壊涓庨儴闂紙鏁版嵁鏉冮檺锛夌鐞� + List<SysRoleDept> list = new ArrayList<SysRoleDept>(); + for (Long deptId : role.getDeptIds()) + { + SysRoleDept rd = new SysRoleDept(); + rd.setRoleId(role.getRoleId()); + rd.setDeptId(deptId); + list.add(rd); + } + if (list.size() > 0) + { + rows = roleDeptMapper.batchRoleDept(list); + } + return rows; + } + + /** + * 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊 + * + * @param roleId 瑙掕壊ID + * @return 缁撴灉 + */ + @Override + public int deleteRoleById(Long roleId) + { + return roleMapper.deleteRoleById(roleId); + } + + /** + * 鎵归噺鍒犻櫎瑙掕壊淇℃伅 + * + * @param roleIds 闇�瑕佸垹闄ょ殑瑙掕壊ID + * @return 缁撴灉 + */ + public int deleteRoleByIds(Long[] roleIds) + { + for (Long roleId : roleIds) + { + checkRoleAllowed(new SysRole(roleId)); + SysRole role = selectRoleById(roleId); + if (countUserRoleByRoleId(roleId) > 0) + { + throw new CustomException(String.format("%1$s宸插垎閰�,涓嶈兘鍒犻櫎", role.getRoleName())); + } + } + return roleMapper.deleteRoleByIds(roleIds); + } +} -- Gitblit v1.9.3