feat: 完成券商和用户管理

This commit is contained in:
R524809
2026-01-07 16:21:16 +08:00
parent 712f66b725
commit 457ba6d765
33 changed files with 2851 additions and 177 deletions

View 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();