|
@@ -11,6 +11,7 @@ import (
|
|
|
"eta/eta_api/models/system"
|
|
|
"eta/eta_api/services/alarm_msg"
|
|
|
"eta/eta_api/services/data"
|
|
|
+ "eta/eta_api/services/data_stat"
|
|
|
"eta/eta_api/services/elastic"
|
|
|
etaTrialService "eta/eta_api/services/eta_trial"
|
|
|
"eta/eta_api/utils"
|
|
@@ -31,7 +32,9 @@ type EdbInfoController struct {
|
|
|
// @Title 新增指标-查询指标信息接口
|
|
|
// @Description 新增指标-查询指标信息接口
|
|
|
// @Param Source query int true "来源:1:同花顺,2:wind,3:彭博"
|
|
|
-// @Param EdbCode query string false "指标编码"
|
|
|
+// @Param SubSource query int true "子数据来源:0:经济数据库,1:日期序列"
|
|
|
+// @Param EdbCode query string false "指标编码/指标代码"
|
|
|
+// @Param StockCode query string false "证券代码"
|
|
|
// @Success 200 {object} data_manage.EdbInfoSearchResp
|
|
|
// @router /edb_info/search [get]
|
|
|
func (this *EdbInfoController) EdbInfoSearch() {
|
|
@@ -45,11 +48,14 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
edbCode = strings.Trim(edbCode, "\t")
|
|
|
edbCode = strings.Trim(edbCode, " ")
|
|
|
edbCode = strings.Replace(edbCode, "\t", "", -1)
|
|
|
+ subSource, _ := this.GetInt("SubSource")
|
|
|
+ stockCode := this.GetString("StockCode")
|
|
|
|
|
|
if source <= 0 {
|
|
|
br.Msg = "无效的数据来源"
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
if edbCode == "" {
|
|
|
br.Msg = "请输入指标ID"
|
|
|
return
|
|
@@ -155,7 +161,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
|
|
|
searchItem := new(data_manage.EdbInfoSearch)
|
|
|
if source == utils.DATA_SOURCE_THS {
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_THS, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_THS, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取Ths已存在信息失败,Err:" + err.Error()
|
|
@@ -197,34 +203,63 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
isAdd = true
|
|
|
}
|
|
|
} else if source == utils.DATA_SOURCE_WIND {
|
|
|
- fmt.Println("wind data exist")
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_WIND, utils.EDB_DATA_LIMIT)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取Wind已存在信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- fmt.Println("wind dataItems:", len(dataItems))
|
|
|
- if len(dataItems) > 0 {
|
|
|
- searchItem.EdbCode = edbCode
|
|
|
- minDate, maxDate, err := data_manage.GetEdbDataWindMaxOrMinDate(edbCode)
|
|
|
- if err != nil {
|
|
|
+ fmt.Println("subSource:", subSource)
|
|
|
+ if subSource == utils.DATA_SUB_SOURCE_EDB {
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_WIND, subSource, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取wind日期信息失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "获取Wind已存在信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- searchItem.DataList = dataItems
|
|
|
- searchItem.StartDate = minDate
|
|
|
- searchItem.EndDate = maxDate
|
|
|
- } else {
|
|
|
- //endDate := dateNow.Format(utils.FormatDate)
|
|
|
- //searchItem, err = data.GetEdbDataByWind(edbCode, startDate, endDate)
|
|
|
- //if err != nil {
|
|
|
- // br.Msg = "获取失败"
|
|
|
- // br.ErrMsg = "wind 获取失败,Err:" + err.Error()
|
|
|
- // return
|
|
|
- //}
|
|
|
- respItem, err := data.AddEdbData(source, edbCode)
|
|
|
+ fmt.Println("wind dataItems:", len(dataItems))
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataWindMaxOrMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取wind日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ } else {
|
|
|
+ //endDate := dateNow.Format(utils.FormatDate)
|
|
|
+ //searchItem, err = data.GetEdbDataByWind(edbCode, startDate, endDate)
|
|
|
+ //if err != nil {
|
|
|
+ // br.Msg = "获取失败"
|
|
|
+ // br.ErrMsg = "wind 获取失败,Err:" + err.Error()
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ respItem, err := data.AddEdbData(source, edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if respItem.Ret != 200 {
|
|
|
+ if respItem.Ret == 421 {
|
|
|
+ br.Msg = "该渠道已超过添加上限"
|
|
|
+ } else if respItem.Ret == 4052 {
|
|
|
+ br.Msg = "该指标已下架"
|
|
|
+ } else {
|
|
|
+ br.Msg = "未搜索到该指标"
|
|
|
+ }
|
|
|
+ br.ErrMsg = respItem.ErrMsg + ";EdbCode:" + edbCode
|
|
|
+ return
|
|
|
+ }
|
|
|
+ isAdd = true
|
|
|
+ }
|
|
|
+ } else if subSource == utils.DATA_SUB_SOURCE_DATE {
|
|
|
+ if stockCode == "" {
|
|
|
+ br.Msg = "请输入证券代码"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if edbCode == "" {
|
|
|
+ br.Msg = "请输入指标代码"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ respItem, err := data.AddEdbDataWindWsd(source, stockCode, edbCode)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
@@ -242,10 +277,13 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
return
|
|
|
}
|
|
|
isAdd = true
|
|
|
+ } else {
|
|
|
+ br.Msg = "无效的渠道来源"
|
|
|
+ return
|
|
|
}
|
|
|
} else if source == utils.DATA_SOURCE_PB || source == utils.DATA_SOURCE_PB_FINANCE {
|
|
|
fmt.Println("pb data exist")
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取Pb已存在信息失败,Err:" + err.Error()
|
|
@@ -286,7 +324,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
isAdd = true
|
|
|
}
|
|
|
} else if source == utils.DATA_SOURCE_MANUAL { //手工数据指标
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_MANUAL, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_MANUAL, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取Ths已存在信息失败,Err:" + err.Error()
|
|
@@ -340,7 +378,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
}
|
|
|
|
|
|
} else if source == utils.DATA_SOURCE_LZ {
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_LZ, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_LZ, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取隆众已存在信息失败,Err:" + err.Error()
|
|
@@ -409,7 +447,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
searchItem.EdbName = lzInfo.SampleName + lzInfo.BreedName + lzInfo.QuotaName
|
|
|
}
|
|
|
} else if source == utils.DATA_SOURCE_YS { //有色网
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_YS, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_YS, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取Ys已存在信息失败,Err:" + err.Error()
|
|
@@ -469,7 +507,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
}
|
|
|
|
|
|
} else if source == utils.DATA_SOURCE_GL { //钢联
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取钢联已存在信息失败,Err:" + err.Error()
|
|
@@ -533,7 +571,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
br.ErrMsg = "指标code异常"
|
|
|
return
|
|
|
}
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取郑商所已存在信息失败,Err:" + err.Error()
|
|
@@ -611,7 +649,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
br.ErrMsg = "指标code异常"
|
|
|
return
|
|
|
}
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取大商所已存在信息失败,Err:" + err.Error()
|
|
@@ -690,7 +728,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
br.ErrMsg = "指标code异常"
|
|
|
return
|
|
|
}
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取上期所已存在信息失败,Err:" + err.Error()
|
|
@@ -769,7 +807,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
br.ErrMsg = "指标code异常"
|
|
|
return
|
|
|
}
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取中金所已存在信息失败,Err:" + err.Error()
|
|
@@ -848,7 +886,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
br.ErrMsg = "指标code异常"
|
|
|
return
|
|
|
}
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取上期能源已存在信息失败,Err:" + err.Error()
|
|
@@ -942,7 +980,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
br.ErrMsg = "指标code异常"
|
|
|
return
|
|
|
}
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取欧洲天然气已存在信息失败,Err:" + err.Error()
|
|
@@ -1050,7 +1088,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
br.ErrMsg = "暂不支持编码中含有=的指标"
|
|
|
return
|
|
|
}
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_LT, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_LT, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取 lt 已存在信息失败,Err:" + err.Error()
|
|
@@ -1059,7 +1097,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
fmt.Println("lt dataItems:", len(dataItems))
|
|
|
if len(dataItems) > 0 {
|
|
|
searchItem.EdbCode = edbCode
|
|
|
- edbInfoMaxAndMinInfo, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
|
|
|
+ edbInfoMaxAndMinInfo, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取lt日期信息失败,Err:" + err.Error()
|
|
@@ -1106,7 +1144,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
br.ErrMsg = "指标code异常"
|
|
|
return
|
|
|
}
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取煤炭网已存在信息失败,Err:" + err.Error()
|
|
@@ -1167,7 +1205,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
searchItem.EdbName = coalInfo.IndexName
|
|
|
}
|
|
|
} else if source == utils.DATA_SOURCE_GOOGLE_TRAVEL { //谷歌出行数据
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取煤炭网已存在信息失败,Err:" + err.Error()
|
|
@@ -1176,7 +1214,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
|
|
|
if len(dataItems) > 0 {
|
|
|
searchItem.EdbCode = edbCode
|
|
|
- item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
|
|
|
+ item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取煤炭网日期信息失败,Err:" + err.Error()
|
|
@@ -1202,7 +1240,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
isAdd = true
|
|
|
}
|
|
|
} else if source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL { //钢联化工
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取钢联已存在信息失败,Err:" + err.Error()
|
|
@@ -1254,7 +1292,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
searchItem.EdbName = glInfo.IndexName
|
|
|
}
|
|
|
} else if source == utils.DATA_SOURCE_EIA_STEO { //eia steo报告
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取钢联已存在信息失败,Err:" + err.Error()
|
|
@@ -1263,7 +1301,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
|
|
|
if len(dataItems) > 0 {
|
|
|
searchItem.EdbCode = edbCode
|
|
|
- item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
|
|
|
+ item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取eia steo日期信息失败,Err:" + err.Error()
|
|
@@ -1299,7 +1337,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
searchItem.EdbName = eiasteoInfo.IndexName
|
|
|
}
|
|
|
} else if source == utils.DATA_SOURCE_COM_TRADE { // un数据源
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取联合国商品贸易数据已存在信息失败,Err:" + err.Error()
|
|
@@ -1308,7 +1346,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
|
|
|
if len(dataItems) > 0 {
|
|
|
searchItem.EdbCode = edbCode
|
|
|
- item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
|
|
|
+ item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取联合国商品贸易数据日期信息失败,Err:" + err.Error()
|
|
@@ -1353,7 +1391,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
searchItem.EdbName = eiasteoInfo.Name
|
|
|
}
|
|
|
} else if source == utils.DATA_SOURCE_SCI { //卓创数据(红桃三)
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取SCI已存在信息失败,Err:" + err.Error()
|
|
@@ -1413,7 +1451,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
}
|
|
|
|
|
|
} else if source == utils.DATA_SOURCE_BAIINFO { //百川盈孚
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取BAIINFO已存在信息失败,Err:" + err.Error()
|
|
@@ -1473,7 +1511,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
}
|
|
|
|
|
|
} else if source == utils.DATA_SOURCE_NATIONAL_STATISTICS { // 国家统计局
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取国家统计局已存在信息失败,Err:" + err.Error()
|
|
@@ -1482,7 +1520,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
|
|
|
if len(dataItems) > 0 {
|
|
|
searchItem.EdbCode = edbCode
|
|
|
- item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
|
|
|
+ item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取国家统计局日期信息失败,Err:" + err.Error()
|
|
@@ -1518,7 +1556,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
searchItem.EdbName = fmt.Sprintf("%s%s", nationalInfo.Reg, nationalInfo.IndexName)
|
|
|
}
|
|
|
} else if source == utils.DATA_SOURCE_FUBAO { //数宝
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_FUBAO, utils.EDB_DATA_LIMIT)
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_FUBAO, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取Fubao已存在信息失败,Err:" + err.Error()
|
|
@@ -1561,7 +1599,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
}
|
|
|
|
|
|
// 获取指标数据
|
|
|
- dataList, e := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
+ dataList, e := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
if e != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取指标数据失败, Err: " + e.Error()
|
|
@@ -1571,7 +1609,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
searchItem.EdbCode = edbCode
|
|
|
searchItem.DataList = dataList
|
|
|
// 获取最大最小值
|
|
|
- edbInfoMaxAndMinInfo, e := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
|
|
|
+ edbInfoMaxAndMinInfo, e := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
|
|
|
if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取数据失败, GetEdbInfoMaxAndMinInfo Err:" + e.Error()
|
|
@@ -1625,31 +1663,115 @@ func (this *EdbInfoController) EdbInfoSearch() {
|
|
|
}
|
|
|
}
|
|
|
if isAdd {
|
|
|
- dataList, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取数据失败,GetEdbDataAllByEdbCode Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- searchItem.DataList = dataList
|
|
|
+ if subSource == utils.DATA_SUB_SOURCE_DATE {
|
|
|
+ //wsdData := windWsdRespItem.Data
|
|
|
+ //var buf bytes.Buffer
|
|
|
+ //// 创建一个encoder并指定目标为buf
|
|
|
+ //enc := gob.NewEncoder(&buf)
|
|
|
+ //
|
|
|
+ //// 将data编码到buf中
|
|
|
+ //err = enc.Encode(wsdData)
|
|
|
+ //if err != nil {
|
|
|
+ // br.Msg = "获取失败"
|
|
|
+ // br.ErrMsg = "获取数据失败,wind wsd encoding GOB Err:" + err.Error()
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ //wsdDataMap := make(map[string]map[string]interface{})
|
|
|
+ //err = json.Unmarshal(buf.Bytes(), &wsdDataMap)
|
|
|
+ //if err != nil {
|
|
|
+ // br.Msg = "获取失败"
|
|
|
+ // br.ErrMsg = "获取数据失败,wind wsd json.Unmarshal Err:" + err.Error()
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ //stockList := make([]*data_manage.StockInfo, 0)
|
|
|
+ //
|
|
|
+ //dataList := make([]*data_manage.EdbInfoSearchData, 0)
|
|
|
+ //for wk, wv := range wsdDataMap {
|
|
|
+ // for vk, vv := range wv {
|
|
|
+ // wkInt, err := strconv.ParseInt(wk, 10, 64)
|
|
|
+ // if err != nil {
|
|
|
+ // br.Msg = "获取失败"
|
|
|
+ // br.ErrMsg = "获取数据失败,转换日期类型失败 Err:" + err.Error()
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // vk = strings.ToLower(vk)
|
|
|
+ // wkInt = wkInt / 1000
|
|
|
+ // t := time.Unix(wkInt, 0)
|
|
|
+ // dateTime := t.Format(utils.FormatDate)
|
|
|
+ // //saveVal := utils.SubFloatToString(val, 20)
|
|
|
+ // if vv == nil {
|
|
|
+ // continue
|
|
|
+ // }
|
|
|
+ // var saveVal string
|
|
|
+ // switch vt := vv.(type) {
|
|
|
+ // case int:
|
|
|
+ // saveVal = strconv.Itoa(vt)
|
|
|
+ // case float64:
|
|
|
+ // saveVal = utils.SubFloatToFloatStr(vt, 20)
|
|
|
+ // case string:
|
|
|
+ // saveVal = vt
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // dataItem := new(data_manage.EdbInfoSearchData)
|
|
|
+ // dataItem.Value = saveVal
|
|
|
+ // dataItem.DataTime = dateTime
|
|
|
+ // dataList = append(dataList, dataItem)
|
|
|
+ // if len(dataList) >= 10 {
|
|
|
+ // break
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //searchItem.StockList = stockList
|
|
|
|
|
|
- edbInfoMaxAndMinInfo, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取数据失败,GetEdbInfoMaxAndMinInfo Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- searchItem.EdbCode = edbCode
|
|
|
- searchItem.DataList = dataList
|
|
|
- if edbInfoMaxAndMinInfo != nil {
|
|
|
- searchItem.StartDate = edbInfoMaxAndMinInfo.MinDate
|
|
|
- searchItem.EndDate = edbInfoMaxAndMinInfo.MaxDate
|
|
|
- }
|
|
|
+ stockList := make([]*data_manage.StockInfo, 0)
|
|
|
+ edbCodeArr := strings.Split(edbCode, ",")
|
|
|
+ for _, v := range edbCodeArr {
|
|
|
+ indexCode := utils.WindDbWsd + stockCode + v
|
|
|
|
|
|
- //edb指标信息
|
|
|
- edbInfoItem, err := data_manage.GetEdbInfoByEdbCode(source, edbCode)
|
|
|
- if edbInfoItem != nil {
|
|
|
- searchItem.EdbName = edbInfoItem.EdbName
|
|
|
+ dataList, err := data_manage.GetEdbDataAllByEdbCodeAndSubSource(indexCode, source, utils.DATA_SUB_SOURCE_DATE, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取数据失败,GetEdbDataAllByEdbCode Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ stockInfo := new(data_manage.StockInfo)
|
|
|
+ stockInfo.StockCode = stockCode
|
|
|
+ stockInfo.EdbCode = v
|
|
|
+ stockInfo.DataList = dataList
|
|
|
+ stockList = append(stockList, stockInfo)
|
|
|
+ }
|
|
|
+ searchItem.StockList = stockList
|
|
|
+ } else {
|
|
|
+ dataList, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取数据失败,GetEdbDataAllByEdbCode Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataList
|
|
|
+
|
|
|
+ edbInfoMaxAndMinInfo, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取数据失败,GetEdbInfoMaxAndMinInfo Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ searchItem.DataList = dataList
|
|
|
+ if edbInfoMaxAndMinInfo != nil {
|
|
|
+ searchItem.StartDate = edbInfoMaxAndMinInfo.MinDate
|
|
|
+ searchItem.EndDate = edbInfoMaxAndMinInfo.MaxDate
|
|
|
+ }
|
|
|
+
|
|
|
+ //edb指标信息
|
|
|
+ edbInfoItem, err := data_manage.GetEdbInfoByEdbCode(source, edbCode)
|
|
|
+ if edbInfoItem != nil {
|
|
|
+ searchItem.EdbName = edbInfoItem.EdbName
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
resp.Status = 2
|
|
@@ -1778,20 +1900,37 @@ func (this *EdbInfoController) EdbInfoList() {
|
|
|
dataCondition += ` AND edb_info_id=? `
|
|
|
dataPars = append(dataPars, edbInfoItem.EdbInfoId)
|
|
|
|
|
|
- dataCount, err := data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取指标信息失败"
|
|
|
- br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- page = paging.GetPaging(currentIndex, pageSize, dataCount)
|
|
|
- dataList, err := data_manage.GetEdbDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, pageSize, startSize)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取指标信息失败"
|
|
|
- br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
+ if edbInfoItem.SubSource == utils.DATA_SUB_SOURCE_DATE {
|
|
|
+ dataCount, err := data_manage.GetEdbWsdDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取指标信息失败"
|
|
|
+ br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ page = paging.GetPaging(currentIndex, pageSize, dataCount)
|
|
|
+ dataList, err := data_manage.GetEdbWsdDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, pageSize, startSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取指标信息失败"
|
|
|
+ br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbInfoItem.DataList = dataList
|
|
|
+ } else {
|
|
|
+ dataCount, err := data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source, edbInfoItem.SubSource)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取指标信息失败"
|
|
|
+ br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ page = paging.GetPaging(currentIndex, pageSize, dataCount)
|
|
|
+ dataList, err := data_manage.GetEdbDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, edbInfoItem.SubSource, pageSize, startSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取指标信息失败"
|
|
|
+ br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbInfoItem.DataList = dataList
|
|
|
}
|
|
|
- edbInfoItem.DataList = dataList
|
|
|
|
|
|
// 获取指标插入配置
|
|
|
{
|
|
@@ -1930,7 +2069,7 @@ func (this *EdbInfoController) EdbInfoAdd() {
|
|
|
}
|
|
|
|
|
|
// 指标入库
|
|
|
- edbInfo, err, errMsg, isSendEmail := data.EdbInfoAdd(source, req.ClassifyId, req.EdbCode, req.EdbName, req.Frequency, req.Unit, req.StartDate, req.EndDate, sysUser.AdminId, sysUser.RealName)
|
|
|
+ edbInfo, err, errMsg, isSendEmail := data.EdbInfoAdd(source, utils.DATA_SUB_SOURCE_EDB, req.ClassifyId, req.EdbCode, req.EdbName, req.Frequency, req.Unit, req.StartDate, req.EndDate, sysUser.AdminId, sysUser.RealName)
|
|
|
if err != nil {
|
|
|
br.Msg = "保存失败"
|
|
|
if errMsg != `` {
|
|
@@ -2132,6 +2271,11 @@ func (this *EdbInfoController) EdbInfoEdit() {
|
|
|
// 修改关联的预测指标基础信息
|
|
|
go data.ModifyPredictEdbBaseInfoBySourceEdb(edbInfo)
|
|
|
|
|
|
+ // 添加钢联指标更新日志
|
|
|
+ if edbInfo.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
|
|
|
+ go data_stat.AddEdbInfoUpdateLog(req.EdbInfoId, 1, "", sysUser)
|
|
|
+ }
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "保存成功"
|
|
@@ -3061,9 +3205,9 @@ func (this *ChartInfoController) EdbInfoData() {
|
|
|
latestDateT, _ := time.Parse(utils.FormatDate, edbInfo.LatestDate)
|
|
|
maxYear = latestDateT.Year()
|
|
|
}
|
|
|
-
|
|
|
+ dataList := make([]*data_manage.EdbDataList, 0)
|
|
|
startDate, endDate = utils.GetDateByDateTypeV2(dateType, startDate, endDate, startYear, maxYear)
|
|
|
- dataList, err := data_manage.GetEdbDataList(edbInfo.Source, edbInfoId, startDate, endDate)
|
|
|
+ dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfoId, startDate, endDate)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
@@ -3192,7 +3336,7 @@ func (this *ChartInfoController) EdbInfoReplace() {
|
|
|
|
|
|
sysAdminId := sysUser.AdminId
|
|
|
//replaceChartTotal, replaceCalculateTotal, err := data.EdbInfoReplace(oldEdbInfo, newEdbInfo, sysAdminId, sysUser.RealName)
|
|
|
- _, _, err = data_manage.EdbInfoReplaceV2(oldEdbInfo, newEdbInfo, sysAdminId, sysUser.RealName)
|
|
|
+ _, _, err = data.EdbInfoReplace(oldEdbInfo, newEdbInfo, sysAdminId, sysUser.RealName)
|
|
|
//msgContent := ``
|
|
|
isFail := false
|
|
|
var errmsg string
|
|
@@ -3522,7 +3666,7 @@ func (this *EdbInfoController) RelationEdbList() {
|
|
|
|
|
|
dataList := make([]*data_manage.EdbDataList, 0)
|
|
|
if v.EdbInfoType == 0 {
|
|
|
- dataList, err = data_manage.GetEdbDataList(v.Source, v.EdbInfoId, "", "")
|
|
|
+ dataList, err = data_manage.GetEdbDataList(v.Source, v.SubSource, v.EdbInfoId, "", "")
|
|
|
} else {
|
|
|
_, dataList, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(v.EdbInfoId, "", "", false)
|
|
|
}
|
|
@@ -3797,7 +3941,7 @@ func (this *ChartInfoController) EdbInfoDataTb() {
|
|
|
//同比值的计算方式,是需要与去年同期对比,所以如果用户需要某个时间段的数据的话,获取基础数据时,需要往前面推(1年+兼容的日期频度(目前是35天))
|
|
|
startDate = startDateTime.AddDate(-1, 0, -35).Format(utils.FormatDate)
|
|
|
}
|
|
|
- tmpDataList, err := data_manage.GetEdbDataList(edbInfo.Source, edbInfoId, startDate, endDate)
|
|
|
+ tmpDataList, err := data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfoId, startDate, endDate)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.Msg = "获取失败,Err:" + err.Error()
|
|
@@ -4849,3 +4993,242 @@ func (this *EdbInfoController) ChartImageSet() {
|
|
|
br.Success = true
|
|
|
br.Msg = "保存成功"
|
|
|
}
|
|
|
+
|
|
|
+// EdbInfoExistCheck
|
|
|
+// @Title 新增指标-检验指标是否存在接口
|
|
|
+// @Description 新增指标-检验指标是否存在接口
|
|
|
+// @Param Source query int true "来源:1:同花顺,2:wind"
|
|
|
+// @Param SubSource query int true "子数据来源:0:经济数据库,1:日期序列"
|
|
|
+// @Param EdbCode query string false "指标编码/指标代码"
|
|
|
+// @Param StockCode query string false "证券代码"
|
|
|
+// @Success 200 {object} data_manage.EdbInfoExistCheckResp
|
|
|
+// @router /edb_info/exist/check [get]
|
|
|
+func (this *EdbInfoController) EdbInfoExistCheck() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ source, _ := this.GetInt("Source")
|
|
|
+ edbCode := this.GetString("EdbCode")
|
|
|
+ edbCode = strings.Trim(edbCode, "\t")
|
|
|
+ edbCode = strings.Trim(edbCode, " ")
|
|
|
+ edbCode = strings.Replace(edbCode, "\t", "", -1)
|
|
|
+ subSource, _ := this.GetInt("SubSource")
|
|
|
+ stockCode := this.GetString("StockCode")
|
|
|
+
|
|
|
+ if source <= 0 {
|
|
|
+ br.Msg = "无效的数据来源"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if edbCode == "" {
|
|
|
+ br.Msg = "请输入指标ID"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if source != utils.DATA_SOURCE_WIND {
|
|
|
+ br.Msg = "无效的数据来源"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if subSource != utils.DATA_SUB_SOURCE_DATE {
|
|
|
+ br.Msg = "无效的数据库来源"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var indexCodeArr []string
|
|
|
+ edbCodeArr := strings.Split(edbCode, ",")
|
|
|
+ stockCodeArr := strings.Split(stockCode, ",")
|
|
|
+
|
|
|
+ for _, sv := range stockCodeArr {
|
|
|
+ for _, ev := range edbCodeArr {
|
|
|
+ indexCode := utils.WindDbWsd + sv + ev
|
|
|
+ indexCodeArr = append(indexCodeArr, indexCode)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ indexList, err := data_manage.GetEdbInfoByEdbCodeList(source, indexCodeArr)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "校验指标是否存在失败"
|
|
|
+ br.ErrMsg = "校验指标是否存在失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var existStockCodeArr []string
|
|
|
+ var existEdbCodeArr []string
|
|
|
+ for _, indexItem := range indexList {
|
|
|
+ for _, sv := range stockCodeArr {
|
|
|
+ for _, ev := range edbCodeArr {
|
|
|
+ if strings.Contains(indexItem.EdbCode, sv) {
|
|
|
+ existStockCodeArr = append(existStockCodeArr, sv)
|
|
|
+ }
|
|
|
+ if strings.Contains(indexItem.EdbCode, ev) {
|
|
|
+ existEdbCodeArr = append(existEdbCodeArr, ev)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ resp := new(data_manage.EdbInfoExistCheckResp)
|
|
|
+ if len(indexList) > 0 {
|
|
|
+ resp.IndexExist = true
|
|
|
+ }
|
|
|
+ resp.ExistEdbCodeArr = existEdbCodeArr
|
|
|
+ resp.ExistStockCodeArr = existStockCodeArr
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// EdbInfoAdd
|
|
|
+// @Title 指标批量保存接口
|
|
|
+// @Description 指标批量保存接口
|
|
|
+// @Param request body data_manage.BatchAddEdbInfoReq true "type json string"
|
|
|
+// @Success Ret=200 保存成功
|
|
|
+// @router /edb_info/batch/add [post]
|
|
|
+func (this *EdbInfoController) EdbInfoBatchAdd() {
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ deleteCache := true
|
|
|
+ cacheKey := "CACHE_EDB_INFO_BATCH_ADD_" + strconv.Itoa(sysUser.AdminId)
|
|
|
+ defer func() {
|
|
|
+ if deleteCache {
|
|
|
+ utils.Rc.Delete(cacheKey)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
|
|
|
+ deleteCache = false
|
|
|
+ br.Msg = "系统处理中,请稍后重试!"
|
|
|
+ br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var req data_manage.BatchAddEdbInfoReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ source := utils.DATA_SOURCE_WIND
|
|
|
+ if source <= 0 {
|
|
|
+ br.Msg = "无效的数据来源"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ resp := new(data_manage.AddEdbInfoResp)
|
|
|
+
|
|
|
+ for k, v := range req.BatchList {
|
|
|
+ v.EdbName = strings.Trim(v.EdbName, " ")
|
|
|
+ v.EdbCode = strings.Trim(v.EdbCode, " ")
|
|
|
+ v.StockCode = strings.Trim(v.StockCode, " ")
|
|
|
+
|
|
|
+ if v.EdbCode == "" {
|
|
|
+ br.Msg = "指标ID不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if v.StockCode == "" {
|
|
|
+ br.Msg = "证券代码不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if v.EdbName == "" {
|
|
|
+ br.Msg = "指标名称不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if v.Frequency == "" {
|
|
|
+ br.Msg = "频率不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if v.ClassifyId <= 0 {
|
|
|
+ br.Msg = "请选择分类"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbInfoItem := new(data_manage.EdbInfo)
|
|
|
+ edbInfoItem.Source = source
|
|
|
+ switch source {
|
|
|
+ case utils.DATA_SOURCE_WIND:
|
|
|
+ edbInfoItem.SourceName = "wind"
|
|
|
+ }
|
|
|
+ edbInfoItem.SubSource = 1
|
|
|
+ edbInfoItem.SubSourceName = "日期序列"
|
|
|
+ edbInfoItem.EdbCode = utils.WindDbWsd + v.StockCode + v.EdbCode
|
|
|
+ edbInfoItem.EdbName = v.EdbName
|
|
|
+ edbInfoItem.Frequency = v.Frequency
|
|
|
+ edbInfoItem.Unit = v.Unit
|
|
|
+ edbInfoItem.ClassifyId = v.ClassifyId
|
|
|
+ edbInfoItem.SysUserId = sysUser.AdminId
|
|
|
+ edbInfoItem.SysUserRealName = sysUser.RealName
|
|
|
+ edbInfoItem.IndicatorCode = v.EdbCode
|
|
|
+ edbInfoItem.StockCode = v.StockCode
|
|
|
+
|
|
|
+ // 指标入库
|
|
|
+ edbInfo, err, errMsg, isSendEmail := data.EdbInfoWsdAdd(edbInfoItem)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ if errMsg != `` {
|
|
|
+ br.Msg = errMsg
|
|
|
+ }
|
|
|
+ br.ErrMsg = err.Error()
|
|
|
+ br.IsSendEmail = isSendEmail
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //新增操作日志
|
|
|
+ {
|
|
|
+ edbLog := new(data_manage.EdbInfoLog)
|
|
|
+ edbLog.EdbInfoId = edbInfo.EdbInfoId
|
|
|
+ edbLog.SourceName = edbInfo.SourceName
|
|
|
+ edbLog.Source = edbInfo.Source
|
|
|
+ edbLog.EdbCode = edbInfo.EdbCode
|
|
|
+ edbLog.EdbName = edbInfo.EdbName
|
|
|
+ edbLog.ClassifyId = edbInfo.ClassifyId
|
|
|
+ edbLog.SysUserId = sysUser.AdminId
|
|
|
+ edbLog.SysUserRealName = sysUser.RealName
|
|
|
+ edbLog.CreateTime = time.Now()
|
|
|
+ edbLog.Content = string(this.Ctx.Input.RequestBody)
|
|
|
+ edbLog.Status = "新增指标"
|
|
|
+ edbLog.Method = this.Ctx.Input.URI()
|
|
|
+ go data_manage.AddEdbInfoLog(edbLog)
|
|
|
+ }
|
|
|
+
|
|
|
+ if k <= 0 {
|
|
|
+ resp.EdbInfoId = edbInfo.EdbInfoId
|
|
|
+ resp.UniqueCode = edbInfo.UniqueCode
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 试用平台更新用户累计新增指标数
|
|
|
+ adminItem, e := system.GetSysAdminById(sysUser.AdminId)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "获取系统用户数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if utils.BusinessCode == utils.BusinessCodeSandbox && adminItem.DepartmentName == "ETA试用客户" {
|
|
|
+ go func() {
|
|
|
+ var r etaTrialService.EtaTrialUserReq
|
|
|
+ r.Mobile = adminItem.Mobile
|
|
|
+ _, _ = etaTrialService.UpdateUserIndexNum(r)
|
|
|
+ }()
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "保存成功"
|
|
|
+ br.Data = resp
|
|
|
+ br.IsAddLog = true
|
|
|
+}
|