# 项目设计文档(imeetingNew) ## 1. 项目概述 本项目为“智能会议语音识别与总结系统”的管理后台,提供用户、角色、权限、设备与任务等管理能力。 后端为 Java 服务,前端为后台管理 Web。 ## 2. 技术栈 ### 后端 - Java 17 - Spring Boot 3.x - Spring MVC - Spring Security + JWT - ORM: MyBatis / MyBatis-Plus - Database: PostgreSQL - Cache: Redis - Build: Maven ### 前端 - React 18 - TypeScript - Ant Design - React Router - Axios - Vite ## 3. 系统架构 ### 后端分层 - Controller:接收请求、参数校验、返回响应 - Service:业务编排与事务边界 - Mapper:数据访问 - DTO/VO:对外数据结构 ### 前端分层 ``` src ├─ api # 后端接口封装 ├─ components # 通用组件 ├─ layouts # 布局 ├─ pages # 页面 ├─ routes # 路由 ├─ hooks # 自定义 hooks ├─ utils # 工具 └─ types # 类型定义 ``` ## 4. 数据库设计(核心) 详见 `design/db_schema.md` 与 `design/db_schema_pgsql.sql`。 核心表: - sys_user / sys_role / sys_user_role - sys_permission / sys_role_permission - sys_dict_type / sys_dict_item - sys_param - sys_log ## 5. 权限设计 ### 权限模型 - 角色与权限多对多 - 用户与角色多对多 - 权限分为 menu / button - 支持层级菜单(1级/2级) ### 超级管理员 - 约定 `user_id = 1` 为超级管理员 - 后端权限查询对其返回全量权限 ### 接口 - `GET /api/permissions`:仅管理员可用(全量) - `GET /api/permissions/me`:当前用户权限 - `GET /api/permissions/tree`:管理员权限树 - `GET /api/permissions/tree/me`:当前用户权限树 ### 创建/更新校验 - level=1 时清空 parentId - level=2 时 parentId 必须存在且为 level=1 - button 权限必须填写 code - menu 权限 code 可选 ## 6. 前端权限处理 - 登录后调用 `/api/users/me` 获取 `isAdmin` - `isAdmin=true` 时前端不做权限限制 - 非管理员通过 `/api/permissions/me` 获取权限码用于按钮控制 - 菜单展示按权限树构建 ## 7. 关键流程 ### 登录 1. `/auth/captcha` 2. `/auth/login` 3. `/api/users/me`(获取用户信息与 isAdmin) ### 权限菜单渲染 1. `/api/permissions/me` 获取权限列表 2. 前端构建树形菜单 ## 8. 约束与规范 - 后端禁用 JPA/Hibernate - 统一响应 `ApiResponse` - Controller 不直接调用 Mapper - 前端禁止在页面内直接调用 axios ## 9. 后续扩展建议 - 添加审计日志落库策略 - 任务管理模块完善 - 权限树缓存与增量刷新策略