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.
1.1 KiB
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
DictReferenceService四个方法可用,签名:increment(groupCode, itemCode)/decrement(...)/batchApply(Map<String, Map<String, Integer>> deltas)(决策 Q2)、isReferenced(...)- 行缺失时 increment 自动补行(防御性兜底);decrement 行缺失时忽略(不产生负数也不产生孤儿行)
- batchApply 双层遍历,每个 (groupCode, itemCode) 单条
UPDATE ref_count = ref_count + ? - 绝不进缓存(API 分层:业务侧读元数据走 DictQueryService,删校验走本服务)
- H2 契约测试:增减事务原子性、批量聚合正确性、isReferenced 判定、强制删除绕过校验