YD_Event.Web/src/api/match/usereventrecord..js

231 lines
6.6 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 { http } from '../../utils/request';
// ==================== 用户端参赛记录管理 ====================
/**
* 1. 列表查询
* @param {Object} params - 查询参数
* @param {number} [params.EventId] - 赛事ID (可选)
* @param {string} [params.Status] - 状态 (可选)
* @param {string} [params.Keyword] - 关键字搜索 (队伍名/赛事名)
* @param {number} [params.PageNo] - 当前页码
* @param {number} [params.PageSize] - 每页条数
* @returns {Promise<{
* pageNo: number,
* pageSize: number,
* pages: number,
* total: number,
* rows: Array<{
* registrationId: number,
* eventName: string,
* teamName: string,
* status: string,
* createTime: string,
* updateTime: string,
* payStatus: string,
* certStatus: string,
* hasMaterial: boolean,
* hasVoucher: boolean,
* memberCount: number,
* maxMember: number,
* expireTime: string
* }>
* }>}
*/
export const usereventrecordListGet = (params) => {
return http.get('/usereventrecord/list', { params });
};
/**
* 2. 取消报名
* @param {number} registrationid - 报名记录ID (路径参数)
* @returns {Promise<{
* code: number,
* message: string,
* data: boolean,
* success: boolean
* }>}
*/
export const usereventrecordCancelPost = (registrationid) => {
return http.post(`/usereventrecord/cancel/${registrationid}`);
};
/**
* 3. 上传素材
* @param {number} registrationid - 报名记录ID (路径参数)
* @param {Object} data - 素材表单数据
* @param {Array<File>} data.Files - 文件列表 (最多5个)
* @param {string} data.MaterialType - 素材类型 (图片/视频/其他)
* @param {string} [data.Description] - 描述 (可选)
* @returns {Promise<{
* code: number,
* message: string,
* data: Array<{
* materialId: string,
* ossUrl: string,
* fileName: string,
* fileSize: number,
* uploadTime: string
* }>,
* success: boolean
* }>}
*/
export const usereventrecordMaterialPost = (registrationid, data) => {
const formData = new FormData();
// 添加文件数组
if (data.Files && data.Files.length) {
data.Files.forEach(file => {
formData.append('Files', file);
});
}
// 添加其他字段
formData.append('MaterialType', data.MaterialType);
if (data.Description) formData.append('Description', data.Description);
return http.post(`/usereventrecord/material/${registrationid}`, formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
});
};
/**
* 4. 上传付款凭证
* @param {number} registrationid - 报名记录ID (路径参数)
* @param {Object} data - 凭证表单数据
* @param {File} data.File - 凭证图片 (单张)
* @param {number} data.PayAmount - 支付金额
* @param {string} data.PayTime - 支付时间 (ISO格式)
* @param {string} data.PayChannel - 支付渠道 (微信/支付宝/银行转账)
* @param {string} [data.TransactionId] - 交易流水号 (可选)
* @returns {Promise<{
* code: number,
* message: string,
* data: {
* voucherId: string,
* ossUrl: string,
* auditStatus: string
* },
* success: boolean
* }>}
*/
export const usereventrecordVoucherPost = (registrationid, data) => {
const formData = new FormData();
formData.append('File', data.File);
formData.append('PayAmount', data.PayAmount);
formData.append('PayTime', data.PayTime);
formData.append('PayChannel', data.PayChannel);
if (data.TransactionId) formData.append('TransactionId', data.TransactionId);
return http.post(`/usereventrecord/voucher/${registrationid}`, formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
});
};
/**
* 5.1 查看队员列表
* @param {number} registrationid - 报名记录ID (路径参数)
* @returns {Promise<Array<{
* userId: number,
* realName: string,
* phone: string,
* email: string,
* role: string,
* inviteStatus: string,
* joinTime: string
* }>>}
*/
export const usereventrecordMembersGet = (registrationid) => {
return http.get(`/usereventrecord/members/${registrationid}`);
};
/**
* 5.2 更换队员
* @param {number} registrationid - 报名记录ID (路径参数)
* @param {number} userid - 被替换的队员ID (路径参数)
* @param {Object} data - 更换信息
* @param {number} data.newUserId - 新队员用户ID
* @param {string} [data.replaceReason] - 更换原因 (可选)
* @returns {Promise<{
* code: number,
* message: string,
* data: boolean,
* success: boolean
* }>}
*/
export const usereventrecordMembersReplacePost = (registrationid, userid, data) => {
return http.post(`/usereventrecord/members/replace/${registrationid}/${userid}`, data);
};
/**
* 6. 查看证书
* @param {number} registrationid - 报名记录ID (路径参数)
* @returns {Promise<{
* code: number,
* message: string,
* data: {
* certUrl: string,
* certNumber: string,
* issueTime: string,
* expireTime: string
* },
* success: boolean
* }>}
*/
export const usereventrecordCertificateGet = (registrationid) => {
return http.get(`/usereventrecord/certificate/${registrationid}`);
};
/**
* 7. 获取取消报名预览
* @param {number} registrationId - 报名记录ID (路径参数)
* @returns {Promise<{
* registrationId: number,
* eventName: string,
* teamName: string,
* chargeMode: number,
* chargeModeText: string,
* originalAmount: number,
* couponDiscountAmount: number,
* actualPaidAmount: number,
* daysBeforeMatch: number,
* refundRuleDescription: string,
* deductPercentage: number,
* deductAmount: number,
* estimatedRefundAmount: number,
* cancelableMembers: Array<{
* personId: number,
* name: string,
* canCancel: boolean,
* uncancelableReason: string,
* isLeader: boolean
* }>,
* isTeamProject: boolean,
* canPartialCancel: boolean,
* cancelReasons: Array<string>
* }>}
*/
export const usereventrecordCancelPreviewGet = (registrationId) => {
return http.get(`/usereventrecord/cancel/preview/${registrationId}`);
};
/**
* 8. 执行取消报名
* @param {Object} data - 取消报名数据
* @param {number} data.registrationId - 报名ID
* @param {number} data.cancelType - 取消类型:0-全队取消,1-部分取消
* @param {Array<number>} [data.personIds] - 取消的队员ID列表(部分取消时必填)
* @param {string} data.cancelReason - 取消原因
* @returns {Promise<{
* success: boolean,
* message: string,
* refundAmount: number,
* refundNo: string,
* cancelTime: string
* }>}
*/
export const usereventrecordCancelExecutePost = (data) => {
return http.post('/usereventrecord/cancel/execute', data);
};