147 lines
4.5 KiB
Markdown
147 lines
4.5 KiB
Markdown
# 粉丝团功能开发说明
|
||
|
||
## 功能概述
|
||
|
||
粉丝团是主播与粉丝之间建立更紧密联系的功能,粉丝可以加入主播的粉丝团,获得专属徽章,通过送礼物等方式增加亲密度和等级。
|
||
|
||
## 数据库表结构
|
||
|
||
### eb_fan_group(粉丝团表)
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| id | int | 主键ID |
|
||
| anchor_id | int | 主播ID |
|
||
| anchor_name | varchar | 主播昵称 |
|
||
| name | varchar | 粉丝团名称 |
|
||
| badge | varchar | 粉丝徽章 |
|
||
| badge_color | varchar | 徽章颜色 |
|
||
| member_count | int | 成员数量 |
|
||
| status | tinyint | 状态(1正常 0解散) |
|
||
| create_time | datetime | 创建时间 |
|
||
|
||
### eb_fan_group_member(粉丝团成员表)
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| id | int | 主键ID |
|
||
| group_id | int | 粉丝团ID |
|
||
| uid | int | 用户ID |
|
||
| nickname | varchar | 用户昵称 |
|
||
| level | int | 粉丝等级(1-10) |
|
||
| intimacy | int | 亲密度 |
|
||
| status | tinyint | 状态(1正常 0退出) |
|
||
| join_time | datetime | 加入时间 |
|
||
|
||
## 后端API
|
||
|
||
### APP端接口 (FanGroupController)
|
||
路径前缀: `/api/front/fan-group`
|
||
|
||
| 接口 | 方法 | 说明 |
|
||
|------|------|------|
|
||
| /my | GET | 获取我的粉丝团(主播) |
|
||
| /streamer/{streamerId} | GET | 获取主播的粉丝团 |
|
||
| /create | POST | 创建粉丝团 |
|
||
| /update | POST | 更新粉丝团信息 |
|
||
| /join/{groupId} | POST | 加入粉丝团 |
|
||
| /leave/{groupId} | POST | 退出粉丝团 |
|
||
| /joined | GET | 获取我加入的粉丝团列表 |
|
||
| /{groupId}/members | GET | 获取粉丝团成员列表 |
|
||
| /{groupId}/check-joined | GET | 检查是否已加入 |
|
||
| /{groupId}/add-intimacy | POST | 增加亲密度 |
|
||
|
||
### 后台管理接口 (FanGroupController - admin)
|
||
路径前缀: `/api/admin/fan/group`
|
||
|
||
| 接口 | 方法 | 说明 |
|
||
|------|------|------|
|
||
| /list | GET | 粉丝团列表 |
|
||
| /delete/{id} | POST | 删除粉丝团 |
|
||
| /batch-delete | POST | 批量删除 |
|
||
| /member/list | GET | 成员列表 |
|
||
| /member/delete/{id} | POST | 移除成员 |
|
||
|
||
## Android端实现
|
||
|
||
### 新增文件
|
||
1. `MyFanGroupActivity.java` - 我的粉丝团页面(主播视角)
|
||
2. `activity_my_fan_group.xml` - 布局文件
|
||
3. `dialog_create_fan_group.xml` - 创建/编辑粉丝团对话框
|
||
4. `item_fan_group_member.xml` - 成员列表项布局
|
||
5. `bg_badge.xml` - 徽章背景
|
||
6. `bg_level_tag.xml` - 等级标签背景
|
||
|
||
### 入口位置
|
||
- 主播中心页面 (StreamerCenterActivity) 添加"我的粉丝团"入口
|
||
|
||
### ApiService新增接口
|
||
```java
|
||
// 粉丝团接口
|
||
@GET("api/front/fan-group/my")
|
||
Call<ApiResponse<Map<String, Object>>> getMyFanGroup();
|
||
|
||
@GET("api/front/fan-group/streamer/{streamerId}")
|
||
Call<ApiResponse<Map<String, Object>>> getStreamerFanGroup(@Path("streamerId") int streamerId);
|
||
|
||
@POST("api/front/fan-group/create")
|
||
Call<ApiResponse<Map<String, Object>>> createFanGroup(@Body Map<String, Object> request);
|
||
|
||
@POST("api/front/fan-group/update")
|
||
Call<ApiResponse<String>> updateFanGroup(@Body Map<String, Object> request);
|
||
|
||
@POST("api/front/fan-group/join/{groupId}")
|
||
Call<ApiResponse<String>> joinFanGroup(@Path("groupId") int groupId);
|
||
|
||
@POST("api/front/fan-group/leave/{groupId}")
|
||
Call<ApiResponse<String>> leaveFanGroup(@Path("groupId") int groupId);
|
||
|
||
@GET("api/front/fan-group/joined")
|
||
Call<ApiResponse<PageResponse<Map<String, Object>>>> getJoinedFanGroups(...);
|
||
|
||
@GET("api/front/fan-group/{groupId}/members")
|
||
Call<ApiResponse<PageResponse<Map<String, Object>>>> getFanGroupMembers(...);
|
||
|
||
@GET("api/front/fan-group/{groupId}/check-joined")
|
||
Call<ApiResponse<Map<String, Object>>> checkFanGroupJoined(@Path("groupId") int groupId);
|
||
```
|
||
|
||
## 后台管理前端
|
||
|
||
### 已有文件
|
||
- `Zhibo/admin/src/views/fanGroup/list/index.vue` - 粉丝团列表页面
|
||
- `Zhibo/admin/src/api/fanGroup.js` - API接口定义
|
||
- `Zhibo/admin/src/router/modules/fanGroup.js` - 路由配置
|
||
|
||
### 菜单配置
|
||
执行以下SQL显示粉丝团菜单:
|
||
```sql
|
||
UPDATE eb_system_menu SET is_show = 1 WHERE id = 663;
|
||
```
|
||
|
||
## 等级规则
|
||
|
||
粉丝等级根据亲密度自动升级:
|
||
- Lv.1: 0-999 亲密度
|
||
- Lv.2: 1000-1999 亲密度
|
||
- Lv.3: 2000-2999 亲密度
|
||
- ...
|
||
- Lv.10: 9000+ 亲密度
|
||
|
||
亲密度获取方式:
|
||
- 送礼物(礼物价值 = 亲密度增加值)
|
||
- 每日签到(+10亲密度)
|
||
- 观看直播(每分钟+1亲密度)
|
||
|
||
## 部署步骤
|
||
|
||
1. 执行SQL修复菜单显示
|
||
2. 重新编译后端项目
|
||
3. 重新编译Android项目
|
||
4. 重启后端服务
|
||
|
||
## 后续优化
|
||
|
||
1. 粉丝团聊天功能(基于群组系统扩展)
|
||
2. 粉丝团专属礼物
|
||
3. 粉丝团排行榜
|
||
4. 粉丝团活动
|