|
@@ -68,6 +68,117 @@ type EdbInfo struct {
|
|
|
EndDateType int `description:"预测指标截止日期类型:0:未来日期,1未来期数"`
|
|
|
}
|
|
|
|
|
|
+// [2025-zsh-时间类型修复-chenhan]
|
|
|
+type EdbInfoOrm struct {
|
|
|
+ EdbInfoId int `orm:"column(edb_info_id);pk"`
|
|
|
+ EdbInfoType int `description:"指标类型,0:普通指标,1:预测指标"`
|
|
|
+ SourceName string `description:"来源名称"`
|
|
|
+ Source int `description:"来源id"`
|
|
|
+ EdbCode string `description:"指标编码"`
|
|
|
+ EdbName string `description:"指标名称"`
|
|
|
+ EdbNameEn string `description:"英文指标名称"`
|
|
|
+ EdbNameSource string `description:"指标名称来源"`
|
|
|
+ Frequency string `description:"频率"`
|
|
|
+ Unit string `description:"单位"`
|
|
|
+ UnitEn string `description:"英文单位"`
|
|
|
+ StartDate time.Time `description:"起始日期"`
|
|
|
+ EndDate time.Time `description:"终止日期"`
|
|
|
+ ClassifyId int `description:"分类id"`
|
|
|
+ SysUserId int
|
|
|
+ SysUserRealName string
|
|
|
+ UniqueCode string `description:"指标唯一编码"`
|
|
|
+ CreateTime time.Time
|
|
|
+ ModifyTime time.Time
|
|
|
+ BaseModifyTime time.Time
|
|
|
+ MinValue float64 `description:"指标最小值"`
|
|
|
+ MaxValue float64 `description:"指标最大值"`
|
|
|
+ CalculateFormula string `description:"计算公式"`
|
|
|
+ EdbType int `description:"指标类型:1:基础指标,2:计算指标"`
|
|
|
+ IsUpdate int `description:"当天是否已更新,1:未更新,2:已更新"`
|
|
|
+ Sort int `description:"排序字段"`
|
|
|
+ LatestDate time.Time `description:"数据最新日期(实际日期)"`
|
|
|
+ LatestValue float64 `description:"数据最新值(实际值)"`
|
|
|
+ EndValue float64 `description:"数据的最新值(预测日期的最新值)"`
|
|
|
+ MoveType int `description:"移动方式:1:领先(默认),2:滞后"`
|
|
|
+ MoveFrequency string `description:"移动频度"`
|
|
|
+ NoUpdate int8 `description:"是否停止更新,0:继续更新;1:停止更新"`
|
|
|
+ ServerUrl string `description:"服务器地址"`
|
|
|
+ ChartImage string `description:"图表图片"`
|
|
|
+ Calendar string `description:"公历/农历" orm:"default(公历);"`
|
|
|
+ EmptyType int `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
|
|
|
+ MaxEmptyType int `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
|
|
|
+ DataDateType string `orm:"column(data_date_type);size(255);null;default(交易日)"`
|
|
|
+ ManualSave int `description:"是否有手动保存过上下限: 0-否; 1-是"`
|
|
|
+ TerminalCode string `description:"终端编码,用于配置在机器上"`
|
|
|
+ DataUpdateTime time.Time `description:"最近一次数据发生变化的时间"`
|
|
|
+ ErDataUpdateDate time.Time `description:"本次更新,数据发生变化的最早日期"`
|
|
|
+ SourceIndexName string `description:"数据源中的指标名称"`
|
|
|
+ SubSource int `description:"子数据来源:0:经济数据库,1:日期序列"`
|
|
|
+ SubSourceName string `description:"子数据来源名称"`
|
|
|
+ IndicatorCode string `description:"指标代码"`
|
|
|
+ StockCode string `description:"证券代码"`
|
|
|
+ Extra string `description:"指标的额外配置"`
|
|
|
+ IsStaticData int `description:"是否是静态指标,0否,1是"`
|
|
|
+ EndDateType int `description:"预测指标截止日期类型:0:未来日期,1未来期数"`
|
|
|
+}
|
|
|
+
|
|
|
+func (edbInfo *EdbInfoOrm) TableName() string {
|
|
|
+ return "edb_info"
|
|
|
+}
|
|
|
+func (edbInfo *EdbInfo) ConvertToOrmItem() *EdbInfoOrm {
|
|
|
+ return &EdbInfoOrm{
|
|
|
+ EdbInfoId: edbInfo.EdbInfoId,
|
|
|
+ EdbInfoType: edbInfo.EdbInfoType,
|
|
|
+ SourceName: edbInfo.SourceName,
|
|
|
+ Source: edbInfo.Source,
|
|
|
+ EdbCode: edbInfo.EdbCode,
|
|
|
+ EdbName: edbInfo.EdbName,
|
|
|
+ EdbNameEn: edbInfo.EdbNameEn,
|
|
|
+ EdbNameSource: edbInfo.EdbNameSource,
|
|
|
+ Frequency: edbInfo.Frequency,
|
|
|
+ Unit: edbInfo.Unit,
|
|
|
+ UnitEn: edbInfo.UnitEn,
|
|
|
+ StartDate: utils.ParseStrToDate(edbInfo.StartDate, utils.FormatDate),
|
|
|
+ EndDate: utils.ParseStrToDate(edbInfo.EndDate, utils.FormatDate),
|
|
|
+ ClassifyId: edbInfo.ClassifyId,
|
|
|
+ SysUserId: edbInfo.SysUserId,
|
|
|
+ SysUserRealName: edbInfo.SysUserRealName,
|
|
|
+ UniqueCode: edbInfo.UniqueCode,
|
|
|
+ CreateTime: edbInfo.CreateTime,
|
|
|
+ ModifyTime: edbInfo.ModifyTime,
|
|
|
+ BaseModifyTime: edbInfo.BaseModifyTime,
|
|
|
+ MinValue: edbInfo.MinValue,
|
|
|
+ MaxValue: edbInfo.MaxValue,
|
|
|
+ CalculateFormula: edbInfo.CalculateFormula,
|
|
|
+ EdbType: edbInfo.EdbType,
|
|
|
+ IsUpdate: edbInfo.IsUpdate,
|
|
|
+ Sort: edbInfo.Sort,
|
|
|
+ LatestDate: utils.ParseStrToDate(edbInfo.LatestDate, utils.FormatDate),
|
|
|
+ LatestValue: edbInfo.LatestValue,
|
|
|
+ EndValue: edbInfo.EndValue,
|
|
|
+ MoveType: edbInfo.MoveType,
|
|
|
+ MoveFrequency: edbInfo.MoveFrequency,
|
|
|
+ NoUpdate: edbInfo.NoUpdate,
|
|
|
+ ServerUrl: edbInfo.ServerUrl,
|
|
|
+ ChartImage: edbInfo.ChartImage,
|
|
|
+ Calendar: edbInfo.Calendar,
|
|
|
+ EmptyType: edbInfo.EmptyType,
|
|
|
+ MaxEmptyType: edbInfo.MaxEmptyType,
|
|
|
+ DataDateType: edbInfo.DataDateType,
|
|
|
+ ManualSave: edbInfo.ManualSave,
|
|
|
+ TerminalCode: edbInfo.TerminalCode,
|
|
|
+ DataUpdateTime: utils.ParseStrToDate(edbInfo.DataUpdateTime, utils.FormatDateTime),
|
|
|
+ ErDataUpdateDate: utils.ParseStrToDate(edbInfo.ErDataUpdateDate, utils.FormatDate),
|
|
|
+ SourceIndexName: edbInfo.SourceIndexName,
|
|
|
+ SubSource: edbInfo.SubSource,
|
|
|
+ SubSourceName: edbInfo.SubSourceName,
|
|
|
+ IndicatorCode: edbInfo.IndicatorCode,
|
|
|
+ StockCode: edbInfo.StockCode,
|
|
|
+ Extra: edbInfo.Extra,
|
|
|
+ IsStaticData: edbInfo.IsStaticData,
|
|
|
+ EndDateType: edbInfo.EndDateType,
|
|
|
+ }
|
|
|
+}
|
|
|
func (e *EdbInfo) Add() (err error) {
|
|
|
o := orm.NewOrm()
|
|
|
_, err = o.Insert(e)
|
|
@@ -205,6 +316,31 @@ type EdbInfoSearchData struct {
|
|
|
EdbCode string `description:"指标编码"`
|
|
|
DataTimestamp int64 `description:"时间戳"`
|
|
|
}
|
|
|
+type EdbInfoSearchDataOrm struct {
|
|
|
+ EdbDataId int `description:"数据ID"`
|
|
|
+ EdbInfoId int `description:"指标ID"`
|
|
|
+ DataTime time.Time `description:"数据日期"`
|
|
|
+ Value float64 `description:"数据"`
|
|
|
+ EdbCode string `description:"指标编码"`
|
|
|
+ DataTimestamp int64 `description:"时间戳"`
|
|
|
+}
|
|
|
+
|
|
|
+func (edbInfoSearchData *EdbInfoSearchDataOrm) ConvertToSearchData() *EdbInfoSearchData {
|
|
|
+ return &EdbInfoSearchData{
|
|
|
+ EdbDataId: edbInfoSearchData.EdbDataId,
|
|
|
+ EdbInfoId: edbInfoSearchData.EdbInfoId,
|
|
|
+ DataTime: edbInfoSearchData.DataTime.Format(utils.FormatDate),
|
|
|
+ Value: edbInfoSearchData.Value,
|
|
|
+ EdbCode: edbInfoSearchData.EdbCode,
|
|
|
+ DataTimestamp: edbInfoSearchData.DataTimestamp,
|
|
|
+ }
|
|
|
+}
|
|
|
+func convertToSearchDataList(ormList []*EdbInfoSearchDataOrm) (list []*EdbInfoSearchData) {
|
|
|
+ for _, ormItem := range ormList {
|
|
|
+ list = append(list, ormItem.ConvertToSearchData())
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
|
|
|
type FindEdbDataListAllCond struct {
|
|
|
EdbInfoId int
|
|
@@ -277,7 +413,12 @@ func GetEdbDataListAllByMysql(source, subSource int, findEdbDataListAllCond Find
|
|
|
} else {
|
|
|
sql += ` ORDER BY data_time DESC `
|
|
|
}
|
|
|
- _, err = to.Raw(sql, pars).QueryRows(&item)
|
|
|
+ var ormList []*EdbInfoSearchDataOrm
|
|
|
+ _, err = to.Raw(sql, pars).QueryRows(&ormList)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item = convertToSearchDataList(ormList)
|
|
|
return
|
|
|
}
|
|
|
|