media_controller.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package media
  2. import (
  3. "encoding/json"
  4. "eta_mini_ht_api/common/exception"
  5. "eta_mini_ht_api/common/utils/page"
  6. "eta_mini_ht_api/controllers"
  7. "eta_mini_ht_api/service/media"
  8. "eta_mini_ht_api/service/report"
  9. )
  10. type MediaController struct {
  11. controllers.ListController
  12. }
  13. const (
  14. video = "video"
  15. audio = "audio"
  16. )
  17. // Search 搜索报告列表
  18. // @Description 搜索报告列表
  19. // @Success 200 {object}
  20. // @router /search [get]
  21. func (m *MediaController) Search(mediaType string, key string) {
  22. controllers.Wrap(&m.BaseController, func() (result *controllers.WrapData, err error) {
  23. result = m.InitWrapData("分页搜索媒体列表失败")
  24. if key == "" {
  25. err = exception.New(exception.SearchKeyEmptyError)
  26. m.FailedResult("分页搜索报告列表失败", result)
  27. return
  28. }
  29. pageRes := page.Page{
  30. Current: m.PageInfo.Current,
  31. PageSize: m.PageInfo.PageSize,
  32. }
  33. if m.PageInfo.LatestId == 0 {
  34. pageRes.LatestId = media.SearchMaxMediaId(mediaType)
  35. m.PageInfo.LatestId = pageRes.LatestId
  36. } else {
  37. pageRes.LatestId = m.PageInfo.LatestId
  38. }
  39. pageRes.Total = pageRes.LatestId
  40. pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
  41. list, err := media.SearchMediaList(mediaType, key, m.PageInfo)
  42. if err != nil {
  43. m.FailedResult("分页搜索报告列表失败", result)
  44. return
  45. }
  46. reports := new(page.PageResult)
  47. reports.Data = list
  48. reports.Page = pageRes
  49. m.SuccessResult("分页搜索报告列表成功", reports, result)
  50. return
  51. })
  52. }
  53. // List 获取报告列表
  54. // @Description 获取报告列表
  55. // @Success 200 {object}
  56. // @router /list [get]
  57. func (m *MediaController) List(mediaType string) {
  58. controllers.Wrap(&m.BaseController, func() (result *controllers.WrapData, err error) {
  59. result = m.InitWrapData("分页查询媒体列表失败")
  60. if mediaType == "" || !checkMediaType(mediaType) {
  61. err = exception.New(exception.MediaTypeError)
  62. m.FailedResult("分页查询媒体列表失败", result)
  63. return
  64. }
  65. pageRes := page.Page{
  66. Current: m.PageInfo.Current,
  67. PageSize: m.PageInfo.PageSize,
  68. }
  69. if m.PageInfo.LatestId == 0 {
  70. pageRes.LatestId = media.GetTotalPageCount(mediaType)
  71. m.PageInfo.LatestId = pageRes.LatestId
  72. } else {
  73. pageRes.LatestId = m.PageInfo.LatestId
  74. }
  75. pageRes.Total = pageRes.LatestId
  76. pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
  77. list, err := media.GetMediaPage(mediaType, m.PageInfo)
  78. if err != nil {
  79. m.FailedResult("分页查询媒体列表失败", result)
  80. return
  81. }
  82. reports := new(page.PageResult)
  83. reports.Data = list
  84. reports.Page = pageRes
  85. m.SuccessResult("分页查询媒体列表成功", reports, result)
  86. return
  87. })
  88. }
  89. type RecordCountReq struct {
  90. ReportId int `json:"reportId"`
  91. IpAddress string `json:"ipAddress"`
  92. Location string `json:"location"`
  93. Referer string `json:"referer"`
  94. Additional interface{} `json:"additional"`
  95. }
  96. // // GetReport 获取研报详情
  97. // // @Description 获取研报详情
  98. // // @Success 200 {object}
  99. // // @router /report [get]
  100. //
  101. // func (r *ReportController) GetReport(reportId int) {
  102. // controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
  103. // result = r.InitWrapData("获取研报详情失败")
  104. // fmt.Println(reportId)
  105. // reportDetail, err := report.GetReportById(reportId)
  106. // if err != nil {
  107. // err = exception.New(exception.GetReportFailed)
  108. // return
  109. // }
  110. // r.SuccessResult("获取研报详情成功", reportDetail, result)
  111. // return
  112. // })
  113. // }
  114. func convertToRecordCount(req *RecordCountReq) report.RecordCount {
  115. additionStr, _ := json.Marshal(req.Additional)
  116. return report.RecordCount{
  117. ReportId: req.ReportId,
  118. IpAddress: req.IpAddress,
  119. Location: req.Location,
  120. Referer: req.Referer,
  121. Additional: string(additionStr),
  122. }
  123. }
  124. func checkMediaType(mediaType string) bool {
  125. if mediaType == video || mediaType == audio {
  126. return true
  127. }
  128. return false
  129. }