tsurumure vor 7 Monaten
Ursprung
Commit
27180d0bdb

+ 1 - 3
db/sys_user_role_permission_relation.sql

@@ -20,9 +20,7 @@ INSERT INTO sys_user_role_permission_relation(role_id, permission_id) VALUES
 #         (1, '1.3'),
 #             (1, '1.3.1'), (1, '1.3.2'), (1, '1.3.3'),
 
-
-#     (1, '2'),
-
+    (1, '2'),
 
     (1, '3'),
         (1, '3.1'),

+ 26 - 0
src/main/java/com/backendsys/modules/system/service/impl/SysUserRoleMenuServiceImpl.java

@@ -1,9 +1,12 @@
 package com.backendsys.modules.system.service.impl;
 
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.StrUtil;
 import com.backendsys.exception.CustException;
 import com.backendsys.modules.system.dao.SysUserRoleMenuDao;
+import com.backendsys.modules.system.dao.SysUserRolePermissionDao;
 import com.backendsys.modules.system.entity.SysUserRoleMenu;
+import com.backendsys.modules.system.entity.SysUserRolePermission;
 import com.backendsys.modules.system.service.SysUserRoleMenuService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -22,6 +25,9 @@ public class SysUserRoleMenuServiceImpl implements SysUserRoleMenuService {
     @Autowired
     private SysUserRoleMenuDao sysUserRoleMenuDao;
 
+    @Autowired
+    private SysUserRolePermissionDao sysUserRolePermissionDao;
+
 //    // 转为树型结构 (SysUserRoleMenu)
 //    public static List<SysUserRoleMenu> buildTree(List<SysUserRoleMenu> sysUserRoleMenuList) {
 //        // 创建一个Map来存储id和SysUserRoleMenu对象的映射关系
@@ -122,7 +128,18 @@ public class SysUserRoleMenuServiceImpl implements SysUserRoleMenuService {
 
     @Override
     public Map<String, Object> insertUserRoleMenu(SysUserRoleMenu sysUserRoleMenu) {
+
+        // 判断权限是否存在
+        String permission_id = sysUserRoleMenu.getPermission_id();
+        if (StrUtil.isNotEmpty(permission_id)) {
+            LambdaQueryWrapper<SysUserRolePermission> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(SysUserRolePermission::getId, permission_id);
+            SysUserRolePermission permission = sysUserRolePermissionDao.selectOne(queryWrapper);
+            if (permission == null) throw new CustException("权限不存在");
+        }
+
         sysUserRoleMenuDao.insert(sysUserRoleMenu);
+
         return Map.of("id", sysUserRoleMenu.getId());
     }
 
@@ -132,6 +149,15 @@ public class SysUserRoleMenuServiceImpl implements SysUserRoleMenuService {
         SysUserRoleMenu detail = selectUserRoleMenuDetail(sysUserRoleMenu);
         if (detail == null) throw new CustException("菜单不存在");
 
+        // 判断权限是否存在
+        String permission_id = sysUserRoleMenu.getPermission_id();
+        if (StrUtil.isNotEmpty(permission_id)) {
+            LambdaQueryWrapper<SysUserRolePermission> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(SysUserRolePermission::getId, permission_id);
+            SysUserRolePermission permission = sysUserRolePermissionDao.selectOne(queryWrapper);
+            if (permission == null) throw new CustException("权限不存在");
+        }
+
         sysUserRoleMenuDao.updateById(sysUserRoleMenu);
         return Map.of("id", sysUserRoleMenu.getId());
     }

+ 7 - 4
src/main/resources/mapper/system/SysUserRoleMenu.xml

@@ -36,10 +36,13 @@
         <where>
             status = 1
             <if test="permission_ids != null and permission_ids.size() > 0">
-                AND permission_id IN
-                <foreach collection="permission_ids" item="permission_id" open="(" separator="," close=")">
-                    #{permission_id}
-                </foreach>
+                AND (
+                    permission_id IS NULL OR permission_id = '' OR
+                    permission_id IN
+                    <foreach collection="permission_ids" item="permission_id" open="(" separator="," close=")">
+                        #{permission_id}
+                    </foreach>
+                )
             </if>
         </where>
         ORDER BY sort ASC