You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.5 KiB
4.5 KiB
n04-onboard 入职清单与公司知识介绍
Why
产品功能表将 M1.1「入职清单」和 M1.2「公司了解」列为一期 P2 功能,但当前后端没有对应表、服务、API、权限或测试。学生缺少可执行的标准入职准备事项,也无法在一个接口中集中查看企业基础资料、企业文化与制度、员工评价摘要;企业也没有维护自定义清单和公司知识内容的入口。
本变更以最小可用闭环补齐后端能力:通用清单提供稳定基线,企业自定义项补足差异,学生的个人完成状态可持续计算完成率;公司知识优先展示企业已维护内容与公开评价摘要,信息不足时合法回退到企业基础信息。
What Changes
- 新增
onboarding后端模块,提供 9 个接口:GET /onboarding/companies/{companyId}/checklistPUT /onboarding/companies/{companyId}/checklist/items/{itemId}/completionGET /onboarding/companies/{companyId}/knowledgeGET /onboarding/company/checklist-itemsPOST /onboarding/company/checklist-itemsPUT /onboarding/company/checklist-items/{itemId}DELETE /onboarding/company/checklist-items/{itemId}GET /onboarding/company/knowledgePUT /onboarding/company/knowledge
- 新增三类持久化数据:通用/企业自定义清单项、学生对清单项的完成状态、企业知识内容。
- 通过 Flyway 写入通用入职清单种子数据;企业未配置自定义项时,学生仍获得通用清单。
- 公司知识聚合企业基础资料、企业维护的文化/制度/入职指南,以及该公司所有公开岗位评价的汇总;有效公开评价少于 3 条时不展示平均分,避免小样本暴露。
- 企业配置接口仅允许企业维护本公司数据;学生接口仅允许学生读取公司资料并更新本人清单状态。
- 补齐错误码、幂等键、乐观锁、MockMvc、Service、持久化、迁移、端到端测试、OpenAPI 与前端联调文档。
Scope
In Scope
- 通用清单的数据库种子数据、排序、分类和必填标记。
- 企业自定义清单项的创建、查询、更新和软删除。
- 学生按企业读取有效清单、查看个人完成状态、设置完成或未完成。
- 企业知识内容的读取与 Upsert。
- 公司知识介绍聚合公司基础资料与公开评价摘要,并支持
BASIC_ONLY回退。 - COMPANY 所有权校验、STUDENT 角色校验、敏感字段白名单响应。
- 创建幂等、更新/删除乐观锁、并发冲突错误码和重复请求重放。
- 模块自动化测试、OpenAPI 静态契约校验和前端联调文档。
Out of Scope
- ADMIN 管理通用模板、发布审核、版本回滚和内容治理后台。
- 通知提醒、职场内容推荐、试用期提醒、入职回访和在职反馈。
- 按岗位、投递或 Offer 生成个性化清单。
- 第三方 CMS、富文本 HTML、AI 生成公司介绍或 AI 内容审核。
- 学生端页面、企业端页面和前端状态管理。
- 修改已有企业、岗位、Offer 或评价接口的响应语义。
Impact
mydreamjob-server/src/main/resources/db/migration/:新增 V38、V39 迁移,不修改 V1-V37。mydreamjob-server/src/main/java/com/mydreamjob/onboarding/:新增领域实体、Repository、Service、Controller 和 DTO。mydreamjob-server/src/main/java/com/mydreamjob/common/exception/ErrorCode.java:新增 97xx 错误码。docs/openapi-rc.json、docs/onboarding-api.md、docs/frontend-integration.md、路线图和 README 状态说明。- 现有
Company、Job、JobReview、JobReviewDimensionScore只读复用,不改变其表结构和接口。 - 新增表使用 Flyway,支持 MySQL 8.4 与 H2
MODE=MySQL集成测试。
Proof of Completion
- 学生可在企业无自定义项时取得通用清单;有自定义项时取得合并后的有效清单。
- 学生重复设置同一完成状态不产生重复行,完成率和完成时间正确;并发冲突返回明确 409 错误码。
- 企业只能操作本企业数据;跨企业 itemId、非 COMPANY 或非 STUDENT 请求返回 403/404,不泄露其他企业数据。
- 公司知识响应只包含白名单字段;无企业知识内容时返回
BASIC_ONLY和企业基础资料;评价少于 3 条时不返回平均分。 mvn -Dtest=Onboarding*Test test、mvn clean verify、python docs/verify_openapi.py全部通过。- OpenAPI 契约包含全部 9 个路径、请求体和响应模型,且与运行时文档一致。