Browse Source

fix:指标库只看我去除无内容目录

zqbao 5 months ago
parent
commit
4691f143b2
2 changed files with 62 additions and 0 deletions
  1. 8 0
      controllers/data_manage/edb_classify.go
  2. 54 0
      services/data/edb_classify.go

+ 8 - 0
controllers/data_manage/edb_classify.go

@@ -1058,6 +1058,14 @@ func (this *EdbClassifyController) SimpleList() {
 		sortList = nodeAll
 		sort.Sort(sortList)
 	}
+	if isOnlyMe {
+		sortList, err = data.GetEdbClassifyByIsMe(sysUserId, parentId, 0, sortList)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
+	}
 
 	language := `CN`
 	// 指标显示的语言

+ 54 - 0
services/data/edb_classify.go

@@ -1545,3 +1545,57 @@ func GetEdbClassifyMaxSort(parentId int, classifyType uint8) (maxSort int, err e
 	}
 	return
 }
+
+func GetEdbClassifyByIsMe(adminId, parentId, edbInfoType int, classifyList []*data_manage.EdbClassifyItems) (list []*data_manage.EdbClassifyItems, err error) {
+	edbInfoList, err := data_manage.GetEdbInfoListByUserId([]int{adminId}, edbInfoType)
+	if err != nil {
+		return
+	}
+	classifyIdList := make([]int, 0)
+	for _, edbInfo := range edbInfoList {
+		if edbInfo.ClassifyId > 0 {
+			classifyIdList = append(classifyIdList, edbInfo.ClassifyId)
+		}
+	}
+	if parentId > 0 {
+		for _, v := range classifyList {
+			if v.ClassifyId > 0 && v.EdbInfoId == 0 {
+				classifyItems, er, _ := GetChildClassifyByClassifyId(v.ClassifyId)
+				if er != nil {
+					err = er
+					return
+				}
+				existClassifyMap := make(map[int]struct{})
+				for _, classify := range classifyItems {
+					existClassifyMap[classify.ClassifyId] = struct{}{}
+				}
+				for _, edb := range edbInfoList {
+					if _, ok := existClassifyMap[edb.ClassifyId]; ok {
+						list = append(list, v)
+						break
+					}
+				}
+			} else {
+				list = append(list, v)
+			}
+		}
+	} else {
+		edbInfoClassifyList, er := data_manage.GetEdbClassifyByIdList(classifyIdList)
+		if er != nil {
+			err = er
+			return
+		}
+
+		existClassifyIdMap := make(map[int]struct{})
+		for _, classify := range edbInfoClassifyList {
+			existClassifyIdMap[classify.RootId] = struct{}{}
+		}
+
+		for _, classify := range classifyList {
+			if _, ok := existClassifyIdMap[classify.ClassifyId]; ok {
+				list = append(list, classify)
+			}
+		}
+	}
+	return
+}