media_controller.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package media
  2. import (
  3. logger "eta/eta_mini_ht_api/common/component/log"
  4. "eta/eta_mini_ht_api/common/exception"
  5. "eta/eta_mini_ht_api/common/utils/page"
  6. "eta/eta_mini_ht_api/controllers"
  7. "eta/eta_mini_ht_api/service/media"
  8. )
  9. type MediaController struct {
  10. controllers.ListController
  11. }
  12. // Search 搜索报告列表
  13. // @Description 搜索报告列表
  14. // @Success 200 {object}
  15. // @router /search [get]
  16. func (m *MediaController) Search(mediaType string, key string) {
  17. controllers.Wrap(&m.BaseController, func() (result *controllers.WrapData, err error) {
  18. result = m.InitWrapData("分页搜索媒体列表失败")
  19. if key == "" {
  20. err = exception.New(exception.SearchKeyEmptyError)
  21. m.FailedResult("分页搜索报告列表失败", result)
  22. return
  23. }
  24. if mediaType == "" || !m.CheckMediaType(mediaType) {
  25. err = exception.New(exception.MediaTypeError)
  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.Total, pageRes.LatestId = media.SearchMaxMediaId(mediaType, key)
  35. m.PageInfo.LatestId = pageRes.LatestId
  36. } else {
  37. pageRes.LatestId = m.PageInfo.LatestId
  38. pageRes.Total = m.PageInfo.Total
  39. }
  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, permissionIds string) {
  58. controllers.Wrap(&m.BaseController, func() (result *controllers.WrapData, err error) {
  59. result = m.InitWrapData("分页查询媒体列表失败")
  60. if mediaType == "" || !m.CheckMediaType(mediaType) {
  61. err = exception.New(exception.MediaTypeError)
  62. m.FailedResult("分页查询媒体列表失败", result)
  63. return
  64. }
  65. permissionIdList, err := m.TransPermissionIds(permissionIds)
  66. if err != nil {
  67. logger.Error("品种列表解析错误:%v", err)
  68. m.FailedResult("分页查询媒体列表失败", result)
  69. err = exception.New(exception.QueryReportPageFailed)
  70. return
  71. }
  72. pageRes := page.Page{
  73. Current: m.PageInfo.Current,
  74. PageSize: m.PageInfo.PageSize,
  75. }
  76. var mediaIds []int
  77. if m.PageInfo.LatestId == 0 {
  78. pageRes.Total, pageRes.LatestId, mediaIds = media.GetTotalPageCountByPermissionIds(mediaType, permissionIdList)
  79. m.PageInfo.LatestId = pageRes.LatestId
  80. m.PageInfo.Total = pageRes.Total
  81. } else {
  82. pageRes.LatestId = m.PageInfo.LatestId
  83. pageRes.Total = m.PageInfo.Total
  84. }
  85. pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
  86. list, err := media.GetMediaPageByIds(mediaType, m.PageInfo, mediaIds)
  87. if err != nil {
  88. m.FailedResult("分页查询媒体列表失败", result)
  89. return
  90. }
  91. mediaList := new(page.PageResult)
  92. mediaList.Data = list
  93. mediaList.Page = pageRes
  94. m.SuccessResult("分页查询媒体列表成功", mediaList, result)
  95. return
  96. })
  97. }
  98. // GetMedia 获取媒体详情
  99. // @Description 获取媒体详情
  100. // @Success 200 {object}
  101. // @router /media [get]
  102. func (m *MediaController) GetMedia(mediaType string, mediaId int) {
  103. controllers.Wrap(&m.BaseController, func() (result *controllers.WrapData, err error) {
  104. result = m.InitWrapData("获取媒体详情失败")
  105. if mediaType == "" || !m.CheckMediaType(mediaType) {
  106. err = exception.New(exception.MediaTypeError)
  107. m.FailedResult("获取媒体详情失败", result)
  108. return
  109. }
  110. meidaDetail, err := media.GetMediaById(mediaType, mediaId)
  111. if err != nil {
  112. m.FailedResult("获取媒体详情失败", result)
  113. return
  114. }
  115. m.SuccessResult("获取媒体详情成功", meidaDetail, result)
  116. return
  117. })
  118. }