数据库部分
Jeecg 的权限模块在数据库中通常涉及以下几个表:
-
权限表(
sys_permission
):存储权限的基本信息,如权限名称、权限标识、描述等。CREATE TABLE `sys_permission` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL COMMENT '权限名称', `perms` VARCHAR(100) NOT NULL COMMENT '权限标识', `description` VARCHAR(255) COMMENT '描述', PRIMARY KEY (`id`) );
-
角色表(
sys_role
):存储系统中定义的角色信息。CREATE TABLE `sys_role` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL COMMENT '角色名称', `code` VARCHAR(50) NOT NULL COMMENT '角色编码', `description` VARCHAR(255) COMMENT '描述', PRIMARY KEY (`id`) );
-
用户角色关联表(
sys_user_role
):存储用户和角色的对应关系。CREATE TABLE `sys_user_role` ( `user_id` BIGINT NOT NULL COMMENT '用户ID', `role_id` BIGINT NOT NULL COMMENT '角色ID', PRIMARY KEY (`user_id`, `role_id`) );
-
角色权限关联表(
sys_role_permission
):存储角色和权限的对应关系。CREATE TABLE `sys_role_permission` ( `role_id` BIGINT NOT NULL COMMENT '角色ID', `permission_id` BIGINT NOT NULL COMMENT '权限ID', PRIMARY KEY (`role_id`, `permission_id`) );
后端部分
角色后端路径(\jeecg-module-system\jeecg-system-biz\src\main\java\org\jeecg\modules\system\controller\SysRoleController.java)
后端主要采用 Spring Boot 框架进行开发,以下是一些关键点:
-
Controller:处理权限的增删改查请求。
@RestController @RequestMapping("/sys/permission") public class PermissionController { @Autowired private PermissionService permissionService; @GetMapping public List<Permission> getAllPermissions() { return permissionService.getAllPermissions(); } @PostMapping public void addPermission(@RequestBody Permission permission) { permissionService.savePermission(permission); } @PutMapping public void updatePermission(@RequestBody Permission permission) { permissionService.updatePermission(permission); } @DeleteMapping("/{id}") public void deletePermission(@PathVariable Long id) { permissionService.deletePermission(id); } }
-
Service:负责业务逻辑处理,如获取权限列表、保存权限、更新权限、删除权限等。
@Service public class PermissionService { @Autowired private PermissionRepository permissionRepository; public List<Permission> getAllPermissions() { return permissionRepository.findAll(); } public void savePermission(Permission permission) { permissionRepository.save(permission); } public void updatePermission(Permission permission) { permissionRepository.save(permission); } public void deletePermission(Long id) { permissionRepository.deleteById(id); } }
-
Repository:负责与数据库进行交互,通常使用 JPA 或者 MyBatis。
@Repository public interface PermissionRepository extends JpaRepository<Permission, Long> { }
前端部分
角色前端路径(\src\views\system\role\index.vue)
前端部分通常采用 Vue.js 进行开发,以下是一些关键点:
-
权限管理页面:展示权限列表,并提供增删改查功能。
<template> <div class="permission-container"> <el-table :data="permissionList" stripe style="width: 100%"> <el-table-column prop="name" label="权限名称"></el-table-column> <el-table-column prop="perms" label="权限标识"></el-table-column> <el-table-column prop="description" label="描述"></el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-button @click="handleEdit(scope.row)" type="primary">编辑</el-button> <el-button @click="handleDelete(scope.row.id)" type="danger">删除</el-button> </template> </el-table-column> </el-table> <el-button @click="handleAdd">新增权限</el-button> </div> </template> <script> export default { data() { return { permissionList: [] }; }, created() { this.fetchPermissions(); }, methods: { fetchPermissions() { this.$axios.get('/sys/permission') .then(response => { this.permissionList = response.data; }) .catch(error => { this.$message.error('获取权限失败'); }); }, handleAdd() { // 处理新增权限事件 }, handleEdit(permission) { // 处理编辑权限事件 }, handleDelete(id) { this.$axios.delete(`/sys/permission/${id}`) .then(() => { this.$message.success('删除成功'); this.fetchPermissions(); }) .catch(() => { this.$message.error('删除失败'); }); } } }; </script>
-
路由:配置权限管理路由,动态加载权限管理页面。
import Vue from 'vue'; import Router from 'vue-router'; import Home from '@/views/Home.vue'; import Permission from '@/views/Permission.vue'; Vue.use(Router); const router = new Router({ routes: [ { path: '/', name: 'Home', component: Home, children: [ { path: 'permission', name: 'Permission', component: Permission } ] } ] }); export default router;
Jeecg 的权限模块结合了前后端的开发,使得用户可以方便地管理系统中的权限和角色。通过 Spring Boot 进行后端处理,Vue.js 进行前端展示,整个流程高效且易于维护。
标签:permission,boot,企业级,sys,public,role,权限,id,jeecg From: https://blog.csdn.net/qq_46685188/article/details/140720071