项目笔记第五天 | 青训营笔记

99 阅读2分钟
这是我参与「第五届青训营 」伴学笔记创作活动的第14天。

今天主要是实现点赞功能

一、点赞列表

1.jpg

这里是视频点赞列表。user_id是用户id,video_id是点赞视频id。当/douyin/favorite/list/接口发送请求,会根据id去该表中匹配该用户相关的所有点赞视频id,然后根据该id将相应的视频信息加入DemoFavoriteVideos数组。然后响应中的video_list参数为该数组。

2.jpg

二、点赞按钮

3.jpg

feed接口获取视频信息的时候,先判断用户是否登录。如果用户登录就判断点赞按钮是否亮起。先从数据库中获取该用户的所有点赞视频id。由于DemoVideos是数据库中所有视频信息,如果返回给前端的视频信息中“is_favorite”的参数是true,则点赞按钮亮起,false则相反。这里直接修改DemoVideos数组中的信息,如果该视频是该用户点赞的,则修改其”is_favorite”的参数。

除此之外,用户登录的时候,也需要刷新所有点赞信息。这里刷新操作指的是直接给数组中的所有”is_favorite”的参数全部赋值为false。然后根据登录用户的id去查询该用户的点赞视频。

4.jpg

三、点赞按钮操作

5.jpg

点赞操作收到的请求里面有三个信息,登录用户信息、视频id以及点赞操作。这里如果有点赞操作,则数据库中新增一条记录,同时令数据库中视频点赞数加1。如果取消点赞,则数据库中会删除这条记录,并且令该视频的点赞数减1。这里返回给前端的信息只有0或1,表示是否操作成功。

下图是用户点赞列表,其视频点赞数标记情况。

6.jpg

总结

Bug太多了,代码还得改。如果一个用户刚登录的时候,当前刷到的视频是他点赞的视频,则点赞按钮不会亮起。必须重新刷到该视频点赞按钮亮起。其次,这里喜欢列表数量一直为0,如果有点赞操作则会加1,取消点赞会减1,这个数量的变动不是统计喜欢列表中的视频数,而是根据操作来判定喜欢数量。这样也会导致喜欢数量会标记-1。