获取球队详细信息
<h1>获取球队详情(增强版)</h1>
<h2>接口信息</h2>
<ul>
<li><strong>接口名称</strong>: 获取球队详情(增强版)</li>
<li><strong>接口描述</strong>: 根据球队ID获取球队基本信息,并判断当前用户是否为球队负责人</li>
<li><strong>请求URL</strong>: <code>/api/team/detail/{teamId}</code></li>
<li><strong>请求方式</strong>: <code>GET</code></li>
<li><strong>认证方式</strong>: 匿名访问(@Anonymous)</li>
</ul>
<h2>请求参数</h2>
<h3>路径参数</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">示例值</th>
<th>必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">teamId</td>
<td style="text-align: left;">101</td>
<td>是</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">球队ID</td>
</tr>
</tbody>
</table>
<h2>响应示例</h2>
<h3>成功响应</h3>
<pre><code class="language-json">{
&quot;code&quot;: 200,
&quot;msg&quot;: &quot;操作成功&quot;,
&quot;data&quot;: {
&quot;team&quot;: {
&quot;teamId&quot;: 101,
&quot;teamName&quot;: &quot;篮球队A&quot;,
&quot;teamType&quot;: &quot;A&quot;,
&quot;teamTypeName&quot;: &quot;整建制&quot;,
&quot;leaderName&quot;: &quot;张三&quot;,
&quot;leaderPhone&quot;: &quot;13800138000&quot;,
&quot;managerName&quot;: &quot;李四&quot;,
&quot;managerPhone&quot;: &quot;13900139000&quot;,
&quot;managerUserId&quot;: 1001,
&quot;headCoachName&quot;: &quot;王五&quot;,
&quot;headCoachPhone&quot;: &quot;13700137000&quot;,
&quot;province&quot;: &quot;广东省&quot;,
&quot;city&quot;: &quot;深圳市&quot;,
&quot;address&quot;: &quot;南山区科技园&quot;,
&quot;teamLogo&quot;: &quot;path/team_logo.jpg&quot;,
&quot;status&quot;: &quot;1&quot;,
&quot;statusName&quot;: &quot;正常&quot;,
&quot;memberNum&quot;: 15,
&quot;createTime&quot;: &quot;2025-01-27 10:00:00&quot;,
&quot;updateTime&quot;: &quot;2025-01-27 10:00:00&quot;
},
&quot;isTeamManager&quot;: true,
&quot;canTransferManager&quot;: true
}
}</code></pre>
<h3>未登录用户响应</h3>
<pre><code class="language-json">{
&quot;code&quot;: 200,
&quot;msg&quot;: &quot;操作成功&quot;,
&quot;data&quot;: {
&quot;team&quot;: {
&quot;teamId&quot;: 101,
&quot;teamName&quot;: &quot;篮球队A&quot;,
&quot;teamType&quot;: &quot;A&quot;,
&quot;teamTypeName&quot;: &quot;整建制&quot;,
&quot;leaderName&quot;: &quot;张三&quot;,
&quot;leaderPhone&quot;: &quot;13800138000&quot;,
&quot;managerName&quot;: &quot;李四&quot;,
&quot;managerPhone&quot;: &quot;13900139000&quot;,
&quot;managerUserId&quot;: 1001,
&quot;headCoachName&quot;: &quot;王五&quot;,
&quot;headCoachPhone&quot;: &quot;13700137000&quot;,
&quot;province&quot;: &quot;广东省&quot;,
&quot;city&quot;: &quot;深圳市&quot;,
&quot;address&quot;: &quot;南山区科技园&quot;,
&quot;teamLogo&quot;: &quot;path/team_logo.jpg&quot;,
&quot;status&quot;: &quot;1&quot;,
&quot;statusName&quot;: &quot;正常&quot;,
&quot;memberNum&quot;: 15,
&quot;createTime&quot;: &quot;2025-01-27 10:00:00&quot;,
&quot;updateTime&quot;: &quot;2025-01-27 10:00:00&quot;
},
&quot;isTeamManager&quot;: false,
&quot;canTransferManager&quot;: false
}
}</code></pre>
<h3>错误响应</h3>
<pre><code class="language-json">{
&quot;code&quot;: 500,
&quot;msg&quot;: &quot;操作失败&quot;,
&quot;data&quot;: &quot;球队不存在&quot;
}</code></pre>
<h2>响应参数说明</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">code</td>
<td style="text-align: left;">integer</td>
<td style="text-align: left;">响应状态码(200=成功 500=失败)</td>
</tr>
<tr>
<td style="text-align: left;">msg</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">响应消息</td>
</tr>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">object</td>
<td style="text-align: left;">响应数据</td>
</tr>
<tr>
<td style="text-align: left;">data.team</td>
<td style="text-align: left;">object</td>
<td style="text-align: left;">球队详细信息</td>
</tr>
<tr>
<td style="text-align: left;">data.isTeamManager</td>
<td style="text-align: left;">boolean</td>
<td style="text-align: left;">当前用户是否为球队负责人</td>
</tr>
<tr>
<td style="text-align: left;">data.canTransferManager</td>
<td style="text-align: left;">boolean</td>
<td style="text-align: left;">是否可以转让负责人权限</td>
</tr>
</tbody>
</table>
<h3>球队信息字段说明</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">data.team.teamId</td>
<td style="text-align: left;">long</td>
<td style="text-align: left;">球队ID</td>
</tr>
<tr>
<td style="text-align: left;">data.team.teamName</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">球队名称</td>
</tr>
<tr>
<td style="text-align: left;">data.team.teamType</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">球队类型(A=整建制 B=个人组队)</td>
</tr>
<tr>
<td style="text-align: left;">data.team.teamTypeName</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">球队类型名称</td>
</tr>
<tr>
<td style="text-align: left;">data.team.leaderName</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">领队姓名</td>
</tr>
<tr>
<td style="text-align: left;">data.team.leaderPhone</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">领队联系方式</td>
</tr>
<tr>
<td style="text-align: left;">data.team.managerName</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">球队负责人姓名</td>
</tr>
<tr>
<td style="text-align: left;">data.team.managerPhone</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">负责人联系方式</td>
</tr>
<tr>
<td style="text-align: left;">data.team.managerUserId</td>
<td style="text-align: left;">long</td>
<td style="text-align: left;">负责人用户ID</td>
</tr>
<tr>
<td style="text-align: left;">data.team.headCoachName</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">主教练姓名</td>
</tr>
<tr>
<td style="text-align: left;">data.team.headCoachPhone</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">主教练联系方式</td>
</tr>
<tr>
<td style="text-align: left;">data.team.province</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">所在省份</td>
</tr>
<tr>
<td style="text-align: left;">data.team.city</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">所在城市</td>
</tr>
<tr>
<td style="text-align: left;">data.team.address</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">详细地址</td>
</tr>
<tr>
<td style="text-align: left;">data.team.teamLogo</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">球队Logo路径</td>
</tr>
<tr>
<td style="text-align: left;">data.team.status</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">球队状态(0=禁用 1=正常)</td>
</tr>
<tr>
<td style="text-align: left;">data.team.statusName</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">球队状态名称</td>
</tr>
<tr>
<td style="text-align: left;">data.team.memberNum</td>
<td style="text-align: left;">integer</td>
<td style="text-align: left;">成员数量</td>
</tr>
<tr>
<td style="text-align: left;">data.team.createTime</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">创建时间</td>
</tr>
<tr>
<td style="text-align: left;">data.team.updateTime</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">更新时间</td>
</tr>
</tbody>
</table>
<h3>权限字段说明</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">data.isTeamManager</td>
<td style="text-align: left;">boolean</td>
<td style="text-align: left;">当前用户是否为球队负责人</td>
</tr>
<tr>
<td style="text-align: left;">data.canTransferManager</td>
<td style="text-align: left;">boolean</td>
<td style="text-align: left;">是否可以转让负责人权限</td>
</tr>
</tbody>
</table>
<h2>使用说明</h2>
<ol>
<li><strong>权限判断</strong>: 自动判断当前登录用户是否为球队负责人</li>
<li><strong>匿名访问</strong>: 未登录用户也可以访问,权限字段为false</li>
<li><strong>负责人权限</strong>: 只有球队负责人才能转让负责人权限</li>
<li><strong>用户ID转换</strong>: 自动处理微信用户ID到系统用户ID的转换</li>
<li><strong>异常处理</strong>: 登录异常时不会影响接口正常返回</li>
</ol>
<h2>权限判断逻辑</h2>
<ol>
<li><strong>获取当前用户</strong>: 通过Token获取当前登录用户信息</li>
<li><strong>ID转换</strong>: 将微信用户ID转换为系统用户ID</li>
<li><strong>权限比对</strong>: 比较当前用户ID与球队的managerUserId</li>
<li><strong>权限设置</strong>:
- <code>isTeamManager = true</code> 且 <code>canTransferManager = true</code>:当前用户是负责人
- <code>isTeamManager = false</code> 且 <code>canTransferManager = false</code>:当前用户不是负责人或未登录</li>
</ol>
<h2>注意事项</h2>
<ul>
<li>teamId参数是必填的,必须通过URL路径传递</li>
<li>返回的时间格式为 <code>YYYY-MM-DD HH:mm:ss</code></li>
<li>如果球队不存在,会返回"球队不存在"的错误信息</li>
<li>未登录用户访问时,权限字段为false,但不影响球队信息获取</li>
<li>负责人权限判断基于managerUserId字段</li>
<li>接口会自动处理异常情况并返回相应的错误信息</li>
</ul>
<h2>前端使用建议</h2>
<ol>
<li><strong>权限控制</strong>: 根据<code>isTeamManager</code>字段控制"转让负责人"按钮的显示</li>
<li><strong>功能限制</strong>: 根据<code>canTransferManager</code>字段控制相关功能的可用性</li>
<li><strong>用户体验</strong>: 未登录时权限字段为false,可以引导用户登录</li>
</ol>
<h2>相关接口</h2>
<ul>
<li><a href="4.获取球队成员列表-增强版.md">获取球队成员列表(增强版)</a> - 获取球队成员详细信息</li>
<li><a href="3.获取球队详情和成员-增强版.md">获取球队详情和成员(增强版)</a> - 获取球队信息及成员列表</li>
</ul>