feat: 金额上限校验、订阅详情展示优化、支付商品名称区分
- 硬编码 MAX_AMOUNT=99999999.99,所有金额输入(API+前端)统一校验上限
- 管理后台订阅列表改为卡片布局,Sub2API 分组信息嵌套只读展示(平台/倍率/限额/模型)
- 用户端套餐卡片和确认页展示平台、倍率、用量限制
- 订阅订单支付商品名改为 "Sub2API 订阅 {分组名}",余额充值保持原格式
This commit is contained in:
@@ -24,9 +24,10 @@ export async function GET(request: NextRequest) {
|
||||
const results = await Promise.all(
|
||||
plans.map(async (plan) => {
|
||||
let groupActive = false;
|
||||
let group: Awaited<ReturnType<typeof getGroup>> = null;
|
||||
let groupInfo: { daily_limit_usd: number | null; weekly_limit_usd: number | null; monthly_limit_usd: number | null } | null = null;
|
||||
try {
|
||||
const group = await getGroup(plan.groupId);
|
||||
group = await getGroup(plan.groupId);
|
||||
groupActive = group !== null && group.status === 'active';
|
||||
if (group) {
|
||||
groupInfo = {
|
||||
@@ -44,6 +45,7 @@ export async function GET(request: NextRequest) {
|
||||
return {
|
||||
id: plan.id,
|
||||
groupId: plan.groupId,
|
||||
groupName: group?.name ?? null,
|
||||
name: plan.name,
|
||||
description: plan.description,
|
||||
price: Number(plan.price),
|
||||
@@ -51,6 +53,8 @@ export async function GET(request: NextRequest) {
|
||||
validityDays: plan.validityDays,
|
||||
validityUnit: plan.validityUnit,
|
||||
features: plan.features ? JSON.parse(plan.features) : [],
|
||||
platform: group?.platform ?? null,
|
||||
rateMultiplier: group?.rate_multiplier ?? null,
|
||||
limits: groupInfo,
|
||||
};
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user