chart_info_section.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package data_manage
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/models"
  5. "eta/eta_api/models/data_manage"
  6. "eta/eta_api/services/data"
  7. "eta/eta_api/utils"
  8. "strings"
  9. )
  10. // GetChartTypeList
  11. // @Title 获取所有图表类型
  12. // @Description 获取所有图表类型
  13. // @Success 200 {object} data_manage.AddChartInfoResp
  14. // @router /chart_info/type_list [get]
  15. func (this *ChartInfoController) GetChartTypeList() {
  16. br := new(models.BaseResponse).Init()
  17. defer func() {
  18. this.Data["json"] = br
  19. this.ServeJSON()
  20. }()
  21. sysUser := this.SysUser
  22. if sysUser == nil {
  23. br.Msg = "请登录"
  24. br.ErrMsg = "请登录,SysUser Is Empty"
  25. br.Ret = 408
  26. return
  27. }
  28. listTmp, err := data_manage.GetChartTypeList()
  29. if err != nil {
  30. br.Msg = "获取图表类型失败"
  31. br.ErrMsg = "获取图表类型失败,Err:" + err.Error()
  32. return
  33. }
  34. //遍历list,将id和name组成map
  35. chartTypeMap := make(map[int][]data_manage.ChartType)
  36. for _, v := range listTmp {
  37. if v.ParentId > 0 {
  38. chartTypeMap[v.ParentId] = append(chartTypeMap[v.ParentId], v)
  39. }
  40. }
  41. list := make([]data_manage.ChartTypeList, 0)
  42. for _, v := range listTmp {
  43. if v.ParentId == 0 {
  44. tmp := data_manage.ChartTypeList{
  45. ChartTypeId: v.ChartTypeId,
  46. ChartTypeName: v.ChartTypeName,
  47. ParentId: v.ParentId,
  48. }
  49. child, ok := chartTypeMap[v.ChartTypeId]
  50. if ok {
  51. tmp.Child = child
  52. }
  53. list = append(list, tmp)
  54. }
  55. }
  56. resp := data_manage.ChartTypeListResp{List: list}
  57. br.Data = resp
  58. br.Ret = 200
  59. br.Success = true
  60. br.Msg = "获取图表类型成功"
  61. }
  62. // PreviewSectionCombineChartInfo
  63. // @Title 图表-获取预览的截面组合图数据
  64. // @Description 图表-获取预览的截面组合图数据
  65. // @Param request body data_manage.PreviewSectionCombineChartReq true "type json string"
  66. // @Success 200 {object} data_manage.ChartEdbInfoDetailResp
  67. // @router /chart_info/preview/section_combine [post]
  68. func (this *ChartInfoController) PreviewSectionCombineChartInfo() {
  69. br := new(models.BaseResponse).Init()
  70. defer func() {
  71. this.Data["json"] = br
  72. this.ServeJSON()
  73. }()
  74. var req data_manage.PreviewSectionCombineChartReq
  75. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  76. if err != nil {
  77. br.Msg = "参数解析异常!"
  78. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  79. return
  80. }
  81. chartInfo := new(data_manage.ChartInfoView)
  82. sysUser := this.SysUser
  83. if sysUser == nil {
  84. br.Msg = "请登录"
  85. br.ErrMsg = "请登录,SysUser Is Empty"
  86. br.Ret = 408
  87. return
  88. }
  89. chartType := utils.CHART_TYPE_SECTION_COMBINE
  90. edbInfoIdArr, err, errMsg := data.CheckChartExtraConfig(chartType, req.ExtraConfig)
  91. if err != nil {
  92. br.Msg = errMsg
  93. br.ErrMsg = "添加失败:" + err.Error()
  94. return
  95. }
  96. mappingList, err := data_manage.GetChartEdbMappingListByEdbInfoIdList(edbInfoIdArr)
  97. // 获取图表中的指标数据
  98. edbList, xEdbIdValue, yDataList, dataResp, err, errMsg := data.GetChartEdbData(0, chartType, "", "", "", mappingList, req.ExtraConfig, "")
  99. if err != nil {
  100. br.Msg = "获取失败"
  101. if errMsg != `` {
  102. br.Msg = errMsg
  103. }
  104. br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
  105. return
  106. }
  107. warnEdbList := make([]string, 0)
  108. for _, v := range edbList {
  109. if v.IsNullData {
  110. warnEdbList = append(warnEdbList, v.EdbName+"("+v.EdbCode+")")
  111. }
  112. }
  113. if len(warnEdbList) > 0 {
  114. chartInfo.WarnMsg = `图表引用指标异常,异常指标:` + strings.Join(warnEdbList, ",")
  115. }
  116. // 图表的指标来源
  117. sourceNameList, sourceNameEnList := data.GetEdbSourceByEdbInfoIdList(edbList)
  118. chartInfo.ChartSource = strings.Join(sourceNameList, ",")
  119. chartInfo.ChartSourceEn = strings.Join(sourceNameEnList, ",")
  120. //图表操作权限
  121. chartInfo.IsEdit = data.CheckOpChartPermission(sysUser, chartInfo.SysUserId, true)
  122. //判断是否需要展示英文标识
  123. chartInfo.IsEnChart = data.CheckIsEnChart(chartInfo.ChartNameEn, edbList, utils.CHART_SOURCE_DEFAULT, chartType)
  124. chartInfo.Button = data_manage.ChartViewButton{
  125. IsEdit: chartInfo.IsEdit,
  126. IsEnChart: chartInfo.IsEnChart,
  127. IsAdd: chartInfo.IsAdd,
  128. IsCopy: true,
  129. IsSetName: chartInfo.IsSetName,
  130. }
  131. resp := new(data_manage.ChartInfoDetailResp)
  132. resp.ChartInfo = chartInfo
  133. resp.EdbInfoList = edbList
  134. resp.XEdbIdValue = xEdbIdValue
  135. resp.YDataList = yDataList
  136. resp.DataResp = dataResp
  137. br.Ret = 200
  138. br.Success = true
  139. br.Msg = "获取成功"
  140. br.Data = resp
  141. }