* fix:修复响应污染问题 * fix:修改存储相关文件为中文注释 * fix:修复二次退款问题 * fix:修复多个考虑不全面问题 1.误删用户数据 2.R2存储默认区域 3.删除失败导致孤儿记录 4.网络抖动事变时重试 5.前端无限次请求获取图片 6.文件管理权限 * fix:修复字符串截断异常问题和文件下载超时问题 * fix:修复多图问题 * fix:异步生成图片时未配置oss提示错误信息 * fix:修复关闭异步后同步生成出错问题 * feat:新增文件存储测试功能,防止设置后不生效 * fix:修复同步图片转异步后计费错误 * fix:修复无下限扣款问题 * fix:修复结算重复扣款问题 * fix:修复计费出错导致的0费用结算 * fix:修复回调双重履约 * fix:修复预扣事务 * fix:修复费用字段类型问题 * fix:修复缓存问题 * fix:修复安全问题 * fix:修复数据库操作事务问题 * refactor:重构事务使用方式,改为官方推荐的dao形式 * fix:修复余额更新隐患 * fix:修复N+1查询问题 * fix:修复密钥安全问题 * fix:结算失败时打印错误日志 * improve:优化扣款 * fix:修复用户接口越权 --------- Co-authored-by: chengqian <wuchengqian@kkidc.com>
19 lines
1.1 KiB
SQL
19 lines
1.1 KiB
SQL
-- +goose Up
|
|
|
|
-- A3 修复:结算幂等 —— bil_records.request_id 由普通 btree 索引升级为唯一索引。
|
|
-- 原 idx_bil_records_request 无唯一性保护,同一 request_id 重复结算会写入多条计费记录
|
|
-- 并重复扣款。唯一索引作为 DB 层最终兜底:重复结算的第二次 INSERT 触发 23505 唯一冲突,
|
|
-- 结算事务整体回滚(钱包扣款一并撤销),应用层据此识别为幂等空操作。
|
|
--
|
|
-- 前置约束:若历史数据因该 bug 已产生重复 request_id,本迁移会失败(这是有意为之——
|
|
-- 金融记录不做静默删除,应由运维先人工核对重复计费记录再重跑)。bil_prededuct_tracks
|
|
-- 早已对 request_id 施加 UNIQUE,证明「一次请求一条记录」本就是系统不变式。
|
|
DROP INDEX IF EXISTS idx_bil_records_request;
|
|
CREATE UNIQUE INDEX IF NOT EXISTS uk_bil_records_request ON bil_records USING btree (request_id);
|
|
|
|
-- +goose Down
|
|
|
|
-- 还原为非唯一 btree 索引
|
|
DROP INDEX IF EXISTS uk_bil_records_request;
|
|
CREATE INDEX IF NOT EXISTS idx_bil_records_request ON bil_records USING btree (request_id);
|