Răsfoiți Sursa

指标预览权限

xyxie 7 luni în urmă
părinte
comite
62a44bcde9
1 a modificat fișierele cu 42 adăugiri și 1 ștergeri
  1. 42 1
      controllers/data_manage/chart_info_section.go

+ 42 - 1
controllers/data_manage/chart_info_section.go

@@ -5,6 +5,7 @@ import (
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/services/data"
+	"eta/eta_api/services/data/data_manage_permission"
 	"eta/eta_api/utils"
 	"strings"
 )
@@ -107,7 +108,11 @@ func (this *ChartInfoController) PreviewSectionCombineChartInfo() {
 	}
 	chartInfo.ChartType = chartType
 	mappingList, err := data_manage.GetChartEdbMappingListByEdbInfoIdList(edbInfoIdArr)
-
+	if err != nil {
+		br.Msg = "获取图表,指标信息失败"
+		br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
+		return
+	}
 	// 获取图表中的指标数据
 	edbList, xEdbIdValue, yDataList, dataResp, err, errMsg := data.GetChartEdbData(0, chartType, "", "", "", mappingList, req.ExtraConfig, "")
 	if err != nil {
@@ -118,6 +123,42 @@ func (this *ChartInfoController) PreviewSectionCombineChartInfo() {
 		br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
 		return
 	}
+	// 指标权限
+	{
+
+		classifyMap := make(map[int]*data_manage.EdbClassify)
+
+		// 分类
+		{
+			classifyIdList := make([]int, 0)
+			for _, v := range edbList {
+				classifyIdList = append(classifyIdList, v.ClassifyId)
+			}
+			classifyList, tmpErr := data_manage.GetEdbClassifyByIdList(classifyIdList)
+			if tmpErr != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取分类列表失败,Err:" + tmpErr.Error()
+				return
+			}
+			for _, v := range classifyList {
+				classifyMap[v.ClassifyId] = v
+			}
+		}
+		// 获取所有有权限的指标和分类
+		permissionEdbIdList, permissionClassifyIdList, err := data_manage_permission.GetUserEdbAndClassifyPermissionList(sysUser.AdminId, 0, 0)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取所有有权限的指标和分类失败,Err:" + err.Error()
+			return
+		}
+
+		for _, item := range edbList {
+			// 数据权限
+			if currClassify, ok := classifyMap[item.ClassifyId]; ok {
+				item.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(item.IsJoinPermission, currClassify.IsJoinPermission, item.EdbInfoId, item.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
+			}
+		}
+	}
 	warnEdbList := make([]string, 0)
 	for _, v := range edbList {
 		if v.IsNullData {