video.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package controllers
  2. import (
  3. "hongze/hongze_api/models"
  4. "hongze/hongze_api/utils"
  5. "rdluck_tools/paging"
  6. "time"
  7. )
  8. //报告
  9. type VideoController struct {
  10. BaseAuthController
  11. }
  12. // @Title 获取视频标签列表
  13. // @Description 获取视频标签列表接口
  14. // @Success 200 {object} video.VideoTagsListResp
  15. // @router /tags/list [get]
  16. func (this *VideoController) TagsList() {
  17. br := new(models.BaseResponse).Init()
  18. defer func() {
  19. this.Data["json"] = br
  20. this.ServeJSON()
  21. }()
  22. user := this.User
  23. if user == nil {
  24. br.Msg = "请登录"
  25. br.ErrMsg = "请登录,用户信息为空"
  26. br.Ret = 408
  27. return
  28. }
  29. list, err := models.GetVideoTagsList()
  30. if err != nil {
  31. br.Msg = "获取失败"
  32. br.ErrMsg = "获取失败,Err:" + err.Error()
  33. return
  34. }
  35. resp := new(models.VideoTagsListResp)
  36. resp.List = list
  37. br.Ret = 200
  38. br.Success = true
  39. br.Msg = "获取成功"
  40. br.Data = resp
  41. }
  42. // @Title 视频列表
  43. // @Description 视频列表接口
  44. // @Param PageSize query int true "每页数据条数"
  45. // @Param CurrentIndex query int true "当前页页码,从1开始"
  46. // @Param KeyWord query string true "搜索关键词"
  47. // @Param Tags query string true "标签名称"
  48. // @Param DateType query string true "时间筛选组合:1:近一个月,2:近三个月,3:近半年,4:全部"
  49. // @Success 200 {object} video.VideoListResp
  50. // @router /list [get]
  51. func (this *VideoController) List() {
  52. br := new(models.BaseResponse).Init()
  53. defer func() {
  54. this.Data["json"] = br
  55. this.ServeJSON()
  56. }()
  57. user := this.User
  58. if user == nil {
  59. br.Msg = "请登录"
  60. br.ErrMsg = "请登录,用户信息为空"
  61. br.Ret = 408
  62. return
  63. }
  64. pageSize, _ := this.GetInt("PageSize")
  65. currentIndex, _ := this.GetInt("CurrentIndex")
  66. keyWord := this.GetString("KeyWord")
  67. tags := this.GetString("Tags")
  68. dateType, _ := this.GetInt("DateType")
  69. var startSize int
  70. if pageSize <= 0 {
  71. pageSize = utils.PageSize20
  72. }
  73. if currentIndex <= 0 {
  74. currentIndex = 1
  75. }
  76. startSize = paging.StartIndex(currentIndex, pageSize)
  77. var condition string
  78. var pars []interface{}
  79. if tags != "" {
  80. videoIdStr, err := models.GetVideoIdByKeyWord(keyWord)
  81. if err != nil {
  82. br.Msg = "获取失败"
  83. br.ErrMsg = "获取失败,Err:" + err.Error()
  84. return
  85. }
  86. if videoIdStr != "" {
  87. condition += ` AND a.video_id IN (` + videoIdStr + `) `
  88. }
  89. }
  90. if keyWord != "" {
  91. condition += ` AND (a.title LIKE '%` + keyWord + `%' ) `
  92. }
  93. publishDate := ""
  94. if dateType == 1 {
  95. publishDate = time.Now().AddDate(0, -1, 0).Format(utils.FormatDate)
  96. } else if dateType == 2 {
  97. publishDate = time.Now().AddDate(0, -3, 0).Format(utils.FormatDate)
  98. } else if dateType == 3 {
  99. publishDate = time.Now().AddDate(0, -6, 0).Format(utils.FormatDate)
  100. } else if dateType == 4 {
  101. publishDate = time.Now().AddDate(-100, 0, 0).Format(utils.FormatDate)
  102. }
  103. if publishDate != "" {
  104. condition += ` AND a.publish_time >=? `
  105. pars = append(pars, publishDate)
  106. }
  107. total, err := models.GetVideoListCount(condition, pars)
  108. if err != nil {
  109. br.Msg = "获取失败"
  110. br.ErrMsg = "获取数据总数失败,Err:" + err.Error()
  111. return
  112. }
  113. list, err := models.GetVideoList(condition, pars, startSize, pageSize)
  114. if err != nil {
  115. br.Msg = "获取失败"
  116. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  117. return
  118. }
  119. page := paging.GetPaging(currentIndex, pageSize, total)
  120. resp := new(models.VideoListResp)
  121. resp.List = list
  122. resp.Paging = page
  123. br.Ret = 200
  124. br.Success = true
  125. br.Msg = "获取成功"
  126. br.Data = resp
  127. }