# 全栈开发计划:多角色系统与简历投递功能 ## 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。