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

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.java
  • mydreamjob-server/src/main/java/com/mydreamjob/onboarding/OnboardingChecklistController.java
  • mydreamjob-server/src/main/java/com/mydreamjob/onboarding/dto/CompanyChecklistItemCreateRequest.java
  • mydreamjob-server/src/main/java/com/mydreamjob/onboarding/dto/CompanyChecklistItemUpdateRequest.java
  • mydreamjob-server/src/main/java/com/mydreamjob/onboarding/dto/CompanyChecklistItemView.java
  • mydreamjob-server/src/test/java/com/mydreamjob/onboarding/OnboardingCompanyChecklistServiceTest.java
  • mydreamjob-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

  1. 先写 Service/Controller 失败测试并确认 RED。
  2. 再实现最小 DTO、Service、Controller 使测试 GREEN。
  3. 不实现公司知识接口。

Evidence Commands

cd D:\1\zhi\zhilai\mydreamjob-server
mvn -Dtest=OnboardingCompanyChecklistServiceTest,OnboardingCompanyChecklistControllerTest test

Done Definition

  • 覆盖查询、创建、幂等重放、幂等冲突、上限、更新、版本冲突、软删除、重复删除和跨企业隔离。
  • 创建请求哈希可重复,不依赖随机或当前时间。
  • 既有学生清单行为不回归。