Browse Source

兼容未分类的指标

xyxie 1 day ago
parent
commit
a53039f1ef
2 changed files with 70 additions and 14 deletions
  1. 30 14
      controllers/data_manage/kpler_data.go
  2. 40 0
      models/data_manage/base_from_kpler_classify.go

+ 30 - 14
controllers/data_manage/kpler_data.go

@@ -381,20 +381,34 @@ func (this *BaseFromKplerController) KplerClassify() {
 		br.Ret = 408
 		return
 	}
-    classifyId, _ := this.GetInt("ClassifyId")
-	if classifyId < 0 {
-		br.Msg = "请选择分类"
-		br.ErrMsg = "请选择分类"
-		return
-	}
-	list, e := data_manage.GetKplerClassifyAndIndex(classifyId)
-	if e != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取数据失败,Err:" + e.Error()
-		return
+    classifyId, _ := this.GetInt("ClassifyId", -1)
+	list := make([]*data_manage.BaseFromKplerClassifyItems, 0)
+	var err error
+	if classifyId == -1 {
+		list, err = data_manage.GetKplerClassifyRoot()
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
+	}else if classifyId == 0 {
+		list, err = data_manage.GetKplerIndexNotClassify()
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
+	} else {
+		list, err = data_manage.GetKplerClassifyAndIndex(classifyId)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
 	}
+	
 	fList := make([]*data_manage.BaseFromKplerClassifyItems, 0)
-	if classifyId == 0 {
+	if classifyId == -1 {
 		// 返回未分类文件夹
 		fList = append(fList, &data_manage.BaseFromKplerClassifyItems{
 			ClassifyId: 0,
@@ -575,9 +589,9 @@ func (this *BaseFromKplerController) KplerIndexData() {
 	var condition string
 	var pars []interface{}
 
-	if classifyId >= 0 {
+	if classifyId > 0 {
 		classifyInfo, err := data_manage.GetBaseFromKplerClassifyById(classifyId)
-		if err != nil {
+		if err == nil {
 			if utils.IsErrNoRow(err) {
 				br.Msg = "分类不存在"
 				return
@@ -601,6 +615,8 @@ func (this *BaseFromKplerController) KplerIndexData() {
 			condition += ` AND classify_id IN (` + utils.GetOrmInReplace(len(classifyList)) + `) `
 			pars = append(pars, classifyList)
 		}
+	}else if classifyId == 0 {
+		condition += ` AND classify_id=0 `
 	}
 	if frequency != "" {
 		condition += ` AND frequency=? `

+ 40 - 0
models/data_manage/base_from_kpler_classify.go

@@ -198,6 +198,46 @@ func GetBaseFromKplerClassifyByLevelPath(levelPath string) (items []*BaseFromKpl
 	return
 }
 
+func GetKplerClassifyRoot() (items []*BaseFromKplerClassifyItems, err error) {
+	o := global.DbMap[utils.DbNameIndex]
+	sql := `SELECT
+			0 AS base_from_kpler_index_id,
+			c.classify_id,
+			c.classify_name,
+			c.parent_id,
+			c.sort,
+			"" AS index_code
+		FROM
+			base_from_kpler_classify c
+		WHERE
+			c.parent_id = 0
+		ORDER BY
+			sort ASC
+		`
+	err = o.Raw(sql).Find(&items).Error
+	return
+}
+func GetKplerIndexNotClassify() (items []*BaseFromKplerClassifyItems, err error) {
+	o := global.DbMap[utils.DbNameIndex]
+	sql := `SELECT
+			i.base_from_kpler_index_id,
+			i.classify_id,
+			i.index_name AS classify_name,
+			0 AS parent_id,
+			i.sort,
+			i.index_code
+		FROM
+			base_from_kpler_index i
+		WHERE
+			i.classify_id = 0
+		
+		ORDER BY
+			sort ASC
+		`
+	err = o.Raw(sql).Find(&items).Error
+	return
+}
+
 func GetKplerClassifyAndIndex(parentId int) (items []*BaseFromKplerClassifyItems, err error) {
 	o := global.DbMap[utils.DbNameIndex]
 	sql := `SELECT