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.
2.8 KiB
2.8 KiB
T4 任务简报:企业自定义清单 CRUD 与幂等
Where This Fits
- Wave: W2
- Depends on: T3
- Contract:
changes/n04-onboard/execution-contract.md - Specs:
changes/n04-onboard/specs/onboarding-checklist/spec.md
Objective
在已有学生清单服务与 Controller 上增加 COMPANY 自定义清单 CRUD,先用失败测试锁定所有权、幂等和乐观锁。
Files In Scope
mydreamjob-server/src/main/java/com/mydreamjob/onboarding/OnboardingChecklistService.javamydreamjob-server/src/main/java/com/mydreamjob/onboarding/OnboardingChecklistController.javamydreamjob-server/src/main/java/com/mydreamjob/onboarding/dto/CompanyChecklistItemCreateRequest.javamydreamjob-server/src/main/java/com/mydreamjob/onboarding/dto/CompanyChecklistItemUpdateRequest.javamydreamjob-server/src/main/java/com/mydreamjob/onboarding/dto/CompanyChecklistItemView.javamydreamjob-server/src/test/java/com/mydreamjob/onboarding/OnboardingCompanyChecklistServiceTest.javamydreamjob-server/src/test/java/com/mydreamjob/onboarding/OnboardingCompanyChecklistControllerTest.java
Required Behavior
GET /api/v1/onboarding/company/checklist-items仅 COMPANY,读取本企业全部自定义项,含软删除项与 version。POST /api/v1/onboarding/company/checklist-items创建本企业项,校验 title 1-120、description <=1000、category 枚举、sortOrder 0-9999、required 默认 false、idempotencyKey <=64。- 相同企业 + 相同 idempotencyKey + 相同规范化请求体返回原条目;不同请求体返回
ONBOARDING_IDEMPOTENCY_CONFLICT。 - 活动自定义项达到 50 条时返回
ONBOARDING_ITEM_LIMIT_EXCEEDED。 PUT /api/v1/onboarding/company/checklist-items/{itemId}更新标题、说明、分类、排序、必填和 active,必须校验 version。- 过期 version 返回
ONBOARDING_CHECKLIST_ITEM_CONCURRENT_UPDATE。 DELETE /api/v1/onboarding/company/checklist-items/{itemId}?version={version}软删除;重复删除已非活动项幂等成功。- 所有企业操作仅限当前 COMPANY 拥有的企业,跨企业 itemId 返回
ONBOARDING_CHECKLIST_ITEM_NOT_FOUND。 - 企业不存在返回
COMPANY_NOT_FOUND,非 COMPANY 返回FORBIDDEN。
TDD Requirement
- 先写 Service/Controller 失败测试并确认 RED。
- 再实现最小 DTO、Service、Controller 使测试 GREEN。
- 不实现公司知识接口。
Evidence Commands
cd D:\1\zhi\zhilai\mydreamjob-server
mvn -Dtest=OnboardingCompanyChecklistServiceTest,OnboardingCompanyChecklistControllerTest test
Done Definition
- 覆盖查询、创建、幂等重放、幂等冲突、上限、更新、版本冲突、软删除、重复删除和跨企业隔离。
- 创建请求哈希可重复,不依赖随机或当前时间。
- 既有学生清单行为不回归。