Browse Source

Merge branch 'dm' of http://8.136.199.33:3000/eta_server/eta_api into dm

kobe6258 3 weeks ago
parent
commit
0d4af6d293

+ 1 - 1
controllers/data_manage/edb_info.go

@@ -2203,7 +2203,7 @@ func (this *EdbInfoController) EdbInfoList() {
 			br.ErrMsg = "获取当前账号的不可见指标配置失败,err:" + err.Error()
 			return
 		}
-		if conf != nil {
+		if conf != nil && conf.Id > 0 {
 			br.Msg = "无权限,请联系管理员"
 			br.IsSendEmail = false
 			return

+ 69 - 62
models/data_manage/chart_info.go

@@ -6,6 +6,7 @@ import (
 	"eta/eta_api/models/mgo"
 	"eta/eta_api/utils"
 	"fmt"
+	"gorm.io/gorm"
 	"strconv"
 	"strings"
 	"time"
@@ -450,6 +451,11 @@ type EdbDataList struct {
 	Value         float64 `description:"数据值"`
 }
 
+func (e *EdbDataList) AfterFind(db *gorm.DB) (err error) {
+	e.DataTime = utils.GormDateStrToDateStr(e.DataTime)
+	return
+}
+
 // GetEdbDataList
 // @Description: 获取指标的数据(日期正序返回)
 // @author: Roc
@@ -567,14 +573,14 @@ type EdbDataListByUniqueCode struct {
 	Value         float64 `description:"数据值"`
 }
 
-func GetEdbDataLunarList(endInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
-	tableName := "edb_data_quarter"
-	sql := `SELECT edb_data_id,edb_info_id,data_time,TRUNCATE(value,2) AS value,data_timestamp FROM %s WHERE edb_info_id=? AND data_time>=? AND data_time<=? ORDER BY data_time ASC `
-	sql = fmt.Sprintf(sql, tableName)
-	o := global.DbMap[utils.DbNameIndex]
-	err = o.Raw(sql, endInfoId, startDate, endDate).Find(&list).Error
-	return
-}
+//func GetEdbDataLunarList(endInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
+//	tableName := "edb_data_quarter"
+//	sql := `SELECT edb_data_id,edb_info_id,data_time,TRUNCATE(value,2) AS value,data_timestamp FROM %s WHERE edb_info_id=? AND data_time>=? AND data_time<=? ORDER BY data_time ASC `
+//	sql = fmt.Sprintf(sql, tableName)
+//	o := global.DbMap[utils.DbNameIndex]
+//	err = o.Raw(sql, endInfoId, startDate, endDate).Find(&list).Error
+//	return
+//}
 
 // GetEdbDataListMinAndMax
 // @Description: 根据条件数据库中获取指标数据最小值和最大值
@@ -636,6 +642,7 @@ func getEdbDataListMinAndMaxByMysql(source, subSource, edbInfoId int, startDate,
 		sql += condition
 	}
 
+	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Raw(sql, pars...).Row().Scan(&minData, &maxData)
 	return
 }
@@ -687,60 +694,60 @@ func getEdbDataListMinAndMaxByMongo(source, subSource, edbInfoId int, startDate,
 }
 
 type ChartEdbInfoMapping struct {
-	EdbInfoId           int     `description:"指标id"`
-	SourceName          string  `description:"来源名称"`
-	Source              int     `description:"来源id"`
-	SubSource           int     `description:"来源id"`
-	EdbCode             string  `description:"指标编码"`
-	EdbName             string  `description:"指标名称"`
-	EdbAliasName        string  `description:"指标名称(别名)"`
-	EdbNameEn           string  `description:"英文指标名称"`
-	EdbAliasNameEn      string  `description:"英文指标名称(别名)"`
-	EdbType             int     `description:"指标类型:1:基础指标,2:计算指标"`
-	Frequency           string  `description:"频率"`
-	FrequencyEn         string  `description:"英文频率"`
-	Unit                string  `description:"单位"`
-	UnitEn              string  `description:"英文单位"`
-	StartDate           string  `description:"起始日期"`
-	EndDate             string  `description:"终止日期"`
-	ModifyTime          string  `description:"指标最后更新时间"`
-	ChartEdbMappingId   int     `description:"图表指标id"`
-	ChartInfoId         int     `description:"图表id"`
-	MaxData             float64 `description:"上限"`
-	MinData             float64 `description:"下限"`
-	IsOrder             bool    `description:"true:正序,false:逆序"`
-	IsAxis              int     `description:"1:左轴,0:右轴"`
-	EdbInfoType         int     `description:"1:标准指标,0:领先指标"`
-	EdbInfoCategoryType int     `description:"0:普通指标,1:预测指标"`
-	LeadValue           int     `description:"领先值"`
-	LeadUnit            string  `description:"领先单位"`
-	LeadUnitEn          string  `description:"领先英文单位"`
-	ChartStyle          string  `description:"图表类型"`
-	ChartColor          string  `description:"颜色"`
-	PredictChartColor   string  `description:"预测数据的颜色"`
-	ChartWidth          float64 `description:"线条大小"`
-	ChartType           int     `description:"生成样式:1:曲线图,2:季节性图,3:面积图,4:柱状图,5:散点图,6:组合图,7:柱方图,8:商品价格曲线图,9:相关性图"`
-	LatestDate          string  `description:"数据最新日期"`
-	LatestValue         float64 `description:"数据最新值"`
-	MoveLatestDate      string  `description:"移动后的数据最新日期"`
-	UniqueCode          string  `description:"指标唯一编码"`
-	MinValue            float64 `json:"-" description:"最小值"`
-	MaxValue            float64 `json:"-" description:"最大值"`
-	DataList            interface{}
-	IsNullData          bool    `json:"-" description:"是否空数据"`
-	MappingSource       int     `description:"1:ETA图库;2:商品价格曲线"`
-	RegionType          string  `description:"交易所来源,海外还是国内" json:"-"`
-	ClassifyId          int     `description:"分类id"`
-	SubSourceName       string  `description:"子数据来源名称"`
-	IndicatorCode       string  `description:"指标代码"`
-	IsConvert           int     `description:"是否数据转换 0不转 1转"`
-	ConvertType         int     `description:"数据转换类型 1乘 2除 3对数"`
-	ConvertValue        float64 `description:"数据转换值"`
-	ConvertUnit         string  `description:"数据转换单位"`
-	ConvertEnUnit       string  `description:"数据转换单位"`
-	IsJoinPermission    int     `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
-	HaveOperaAuth       bool    `description:"是否有数据权限,默认:false"`
-	UniqueFlag          string  `description:"唯一标识(与唯一编码不是一个东西)"`
+	EdbInfoId           int         `description:"指标id"`
+	SourceName          string      `description:"来源名称"`
+	Source              int         `description:"来源id"`
+	SubSource           int         `description:"来源id"`
+	EdbCode             string      `description:"指标编码"`
+	EdbName             string      `description:"指标名称"`
+	EdbAliasName        string      `description:"指标名称(别名)"`
+	EdbNameEn           string      `description:"英文指标名称"`
+	EdbAliasNameEn      string      `description:"英文指标名称(别名)"`
+	EdbType             int         `description:"指标类型:1:基础指标,2:计算指标"`
+	Frequency           string      `description:"频率"`
+	FrequencyEn         string      `description:"英文频率"`
+	Unit                string      `description:"单位"`
+	UnitEn              string      `description:"英文单位"`
+	StartDate           string      `description:"起始日期"`
+	EndDate             string      `description:"终止日期"`
+	ModifyTime          string      `description:"指标最后更新时间"`
+	ChartEdbMappingId   int         `description:"图表指标id"`
+	ChartInfoId         int         `description:"图表id"`
+	MaxData             float64     `description:"上限"`
+	MinData             float64     `description:"下限"`
+	IsOrder             bool        `description:"true:正序,false:逆序"`
+	IsAxis              int         `description:"1:左轴,0:右轴"`
+	EdbInfoType         int         `description:"1:标准指标,0:领先指标"`
+	EdbInfoCategoryType int         `description:"0:普通指标,1:预测指标"`
+	LeadValue           int         `description:"领先值"`
+	LeadUnit            string      `description:"领先单位"`
+	LeadUnitEn          string      `description:"领先英文单位"`
+	ChartStyle          string      `description:"图表类型"`
+	ChartColor          string      `description:"颜色"`
+	PredictChartColor   string      `description:"预测数据的颜色"`
+	ChartWidth          float64     `description:"线条大小"`
+	ChartType           int         `description:"生成样式:1:曲线图,2:季节性图,3:面积图,4:柱状图,5:散点图,6:组合图,7:柱方图,8:商品价格曲线图,9:相关性图"`
+	LatestDate          string      `description:"数据最新日期"`
+	LatestValue         float64     `description:"数据最新值"`
+	MoveLatestDate      string      `description:"移动后的数据最新日期"`
+	UniqueCode          string      `description:"指标唯一编码"`
+	MinValue            float64     `gorm:"-" json:"-" description:"最小值"`
+	MaxValue            float64     `gorm:"-" json:"-" description:"最大值"`
+	DataList            interface{} `gorm:"-"`
+	IsNullData          bool        `gorm:"-" json:"-" description:"是否空数据"`
+	MappingSource       int         `description:"1:ETA图库;2:商品价格曲线"`
+	RegionType          string      `description:"交易所来源,海外还是国内" json:"-"`
+	ClassifyId          int         `description:"分类id"`
+	SubSourceName       string      `description:"子数据来源名称"`
+	IndicatorCode       string      `description:"指标代码"`
+	IsConvert           int         `description:"是否数据转换 0不转 1转"`
+	ConvertType         int         `description:"数据转换类型 1乘 2除 3对数"`
+	ConvertValue        float64     `description:"数据转换值"`
+	ConvertUnit         string      `description:"数据转换单位"`
+	ConvertEnUnit       string      `description:"数据转换单位"`
+	IsJoinPermission    int         `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
+	HaveOperaAuth       bool        `description:"是否有数据权限,默认:false"`
+	UniqueFlag          string      `description:"唯一标识(与唯一编码不是一个东西)"`
 }
 
 type QuarterData struct {

+ 1 - 0
models/data_manage/chart_theme/chart_theme_default_data.go

@@ -58,6 +58,7 @@ func (m *ChartThemeDefaultData) Update(cols []string) (err error) {
 // @return err error
 func GetChartThemeDefaultDataItemList(endInfoId int, startDate string) (list []*data_manage.EdbDataList, err error) {
 	sql := `SELECT edb_data_id,edb_info_id,data_time,value,data_timestamp FROM chart_theme_default_data WHERE edb_info_id=? `
+	sql = utils.ReplaceDriverKeywords("", sql)
 	var pars []interface{}
 	if startDate != "" {
 		sql += ` AND data_time>=? `

+ 110 - 0
models/data_manage/edb_info.go

@@ -72,6 +72,32 @@ type EdbInfo struct {
 	EndDateType      int       `description:"预测指标截止日期类型:0:未来日期,1未来期数"`
 }
 
+// AfterFind
+// @Description: 转成需要输出的格式
+// @receiver m
+func (m *EdbInfo) AfterFind(db *gorm.DB) (err error) {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	m.LatestDate = utils.GormDateStrToDateStr(m.LatestDate)
+	m.ErDataUpdateDate = utils.GormDateStrToDateStr(m.ErDataUpdateDate)
+	m.DataUpdateTime = utils.GormDateStrToDateTimeStr(m.DataUpdateTime)
+
+	return
+}
+
+// ConvertTimeStr
+// @Description: 转成需要输出的格式
+// @receiver m
+func (m *EdbInfo) ConvertTimeStr() {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	m.LatestDate = utils.GormDateStrToDateStr(m.LatestDate)
+	m.ErDataUpdateDate = utils.GormDateStrToDateStr(m.ErDataUpdateDate)
+	m.DataUpdateTime = utils.GormDateStrToDateTimeStr(m.DataUpdateTime)
+
+	return
+}
+
 type EdbInfoFullClassify struct {
 	*EdbInfo
 	CorrelationStr string `description:"相关性系数字符串"`
@@ -176,6 +202,11 @@ func GetEdbInfoByEdbCode(source int, edbCode string) (item *EdbInfo, err error)
 	o := global.DbMap[utils.DbNameIndex]
 	sql := ` SELECT * FROM edb_info WHERE source=? AND edb_code=? `
 	err = o.Raw(sql, source, edbCode).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
+
 	return
 }
 
@@ -193,6 +224,11 @@ func GetEdbInfoById(edbInfoId int) (item *EdbInfo, err error) {
 	o := global.DbMap[utils.DbNameIndex]
 	sql := ` SELECT * FROM edb_info WHERE edb_info_id=? `
 	err = o.Raw(sql, edbInfoId).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
+
 	return
 }
 
@@ -207,6 +243,11 @@ func GetEdbInfoByUniqueCode(uniqueCode string) (item *EdbInfo, err error) {
 	o := global.DbMap[utils.DbNameIndex]
 	sql := ` SELECT * FROM edb_info WHERE unique_code=? `
 	err = o.Raw(sql, uniqueCode).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
+
 	return
 }
 
@@ -481,6 +522,32 @@ type EdbInfoList struct {
 	SearchText       string                  `description:"搜索结果(含高亮)"`
 }
 
+// AfterFind
+// @Description: 转成需要输出的格式
+// @receiver m
+func (m *EdbInfoList) AfterFind(db *gorm.DB) (err error) {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	m.LatestDate = utils.GormDateStrToDateStr(m.LatestDate)
+	m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
+	m.CreateTime = utils.GormDateStrToDateTimeStr(m.CreateTime)
+
+	return
+}
+
+// ConvertTimeStr
+// @Description: 转成需要输出的格式
+// @receiver m
+func (m *EdbInfoList) ConvertTimeStr() {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	m.LatestDate = utils.GormDateStrToDateStr(m.LatestDate)
+	m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
+	m.CreateTime = utils.GormDateStrToDateTimeStr(m.CreateTime)
+
+	return
+}
+
 type EdbDataInsertConfigItem struct {
 	Date     string `description:"插入的日期"`
 	RealDate string `description:"实际最晚的日期"`
@@ -494,6 +561,24 @@ type EdbData struct {
 	Value     float64
 }
 
+// AfterFind
+// @Description: 转成需要输出的格式
+// @receiver m
+func (m *EdbData) AfterFind(db *gorm.DB) (err error) {
+	m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
+
+	return
+}
+
+// ConvertTimeStr
+// @Description: 转成需要输出的格式
+// @receiver m
+func (m *EdbData) ConvertTimeStr() {
+	m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
+
+	return
+}
+
 type EdbInfoListResp struct {
 	Paging       *paging.PagingItem
 	Item         *EdbInfoList
@@ -512,6 +597,11 @@ func GetEdbInfoByCondition(condition string, pars []interface{}) (item *EdbInfoL
 		sql += condition
 	}
 	err = o.Raw(sql, pars...).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
+
 	return
 }
 
@@ -565,6 +655,11 @@ func GetEdbInfoByNewest() (item *EdbInfoList, err error) {
 	o := global.DbMap[utils.DbNameIndex]
 	sql := ` SELECT * FROM edb_info WHERE 1=1 ORDER BY modify_time DESC LIMIT 1 `
 	err = o.Raw(sql).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
+
 	return
 }
 
@@ -855,6 +950,11 @@ func GetFirstEdbInfoByClassifyId(classifyId int) (item *EdbInfo, err error) {
 	o := global.DbMap[utils.DbNameIndex]
 	sql := ` SELECT * FROM edb_info WHERE classify_id=? order by sort asc,edb_info_id asc limit 1`
 	err = o.Raw(sql, classifyId).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
+
 	return
 }
 
@@ -1423,6 +1523,11 @@ func GetNextEdbInfoByCondition(condition string, pars []interface{}) (item *EdbI
 	}
 	sql += " ORDER BY sort asc , edb_info_id asc LIMIT 1 "
 	err = o.Raw(sql, pars...).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
+
 	return
 }
 
@@ -1436,6 +1541,11 @@ func GetNextEdbInfo(classifyId, classifySort, classifyType, edbInfoType int) (it
 			ORDER BY a.sort ASC,b.sort asc,b.edb_info_id asc
 			LIMIT 1 `
 	err = o.Raw(sql, classifySort, classifySort, classifyId, classifyType, edbInfoType).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
+
 	return
 }
 

+ 27 - 8
models/document_manage_model/outside_report.go

@@ -5,8 +5,8 @@ import (
 	"eta/eta_api/global"
 	"eta/eta_api/utils"
 
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
+	"gorm.io/gorm"
 )
 
 type OutsideReport struct {
@@ -25,7 +25,27 @@ type OutsideReport struct {
 	CreateTime       string `orm:"column(create_time)" description:"创建时间"`
 	ReportCode       string `orm:"column(report_code)" description:"报告唯一编码"`
 }
+// AfterFind
+// @Description: 转成需要输出的格式
+// @receiver m
+func (m *OutsideReport) AfterFind(db *gorm.DB) (err error) {
+	m.ReportUpdateTime = utils.GormDateStrToDateStr(m.ReportUpdateTime)
+	m.ModifyTime = utils.GormDateStrToDateStr(m.ModifyTime)
+	m.CreateTime = utils.GormDateStrToDateStr(m.CreateTime)
 
+	return
+}
+
+// ConvertTimeStr
+// @Description: 转成需要输出的格式
+// @receiver m
+func (m *OutsideReport) ConvertTimeStr() {
+	m.ReportUpdateTime = utils.GormDateStrToDateStr(m.ReportUpdateTime)
+	m.ModifyTime = utils.GormDateStrToDateStr(m.ModifyTime)
+	m.CreateTime = utils.GormDateStrToDateStr(m.CreateTime)
+
+	return
+}
 type OutsideReportPage struct {
 	List   []OutsideReport    `description:"报告列表"`
 	Paging *paging.PagingItem `description:"分页数据"`
@@ -47,11 +67,6 @@ type OutsideReportBO struct {
 	AttachmentList  []*OutsideReportAttachment
 }
 
-// 在 init 函数中注册模型
-func init() {
-	orm.RegisterModel(new(OutsideReport))
-}
-
 // GetOutsideReportListByConditionCount 根据条件查询列表条数
 func GetOutsideReportListByConditionCount(condition string, pars []interface{}, chartPermissionIdList []string) (count int, err error) {
 	o := global.DbMap[utils.DbNameReport]
@@ -69,7 +84,7 @@ func GetOutsideReportListByConditionCount(condition string, pars []interface{},
 	}
 
 	err = o.Raw(sql, pars...).Scan(&count).Error
-	if err != nil && err != orm.ErrNoRows {
+	if err != nil {
 		return 0, err
 	}
 
@@ -85,7 +100,7 @@ t1.modify_time, t1.create_time, t1.report_code from outside_report t1
 left join chart_permission_search_key_word_mapping t2 on t1.classify_id = t2.classify_id  where 1 = 1 `
 	sql += condition
 	err = o.Raw(sql, pars...).Find(&list).Error
-	if err != nil && err != orm.ErrNoRows {
+	if err != nil {
 		return nil, err
 	}
 
@@ -111,6 +126,10 @@ func GetOutsideReportById(id int) (outsideReport *OutsideReport, err error) {
 
 	//err = o.QueryTable("outside_report").Filter("outside_report_id", id).One(outsideReport)
 	err = o.Raw("select * from outside_report where outside_report_id = ?", id).First(outsideReport).Error
+	if err != nil {
+		return
+	}
+	outsideReport.ConvertTimeStr()
 	return
 }
 

+ 60 - 1
models/report.go

@@ -10,6 +10,7 @@ import (
 	"time"
 
 	"github.com/rdlucklib/rdluck_tools/paging"
+	"gorm.io/gorm"
 )
 
 // 报告状态
@@ -91,6 +92,19 @@ type Report struct {
 	VoiceGenerateType   int       `description:"音频生成方式,0:系统生成,1:人工上传"`
 }
 
+func (m *Report) AfterFind(db *gorm.DB) (err error) {
+	m.CreateTime = utils.GormDateStrToDateStr(m.CreateTime)
+	return
+}
+
+// ConvertTimeStr
+// @Description: 转成需要输出的格式
+// @receiver m
+func (m *Report) ConvertTimeStr() {
+	m.CreateTime = utils.GormDateStrToDateStr(m.CreateTime)
+	return
+}
+
 type ReportList struct {
 	Id                 int                       `gorm:"column:id;primaryKey;autoIncrement" description:"报告Id"`
 	AddType            int                       `description:"新增方式:1:新增报告,2:继承报告"`
@@ -152,7 +166,15 @@ type ReportList struct {
 	ClassifyNameThird   string    `description:"三级分类名称"`
 	InheritReportId     int       `description:"待继承的报告ID"`
 }
-
+func (m *ReportList) AfterFind(db *gorm.DB) (err error) {
+	m.ModifyTime = utils.GormDateStrToDateStr(m.ModifyTime)
+	m.PublishTime = utils.GormDateStrToDateStr(m.PublishTime)
+	m.CreateTime = utils.GormDateStrToDateStr(m.CreateTime)
+	m.ApproveTime = utils.GormDateStrToDateStr(m.ApproveTime)
+	m.MsgSendTime = utils.GormDateStrToDateStr(m.MsgSendTime)
+	m.PrePublishTime = utils.GormDateStrToDateStr(m.PrePublishTime)
+	return
+}
 type ReportListResp struct {
 	List   []*ReportList
 	Paging *paging.PagingItem `description:"分页数据"`
@@ -420,10 +442,31 @@ type ReportDetail struct {
 	ReportCreateTime    time.Time `description:"报告时间创建时间"`
 }
 
+func (m *ReportDetail) AfterFind(db *gorm.DB) (err error) {
+	m.CreateTime = utils.GormDateStrToDateStr(m.CreateTime)
+	m.ModifyTime = utils.GormDateStrToDateStr(m.ModifyTime)
+	m.PublishTime = utils.GormDateStrToDateStr(m.PublishTime)
+	m.PrePublishTime = utils.GormDateStrToDateStr(m.PrePublishTime)
+
+	return
+}
+func (m *ReportDetail) ConvertTimeStr() {
+	m.CreateTime = utils.GormDateStrToDateStr(m.CreateTime)
+	m.ModifyTime = utils.GormDateStrToDateStr(m.ModifyTime)
+	m.PublishTime = utils.GormDateStrToDateStr(m.PublishTime)
+	m.PrePublishTime = utils.GormDateStrToDateStr(m.PrePublishTime)
+
+	return
+}
+
 func GetReportById(reportId int) (item *ReportDetail, err error) {
 	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM report WHERE id=?`
 	err = o.Raw(sql, reportId).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
 	return
 }
 
@@ -675,6 +718,10 @@ func GetReportDetailByClassifyId(classifyIdFirst, classifyIdSecond int) (item *R
 		sql = sql + ` AND classify_id_first=?   ORDER BY stage DESC LIMIT 1`
 		err = o.Raw(sql, classifyIdFirst).First(&item).Error
 	}
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
 	return
 }
 
@@ -848,6 +895,10 @@ func GetReportByReportId(reportId int) (item *Report, err error) {
 	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM report WHERE id = ?`
 	err = o.Raw(sql, reportId).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
 	return
 }
 
@@ -856,6 +907,10 @@ func GetReportByOldReportId(reportId int) (item *Report, err error) {
 	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM report WHERE old_report_id = ?`
 	err = o.Raw(sql, reportId).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
 	return
 }
 
@@ -1425,6 +1480,10 @@ func (m *Report) GetItemById(id int) (item *Report, err error) {
 	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM report WHERE id = ? LIMIT 1`
 	err = o.Raw(sql, id).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertTimeStr()
 	return
 }
 

+ 4 - 4
models/target.go

@@ -242,10 +242,10 @@ func GetEdbinfoListCount(condition string, pars []interface{}, mobile string, ro
 }
 
 type EdbinfoItem struct {
-	TradeCode    string  `orm:"column(TRADE_CODE);pk" description:"指标code"`
-	SecName      string  `orm:"column(SEC_NAME);" description:"指标名称"`
-	Unit         string  `orm:"column(UNIT);" description:"单位"`
-	Remark       string  `orm:"column(REMARK);" description:"备注"`
+	TradeCode    string  `gorm:"column:TRADE_CODE;primaryKey" orm:"column(TRADE_CODE);pk" description:"指标code"`
+	SecName      string  `gorm:"column:SEC_NAME" orm:"column(SEC_NAME);" description:"指标名称"`
+	Unit         string  `gorm:"column:UNIT" orm:"column(UNIT);" description:"单位"`
+	Remark       string  `gorm:"column:REMARK" orm:"column(REMARK);" description:"备注"`
 	Frequency    string  `description:"频度"`
 	ClassifyId   int     `description:"分类id"`
 	ClassifyName string  `description:"分类名称"`

+ 6 - 0
services/data/edb_info.go

@@ -277,6 +277,12 @@ func edbInfoRefreshAll(refreshAll bool, newBaseEdbInfoArr, newBasePredictEdbInfo
 		if bv.StartDate == "0000-00-00" {
 			continue
 		}
+		if bv.StartDate == "" {
+			bv.StartDate = utils.BASE_START_DATE
+		}
+		if bv.EndDate == "" {
+			bv.EndDate = utils.BASE_START_DATE
+		}
 		//开始时间
 		startDate = ``
 		if refreshAll { //刷新所有数据,用开始时间作为起始日期去刷新

+ 22 - 0
utils/sql.go

@@ -3,6 +3,7 @@ package utils
 import (
 	"errors"
 	"fmt"
+	"regexp"
 )
 
 type Driver string
@@ -64,3 +65,24 @@ func NeedDateOrTimeFormat(driver string) bool {
 	}
 	return false
 }
+
+func ReplaceDriverKeywords(driver string, sql string) string {
+	dbDriver, _ := getDriverInstance(driver)
+	rules := map[Driver]map[string]string{
+		DM: {
+			"admin": `"admin"`,
+			"value": `"value"`,
+		},
+	}
+	replacements, ok := rules[dbDriver]
+	if !ok {
+		return sql
+	}
+	for keyword, replace := range replacements {
+		// 仅替换单独的单词,复合单词含关键词不管
+		pattern := fmt.Sprintf(`\b%s\b`, regexp.QuoteMeta(keyword))
+		re := regexp.MustCompile(pattern)
+		sql = re.ReplaceAllString(sql, replace)
+	}
+	return sql
+}