可回写计划仍需在用户明确确认后安全写入顺运宝商品明细的 innerExpCode。远端接口为删除旧值后写新值,网络超时或进程退出时结果可能未知,禁止盲目重试。
innerExpCode
syb.Client
admin/syb/client.go
deleteInnerCode
updateDetailCode
admin/service/inner_code_apply.go
applying
needs_check
在 admin/ 执行 go test ./syb ./service ./handler/web -run InnerCode -count=1,并执行固定 Go 1.23 的 build、test、vet;使用 httptest.Server 覆盖无需删除、删后写、删除失败、写入失败、响应超时、写后不一致、重启恢复和只读重新核对,不连接真实顺运宝。
admin/
go test ./syb ./service ./handler/web -run InnerCode -count=1
httptest.Server
状态:已实现,待用户验收。 实现提交:2778eed;归档提交:9ca7f83;归档:docs/task/234-档口入库码安全回写.md 验证:假服务端覆盖单次删除/写入、写前核验、写后复读、未知结果禁止重试和启动恢复;固定 Go 1.23.0 build/test/vet 全部通过。未执行真实顺运宝写入。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
可回写计划仍需在用户明确确认后安全写入顺运宝商品明细的
innerExpCode。远端接口为删除旧值后写新值,网络超时或进程退出时结果可能未知,禁止盲目重试。做什么 / 不做什么
syb.Client增加清除旧innerExpCode和写入新值的方法,写请求严格单次发送、不启用自动重试。怎么做
admin/syb/client.go封装deleteInnerCode与updateDetailCode,对业务失败、HTTP 失败和结果未知使用可区分错误类型。admin/service/inner_code_apply.go编排门禁与状态机,repository 使用条件更新实现单行领取,阻止重复提交。applying改为needs_check,不触发网络写请求。验收标准
怎么验证
在
admin/执行go test ./syb ./service ./handler/web -run InnerCode -count=1,并执行固定 Go 1.23 的 build、test、vet;使用httptest.Server覆盖无需删除、删后写、删除失败、写入失败、响应超时、写后不一致、重启恢复和只读重新核对,不连接真实顺运宝。风险和回退
状态:已实现,待用户验收。
实现提交:2778eed;归档提交:9ca7f83;归档:docs/task/234-档口入库码安全回写.md
验证:假服务端覆盖单次删除/写入、写前核验、写后复读、未知结果禁止重试和启动恢复;固定 Go 1.23.0 build/test/vet 全部通过。未执行真实顺运宝写入。