|
@@ -1012,3 +1012,110 @@ type EdbInfoDetailResp struct {
|
|
|
ChartImage string `description:"图表图片"`
|
|
|
DataList []*EdbInfoSearchData
|
|
|
}
|
|
|
+
|
|
|
+type AddEdbInfoParams struct {
|
|
|
+ Source int `description:"来源id"`
|
|
|
+ EdbCode string `description:"指标编码"`
|
|
|
+ EdbName string `description:"指标名称"`
|
|
|
+ Frequency string `description:"频率"`
|
|
|
+ Unit string `description:"单位"`
|
|
|
+ ClassifyId int `description:"分类id"`
|
|
|
+}
|
|
|
+
|
|
|
+// EdbInfoAdd 添加指标到指标库
|
|
|
+func EdbInfoAdd(req *AddEdbInfoParams, serverUrl string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
|
|
|
+ source := req.Source
|
|
|
+ //判断指标名称是否存在
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ //condition += " AND source=? "
|
|
|
+ //pars = append(pars, source)
|
|
|
+
|
|
|
+ condition += " AND edb_name=? "
|
|
|
+ pars = append(pars, req.EdbName)
|
|
|
+
|
|
|
+ count, err := GetEdbInfoCountByCondition(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ err = errors.New("判断指标名称是否存在失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if count > 0 {
|
|
|
+ err = errors.New("指标名称已存在,请重新填写")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbInfo = new(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 {
|
|
|
+ err = errors.New("指标来源异常")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbInfo.SourceName = sourceName
|
|
|
+
|
|
|
+ edbType := 1 //基础指标
|
|
|
+ if source == utils.DATA_SOURCE_STOCK_PLANT {
|
|
|
+ edbType = 2 //计算指标
|
|
|
+ }
|
|
|
+
|
|
|
+ edbInfo.EdbCode = req.EdbCode
|
|
|
+ edbInfo.EdbName = req.EdbName
|
|
|
+ edbInfo.EdbNameSource = req.EdbName
|
|
|
+ edbInfo.Frequency = req.Frequency
|
|
|
+ edbInfo.Unit = req.Unit
|
|
|
+ edbInfo.ClassifyId = req.ClassifyId
|
|
|
+ edbInfo.SysUserId = sysUserId
|
|
|
+ edbInfo.SysUserRealName = sysUserRealName
|
|
|
+ edbInfo.CreateTime = time.Now()
|
|
|
+ edbInfo.ModifyTime = time.Now()
|
|
|
+ edbInfo.ServerUrl = serverUrl
|
|
|
+ timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
+ edbInfo.UniqueCode = utils.MD5(utils.DATA_PREFIX + "_" + timestamp)
|
|
|
+ itemVal, err := GetEdbInfoMaxAndMinInfo(source, req.EdbCode)
|
|
|
+ if itemVal != nil && err == nil {
|
|
|
+ edbInfo.MaxValue = itemVal.MaxValue
|
|
|
+ edbInfo.MinValue = itemVal.MinValue
|
|
|
+ }
|
|
|
+ edbInfo.EdbType = edbType
|
|
|
+ edbInfoId, err := AddEdbInfo(edbInfo)
|
|
|
+ if err != nil {
|
|
|
+ err = errors.New("保存失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbInfo.EdbInfoId = int(edbInfoId)
|
|
|
+
|
|
|
+ maxAndMinItem, _ := GetEdbInfoMaxAndMinInfo(source, req.EdbCode)
|
|
|
+ if maxAndMinItem != nil {
|
|
|
+ err = ModifyEdbInfoMaxAndMinInfo(int(edbInfoId), maxAndMinItem)
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|