Преглед изворни кода

Merge branch 'feature/eta2.6.5_kpler' into debug

xyxie пре 5 дана
родитељ
комит
5e0b4500a8
3 измењених фајлова са 65 додато и 22 уклоњено
  1. 17 3
      controllers/base_from_kpler.go
  2. 7 0
      models/base_from_kpler.go
  3. 41 19
      services/base_from_kpler.go

+ 17 - 3
controllers/base_from_kpler.go

@@ -57,7 +57,7 @@ func (this *KplerController) GetData() {
 	}
 	
 	// 根据配置获取指标数据
-	indexes, _, e := services.GetKplerDataByApi(params, "")
+	indexes, _, _, e := services.GetKplerDataByApi(params, "")
 	if e != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = fmt.Sprintf("获取开普勒高频指标失败, %v", e)
@@ -107,15 +107,29 @@ func (this *KplerController) IndexAdd() {
 	}
 	
 	// 根据配置获取指标数据
-	indexes, terminalInfo, e := services.GetKplerDataByApi(params, "")
+	indexes, apiQueryUrl, terminalInfo, e := services.GetKplerDataByApi(params, "")
 	if e != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = fmt.Sprintf("获取开普勒高频指标失败, %v", e)
 		return
 	}
+
+	classifyId := 0
+	if params.ProductNames != "" {
+		productNames := strings.Split(params.ProductNames, ",")
+	    // 获取第一个产品的分类ID
+		classifyObj := new(models.BaseFromKplerClassify)
+		classifyObj, err := classifyObj.GetByProductName(productNames[0])
+		if err != nil {
+			br.Msg = "获取分类ID失败"
+			br.ErrMsg = fmt.Sprintf("获取分类ID失败, %v", err)
+			return
+		}
+		classifyId = classifyObj.ClassifyId
+	}
 	
 	// 批量新增指标
-	err := services.AddKplerIndexByApi(indexes, &params, 0, terminalInfo.TerminalCode)
+	err := services.AddKplerIndexByApi(indexes, &params, apiQueryUrl, classifyId, terminalInfo.TerminalCode)
 	if err != nil {
 		br.Msg = "新增失败"
 		br.ErrMsg = fmt.Sprintf("新增失败, %v", err)

+ 7 - 0
models/base_from_kpler.go

@@ -466,6 +466,7 @@ type KplerFlowDataLibResp struct {
 
 type KplerFlowData struct {
 	SplitItem string 
+	ApiQueryUrl string
 	IndexData []KplerIndexDataItem 
 }
 
@@ -520,6 +521,12 @@ func (y *BaseFromKplerClassify) GetByProductIds(productIds []int) (items []*Base
 	return
 }
 
+// 获取分类
+func (y *BaseFromKplerClassify) GetByProductName(productName string) (item *BaseFromKplerClassify, err error) {
+	sql := ` SELECT * FROM base_from_kpler_classify WHERE product_name=? `
+	err = global.DEFAULT_DB.Raw(sql, productName).First(&item).Error
+	return
+}
 
 // 获取区域
 // BaseFromKplerZone Kpler区域表

+ 41 - 19
services/base_from_kpler.go

@@ -15,7 +15,7 @@ import (
 )
 
 // GetKplerDataByApi 获取开普勒数据
-func GetKplerDataByApi(params models.KplerSearchEdbReq, terminalCode string) (indexes []*models.KplerIndexItem, terminalInfo *models.EdbTerminal, err error) {
+func GetKplerDataByApi(params models.KplerSearchEdbReq, terminalCode string) (indexes []*models.KplerIndexItem, apiQueryUrl string, terminalInfo *models.EdbTerminal, err error) {
 	terminal, e := GetApiTerminal(utils.DATA_SOURCE_KPLER, terminalCode)
 	if e != nil {
 		err = fmt.Errorf("获取开普勒终端配置失败, %v", e)
@@ -29,7 +29,7 @@ func GetKplerDataByApi(params models.KplerSearchEdbReq, terminalCode string) (in
     
 	// 走API
 	if terminal.IsApi == 1 {
-		indexes, err = getKplerDataByApi(params, terminal.ServerUrl)
+		indexes, apiQueryUrl, err = getKplerDataByApi(params, terminal.ServerUrl)
 		if err != nil {
 			err = fmt.Errorf("获取开普勒指标数据失败, %v", err)
 			return
@@ -41,7 +41,7 @@ func GetKplerDataByApi(params models.KplerSearchEdbReq, terminalCode string) (in
 }
 
 // getEdbDataFromThsHfHttp API-获取高频指标数据
-func getKplerDataByApi(params models.KplerSearchEdbReq, serverUrl string) (list []*models.KplerIndexItem, err error) {
+func getKplerDataByApi(params models.KplerSearchEdbReq, serverUrl string) (list []*models.KplerIndexItem, apiQueryUrl string, err error) {
 	defer func() {
 		if err != nil {
 			tips := fmt.Sprintf("开普勒指标API-getKplerDataByApi err: %v", err)
@@ -127,10 +127,10 @@ func getKplerDataByApi(params models.KplerSearchEdbReq, serverUrl string) (list
 			list = append(list, v)
 		}
 	}
-	return list, nil
+	return 
 }
 
-func AddKplerIndexByApi(indexList []*models.KplerIndexItem, req *models.KplerSearchEdbReq, classifyId int, terminalCode string) (err error) {
+func AddKplerIndexByApi(indexList []*models.KplerIndexItem, req *models.KplerSearchEdbReq, ApiQueryUrl string, classifyId int, terminalCode string) (err error) {
 	errMsgList := make([]string, 0)
 	defer func() {
 		if len(errMsgList) > 0 {
@@ -168,7 +168,6 @@ func AddKplerIndexByApi(indexList []*models.KplerIndexItem, req *models.KplerSea
 			indexObj.IndexName = indexInfo.IndexName
 			indexObj.Frequency = indexInfo.Frequency
 			indexObj.ClassifyId = int(classifyId)
-			indexObj.ProductNames = req.ProductNames
 			indexObj.FromZoneName = req.FromZoneNames
 			indexObj.ToZoneName = req.ToZoneNames
 			indexObj.FlowDirection = req.FlowDirection
@@ -176,6 +175,7 @@ func AddKplerIndexByApi(indexList []*models.KplerIndexItem, req *models.KplerSea
 			indexObj.Split = req.Split
 			indexObj.Unit = req.Unit
 			indexObj.Sort = maxSort
+			indexObj.ApiQueryUrl = ApiQueryUrl
 			indexObj.ModifyTime = time.Now()
 			indexObj.CreateTime = time.Now()
 			indexObj.TerminalCode = terminalCode
@@ -208,6 +208,7 @@ func AddKplerIndexByApi(indexList []*models.KplerIndexItem, req *models.KplerSea
 			indexObj.Granularity = req.Granularity
 			indexObj.Split = req.Split
 			indexObj.Unit = req.Unit
+			indexObj.ApiQueryUrl = ApiQueryUrl
 			indexObj.ModifyTime = time.Now()
 	
 			//修改数据
@@ -838,21 +839,42 @@ func InitKplerZone() (err error) {
 	}
 
 	// 批量插入区域表中
+	zoneMap := make(map[int]*models.BaseFromKplerZone)
 	for _, v := range libResp.Data {
 		zoneObj := new(models.BaseFromKplerZone)
-		zoneObj.ZoneName = v.AncestorName
-		zoneObj.ZoneType = v.AncestorType
-		zoneObj.AncestorId, _ = strconv.Atoi(v.AncestorId)
-		zoneObj.AncestorType = v.AncestorType
-		zoneObj.AncestorName = v.AncestorName
-		zoneObj.DescendantId, _ = strconv.Atoi(v.DescendantId)
-		zoneObj.DescendantName = v.DescendantName
-		zoneObj.ModifyTime = time.Now()
-		zoneObj.CreateTime = time.Now()
-		_, err = zoneObj.Add()
-		if err != nil {
-			fmt.Println("新增开普勒区域库失败", err)
-			utils.FileLog.Info("新增开普勒区域库失败", err)
+		descendantId, _ := strconv.Atoi(v.DescendantId)
+		ancestorId, _ := strconv.Atoi(v.AncestorId)
+		if _, ok := zoneMap[descendantId]; !ok {
+			zoneObj.ZoneName = v.DescendantName
+			//zoneObj.ZoneType = v.DescendantType
+			zoneObj.AncestorId = ancestorId
+			zoneObj.AncestorType = v.AncestorType
+			zoneObj.AncestorName = v.AncestorName
+		    zoneObj.DescendantId = descendantId
+		    zoneObj.DescendantName = v.DescendantName
+		    zoneObj.ModifyTime = time.Now()
+		    zoneObj.CreateTime = time.Now()
+		    _, err = zoneObj.Add()
+		    if err != nil {
+				fmt.Println("新增开普勒区域库失败", err)
+				utils.FileLog.Info("新增开普勒区域库失败", err)
+			}
+			zoneMap[descendantId] = zoneObj
+			if _, ok := zoneMap[ancestorId]; !ok {
+				zoneObj := new(models.BaseFromKplerZone)
+				zoneObj.ZoneName = v.AncestorName
+				zoneObj.ZoneType = v.AncestorType
+				zoneObj.DescendantId = ancestorId
+				zoneObj.DescendantName = v.AncestorName
+				zoneObj.ModifyTime = time.Now()
+				zoneObj.CreateTime = time.Now()
+				_, err = zoneObj.Add()
+				if err != nil {
+					fmt.Println("新增开普勒区域库失败", err)
+					utils.FileLog.Info("新增开普勒区域库失败", err)
+				}
+				zoneMap[ancestorId] = zoneObj
+			}
 		}
 	}
 	return