video.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package community
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "hongze/hongze_yb/controller/response"
  5. "hongze/hongze_yb/models/request"
  6. "hongze/hongze_yb/services/community"
  7. "hongze/hongze_yb/services/user"
  8. "hongze/hongze_yb/utils"
  9. )
  10. // VideoList 视频列表
  11. // @Tags 视频社区模块
  12. // @Description 获取视频社区列表
  13. // @Param page_index query int false "页码"
  14. // @Param page_size query int false "每页数量"
  15. // @Param keywords query string false "只看我的"
  16. // @Param video_id query int false "视频ID"
  17. // @Param variety_tag_id query int false "标签ID"
  18. // @Success 200 {object}
  19. // @failure 400 {string} string "获取失败"
  20. // @Router /video/list [get]
  21. func VideoList(c *gin.Context) {
  22. var req request.VideoListReq
  23. if err := c.Bind(&req); err != nil {
  24. response.Fail("参数有误", c)
  25. return
  26. }
  27. if req.PageIndex == 0 {
  28. req.PageIndex = 1
  29. }
  30. if req.PageSize == 0 {
  31. req.PageSize = utils.PageSize20
  32. }
  33. userInfo := user.GetInfoByClaims(c)
  34. list, err := community.GetVideoList(int(userInfo.UserID), req.PageIndex, req.PageSize, req.VideoId, req.VarietyTagId, req.Keywords)
  35. if err != nil {
  36. response.FailMsg("获取失败", "VideoList ErrMsg:"+err.Error(), c)
  37. return
  38. }
  39. // 点赞/吐槽数据
  40. err = community.HandleLikeOrTeaseByCommunityVideoItemList(userInfo.UserID, list)
  41. if err != nil {
  42. response.FailMsg("获取失败", "QuestionList ErrMsg:"+err.Error(), c)
  43. return
  44. }
  45. // 评论数据
  46. err = community.HandleCommentByCommunityVideoItemList(list)
  47. if err != nil {
  48. response.FailMsg("获取失败", "QuestionList ErrMsg:"+err.Error(), c)
  49. return
  50. }
  51. response.OkData("获取成功", list, c)
  52. }
  53. // VideoPlayLog 记录视频播放日志
  54. // @Tags 视频社区模块
  55. // @Description 记录视频播放日志
  56. // @Param video_id query int true "音频ID"
  57. // @Param source_agent query int true "操作来源,1:小程序,2:小程序 pc 3:弘则研究公众号,4:web pc"
  58. // @Success 200 {string} string "操作成功"
  59. // @failure 400 {string} string "操作失败"
  60. // @Router /video/play_log [post]
  61. func VideoPlayLog(c *gin.Context) {
  62. var req request.VideoPlayLogReq
  63. if err := c.ShouldBind(&req); err != nil {
  64. response.Fail("参数有误", c)
  65. return
  66. }
  67. if req.VideoId == 0 {
  68. response.Fail("参数有误", c)
  69. return
  70. }
  71. if req.SourceAgent == 0 {
  72. response.Fail("参数有误", c)
  73. return
  74. }
  75. userinfo := user.GetInfoByClaims(c)
  76. newId, errMsg, err := community.SaveVideoPlayLog(userinfo, req.VideoId, req.SourceAgent, 1)
  77. if err != nil {
  78. response.FailMsg(errMsg, "VideoPlayLog ErrMsg:"+err.Error(), c)
  79. return
  80. }
  81. response.OkData("操作成功", newId, c)
  82. }