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