123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package pcsg
- import (
- "strings"
- "time"
- )
- // PythonBloombergGeneralData 通用数据格式
- type PythonBloombergGeneralData struct {
- IDENTIFIER string `json:"IDENTIFIER" description:"指标编码"`
- PX_LAST_EOD *float64 `json:"PX_LAST_EOD" description:"数据值, 可能为null"`
- PX_VOLUME_EOD *float64 `json:"PX_VOLUME_EOD" description:"数据值(Run3), 可能为null"`
- LAST_UPDATE_DATE_EOD string `json:"LAST_UPDATE_DATE_EOD" description:"数据日期, 可能为null"`
- NAME string `json:"NAME" description:"指标名称, 可能为null"`
- }
- // PythonBloombergGeneralResult API响应体
- type PythonBloombergGeneralResult struct {
- Code int `json:"code"`
- Msg string `json:"msg"`
- Data []PythonBloombergGeneralData `json:"data"`
- }
- // BaseFromBloombergApiIndexAndData Bloomberg原始指标及数据
- type BaseFromBloombergApiIndexAndData struct {
- BaseFromBloombergIndexId int `description:"指标ID"`
- IndexCode string `description:"指标编码"`
- IndexName string `description:"指标名称"`
- Unit string `description:"单位"`
- Source string `description:"来源"`
- Frequency string `description:"频度"`
- CreateTime time.Time `description:"创建时间"`
- ModifyTime time.Time `description:"修改时间"`
- Data []BaseFromBloombergApiIndexData `description:"数据列表"`
- }
- // BaseFromBloombergApiIndexData Bloomberg原始指标数据
- type BaseFromBloombergApiIndexData struct {
- DataTime time.Time `description:"数据日期"`
- Value float64 `description:"数据值"`
- }
- func FormatPythonBloombergGeneralData2Base(origin PythonBloombergGeneralData, frequency string) (item BaseFromBloombergApiIndexAndData) {
- if origin.IDENTIFIER == "" {
- return
- }
- item.IndexCode = strings.TrimSpace(origin.IDENTIFIER)
- item.IndexName = strings.TrimSpace(origin.NAME)
- item.Frequency = frequency
- item.Unit = "无"
- item.Data = make([]BaseFromBloombergApiIndexData, 0)
- // 值可能为nil
- if origin.LAST_UPDATE_DATE_EOD != "" && origin.PX_LAST_EOD != nil {
- t, _ := time.ParseInLocation(time.DateOnly, origin.LAST_UPDATE_DATE_EOD, time.Local)
- item.Data = append(item.Data, BaseFromBloombergApiIndexData{
- DataTime: t,
- Value: *origin.PX_LAST_EOD,
- })
- }
- // 可能是从Run3过来的, 数据值的字段为PX_VOLUME_EOD
- if origin.LAST_UPDATE_DATE_EOD != "" && origin.PX_VOLUME_EOD != nil {
- t, _ := time.ParseInLocation(time.DateOnly, origin.LAST_UPDATE_DATE_EOD, time.Local)
- item.Data = append(item.Data, BaseFromBloombergApiIndexData{
- DataTime: t,
- Value: *origin.PX_VOLUME_EOD,
- })
- }
- return
- }
|