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.
5.1 KiB
5.1 KiB
Company Knowledge
ADDED Requirements
Requirement: 学生读取公司知识介绍
系统 SHALL 允许已登录 STUDENT 通过 GET /onboarding/companies/{companyId}/knowledge 读取公司知识介绍。响应 MUST 聚合企业基础资料、企业维护的知识内容以及公开评价摘要,并使用白名单 DTO 排除 ownerUserId 等内部字段。
Scenario: 企业已维护知识内容
- WHEN STUDENT 请求存在企业且该企业已有知识内容
- THEN 系统返回企业基础资料、文化、工作制度、入职指南和更新时间
- AND
knowledgeState为CONFIGURED - AND 不返回企业
ownerUserId、员工用户 ID、评价哈希或审核原因
Scenario: 企业未维护知识内容
- WHEN STUDENT 请求存在企业且该企业没有知识内容记录
- THEN 系统仍返回企业基础资料
- AND
knowledgeState为BASIC_ONLY - AND 知识内容字段为
null或空集合,不返回 404
Scenario: 企业不存在
- WHEN STUDENT 请求不存在的
companyId - THEN 系统返回 404
COMPANY_NOT_FOUND
Requirement: 公司知识评价摘要使用公开数据和小样本保护
系统 SHALL 聚合该企业全部岗位中状态为 PUBLISHED 且审核状态为 AUTO_APPROVED 或 APPROVED 的评价。公开评价少于 3 条时 MUST 返回 INSUFFICIENT 或 EMPTY,且不得返回平均分或维度均值。达到 3 条时 MAY 返回平均评分、评分分布、热门标签和八维均值。
Scenario: 无公开评价
- WHEN 企业没有任何符合条件的公开评价
- THEN
reviewSummary.state为EMPTY - AND
totalReviews为 0 - AND
averageRating与dimensionSummary为空
Scenario: 公开评价少于 3 条
- WHEN 企业只有 1 或 2 条符合条件的公开评价
- THEN
reviewSummary.state为INSUFFICIENT - AND 系统返回真实
totalReviews - AND 不返回平均分、评分分布或维度均值
Scenario: 公开评价达到 3 条
- WHEN 企业有至少 3 条符合条件的公开评价
- THEN
reviewSummary.state为SUFFICIENT - AND 系统返回平均评分、评分分布、热门标签和维度汇总
- AND 每个维度返回样本数及是否达到小样本阈值
Requirement: 企业读取本企业知识配置
系统 SHALL 允许 COMPANY 通过 GET /onboarding/company/knowledge 读取本企业知识配置。无记录时 MUST 返回 configured=false 和空内容,而不是 404;有记录时 MUST 返回内容和当前版本。
Scenario: 尚未配置
- WHEN COMPANY 请求本企业知识配置且尚未创建记录
- THEN 系统返回
configured=false - AND 内容字段为空,版本为
0
Scenario: 已配置
- WHEN COMPANY 请求本企业已有知识配置
- THEN 系统返回文化、工作制度、入职指南、更新时间和当前版本
- AND
configured=true
Requirement: 企业 Upsert 公司知识内容
系统 SHALL 允许 COMPANY 通过 PUT /onboarding/company/knowledge 创建或更新本企业知识内容。字段 MUST 使用纯文本并受长度限制,不允许 HTML 富文本。更新已有记录时 MUST 使用乐观锁版本;版本冲突返回 409 ONBOARDING_KNOWLEDGE_CONCURRENT_UPDATE。
Scenario: 首次创建
- WHEN COMPANY 首次提交合法的知识内容
- THEN 系统创建绑定该企业的知识记录
- AND 返回
configured=true和版本0
Scenario: 使用当前版本更新
- WHEN COMPANY 使用当前版本提交新的文化、制度或入职指南
- THEN 系统更新记录并递增版本
- AND 返回最新内容
Scenario: 使用过期版本更新
- WHEN COMPANY 使用过期版本提交知识内容
- THEN 系统返回 409
ONBOARDING_KNOWLEDGE_CONCURRENT_UPDATE - AND 不覆盖数据库中的新内容
Scenario: 非法内容
- WHEN 请求字段超出最大长度或包含不受支持的格式
- THEN 系统返回 400
BAD_REQUEST - AND 不写入知识记录
Requirement: 公司知识权限与所有权隔离
学生读取接口 MUST 仅允许 STUDENT;企业配置接口 MUST 仅允许 COMPANY 且只操作当前用户拥有的企业。任何跨企业读取配置或修改操作 MUST 被拒绝。
Scenario: 企业访问本企业配置
- WHEN COMPANY 读取或更新自己的知识记录
- THEN 系统允许操作
Scenario: 非企业访问企业配置
- WHEN STUDENT、ADMIN 或未登录用户访问企业知识配置接口
- THEN 系统返回 401 或 403
- AND 不读取或修改企业配置
Scenario: 不存在的企业
- WHEN STUDENT 请求不存在的公司知识
- THEN 系统返回 404
COMPANY_NOT_FOUND
Requirement: 不改变既有评价与企业接口语义
本变更 MUST 只读复用既有企业、岗位、评价和维度评分数据,不得修改既有表结构、响应字段或权限语义。
Scenario: 既有评价接口回归
- WHEN 执行已有评价与企业模块测试
- THEN 所有既有测试保持通过
- AND OpenAPI 中既有路径的请求与响应语义不变