2.6 KiB
2.6 KiB
项目设计文档(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. 关键流程
登录
/auth/captcha/auth/login/api/users/me(获取用户信息与 isAdmin)
权限菜单渲染
/api/permissions/me获取权限列表- 前端构建树形菜单
8. 约束与规范
- 后端禁用 JPA/Hibernate
- 统一响应
ApiResponse<T> - Controller 不直接调用 Mapper
- 前端禁止在页面内直接调用 axios
9. 后续扩展建议
- 添加审计日志落库策略
- 任务管理模块完善
- 权限树缓存与增量刷新策略