Преглед на файлове

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

xyxie преди 6 часа
родител
ревизия
91dc387965
променени са 4 файла, в които са добавени 225 реда и са изтрити 15 реда
  1. 196 12
      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
  4. 18 0
      routers/commentsRouter.go

+ 196 - 12
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=? `
@@ -1487,4 +1531,144 @@ func (this *BaseFromKplerController) ExportKplerList() {
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "success"
-} 
+} 
+
+// GetFrequency
+// @Title kpler数据频度
+// @Description kpler数据频度接口
+// @Param   ClassifyId   query   string  true       "分类Id"
+// @Success 200 {object} data_manage.LzFrequency
+// @router /kpler/frequency [get]
+func (this *BaseFromKplerController) GetFrequency() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	classifyId, _ := this.GetInt("ClassifyId")
+	if classifyId < 0 {
+		br.Msg = "请选择分类"
+		br.ErrMsg = "请选择分类"
+		return
+	}
+
+	frequencyList, err := data_manage.GetKplerFrequencyByClassifyId(classifyId)
+	if err != nil {
+		br.Msg = "获取频度失败"
+		br.ErrMsg = "获取频度失败,Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = frequencyList
+}
+
+// BatchAddEdbCheck
+// @Title 新增校验
+// @Description 新增校验
+// @Param	request	body data_manage.BatchManualEdbReq true "type json string"
+// @Success 200 string "操作成功"
+// @router /kpler/batch/add/check [post]
+func (this *BaseFromKplerController) BatchAddEdbCheck() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	// 最大批量添加的数量
+	codeMaxT := 31
+
+	var req data_manage.BatchCheckKplerEdbReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数错误"
+		br.ErrMsg = "参数错误,Err:" + err.Error()
+		return
+	}
+	req.Keyword = strings.TrimSpace(req.Keyword)
+	classifyIdStr := req.ClassifyIds
+
+	var list = make([]*data_manage.BaseFromKplerIndexList, 0)
+	var condition string
+	var pars []interface{}
+
+	if req.ListAll {
+		classifyIds := strings.Split(classifyIdStr, ",")
+		if len(classifyIds) > 0 && classifyIds[0] != `` {
+			condition += " AND classify_id IN (" + utils.GetOrmInReplace(len(classifyIds)) + " ) "
+			pars = append(pars, classifyIds)
+		}
+		keyword := req.Keyword
+		if keyword != `` {
+			condition += " AND (index_name like ? OR index_code like ?) "
+			pars = utils.GetLikeKeywordPars(pars, keyword, 2)
+		}
+		frequencies := req.Frequencies
+		if frequencies != "" {
+			frequencyList := strings.Split(frequencies, ",")
+			condition += " AND frequency IN (" + utils.GetOrmInReplace(len(frequencyList)) + " ) "
+			pars = append(pars, frequencyList)
+		}
+		codes := req.TradeCodeList
+		codeList := make([]string, 0)
+		if codes != "" {
+			codeList = strings.Split(codes, ",")
+		}
+		if len(codeList) > 0 {
+			condition += ` AND index_code not in (` + utils.GetOrmInReplace(len(codeList)) + `) `
+			pars = append(pars, codeList)
+		}
+	} else {
+		codes := req.TradeCodeList
+		codeList := make([]string, 0)
+		if codes != "" {
+			codeList = strings.Split(codes, ",")
+		}
+		if len(codeList) <= 0 {
+			br.Msg = "请选择指标"
+			br.ErrMsg = "请选择指标"
+			return
+		}
+		// 指标
+		condition += ` AND index_code in (` + utils.GetOrmInReplace(len(codeList)) + `) `
+		pars = append(pars, codeList)
+
+	}
+	condition += ` AND index_code not in (SELECT edb_code FROM edb_info WHERE source=?) `
+	pars = append(pars, utils.DATA_SOURCE_USDA_FAS)
+
+	list, err = data_manage.GetKplerIndexPage(condition, pars, 0, codeMaxT)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	if len(list) >= codeMaxT {
+		br.Msg = "批量添加指标数量不得超过30个"
+		return
+	}
+
+	br.Data = list
+	br.Msg = "校验成功"
+	br.Ret = 200
+	br.Success = true
+}

+ 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 
 }
 

+ 18 - 0
routers/commentsRouter.go

@@ -2914,6 +2914,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"],
+        beego.ControllerComments{
+            Method: "BatchAddEdbCheck",
+            Router: `/kpler/batch/add/check`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"],
         beego.ControllerComments{
             Method: "KplerBatchAdd",
@@ -2986,6 +2995,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"],
+        beego.ControllerComments{
+            Method: "GetFrequency",
+            Router: `/kpler/frequency`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"],
         beego.ControllerComments{
             Method: "IndexAdd",