Kaynağa Gözat

fix: 彭博数据源

hsun 10 ay önce
ebeveyn
işleme
0bbde1e3af

+ 43 - 2
controllers/data_manage/bloomberg_data.go

@@ -117,9 +117,29 @@ func (this *BloombergDataController) List() {
 		edbList = list
 	}
 
+	// 获取指标库已有指标
+	existsEdb, e := data_manage.GetEdbCodesBySource(utils.DATA_SOURCE_BLOOMBERG)
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取Bloomberg已添加的指标失败, Err: " + e.Error()
+		return
+	}
+	existMap := make(map[string]*data_manage.EdbInfo)
+	for _, v := range existsEdb {
+		existMap[v.EdbCode] = v
+	}
+
 	respList := make([]*data_manage.BaseFromBloombergIndexItem, 0)
 	for _, v := range edbList {
-		respList = append(respList, data_manage.FormatBaseFromBloombergIndex2Item(v))
+		t := data_manage.FormatBaseFromBloombergIndex2Item(v)
+		ed := existMap[v.IndexCode]
+		if ed != nil {
+			t.EdbExist = 1
+			t.EdbInfoId = ed.EdbInfoId
+			t.EdbUniqueCode = ed.UniqueCode
+			t.EdbClassifyId = ed.ClassifyId
+		}
+		respList = append(respList, t)
 	}
 	page := paging.GetPaging(params.CurrentIndex, params.PageSize, total)
 	dataResp := new(data_manage.BloombergSourceListResp)
@@ -462,9 +482,30 @@ func (this *BloombergDataController) AddCheck() {
 		br.Msg = fmt.Sprintf("最多只能选择%d个指标", codeMax)
 		return
 	}
+
+	// 获取指标库已有指标
+	existsEdb, e := data_manage.GetEdbCodesBySource(utils.DATA_SOURCE_BLOOMBERG)
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取Bloomberg已添加的指标失败, Err: " + e.Error()
+		return
+	}
+	existMap := make(map[string]*data_manage.EdbInfo)
+	for _, v := range existsEdb {
+		existMap[v.EdbCode] = v
+	}
+
 	resp := make([]*data_manage.BaseFromBloombergIndexItem, 0)
 	for _, v := range list {
-		resp = append(resp, data_manage.FormatBaseFromBloombergIndex2Item(v))
+		t := data_manage.FormatBaseFromBloombergIndex2Item(v)
+		ed := existMap[v.IndexCode]
+		if ed != nil {
+			t.EdbExist = 1
+			t.EdbInfoId = ed.EdbInfoId
+			t.EdbUniqueCode = ed.UniqueCode
+			t.EdbClassifyId = ed.ClassifyId
+		}
+		resp = append(resp, t)
 	}
 
 	br.Data = resp

+ 4 - 1
models/data_manage/base_from_bloomberg_index.go

@@ -189,6 +189,9 @@ type BaseFromBloombergIndexItem struct {
 	EdbExist                 int    `description:"指标库是否已添加:0-否;1-是"`
 	CreateTime               string `description:"创建时间"`
 	ModifyTime               string `description:"修改时间"`
+	EdbInfoId                int    `description:"指标库ID"`
+	EdbUniqueCode            string `description:"指标库唯一编码"`
+	EdbClassifyId            int    `description:"指标库分类ID"`
 }
 
 func FormatBaseFromBloombergIndex2Item(origin *BaseFromBloombergIndex) (item *BaseFromBloombergIndexItem) {
@@ -207,7 +210,7 @@ func FormatBaseFromBloombergIndex2Item(origin *BaseFromBloombergIndex) (item *Ba
 	item.Describe = origin.Describe
 	item.Sort = origin.Sort
 	item.IsStop = origin.IsStop
-	item.EdbExist = origin.EdbExist
+	//item.EdbExist = origin.EdbExist
 	item.CreateTime = utils.TimeTransferString(utils.FormatDateTime, origin.CreateTime)
 	item.ModifyTime = utils.TimeTransferString(utils.FormatDateTime, origin.ModifyTime)
 	return

+ 8 - 0
models/data_manage/edb_info.go

@@ -1857,3 +1857,11 @@ func GetEdbInfoByNameArr(names []string) (items []*EdbInfo, err error) {
 	_, err = o.Raw(sql, names).QueryRows(&items)
 	return
 }
+
+// GetEdbCodesBySource 根据来源获取指标编码
+func GetEdbCodesBySource(source int) (items []*EdbInfo, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT edb_info_id, edb_code, unique_code FROM edb_info WHERE source = ? `
+	_, err = o.Raw(sql, source).QueryRows(&items)
+	return
+}