diff --git a/admin/src/views/VpayOrders.vue b/admin/src/views/VpayOrders.vue
index 0c88c83..4f754e3 100644
--- a/admin/src/views/VpayOrders.vue
+++ b/admin/src/views/VpayOrders.vue
@@ -92,7 +92,7 @@
金额:¥{{ refundTarget?.amount }}
将扣回星尘:{{ refundCoins }}(余额不足将拒绝退款)
+ title="退款规则:余额必须足够扣回 | 支付后7天内" />
diff --git a/server/src/routes/admin.js b/server/src/routes/admin.js
index 973aaae..63ea2ed 100755
--- a/server/src/routes/admin.js
+++ b/server/src/routes/admin.js
@@ -1257,17 +1257,6 @@ router.post('/vpay/orders/:id/refund', requirePermission('orders:write'), async
409, { blocked: 'expired' })
}
- // 第三层:同一用户 30 天内最多 1 次退款
- const recentRefund = await Order.findOne({
- userId: user._id, status: 'refunded',
- refundedAt: { $gte: new Date(Date.now() - 30 * 86400000) },
- })
- if (recentRefund) {
- return ApiResponse.error(res,
- `不可退款:该用户 30 天内已有退款记录(${recentRefund.orderNo})。每人每月限退 1 次。`,
- 409, { blocked: 'rate_limited', lastRefund: recentRefund.orderNo })
- }
-
// ===== 冻结星尘(原子操作,防并发竞态) =====
// findOneAndUpdate + $gte 条件 = 原子扣减:
// 如果在预检和这里之间用户消费了星尘导致余额不足,此操作会失败(返回 null)