4.9 KiB
4.9 KiB
Requirements Document
Introduction
为 adminSystem 前端后台管理系统提供完整的后端 API 支持,包括用户认证、用户管理、角色管理、菜单管理等功能。后端将扩展现有的 C# ASP.NET Core 项目 (backend-csharp),与 AMT Scanner 功能共用同一个后端服务。
Glossary
- Auth_Service: 认证服务,负责用户登录、Token 管理
- User_Service: 用户服务,负责用户 CRUD 操作
- Role_Service: 角色服务,负责角色 CRUD 操作
- Menu_Service: 菜单服务,负责动态菜单管理
- JWT_Token: JSON Web Token,用于用户身份验证
- Refresh_Token: 刷新令牌,用于获取新的访问令牌
Requirements
Requirement 1: 用户登录认证
User Story: As a 系统用户, I want to 使用用户名和密码登录系统, so that I can 访问受保护的功能。
Acceptance Criteria
- WHEN 用户提交有效的用户名和密码 THEN THE Auth_Service SHALL 返回 JWT Token 和 Refresh Token
- WHEN 用户提交无效的凭据 THEN THE Auth_Service SHALL 返回 401 错误和错误消息
- THE Auth_Service SHALL 使用 BCrypt 或类似算法对密码进行哈希存储
- WHEN Token 过期 THEN THE Auth_Service SHALL 支持使用 Refresh Token 获取新的 Access Token
- THE JWT_Token SHALL 包含用户 ID、用户名、角色列表等基本信息
Requirement 2: 获取用户信息
User Story: As a 已登录用户, I want to 获取我的用户信息, so that I can 查看我的权限和个人资料。
Acceptance Criteria
- WHEN 用户携带有效 Token 请求用户信息 THEN THE User_Service SHALL 返回用户详细信息
- THE User_Service SHALL 返回用户的角色列表 (roles)
- THE User_Service SHALL 返回用户的按钮权限列表 (buttons)
- WHEN Token 无效或过期 THEN THE User_Service SHALL 返回 401 错误
Requirement 3: 用户管理
User Story: As a 管理员, I want to 管理系统用户, so that I can 控制谁可以访问系统。
Acceptance Criteria
- THE User_Service SHALL 支持分页查询用户列表
- WHEN 管理员创建新用户 THEN THE User_Service SHALL 验证用户名唯一性
- THE User_Service SHALL 支持按用户名、状态、性别等条件搜索用户
- WHEN 管理员更新用户信息 THEN THE User_Service SHALL 记录更新时间和更新人
- WHEN 管理员删除用户 THEN THE User_Service SHALL 执行软删除或硬删除
Requirement 4: 角色管理
User Story: As a 超级管理员, I want to 管理系统角色, so that I can 定义不同的权限级别。
Acceptance Criteria
- THE Role_Service SHALL 支持分页查询角色列表
- WHEN 创建角色 THEN THE Role_Service SHALL 验证角色编码唯一性
- THE Role_Service SHALL 支持启用/禁用角色
- THE Role_Service SHALL 支持为角色分配菜单权限
Requirement 5: 动态菜单
User Story: As a 系统用户, I want to 根据我的角色获取对应的菜单, so that I can 只看到我有权限访问的功能。
Acceptance Criteria
- WHEN 用户请求菜单列表 THEN THE Menu_Service SHALL 返回用户角色对应的菜单树
- THE Menu_Service SHALL 支持菜单的层级结构 (父子关系)
- THE Menu_Service SHALL 返回菜单的图标、标题、路径、组件等信息
- WHEN 菜单配置了角色限制 THEN THE Menu_Service SHALL 根据用户角色过滤菜单
Requirement 6: 数据库设计
User Story: As a 开发者, I want to 有清晰的数据库结构, so that I can 正确存储和查询数据。
Acceptance Criteria
- THE Database SHALL 包含 Users 表存储用户信息
- THE Database SHALL 包含 Roles 表存储角色信息
- THE Database SHALL 包含 UserRoles 表存储用户-角色关联
- THE Database SHALL 包含 Menus 表存储菜单信息
- THE Database SHALL 包含 RoleMenus 表存储角色-菜单关联
- THE Database SHALL 使用 MySQL 作为数据库引擎
Requirement 7: API 响应格式
User Story: As a 前端开发者, I want to 统一的 API 响应格式, so that I can 方便地处理后端返回的数据。
Acceptance Criteria
- THE API SHALL 返回统一的响应结构: { code, msg, data }
- WHEN 请求成功 THEN THE API SHALL 返回 code = 200
- WHEN 认证失败 THEN THE API SHALL 返回 code = 401
- WHEN 请求参数错误 THEN THE API SHALL 返回 code = 400
- WHEN 服务器错误 THEN THE API SHALL 返回 code = 500
Requirement 8: 集成 AMT Scanner 菜单
User Story: As a 系统用户, I want to 在管理系统中访问 AMT Scanner 功能, so that I can 在统一的界面中管理设备。
Acceptance Criteria
- THE Menu_Service SHALL 包含 AMT 设备管理菜单项
- THE Menu_Service SHALL 包含网络扫描菜单项
- THE Menu_Service SHALL 包含凭据管理菜单项
- THE Menu_Service SHALL 包含远程桌面菜单项
- THE Menu_Service SHALL 包含电源控制菜单项