Files
BOSS/.trae/documents/多角色招聘系统全栈开发计划.md
2026-01-10 21:55:01 +08:00

50 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 全栈开发计划:多角色系统与简历投递功能
## 1. 后端权限修正与逻辑完善
### 权限放宽与校验
- **JobPostingController**: 移除 `add`, `update`, `delete``@AuthCheck(mustRole = UserConstant.ADMIN_ROLE)` 限制,修改为允许 **Boss** 操作。在 Service 层添加逻辑,确保 Boss 只能操作自己发布的职位。
- **BossApplicationDecisionController**: 移除 `@AuthCheck(ADMIN_ROLE)`,允许 **Boss** 提交决策。确保 Boss 只能处理投递给自己职位的申请。
- **BossController**: 调整 `update`, `delete` 权限,允许 Admin 和 Boss 自己操作。
### 业务逻辑增强
- **ApplicationController**: 确保 `add` 接口正确处理投递逻辑(检查是否已投递、关联简历等)。
- **ResumeService**: 确认并确保 `delete``update` 操作校验了 `userId`,防止越权修改。
## 2. 前端架构升级
### API 更新
- 运行 `npm run openapi`,生成最新的后端接口定义(包含 `getLoginBoss` 等)。
### 状态管理 (Store)
- 改造 `src/stores/user.ts` 中的 `fetchLoginUser` 方法:
1. 尝试 `getLoginUser` (User)
2. 失败则尝试 `getLoginAdmin` (Admin)
3. 失败则尝试 `getLoginBoss` (Boss)
4. 统一设置 `loginUser` 状态,并附加 `role` 字段('user' | 'admin' | 'boss')。
## 3. 前端功能模块开发
### 简历管理模块 (User & Admin)
- **我的简历 (`/user/resumes`)**: 展示当前用户的简历列表。
- **简历编辑/创建 (`/user/resume/edit/:id?`)**: 表单页面,支持 Markdown 编辑。
- **权限控制**: 列表页仅展示自己的简历Admin 可在后台管理页查看所有。
### 职位与投递模块 (User)
- **投递功能**: 在职位详情页或列表页增加“投递”按钮。
- 弹窗选择要使用的简历。
- 调用 `/application/add` 接口。
- **我的投递 (`/user/applications`)**: 列表展示已投递的职位、投递时间及当前状态(已投递/已拒绝/面试中等)。
### Boss 工作台 (Boss)
- **收到的投递 (`/boss/applications`)**: 展示投递给当前 Boss 的申请列表。
- **决策操作**: 提供“接受”和“拒绝”按钮,调用 `/decision/add` 接口更新状态。
### Boss 列表管理 (Admin & Boss)
- **Boss 列表页 (`/bosses`)**:
- 所有人可见列表。
- **修改/删除按钮**: 仅当 `loginUser.role === 'admin'``loginUser.id === item.id` (且角色为 Boss) 时显示。
## 4. 数据库完善
- 确保 `f:\Code\BOSS\BOSSBackEnd\sql\sql.sql` 中的表结构与实体类一致(目前看来基本一致,主要关注索引和约束)。
## 执行顺序
1. **后端**: 修改 Controllers 和 Services 权限逻辑。
2. **前端**: 更新 API -> 修改 Store -> 开发简历页 -> 开发投递功能 -> 开发 Boss 工作台 -> 完善权限控制 UI。