video.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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. companyProduct, 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 len(companyProduct) == 0 {
  76. status = 1
  77. } else {
  78. status = 1
  79. for _,v:=range companyProduct{
  80. if v.Status == utils.COMPANY_STATUS_TRY_OUT ||
  81. v.Status == utils.COMPANY_STATUS_FORMAL ||
  82. v.Status == utils.COMPANY_STATUS_FOREVER {
  83. status = 0
  84. break
  85. }
  86. }
  87. }
  88. pageSize, _ := this.GetInt("PageSize")
  89. currentIndex, _ := this.GetInt("CurrentIndex")
  90. keyWord := this.GetString("KeyWord")
  91. dateType, _ := this.GetInt("DateType")
  92. tags := this.GetString("Tags")
  93. var startSize int
  94. if pageSize <= 0 {
  95. pageSize = utils.PageSize20
  96. }
  97. if currentIndex <= 0 {
  98. currentIndex = 1
  99. }
  100. startSize = paging.StartIndex(currentIndex, pageSize)
  101. resp := new(models.VideoListResp)
  102. var condition string
  103. var pars []interface{}
  104. if keyWord != "" {
  105. videoIdStr, err := models.GetVideoIdByKeyWord(keyWord)
  106. if err != nil {
  107. br.Msg = "获取失败"
  108. br.ErrMsg = "获取失败,Err:" + err.Error()
  109. return
  110. }
  111. if videoIdStr != "" {
  112. condition += ` AND (a.video_id IN (` + videoIdStr + `) OR a.title LIKE '%` + keyWord + `%' ) `
  113. } else {
  114. condition += ` AND (a.title LIKE '%` + keyWord + `%' ) `
  115. }
  116. }
  117. if tags != "" {
  118. videoIdStr, err := models.GetVideoIdByKeyWord(tags)
  119. if err != nil {
  120. br.Msg = "获取失败"
  121. br.ErrMsg = "获取失败,Err:" + err.Error()
  122. return
  123. }
  124. if videoIdStr != "" {
  125. condition += ` AND a.video_id IN (` + videoIdStr + `) `
  126. } else {
  127. list := make([]*models.VideoList, 0)
  128. resp.List = list
  129. br.Ret = 200
  130. br.Success = true
  131. br.Msg = "获取成功"
  132. br.Data = resp
  133. return
  134. }
  135. }
  136. publishDate := ""
  137. if dateType == 1 {
  138. publishDate = time.Now().AddDate(0, -1, 0).Format(utils.FormatDate)
  139. } else if dateType == 2 {
  140. publishDate = time.Now().AddDate(0, -3, 0).Format(utils.FormatDate)
  141. } else if dateType == 3 {
  142. publishDate = time.Now().AddDate(0, -6, 0).Format(utils.FormatDate)
  143. } else if dateType == 4 {
  144. publishDate = time.Now().AddDate(-100, 0, 0).Format(utils.FormatDate)
  145. }
  146. if publishDate != "" {
  147. condition += ` AND a.publish_time >=? `
  148. pars = append(pars, publishDate)
  149. }
  150. if status == 0 {
  151. list, err := models.GetVideoList(condition, pars, startSize, pageSize)
  152. if err != nil {
  153. br.Msg = "获取失败"
  154. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  155. return
  156. }
  157. if len(list) <= 0 {
  158. list := make([]*models.VideoList, 0)
  159. resp.List = list
  160. } else {
  161. resp.List = list
  162. }
  163. } else {
  164. list := make([]*models.VideoList, 0)
  165. resp.List = list
  166. }
  167. resp.Status = status
  168. br.Ret = 200
  169. br.Success = true
  170. br.Msg = "获取成功"
  171. br.Data = resp
  172. }