classify.go 2.8 KB

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