zhibo/点赞功能实现计划.md
2026-01-03 15:32:31 +08:00

111 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 点赞功能实现计划
## 需求分析
### 1. 直播间点赞按钮
- 位置:送礼物按钮旁边
- 功能:用户可以无限次点赞
- 效果:点击后显示动画,点赞数实时增加
### 2. 个人中心布局调整
- 第一行:我的关注、我的点赞、观看历史(样式一致)
- 第二行:公园勋章、我的挚友
- 我的点赞:显示用户点赞过的直播间列表
### 3. 主播中心显示获赞数
- 显示该主播所有直播间的总获赞数
### 4. 首页直播间卡片
- 右下角显示点赞数(替换星星图标)
## 技术实现
### 数据库设计
#### 1. 直播间点赞表 (eb_live_room_like)
```sql
CREATE TABLE eb_live_room_like (
id INT PRIMARY KEY AUTO_INCREMENT,
room_id INT NOT NULL COMMENT '直播间ID',
user_id INT NOT NULL COMMENT '用户ID',
like_count INT DEFAULT 1 COMMENT '点赞次数',
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_room_id (room_id),
INDEX idx_user_id (user_id),
INDEX idx_user_room (user_id, room_id)
) COMMENT='直播间点赞记录表';
```
#### 2. 直播间表添加点赞数字段
```sql
ALTER TABLE eb_live_room ADD COLUMN like_count INT DEFAULT 0 COMMENT '总点赞数';
```
### 后端API设计
#### 1. 点赞接口
- POST `/api/front/live/room/{roomId}/like` - 点赞直播间
- GET `/api/front/live/room/{roomId}/like/count` - 获取点赞数
- GET `/api/front/user/liked-rooms` - 获取用户点赞过的直播间列表
#### 2. 主播统计接口
- GET `/api/front/streamer/stats` - 获取主播统计(包含获赞数)
### Android端实现
#### 1. RoomDetailActivity直播间详情
- 添加点赞按钮UI
- 实现点赞动画效果
- 实时更新点赞数
#### 2. ProfileActivity个人中心
- 调整布局第一行3个按钮第二行2个按钮
- 添加"我的点赞"按钮
#### 3. LikedRoomsActivity我的点赞页面
- 显示用户点赞过的直播间列表
- 支持下拉刷新
#### 4. StreamerCenterActivity主播中心
- 显示获赞总数
#### 5. MainActivity首页
- 修改直播间卡片,显示点赞数而不是星星
## 实现步骤
1. ✅ 创建数据库表和字段
2. ✅ 实现后端点赞API
3. ✅ 实现Android端点赞按钮和动画
4. ✅ 调整个人中心布局
5. ✅ 创建"我的点赞"页面
6. ✅ 更新主播中心显示获赞数
7. ✅ 修改首页直播间卡片显示点赞数
## 文件清单
### 数据库
- `live_room_like_tables.sql` - 点赞表创建脚本
### 后端
- `LiveRoomLikeController.java` - 点赞控制器
- `LiveRoomLikeService.java` - 点赞服务接口
- `LiveRoomLikeServiceImpl.java` - 点赞服务实现
- `LiveRoomLike.java` - 点赞实体类
- `LiveRoomLikeDao.java` - 点赞DAO
- `LiveRoomLikeDao.xml` - MyBatis映射文件
### Android端
- `LikedRoomsActivity.java` - 我的点赞页面
- `activity_liked_rooms.xml` - 我的点赞布局
- `ic_like_24.xml` - 点赞图标
- `ic_like_filled_24.xml` - 已点赞图标
- 修改 `RoomDetailActivity.java` - 添加点赞按钮
- 修改 `activity_room_detail.xml` - 添加点赞按钮布局
- 修改 `ProfileActivity.java` - 调整布局
- 修改 `activity_profile.xml` - 调整布局
- 修改 `StreamerCenterActivity.java` - 显示获赞数
- 修改 `MainActivity.java` - 更新卡片显示
- 修改 `item_room_waterfall.xml` - 显示点赞数