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

2.8 KiB
Raw Blame History

全栈开发计划:多角色系统与简历投递功能

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: 确认并确保 deleteupdate 操作校验了 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。