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.

14 lines
1.1 KiB

# 03 — DictReferenceService(引用计数写路径 + Seam 2 契约测试)
**What to build:** 业务模块引用字典编码的写路径契约服务:`increment`/`decrement`/`batchApply`/`isReferenced`,同库同事务语义;批量场景强制应用层聚合 delta + 单条 UPDATE(防行锁热点);`dict_ref_count` 行在字典项创建时预建(决策 Q3)。Seam 2 契约测试独立覆盖此服务的并发/事务语义。
**Blocked by:** 01(与 02 并行)
**Status:** completed
- [x] `DictReferenceService` 四个方法可用,签名:`increment(groupCode, itemCode)` / `decrement(...)` / `batchApply(Map<String, Map<String, Integer>> deltas)`(决策 Q2)、`isReferenced(...)`
- [x] 行缺失时 increment 自动补行(防御性兜底);decrement 行缺失时忽略(不产生负数也不产生孤儿行)
- [x] batchApply 双层遍历,每个 (groupCode, itemCode) 单条 `UPDATE ref_count = ref_count + ?`
- [x] 绝不进缓存(API 分层:业务侧读元数据走 DictQueryService,删校验走本服务)
- [x] H2 契约测试:增减事务原子性、批量聚合正确性、isReferenced 判定、强制删除绕过校验