Initial commit: One Pipe System
完整的管理系统,包含账户管理、卡片管理、套餐管理、财务管理等功能模块。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
274
src/api/modules/card.ts
Normal file
274
src/api/modules/card.ts
Normal file
@@ -0,0 +1,274 @@
|
||||
/**
|
||||
* 网卡相关 API
|
||||
*/
|
||||
|
||||
import { BaseService } from '../BaseService'
|
||||
import type {
|
||||
Card,
|
||||
SimCardProduct,
|
||||
CardQueryParams,
|
||||
CardImportBatch,
|
||||
CardOperationParams,
|
||||
CardAssignParams,
|
||||
BatchRechargeRecord,
|
||||
CardChangeApplication,
|
||||
ProcessCardChangeParams,
|
||||
FlowDetail,
|
||||
SuspendResumeRecord,
|
||||
CardOrder,
|
||||
BaseResponse,
|
||||
PaginationResponse,
|
||||
ListResponse
|
||||
} from '@/types/api'
|
||||
|
||||
export class CardService extends BaseService {
|
||||
// ========== 号卡商品管理 ==========
|
||||
|
||||
/**
|
||||
* 获取号卡商品列表
|
||||
* @param params 查询参数
|
||||
*/
|
||||
static getSimCardProducts(params?: any): Promise<PaginationResponse<SimCardProduct>> {
|
||||
return this.getPage<SimCardProduct>('/api/simcard-products', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建号卡商品
|
||||
* @param data 商品数据
|
||||
*/
|
||||
static createSimCardProduct(data: Partial<SimCardProduct>): Promise<BaseResponse> {
|
||||
return this.create('/api/simcard-products', data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新号卡商品
|
||||
* @param id 商品ID
|
||||
* @param data 商品数据
|
||||
*/
|
||||
static updateSimCardProduct(
|
||||
id: string | number,
|
||||
data: Partial<SimCardProduct>
|
||||
): Promise<BaseResponse> {
|
||||
return this.update(`/api/simcard-products/${id}`, data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除号卡商品
|
||||
* @param id 商品ID
|
||||
*/
|
||||
static deleteSimCardProduct(id: string | number): Promise<BaseResponse> {
|
||||
return this.remove(`/api/simcard-products/${id}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 号卡分配
|
||||
* @param params 分配参数
|
||||
*/
|
||||
static assignCard(params: CardAssignParams): Promise<BaseResponse> {
|
||||
return this.post<BaseResponse>('/api/simcard-products/assign', params)
|
||||
}
|
||||
|
||||
// ========== 网卡管理 ==========
|
||||
|
||||
/**
|
||||
* 获取网卡列表
|
||||
* @param params 查询参数
|
||||
*/
|
||||
static getCards(params?: CardQueryParams): Promise<PaginationResponse<Card>> {
|
||||
return this.getPage<Card>('/api/cards', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ICCID获取单卡信息
|
||||
* @param iccid ICCID
|
||||
*/
|
||||
static getCardByIccid(iccid: string): Promise<BaseResponse<Card>> {
|
||||
return this.getOne<Card>(`/api/cards/iccid/${iccid}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 网卡操作(充值、停复机、增减流量等)
|
||||
* @param params 操作参数
|
||||
*/
|
||||
static cardOperation(params: CardOperationParams): Promise<BaseResponse> {
|
||||
return this.post<BaseResponse>('/api/cards/operation', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 套餐充值
|
||||
* @param iccid ICCID
|
||||
* @param packageId 套餐ID
|
||||
*/
|
||||
static rechargePackage(iccid: string, packageId: string | number): Promise<BaseResponse> {
|
||||
return this.post<BaseResponse>(`/api/cards/${iccid}/recharge`, { packageId })
|
||||
}
|
||||
|
||||
/**
|
||||
* 停机
|
||||
* @param iccid ICCID
|
||||
* @param remark 备注
|
||||
*/
|
||||
static suspend(iccid: string, remark?: string): Promise<BaseResponse> {
|
||||
return this.post<BaseResponse>(`/api/cards/${iccid}/suspend`, { remark })
|
||||
}
|
||||
|
||||
/**
|
||||
* 复机
|
||||
* @param iccid ICCID
|
||||
* @param remark 备注
|
||||
*/
|
||||
static resume(iccid: string, remark?: string): Promise<BaseResponse> {
|
||||
return this.post<BaseResponse>(`/api/cards/${iccid}/resume`, { remark })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取流量详情
|
||||
* @param iccid ICCID
|
||||
* @param startDate 开始日期
|
||||
* @param endDate 结束日期
|
||||
*/
|
||||
static getFlowDetails(
|
||||
iccid: string,
|
||||
startDate?: string,
|
||||
endDate?: string
|
||||
): Promise<ListResponse<FlowDetail>> {
|
||||
return this.getList<FlowDetail>(`/api/cards/${iccid}/flow-details`, {
|
||||
startDate,
|
||||
endDate
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取停复机记录
|
||||
* @param iccid ICCID
|
||||
*/
|
||||
static getSuspendResumeRecords(iccid: string): Promise<ListResponse<SuspendResumeRecord>> {
|
||||
return this.getList<SuspendResumeRecord>(`/api/cards/${iccid}/suspend-resume-records`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取往期订单
|
||||
* @param iccid ICCID
|
||||
*/
|
||||
static getCardOrders(iccid: string): Promise<ListResponse<CardOrder>> {
|
||||
return this.getList<CardOrder>(`/api/cards/${iccid}/orders`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 更改过期时间
|
||||
* @param iccid ICCID
|
||||
* @param expireTime 过期时间
|
||||
*/
|
||||
static changeExpireTime(iccid: string, expireTime: string): Promise<BaseResponse> {
|
||||
return this.put<BaseResponse>(`/api/cards/${iccid}/expire-time`, { expireTime })
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加流量
|
||||
* @param iccid ICCID
|
||||
* @param flow 流量(MB)
|
||||
*/
|
||||
static addFlow(iccid: string, flow: number): Promise<BaseResponse> {
|
||||
return this.post<BaseResponse>(`/api/cards/${iccid}/add-flow`, { flow })
|
||||
}
|
||||
|
||||
/**
|
||||
* 减少流量
|
||||
* @param iccid ICCID
|
||||
* @param flow 流量(MB)
|
||||
*/
|
||||
static reduceFlow(iccid: string, flow: number): Promise<BaseResponse> {
|
||||
return this.post<BaseResponse>(`/api/cards/${iccid}/reduce-flow`, { flow })
|
||||
}
|
||||
|
||||
/**
|
||||
* 变更钱包余额
|
||||
* @param iccid ICCID
|
||||
* @param amount 金额
|
||||
*/
|
||||
static changeWalletBalance(iccid: string, amount: number): Promise<BaseResponse> {
|
||||
return this.put<BaseResponse>(`/api/cards/${iccid}/wallet`, { amount })
|
||||
}
|
||||
|
||||
// ========== 批量操作 ==========
|
||||
|
||||
/**
|
||||
* 获取导入批次列表
|
||||
* @param params 查询参数
|
||||
*/
|
||||
static getImportBatches(params?: any): Promise<PaginationResponse<CardImportBatch>> {
|
||||
return this.getPage<CardImportBatch>('/api/cards/import-batches', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量导入网卡
|
||||
* @param file Excel文件
|
||||
* @param params 额外参数
|
||||
*/
|
||||
static importCards(file: File, params?: Record<string, any>): Promise<BaseResponse> {
|
||||
return this.upload('/api/cards/import', file, params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导入失败记录
|
||||
* @param batchId 批次ID
|
||||
*/
|
||||
static getImportFailures(batchId: string | number): Promise<ListResponse<any>> {
|
||||
return this.getList(`/api/cards/import-batches/${batchId}/failures`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量充值记录列表
|
||||
* @param params 查询参数
|
||||
*/
|
||||
static getBatchRechargeRecords(
|
||||
params?: any
|
||||
): Promise<PaginationResponse<BatchRechargeRecord>> {
|
||||
return this.getPage<BatchRechargeRecord>('/api/cards/batch-recharge-records', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量充值导入
|
||||
* @param file Excel文件
|
||||
*/
|
||||
static batchRecharge(file: File): Promise<BaseResponse> {
|
||||
return this.upload('/api/cards/batch-recharge', file)
|
||||
}
|
||||
|
||||
// ========== 换卡管理 ==========
|
||||
|
||||
/**
|
||||
* 获取换卡申请列表
|
||||
* @param params 查询参数
|
||||
*/
|
||||
static getCardChangeApplications(
|
||||
params?: any
|
||||
): Promise<PaginationResponse<CardChangeApplication>> {
|
||||
return this.getPage<CardChangeApplication>('/api/card-change-applications', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理换卡申请
|
||||
* @param params 处理参数
|
||||
*/
|
||||
static processCardChange(params: ProcessCardChangeParams): Promise<BaseResponse> {
|
||||
return this.post<BaseResponse>('/api/card-change-applications/process', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建换卡通知
|
||||
* @param iccids ICCID列表
|
||||
* @param reason 换卡原因
|
||||
*/
|
||||
static createCardChangeNotice(iccids: string[], reason: string): Promise<BaseResponse> {
|
||||
return this.post<BaseResponse>('/api/card-change-notices', { iccids, reason })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取换卡通知记录
|
||||
* @param params 查询参数
|
||||
*/
|
||||
static getCardChangeNotices(params?: any): Promise<PaginationResponse<any>> {
|
||||
return this.getPage('/api/card-change-notices', params)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user