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} 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>} */ 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}`); };