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

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 判定、强制删除绕过校验