默认标题
<h1>我的赛事 API 接口文档(修正版)</h1>
<h2>接口概述</h2>
<p>本文档描述了"我的赛事"功能的小程序端API接口,用于获取用户参与的赛事信息、赛事详情、比赛记录等。<strong>本文档已根据实际测试结果进行修正。</strong></p>
<h2>基础信息</h2>
<ul>
<li><strong>基础路径</strong>: <code>/api/miniapp/events</code></li>
<li><strong>请求方式</strong>: GET</li>
<li><strong>响应格式</strong>: JSON</li>
<li><strong>认证方式</strong>: 通过userId参数传递用户身份</li>
<li><strong>测试环境</strong>: <code>http://localhost:8888</code></li>
</ul>
<h2>接口列表</h2>
<h3>1. 获取我的赛事列表</h3>
<p><strong>接口地址</strong>: <code>GET /api/miniapp/events/my</code></p>
<table>
<thead>
<tr>
<th><strong>请求参数</strong>:</th>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>userId</td>
<td>Long</td>
<td>是</td>
<td>用户ID</td>
</tr>
</tbody>
</table>
<p><strong>响应示例</strong>:</p>
<pre><code class="language-json">{
&quot;msg&quot;: &quot;操作成功&quot;,
&quot;code&quot;: 200,
&quot;data&quot;: [
{
&quot;eventId&quot;: 1,
&quot;eventName&quot;: &quot;比赛101&quot;,
&quot;level&quot;: 1,
&quot;city&quot;: &quot;1&quot;,
&quot;applyStart&quot;: &quot;2025-08-07&quot;,
&quot;applyEnd&quot;: &quot;2025-08-08&quot;,
&quot;eventStart&quot;: &quot;2025-08-09&quot;,
&quot;eventEnd&quot;: &quot;2025-08-08&quot;,
&quot;site&quot;: &quot;1&quot;,
&quot;principal&quot;: &quot;张三&quot;,
&quot;phone&quot;: 1,
&quot;cost&quot;: 1,
&quot;category&quot;: &quot;1&quot;,
&quot;picture&quot;: &quot;/profile/upload/2025/08/08/17ac43c57d3275457a4717bef4f07399_20250808231538A003.png&quot;,
&quot;hostUnit&quot;: &quot;1&quot;,
&quot;organizer&quot;: &quot;11&quot;,
&quot;state&quot;: 1,
&quot;top&quot;: 0,
&quot;userRole&quot;: 1,
&quot;userRoleDesc&quot;: &quot;球员&quot;,
&quot;teamName&quot;: &quot;溜冰队&quot;,
&quot;registrationTime&quot;: null,
&quot;registrationStatus&quot;: 1,
&quot;registrationStatusDesc&quot;: &quot;已通过&quot;
}
]
}</code></pre>
<h3>2. 获取即将到来的赛事</h3>
<p><strong>接口地址</strong>: <code>GET /api/miniapp/events/upcoming</code></p>
<table>
<thead>
<tr>
<th><strong>请求参数</strong>:</th>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>userId</td>
<td>Long</td>
<td>是</td>
<td>用户ID</td>
</tr>
</tbody>
</table>
<p><strong>响应示例</strong>:</p>
<pre><code class="language-json">{
&quot;msg&quot;: &quot;操作成功&quot;,
&quot;code&quot;: 200,
&quot;data&quot;: []
}</code></pre>
<p><strong>注意</strong>: 当没有即将到来的赛事时,返回空数组</p>
<h3>3. 获取已完成的赛事</h3>
<p><strong>接口地址</strong>: <code>GET /api/miniapp/events/completed</code></p>
<table>
<thead>
<tr>
<th><strong>请求参数</strong>:</th>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>userId</td>
<td>Long</td>
<td>是</td>
<td>用户ID</td>
</tr>
</tbody>
</table>
<p><strong>响应示例</strong>:</p>
<pre><code class="language-json">{
&quot;msg&quot;: &quot;操作成功&quot;,
&quot;code&quot;: 200,
&quot;data&quot;: [
{
&quot;eventId&quot;: 1,
&quot;eventName&quot;: &quot;比赛101&quot;,
&quot;level&quot;: 1,
&quot;city&quot;: &quot;1&quot;,
&quot;applyStart&quot;: &quot;2025-08-07&quot;,
&quot;applyEnd&quot;: &quot;2025-08-08&quot;,
&quot;eventStart&quot;: &quot;2025-08-09&quot;,
&quot;eventEnd&quot;: &quot;2025-08-08&quot;,
&quot;site&quot;: &quot;1&quot;,
&quot;principal&quot;: &quot;张三&quot;,
&quot;phone&quot;: 1,
&quot;cost&quot;: 1,
&quot;category&quot;: &quot;1&quot;,
&quot;picture&quot;: &quot;/profile/upload/2025/08/08/17ac43c57d3275457a4717bef4f07399_20250808231538A003.png&quot;,
&quot;hostUnit&quot;: &quot;1&quot;,
&quot;organizer&quot;: &quot;11&quot;,
&quot;state&quot;: 1,
&quot;top&quot;: 0,
&quot;userRole&quot;: 1,
&quot;userRoleDesc&quot;: &quot;球员&quot;,
&quot;teamName&quot;: &quot;溜冰队&quot;,
&quot;registrationTime&quot;: null,
&quot;registrationStatus&quot;: 1,
&quot;registrationStatusDesc&quot;: &quot;已通过&quot;
}
]
}</code></pre>
<h3>4. 获取赛事详情</h3>
<p><strong>接口地址</strong>: <code>GET /api/miniapp/events/{eventId}</code></p>
<table>
<thead>
<tr>
<th><strong>请求参数</strong>:</th>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>eventId</td>
<td>Long</td>
<td>是</td>
<td>赛事ID(路径参数)</td>
</tr>
<tr>
<td>userId</td>
<td>Long</td>
<td>是</td>
<td>用户ID(查询参数)</td>
</tr>
</tbody>
</table>
<p><strong>响应示例</strong>:</p>
<pre><code class="language-json">{
&quot;msg&quot;: &quot;操作成功&quot;,
&quot;code&quot;: 200,
&quot;data&quot;: {
&quot;eventId&quot;: 1,
&quot;eventName&quot;: &quot;比赛101&quot;,
&quot;level&quot;: 1,
&quot;city&quot;: &quot;1&quot;,
&quot;applyStart&quot;: &quot;2025-08-07&quot;,
&quot;applyEnd&quot;: &quot;2025-08-08&quot;,
&quot;eventStart&quot;: &quot;2025-08-09&quot;,
&quot;eventEnd&quot;: &quot;2025-08-08&quot;,
&quot;site&quot;: &quot;1&quot;,
&quot;principal&quot;: &quot;张三&quot;,
&quot;phone&quot;: 1,
&quot;cost&quot;: 1,
&quot;category&quot;: &quot;1&quot;,
&quot;picture&quot;: &quot;/profile/upload/2025/08/08/17ac43c57d3275457a4717bef4f07399_20250808231538A003.png&quot;,
&quot;hostUnit&quot;: &quot;1&quot;,
&quot;organizer&quot;: &quot;11&quot;,
&quot;state&quot;: 1,
&quot;top&quot;: 0,
&quot;userRole&quot;: 1,
&quot;userRoleDesc&quot;: &quot;球员&quot;,
&quot;teamName&quot;: &quot;溜冰队&quot;,
&quot;registrationTime&quot;: null,
&quot;registrationStatus&quot;: 1,
&quot;registrationStatusDesc&quot;: &quot;已通过&quot;
}
}</code></pre>
<h3>5. 获取用户在指定赛事中的比赛记录</h3>
<p><strong>接口地址</strong>: <code>GET /api/miniapp/events/{eventId}/matches</code></p>
<table>
<thead>
<tr>
<th><strong>请求参数</strong>:</th>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>eventId</td>
<td>Long</td>
<td>是</td>
<td>赛事ID(路径参数)</td>
</tr>
<tr>
<td>userId</td>
<td>Long</td>
<td>是</td>
<td>用户ID(查询参数)</td>
</tr>
</tbody>
</table>
<p><strong>响应示例</strong>:</p>
<pre><code class="language-json">{
&quot;msg&quot;: &quot;操作成功&quot;,
&quot;code&quot;: 200,
&quot;data&quot;: [
{
&quot;id&quot;: 4,
&quot;playerId&quot;: 1001,
&quot;matchDate&quot;: &quot;2024-12-15&quot;,
&quot;matchTime&quot;: &quot;19:30&quot;,
&quot;matchStage&quot;: &quot;常规赛&quot;,
&quot;opponentTeam&quot;: &quot;深圳队&quot;,
&quot;score&quot;: &quot;98:92&quot;,
&quot;result&quot;: &quot;胜&quot;,
&quot;matchPoints&quot;: 20,
&quot;playerName&quot;: &quot;张三&quot;,
&quot;eventName&quot;: &quot;CBA联赛&quot;,
&quot;representingTeam&quot;: &quot;北京队&quot;,
&quot;playTime&quot;: 40,
&quot;points&quot;: 20,
&quot;rebounds&quot;: 6,
&quot;assists&quot;: 4,
&quot;steals&quot;: 1,
&quot;blocks&quot;: 0,
&quot;twoPointMade&quot;: 2,
&quot;twoPointAttempted&quot;: 4,
&quot;threePointMade&quot;: 3,
&quot;threePointAttempted&quot;: 6,
&quot;freeThrowMade&quot;: 1,
&quot;freeThrowAttempted&quot;: 2,
&quot;offensiveRebounds&quot;: 2,
&quot;defensiveRebounds&quot;: 4,
&quot;turnovers&quot;: 3,
&quot;fouls&quot;: 4,
&quot;foulsDrawn&quot;: 2,
&quot;efficiency&quot;: 15.2,
&quot;gamePoints&quot;: 20,
&quot;teamId&quot;: 28,
&quot;assistantCoachId&quot;: 56,
&quot;assistantCoachName&quot;: &quot;和哇撒&quot;,
&quot;headCoachId&quot;: 36,
&quot;headCoachName&quot;: &quot;的分公司&quot;,
&quot;eventId&quot;: null,
&quot;matchRound&quot;: null,
&quot;opponentTeamId&quot;: null,
&quot;matchScore&quot;: null,
&quot;isWin&quot;: 0,
&quot;points_earned&quot;: null
}
]
}</code></pre>
<h3>6. 获取用户的所有比赛记录</h3>
<p><strong>接口地址</strong>: <code>GET /api/miniapp/events/all-matches</code></p>
<table>
<thead>
<tr>
<th><strong>请求参数</strong>:</th>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>userId</td>
<td>Long</td>
<td>是</td>
<td>用户ID</td>
</tr>
</tbody>
</table>
<p><strong>响应示例</strong>:</p>
<pre><code class="language-json">{
&quot;msg&quot;: &quot;操作成功&quot;,
&quot;code&quot;: 200,
&quot;data&quot;: [
{
&quot;id&quot;: 4,
&quot;playerId&quot;: 1001,
&quot;matchDate&quot;: &quot;2024-12-15&quot;,
&quot;matchTime&quot;: &quot;19:30&quot;,
&quot;matchStage&quot;: &quot;常规赛&quot;,
&quot;opponentTeam&quot;: &quot;深圳队&quot;,
&quot;score&quot;: &quot;98:92&quot;,
&quot;result&quot;: &quot;胜&quot;,
&quot;matchPoints&quot;: 20,
&quot;playerName&quot;: &quot;张三&quot;,
&quot;eventName&quot;: &quot;CBA联赛&quot;,
&quot;representingTeam&quot;: &quot;北京队&quot;,
&quot;playTime&quot;: 40,
&quot;points&quot;: 20,
&quot;rebounds&quot;: 6,
&quot;assists&quot;: 4,
&quot;steals&quot;: 1,
&quot;blocks&quot;: 0,
&quot;twoPointMade&quot;: 2,
&quot;twoPointAttempted&quot;: 4,
&quot;threePointMade&quot;: 3,
&quot;threePointAttempted&quot;: 6,
&quot;freeThrowMade&quot;: 1,
&quot;freeThrowAttempted&quot;: 2,
&quot;offensiveRebounds&quot;: 2,
&quot;defensiveRebounds&quot;: 4,
&quot;turnovers&quot;: 3,
&quot;fouls&quot;: 4,
&quot;foulsDrawn&quot;: 2,
&quot;efficiency&quot;: 15.2,
&quot;gamePoints&quot;: 20,
&quot;teamId&quot;: 28,
&quot;assistantCoachId&quot;: 56,
&quot;assistantCoachName&quot;: &quot;和哇撒&quot;,
&quot;headCoachId&quot;: 36,
&quot;headCoachName&quot;: &quot;的分公司&quot;,
&quot;eventId&quot;: null,
&quot;matchRound&quot;: null,
&quot;opponentTeamId&quot;: null,
&quot;matchScore&quot;: null,
&quot;isWin&quot;: 0,
&quot;points_earned&quot;: null
}
]
}</code></pre>
<h2>数据字段说明</h2>
<h3>赛事信息字段 (WmMyEvent)</h3>
<table>
<thead>
<tr>
<th>字段名</th>
<th>类型</th>
<th>说明</th>
<th>示例值</th>
</tr>
</thead>
<tbody>
<tr>
<td>eventId</td>
<td>Long</td>
<td>赛事ID</td>
<td>1</td>
</tr>
<tr>
<td>eventName</td>
<td>String</td>
<td>赛事名称</td>
<td>"比赛101"</td>
</tr>
<tr>
<td>level</td>
<td>Integer</td>
<td>赛事级别</td>
<td>1</td>
</tr>
<tr>
<td>city</td>
<td>String</td>
<td>所在城市</td>
<td>"1"</td>
</tr>
<tr>
<td>applyStart</td>
<td>String</td>
<td>报名开始时间</td>
<td>"2025-08-07"</td>
</tr>
<tr>
<td>applyEnd</td>
<td>String</td>
<td>报名结束时间</td>
<td>"2025-08-08"</td>
</tr>
<tr>
<td>eventStart</td>
<td>String</td>
<td>比赛开始时间</td>
<td>"2025-08-09"</td>
</tr>
<tr>
<td>eventEnd</td>
<td>String</td>
<td>比赛结束时间</td>
<td>"2025-08-08"</td>
</tr>
<tr>
<td>site</td>
<td>String</td>
<td>报到地址</td>
<td>"1"</td>
</tr>
<tr>
<td>principal</td>
<td>String</td>
<td>赛事负责人</td>
<td>"张三"</td>
</tr>
<tr>
<td>phone</td>
<td>Long</td>
<td>负责人联系方式</td>
<td>1</td>
</tr>
<tr>
<td>cost</td>
<td>Integer</td>
<td>费用</td>
<td>1</td>
</tr>
<tr>
<td>category</td>
<td>String</td>
<td>赛事组别</td>
<td>"1"</td>
</tr>
<tr>
<td>picture</td>
<td>String</td>
<td>赛事封面图</td>
<td>"/profile/upload/..."</td>
</tr>
<tr>
<td>hostUnit</td>
<td>String</td>
<td>主办单位</td>
<td>"1"</td>
</tr>
<tr>
<td>organizer</td>
<td>String</td>
<td>承办单位</td>
<td>"11"</td>
</tr>
<tr>
<td>state</td>
<td>Integer</td>
<td>状态</td>
<td>1</td>
</tr>
<tr>
<td>top</td>
<td>Integer</td>
<td>置顶</td>
<td>0</td>
</tr>
<tr>
<td>userRole</td>
<td>Integer</td>
<td>用户角色(1=球员,2=教练,3=球队负责人,4=领队)</td>
<td>1</td>
</tr>
<tr>
<td>userRoleDesc</td>
<td>String</td>
<td>用户角色描述</td>
<td>"球员"</td>
</tr>
<tr>
<td>teamName</td>
<td>String</td>
<td>代表球队名称</td>
<td>"溜冰队"</td>
</tr>
<tr>
<td>registrationTime</td>
<td>String</td>
<td>报名时间</td>
<td>null (暂未实现)</td>
</tr>
<tr>
<td>registrationStatus</td>
<td>Integer</td>
<td>报名状态(0=申请中,1=已通过,2=已拒绝)</td>
<td>1</td>
</tr>
<tr>
<td>registrationStatusDesc</td>
<td>String</td>
<td>报名状态描述</td>
<td>"已通过"</td>
</tr>
</tbody>
</table>
<h3>比赛记录字段 (WmPlayerMatchInfo)</h3>
<table>
<thead>
<tr>
<th>字段名</th>
<th>类型</th>
<th>说明</th>
<th>示例值</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>Long</td>
<td>记录ID</td>
<td>4</td>
</tr>
<tr>
<td>playerId</td>
<td>Long</td>
<td>球员ID</td>
<td>1001</td>
</tr>
<tr>
<td>matchDate</td>
<td>String</td>
<td>比赛日期</td>
<td>"2024-12-15"</td>
</tr>
<tr>
<td>matchTime</td>
<td>String</td>
<td>比赛时间</td>
<td>"19:30"</td>
</tr>
<tr>
<td>matchStage</td>
<td>String</td>
<td>比赛阶段</td>
<td>"常规赛"</td>
</tr>
<tr>
<td>opponentTeam</td>
<td>String</td>
<td>对手球队</td>
<td>"深圳队"</td>
</tr>
<tr>
<td>score</td>
<td>String</td>
<td>比分</td>
<td>"98:92"</td>
</tr>
<tr>
<td>result</td>
<td>String</td>
<td>比赛结果</td>
<td>"胜"</td>
</tr>
<tr>
<td>matchPoints</td>
<td>Integer</td>
<td>比赛得分</td>
<td>20</td>
</tr>
<tr>
<td>playerName</td>
<td>String</td>
<td>球员姓名</td>
<td>"张三"</td>
</tr>
<tr>
<td>eventName</td>
<td>String</td>
<td>赛事名称</td>
<td>"CBA联赛"</td>
</tr>
<tr>
<td>representingTeam</td>
<td>String</td>
<td>代表球队</td>
<td>"北京队"</td>
</tr>
<tr>
<td>playTime</td>
<td>Integer</td>
<td>上场时间(分钟)</td>
<td>40</td>
</tr>
<tr>
<td>points</td>
<td>Integer</td>
<td>个人得分</td>
<td>20</td>
</tr>
<tr>
<td>rebounds</td>
<td>Integer</td>
<td>篮板</td>
<td>6</td>
</tr>
<tr>
<td>assists</td>
<td>Integer</td>
<td>助攻</td>
<td>4</td>
</tr>
<tr>
<td>steals</td>
<td>Integer</td>
<td>抢断</td>
<td>1</td>
</tr>
<tr>
<td>blocks</td>
<td>Integer</td>
<td>盖帽</td>
<td>0</td>
</tr>
<tr>
<td>twoPointMade</td>
<td>Integer</td>
<td>两分命中</td>
<td>2</td>
</tr>
<tr>
<td>twoPointAttempted</td>
<td>Integer</td>
<td>两分出手</td>
<td>4</td>
</tr>
<tr>
<td>threePointMade</td>
<td>Integer</td>
<td>三分命中</td>
<td>3</td>
</tr>
<tr>
<td>threePointAttempted</td>
<td>Integer</td>
<td>三分出手</td>
<td>6</td>
</tr>
<tr>
<td>freeThrowMade</td>
<td>Integer</td>
<td>罚球命中</td>
<td>1</td>
</tr>
<tr>
<td>freeThrowAttempted</td>
<td>Integer</td>
<td>罚球出手</td>
<td>2</td>
</tr>
<tr>
<td>offensiveRebounds</td>
<td>Integer</td>
<td>前场篮板</td>
<td>2</td>
</tr>
<tr>
<td>defensiveRebounds</td>
<td>Integer</td>
<td>后场篮板</td>
<td>4</td>
</tr>
<tr>
<td>turnovers</td>
<td>Integer</td>
<td>失误</td>
<td>3</td>
</tr>
<tr>
<td>fouls</td>
<td>Integer</td>
<td>犯规</td>
<td>4</td>
</tr>
<tr>
<td>foulsDrawn</td>
<td>Integer</td>
<td>造犯规</td>
<td>2</td>
</tr>
<tr>
<td>efficiency</td>
<td>Double</td>
<td>效率值</td>
<td>15.2</td>
</tr>
<tr>
<td>gamePoints</td>
<td>Integer</td>
<td>比赛得分</td>
<td>20</td>
</tr>
<tr>
<td>teamId</td>
<td>Integer</td>
<td>球队ID</td>
<td>28</td>
</tr>
<tr>
<td>assistantCoachId</td>
<td>Integer</td>
<td>助理教练ID</td>
<td>56</td>
</tr>
<tr>
<td>assistantCoachName</td>
<td>String</td>
<td>助理教练姓名</td>
<td>"和哇撒"</td>
</tr>
<tr>
<td>headCoachId</td>
<td>Integer</td>
<td>主教练ID</td>
<td>36</td>
</tr>
<tr>
<td>headCoachName</td>
<td>String</td>
<td>主教练姓名</td>
<td>"的分公司"</td>
</tr>
</tbody>
</table>
<h2>错误码说明</h2>
<table>
<thead>
<tr>
<th>错误码</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td>操作成功</td>
</tr>
<tr>
<td>500</td>
<td>系统内部错误</td>
</tr>
<tr>
<td>404</td>
<td>资源不存在</td>
</tr>
</tbody>
</table>
<h2>注意事项</h2>
<ol>
<li><strong><code>registrationTime</code> 字段</strong>:目前返回null,该字段暂未在数据库中实现</li>
<li><strong>部分比赛记录字段</strong>:如 <code>eventId</code>, <code>matchRound</code>, <code>opponentTeamId</code>, <code>matchScore</code>, <code>points_earned</code> 等字段可能为null,这是正常的</li>
<li><strong>时间格式</strong>:所有时间字段均使用 <code>yyyy-MM-dd</code> 或 <code>yyyy-MM-dd HH:mm:ss</code> 格式</li>
<li><strong>角色权限</strong>:用户只能查看自己参与的赛事信息</li>
<li><strong>即将到来的赛事</strong>:指比赛开始时间大于当前日期的赛事</li>
<li><strong>已完成的赛事</strong>:指比赛结束时间小于当前日期的赛事</li>
<li><strong><code>teamName</code> 字段</strong>:已修复,正常显示球队名称</li>
</ol>
<h2>前端集成建议</h2>
<ol>
<li><strong>数据展示</strong>:根据 <code>userRole</code> 和 <code>userRoleDesc</code> 显示用户角色</li>
<li><strong>状态处理</strong>:根据 <code>registrationStatus</code> 和 <code>registrationStatusDesc</code> 显示报名状态</li>
<li><strong>空数据处理</strong>:对于返回null的字段,建议显示默认值或隐藏相关UI元素</li>
<li><strong>错误处理</strong>:建议实现统一的错误提示机制</li>
<li><strong>数据刷新</strong>:建议实现下拉刷新功能,及时获取最新数据</li>
</ol>
<h2>更新日志</h2>
<ul>
<li>2024-01-XX: 创建接口文档</li>
<li>2024-01-XX: 完善接口说明和示例</li>
<li>2025-08-19: <strong>根据实际测试结果修正文档</strong>
<ul>
<li>修正接口地址和参数</li>
<li>更新响应示例为实际数据</li>
<li>修正字段说明和注意事项</li>
<li>确认 <code>teamName</code> 字段已修复</li>
</ul></li>
</ul>