소스 검색

kpler数据源指标列表

xyxie 4 일 전
부모
커밋
797b224420
3개의 변경된 파일66개의 추가작업 그리고 14개의 파일을 삭제
  1. 55 11
      controllers/data_manage/kpler_data.go
  2. 8 1
      models/data_manage/base_from_kpler_classify.go
  3. 3 2
      models/data_manage/base_from_kpler_index.go

+ 55 - 11
controllers/data_manage/kpler_data.go

@@ -75,6 +75,7 @@ func (this *BaseFromKplerController) Search() {
 	var productNamesStr string
 	var fromZoneNamesStr string
 	var toZoneNamesStr string
+	classifyName := ""
 	if len(params.ProductIds) > 0 {
 		// 获取产品名称
 		productList, e := data_manage.GetKplerClassifyByProductId(params.ProductIds)
@@ -89,7 +90,35 @@ func (this *BaseFromKplerController) Search() {
 		}
 		if len(productNames) > 0 {
 			productNamesStr = strings.Join(productNames, ",")
+			// 获取第一个产品的分类ID
+			classifyObj, err := data_manage.GetBaseFromKplerClassifyByProductName(productNames[0])
+			if err != nil {
+				br.Msg = "获取分类ID失败"
+				br.ErrMsg = fmt.Sprintf("获取分类ID失败, %v", err)
+				return
+			}
+			allClassifyIds := make([]int, 0)
+			if classifyObj.LevelPath != "" {
+				levelPath := strings.Split(classifyObj.LevelPath, ",")
+				for _, v := range levelPath {
+					levelId, _ := strconv.Atoi(v)
+					allClassifyIds = append(allClassifyIds, levelId)
+				}
+				//获取所有的分类列表
+				classifyList, err := data_manage.GetBaseFromKplerClassifyByIds(allClassifyIds)
+				if err != nil {
+					br.Msg = "获取分类列表失败"
+					br.ErrMsg = fmt.Sprintf("获取分类列表失败, %v", err)
+					return
+				}
+				for _, v := range classifyList {
+					classifyName += v.ClassifyName + "/"
+				}
+				classifyName = strings.TrimRight(classifyName, "/")
+			}
 		}
+
+		
 	}
 	// 获取区域名称
 	zoneObj := new(data_manage.BaseFromKplerZone)
@@ -148,6 +177,8 @@ func (this *BaseFromKplerController) Search() {
 		    return
 		}
 	}
+
+	
 	
 
 	resp := make([]*data_manage.KplerIndexItem, 0)
@@ -169,14 +200,14 @@ func (this *BaseFromKplerController) Search() {
 		item.IndexName = v.IndexName
 		item.Frequency = v.Frequency
 		item.Unit = v.Unit
-
+		item.ClassifyName = classifyName
 		// 搜索只展示100条数据
 		var limit int
 		sort.Slice(v.IndexData, func(i, j int) bool {
 			return v.IndexData[i].DataTime < v.IndexData[j].DataTime
 		})
 		for _, d := range v.IndexData {
-			if limit > 100 {
+			if limit > 10 {
 				break
 			}
 			limit += 1
@@ -420,8 +451,14 @@ func (this *BaseFromKplerController) KplerClassifyTree() {
 			br.ErrMsg = "获取数据失败,Err:" + err.Error()
 			return
 		}
+	}else{
+		classifyAll, err = data_manage.GetAllBaseFromKplerClassify()
+		if err != nil && !utils.IsErrNoRow(err) {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
 	}
-	
 
 	list := data.GetKplerClassifyTreeRecursive(classifyAll, 0)
 
@@ -627,6 +664,7 @@ func (this *BaseFromKplerController) KplerIndexData() {
 		product.IndexCode = v.IndexCode
 		product.IndexName = v.IndexName
 		product.Frequency = v.Frequency
+		product.ClassifyId = v.ClassifyId
 		product.ModifyTime = v.ModifyTime
 		if edb, ok := edbInfoMap[v.IndexCode]; ok {
 			product.EdbInfoId = edb.EdbInfoId
@@ -1284,22 +1322,28 @@ func (this *BaseFromKplerController) ExportKplerList() {
 			return
 		}
 		classifyName = classifyInfo.ClassifyName
-		childClassify, err := data_manage.GetBaseFromKplerClassifyByParentId(classifyId)
-		if err != nil {
-			br.Msg = "下载失败"
-			br.ErrMsg = "获取分类失败,Err:" + err.Error()
-			return
-		}
+		childClassify := make([]*data_manage.BaseFromKplerClassify, 0)
+		if classifyInfo.LevelPath != "" {
+		    childClassify, err = data_manage.GetBaseFromKplerClassifyByLevelPath(classifyInfo.LevelPath)
+		    if err != nil {
+			    br.Msg = "下载失败"
+			    br.ErrMsg = "获取分类失败,Err:" + err.Error()
+			    return
+		    }
+	    }
 
 		if len(childClassify) > 0 {
-			condition += `AND classify_id IN (` + utils.GetOrmInReplace(len(childClassify)) + `)`
+			childClassifyIds := make([]int, 0)
 			for _, child := range childClassify {
-				pars = append(pars, child.ClassifyId)
+				childClassifyIds = append(childClassifyIds, child.ClassifyId)
 			}
+			condition += ` AND classify_id IN (` + utils.GetOrmInReplace(len(childClassifyIds)) + `)`
+			pars = append(pars, childClassifyIds)
 		} else {
 			condition += ` AND classify_id=?`
 			pars = append(pars, classifyId)
 		}
+		
 	}
 	if indexCode != "" {
 		condition += ` AND index_code=? `

+ 8 - 1
models/data_manage/base_from_kpler_classify.go

@@ -52,7 +52,7 @@ func GetBaseFromKplerClassifyByIds(classifyIds []int) (items []*BaseFromKplerCla
 		return
 	}
 	o := global.DbMap[utils.DbNameIndex]
-	sql := `SELECT * FROM base_from_kpler_classify WHERE classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) `
+	sql := `SELECT * FROM base_from_kpler_classify WHERE classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) order by level asc, sort asc, classify_id asc`
 	err = o.Raw(sql, classifyIds).Find(&items).Error
 	return
 }
@@ -239,3 +239,10 @@ func GetKplerClassifyByProductId(productIds []int) (items []*BaseFromKplerClassi
 	err = o.Raw(sql, productIds).Find(&items).Error
 	return
 }
+
+func GetBaseFromKplerClassifyByProductName(productName string) (item *BaseFromKplerClassify, err error) {
+	o := global.DbMap[utils.DbNameIndex]
+	sql := `SELECT * FROM base_from_kpler_classify WHERE product_name=?`
+	err = o.Raw(sql, productName).First(&item).Error
+	return
+}

+ 3 - 2
models/data_manage/base_from_kpler_index.go

@@ -389,14 +389,14 @@ type KplerSearchReq struct {
 // 获取区域
 func (y *BaseFromKplerZone) GetByZoneIds(zoneIds []int) (items []*BaseFromKplerZone, err error) {
 	sql := ` SELECT * FROM base_from_kpler_zone WHERE base_from_kpler_zone_id in (?) `
-	err = global.DEFAULT_DB.Raw(sql, zoneIds).Find(&items).Error
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, zoneIds).Find(&items).Error
 	return
 }
 
 // 获取分类
 func (y *BaseFromKplerClassify) GetByProductIds(productIds []int) (items []*BaseFromKplerClassify, err error) {
 	sql := ` SELECT * FROM base_from_kpler_classify WHERE product_id in (?) `
-	err = global.DEFAULT_DB.Raw(sql, productIds).Find(&items).Error
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, productIds).Find(&items).Error
 	return
 }
 
@@ -421,6 +421,7 @@ type KplerIndexItem struct {
 	IndexName string 
 	Unit string 
 	Frequency string 
+	ClassifyName string
 	IndexData []KplerIndexDataItem 
 }