feat: 迁移企业微信资产模块,含手机号联动与事务保护
新增九个接口(含四个下拉搜索与号码查重),契约比对 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>
Showing
This diff is collapsed.
Click to expand it.
Please
register
or
sign in
to comment