178 lines
5.5 KiB
JavaScript
Raw Normal View History

2026-03-11 00:09:41 +08:00
import { BaseApi } from '../baseApi';
import { http } from '../../utils/request';
// ==================== 订单管理 ====================
/**
* 创建订单
* @param {Object} data - 订单信息
* @param {number} data.eventId - 赛事ID
* @param {number} data.registrationMode - 报名模式 (1:个人报名, 2:团队报名)
* @param {string} [data.teamName] - 团队名称(团队报名时必填)
* @param {string} data.contactName - 联系人姓名
* @param {string} data.contactPhone - 联系人电话
* @param {Array<Object>} data.items - 报名项目列表
* @param {number} data.items[].projectId - 项目ID
* @param {string} data.items[].projectName - 项目名称
* @param {string} data.items[].projectTypeName - 项目类型名称
* @param {string} data.items[].groupName - 组别名称
* @param {number} data.items[].unitPrice - 单价
* @param {number} data.items[].personCount - 人数
* @param {Array<Object>} data.persons - 参赛人员列表
* @param {string} data.persons[].name - 姓名
* @param {string} data.persons[].idCard - 身份证号
* @param {string} data.persons[].phone - 联系电话
* @param {string} data.persons[].gender - 性别 (Male=男, Female=女)
* @returns {Promise<string>} - 返回订单号
*/
export const orderCreatePost = (data) => {
return http.post('/order/create', data);
};
/**
* 订单分页查询
* @param {Object} params - 查询参数
* @param {number} [params.pageNo] - 当前页码
* @param {number} [params.pageSize] - 每页条数
* @param {string} [params.orderNo] - 订单号
* @param {string} [params.contactName] - 联系人姓名
* @param {string} [params.contactPhone] - 联系人电话
* @param {number} [params.eventId] - 赛事ID
* @param {number} [params.status] - 订单状态 (0:待支付, 1:已支付, 2:已取消, 3:已退款, 4:已完成)
* @param {string} [params.startTime] - 开始时间
* @param {string} [params.endTime] - 结束时间
*/
export const orderPageGet = (params) => {
return http.get('/order/page', { params });
};
/**
* 获取订单详情
* @param {Object} params - 查询参数
* @param {string} params.orderNo - 订单号
* @returns {Promise<{
* orderNo: string,
* eventId: number,
* eventName: string,
* registrationMode: number,
* teamName: string,
* contactName: string,
* contactPhone: string,
* totalAmount: number,
* discountAmount: number,
* payableAmount: number,
* status: number,
* createdTime: string,
* paidTime: string,
* items: Array<{
* projectId: number,
* projectName: string,
* projectTypeName: string,
* groupName: string,
* unitPrice: number,
* personCount: number,
* subtotal: number
* }>,
* persons: Array<{
* name: string,
* idCard: string,
* phone: string,
* gender: string,
* birthDate: string,
* age: number
* }>
* }>}
*/
export const orderDetailGet = (params) => {
return http.get('/order/detail', { params });
};
/**
* 更新订单状态
* @param {Object} data - 状态信息
* @param {string} data.orderNo - 订单号
* @param {number} data.status - 订单状态 (0:待支付, 1:已支付, 2:已取消, 3:已退款, 4:已完成)
* @param {string} [data.remark] - 备注说明
*/
export const orderStatusPut = (data) => {
return http.put('/order/status', data);
};
/**
* 获取建议退款金额
* @param {Object} params - 查询参数
* @param {string} params.orderNo - 订单号
* @param {Array<number>} [params.itemIds] - 退款项目ID列表(部分退款时传)
* @returns {Promise<{
* totalRefundAmount: number,
* refundableAmount: number,
* refundItems: Array<{
* itemId: number,
* projectName: string,
* unitPrice: number,
* personCount: number,
* subtotal: number,
* refundableAmount: number
* }>
* }>}
*/
export const orderRefundAmountGet = (params) => {
return http.get('/order/refund-amount', { params });
};
/**
* 订单退款
* @param {Object} data - 退款信息
* @param {string} data.orderNo - 订单号
* @param {number} data.refundAmount - 退款金额
* @param {Array<number>} [data.itemIds] - 退款项目ID列表(部分退款时传)
* @param {string} data.reason - 退款原因
* @param {string} [data.remark] - 备注说明
*/
export const orderRefundPost = (data) => {
return http.post('/order/refund', data);
};
/**
* 批量删除订单
* @param {Array<string>} data - 订单号数组
*/
export const orderDeletePost = (data) => {
return http.post('/order/delete', data);
};
/**
* 删除单个订单
* @param {Object} data - 删除参数
* @param {string} data.id - 订单ID
*/
export const orderDeleteDelete = (data) => {
return http.delete('/order/delete', { data });
};
/**
* 导出订单
* @param {Object} params - 导出参数
* @param {number} [params.eventId] - 赛事ID
* @param {number} [params.status] - 订单状态
* @param {string} [params.startTime] - 开始时间
* @param {string} [params.endTime] - 结束时间
* @param {string} [params.fileType] - 文件类型 (excel, csv)
* @returns {Promise<Blob>} - 返回文件流
*/
export const orderExportGet = (params) => {
return http.get('/order/export', {
params,
responseType: 'blob'
});
};
/**
* 修改订单状态(通用状态修改)
* @param {Object} data - 状态参数
* @param {number} data.id - 订单ID
* @param {string} data.status - 状态 (Enable=启用, Disable=禁用)
*/
export const orderSetstatusPatch = (data) => {
return http.patch('/order/setstatus', data);
};