fix: 套餐购买系统修复 - 事务安全、购买记录、前端错误处理

- 新增 PackageOrder 模型,记录每次套餐购买的详细信息
- 将套餐扣费和充值操作改为数据库事务(原子操作),防止部分失败导致数据不一致
- 使用行级锁(FOR UPDATE)确保并发安全
- 添加 ErrInsufficientQuota 哨兵错误,提升错误处理可靠性
- 购买成功后记录操作日志(RecordLog)
- 前端 Packages.jsx 增加失败时的错误提示
- 分站模型管理和设置页面小幅修正

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
abingyydsandClaude Sonnet 4.6 committed 2026-03-21 16:47:29 +09:00
1 parent 41d199625f
commit 914ddf0a26
25 files changed
+30 -25

No files matched your search

+6 -1
View File
@@ -42,8 +42,13 @@ export default function Packages() {
setConfirmPkg(null);
// Refresh user data to update balance
await refreshUser();
} else {
// Non-2xx with success=false handled by interceptor, but handle edge case
toast.error(res.data.message || t('common.requestFailed'));
}
} catch (e) { /* interceptor */ }
} catch (e) {
// Error already shown by axios interceptor
}
setSubscribing(null);
};