feat: 套餐分层级

This commit is contained in:
luo
2026-09-08 16:39:29 +08:00
parent 65cc63674e
commit ef966171b4
4 changed files with 85 additions and 24 deletions

View File

@@ -39,6 +39,9 @@ export enum PackageUsageStatus {
// 套餐类型
export type PackageType = 'formal' | 'addon'
// 套餐关系状态(历史套餐列表)
export type AssetPackageRelationshipStatus = 'master_missing'
// 套餐使用类型
export type UsageType = 'single_card' | 'device'
@@ -332,7 +335,7 @@ export type AssetRefreshResponse = AssetRealtimeStatusResponse
/**
* 资产套餐使用记录
* 对应接口:GET /api/admin/assets/:asset_type/:id/packages
* 对应接口:GET /api/admin/assets/:identifier/packages
*/
export interface AssetPackageUsageRecord {
id?: number // 兼容前端当前映射字段
@@ -353,31 +356,34 @@ export interface AssetPackageUsageRecord {
virtual_ratio?: number // 虚流量比例(real/virtual)
reduction_pct?: number // 展示增幅比例(小数,如 0.428571)
enable_virtual_data?: boolean // 是否启用虚流量
paid_amount?: number // 实际支付金额(分)
retail_amount?: number // 零售价(分)
paid_amount?: number | null // 实际支付金额(分,仅平台账号可见)
retail_amount?: number | null // 零售价(分)
package_price?: number // 套餐价格(分)
start_time?: string // 开始时间(兼容前端现有映射字段)
expire_time?: string // 到期时间(兼容前端现有映射字段)
duration_days?: number // 套餐时长(兼容前端现有映射字段)
activated_at?: string // 激活时间
expires_at?: string // 到期时间
master_usage_id?: number | null // 主套餐 ID(加油包时有值)
master_usage_id?: number | null // 主套餐使用记录 ID(加油包时有值)
relationship_status?: AssetPackageRelationshipStatus // 关系状态;master_missing 表示主套餐缺失
relationship_status_name?: string // 关系异常状态名称
expand_by_default?: boolean // 是否默认展开该主套餐下的加油包
children?: AssetPackageUsageRecord[] // 归属于该主套餐的加油包,不单独分页
priority?: number // 优先级
created_at?: string // 创建时间
order_id?: number // 订单ID
refund_id?: number // 退款ID(有退款时才有值)
refund_no?: string // 退款单号快照
expiry_base?: ExpiryBase | null // 到期计时基准
}
/**
* 资产套餐列表分页响应
* 对应接口:GET /api/admin/assets/:asset_type/:id/packages?page=1&page_size=50
* 每个 items 元素为一个顶层主套餐关系组,total 只统计顶层组。
* 对应接口:GET /api/admin/assets/:identifier/packages?page=1&page_size=50
*/
export interface AssetPackageUsageRecord {
expiry_base?: ExpiryBase | null // 到期计时基准
}
export interface AssetPackageListResponse {
total: number // 总记录数
total: number // 顶层主套餐关系组总数
page: number // 当前页码
page_size: number // 每页数量
items: AssetPackageUsageRecord[] // 套餐记录列表
@@ -389,6 +395,7 @@ export interface AssetPackageListResponse {
export interface AssetPackageParams {
page?: number // 页码,默认1
page_size?: number // 每页数量,默认50
status?: PackageUsageStatus | null // 按同一条使用记录筛选
}
export interface UpdateAssetPackageUsedDataRequest {