research.go 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. package controllers
  2. import (
  3. "hongze/hongze_cygx/models"
  4. "strconv"
  5. )
  6. //研选
  7. type ResearchController struct {
  8. BaseAuthController
  9. }
  10. // @Title 近期更新主题列表
  11. // @Description 近期更新主题列表接口
  12. // @Param ChartPermissionId query int true "分类ID"
  13. // @Success 200 {object} models.IndustrialManagementNewList
  14. // @router /theme/newList [get]
  15. func (this *ResearchController) NewList() {
  16. br := new(models.BaseResponse).Init()
  17. defer func() {
  18. this.Data["json"] = br
  19. this.ServeJSON()
  20. }()
  21. user := this.User
  22. if user == nil {
  23. br.Msg = "请重新登录"
  24. br.Ret = 408
  25. return
  26. }
  27. chartPermissionId, _ := this.GetInt("ChartPermissionId")
  28. if chartPermissionId < 1 {
  29. br.Msg = "请输入分类ID"
  30. return
  31. }
  32. categoryinfo, err := models.GetChartPermissionById(chartPermissionId)
  33. if err != nil {
  34. br.Msg = "获取信息失败"
  35. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  36. return
  37. }
  38. list, err := models.GetIndustrialManagementNewList(categoryinfo.PermissionName)
  39. if err != nil {
  40. br.Msg = "获取信息失败"
  41. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  42. return
  43. }
  44. detailHot3, err := models.GetIndustrialManagementHot3(chartPermissionId)
  45. if err != nil {
  46. br.Msg = "获取信息失败"
  47. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  48. return
  49. }
  50. for k, v := range list {
  51. if v.ArticleReadNum >= detailHot3.ArticleReadNum {
  52. list[k].IsHot = true
  53. }
  54. }
  55. resp := new(models.IndustrialManagementNewList)
  56. resp.List = list
  57. br.Ret = 200
  58. br.Success = true
  59. br.Msg = "获取成功"
  60. br.Data = resp
  61. }
  62. // @Title 用户收藏列表
  63. // @Description 用户收藏列表接口
  64. // @Param ChartPermissionId query int true "分类ID"
  65. // @Success 200 {object} models.ArticleCollectionLIstResp
  66. // @router /collectionList [get]
  67. func (this *ResearchController) CollectionList() {
  68. br := new(models.BaseResponse).Init()
  69. defer func() {
  70. this.Data["json"] = br
  71. this.ServeJSON()
  72. }()
  73. user := this.User
  74. if user == nil {
  75. br.Msg = "请重新登录"
  76. br.Ret = 408
  77. return
  78. }
  79. chartPermissionId, _ := this.GetInt("ChartPermissionId")
  80. if chartPermissionId < 1 {
  81. br.Msg = "请输入分类ID"
  82. return
  83. }
  84. categoryinfo, err := models.GetChartPermissionById(chartPermissionId)
  85. if err != nil {
  86. br.Msg = "获取信息失败"
  87. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  88. return
  89. }
  90. list, err := models.GetArticleCollectionList(categoryinfo.PermissionName)
  91. if err != nil {
  92. br.Msg = "获取信息失败"
  93. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  94. return
  95. }
  96. resp := new(models.ArticleCollectionLIstResp)
  97. resp.List = list
  98. br.Ret = 200
  99. br.Success = true
  100. br.Msg = "获取成功"
  101. br.Data = resp
  102. }
  103. // @Title 主题热度/近期更新,列表
  104. // @Description 主题热度列表接口
  105. // @Param ChartPermissionId query int true "分类ID"
  106. // @Param ThemeType query int true "主题类型,1主题热度、2近期更新 默认1"
  107. // @Success 200 {object} models.IndustrialManagementHotListResp
  108. // @router /hotList [get]
  109. func (this *ResearchController) HotList() {
  110. br := new(models.BaseResponse).Init()
  111. defer func() {
  112. this.Data["json"] = br
  113. this.ServeJSON()
  114. }()
  115. user := this.User
  116. if user == nil {
  117. br.Msg = "请重新登录"
  118. br.Ret = 408
  119. return
  120. }
  121. chartPermissionId, _ := this.GetInt("ChartPermissionId")
  122. themeType, _ := this.GetInt("ThemeType")
  123. if chartPermissionId < 1 {
  124. br.Msg = "请输入分类ID"
  125. return
  126. }
  127. var condition string
  128. if themeType != 2 {
  129. themeType = 1
  130. condition = `ORDER BY sum_num DESC LIMIT 15`
  131. } else {
  132. condition = `ORDER BY publish_date DESC LIMIT 30`
  133. }
  134. categoryinfo, err := models.GetChartPermissionById(chartPermissionId)
  135. if err != nil {
  136. br.Msg = "获取信息失败"
  137. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  138. return
  139. }
  140. list, err := models.GetThemeHeatList(categoryinfo.PermissionName, user.UserId, condition)
  141. if err != nil {
  142. br.Msg = "获取信息失败"
  143. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  144. return
  145. }
  146. newMap := make(map[int]string)
  147. listNew, err := models.GetIndustrialManagementNewList(categoryinfo.PermissionName)
  148. if err != nil {
  149. br.Msg = "获取信息失败"
  150. br.ErrMsg = "获取产业最新信息失败,Err:" + err.Error()
  151. return
  152. }
  153. for _, v := range listNew {
  154. newMap[v.IndustrialManagementId] = v.IndustryName
  155. }
  156. listSubjcet, err := models.GetThemeHeatSubjectList(categoryinfo.PermissionName)
  157. if err != nil {
  158. br.Msg = "获取信息失败"
  159. br.ErrMsg = "获取标的信息失败,Err:" + err.Error()
  160. return
  161. }
  162. detailHot3, err := models.GetIndustrialManagementHot3(chartPermissionId)
  163. if err != nil {
  164. br.Msg = "获取信息失败"
  165. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  166. return
  167. }
  168. for k, v := range list {
  169. if newMap[v.IndustrialManagementId] != "" {
  170. list[k].IsNew = true
  171. }
  172. if v.FllowNum > 0 {
  173. list[k].IsFollw = true
  174. }
  175. for _, v2 := range listSubjcet {
  176. if v2.IndustrialManagementId == v.IndustrialManagementId {
  177. list[k].IndustrialSubjectList = append(list[k].IndustrialSubjectList, v2)
  178. }
  179. }
  180. if v.ArticleReadNum >= detailHot3.ArticleReadNum {
  181. list[k].IsHot = true
  182. }
  183. }
  184. resp := new(models.IndustrialManagementHotListResp)
  185. resp.List = list
  186. br.Ret = 200
  187. br.Success = true
  188. br.Msg = "获取成功"
  189. br.Data = resp
  190. }
  191. // @Title KOL榜列表
  192. // @Description KOL榜列表接口
  193. // @Param ChartPermissionId query int true "分类ID"
  194. // @Success 200 {object} models.IndustrialManagementHotListResp
  195. // @router /kolList [get]
  196. func (this *ResearchController) KolList() {
  197. br := new(models.BaseResponse).Init()
  198. defer func() {
  199. this.Data["json"] = br
  200. this.ServeJSON()
  201. }()
  202. user := this.User
  203. if user == nil {
  204. br.Msg = "请重新登录"
  205. br.Ret = 408
  206. return
  207. }
  208. chartPermissionId, _ := this.GetInt("ChartPermissionId")
  209. if chartPermissionId < 1 {
  210. br.Msg = "请输入分类ID"
  211. return
  212. }
  213. categoryinfo, err := models.GetChartPermissionById(chartPermissionId)
  214. if err != nil {
  215. br.Msg = "获取信息失败"
  216. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  217. return
  218. }
  219. list, err := models.GetDepartmentList(categoryinfo.PermissionName, user.UserId)
  220. if err != nil {
  221. br.Msg = "获取信息失败"
  222. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  223. return
  224. }
  225. listIndustrial, err := models.GetIndustrialDepartmentList(categoryinfo.PermissionName)
  226. if err != nil {
  227. br.Msg = "获取信息失败"
  228. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  229. return
  230. }
  231. departmentMap := make(map[string]string)
  232. for k, v := range list {
  233. if v.FllowNum > 0 {
  234. list[k].IsFollw = true
  235. }
  236. for _, v2 := range listIndustrial {
  237. if v2.DepartmentId == v.DepartmentId {
  238. if departmentMap["D"+strconv.Itoa(v2.DepartmentId)+"In"+strconv.Itoa(v2.IndustrialManagementId)] == "" && len(list[k].List) < 4 {
  239. list[k].List = append(list[k].List, v2)
  240. departmentMap["D"+strconv.Itoa(v2.DepartmentId)+"In"+strconv.Itoa(v2.IndustrialManagementId)] = v.NickName
  241. }
  242. }
  243. }
  244. }
  245. resp := new(models.DepartmentListResp)
  246. resp.List = list
  247. br.Ret = 200
  248. br.Success = true
  249. br.Msg = "获取成功"
  250. br.Data = resp
  251. }
  252. // @Title 主题详情
  253. // @Description 主题详情接口
  254. // @Param IndustrialManagementId query int true "分类ID"
  255. // @Success 200 {object} models.IndustrialManagementNewList
  256. // @router /theme/detail [get]
  257. func (this *ResearchController) ThemeDetail() {
  258. br := new(models.BaseResponse).Init()
  259. defer func() {
  260. this.Data["json"] = br
  261. this.ServeJSON()
  262. }()
  263. user := this.User
  264. if user == nil {
  265. br.Msg = "请重新登录"
  266. br.Ret = 408
  267. return
  268. }
  269. chartPermissionId, _ := this.GetInt("IndustrialManagementId")
  270. if chartPermissionId < 1 {
  271. br.Msg = "请输入分类ID"
  272. return
  273. }
  274. categoryinfo, err := models.GetChartPermissionById(chartPermissionId)
  275. if err != nil {
  276. br.Msg = "获取信息失败"
  277. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  278. return
  279. }
  280. list, err := models.GetIndustrialManagementNewList(categoryinfo.PermissionName)
  281. if err != nil {
  282. br.Msg = "获取信息失败"
  283. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  284. return
  285. }
  286. detailHot3, err := models.GetIndustrialManagementHot3(chartPermissionId)
  287. if err != nil {
  288. br.Msg = "获取信息失败"
  289. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  290. return
  291. }
  292. for k, v := range list {
  293. if v.ArticleReadNum >= detailHot3.ArticleReadNum {
  294. list[k].IsHot = true
  295. }
  296. }
  297. resp := new(models.IndustrialManagementNewList)
  298. resp.List = list
  299. br.Ret = 200
  300. br.Success = true
  301. br.Msg = "获取成功"
  302. br.Data = resp
  303. }