# T5 任务简报:公司知识配置与公开评价摘要 ## Where This Fits - Wave: W2 - Depends on: T4 - Contract: `changes/n04-onboard/execution-contract.md` - Specs: `changes/n04-onboard/specs/company-knowledge/spec.md` ## Objective 实现 COMPANY 知识配置读取/Upsert 和 STUDENT 公司知识聚合接口,先用失败测试锁定基础信息回退、小样本保护和八维摘要。 ## Files In Scope - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/CompanyKnowledgeService.java` - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/CompanyKnowledgeController.java` - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/dto/CompanyKnowledgeUpdateRequest.java` - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/dto/CompanyKnowledgeView.java` - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/dto/CompanyKnowledgeOverviewResponse.java` - `mydreamjob-server/src/main/java/com/mydreamjob/onboarding/dto/ReviewSummaryView.java` - `mydreamjob-server/src/test/java/com/mydreamjob/onboarding/CompanyKnowledgeServiceTest.java` - `mydreamjob-server/src/test/java/com/mydreamjob/onboarding/CompanyKnowledgeControllerTest.java` ## Required Behavior - `GET /api/v1/onboarding/company/knowledge` 仅 COMPANY;无记录返回 configured=false、空内容、version=0;有记录返回 configured=true、culture、workPolicies、onboardingGuide、updatedAt、version。 - `PUT /api/v1/onboarding/company/knowledge` 仅 COMPANY;首次创建允许无 version;已有记录必须提供当前 version;冲突返回 `ONBOARDING_KNOWLEDGE_CONCURRENT_UPDATE`。 - 知识字段按纯文本处理,culture <=2000,workPolicies <=4000,onboardingGuide <=4000,至少一个非空。 - `GET /api/v1/onboarding/companies/{companyId}/knowledge` 仅 STUDENT;企业不存在返回 `COMPANY_NOT_FOUND`。 - 无知识记录时 knowledgeState=BASIC_ONLY、knowledge=null,并返回企业基础资料白名单。 - 有知识记录时 knowledgeState=CONFIGURED。 - 评价只统计该公司全部岗位下 PUBLISHED 且 AUTO_APPROVED/APPROVED 的评价。 - 0 条:state=EMPTY,totalReviews=0,平均分/分布/标签/维度汇总为空。 - 1-2 条:state=INSUFFICIENT,返回 totalReviews,不返回任何均值。 - 至少 3 条:state=SUFFICIENT,返回 averageRating、ratingDistribution、topTags(次数降序、字典序升序,最多 10)、八个维度的 averageScore/sampleCount/dataState。 - 缺失维度 sampleCount=0、dataState=INSUFFICIENT。 - 响应不得包含 ownerUserId、studentUserId、审核原因、哈希、IP、User-Agent。 ## TDD Requirement 1. 先写 Service/Controller 失败测试,确认 RED。 2. 再实现最小 DTO、Service、Controller 让测试 GREEN。 3. 不修改既有评价/企业接口响应。 ## Evidence Commands ```powershell cd D:\1\zhi\zhilai\mydreamjob-server mvn -Dtest=CompanyKnowledgeServiceTest,CompanyKnowledgeControllerTest test ``` ## Done Definition - 覆盖 COMPANY 无记录/已有记录/创建/更新/版本冲突。 - 覆盖 STUDENT BASIC_ONLY、CONFIGURED、EMPTY、INSUFFICIENT、SUFFICIENT。 - 覆盖公开审核过滤、标签排序、八维缺失和数据最小化。