Browse Source

fix:调整权限返回

Roc 1 year ago
parent
commit
34be2264df
2 changed files with 63 additions and 20 deletions
  1. 54 12
      controllers/data_manage/excel/mixed_table.go
  2. 9 8
      models/data_manage/edb_info.go

+ 54 - 12
controllers/data_manage/excel/mixed_table.go

@@ -6,6 +6,7 @@ import (
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/models/data_manage/excel/request"
 	"eta/eta_api/services/data"
+	"eta/eta_api/services/data/data_manage_permission"
 	excel2 "eta/eta_api/services/data/excel"
 	"eta/eta_api/utils"
 	"fmt"
@@ -424,20 +425,61 @@ func (c *ExcelInfoController) GetBaseEdbInfo() {
 		br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
 		return
 	}
+
 	list := make([]*data_manage.BaseEdbNameItem, 0)
-	for _, v := range edbInfoList {
-		tmp := new(data_manage.BaseEdbNameItem)
-
-		tmp.EdbInfoId = v.EdbInfoId
-		tmp.EdbInfoType = v.EdbInfoType
-		tmp.EdbCode = v.EdbCode
-		tmp.EdbName = v.EdbName
-		tmp.Source = v.Source
-		tmp.SourceName = v.SourceName
-		tmp.Frequency = v.Frequency
-		tmp.Unit = v.Unit
-		list = append(list, tmp)
+
+	if len(edbInfoList) > 0 {
+		classifyIdList := make([]int, 0)
+		for _, v := range edbInfoList {
+			classifyIdList = append(classifyIdList, v.ClassifyId)
+		}
+		// 指标权限
+		{
+			// 当前的分类
+			classifyMap := make(map[int]*data_manage.EdbClassify)
+			classifyList, err := data_manage.GetEdbClassifyByIdList(classifyIdList)
+			if err != nil {
+				if err != nil {
+					br.Msg = "获取失败"
+					br.ErrMsg = "获取分类列表失败,Err:" + err.Error()
+					return
+				}
+			}
+
+			for _, v := range classifyList {
+				classifyMap[v.ClassifyId] = v
+			}
+
+			// 获取所有有权限的指标和分类
+			permissionEdbIdList, permissionClassifyIdList, err := data_manage_permission.GetUserEdbAndClassifyPermissionList(c.SysUser.AdminId, 0, 0)
+			if err != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取所有有权限的指标和分类失败,Err:" + err.Error()
+				return
+			}
+
+			for _, v := range edbInfoList {
+				tmp := new(data_manage.BaseEdbNameItem)
+
+				// 指标权限
+				if currClassify, ok := classifyMap[v.ClassifyId]; ok {
+					tmp.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(v.IsJoinPermission, currClassify.IsJoinPermission, v.EdbInfoId, v.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
+				}
+
+				tmp.EdbInfoId = v.EdbInfoId
+				tmp.EdbInfoType = v.EdbInfoType
+				tmp.EdbCode = v.EdbCode
+				tmp.EdbName = v.EdbName
+				tmp.Source = v.Source
+				tmp.SourceName = v.SourceName
+				tmp.Frequency = v.Frequency
+				tmp.Unit = v.Unit
+				list = append(list, tmp)
+			}
+		}
+
 	}
+
 	resp := data_manage.BaseEdbInfoResp{
 		List: list,
 	}

+ 9 - 8
models/data_manage/edb_info.go

@@ -75,14 +75,15 @@ func AddEdbInfo(item *EdbInfo) (lastId int64, err error) {
 }
 
 type BaseEdbNameItem struct {
-	EdbInfoId   int    `description:"指标id"`
-	EdbInfoType int    `description:"指标类型,0:普通指标,1:预测指标"`
-	SourceName  string `description:"来源名称"`
-	Source      int    `description:"来源id"`
-	EdbCode     string `description:"指标编码"`
-	EdbName     string `description:"指标名称"`
-	Frequency   string `description:"频率"`
-	Unit        string `description:"单位"`
+	EdbInfoId     int    `description:"指标id"`
+	EdbInfoType   int    `description:"指标类型,0:普通指标,1:预测指标"`
+	SourceName    string `description:"来源名称"`
+	Source        int    `description:"来源id"`
+	EdbCode       string `description:"指标编码"`
+	EdbName       string `description:"指标名称"`
+	Frequency     string `description:"频率"`
+	Unit          string `description:"单位"`
+	HaveOperaAuth bool   `description:"是否有数据权限,默认:false"`
 }
 
 type BaseEdbInfoResp struct {