102 lines
3.4 KiB
TypeScript
102 lines
3.4 KiB
TypeScript
/**
|
|
* 套餐真流量预警 API 服务
|
|
* 6 个接口仅超级管理员/平台账号可访问,其他账号由后端 403 兜底
|
|
* 对应 docs/产品迭代8月份/套餐真流量预警_API_前端简版.md
|
|
*/
|
|
|
|
import { BaseService } from '../BaseService'
|
|
import type {
|
|
BaseResponse,
|
|
PaginationResponse,
|
|
PackageTrafficAlertRuleItem,
|
|
PackageTrafficAlertRuleQueryParams,
|
|
CreatePackageTrafficAlertRuleParams,
|
|
UpdatePackageTrafficAlertRuleParams,
|
|
PackageTrafficAlertRecordItem,
|
|
PackageTrafficAlertRecordDetail,
|
|
PackageTrafficAlertRecordQueryParams,
|
|
ExportPackageTrafficAlertParams,
|
|
CreatePackageTrafficAlertExportResponse
|
|
} from '@/types/api'
|
|
|
|
export class PackageTrafficAlertService extends BaseService {
|
|
/**
|
|
* 查询套餐真流量预警规则列表
|
|
* GET /api/admin/package-traffic-alert-rules
|
|
* 返回套餐、商品当前真流量额度、阈值、启用状态、备注与更新时间
|
|
*/
|
|
static getAlertRules(
|
|
params?: PackageTrafficAlertRuleQueryParams
|
|
): Promise<PaginationResponse<PackageTrafficAlertRuleItem>> {
|
|
return this.getPage<PackageTrafficAlertRuleItem>(
|
|
'/api/admin/package-traffic-alert-rules',
|
|
params
|
|
)
|
|
}
|
|
|
|
/**
|
|
* 创建套餐真流量预警规则
|
|
* POST /api/admin/package-traffic-alert-rules
|
|
* 同一套餐商品最多一条真流量预警规则
|
|
*/
|
|
static createAlertRule(
|
|
data: CreatePackageTrafficAlertRuleParams
|
|
): Promise<BaseResponse<PackageTrafficAlertRuleItem>> {
|
|
return this.create<PackageTrafficAlertRuleItem>('/api/admin/package-traffic-alert-rules', data)
|
|
}
|
|
|
|
/**
|
|
* 修改套餐真流量预警规则
|
|
* PUT /api/admin/package-traffic-alert-rules/{id}
|
|
* 允许修改阈值、启停与备注;修改不影响既有预警快照,停用后扫描不再创建新预警
|
|
*/
|
|
static updateAlertRule(
|
|
id: number,
|
|
data: UpdatePackageTrafficAlertRuleParams
|
|
): Promise<BaseResponse<PackageTrafficAlertRuleItem>> {
|
|
return this.update<PackageTrafficAlertRuleItem>(
|
|
`/api/admin/package-traffic-alert-rules/${id}`,
|
|
data
|
|
)
|
|
}
|
|
|
|
/**
|
|
* 查询套餐真流量预警记录列表
|
|
* GET /api/admin/package-traffic-alerts
|
|
* 列表数据除 business_user_group_names 外均为触发时快照
|
|
*/
|
|
static getAlertRecords(
|
|
params?: PackageTrafficAlertRecordQueryParams
|
|
): Promise<PaginationResponse<PackageTrafficAlertRecordItem>> {
|
|
return this.getPage<PackageTrafficAlertRecordItem>('/api/admin/package-traffic-alerts', params)
|
|
}
|
|
|
|
/**
|
|
* 查询套餐真流量预警记录详情
|
|
* GET /api/admin/package-traffic-alerts/{id}
|
|
* 越权查询统一按资源不可见处理
|
|
*/
|
|
static getAlertRecordDetail(id: number): Promise<BaseResponse<PackageTrafficAlertRecordDetail>> {
|
|
// 越权查询详情统一按资源不可见处理,抑制全局报错提示,由页面给出统一文案
|
|
return this.getOne<PackageTrafficAlertRecordDetail>(
|
|
`/api/admin/package-traffic-alerts/${id}`,
|
|
undefined,
|
|
{ requestOptions: { errorMessageMode: 'none' } }
|
|
)
|
|
}
|
|
|
|
/**
|
|
* 导出套餐真流量达量预警
|
|
* POST /api/admin/package-traffic-alerts/export
|
|
* 只创建异步导出任务,后续通过既有导出任务列表下载文件
|
|
*/
|
|
static exportAlertRecords(
|
|
data: ExportPackageTrafficAlertParams
|
|
): Promise<BaseResponse<CreatePackageTrafficAlertExportResponse>> {
|
|
return this.post<BaseResponse<CreatePackageTrafficAlertExportResponse>>(
|
|
'/api/admin/package-traffic-alerts/export',
|
|
data
|
|
)
|
|
}
|
|
}
|