178 lines
5.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
};