111 lines
3.4 KiB
Markdown
111 lines
3.4 KiB
Markdown
# 点赞功能实现计划
|
||
|
||
## 需求分析
|
||
|
||
### 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` - 显示点赞数
|