video.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package road
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "hongze/hongze_yb/controller/response"
  6. "hongze/hongze_yb/models/request"
  7. responseModel "hongze/hongze_yb/models/response"
  8. "hongze/hongze_yb/services/bullet_chat"
  9. "hongze/hongze_yb/services/community"
  10. "hongze/hongze_yb/services/user"
  11. "hongze/hongze_yb/utils"
  12. )
  13. // VideoList 路演视频列表
  14. // @Tags 路演视频列表
  15. // @Description 路演视频列表
  16. // @Param page_index query int false "页码"
  17. // @Param page_size query int false "每页数量"
  18. // @Param keywords query string false "查询关键词"
  19. // @Param video_id query int false "视频ID"
  20. // @Param chart_permission_id query int false "品种ID"
  21. // @Success 200 {object}
  22. // @failure 400 {string} string "获取失败"
  23. // @Router /road/videos [get]
  24. func VideoList(c *gin.Context) {
  25. var req request.RoadVideoListReq
  26. if err := c.Bind(&req); err != nil {
  27. response.Fail("参数有误", c)
  28. return
  29. }
  30. if req.PageIndex == 0 {
  31. req.PageIndex = 1
  32. }
  33. if req.PageSize == 0 {
  34. req.PageSize = utils.PageSize20
  35. }
  36. userinfo := user.GetInfoByClaims(c)
  37. list, err, code := community.GetRoadVideoList(userinfo, req.PageIndex, req.PageSize, req.VideoId, req.ChartPermissionId, req.Keywords)
  38. if err != nil {
  39. if code == response.SPECIFIC_FAIL_CODE {
  40. response.SpecificFail(list, err.Error(), c)
  41. return
  42. }
  43. response.FailMsg("获取失败", "VideoList ErrMsg:"+err.Error(), c)
  44. return
  45. }
  46. idsArr := make([]int, 0)
  47. for i := range list.List {
  48. idsArr = append(idsArr, list.List[i].RoadVideoID)
  49. }
  50. // 弹幕数据
  51. idBulletsMap, e := bullet_chat.GetListMapBySourceAndIds(bullet_chat.SourceBulletChatRoadVideo, idsArr)
  52. if e != nil {
  53. response.FailMsg("获取失败", "获取视频社区弹幕列表Map失败, Err: "+e.Error(), c)
  54. return
  55. }
  56. for i := range list.List {
  57. ls := make([]*responseModel.BulletChatItem, 0)
  58. bs := idBulletsMap[list.List[i].RoadVideoID]
  59. if bs != nil && len(bs) > 0 {
  60. for k := range bs {
  61. ls = append(ls, &responseModel.BulletChatItem{
  62. Id: bs[k].ID,
  63. Content: bs[k].Content,
  64. UserId: bs[k].UserID,
  65. Color: bs[k].Color,
  66. Seconds: fmt.Sprint(bs[k].Seconds),
  67. })
  68. }
  69. }
  70. list.List[i].BulletChatList = ls
  71. }
  72. response.OkData("获取成功", list, c)
  73. }
  74. // VideoPlayLog 记录视频播放日志
  75. // @Tags 视频社区模块
  76. // @Description 记录视频播放日志
  77. // @Param video_id query int true "音频ID"
  78. // @Param source_agent query int true "操作来源,1:小程序,2:小程序 pc 3:弘则研究公众号,4:web pc"
  79. // @Success 200 {string} string "操作成功"
  80. // @failure 400 {string} string "操作失败"
  81. // @Router /video/play_log [post]
  82. func VideoPlayLog(c *gin.Context) {
  83. var req request.RoadVideoPlayLogReq
  84. if err := c.ShouldBind(&req); err != nil {
  85. response.Fail("参数有误", c)
  86. return
  87. }
  88. if req.VideoId == 0 {
  89. response.Fail("参数有误", c)
  90. return
  91. }
  92. if req.SourceAgent == 0 {
  93. response.Fail("参数有误", c)
  94. return
  95. }
  96. userinfo := user.GetInfoByClaims(c)
  97. newId, errMsg, err := community.SaveVideoPlayLog(userinfo, req.VideoId, req.SourceAgent, 2)
  98. if err != nil {
  99. response.FailMsg(errMsg, "VideoPlayLog ErrMsg:"+err.Error(), c)
  100. return
  101. }
  102. response.OkData("操作成功", newId, c)
  103. }