2.8 KiB
2.8 KiB
全栈开发计划:多角色系统与简历投递功能
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方法:- 尝试
getLoginUser(User) - 失败则尝试
getLoginAdmin(Admin) - 失败则尝试
getLoginBoss(Boss) - 统一设置
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中的表结构与实体类一致(目前看来基本一致,主要关注索引和约束)。
执行顺序
- 后端: 修改 Controllers 和 Services 权限逻辑。
- 前端: 更新 API -> 修改 Store -> 开发简历页 -> 开发投递功能 -> 开发 Boss 工作台 -> 完善权限控制 UI。