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} 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} 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} - 返回订单号 */ 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} [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} [data.itemIds] - 退款项目ID列表(部分退款时传) * @param {string} data.reason - 退款原因 * @param {string} [data.remark] - 备注说明 */ export const orderRefundPost = (data) => { return http.post('/order/refund', data); }; /** * 批量删除订单 * @param {Array} 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} - 返回文件流 */ 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); };