feat: 完成券商和用户管理
This commit is contained in:
59
apps/web/src/services/broker.ts
Normal file
59
apps/web/src/services/broker.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
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();
|
||||
Reference in New Issue
Block a user