From c36bc040d0b6127b08f3f4bccf5d1ae02bf25121 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期五, 31 三月 2023 14:37:10 +0800 Subject: [PATCH] update 优化 角色 sort 值一样的排序问题 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java | 86 ++++++++++++++++++++++--------------------- 1 files changed, 44 insertions(+), 42 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index e83a124..019d796 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -1,21 +1,22 @@ package com.ruoyi.system.service.impl; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.constant.UserConstants; -import com.ruoyi.common.core.utils.StreamUtils; -import com.ruoyi.common.mybatis.core.page.PageQuery; -import com.ruoyi.system.domain.SysRole; -import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.MapstructUtils; +import com.ruoyi.common.core.utils.StreamUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.mybatis.core.page.PageQuery; +import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.satoken.utils.LoginHelper; +import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.domain.SysRoleDept; import com.ruoyi.system.domain.SysRoleMenu; import com.ruoyi.system.domain.SysUserRole; @@ -73,7 +74,7 @@ .like(StringUtils.isNotBlank(bo.getRoleKey()), "r.role_key", bo.getRoleKey()) .between(params.get("beginTime") != null && params.get("endTime") != null, "r.create_time", params.get("beginTime"), params.get("endTime")) - .orderByAsc("r.role_sort"); + .orderByAsc("r.role_sort").orderByAsc("r.create_time");; return wrapper; } @@ -110,7 +111,7 @@ Set<String> permsSet = new HashSet<>(); for (SysRoleVo perm : perms) { if (ObjectUtil.isNotNull(perm)) { - permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); + permsSet.addAll(StringUtils.splitList(perm.getRoleKey().trim())); } } return permsSet; @@ -145,7 +146,7 @@ */ @Override public SysRoleVo selectRoleById(Long roleId) { - return baseMapper.selectVoById(roleId); + return baseMapper.selectRoleById(roleId); } /** @@ -155,14 +156,11 @@ * @return 缁撴灉 */ @Override - public String checkRoleNameUnique(SysRoleBo role) { + public boolean checkRoleNameUnique(SysRoleBo role) { boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysRole>() .eq(SysRole::getRoleName, role.getRoleName()) .ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId())); - if (exist) { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + return !exist; } /** @@ -172,24 +170,21 @@ * @return 缁撴灉 */ @Override - public String checkRoleKeyUnique(SysRoleBo role) { + public boolean checkRoleKeyUnique(SysRoleBo role) { boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysRole>() .eq(SysRole::getRoleKey, role.getRoleKey()) .ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId())); - if (exist) { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; + return !exist; } /** * 鏍¢獙瑙掕壊鏄惁鍏佽鎿嶄綔 * - * @param role 瑙掕壊淇℃伅 + * @param roleId 瑙掕壊ID */ @Override - public void checkRoleAllowed(SysRoleBo role) { - if (ObjectUtil.isNotNull(role.getRoleId()) && role.isAdmin()) { + public void checkRoleAllowed(Long roleId) { + if (ObjectUtil.isNotNull(roleId) && LoginHelper.isSuperAdmin(roleId)) { throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳瑙掕壊"); } } @@ -201,14 +196,17 @@ */ @Override public void checkRoleDataScope(Long roleId) { - if (!LoginHelper.isAdmin()) { - SysRoleBo role = new SysRoleBo(); - role.setRoleId(roleId); - List<SysRoleVo> roles = this.selectRoleList(role); - if (CollUtil.isEmpty(roles)) { - throw new ServiceException("娌℃湁鏉冮檺璁块棶瑙掕壊鏁版嵁锛�"); - } + if (ObjectUtil.isNull(roleId)) { + return; } + if (LoginHelper.isSuperAdmin()) { + return; + } + List<SysRoleVo> roles = this.selectRoleList(new SysRoleBo(roleId)); + if (CollUtil.isEmpty(roles)) { + throw new ServiceException("娌℃湁鏉冮檺璁块棶瑙掕壊鏁版嵁锛�"); + } + } /** @@ -231,10 +229,11 @@ @Override @Transactional(rollbackFor = Exception.class) public int insertRole(SysRoleBo bo) { - SysRole role = BeanUtil.toBean(bo, SysRole.class); + SysRole role = MapstructUtils.convert(bo, SysRole.class); // 鏂板瑙掕壊淇℃伅 baseMapper.insert(role); - return insertRoleMenu(role); + bo.setRoleId(role.getRoleId()); + return insertRoleMenu(bo); } /** @@ -246,24 +245,27 @@ @Override @Transactional(rollbackFor = Exception.class) public int updateRole(SysRoleBo bo) { - SysRole role = BeanUtil.toBean(bo, SysRole.class); + SysRole role = MapstructUtils.convert(bo, SysRole.class); // 淇敼瑙掕壊淇℃伅 baseMapper.updateById(role); // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱� roleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, role.getRoleId())); - return insertRoleMenu(role); + return insertRoleMenu(bo); } /** * 淇敼瑙掕壊鐘舵�� * - * @param bo 瑙掕壊淇℃伅 + * @param roleId 瑙掕壊ID + * @param status 瑙掕壊鐘舵�� * @return 缁撴灉 */ @Override - public int updateRoleStatus(SysRoleBo bo) { - SysRole role = BeanUtil.toBean(bo, SysRole.class); - return baseMapper.updateById(role); + public int updateRoleStatus(Long roleId, String status) { + return baseMapper.update(null, + new LambdaUpdateWrapper<SysRole>() + .set(SysRole::getStatus, status) + .eq(SysRole::getRoleId, roleId)); } /** @@ -275,13 +277,13 @@ @Override @Transactional(rollbackFor = Exception.class) public int authDataScope(SysRoleBo bo) { - SysRole role = BeanUtil.toBean(bo, SysRole.class); + SysRole role = MapstructUtils.convert(bo, SysRole.class); // 淇敼瑙掕壊淇℃伅 baseMapper.updateById(role); // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱� roleDeptMapper.delete(new LambdaQueryWrapper<SysRoleDept>().eq(SysRoleDept::getRoleId, role.getRoleId())); // 鏂板瑙掕壊鍜岄儴闂ㄤ俊鎭紙鏁版嵁鏉冮檺锛� - return insertRoleDept(role); + return insertRoleDept(bo); } /** @@ -289,7 +291,7 @@ * * @param role 瑙掕壊瀵硅薄 */ - public int insertRoleMenu(SysRole role) { + private int insertRoleMenu(SysRoleBo role) { int rows = 1; // 鏂板鐢ㄦ埛涓庤鑹茬鐞� List<SysRoleMenu> list = new ArrayList<SysRoleMenu>(); @@ -310,7 +312,7 @@ * * @param role 瑙掕壊瀵硅薄 */ - public int insertRoleDept(SysRole role) { + private int insertRoleDept(SysRoleBo role) { int rows = 1; // 鏂板瑙掕壊涓庨儴闂紙鏁版嵁鏉冮檺锛夌鐞� List<SysRoleDept> list = new ArrayList<SysRoleDept>(); @@ -352,7 +354,7 @@ @Transactional(rollbackFor = Exception.class) public int deleteRoleByIds(Long[] roleIds) { for (Long roleId : roleIds) { - checkRoleAllowed(new SysRoleBo(roleId)); + checkRoleAllowed(roleId); checkRoleDataScope(roleId); SysRole role = baseMapper.selectById(roleId); if (countUserRoleByRoleId(roleId) > 0) { -- Gitblit v1.9.3