docs(changelog): #7980 AC-4 发票三写口锁 前端实证翻 not_required(admin 两写口拦截器透 message,mp 侧归 mp loop)
changelog-filename-gate / validate (push) Failing after 2s

这个提交包含在:
Mimingguang
2026-09-20 17:49:25 +08:00
父节点 9ee36c0b94
当前提交 d3028eb02a
@@ -7,12 +7,12 @@ author: "wx(GIT)"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "not_required"
frontend_status: "pending"
frontend_status: "not_required"
frontend_owner: "mmg"
frontend_ref: ""
target_release: ""
verified_at: ""
status_note: "PR #8043 已 squash 合并 dev-v3(合并提交 09b8f2323)。2026-09-20 对 hl-order-service-v3 重跑了一次部署流程(滚动重启两实例),部署后 COMMIT=5d14bc524;git merge-base --is-ancestor 09b8f2323 5d14bc524 返回 YES,确认本次改动在运行版本内——但如实说明:部署前该服务已经是 5d14bc524(另一会话此前已把这个 commit 推上测试服),本次重跑部署没有让改动「从生效变生效」,只是重新确认了一遍。gateway_status=not_required 判据不变:三个端点路径/方法零变化,hl-gateway 一直是 4cbccc26b 未动,发票端点走网关实测全部正常返回。🔴 测试服直接证据(redis-cli MONITOR)只覆盖三处写口中的一处——issueInvoice;另两处(reuploadInvoice/reissueInvoice)由代码改动本身(与 issueInvoice 逐字相同的 name/keys)与反射守卫单测 InvoiceIssueLockNameGuardTest(断言三处 name 非空且相等)覆盖,未在测试服上单独抓包或调用,不要读成三处都实测过互斥。100503 本身测试服未能复现(并发两个 issueInvoice 得到 200+581502,不是 100503;581502 是业务状态守卫,证明没有产生并发脏写,但只是旁证不是互斥证据);原因判断同 fleet 那轮,临界区极短。frontend_status=pending 维持不变,详见「八、测试环境已验证」完整记录。"
status_note: "PR #8043 已 squash 合并 dev-v3(合并提交 09b8f2323)。2026-09-20 对 hl-order-service-v3 重跑了一次部署流程(滚动重启两实例),部署后 COMMIT=5d14bc524;git merge-base --is-ancestor 09b8f2323 5d14bc524 返回 YES,确认本次改动在运行版本内——但如实说明:部署前该服务已经是 5d14bc524(另一会话此前已把这个 commit 推上测试服),本次重跑部署没有让改动「从生效变生效」,只是重新确认了一遍。gateway_status=not_required 判据不变:三个端点路径/方法零变化,hl-gateway 一直是 4cbccc26b 未动,发票端点走网关实测全部正常返回。🔴 测试服直接证据(redis-cli MONITOR)只覆盖三处写口中的一处——issueInvoice;另两处(reuploadInvoice/reissueInvoice)由代码改动本身(与 issueInvoice 逐字相同的 name/keys)与反射守卫单测 InvoiceIssueLockNameGuardTest(断言三处 name 非空且相等)覆盖,未在测试服上单独抓包或调用,不要读成三处都实测过互斥。100503 本身测试服未能复现(并发两个 issueInvoice 得到 200+581502,不是 100503;581502 是业务状态守卫,证明没有产生并发脏写,但只是旁证不是互斥证据);原因判断同 fleet 那轮,临界区极短。frontend_status=pending 维持不变,详见「八、测试环境已验证」完整记录。 前端实证翻 not_required(mmg 2026-09-20):admin 侧 issue/reupload 封装于 api/invoice.js,唯一调用方 IssueModal handleSubmit catch「业务错误码由 request.js 拦截器统一 toast」、finally 复位 submitting,100503 命中拦截器透后端「资源被占用,请稍后重试」原样展示(提示可重试/不静默/不当系统异常三条全满足),同 fleet #7980 先例不建字典;mp reissue 传导 C 端属小程序系列,由 mp loop 消费。"
updated_at: "2026-09-20"
base: "dev-v3"
---