Explorar o código

Merge branch 'feature/eta_2.4.6' into debug

hsun hai 2 días
pai
achega
05a5e7ca0f
Modificáronse 2 ficheiros con 75 adicións e 30 borrados
  1. 23 30
      controllers/data_manage/edb_info.go
  2. 52 0
      services/data/edb_info.go

+ 23 - 30
controllers/data_manage/edb_info.go

@@ -197,18 +197,10 @@ func (this *EdbInfoController) EdbInfoSearch() {
 					br.Msg = "请输入指标代码"
 					return
 				}
-				// 部分常量共用
-				periodArr := []string{
-					utils.WindWsdPeriodDefault, utils.WindWsdPeriodWeek, utils.WindWsdPeriodMonth,
-					utils.WindWsdPeriodQuarter, utils.ThsDsdPeriodHalfYear, utils.WindWsdPeriodYear,
-				}
-				if period != "" && !utils.InArrayByStr(periodArr, period) {
-					br.Msg = "周期类型有误"
-					return
-				}
-				daysArr := []string{utils.ThsDsDaysDefault, utils.ThsDsDaysAlldays}
-				if days != "" && !utils.InArrayByStr(daysArr, days) {
-					br.Msg = "日期类型有误"
+				// 日期序列参数校验
+				pass, tips := data.CheckWindThsDsParams(source, subSource, period, days, priceAdj)
+				if !pass {
+					br.Msg = tips
 					return
 				}
 				respItem, err := data.AddEdbDataThsDs(source, stockCode, edbCode, extraPars, days, period)
@@ -290,22 +282,10 @@ func (this *EdbInfoController) EdbInfoSearch() {
 					br.Msg = "请输入指标代码"
 					return
 				}
-				periodArr := []string{
-					utils.WindWsdPeriodDefault, utils.WindWsdPeriodWeek, utils.WindWsdPeriodMonth,
-					utils.WindWsdPeriodQuarter, utils.WindWsdPeriodYear,
-				}
-				if period != "" && !utils.InArrayByStr(periodArr, period) {
-					br.Msg = "周期类型有误"
-					return
-				}
-				daysArr := []string{utils.WindWsdDaysWeekdays, utils.WindWsdDaysDefault, utils.WindWsdDaysAlldays}
-				if days != "" && !utils.InArrayByStr(daysArr, days) {
-					br.Msg = "日期类型有误"
-					return
-				}
-				priceAdjArr := []string{utils.WindWsdRestorationFront, utils.WindWsdRestorationBack, utils.WindWsdRestorationFixed}
-				if priceAdj != "" && !utils.InArrayByStr(priceAdjArr, priceAdj) {
-					br.Msg = "复权方式有误"
+				// 日期序列参数校验
+				pass, tips := data.CheckWindThsDsParams(source, subSource, period, days, priceAdj)
+				if !pass {
+					br.Msg = tips
 					return
 				}
 				respItem, err := data.AddEdbDataWindWsd(source, stockCode, edbCode, days, period, priceAdj)
@@ -5979,6 +5959,11 @@ func (this *EdbInfoController) EdbInfoExistCheck() {
 	subSource, _ := this.GetInt("SubSource")
 	stockCode := this.GetString("StockCode")
 
+	// 日期序列额外参数
+	period := this.GetString("Period")
+	days := this.GetString("Days")
+	priceAdj := this.GetString("PriceAdj")
+
 	if source <= 0 {
 		br.Msg = "无效的数据来源"
 		return
@@ -5997,16 +5982,24 @@ func (this *EdbInfoController) EdbInfoExistCheck() {
 		br.Msg = "无效的数据库来源"
 		return
 	}
+	pass, tips := data.CheckWindThsDsParams(source, subSource, period, days, priceAdj)
+	if !pass {
+		br.Msg = tips
+		return
+	}
 
 	var indexCodeArr []string
 	edbCodeArr := strings.Split(edbCode, ",")
 	stockCodeArr := strings.Split(stockCode, ",")
 
-	var prefix string
+	// 指标编码前后缀
+	var prefix, suffix string
 	if source == utils.DATA_SOURCE_WIND {
 		prefix = utils.WindDbWsd
+		suffix = utils.GetWindWsdIndexCodeSuffix(period, days, priceAdj)
 	} else if source == utils.DATA_SOURCE_THS {
 		prefix = utils.ThsDs
+		suffix = utils.GetThsDsIndexCodeSuffix(period, days)
 	} else {
 		br.Msg = "来源错误"
 		br.ErrMsg = "来源错误"
@@ -6014,7 +6007,7 @@ func (this *EdbInfoController) EdbInfoExistCheck() {
 	}
 	for _, sv := range stockCodeArr {
 		for _, ev := range edbCodeArr {
-			indexCode := prefix + sv + ev
+			indexCode := prefix + sv + ev + suffix
 			indexCodeArr = append(indexCodeArr, indexCode)
 		}
 	}

+ 52 - 0
services/data/edb_info.go

@@ -3295,3 +3295,55 @@ func ResetBaseFromIndexEdbExist(source int, indexCode string) (err error) {
 	}
 	return
 }
+
+// CheckWindThsDsParams wind同花顺日期序列参数校验
+func CheckWindThsDsParams(source, subSource int, period, days, priceAdj string) (ok bool, tips string) {
+	if source != utils.DATA_SOURCE_WIND && source != utils.DATA_SOURCE_THS {
+		ok = true
+		return
+	}
+	if subSource != utils.DATA_SUB_SOURCE_DATE {
+		ok = true
+		return
+	}
+
+	if source == utils.DATA_SOURCE_WIND {
+		periodArr := []string{
+			utils.WindWsdPeriodDefault, utils.WindWsdPeriodWeek, utils.WindWsdPeriodMonth,
+			utils.WindWsdPeriodQuarter, utils.WindWsdPeriodYear,
+		}
+		if period != "" && !utils.InArrayByStr(periodArr, period) {
+			tips = "周期类型有误"
+			return
+		}
+		daysArr := []string{utils.WindWsdDaysWeekdays, utils.WindWsdDaysDefault, utils.WindWsdDaysAlldays}
+		if days != "" && !utils.InArrayByStr(daysArr, days) {
+			tips = "日期类型有误"
+			return
+		}
+		priceAdjArr := []string{utils.WindWsdRestorationFront, utils.WindWsdRestorationBack, utils.WindWsdRestorationFixed}
+		if priceAdj != "" && !utils.InArrayByStr(priceAdjArr, priceAdj) {
+			tips = "复权方式有误"
+			return
+		}
+	}
+
+	if source == utils.DATA_SOURCE_THS {
+		periodArr := []string{
+			utils.WindWsdPeriodDefault, utils.WindWsdPeriodWeek, utils.WindWsdPeriodMonth,
+			utils.WindWsdPeriodQuarter, utils.ThsDsdPeriodHalfYear, utils.WindWsdPeriodYear,
+		}
+		if period != "" && !utils.InArrayByStr(periodArr, period) {
+			tips = "周期类型有误"
+			return
+		}
+		daysArr := []string{utils.ThsDsDaysDefault, utils.ThsDsDaysAlldays}
+		if days != "" && !utils.InArrayByStr(daysArr, days) {
+			tips = "日期类型有误"
+			return
+		}
+	}
+
+	ok = true
+	return
+}