|
@@ -3115,3 +3115,139 @@ func GetChartMenuTreeRecursive(list []*data_manage.ChartClassifyItems, parentId
|
|
|
}
|
|
|
return res
|
|
|
}
|
|
|
+
|
|
|
+// EdbInfoAdd 添加指标到指标库
|
|
|
+func EdbInfoWsdAdd(item *data_manage.EdbInfo) (edbInfo *data_manage.EdbInfo, err error, errMsg string, isSendEmail bool) {
|
|
|
+ isSendEmail = true
|
|
|
+ //判断指标名称是否存在
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ condition += " AND edb_name=? "
|
|
|
+ pars = append(pars, item.EdbName)
|
|
|
+
|
|
|
+ count, err := data_manage.GetEdbInfoCountByCondition(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "判断指标名称是否存在失败"
|
|
|
+ err = errors.New("判断指标名称是否存在失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if count > 0 {
|
|
|
+ errMsg = "指标名称已存在,请重新填写"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ source := item.Source
|
|
|
+
|
|
|
+ edbInfo = new(data_manage.EdbInfo)
|
|
|
+ edbInfo.Source = source
|
|
|
+ sourceNameMap := map[int]string{
|
|
|
+ utils.DATA_SOURCE_THS: "同花顺",
|
|
|
+ utils.DATA_SOURCE_WIND: "wind",
|
|
|
+ utils.DATA_SOURCE_PB: "彭博",
|
|
|
+ utils.DATA_SOURCE_PB_FINANCE: "彭博财务",
|
|
|
+ utils.DATA_SOURCE_MANUAL: "手工数据",
|
|
|
+ utils.DATA_SOURCE_LZ: "隆众",
|
|
|
+ utils.DATA_SOURCE_YS: "SMM",
|
|
|
+ utils.DATA_SOURCE_GL: "钢联",
|
|
|
+ utils.DATA_SOURCE_ZZ: "郑商所",
|
|
|
+ utils.DATA_SOURCE_DL: "大商所",
|
|
|
+ utils.DATA_SOURCE_SH: "上期所",
|
|
|
+ utils.DATA_SOURCE_CFFEX: "中金所",
|
|
|
+ utils.DATA_SOURCE_SHFE: "上期能源",
|
|
|
+ utils.DATA_SOURCE_GIE: "欧洲天然气",
|
|
|
+ utils.DATA_SOURCE_LT: "路透",
|
|
|
+ utils.DATA_SOURCE_COAL: "中国煤炭网",
|
|
|
+ utils.DATA_SOURCE_GOOGLE_TRAVEL: "our world in data",
|
|
|
+ utils.DATA_SOURCE_MYSTEEL_CHEMICAL: "钢联化工",
|
|
|
+ utils.DATA_SOURCE_EIA_STEO: "EIA STEO报告",
|
|
|
+ utils.DATA_SOURCE_COM_TRADE: "UN",
|
|
|
+ utils.DATA_SOURCE_SCI: "SCI",
|
|
|
+ utils.DATA_SOURCE_BAIINFO: "BAIINFO",
|
|
|
+ utils.DATA_SOURCE_STOCK_PLANT: "存量装置",
|
|
|
+ utils.DATA_SOURCE_NATIONAL_STATISTICS: "国家统计局",
|
|
|
+ utils.DATA_SOURCE_FUBAO: "富宝数据",
|
|
|
+ }
|
|
|
+
|
|
|
+ sourceName, ok := sourceNameMap[source]
|
|
|
+ if !ok {
|
|
|
+ edbSource := data_manage.EdbSourceIdMap[source]
|
|
|
+ if edbSource != nil {
|
|
|
+ sourceName = edbSource.SourceName
|
|
|
+ }
|
|
|
+ if sourceName == "" {
|
|
|
+ errMsg = "指标来源异常"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ edbInfo.SourceName = sourceName
|
|
|
+
|
|
|
+ edbType := 1 //基础指标
|
|
|
+ if source == utils.DATA_SOURCE_STOCK_PLANT {
|
|
|
+ edbType = 2 //计算指标
|
|
|
+ }
|
|
|
+ //从缓存中获取
|
|
|
+ serverUrl := ``
|
|
|
+ if edbInfo.Source == utils.DATA_SOURCE_WIND {
|
|
|
+ windCacheKey := utils.CACHE_WIND_URL + ":" + item.EdbCode
|
|
|
+ serverUrl, _ = utils.Rc.RedisString(windCacheKey)
|
|
|
+ if serverUrl == `` {
|
|
|
+ if len(utils.Hz_Data_WIND_Url_List) >= 1 {
|
|
|
+ serverUrl = utils.Hz_Data_WIND_Url_List[len(utils.Hz_Data_WIND_Url_List)-1] //默认是最后一个服务器地址
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取该层级下最大的排序数
|
|
|
+ maxSort, err := GetEdbClassifyMaxSort(item.ClassifyId, 0)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "获取失败"
|
|
|
+ err = errors.New("查询排序信息失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbInfo.EdbCode = item.EdbCode
|
|
|
+ edbInfo.EdbName = item.EdbName
|
|
|
+ edbInfo.EdbNameSource = item.EdbName
|
|
|
+ edbInfo.Frequency = item.Frequency
|
|
|
+ edbInfo.Unit = item.Unit
|
|
|
+ edbInfo.ClassifyId = item.ClassifyId
|
|
|
+ edbInfo.SysUserId = item.SysUserId
|
|
|
+ edbInfo.SysUserRealName = item.SysUserRealName
|
|
|
+ edbInfo.CreateTime = time.Now()
|
|
|
+ edbInfo.ModifyTime = time.Now()
|
|
|
+ edbInfo.ServerUrl = serverUrl
|
|
|
+ edbInfo.Sort = maxSort + 1
|
|
|
+ edbInfo.DataDateType = `交易日`
|
|
|
+ timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
+ edbInfo.UniqueCode = utils.MD5(utils.DATA_PREFIX + "_" + timestamp)
|
|
|
+ edbInfo.EdbType = edbType
|
|
|
+ edbInfo.SubSource = item.SubSource
|
|
|
+ edbInfo.SubSourceName = "日期序列"
|
|
|
+ edbInfo.IndicatorCode = item.IndicatorCode
|
|
|
+ edbInfo.StockCode = item.StockCode
|
|
|
+ edbInfoId, err := data_manage.AddEdbInfo(edbInfo)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "保存失败"
|
|
|
+ err = errors.New("保存失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbInfo.EdbInfoId = int(edbInfoId)
|
|
|
+ //保存数据
|
|
|
+ err = data_manage.ModifyEdbInfoDataStatus(edbInfoId, source, item.EdbCode)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "保存失败"
|
|
|
+ err = errors.New("修改数据对应指标ID失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ maxAndMinItem, _ := data_manage.GetEdbInfoWsdMaxAndMinInfo(source, item.SubSource, item.EdbCode)
|
|
|
+ if maxAndMinItem != nil {
|
|
|
+ err = data_manage.ModifyEdbInfoMaxAndMinInfo(int(edbInfoId), maxAndMinItem)
|
|
|
+ }
|
|
|
+ //添加es
|
|
|
+ AddOrEditEdbInfoToEs(int(edbInfoId))
|
|
|
+ return
|
|
|
+}
|