# go-watch **Repository Path**: lcsolute/go-watch ## Basic Information - **Project Name**: go-watch - **Description**: 短视频社交微信小程序的后端服务 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-03-01 - **Last Updated**: 2025-02-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: 小程序后端, Java, 短视频社交 ## README ## 热门视频 get /video/hotVideoList 查询热门视频的信息。要求展示视频id,视频路径,上传人头像,概述,封面和浏览量,。把能让用户自己点击跳转到具体的视频详情进行观看。 注意:不能把草稿展示出来,不能把删除了的文章查询出来。要按照点赞量进行降序排序。 ```json { id: number, // 视频的id videoDesc: string, // 视频描述 likeCounts: number, // 点赞数 userName: string, // 上传用户名 userAvatar: string, // 上传用户的头像图片路径 coverPath: string, // 视频的封面图路径 videoPath: string, // 视频的路径 } ``` ## 登录 测试: `post /user/login` `json` ```json { "userName": "admin", "password": "123" } ``` # 查询分类列表 需求:页面上需要展示分类列表,用户可以点击具体的分类查看该分类下的视频列表 注意: 1. 要求只展示有发布正式视频的分类 2. 必须是正常的分类 # 分页查询视频列表 `Get /video/videoList/1/3` ​ 在首页和分类页面都需要查询视频列表。 ​ 推荐页面:查询所有推荐的视频 ​ 分类页面:查询对应分类下的视频 ​ 要求:①只能查询正式发布的推荐 ②置顶的推荐要显示在最前面 # 小程序登录 `post /login` ```json { "code": "093UIlFa1dRbKC0eRdIa1Fkd7y0UIlFZ" } ``` 1. 小程序端调用 `wx.login()` 获取 `code` https://api.weixin.qq.com/sns/jscode2session?appid=wx607eb9ce39d795bb&secret=e39fd32daa5c26dfea4a5c508e2ca701&js_code=043pB0ll2cKMJ84ucVkl2ac9MD0pB0lD&grant_type=authorization_code # 点赞功能 `get /video/like/{id}` 点击点赞按钮,数据库更新。 `get /video/unlike/{id}` 再次点击取消点赞,数据更新。 注意:取消点赞时,要对数据库中的 `likeCounts`进行检验,只有大于 0 ,才能更新数据。在 `token` 中获取 `userId`并且添加记录到 `users_like_videos` 表中。 TODO 后台: 1. 视频管理,审核,标热 2. 视频分类管理,审核 3. 话题管理,审核,标热 前台: 1. 登录 2. 首页 3. 搜索 4. 滑动浏览视频 5. 评论 6. 点赞 7. 转发 8. 上传视频 git clone https://github.com/blackboy1987/dianying_minprogram.git docker build -t lcsolute/go-watch-miniapi -f Dockerfile . ## 点赞流程 ```mermaid sequenceDiagram par user to info user ->> info: 进入页面 info ->> redis: 点击点赞 redis ->> redis: 点赞数据存入缓存 redis -->> info: 返回点赞结果 info -->> user: 点赞成功 and user to info user ->> info: 进入页面 info ->> redis: 取消点赞 redis ->> redis: 更新缓存数据 redis -->> info: 返回结果 info -->> user: 取消点赞成功 end ``` ## 获取点赞数量和点赞状态 ```mermaid sequenceDiagram user ->> info: 进入页面 info ->> redis: 获取点赞数据 redis ->> redis: 读取缓存数据 redis -->> info: 缓存击中,返回点赞数据 info -->> user: 展示点赞数量和状态 redis ->> mysql: 缓存中没有,获取库中点赞数据 mysql -->> redis: 返回点赞数据 redis ->> redis: 添加到缓存中 redis -->> info: 返回点赞数据 info -->> user: 展示点赞数量和状态 ``` ## 数据持久化流程 ```mermaid sequenceDiagram task ->> task: 定时执行任务 task ->> redis: 获取缓存数据 redis -->> task: 返回缓存数据 task ->> task: 处理数据 task ->> mysql: 点赞数据入库 mysql ->> task: 返回结果 ``` ## 获取用户信息 点击 “我的” 页面,弹出弹框询问用户允许获得用户信息,将获取的用户信息上传至后台。 post `/user/info` `header token` ```json { nickName: string gender: integer avatarUrl: string } ``` ​ # TODO - [ ] 完善 ”我的“ 页面,编写获取后端数据 `api` - [ ] 小程序写滑动自动分页组件 - [ ] 完成 查询个人信息 功能 # 查询个人信息 `get /user/info?openId=?` `header: token` 查询个人信息id, 获赞数,关注数,粉丝数 ```json { id: string fansCounts: int // 粉丝数 followCounts: int // 关注数 receiveLikeCounts: int // 获赞数 } ``` # 查询该用户所有作品 `get /video/videoList/1/3` # 鉴权