classify.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package cross_variety
  2. import (
  3. "eta/eta_api/controllers"
  4. "eta/eta_api/models"
  5. "eta/eta_api/models/data_manage"
  6. "eta/eta_api/services/data"
  7. "eta/eta_api/utils"
  8. )
  9. // ClassifyController
  10. // @Description: 跨品种分析分类
  11. type ClassifyController struct {
  12. controllers.BaseAuthController
  13. }
  14. // List
  15. // @Title 跨品种分析分类列表
  16. // @Description 跨品种分析分类列表接口
  17. // @Param IsShowMe query bool true "是否只看我的,true、false"
  18. // @Param Source query int true "图表类型,3:相关性,4:滚动相关性"
  19. // @Success 200 {object} data_manage.ChartClassifyListResp
  20. // @router /classify/list [get]
  21. func (c *ClassifyController) List() {
  22. br := new(models.BaseResponse).Init()
  23. defer func() {
  24. c.Data["json"] = br
  25. c.ServeJSON()
  26. }()
  27. resp := new(data_manage.ChartClassifyListResp)
  28. // 获取当前账号的不可见指标
  29. noPermissionChartIdMap := make(map[int]bool)
  30. {
  31. obj := data_manage.EdbInfoNoPermissionAdmin{}
  32. confList, err := obj.GetAllChartListByAdminId(c.SysUser.AdminId)
  33. if err != nil && err.Error() != utils.ErrNoRow() {
  34. br.Msg = "获取失败"
  35. br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
  36. return
  37. }
  38. for _, v := range confList {
  39. noPermissionChartIdMap[v.ChartInfoId] = true
  40. }
  41. }
  42. isShowMe, _ := c.GetBool("IsShowMe")
  43. source, _ := c.GetInt("Source")
  44. if source <= 0 {
  45. source = utils.CHART_SOURCE_CROSS_HEDGING
  46. }
  47. rootList, err := data_manage.GetChartClassifyByParentId(0, utils.CHART_SOURCE_CROSS_HEDGING)
  48. if err != nil && err.Error() != utils.ErrNoRow() {
  49. br.Msg = "获取失败"
  50. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  51. return
  52. }
  53. allChartInfo, err := data_manage.GetChartInfoAll([]int{source})
  54. if err != nil && err.Error() != utils.ErrNoRow() {
  55. br.Msg = "获取失败"
  56. br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  57. return
  58. }
  59. chartInfoMap := make(map[int][]*data_manage.ChartClassifyItems)
  60. for _, v := range allChartInfo {
  61. if !isShowMe {
  62. chartInfoMap[v.ChartClassifyId] = append(chartInfoMap[v.ChartClassifyId], v)
  63. continue
  64. }
  65. if v.SysUserId != c.SysUser.AdminId {
  66. continue
  67. }
  68. chartInfoMap[v.ChartClassifyId] = append(chartInfoMap[v.ChartClassifyId], v)
  69. }
  70. rootChildMap := make(map[int][]*data_manage.ChartClassifyItems)
  71. // 移除没有图表的分类
  72. allNodes := make([]*data_manage.ChartClassifyItems, 0)
  73. for _, v := range rootList {
  74. rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], v)
  75. if existItems, ok := chartInfoMap[v.ChartClassifyId]; ok {
  76. v.Children = existItems
  77. allNodes = append(allNodes, v)
  78. }
  79. }
  80. // 移除没有权限的图表
  81. allNodes = data.HandleNoPermissionChart(allNodes, noPermissionChartIdMap)
  82. resp.AllNodes = allNodes
  83. br.Ret = 200
  84. br.Success = true
  85. br.Msg = "获取成功"
  86. br.Data = resp
  87. }