60 lines
1.6 KiB
TypeScript
60 lines
1.6 KiB
TypeScript
import { api } from './api';
|
|
import type {
|
|
Broker,
|
|
CreateBrokerRequest,
|
|
UpdateBrokerRequest,
|
|
QueryBrokerRequest,
|
|
PaginatedBrokerResponse,
|
|
ApiResponse,
|
|
} from '@/types/broker';
|
|
|
|
/**
|
|
* 券商服务
|
|
*/
|
|
class BrokerService {
|
|
/**
|
|
* 查询券商列表(分页)
|
|
*/
|
|
async getBrokerList(params: QueryBrokerRequest): Promise<PaginatedBrokerResponse> {
|
|
// api.get 返回的是 TransformInterceptor 处理后的 { code, message, data }
|
|
// 其中 data 就是 PaginatedBrokerResponse
|
|
const response = await api.get<ApiResponse<PaginatedBrokerResponse>>('/broker', { params });
|
|
// 如果 response 已经是 PaginatedBrokerResponse 格式,直接返回
|
|
if ('list' in response && 'pagination' in response) {
|
|
return response as PaginatedBrokerResponse;
|
|
}
|
|
// 否则从 ApiResponse 中取 data
|
|
return (response as ApiResponse<PaginatedBrokerResponse>).data;
|
|
}
|
|
|
|
/**
|
|
* 根据ID查询券商
|
|
*/
|
|
async getBrokerById(id: number): Promise<Broker> {
|
|
return await api.get<Broker>(`/broker/${id}`);
|
|
}
|
|
|
|
/**
|
|
* 创建券商
|
|
*/
|
|
async createBroker(data: CreateBrokerRequest): Promise<Broker> {
|
|
return await api.post<Broker>('/broker', data);
|
|
}
|
|
|
|
/**
|
|
* 更新券商
|
|
*/
|
|
async updateBroker(id: number, data: UpdateBrokerRequest): Promise<Broker> {
|
|
return await api.patch<Broker>(`/broker/${id}`, data);
|
|
}
|
|
|
|
/**
|
|
* 删除券商
|
|
*/
|
|
async deleteBroker(id: number): Promise<void> {
|
|
await api.delete(`/broker/${id}`);
|
|
}
|
|
}
|
|
|
|
export const brokerService = new BrokerService();
|