zhibo/粉丝团功能开发说明.md

4.5 KiB
Raw Blame History

粉丝团功能开发说明

功能概述

粉丝团是主播与粉丝之间建立更紧密联系的功能,粉丝可以加入主播的粉丝团,获得专属徽章,通过送礼物等方式增加亲密度和等级。

数据库表结构

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新增接口

// 粉丝团接口
@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显示粉丝团菜单

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. 粉丝团活动