This commit is contained in:
@@ -6,21 +6,18 @@
|
||||
import { BaseService } from '../BaseService'
|
||||
import type {
|
||||
BaseResponse,
|
||||
AssetType,
|
||||
AssetResolveResponse,
|
||||
AssetRealtimeStatusResponse,
|
||||
AssetRefreshResponse,
|
||||
AssetPackageUsageRecord,
|
||||
AssetPackageListResponse,
|
||||
AssetPackageParams,
|
||||
AssetCurrentPackageResponse,
|
||||
DeviceStopResponse,
|
||||
DeviceStartResponse,
|
||||
CardStopResponse,
|
||||
CardStartResponse,
|
||||
AssetWalletTransactionListResponse,
|
||||
AssetWalletTransactionParams,
|
||||
AssetWalletResponse
|
||||
AssetWalletResponse,
|
||||
AssetOrdersParams,
|
||||
AssetOrdersResponse
|
||||
} from '@/types/api'
|
||||
|
||||
export class AssetService extends BaseService {
|
||||
@@ -36,148 +33,150 @@ export class AssetService extends BaseService {
|
||||
|
||||
/**
|
||||
* 读取资产实时状态(直接读 DB/Redis,不调网关)
|
||||
* GET /api/admin/assets/:asset_type/:id/realtime-status
|
||||
* @param assetType 资产类型 (card 或 device)
|
||||
* @param id 资产ID
|
||||
* GET /api/admin/assets/:identifier/realtime-status
|
||||
* @param identifier 资产标识符(ICCID 或 VirtualNo)
|
||||
*/
|
||||
static getRealtimeStatus(
|
||||
assetType: AssetType,
|
||||
id: number
|
||||
): Promise<BaseResponse<AssetRealtimeStatusResponse>> {
|
||||
static getRealtimeStatus(identifier: string): Promise<BaseResponse<AssetRealtimeStatusResponse>> {
|
||||
return this.getOne<AssetRealtimeStatusResponse>(
|
||||
`/api/admin/assets/${assetType}/${id}/realtime-status`
|
||||
`/api/admin/assets/${identifier}/realtime-status`
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 主动调网关拉取最新数据后返回
|
||||
* POST /api/admin/assets/:asset_type/:id/refresh
|
||||
* POST /api/admin/assets/:identifier/refresh
|
||||
* 注意:设备有 30 秒冷却期,冷却中调用返回 429
|
||||
* @param assetType 资产类型 (card 或 device)
|
||||
* @param id 资产ID
|
||||
* @param identifier 资产标识符(ICCID 或 VirtualNo)
|
||||
*/
|
||||
static refreshAsset(
|
||||
assetType: AssetType,
|
||||
id: number
|
||||
): Promise<BaseResponse<AssetRefreshResponse>> {
|
||||
static refreshAsset(identifier: string): Promise<BaseResponse<AssetRefreshResponse>> {
|
||||
return this.post<BaseResponse<AssetRefreshResponse>>(
|
||||
`/api/admin/assets/${assetType}/${id}/refresh`,
|
||||
`/api/admin/assets/${identifier}/refresh`,
|
||||
{}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询该资产所有套餐记录,含虚流量换算字段(分页)
|
||||
* GET /api/admin/assets/:asset_type/:id/packages?page=1&page_size=50
|
||||
* @param assetType 资产类型 (card 或 device)
|
||||
* @param id 资产ID
|
||||
* GET /api/admin/assets/:identifier/packages?page=1&page_size=50
|
||||
* @param identifier 资产标识符(ICCID 或 VirtualNo)
|
||||
* @param params 查询参数(可选分页参数)
|
||||
*/
|
||||
static getAssetPackages(
|
||||
assetType: AssetType,
|
||||
id: number,
|
||||
identifier: string,
|
||||
params?: AssetPackageParams
|
||||
): Promise<BaseResponse<AssetPackageListResponse>> {
|
||||
return this.get<BaseResponse<AssetPackageListResponse>>(
|
||||
`/api/admin/assets/${assetType}/${id}/packages`,
|
||||
`/api/admin/assets/${identifier}/packages`,
|
||||
params
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询当前生效中的主套餐
|
||||
* GET /api/admin/assets/:asset_type/:id/current-package
|
||||
* GET /api/admin/assets/:identifier/current-package
|
||||
* 无生效套餐时返回 404
|
||||
* @param assetType 资产类型 (card 或 device)
|
||||
* @param id 资产ID
|
||||
* @param identifier 资产标识符(ICCID 或 VirtualNo)
|
||||
*/
|
||||
static getCurrentPackage(
|
||||
assetType: AssetType,
|
||||
id: number
|
||||
): Promise<BaseResponse<AssetCurrentPackageResponse>> {
|
||||
static getCurrentPackage(identifier: string): Promise<BaseResponse<AssetCurrentPackageResponse>> {
|
||||
return this.getOne<AssetCurrentPackageResponse>(
|
||||
`/api/admin/assets/${assetType}/${id}/current-package`
|
||||
`/api/admin/assets/${identifier}/current-package`
|
||||
)
|
||||
}
|
||||
|
||||
// ========== 设备停复机操作 ==========
|
||||
// ========== 资产停复机操作(统一接口)==========
|
||||
|
||||
/**
|
||||
* 批量停机设备下所有已实名卡
|
||||
* POST /api/admin/assets/device/:device_id/stop
|
||||
* 停机资产(卡或设备)
|
||||
* POST /api/admin/assets/:identifier/stop
|
||||
* 停机成功后设置 1 小时停机保护期(保护期内禁止复机)
|
||||
* @param deviceId 设备ID
|
||||
* @param identifier 资产标识符(ICCID 或 VirtualNo)
|
||||
*/
|
||||
static stopDevice(deviceId: number): Promise<BaseResponse<DeviceStopResponse>> {
|
||||
return this.post<BaseResponse<DeviceStopResponse>>(
|
||||
`/api/admin/assets/device/${deviceId}/stop`,
|
||||
static stopAsset(identifier: string): Promise<BaseResponse<DeviceStopResponse | void>> {
|
||||
return this.post<BaseResponse<DeviceStopResponse | void>>(
|
||||
`/api/admin/assets/${identifier}/stop`,
|
||||
{}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量复机设备下所有已实名卡
|
||||
* POST /api/admin/assets/device/:device_id/start
|
||||
* 复机资产(卡或设备)
|
||||
* POST /api/admin/assets/:identifier/start
|
||||
* 复机成功后设置 1 小时复机保护期(保护期内禁止停机)
|
||||
* @param deviceId 设备ID
|
||||
* @param identifier 资产标识符(ICCID 或 VirtualNo)
|
||||
*/
|
||||
static startDevice(deviceId: number): Promise<BaseResponse<void>> {
|
||||
return this.post<BaseResponse<void>>(`/api/admin/assets/device/${deviceId}/start`, {})
|
||||
static startAsset(identifier: string): Promise<BaseResponse<void>> {
|
||||
return this.post<BaseResponse<void>>(`/api/admin/assets/${identifier}/start`, {})
|
||||
}
|
||||
|
||||
// ========== 单卡停复机操作 ==========
|
||||
// ========== 资产停用 ==========
|
||||
|
||||
/**
|
||||
* 手动停机单张卡(通过 ICCID)
|
||||
* POST /api/admin/assets/card/:iccid/stop
|
||||
* 若卡绑定的设备在复机保护期内,返回 403
|
||||
* @param iccid ICCID
|
||||
* 手动停用资产(卡或设备)
|
||||
* PATCH /api/admin/assets/:identifier/deactivate
|
||||
* @param identifier 资产标识符(ICCID 或 VirtualNo)
|
||||
*/
|
||||
static stopCard(iccid: string): Promise<BaseResponse<void>> {
|
||||
return this.post<BaseResponse<void>>(`/api/admin/assets/card/${iccid}/stop`, {})
|
||||
}
|
||||
|
||||
/**
|
||||
* 手动复机单张卡(通过 ICCID)
|
||||
* POST /api/admin/assets/card/:iccid/start
|
||||
* 若卡绑定的设备在停机保护期内,返回 403
|
||||
* @param iccid ICCID
|
||||
*/
|
||||
static startCard(iccid: string): Promise<BaseResponse<void>> {
|
||||
return this.post<BaseResponse<void>>(`/api/admin/assets/card/${iccid}/start`, {})
|
||||
static deactivateAsset(identifier: string): Promise<BaseResponse> {
|
||||
return this.patch<BaseResponse>(`/api/admin/assets/${identifier}/deactivate`, {})
|
||||
}
|
||||
|
||||
// ========== 钱包查询 ==========
|
||||
|
||||
/**
|
||||
* 查询指定卡或设备的钱包余额概况
|
||||
* GET /api/admin/assets/:asset_type/:id/wallet
|
||||
* GET /api/admin/assets/:identifier/wallet
|
||||
* 企业账号禁止调用
|
||||
* @param assetType 资产类型 (card 或 device)
|
||||
* @param id 资产ID
|
||||
* @param identifier 资产标识符(ICCID 或 VirtualNo)
|
||||
*/
|
||||
static getAssetWallet(
|
||||
assetType: AssetType,
|
||||
id: number
|
||||
): Promise<BaseResponse<AssetWalletResponse>> {
|
||||
return this.getOne<AssetWalletResponse>(`/api/admin/assets/${assetType}/${id}/wallet`)
|
||||
static getAssetWallet(identifier: string): Promise<BaseResponse<AssetWalletResponse>> {
|
||||
return this.getOne<AssetWalletResponse>(`/api/admin/assets/${identifier}/wallet`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询指定资产的钱包收支流水
|
||||
* GET /api/admin/assets/:asset_type/:id/wallet/transactions
|
||||
* GET /api/admin/assets/:identifier/wallet/transactions
|
||||
* 企业账号禁止调用
|
||||
* @param assetType 资产类型 (card 或 device)
|
||||
* @param id 资产ID
|
||||
* @param identifier 资产标识符(ICCID 或 VirtualNo)
|
||||
* @param params 查询参数
|
||||
*/
|
||||
static getWalletTransactions(
|
||||
assetType: AssetType,
|
||||
id: number,
|
||||
identifier: string,
|
||||
params?: AssetWalletTransactionParams
|
||||
): Promise<BaseResponse<AssetWalletTransactionListResponse>> {
|
||||
return this.get<BaseResponse<AssetWalletTransactionListResponse>>(
|
||||
`/api/admin/assets/${assetType}/${id}/wallet/transactions`,
|
||||
`/api/admin/assets/${identifier}/wallet/transactions`,
|
||||
params
|
||||
)
|
||||
}
|
||||
|
||||
// ========== 轮询状态更新 ==========
|
||||
|
||||
/**
|
||||
* 更新资产轮询状态
|
||||
* PATCH /api/admin/assets/:identifier/polling-status
|
||||
* @param identifier 资产标识符(ICCID 或 VirtualNo)
|
||||
* @param data 轮询状态数据
|
||||
*/
|
||||
static updatePollingStatus(
|
||||
identifier: string,
|
||||
data: { enable_polling: boolean }
|
||||
): Promise<BaseResponse> {
|
||||
return this.patch<BaseResponse>(`/api/admin/assets/${identifier}/polling-status`, data)
|
||||
}
|
||||
|
||||
// ========== 资产历史订单 ==========
|
||||
|
||||
/**
|
||||
* 查询资产历史订单
|
||||
* GET /api/admin/assets/:identifier/orders
|
||||
* @param identifier 资产标识符(ICCID 或 VirtualNo)
|
||||
* @param params 查询参数
|
||||
*/
|
||||
static getAssetOrders(
|
||||
identifier: string,
|
||||
params?: AssetOrdersParams
|
||||
): Promise<BaseResponse<AssetOrdersResponse>> {
|
||||
return this.get<BaseResponse<AssetOrdersResponse>>(
|
||||
`/api/admin/assets/${identifier}/orders`,
|
||||
params
|
||||
)
|
||||
}
|
||||
|
||||
@@ -56,45 +56,48 @@ export class DeviceService extends BaseService {
|
||||
|
||||
/**
|
||||
* 删除设备
|
||||
* @param id 设备ID
|
||||
* @param virtualNo 设备虚拟号
|
||||
*/
|
||||
static deleteDevice(id: number): Promise<BaseResponse> {
|
||||
return this.remove(`/api/admin/devices/${id}`)
|
||||
static deleteDevice(virtualNo: string): Promise<BaseResponse> {
|
||||
return this.remove(`/api/admin/devices/${virtualNo}`)
|
||||
}
|
||||
|
||||
// ========== 设备卡绑定管理 ==========
|
||||
|
||||
/**
|
||||
* 获取设备绑定的卡列表
|
||||
* @param id 设备ID
|
||||
* @param virtualNo 设备虚拟号
|
||||
*/
|
||||
static getDeviceCards(id: number): Promise<BaseResponse<DeviceCardsResponse>> {
|
||||
return this.getOne<DeviceCardsResponse>(`/api/admin/devices/${id}/cards`)
|
||||
static getDeviceCards(virtualNo: string): Promise<BaseResponse<DeviceCardsResponse>> {
|
||||
return this.getOne<DeviceCardsResponse>(`/api/admin/devices/${virtualNo}/cards`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 绑定卡到设备
|
||||
* @param id 设备ID
|
||||
* @param virtualNo 设备虚拟号
|
||||
* @param data 绑定参数
|
||||
*/
|
||||
static bindCard(
|
||||
id: number,
|
||||
virtualNo: string,
|
||||
data: BindCardToDeviceRequest
|
||||
): Promise<BaseResponse<BindCardToDeviceResponse>> {
|
||||
return this.post<BaseResponse<BindCardToDeviceResponse>>(`/api/admin/devices/${id}/cards`, data)
|
||||
return this.post<BaseResponse<BindCardToDeviceResponse>>(
|
||||
`/api/admin/devices/${virtualNo}/cards`,
|
||||
data
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 解绑设备上的卡
|
||||
* @param deviceId 设备ID
|
||||
* @param cardId IoT卡ID
|
||||
* @param virtualNo 设备虚拟号
|
||||
* @param iccid 卡ICCID
|
||||
*/
|
||||
static unbindCard(
|
||||
deviceId: number,
|
||||
cardId: number
|
||||
virtualNo: string,
|
||||
iccid: string
|
||||
): Promise<BaseResponse<UnbindCardFromDeviceResponse>> {
|
||||
return this.delete<BaseResponse<UnbindCardFromDeviceResponse>>(
|
||||
`/api/admin/devices/${deviceId}/cards/${cardId}`
|
||||
`/api/admin/devices/${virtualNo}/cards/${iccid}`
|
||||
)
|
||||
}
|
||||
|
||||
@@ -230,12 +233,4 @@ export class DeviceService extends BaseService {
|
||||
data
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 手动停用设备
|
||||
* @param id 设备ID
|
||||
*/
|
||||
static deactivateDevice(id: number): Promise<BaseResponse> {
|
||||
return this.patch<BaseResponse>(`/api/admin/devices/${id}/deactivate`, {})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,10 +66,10 @@ export class ExchangeService extends BaseService {
|
||||
static getExchanges(
|
||||
params?: ExchangeQueryParams
|
||||
): Promise<
|
||||
BaseResponse<{ list: ExchangeResponse[]; page: number; page_size: number; total: number }>
|
||||
BaseResponse<{ items: ExchangeResponse[]; page: number; page_size: number; total: number }>
|
||||
> {
|
||||
return this.get<
|
||||
BaseResponse<{ list: ExchangeResponse[]; page: number; page_size: number; total: number }>
|
||||
BaseResponse<{ items: ExchangeResponse[]; page: number; page_size: number; total: number }>
|
||||
>('/api/admin/exchanges', params)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user