Browse Source

根据目录查询所有指标

xyxie 1 year ago
parent
commit
9fdbd03b2a

+ 6 - 13
controllers/data_manage/edb_info.go

@@ -2458,6 +2458,7 @@ func (this *EdbInfoController) EdbInfoDetail() {
 	}
 	resp.EdbInfo = edbInfo
 	resp.ClassifyList = classifyList
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
@@ -4521,26 +4522,18 @@ func (this *EdbInfoController) EdbChartList() {
 	// 分类筛选
 	classifyId, _ := this.GetInt("ClassifyId")
 	if classifyId > 0 {
-		strClassifyIds, e := data_manage.GetEdbClassify(classifyId)
+		childClassify, e, _ := data.GetChildClassifyByClassifyId(classifyId)
 		if e != nil && e.Error() != utils.ErrNoRow() {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取分类信息失败, GetEdbClassify,Err:" + e.Error()
 			return
 		}
 		var classifyIds []int
-		classifyIdArr := strings.Split(strClassifyIds, ",")
-		for _, v := range classifyIdArr {
-			c, _ := strconv.Atoi(v)
-			if c > 0 {
-				classifyIds = append(classifyIds, c)
-			}
-		}
-		if len(classifyIds) > 0 {
-			condition += fmt.Sprintf(` AND classify_id IN (%s) `, utils.GetOrmInReplace(len(classifyIds)))
-			pars = append(pars, classifyIds)
-		} else {
-			condition += ` AND 1=2 `
+		for _, v := range childClassify {
+			classifyIds = append(classifyIds, v.ClassifyId)
 		}
+		condition += fmt.Sprintf(` AND classify_id IN (%s) `, utils.GetOrmInReplace(len(classifyIds)))
+		pars = append(pars, classifyIds)
 	}
 
 	// 创建人

+ 11 - 6
controllers/data_manage/predict_edb_info.go

@@ -10,6 +10,7 @@ import (
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/elastic"
 	"eta/eta_api/utils"
+	"fmt"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"github.com/shopspring/decimal"
 	"sort"
@@ -75,14 +76,18 @@ func (this *PredictEdbInfoController) EdbChartList() {
 
 	// 筛选分类
 	if classifyId > 0 {
-		classifyIds, err := data_manage.GetEdbClassify(classifyId)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取分类信息失败"
-			br.ErrMsg = "获取分类信息失败,GetEdbClassifyById,Err:" + err.Error()
+		childClassify, e, _ := data.GetChildClassifyByClassifyId(classifyId)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取分类信息失败, GetEdbClassify,Err:" + e.Error()
 			return
 		}
-		condition += " AND classify_id IN(" + classifyIds + ") "
-
+		var classifyIds []int
+		for _, v := range childClassify {
+			classifyIds = append(classifyIds, v.ClassifyId)
+		}
+		condition += fmt.Sprintf(` AND classify_id IN (%s) `, utils.GetOrmInReplace(len(classifyIds)))
+		pars = append(pars, classifyIds)
 	}
 	if adminId > 0 {
 		condition += " AND sys_user_id = ? "

+ 56 - 5
services/data/edb_classify.go

@@ -93,16 +93,67 @@ func GetFullClassifyByClassifyId(targetClassifyId int) (targetList []*data_manag
 	idMap := make(map[int]struct{})
 	if len(tmpList) > 0 {
 		for _, v := range tmpList {
-			addFlag := false
 			if v.ClassifyId == targetClassify.ClassifyId {
 				idMap[v.ClassifyId] = struct{}{}
 				idMap[v.ParentId] = struct{}{}
-				addFlag = true
-			} else if _, ok := idMap[v.ClassifyId]; ok {
+			}
+		}
+		for _, v := range tmpList {
+			if _, ok := idMap[v.ClassifyId]; ok {
 				idMap[v.ParentId] = struct{}{}
-				addFlag = true
 			}
-			if addFlag {
+		}
+		for _, v := range tmpList {
+			if _, ok := idMap[v.ClassifyId]; ok {
+				targetItem := new(data_manage.EdbClassifyIdItems)
+				targetItem.ClassifyId = v.ClassifyId
+				targetItem.ParentId = v.ParentId
+				targetItem.RootId = v.RootId
+				targetItem.UniqueCode = v.UniqueCode
+				targetItem.Level = v.Level
+				targetItem.ClassifyName = v.ClassifyName
+				targetList = append(targetList, targetItem)
+			}
+		}
+	}
+	return
+}
+
+func GetChildClassifyByClassifyId(targetClassifyId int) (targetList []*data_manage.EdbClassifyIdItems, err error, errMsg string) {
+	//判断是否是挂在顶级目录下
+	targetClassify, err := data_manage.GetEdbClassifyById(targetClassifyId)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			errMsg = "当前分类不存在"
+			err = errors.New(errMsg)
+			return
+		}
+		errMsg = "获取失败"
+		err = errors.New("获取分类信息失败,Err:" + err.Error())
+		return
+	}
+	tmpList, err := data_manage.GetEdbClassifyByRootIdLevel(targetClassify.RootId, targetClassify.ClassifyType)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		errMsg = "获取失败"
+		err = errors.New("获取数据失败,Err:" + err.Error())
+		return
+	}
+	idMap := make(map[int]struct{})
+	if len(tmpList) > 0 {
+		for _, v := range tmpList {
+			if v.ParentId == targetClassify.ClassifyId || v.ClassifyId == targetClassifyId {
+				idMap[v.ClassifyId] = struct{}{}
+			}
+		}
+
+		for _, v := range tmpList {
+			if _, ok := idMap[v.ParentId]; ok {
+				idMap[v.ClassifyId] = struct{}{}
+			}
+		}
+
+		for _, v := range tmpList {
+			if _, ok := idMap[v.ClassifyId]; ok {
 				targetItem := new(data_manage.EdbClassifyIdItems)
 				targetItem.ClassifyId = v.ClassifyId
 				targetItem.ParentId = v.ParentId