video.go 2.6 KB

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