video.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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 DateType query string true "时间筛选组合:1:近一个月,2:近三个月,3:近半年,4:全部"
  48. // @Param Tags query string true "标签名称"
  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. status := 0
  65. company, err := models.GetCompanyById(user.CompanyId)
  66. if err != nil {
  67. if err.Error() != utils.ErrNoRow() {
  68. br.Msg = "获取报告详情失败"
  69. br.ErrMsg = "获取用户管理企业信息失败,Err:" + err.Error()
  70. return
  71. } else {
  72. status = 1
  73. }
  74. }
  75. if company == nil {
  76. status = 1
  77. } else {
  78. if company.Status == utils.COMPANY_STATUS_FREEZE ||
  79. company.Status == utils.COMPANY_STATUS_LOSE ||
  80. company.Status == utils.COMPANY_STATUS_POTENTIAL {
  81. status = 1
  82. }
  83. }
  84. pageSize, _ := this.GetInt("PageSize")
  85. currentIndex, _ := this.GetInt("CurrentIndex")
  86. keyWord := this.GetString("KeyWord")
  87. dateType, _ := this.GetInt("DateType")
  88. tags := this.GetString("Tags")
  89. var startSize int
  90. if pageSize <= 0 {
  91. pageSize = utils.PageSize20
  92. }
  93. if currentIndex <= 0 {
  94. currentIndex = 1
  95. }
  96. startSize = paging.StartIndex(currentIndex, pageSize)
  97. resp := new(models.VideoListResp)
  98. var condition string
  99. var pars []interface{}
  100. if keyWord != "" {
  101. videoIdStr, err := models.GetVideoIdByKeyWord(keyWord)
  102. if err != nil {
  103. br.Msg = "获取失败"
  104. br.ErrMsg = "获取失败,Err:" + err.Error()
  105. return
  106. }
  107. if videoIdStr != "" {
  108. condition += ` AND (a.video_id IN (` + videoIdStr + `) OR a.title LIKE '%` + keyWord + `%' ) `
  109. } else {
  110. condition += ` AND (a.title LIKE '%` + keyWord + `%' ) `
  111. }
  112. }
  113. if tags != "" {
  114. videoIdStr, err := models.GetVideoIdByKeyWord(tags)
  115. if err != nil {
  116. br.Msg = "获取失败"
  117. br.ErrMsg = "获取失败,Err:" + err.Error()
  118. return
  119. }
  120. if videoIdStr != "" {
  121. condition += ` AND a.video_id IN (` + videoIdStr + `) `
  122. } else {
  123. list := make([]*models.VideoList, 0)
  124. resp.List = list
  125. br.Ret = 200
  126. br.Success = true
  127. br.Msg = "获取成功"
  128. br.Data = resp
  129. return
  130. }
  131. }
  132. publishDate := ""
  133. if dateType == 1 {
  134. publishDate = time.Now().AddDate(0, -1, 0).Format(utils.FormatDate)
  135. } else if dateType == 2 {
  136. publishDate = time.Now().AddDate(0, -3, 0).Format(utils.FormatDate)
  137. } else if dateType == 3 {
  138. publishDate = time.Now().AddDate(0, -6, 0).Format(utils.FormatDate)
  139. } else if dateType == 4 {
  140. publishDate = time.Now().AddDate(-100, 0, 0).Format(utils.FormatDate)
  141. }
  142. if publishDate != "" {
  143. condition += ` AND a.publish_time >=? `
  144. pars = append(pars, publishDate)
  145. }
  146. if status == 0 {
  147. list, err := models.GetVideoList(condition, pars, startSize, pageSize)
  148. if err != nil {
  149. br.Msg = "获取失败"
  150. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  151. return
  152. }
  153. if len(list) <= 0 {
  154. list := make([]*models.VideoList, 0)
  155. resp.List = list
  156. } else {
  157. resp.List = list
  158. }
  159. } else {
  160. list := make([]*models.VideoList, 0)
  161. resp.List = list
  162. }
  163. resp.Status = status
  164. br.Ret = 200
  165. br.Success = true
  166. br.Msg = "获取成功"
  167. br.Data = resp
  168. }