Переглянути джерело

权限和菜单增加重复性判断

周箭河 5 роки тому
батько
коміт
08dc9ec304

+ 6 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysMenuDao.java

@@ -21,4 +21,10 @@ public interface SysMenuDao extends BaseDAO<Integer, SysMenu> {
      * @return
      */
     List<SysMenu> findByUser(Integer userId);
+
+    /**
+     * 根据权限标识查菜单
+     * @return
+     */
+    SysMenu findMenuByPermission(String permission);
 }

+ 7 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysRoleDao.java

@@ -12,4 +12,11 @@ public interface SysRoleDao extends BaseDAO<Integer, SysRole> {
      * @return
      */
     List<SysRole> findRoleByUserId(Integer userId);
+
+    /**
+     * 根据role_code 查询角色
+     * @param code
+     * @return
+     */
+    SysRole findRoleByCode(String code);
 }

+ 7 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysMenuService.java

@@ -20,4 +20,11 @@ public interface SysMenuService extends BaseService<Integer, SysMenu> {
      * @return
      */
     List<SysMenu> findByUser(Integer id);
+
+    /**
+     * 根据权限标识查菜单
+     * @param permission
+     * @return
+     */
+    SysMenu findMenuByPermission(String permission);
 }

+ 7 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysRoleService.java

@@ -13,4 +13,11 @@ public interface SysRoleService extends BaseService<Integer, SysRole> {
      * @return
      */
     List<SysRole> findRoleByUserId(Integer userId);
+
+    /**
+     * 根据角色标识查询角色
+     * @param code
+     * @return
+     */
+    SysRole findRoleByCode(String code);
 }

+ 5 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysMenuServiceImpl.java

@@ -31,4 +31,9 @@ public class SysMenuServiceImpl extends BaseServiceImpl<Integer, SysMenu>  imple
 	public List<SysMenu> findByUser(Integer id) {
 		return sysMenuDao.findByUser(id);
 	}
+
+	@Override
+	public SysMenu findMenuByPermission(String permission){
+		return sysMenuDao.findMenuByPermission(permission);
+	}
 }

+ 6 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysRoleServiceImpl.java

@@ -27,4 +27,10 @@ public class SysRoleServiceImpl extends BaseServiceImpl<Integer, SysRole>  imple
 	public List<SysRole> findRoleByUserId(Integer userId) {
 		return sysRoleDao.findRoleByUserId(userId);
 	}
+
+	@Override
+	public SysRole findRoleByCode(String code){
+		return sysRoleDao.findRoleByCode(code);
+	}
+
 }

+ 8 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/MenuController.java

@@ -22,6 +22,10 @@ public class MenuController extends BaseController {
     @ApiOperation("新增菜单")
     @PutMapping("/add")
     public Object getMenu(SysMenu sysMenu) {
+        SysMenu menuByPermission = sysMenuService.findMenuByPermission(sysMenu.getPermission());
+        if(menuByPermission != null){
+            return failed("权限标识不能重复");
+        }
         Date date = new Date();
         sysMenu.setUpdateTime(date);
         sysMenu.setCreateTime(date);
@@ -37,6 +41,10 @@ public class MenuController extends BaseController {
     @ApiOperation("根据菜单id修改菜单")
     @PutMapping("/update")
     public Object updateMenu(SysMenu sysMenu) {
+        SysMenu menuByPermission = sysMenuService.findMenuByPermission(sysMenu.getPermission());
+        if(menuByPermission != null && !menuByPermission.getId().equals(sysMenu.getId())){
+            return failed("权限标识不能重复");
+        }
         Date date = new Date();
         sysMenu.setUpdateTime(date);
         return succeed(sysMenuService.update(sysMenu));

+ 8 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/RoleController.java

@@ -39,6 +39,10 @@ public class RoleController extends BaseController {
     @ApiOperation("修改角色")
     @PutMapping("/update")
     public Object updateRole(SysRole sysRole) {
+        SysRole roleByCode = sysRoleService.findRoleByCode(sysRole.getRoleCode());
+        if(roleByCode != null && !roleByCode.getId().equals(sysRole.getId())){
+            return failed("权限标识已存在");
+        }
         sysRole.setUpdateTime(new Date());
         sysRoleService.update(sysRole);
         return succeed();
@@ -47,6 +51,10 @@ public class RoleController extends BaseController {
     @ApiOperation("新增角色")
     @PostMapping("/add")
     public Object addRole(SysRole sysRole) {
+        SysRole roleByCode = sysRoleService.findRoleByCode(sysRole.getRoleCode());
+        if(roleByCode != null){
+            return failed("权限标识已存在");
+        }
         Date date = new Date();
         sysRole.setUpdateTime(date);
         sysRole.setCreateTime(date);

+ 5 - 0
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysMenuMapper.xml

@@ -113,4 +113,9 @@
 		LEFT JOIN sys_menu sm ON srm.menu_id_ = sm.id_
 		WHERE sur.user_id_ = #{userId} AND sr.del_flag_ = 0 AND sm.del_flag_ = 0
 	</select>
+
+    <!-- 根据权限标识查菜单 -->
+    <select id="findMenuByPermission" resultType="com.ym.mec.auth.api.entity.SysMenu">
+        SELECT * FROM `sys_role_menu` WHERE `permission_` = #{permission} AND sm.del_flag_ = 0
+    </select>
 </mapper>

+ 4 - 0
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysRoleMapper.xml

@@ -80,4 +80,8 @@
     <select id="findRoleByUserId" resultMap="SysRole">
 		SELECT sr.* FROM sys_user_role sur LEFT JOIN sys_role sr ON sur.role_id_ = sr.id_ WHERE sur.user_id_ = #{userId} AND sr.del_flag_ = 0
 	</select>
+
+    <select id="findRoleByCode" resultMap="SysRole">
+        SELECT sr.* FROM sys_role WHERE role_code_ = #{code} AND sr.del_flag_ = 0
+    </select>
 </mapper>