fix: subscription extend instead of overwrite, improve placeholder pages
- Subscription purchase now extends expire_time when user has active subscription, instead of cancelling and replacing - Admin subscription creation uses same extend logic - Subscribe page shows "续费" button and extend message for renewals - Help and contact pages: add pink header, centered icon + text
这个提交包含在:
@@ -55,7 +55,8 @@ router.post('/subscription/mock-purchase', requireUser, wrap(async (req, res) =>
|
||||
const orderId = 'MOCK' + Date.now()
|
||||
await subscriptionDao.purchase(req.user.user_id, plan, p.amount, orderId, p.days)
|
||||
await logDao.write({ user_id: req.user.user_id, action: 'subscription_mock_purchase', detail: '模拟购买: ' + plan, ip: req.ip })
|
||||
res.json(ok({ status: 'active', plan, remaining_days: p.days }))
|
||||
const sub = await subscriptionDao.findActive(req.user.user_id)
|
||||
res.json(ok({ status: 'active', plan, remaining_days: sub ? sub.remaining_days : p.days }))
|
||||
}))
|
||||
|
||||
router.post('/subscription/trial', requireUser, wrap(async (req, res) => {
|
||||
@@ -76,7 +77,8 @@ router.post('/subscription/verify', requireAdmin, wrap(async (req, res) => {
|
||||
const p = PLANS[plan]
|
||||
await subscriptionDao.purchase(userId, plan, p.amount, req.body.order_id || 'ORD' + Date.now(), p.days)
|
||||
await logDao.write({ admin_id: req.admin.admin_id, action: 'subscription_verify', detail: '订阅生效: ' + plan + ' user:' + userId, ip: req.ip })
|
||||
res.json(ok({ status: 'active', plan, remaining_days: p.days }))
|
||||
const sub = await subscriptionDao.findActive(userId)
|
||||
res.json(ok({ status: 'active', plan, remaining_days: sub ? sub.remaining_days : p.days }))
|
||||
}))
|
||||
|
||||
module.exports = router
|
||||
|
||||
在新工单中引用
屏蔽一个用户