178 lines
5.5 KiB
JavaScript
178 lines
5.5 KiB
JavaScript
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);
|
||
}; |