| Name |
Last commit
|
Last update |
|---|---|---|
| backend | ||
| backend-nest | ||
| docs | ||
| frontend | ||
| img | ||
| openspec | ||
| public/img | ||
| scripts/contract | ||
| .gitignore | ||
| DESIGN.md | ||
| PRODUCT.md | ||
| README.md | ||
| skills-lock.json |
新增九个接口(含四个下拉搜索与号码查重),契约比对 6/6 一致, 联动规则验证 10/10 通过,事务回滚验证两边行为一致。 四条手机号联动规则 绑定时号码已在台账 复用,标记 EXISTING 绑定时号码不在台账 自动建档(EXTERNAL / 来源 WECOM / 来源 id 指向本账号),标记 CREATED 改绑或删除账号时 只清理「本账号自己建的」号码,且清理前确认无人在用 号码没变 完全不动关联,避免把 EXISTING 误改成 CREATED 或误删仍在用的号 判断「这条号码是不是本账号建的」需三个条件同时成立: number_type = EXTERNAL、source_asset_type = WECOM、source_asset_id = 本账号 id。 少判一个就会误删他人的号码,而界面上完全看不出异常。 事务保护 create、update、softDelete 三个方法都同时写企微账号与手机号台账两张表, 统一用 prisma.$transaction 包住,事务内所有读写一律走事务客户端。 漏用一处该操作就跑在事务之外,等于没包住,且不会有任何征兆。 验证方式没有停留在读代码:构造一个名称超出字段长度的请求, 使号码建好之后企微账号插入失败,再回查号码是否仍在台账。 Java 与 NestJS 均正确回滚,台账没有留下无人引用的孤儿号码。 整体契约比对:26 项一致、5 项待实现(仅剩设备模块)。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| backend | Loading commit data... | |
| backend-nest | Loading commit data... | |
| docs | Loading commit data... | |
| frontend | Loading commit data... | |
| img | Loading commit data... | |
| openspec | Loading commit data... | |
| public/img | Loading commit data... | |
| scripts/contract | Loading commit data... | |
| .gitignore | Loading commit data... | |
| DESIGN.md | Loading commit data... | |
| PRODUCT.md | Loading commit data... | |
| README.md | Loading commit data... | |
| skills-lock.json | Loading commit data... |