/** * 设备管理相关 API */ import { BaseService } from '../BaseService' import type { Device, DeviceQueryParams, DeviceListResponse, DeviceCardsResponse, BindCardToDeviceRequest, BindCardToDeviceResponse, UnbindCardFromDeviceResponse, AllocateDevicesRequest, AllocateDevicesResponse, RecallDevicesRequest, RecallDevicesResponse, ImportDeviceRequest, ImportDeviceResponse, DeviceImportTaskQueryParams, DeviceImportTaskListResponse, DeviceImportTaskDetail, BaseResponse } from '@/types/api' export class DeviceService extends BaseService { // ========== 设备基础管理 ========== /** * 获取设备列表 * @param params 查询参数 */ static getDevices(params?: DeviceQueryParams): Promise> { return this.get>('/api/admin/devices', params) } /** * 获取设备详情 * @param id 设备ID */ static getDeviceById(id: number): Promise> { return this.getOne(`/api/admin/devices/${id}`) } /** * 通过设备号查询设备详情 * @param imei 设备号(IMEI) */ static getDeviceByImei(imei: string): Promise> { return this.getOne(`/api/admin/devices/by-imei/${imei}`) } /** * 删除设备 * @param id 设备ID */ static deleteDevice(id: number): Promise { return this.remove(`/api/admin/devices/${id}`) } // ========== 设备卡绑定管理 ========== /** * 获取设备绑定的卡列表 * @param id 设备ID */ static getDeviceCards(id: number): Promise> { return this.getOne(`/api/admin/devices/${id}/cards`) } /** * 绑定卡到设备 * @param id 设备ID * @param data 绑定参数 */ static bindCard( id: number, data: BindCardToDeviceRequest ): Promise> { return this.post>( `/api/admin/devices/${id}/cards`, data ) } /** * 解绑设备上的卡 * @param deviceId 设备ID * @param cardId IoT卡ID */ static unbindCard( deviceId: number, cardId: number ): Promise> { return this.delete>( `/api/admin/devices/${deviceId}/cards/${cardId}` ) } // ========== 批量分配和回收 ========== /** * 批量分配设备 * @param data 分配参数 */ static allocateDevices( data: AllocateDevicesRequest ): Promise> { return this.post>( '/api/admin/devices/allocate', data ) } /** * 批量回收设备 * @param data 回收参数 */ static recallDevices( data: RecallDevicesRequest ): Promise> { return this.post>('/api/admin/devices/recall', data) } // ========== 设备导入 ========== /** * 批量导入设备 * @param data 导入参数 */ static importDevices( data: ImportDeviceRequest ): Promise> { return this.post>('/api/admin/devices/import', data) } /** * 获取导入任务列表 * @param params 查询参数 */ static getImportTasks( params?: DeviceImportTaskQueryParams ): Promise> { return this.get>( '/api/admin/devices/import/tasks', params ) } /** * 获取导入任务详情 * @param id 任务ID */ static getImportTaskDetail(id: number): Promise> { return this.getOne(`/api/admin/devices/import/tasks/${id}`) } // ========== 批量设置设备的套餐系列绑定相关 ========== /** * 批量设置设备的套餐系列绑定 * @param data 请求参数 */ static batchSetDeviceSeriesBinding(data: { device_ids: number[] series_allocation_id: number }): Promise> { return this.patch('/api/admin/devices/series-binding', data) } }