删除钱包充值功能并消除重复入账风险

钱包充值为开发态测试功能(生产环境本就禁用),且支付回调存在重复入账风险:入账与标记 paid 两步非原子、wallet_ledger 去重无唯一索引、幂等键使用了可变的 ProviderOrderID。直接删除该功能从根本上消除风险。

后端:
- payment 移除 StartWalletRecharge/QueryWalletRecharge 及相关 handler/DTO/常量;confirmPaid 增加 OrderID 守卫;解除对 wallet 仓库的依赖
- wallet 移除 Recharge/ConfirmRechargeFromChannel 及相关定义
- 移除三条充值路由;adminfinance 财务统计口径只统计 order_pay
- 清理充值相关测试用例

前端:
- 移除充值 API、WalletView 充值面板/弹窗、admin 充值标签与筛选
- 保留钱包余额、流水、提现等核心能力

go build/vet 与 vue-tsc typecheck 均通过。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
yml2213
2026-06-14 02:45:46 +08:00
co-authored by Claude Opus 4.8
parent 3ef7705776
commit e8621728fd
23 changed files with 28 additions and 863 deletions
@@ -162,7 +162,6 @@ function paymentBizTypeLabel(type: string) {
admin_refund: '人工退款',
cancel_refund: '取消退款',
admin_close_refund: '客服关闭退款',
wallet_recharge: '钱包充值',
}
return map[type] || type
}
@@ -26,7 +26,7 @@ const filters = reactive({
const payAmount = computed(() =>
payments.value
.filter(item => item.biz_type === 'order_pay' || item.biz_type === 'wallet_recharge')
.filter(item => item.biz_type === 'order_pay')
.reduce((sum, item) => sum + Number(item.amount_cent || 0), 0)
)
const refundAmount = computed(() =>
@@ -97,7 +97,6 @@ function paymentStatusLabel(status: string) {
function bizTypeLabel(type: string) {
const map: Record<string, string> = {
order_pay: '订单支付',
wallet_recharge: '钱包充值',
cancel_refund: '取消退款',
admin_close_refund: '客服关闭退款',
admin_refund: '人工退款',
@@ -172,7 +171,6 @@ function jsonText(value: unknown) {
<el-option label="仲裁退款" value="arbitration_refund" />
<el-option label="人工退款" value="admin_refund" />
<el-option label="取消退款" value="cancel_refund" />
<el-option label="钱包充值" value="wallet_recharge" />
</el-select>
</el-form-item>
<el-form-item label="状态">