analyst_controller.go 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. package user
  2. import (
  3. "eta/eta_mini_ht_api/common/exception"
  4. "eta/eta_mini_ht_api/common/utils/page"
  5. "eta/eta_mini_ht_api/controllers"
  6. userDao "eta/eta_mini_ht_api/models/user"
  7. "eta/eta_mini_ht_api/service/analyst"
  8. "eta/eta_mini_ht_api/service/media"
  9. "eta/eta_mini_ht_api/service/report"
  10. "eta/eta_mini_ht_api/service/user"
  11. )
  12. type AnalystController struct {
  13. controllers.ListController
  14. }
  15. // AnalystList 研究员列表
  16. // @Summary 研究员列表
  17. // @Description 研究员列表
  18. // @Success 200 {object} controllers.BaseResponse
  19. // @router /list [get]
  20. func (an *AnalystController) AnalystList() {
  21. controllers.Wrap(&an.BaseController, func() (result *controllers.WrapData, err error) {
  22. result = an.InitWrapData("获取研究员列表失败")
  23. var userInfo user.User
  24. userInfo = an.Data["user"].(user.User)
  25. pageRes := page.Page{
  26. Current: an.PageInfo.Current,
  27. PageSize: an.PageInfo.PageSize,
  28. }
  29. if an.PageInfo.LatestId == 0 {
  30. pageRes.Total, pageRes.LatestId = analyst.GetAnalystCount()
  31. an.PageInfo.LatestId = pageRes.LatestId
  32. an.PageInfo.Total = pageRes.Total
  33. } else {
  34. pageRes.LatestId = an.PageInfo.LatestId
  35. pageRes.Total = an.PageInfo.Total
  36. }
  37. an.PageInfo.Total = pageRes.Total
  38. pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
  39. list, err := analyst.GetAnalystList(an.PageInfo, userInfo.Id)
  40. if err != nil {
  41. an.FailedResult("获取研究员列表失败", result)
  42. return
  43. }
  44. analystList := new(page.PageResult)
  45. analystList.Data = list
  46. analystList.Page = pageRes
  47. an.SuccessResult("获取研究员列表成功", analystList, result)
  48. return
  49. })
  50. }
  51. // AnalystDetail 研究员详情
  52. // @Summary 研究员详情
  53. // @Description 研究员详情
  54. // @Success 200 {object} controllers.BaseResponse
  55. // @router /analystDetail [get]
  56. func (an *AnalystController) AnalystDetail(analystId int) {
  57. controllers.Wrap(&an.BaseController, func() (result *controllers.WrapData, err error) {
  58. result = an.InitWrapData("获取研究员详情失败")
  59. userInfo := an.Data["user"].(user.User)
  60. detail, err := user.GetAnalystDetail(userInfo.Id, analystId)
  61. if err != nil {
  62. err = nil
  63. defaultRes := &user.AnalystDetail{
  64. Followed: string(userDao.Forbidden),
  65. }
  66. an.SuccessResult("获取研究员详情成功", defaultRes, result)
  67. return
  68. }
  69. if !detail.Status {
  70. defaultRes := &user.AnalystDetail{
  71. Followed: string(userDao.Forbidden),
  72. Status: false,
  73. }
  74. an.SuccessResult("获取研究员详情成功", defaultRes, result)
  75. return
  76. }
  77. an.SuccessResult("获取研究员详情成功", detail, result)
  78. return
  79. })
  80. }
  81. // AnalystReportList @Title 获取研究员报告列表
  82. // @Description 获取研究员报告列表
  83. // @Success 200 {object}
  84. // @router /reportList [get]
  85. func (an *AnalystController) AnalystReportList(analystName string) {
  86. controllers.Wrap(&an.BaseController, func() (result *controllers.WrapData, err error) {
  87. result = an.InitWrapData("分页获取研究员报告列表失败")
  88. pageRes := page.Page{
  89. Current: an.PageInfo.Current,
  90. PageSize: an.PageInfo.PageSize,
  91. }
  92. userInfo := an.Data["user"].(user.User)
  93. var reportIds []int
  94. var mappingRiskLevel string
  95. var userRiskStatus string
  96. pageRes.Total, pageRes.LatestId, reportIds, mappingRiskLevel, userRiskStatus = report.RangeSearchByAnalyst(analystName, userInfo.Id)
  97. if len(reportIds) == 0 {
  98. reports := new(page.PageResult)
  99. reports.Data = []interface{}{}
  100. reports.Page = pageRes
  101. an.SuccessResult("分页获取研究员报告列表成功", reports, result)
  102. }
  103. if an.PageInfo.LatestId == 0 {
  104. //pageRes.Total, pageRes.LatestId = report.GetTotalPageCountByAnalyst(analystName)
  105. an.PageInfo.LatestId = pageRes.LatestId
  106. } else {
  107. pageRes.LatestId = an.PageInfo.LatestId
  108. pageRes.Total = an.PageInfo.Total
  109. }
  110. pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
  111. list, err := report.GetReportPageByAnalyst(an.PageInfo, analystName, reportIds, userInfo.Id, mappingRiskLevel, userRiskStatus)
  112. if err != nil {
  113. an.FailedResult("分页获取研究员报告列表失败", result)
  114. return
  115. }
  116. reports := new(page.PageResult)
  117. reports.Data = list
  118. reports.Page = pageRes
  119. an.SuccessResult("分页获取研究员报告列表成功", reports, result)
  120. return
  121. })
  122. }
  123. // MediaList 获取研究员媒体列表
  124. // @Description 获取研究员媒体列表
  125. // @Success 200 {object}
  126. // @router /mediaList [get]
  127. func (an *AnalystController) MediaList(mediaType string, analystId int) {
  128. controllers.Wrap(&an.BaseController, func() (result *controllers.WrapData, err error) {
  129. result = an.InitWrapData("分页查询研究员媒体列表失败")
  130. if mediaType == "" || !an.CheckMediaType(mediaType) {
  131. err = exception.New(exception.MediaTypeError)
  132. an.FailedResult("分页查询研究员媒体列表失败", result)
  133. return
  134. }
  135. pageRes := page.Page{
  136. Current: an.PageInfo.Current,
  137. PageSize: an.PageInfo.PageSize,
  138. }
  139. userInfo := an.Data["user"].(user.User)
  140. var mediaIds []int
  141. var mappingRiskLevel string
  142. var userRiskStatus string
  143. pageRes.Total, pageRes.LatestId, mediaIds, mappingRiskLevel, userRiskStatus = media.RangeSearchByAnalyst(mediaType, analystId, userInfo.Id)
  144. if len(mediaIds) == 0 {
  145. mediaList := new(page.PageResult)
  146. mediaList.Data = []interface{}{}
  147. mediaList.Page = pageRes
  148. an.SuccessResult("分页查询研究员媒体列表成功", mediaList, result)
  149. }
  150. if an.PageInfo.LatestId == 0 {
  151. // pageRes.Total, pageRes.LatestId = media.GetTotalPageCountByAnalystId(mediaType, analystId)
  152. an.PageInfo.LatestId = pageRes.LatestId
  153. an.PageInfo.Total = pageRes.Total
  154. } else {
  155. pageRes.LatestId = an.PageInfo.LatestId
  156. pageRes.Total = an.PageInfo.Total
  157. }
  158. pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
  159. list, err := media.GetMediaPageByAnalystId(mediaType, an.PageInfo, analystId, mediaIds, userInfo.Id, mappingRiskLevel, userRiskStatus)
  160. if err != nil {
  161. an.FailedResult("分页查询研究员媒体列表失败", result)
  162. return
  163. }
  164. mediaList := new(page.PageResult)
  165. mediaList.Data = list
  166. mediaList.Page = pageRes
  167. an.SuccessResult("分页查询研究员媒体列表成功", mediaList, result)
  168. return
  169. })
  170. }