Преглед изворни кода

修复gauss数据库时间格式

kobe6258 пре 3 месеци
родитељ
комит
1e7f60a8fb
2 измењених фајлова са 176 додато и 3 уклоњено
  1. 41 1
      models/data_manage/chart_info.go
  2. 135 2
      models/data_manage/edb_info.go

+ 41 - 1
models/data_manage/chart_info.go

@@ -450,6 +450,41 @@ type EdbDataList struct {
 	Value         float64 `description:"数据值"`
 }
 
+type EdbDataORM struct {
+	EdbDataId     int       `description:" 指标数据ID"`
+	EdbInfoId     int       `description:"指标ID"`
+	DataTime      time.Time //`json:"-" description:"数据日期"`
+	DataTimestamp int64     `description:"数据日期"`
+	Value         float64   `description:"数据值"`
+}
+
+func (edbData *EdbDataORM) ToEdbDataList() *EdbDataList {
+	return &EdbDataList{
+		EdbDataId:     edbData.EdbDataId,
+		EdbInfoId:     edbData.EdbInfoId,
+		DataTime:      edbData.DataTime.Format(utils.FormatDate),
+		DataTimestamp: edbData.DataTimestamp,
+		Value:         edbData.Value,
+	}
+}
+func (edbData *EdbDataORM) ToEdbData() *EdbData {
+	return &EdbData{
+		EdbDataId: edbData.EdbDataId,
+		EdbInfoId: edbData.EdbInfoId,
+		DataTime:  edbData.DataTime.Format(utils.FormatDate),
+		Value:     edbData.Value,
+	}
+}
+func toEdbDataViewList(ormList []*EdbDataORM) (dataList []*EdbDataList) {
+	if ormList == nil || len(ormList) == 0 {
+		return
+	}
+	for _, item := range ormList {
+		dataList = append(dataList, item.ToEdbDataList())
+	}
+	return
+}
+
 // GetEdbDataList
 // @Description: 获取指标的数据(日期正序返回)
 // @author: Roc
@@ -506,7 +541,12 @@ func getEdbDataListByMysql(source, subSource, edbInfoId int, startDate, endDate
 	sql += ` ORDER BY data_time ASC `
 	sql = fmt.Sprintf(sql, tableName)
 	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, edbInfoId, pars).QueryRows(&list)
+	var ormList []*EdbDataORM
+	_, err = o.Raw(sql, edbInfoId, pars).QueryRows(&ormList)
+	if err != nil {
+		return
+	}
+	list = toEdbDataViewList(ormList)
 	return
 }
 

+ 135 - 2
models/data_manage/edb_info.go

@@ -485,6 +485,117 @@ func ModifyEdbEnInfo(item *EditEdbEnInfoReq) (err error) {
 	return
 }
 
+// [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:"指标编码"`
+	EdbNameEn        string                  `description:"英文指标名称"`
+	EdbName          string                  `description:"指标名称"`
+	Frequency        string                  `description:"频率"`
+	FrequencyEn      string                  `description:"英文频率"`
+	Unit             string                  `description:"单位"`
+	UnitEn           string                  `description:"英文单位"`
+	StartDate        time.Time               `description:"起始日期"`
+	EndDate          time.Time               `description:"终止日期"`
+	LatestDate       time.Time               `description:"数据最新日期(实际日期)"`
+	LatestValue      float64                 `description:"数据最新值(实际值)"`
+	EndValue         float64                 `description:"数据的最新值(预测日期的最新值)"`
+	ClassifyId       int                     `description:"分类id"`
+	UniqueCode       string                  `description:"指标唯一编码"`
+	SysUserId        int                     `description:"创建人id"`
+	SysUserRealName  string                  `description:"创建人姓名"`
+	ModifyTime       time.Time               `description:"最新修改时间"`
+	CreateTime       time.Time               `description:"创建时间"`
+	EdbNameAlias     string                  `json:"-" description:"指标名称,别名"`
+	EdbType          int                     `description:"指标类型:1:基础指标,2:计算指标"`
+	ChartImage       string                  `description:"图表图片"`
+	RuleType         int                     `description:"预测规则,1:最新,2:固定值"`
+	FixedValue       float64                 `description:"固定值"`
+	DataList         []*EdbData              `description:"实际指标数据"`
+	PredictDataList  []*EdbData              `description:"预测指标数据"`
+	Button           EdbClassifyItemsButton  `description:"操作权限"`
+	IsEnEdb          bool                    `description:"是否展示英文标识"`
+	DataInsertConfig EdbDataInsertConfigItem `description:"指标数据插入配置"`
+	DataDateType     string                  `description:"数据日期类型,枚举值:交易日、自然日"`
+	EmptyType        int                     `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
+	MaxEmptyType     int                     `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
+	SubSource        int                     `description:"子数据来源:0:经济数据库,1:日期序列"`
+	SubSourceName    string                  `description:"子数据来源名称"`
+	IndicatorCode    string                  `description:"指标代码"`
+	StockCode        string                  `description:"证券代码"`
+	NoUpdate         int8                    `description:"是否停止更新,0:继续更新;1:停止更新"`
+	IsJoinPermission int                     `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
+	HaveOperaAuth    bool                    `description:"是否有数据权限,默认:false"`
+	IsStaticData     int                     `description:"是否是静态指标,0否,1是"`
+	IsSupplierStop   int                     `description:"是否供应商停更:1:停更,0:未停更"`
+	MoveType         int                     `description:"移动方式:1:领先(默认),2:滞后"`
+	MoveFrequency    string                  `description:"移动频度"`
+	MinValue         float64                 `description:"最小值"`
+	MaxValue         float64                 `description:"最大值"`
+	SearchText       string                  `description:"搜索结果(含高亮)"`
+}
+
+func (edbInfo *EdbInfoOrm) ToEdbInfo() (edbinfoList *EdbInfoList) {
+	edbinfoList = &EdbInfoList{
+		EdbInfoId:       edbInfo.EdbInfoId,
+		EdbInfoType:     edbInfo.EdbInfoType,
+		SourceName:      edbInfo.SourceName,
+		Source:          edbInfo.Source,
+		EdbCode:         edbInfo.EdbCode,
+		EdbNameEn:       edbInfo.EdbNameEn,
+		EdbName:         edbInfo.EdbName,
+		Frequency:       edbInfo.Frequency,
+		FrequencyEn:     edbInfo.FrequencyEn,
+		Unit:            edbInfo.Unit,
+		UnitEn:          edbInfo.UnitEn,
+		StartDate:       edbInfo.StartDate.Format(utils.FormatDate),
+		EndDate:         edbInfo.EndDate.Format(utils.FormatDate),
+		LatestDate:      edbInfo.LatestDate.Format(utils.FormatDate),
+		LatestValue:     edbInfo.LatestValue,
+		EndValue:        edbInfo.EndValue,
+		ClassifyId:      edbInfo.ClassifyId,
+		UniqueCode:      edbInfo.UniqueCode,
+		SysUserId:       edbInfo.SysUserId,
+		SysUserRealName: edbInfo.SysUserRealName,
+		//ModifyTime:      ok:=edbInfo.ModifyTime.IsZero(); edbInfo.ModifyTime.Format(utils.FormatDateTime),
+		CreateTime:       edbInfo.CreateTime.Format(utils.FormatDateTime),
+		EdbNameAlias:     edbInfo.EdbNameAlias,
+		EdbType:          edbInfo.EdbType,
+		ChartImage:       edbInfo.ChartImage,
+		RuleType:         edbInfo.RuleType,
+		FixedValue:       edbInfo.FixedValue,
+		DataList:         edbInfo.DataList,
+		PredictDataList:  edbInfo.PredictDataList,
+		Button:           edbInfo.Button,
+		IsEnEdb:          edbInfo.IsEnEdb,
+		DataInsertConfig: edbInfo.DataInsertConfig,
+		DataDateType:     edbInfo.DataDateType,
+		EmptyType:        edbInfo.EmptyType,
+		MaxEmptyType:     edbInfo.MaxEmptyType,
+		SubSource:        edbInfo.SubSource,
+		SubSourceName:    edbInfo.SubSourceName,
+		IndicatorCode:    edbInfo.IndicatorCode,
+		StockCode:        edbInfo.StockCode,
+		NoUpdate:         edbInfo.NoUpdate,
+		IsJoinPermission: edbInfo.IsJoinPermission,
+		HaveOperaAuth:    edbInfo.HaveOperaAuth,
+		IsStaticData:     edbInfo.IsStaticData,
+		IsSupplierStop:   edbInfo.IsSupplierStop,
+		MoveType:         edbInfo.MoveType,
+		MoveFrequency:    edbInfo.MoveFrequency,
+		MinValue:         edbInfo.MinValue,
+		MaxValue:         edbInfo.MaxValue,
+		SearchText:       edbInfo.SearchText,
+	}
+	if !edbInfo.ModifyTime.IsZero() {
+		edbinfoList.ModifyTime = edbInfo.ModifyTime.Format(utils.FormatDateTime)
+	}
+	return
+}
+
 type EdbInfoList struct {
 	EdbInfoId        int                     `orm:"column(edb_info_id);pk"`
 	EdbInfoType      int                     `description:"指标类型,0:普通指标,1:预测指标"`
@@ -567,7 +678,13 @@ func GetEdbInfoByCondition(condition string, pars []interface{}) (item *EdbInfoL
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&item)
+	// [2025-zsh-时间类型修复-chenhan]
+	var ormItem *EdbInfoOrm
+	err = o.Raw(sql, pars).QueryRow(&ormItem)
+	if err != nil {
+		return
+	}
+	item = ormItem.ToEdbInfo()
 	return
 }
 
@@ -597,7 +714,23 @@ func GetEdbDataListByCondition(condition string, pars []interface{}, source, sub
 	}
 	sql += ` ORDER BY data_time DESC `
 	sql += ` LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	var ormList []*EdbDataORM
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&ormList)
+	if err != nil {
+		return
+	}
+	item = toEdbDataList(ormList)
+	return
+}
+
+// [2025-zsh-时间类型修复-chenhan]
+func toEdbDataList(ormList []*EdbDataORM) (dataList []*EdbData) {
+	if ormList == nil || len(ormList) == 0 {
+		return
+	}
+	for _, item := range ormList {
+		dataList = append(dataList, item.ToEdbData())
+	}
 	return
 }