invoice.v2 昨天默认是开的

昨晚 21:40 左右发布,21:51 回滚。中间客户那边有人问「草稿发票怎么已经显示已开具」。发布群里没人先说话,是客服转过来的截图。

开关 invoice.v2 我在配置样例里写成了 true。代码里的默认值也是 true,注释写着「联调时打开」。这条注释是三月留下的。昨天合并的人(我)没看默认值,只看了 diff 里业务计算那几行。

旧逻辑是草稿不进开具列表。新逻辑在开关打开时,会把「已生成号码」当成已开具。测试环境的开关本来就是开的,所以测试是绿的。生产配置里没有这个键,于是落到了代码默认值。

回滚用的是上一版镜像,没有动数据库。那十几分钟里新写入的发票号码还在,状态被新代码改过的有 7 条。今天手工对回草稿的是其中 4 条,另外 3 条财务说号码已经发出去了,保持开具,在备注里写了原因。

配置样例我改成了 false,并在启动时把最终生效的开关打一条 info。不是为了好看。下次再出现「测试是好的,生产走了另一条」,至少日志里能直接看到值,不用再去猜默认值。

评审清单里我想加一句:新增的开关,默认必须是关。加了还没人看。先记在这里。