Files
team-api/migrations/000012_v0_1_14_version.sql
Qianandchengqian be9e707bfd 修复异步图片导致的多个问题 (#12)
* 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>
2026-07-22 17:53:18 +08:00

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);