/** * 套餐真流量预警 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> { return this.getPage( '/api/admin/package-traffic-alert-rules', params ) } /** * 创建套餐真流量预警规则 * POST /api/admin/package-traffic-alert-rules * 同一套餐商品最多一条真流量预警规则 */ static createAlertRule( data: CreatePackageTrafficAlertRuleParams ): Promise> { return this.create('/api/admin/package-traffic-alert-rules', data) } /** * 修改套餐真流量预警规则 * PUT /api/admin/package-traffic-alert-rules/{id} * 允许修改阈值、启停与备注;修改不影响既有预警快照,停用后扫描不再创建新预警 */ static updateAlertRule( id: number, data: UpdatePackageTrafficAlertRuleParams ): Promise> { return this.update( `/api/admin/package-traffic-alert-rules/${id}`, data ) } /** * 查询套餐真流量预警记录列表 * GET /api/admin/package-traffic-alerts * 列表数据除 business_user_group_names 外均为触发时快照 */ static getAlertRecords( params?: PackageTrafficAlertRecordQueryParams ): Promise> { return this.getPage('/api/admin/package-traffic-alerts', params) } /** * 查询套餐真流量预警记录详情 * GET /api/admin/package-traffic-alerts/{id} * 越权查询统一按资源不可见处理 */ static getAlertRecordDetail(id: number): Promise> { // 越权查询详情统一按资源不可见处理,抑制全局报错提示,由页面给出统一文案 return this.getOne( `/api/admin/package-traffic-alerts/${id}`, undefined, { requestOptions: { errorMessageMode: 'none' } } ) } /** * 导出套餐真流量达量预警 * POST /api/admin/package-traffic-alerts/export * 只创建异步导出任务,后续通过既有导出任务列表下载文件 */ static exportAlertRecords( data: ExportPackageTrafficAlertParams ): Promise> { return this.post>( '/api/admin/package-traffic-alerts/export', data ) } }