Przeglądaj źródła

feat: 修改目录

wanggaokun 3 tygodni temu
rodzic
commit
a37da47527
18 zmienionych plików z 228 dodań i 159 usunięć
  1. 29 6
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/controller/role/RoleController.java
  2. 1 2
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/roleMenu/RoleMenu.java
  3. 1 1
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/roleMenu/pojo/RoleMenuBO.java
  4. 1 3
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/roleMenu/pojo/RoleMenuVO.java
  5. 1 2
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/rolePerm/RolePerm.java
  6. 3 3
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/rolePerm/pojo/RolePermBO.java
  7. 1 2
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/rolePerm/pojo/RolePermVO.java
  8. 1 1
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/mapper/RoleMenuMapper.java
  9. 1 1
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/mapper/RolePermMapper.java
  10. 1 1
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/menu/MenuService.java
  11. 0 16
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/role/IRoleMenuService.java
  12. 1 45
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/role/IRoleService.java
  13. 0 16
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/role/RoleMenuService.java
  14. 1 60
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/role/RoleService.java
  15. 37 0
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/roleMenu/IRoleMenuService.java
  16. 56 0
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/roleMenu/RoleMenuService.java
  17. 37 0
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/rolePerm/IRolePermService.java
  18. 56 0
      eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/rolePerm/RolePermService.java

+ 29 - 6
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/controller/role/RoleController.java

@@ -14,12 +14,14 @@ import jakarta.validation.constraints.NotEmpty;
 import org.eco.vip.core.pojo.CommonResult;
 import org.eco.vip.core.pojo.PageResult;
 import org.eco.vip.nexus.core.domain.role.pojo.RoleBO;
-import org.eco.vip.nexus.core.domain.role.pojo.RoleMenuBO;
-import org.eco.vip.nexus.core.domain.role.pojo.RoleMenuVO;
 import org.eco.vip.nexus.core.domain.role.pojo.RoleVO;
-import org.eco.vip.nexus.core.domain.user.pojo.UserRoleBO;
-import org.eco.vip.nexus.core.domain.user.pojo.UserRoleVO;
+import org.eco.vip.nexus.core.domain.roleMenu.pojo.RoleMenuBO;
+import org.eco.vip.nexus.core.domain.roleMenu.pojo.RoleMenuVO;
+import org.eco.vip.nexus.core.domain.rolePerm.pojo.RolePermBO;
+import org.eco.vip.nexus.core.domain.rolePerm.pojo.RolePermVO;
 import org.eco.vip.nexus.core.service.role.IRoleService;
+import org.eco.vip.nexus.core.service.roleMenu.IRoleMenuService;
+import org.eco.vip.nexus.core.service.rolePerm.IRolePermService;
 import org.eco.vip.security.annotation.PermissionsResource;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -43,6 +45,12 @@ public class RoleController {
     @Resource
     private IRoleService roleService;
 
+    @Resource
+    private IRoleMenuService roleMenuService;
+
+    @Resource
+    private IRolePermService rolePermService;
+
     @GetMapping("/page")
     public CommonResult<PageResult<RoleVO>> page(RoleBO roleBO) {
         return success(roleService.selectPage(roleBO));
@@ -89,16 +97,31 @@ public class RoleController {
 
     @GetMapping("/menu/{id}")
     public CommonResult<RoleMenuVO> getMenu(@PathVariable("id") @Valid @NotBlank(message = "roleId不能为空") String id) {
-        return success(roleService.selectMenuByRoleId(id));
+        return success(roleMenuService.selectMenuByRoleId(id));
     }
 
     @PutMapping("/menu/add")
     @SaCheckPermission("system:user:addMenu")
     public CommonResult<String> setMenus(@RequestBody @Valid RoleMenuBO roleMenuBO) {
-        boolean result = roleService.setMenus(roleMenuBO);
+        boolean result = roleMenuService.setMenus(roleMenuBO);
         if (!result) {
             return fail("设置菜单失败!");
         }
         return success();
     }
+
+    @GetMapping("/permission/{id}")
+    public CommonResult<RolePermVO> getPermission(@PathVariable("id") @Valid @NotBlank(message = "roleId不能为空") String id) {
+        return success(rolePermService.selectPermissionByRoleId(id));
+    }
+
+    @PutMapping("/permission/add")
+    @SaCheckPermission("system:user:addPermission")
+    public CommonResult<String> setPermissions(@RequestBody @Valid RolePermBO rolePermBO) {
+        boolean result = rolePermService.setPermissions(rolePermBO);
+        if (!result) {
+            return fail("设置权限失败!");
+        }
+        return success();
+    }
 }

+ 1 - 2
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/role/RoleMenu.java → eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/roleMenu/RoleMenu.java

@@ -1,9 +1,8 @@
 /*
  * Copyright (c) 2025 GaoKunW
- *
  */
 
-package org.eco.vip.nexus.core.domain.role;
+package org.eco.vip.nexus.core.domain.roleMenu;
 
 
 import com.mybatisflex.annotation.Table;

+ 1 - 1
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/role/pojo/RoleMenuBO.java → eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/roleMenu/pojo/RoleMenuBO.java

@@ -2,7 +2,7 @@
  * Copyright (c) 2025 GaoKunW
  */
 
-package org.eco.vip.nexus.core.domain.role.pojo;
+package org.eco.vip.nexus.core.domain.roleMenu.pojo;
 
 
 import jakarta.validation.constraints.NotBlank;

+ 1 - 3
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/role/pojo/RoleMenuVO.java → eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/roleMenu/pojo/RoleMenuVO.java

@@ -2,13 +2,12 @@
  * Copyright (c) 2025 GaoKunW
  */
 
-package org.eco.vip.nexus.core.domain.role.pojo;
+package org.eco.vip.nexus.core.domain.roleMenu.pojo;
 
 
 import cn.hutool.core.lang.tree.Tree;
 import lombok.Builder;
 import lombok.Data;
-import org.eco.vip.nexus.core.domain.menu.pojo.MenuVO;
 
 import java.io.Serializable;
 import java.util.List;
@@ -23,7 +22,6 @@ import java.util.List;
 @Builder
 public class RoleMenuVO implements Serializable {
 
-    private List<MenuVO> allMenus;
     private List<Tree<String>> treeMenus;
     private List<String> hasMenus;
 }

+ 1 - 2
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/role/RolePerm.java → eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/rolePerm/RolePerm.java

@@ -1,9 +1,8 @@
 /*
  * Copyright (c) 2025 GaoKunW
- *
  */
 
-package org.eco.vip.nexus.core.domain.role;
+package org.eco.vip.nexus.core.domain.rolePerm;
 
 
 import com.mybatisflex.annotation.Table;

+ 3 - 3
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/role/pojo/RolePermBO.java → eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/rolePerm/pojo/RolePermBO.java

@@ -2,7 +2,7 @@
  * Copyright (c) 2025 GaoKunW
  */
 
-package org.eco.vip.nexus.core.domain.role.pojo;
+package org.eco.vip.nexus.core.domain.rolePerm.pojo;
 
 
 import jakarta.validation.constraints.NotBlank;
@@ -27,8 +27,8 @@ public class RolePermBO implements Serializable {
     private String roleId;
 
     /**
-     * permissionIds
+     * permIds
      */
     @NotEmpty(message = "权限id不能为空")
-    private List<String> permissionIds;
+    private List<String> permIds;
 }

+ 1 - 2
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/role/pojo/RolePermVO.java → eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/rolePerm/pojo/RolePermVO.java

@@ -2,12 +2,11 @@
  * Copyright (c) 2025 GaoKunW
  */
 
-package org.eco.vip.nexus.core.domain.role.pojo;
+package org.eco.vip.nexus.core.domain.rolePerm.pojo;
 
 
 import lombok.Builder;
 import lombok.Data;
-import org.eco.vip.nexus.core.domain.menu.pojo.MenuVO;
 import org.eco.vip.nexus.core.domain.permission.pojo.PermissionVO;
 
 import java.io.Serializable;

+ 1 - 1
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/mapper/RoleMenuMapper.java

@@ -8,7 +8,7 @@ package org.eco.vip.nexus.core.mapper;
 
 import com.mybatisflex.core.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
-import org.eco.vip.nexus.core.domain.role.RoleMenu;
+import org.eco.vip.nexus.core.domain.roleMenu.RoleMenu;
 
 /**
  * @description RoleMenuMapper

+ 1 - 1
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/mapper/RolePermMapper.java

@@ -8,7 +8,7 @@ package org.eco.vip.nexus.core.mapper;
 
 import com.mybatisflex.core.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
-import org.eco.vip.nexus.core.domain.role.RolePerm;
+import org.eco.vip.nexus.core.domain.rolePerm.RolePerm;
 
 /**
  * @description RolePermMapper

+ 1 - 1
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/menu/MenuService.java

@@ -34,7 +34,7 @@ import java.util.List;
 import java.util.stream.Collectors;
 
 import static org.eco.vip.nexus.core.domain.menu.table.MenuTableDef.MENU;
-import static org.eco.vip.nexus.core.domain.role.table.RoleMenuTableDef.ROLE_MENU;
+import static org.eco.vip.nexus.core.domain.roleMenu.table.RoleMenuTableDef.ROLE_MENU;
 import static org.eco.vip.nexus.core.domain.user.table.UserRoleTableDef.USER_ROLE;
 
 /**

+ 0 - 16
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/role/IRoleMenuService.java

@@ -1,16 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.nexus.core.service.role;
-
-
-/**
- * @description IRoleMenuService
- *
- * @author GaoKunW
- * @date 2025/7/8 11:45
- */
-public interface IRoleMenuService {
-}

+ 1 - 45
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/role/IRoleService.java

@@ -6,16 +6,10 @@
 package org.eco.vip.nexus.core.service.role;
 
 
+import org.eco.vip.core.pojo.PageResult;
 import org.eco.vip.nexus.core.domain.role.Role;
-import org.eco.vip.nexus.core.domain.role.RoleMenu;
-import org.eco.vip.nexus.core.domain.role.RolePerm;
 import org.eco.vip.nexus.core.domain.role.pojo.RoleBO;
-import org.eco.vip.nexus.core.domain.role.pojo.RoleMenuBO;
-import org.eco.vip.nexus.core.domain.role.pojo.RoleMenuVO;
 import org.eco.vip.nexus.core.domain.role.pojo.RoleVO;
-import org.eco.vip.core.pojo.PageResult;
-import org.eco.vip.nexus.core.domain.user.pojo.UserRoleBO;
-import org.eco.vip.nexus.core.domain.user.pojo.UserRoleVO;
 import org.eco.vip.orm.service.IBaseService;
 
 import java.util.List;
@@ -49,20 +43,6 @@ public interface IRoleService extends IBaseService<Role> {
      **/
     boolean insert(RoleBO roleBO);
 
-    /**
-     * @description: 新增
-     * @param rolePerm 参数
-     * @return boolean 是否成功
-     **/
-    boolean insertPerm(RolePerm rolePerm);
-
-    /**
-     * @description: 新增
-     * @param roleMenu 参数
-     * @return boolean 是否成功
-     **/
-    boolean insertMenu(RoleMenu roleMenu);
-
     /**
      * @description: 更新
      * @param roleBO 参数
@@ -107,28 +87,4 @@ public interface IRoleService extends IBaseService<Role> {
      * @return 权限列表
      */
     List<String> selectRoleCodesByUserId(String userId);
-
-    /**
-     * 根据ID查询信息
-     *
-     * @param id ID
-     * @return 结果
-     */
-    RoleMenuVO selectMenuByRoleId(String id);
-
-    /**
-     * 设置菜单信息
-     *
-     * @param roleMenuBO roleMenuBO
-     * @return 结果
-     */
-    boolean setMenus(RoleMenuBO roleMenuBO);
-
-    /**
-     * 根据角色IDS查询角色菜单权限
-     *
-     * @param ids IDS
-     * @return 菜单IDS
-     */
-    List<String> selectMenuIdsByRoleIds(List<String> ids);
 }

+ 0 - 16
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/role/RoleMenuService.java

@@ -1,16 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.nexus.core.service.role;
-
-
-/**
- * @description RoleMenuService
- *
- * @author GaoKunW
- * @date 2025/7/8 11:45
- */
-public class RoleMenuService {
-}

+ 1 - 60
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/role/RoleService.java

@@ -6,28 +6,18 @@
 package org.eco.vip.nexus.core.service.role;
 
 
-import cn.hutool.core.lang.tree.Tree;
 import com.mybatisflex.core.paginate.Page;
 import com.mybatisflex.core.query.QueryMethods;
 import com.mybatisflex.core.query.QueryWrapper;
-import com.mybatisflex.core.update.UpdateChain;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.eco.vip.core.pojo.PageResult;
 import org.eco.vip.core.utils.CollUtils;
 import org.eco.vip.core.utils.MapstructUtils;
-import org.eco.vip.nexus.core.domain.menu.pojo.MenuVO;
 import org.eco.vip.nexus.core.domain.role.Role;
-import org.eco.vip.nexus.core.domain.role.RoleMenu;
-import org.eco.vip.nexus.core.domain.role.RolePerm;
 import org.eco.vip.nexus.core.domain.role.pojo.RoleBO;
-import org.eco.vip.nexus.core.domain.role.pojo.RoleMenuBO;
-import org.eco.vip.nexus.core.domain.role.pojo.RoleMenuVO;
 import org.eco.vip.nexus.core.domain.role.pojo.RoleVO;
 import org.eco.vip.nexus.core.mapper.RoleMapper;
-import org.eco.vip.nexus.core.mapper.RoleMenuMapper;
-import org.eco.vip.nexus.core.mapper.RolePermMapper;
-import org.eco.vip.nexus.core.service.menu.IMenuService;
 import org.eco.vip.orm.domain.PageQuery;
 import org.eco.vip.orm.service.BaseService;
 import org.springframework.stereotype.Service;
@@ -36,9 +26,8 @@ import java.util.List;
 
 import static org.eco.vip.nexus.core.domain.org.table.OrgTableDef.ORG;
 import static org.eco.vip.nexus.core.domain.permission.table.PermissionTableDef.PERMISSION;
-import static org.eco.vip.nexus.core.domain.role.table.RoleMenuTableDef.ROLE_MENU;
-import static org.eco.vip.nexus.core.domain.role.table.RolePermTableDef.ROLE_PERM;
 import static org.eco.vip.nexus.core.domain.role.table.RoleTableDef.ROLE;
+import static org.eco.vip.nexus.core.domain.rolePerm.table.RolePermTableDef.ROLE_PERM;
 import static org.eco.vip.nexus.core.domain.user.table.UserRoleTableDef.USER_ROLE;
 import static org.eco.vip.nexus.core.domain.user.table.UserTableDef.USER;
 
@@ -51,18 +40,10 @@ import static org.eco.vip.nexus.core.domain.user.table.UserTableDef.USER;
 @Service
 @Slf4j
 public class RoleService extends BaseService<RoleMapper, Role> implements IRoleService {
-    @Resource
-    private RolePermMapper rolePermMapper;
-
-    @Resource
-    private RoleMenuMapper roleMenuMapper;
 
     @Resource
     private RoleMapper roleMapper;
 
-    @Resource
-    private IMenuService menuService;
-
     private QueryWrapper buildQueryWrapper(RoleBO roleBO) {
         return super.buildBaseQueryWrapper()
                 .and(ROLE.ORG_ID.eq(roleBO.getOrgId()))
@@ -90,16 +71,6 @@ public class RoleService extends BaseService<RoleMapper, Role> implements IRoleS
         return this.save(role);
     }
 
-    @Override
-    public boolean insertPerm(RolePerm rolePerm) {
-        return rolePermMapper.insert(rolePerm) > 0;
-    }
-
-    @Override
-    public boolean insertMenu(RoleMenu roleMenu) {
-        return roleMenuMapper.insert(roleMenu) > 0;
-    }
-
     @Override
     public boolean update(RoleBO roleBO) {
         Role role = MapstructUtils.convert(roleBO, Role.class);
@@ -147,34 +118,4 @@ public class RoleService extends BaseService<RoleMapper, Role> implements IRoleS
                 .where(USER.USER_ID.eq(userId));
         return this.listAs(queryWrapper, String.class);
     }
-
-    @Override
-    public RoleMenuVO selectMenuByRoleId(String id) {
-        List<String> menuIds = roleMenuMapper.selectListWithRelationsByQueryAs(query().select(ROLE_MENU.MENU_ID).and(ROLE_MENU.ROLE_ID.eq(id)), String.class);
-        List<MenuVO> menuVOList = menuService.listAs(query(), MenuVO.class);
-        List<Tree<String>> tree = menuService.tree();
-        return RoleMenuVO.builder().hasMenus(menuIds).allMenus(menuVOList).treeMenus(tree).build();
-    }
-
-    @Override
-    public boolean setMenus(RoleMenuBO roleMenuBO) {
-        UpdateChain.of(roleMenuMapper).eq(RoleMenu::getRoleId, roleMenuBO.getRoleId()).remove();
-        List<RoleMenu> list = roleMenuBO.getMenuIds().stream().map(menuId -> {
-            RoleMenu roleMenu = new RoleMenu();
-            roleMenu.setRoleId(roleMenuBO.getRoleId());
-            roleMenu.setMenuId(menuId);
-            return roleMenu;
-        }).toList();
-        return roleMenuMapper.insertBatch(list) > 0;
-    }
-
-    @Override
-    public List<String> selectMenuIdsByRoleIds(List<String> ids) {
-        QueryWrapper queryWrapper = QueryWrapper.create()
-                .select(QueryMethods.distinct(ROLE_MENU.MENU_ID))
-                .from(ROLE_MENU.as("rmt"))
-                .leftJoin(ROLE.as("rt")).on(ROLE.ROLE_ID.eq(ROLE_MENU.ROLE_ID))
-                .where(ROLE.ROLE_ID.in(ids));
-        return roleMenuMapper.selectListWithRelationsByQueryAs(queryWrapper, String.class);
-    }
 }

+ 37 - 0
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/roleMenu/IRoleMenuService.java

@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ */
+
+package org.eco.vip.nexus.core.service.roleMenu;
+
+
+import org.eco.vip.nexus.core.domain.roleMenu.RoleMenu;
+import org.eco.vip.nexus.core.domain.roleMenu.pojo.RoleMenuBO;
+import org.eco.vip.nexus.core.domain.roleMenu.pojo.RoleMenuVO;
+import org.eco.vip.orm.service.IBaseService;
+
+/**
+ * @description IRoleMenuService
+ *
+ * @author GaoKunW
+ * @date 2025/7/8 11:45
+ */
+public interface IRoleMenuService extends IBaseService<RoleMenu> {
+
+    /**
+     * 根据ID查询信息
+     *
+     * @param id ID
+     * @return 结果
+     */
+    RoleMenuVO selectMenuByRoleId(String id);
+
+    /**
+     * 设置菜单信息
+     *
+     * @param roleMenuBO roleMenuBO
+     * @return 结果
+     */
+    boolean setMenus(RoleMenuBO roleMenuBO);
+
+}

+ 56 - 0
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/roleMenu/RoleMenuService.java

@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ */
+
+package org.eco.vip.nexus.core.service.roleMenu;
+
+
+import cn.hutool.core.lang.tree.Tree;
+import com.mybatisflex.core.update.UpdateChain;
+import jakarta.annotation.Resource;
+import org.eco.vip.nexus.core.domain.roleMenu.RoleMenu;
+import org.eco.vip.nexus.core.domain.roleMenu.pojo.RoleMenuBO;
+import org.eco.vip.nexus.core.domain.roleMenu.pojo.RoleMenuVO;
+import org.eco.vip.nexus.core.mapper.RoleMenuMapper;
+import org.eco.vip.nexus.core.service.menu.IMenuService;
+import org.eco.vip.orm.service.BaseService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+import static org.eco.vip.nexus.core.domain.roleMenu.table.RoleMenuTableDef.ROLE_MENU;
+
+
+/**
+ * @description RoleMenuService
+ *
+ * @author GaoKunW
+ * @date 2025/7/8 11:45
+ */
+@Service
+public class RoleMenuService extends BaseService<RoleMenuMapper, RoleMenu> implements IRoleMenuService {
+    @Resource
+    private RoleMenuMapper roleMenuMapper;
+
+    @Resource
+    private IMenuService menuService;
+
+    @Override
+    public RoleMenuVO selectMenuByRoleId(String id) {
+        List<String> menuIds = roleMenuMapper.selectListWithRelationsByQueryAs(query().select(ROLE_MENU.MENU_ID).and(ROLE_MENU.ROLE_ID.eq(id)), String.class);
+        List<Tree<String>> tree = menuService.tree();
+        return RoleMenuVO.builder().hasMenus(menuIds).treeMenus(tree).build();
+    }
+
+    @Override
+    public boolean setMenus(RoleMenuBO roleMenuBO) {
+        UpdateChain.of(roleMenuMapper).eq(RoleMenu::getRoleId, roleMenuBO.getRoleId()).remove();
+        List<RoleMenu> list = roleMenuBO.getMenuIds().stream().map(menuId -> {
+            RoleMenu roleMenu = new RoleMenu();
+            roleMenu.setRoleId(roleMenuBO.getRoleId());
+            roleMenu.setMenuId(menuId);
+            return roleMenu;
+        }).toList();
+        return roleMenuMapper.insertBatch(list) > 0;
+    }
+}

+ 37 - 0
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/rolePerm/IRolePermService.java

@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ */
+
+package org.eco.vip.nexus.core.service.rolePerm;
+
+
+import org.eco.vip.nexus.core.domain.rolePerm.RolePerm;
+import org.eco.vip.nexus.core.domain.rolePerm.pojo.RolePermBO;
+import org.eco.vip.nexus.core.domain.rolePerm.pojo.RolePermVO;
+import org.eco.vip.orm.service.IBaseService;
+
+/**
+ * @description IRolePermService
+ *
+ * @author GaoKunW
+ * @date 2025/7/20 16:34
+ */
+public interface IRolePermService extends IBaseService<RolePerm> {
+
+    /**
+     * 根据ID查询信息
+     *
+     * @param id ID
+     * @return 结果
+     */
+    RolePermVO selectPermissionByRoleId(String id);
+
+    /**
+     * 设置权限点信息
+     *
+     * @param rolePermBO rolePermBO
+     * @return 结果
+     */
+    boolean setPermissions(RolePermBO rolePermBO);
+
+}

+ 56 - 0
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/rolePerm/RolePermService.java

@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ */
+
+package org.eco.vip.nexus.core.service.rolePerm;
+
+
+import com.mybatisflex.core.update.UpdateChain;
+import jakarta.annotation.Resource;
+import org.eco.vip.nexus.core.domain.permission.pojo.PermissionVO;
+import org.eco.vip.nexus.core.domain.rolePerm.RolePerm;
+import org.eco.vip.nexus.core.domain.rolePerm.pojo.RolePermBO;
+import org.eco.vip.nexus.core.domain.rolePerm.pojo.RolePermVO;
+import org.eco.vip.nexus.core.mapper.RolePermMapper;
+import org.eco.vip.nexus.core.service.permission.IPermissionService;
+import org.eco.vip.orm.service.BaseService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+import static org.eco.vip.nexus.core.domain.rolePerm.table.RolePermTableDef.ROLE_PERM;
+
+/**
+ * @description RolePermService
+ *
+ * @author GaoKunW
+ * @date 2025/7/20 16:34
+ */
+@Service
+public class RolePermService extends BaseService<RolePermMapper, RolePerm> implements IRolePermService {
+
+    @Resource
+    private RolePermMapper rolePermMapper;
+
+    @Resource
+    private IPermissionService permissionService;
+
+    @Override
+    public RolePermVO selectPermissionByRoleId(String id) {
+        List<String> menuIds = rolePermMapper.selectListWithRelationsByQueryAs(query().select(ROLE_PERM.PERM_ID).and(ROLE_PERM.ROLE_ID.eq(id)), String.class);
+        List<PermissionVO> permissionVOList = permissionService.listAs(query(), PermissionVO.class);
+        return RolePermVO.builder().hasPermissions(menuIds).allPermissions(permissionVOList).build();
+    }
+
+    @Override
+    public boolean setPermissions(RolePermBO rolePermBO) {
+        UpdateChain.of(rolePermMapper).eq(RolePerm::getRoleId, rolePermBO.getRoleId()).remove();
+        List<RolePerm> list = rolePermBO.getPermIds().stream().map(permId -> {
+            RolePerm rolePerm = new RolePerm();
+            rolePerm.setRoleId(rolePermBO.getRoleId());
+            rolePerm.setPermId(permId);
+            return rolePerm;
+        }).toList();
+        return rolePermMapper.insertBatch(list) > 0;
+    }
+}