feat: 取消退款次数限制(每人每月1次)——保留余额够扣+7天窗口;后台退款弹窗规则文案同步

This commit is contained in:
Hermes Agent
2026-09-14 16:02:21 +08:00
parent 9ab08254e3
commit 6adf9f1c6a
2 changed files with 1 additions and 12 deletions
-11
View File
@@ -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)