fetch(modify):修改套餐接口
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m40s

This commit is contained in:
sexygoat
2026-02-04 18:14:52 +08:00
parent 20e8c13e61
commit d97dc5f007
12 changed files with 979 additions and 452 deletions

View File

@@ -349,6 +349,7 @@ export interface StandaloneIotCard {
created_at: string // 创建时间
updated_at: string // 更新时间
series_id?: number | null // 套餐系列ID
series_name?: string // 套餐系列名称
}
// ========== 单卡批量分配和回收相关 ==========

View File

@@ -7,6 +7,33 @@ import { PaginationParams } from './common'
// ==================== 套餐系列管理 ====================
/**
* 一次性佣金梯度档位配置(套餐系列级别)
*/
export interface OneTimeCommissionTier {
threshold: number // 达标阈值
dimension: 'sales_count' | 'sales_amount' // 统计维度:销量或销售额
amount: number // 佣金金额(分)
stat_scope?: 'self' | 'self_and_sub' // 统计范围:仅自己或自己+下级
}
/**
* 套餐系列一次性佣金配置
*/
export interface SeriesOneTimeCommissionConfig {
enable: boolean // 是否启用一次性佣金
commission_type: 'fixed' | 'tiered' // 佣金类型:固定或梯度
commission_amount?: number // 固定佣金金额commission_type=fixed时使用
threshold: number // 触发阈值(分)
trigger_type: 'first_recharge' | 'accumulated_recharge' // 触发类型:首次充值或累计充值
tiers?: OneTimeCommissionTier[] | null // 梯度配置列表commission_type=tiered时使用
enable_force_recharge: boolean // 是否启用强充
force_amount?: number // 强充金额(分)
force_calc_type?: 'fixed' | 'dynamic' // 强充计算类型:固定或动态
validity_type: 'permanent' | 'fixed_date' | 'relative' // 时效类型:永久、固定日期或相对时长
validity_value?: string // 时效值(日期字符串或月数)
}
/**
* 套餐系列响应
*/
@@ -15,6 +42,8 @@ export interface PackageSeriesResponse {
series_code: string
series_name: string
description?: string
enable_one_time_commission: boolean // 是否启用一次性佣金
one_time_commission_config?: SeriesOneTimeCommissionConfig // 一次性佣金配置
status: number // 1:启用, 2:禁用
created_at: string
updated_at: string
@@ -26,6 +55,7 @@ export interface PackageSeriesResponse {
export interface PackageSeriesQueryParams extends PaginationParams {
series_name?: string // 系列名称(模糊搜索)
status?: number // 状态筛选
enable_one_time_commission?: boolean // 是否启用一次性佣金筛选
}
/**
@@ -35,15 +65,16 @@ export interface CreatePackageSeriesRequest {
series_code: string // 系列编码,必填
series_name: string // 系列名称,必填
description?: string // 描述,可选
one_time_commission_config?: SeriesOneTimeCommissionConfig // 一次性佣金配置,可选
}
/**
* 更新套餐系列请求
*/
export interface UpdatePackageSeriesRequest {
series_code?: string
series_name?: string
description?: string
one_time_commission_config?: SeriesOneTimeCommissionConfig // 一次性佣金配置,可选
}
/**
@@ -70,6 +101,9 @@ export interface PackageResponse {
virtual_data_mb: number // 虚流量额度MB
duration_months: number // 有效期(月)
price: number // 价格(分)
cost_price: number // 成本价(分)
suggested_retail_price: number // 建议零售价(分)
enable_virtual_data: boolean // 是否启用虚流量
shelf_status: number // 上架状态 (1:上架, 2:下架)
status: number // 状态 (1:启用, 2:禁用)
description?: string
@@ -154,11 +188,14 @@ export interface ShopPackageAllocationResponse {
package_id: number
package_code: string
package_name: string
series_id: number // 套餐系列ID
series_name: string // 套餐系列名称
shop_id: number
shop_name: string
cost_price: number // 覆盖的成本价(分)
calculated_cost_price: number // 原计算成本价(分,供参考)
allocation_id?: number // 关联的系列分配ID
allocator_shop_id: number // 分配者店铺ID0表示平台分配
allocator_shop_name: string // 分配者店铺名称
series_allocation_id?: number | null // 关联的系列分配ID(可空)
cost_price: number // 该代理的成本价(分)
status: number // 1:启用, 2:禁用
created_at: string
updated_at: string
@@ -170,6 +207,8 @@ export interface ShopPackageAllocationResponse {
export interface ShopPackageAllocationQueryParams extends PaginationParams {
shop_id?: number // 店铺ID筛选
package_id?: number // 套餐ID筛选
series_allocation_id?: number // 系列分配ID筛选
allocator_shop_id?: number // 分配者店铺ID筛选
status?: number // 状态筛选
}
@@ -198,54 +237,6 @@ export interface UpdateShopPackageAllocationStatusRequest {
// ==================== 套餐系列分配 ====================
/**
* 基础返佣配置
*/
export interface BaseCommissionConfig {
mode: 'fixed' | 'percent' // 返佣模式:'fixed':固定金额, 'percent':百分比
value: number // 返佣值:固定金额(分)或百分比的千分比(如200表示20%)
}
/**
* 梯度档位配置
*/
export interface TierEntry {
threshold: number // 阈值(销量或销售额)
mode: 'fixed' | 'percent' // 返佣模式
value: number // 返佣值
}
/**
* 梯度返佣配置
*/
export interface TierCommissionConfig {
period_type: 'monthly' | 'quarterly' | 'yearly' // 周期类型
tier_type: 'sales_count' | 'sales_amount' // 梯度类型:销量或销售额
tiers: TierEntry[] // 梯度档位数组
}
/**
* 一次性佣金梯度档位配置
*/
export interface OneTimeCommissionTierEntry {
tier_type: 'sales_count' | 'sales_amount' // 梯度类型:销量或销售额
threshold: number // 阈值
mode: 'fixed' | 'percent' // 返佣模式
value: number // 返佣值
}
/**
* 一次性佣金配置
*/
export interface OneTimeCommissionConfig {
type: 'fixed' | 'tiered' // 佣金类型:'fixed':固定佣金, 'tiered':梯度佣金
trigger: 'single_recharge' | 'accumulated_recharge' // 触发方式:'single_recharge':单笔充值, 'accumulated_recharge':累计充值
threshold: number // 最低阈值(分)
mode?: 'fixed' | 'percent' // 返佣模式(固定佣金时必填)
value?: number // 返佣值(固定佣金时必填)
tiers?: OneTimeCommissionTierEntry[] | null // 梯度档位数组(梯度佣金时必填)
}
/**
* 套餐系列分配响应
*/
@@ -253,13 +244,18 @@ export interface ShopSeriesAllocationResponse {
id: number
series_id: number
series_name: string
series_code: string // 套餐系列编码
shop_id: number
shop_name: string
allocator_shop_id: number // 分配者店铺ID
allocator_shop_id: number // 分配者店铺ID0表示平台分配
allocator_shop_name: string // 分配者店铺名称
base_commission: BaseCommissionConfig // 基础返佣配置
enable_one_time_commission: boolean // 是否启用一次性佣金
one_time_commission_config?: OneTimeCommissionConfig // 一次性佣金配置(可选
one_time_commission_amount: number // 该代理能拿的一次性佣金金额上限(分
one_time_commission_threshold?: number // 一次性佣金触发阈值(分)
one_time_commission_trigger?: 'first_recharge' | 'accumulated_recharge' // 一次性佣金触发类型
enable_force_recharge: boolean // 是否启用强制充值
force_recharge_amount?: number // 强制充值金额(分)
force_recharge_trigger_type?: 1 | 2 // 强充触发类型1(单次充值)、2(累计充值)
status: number // 1:启用, 2:禁用
created_at: string
updated_at: string
@@ -271,6 +267,7 @@ export interface ShopSeriesAllocationResponse {
export interface ShopSeriesAllocationQueryParams extends PaginationParams {
shop_id?: number // 店铺ID筛选
series_id?: number // 系列ID筛选
allocator_shop_id?: number // 分配者店铺ID筛选
status?: number // 状态筛选
}
@@ -280,18 +277,27 @@ export interface ShopSeriesAllocationQueryParams extends PaginationParams {
export interface CreateShopSeriesAllocationRequest {
series_id: number // 套餐系列ID必填
shop_id: number // 店铺ID必填
base_commission: BaseCommissionConfig // 基础返佣配置,必填
enable_one_time_commission?: boolean // 是否启用一次性佣金,可选默认false
one_time_commission_config?: OneTimeCommissionConfig // 一次性佣金配置当enable_one_time_commission为true时必填
one_time_commission_amount: number // 一次性佣金金额上限(分),必填
enable_one_time_commission?: boolean // 是否启用一次性佣金,可选
one_time_commission_threshold?: number // 一次性佣金触发阈值(分),可选
one_time_commission_trigger?: 'first_recharge' | 'accumulated_recharge' // 一次性佣金触发类型,可选
enable_force_recharge?: boolean // 是否启用强制充值,可选
force_recharge_amount?: number // 强制充值金额(分),可选
force_recharge_trigger_type?: 1 | 2 // 强充触发类型,可选
}
/**
* 更新套餐系列分配请求
*/
export interface UpdateShopSeriesAllocationRequest {
base_commission?: BaseCommissionConfig // 基础返佣配置
enable_one_time_commission?: boolean // 是否启用一次性佣金
one_time_commission_config?: OneTimeCommissionConfig // 一次性佣金配置
one_time_commission_amount?: number // 一次性佣金金额上限(分)
one_time_commission_threshold?: number // 一次性佣金触发阈值(分)
one_time_commission_trigger?: 'first_recharge' | 'accumulated_recharge' // 一次性佣金触发类型
enable_force_recharge?: boolean // 是否启用强制充值
force_recharge_amount?: number // 强制充值金额(分)
force_recharge_trigger_type?: 1 | 2 // 强充触发类型
status?: number // 状态
}
/**