Roc 2 månader sedan
förälder
incheckning
8c72ff210b

+ 6 - 1
models/base_from_business.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/models/mgo"
 	"eta/eta_index_lib/utils"
@@ -149,8 +150,12 @@ func (m *BaseFromBusinessIndex) DelIndexItemList(indexCodeList []string) (err er
 // @return err error
 func (m *BaseFromBusinessIndex) GetMaxId() (maxId int, err error) {
 	//o := orm.NewOrm()
+	var intNull sql2.NullInt64
 	sql := `SELECT COALESCE(MAX(base_from_business_index_id), 0) as id FROM base_from_business_index limit 1`
-	err = global.DEFAULT_DB.Raw(sql).Scan(&maxId).Error
+	err = global.DEFAULT_DB.Raw(sql).Scan(&intNull).Error
+	if err == nil && intNull.Valid {
+		maxId = int(intNull.Int64)
+	}
 	//err = o.Raw(sql).QueryRow(&maxId)
 	return
 }

+ 6 - 3
models/base_from_business_data.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"errors"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
@@ -280,11 +281,13 @@ func (m *BaseFromBusinessData) GetEdbInfoMaxAndMinInfo(indexCode string) (result
 		return
 	}
 
-	var latestValue float64
 	sql = ` SELECT value AS latest_value FROM base_from_business_data WHERE index_code = ? ORDER BY data_time DESC LIMIT 1 `
 	//err = o.Raw(sql, indexCode).QueryRow(&latestValue)
-	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValue).Error
-	result.LatestValue = latestValue
+	var latestValueNull sql2.NullFloat64
+	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		result.LatestValue = latestValueNull.Float64
+	}
 
 	return
 }

+ 7 - 3
models/base_from_ccf.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
 	"fmt"
@@ -353,11 +354,14 @@ func (m *BaseFromCCFData) GetMaxAndMinDateByIndexCode(indexCode string) (item *E
 	sql := ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date,MIN(value) AS min_value,MAX(value) AS max_value FROM base_from_ccf_data WHERE index_code=? `
 	//err = o.Raw(sql, indexCode).QueryRow(&item)
 	err = global.DEFAULT_DB.Raw(sql, indexCode).First(&item).Error
-	var latest_value float64
 	sql = ` SELECT value AS latest_value FROM base_from_ccf_data WHERE index_code=? ORDER BY data_time DESC LIMIT 1 `
 	//err = o.Raw(sql, indexCode).QueryRow(&latest_value)
-	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latest_value).Error
-	item.LatestValue = latest_value
+	var latestValueNull sql2.NullFloat64
+	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		item.LatestValue = latestValueNull.Float64
+	}
+
 	return
 }
 

+ 5 - 5
models/base_from_coalmine.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
 	"gorm.io/gorm"
@@ -146,14 +147,13 @@ func (m *BaseFromCoalmineMapping) GetMaxAndMinDateByIndexCode(indexCode string)
 	}
 
 	// 获取最新值
-	var latest_value float64
 	sql = ` SELECT value AS latest_value FROM base_from_sci99_data WHERE index_code=? ORDER BY data_time DESC LIMIT 1 `
 	//err = o.Raw(sql, indexCode).QueryRow(&latest_value)
-	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latest_value).Error
-	if err != nil {
-		return
+	var latestValueNull sql2.NullFloat64
+	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		item.LatestValue = latestValueNull.Float64
 	}
-	item.LatestValue = latest_value
 
 	return
 }

+ 6 - 3
models/base_from_gpr_risk.go

@@ -2,6 +2,7 @@ package models
 
 import (
 	"bytes"
+	sql2 "database/sql"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
 	"fmt"
@@ -303,12 +304,14 @@ func (y *BaseFromGprRiskData) GetMaxAndMinDateByIndexCode(indexCode string) (ite
 	sql := ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date,MIN(value) AS min_value,MAX(value) AS max_value FROM base_from_gpr_risk_data WHERE index_code=? `
 	//err = o.Raw(sql, indexCode).QueryRow(&item)
 	err = global.DEFAULT_DB.Raw(sql, indexCode).First(&item).Error
-	var latest_value float64
 	sql = ` SELECT value AS latest_value FROM %s WHERE index_code=? ORDER BY data_time DESC LIMIT 1 `
 	sql = fmt.Sprintf(sql, "base_from_gpr_risk_data")
-	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latest_value).Error
+	var latestValueNull sql2.NullFloat64
+	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		item.LatestValue = latestValueNull.Float64
+	}
 	//err = o.Raw(sql, indexCode).QueryRow(&latest_value)
-	item.LatestValue = latest_value
 	return
 }
 

+ 5 - 5
models/base_from_mtjh.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
 	"fmt"
@@ -336,14 +337,13 @@ func (m *BaseFromMtjhMapping) GetMaxAndMinDateByIndexCode(indexCode string) (ite
 	}
 
 	// 获取最新值
-	var latest_value float64
 	sql = fmt.Sprintf(` SELECT value AS deal_value FROM %s WHERE index_code=? ORDER BY data_time DESC LIMIT 1 `, tableName)
 	//err = o.Raw(sql, indexCode).QueryRow(&latest_value)
-	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latest_value).Error
-	if err != nil {
-		return
+	var latestValueNull sql2.NullFloat64
+	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		item.LatestValue = latestValueNull.Float64
 	}
-	item.LatestValue = latest_value
 
 	return
 }

+ 5 - 5
models/base_from_mysteel_chemical.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
 	"fmt"
@@ -581,14 +582,13 @@ func (d *BaseFromMysteelChemicalData) GetMysteelIndexInfoMaxAndMinInfo(indexCode
 	}
 
 	// 获取最新值
-	var latest_value float64
 	sql = ` SELECT value AS latest_value FROM base_from_mysteel_chemical_data WHERE index_code=? ORDER BY data_time DESC LIMIT 1 `
 	//err = o.Raw(sql, indexCode).QueryRow(&latest_value)
-	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latest_value).Error
-	if err != nil {
-		return
+	var latestValueNull sql2.NullFloat64
+	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		item.LatestValue = latestValueNull.Float64
 	}
-	item.LatestValue = latest_value
 
 	return
 }

+ 7 - 1
models/base_from_mysteel_chemical_classify.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
 	"strconv"
@@ -34,7 +35,12 @@ func GetMysteelClassifyMaxSort(parentId int) (sort int, err error) {
 	//o := orm.NewOrm()
 	sql := `SELECT Max(sort) AS sort FROM base_from_mysteel_chemical_classify WHERE parent_id=? `
 	//err = o.Raw(sql, parentId).QueryRow(&sort)
-	err = global.DEFAULT_DB.Raw(sql, parentId).Scan(&sort).Error
+	var intNull sql2.NullInt64
+	err = global.DEFAULT_DB.Raw(sql, parentId).Scan(&intNull).Error
+	if err == nil && intNull.Valid {
+		sort = int(intNull.Int64)
+	}
+
 	return
 }
 

+ 5 - 5
models/base_from_sci99.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
 	"fmt"
@@ -333,14 +334,13 @@ func (m *BaseFromSci99Index) GetMaxAndMinDateByIndexCode(indexCode string) (item
 	}
 
 	// 获取最新值
-	var latest_value float64
 	sql = ` SELECT value AS latest_value FROM base_from_sci99_data WHERE index_code=? ORDER BY data_time DESC LIMIT 1 `
 	//err = o.Raw(sql, indexCode).QueryRow(&latest_value)
-	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latest_value).Error
-	if err != nil {
-		return
+	var latestValueNull sql2.NullFloat64
+	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		item.LatestValue = latestValueNull.Float64
 	}
-	item.LatestValue = latest_value
 
 	return
 }

+ 5 - 5
models/base_from_smm.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
 	"fmt"
@@ -345,14 +346,13 @@ func GetSmmIndexInfoMaxAndMinInfo(indexCode string) (item *EdbInfoMaxAndMinInfo,
 	}
 
 	// 获取最新值
-	var latest_value float64
 	sql = ` SELECT value AS latest_value FROM base_from_smm_data WHERE index_code=? ORDER BY data_time DESC LIMIT 1 `
 	//err = o.Raw(sql, indexCode).QueryRow(&latest_value)
-	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latest_value).Error
-	if err != nil {
-		return
+	var latestValueNull sql2.NullFloat64
+	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		item.LatestValue = latestValueNull.Float64
 	}
-	item.LatestValue = latest_value
 
 	return
 }

+ 5 - 5
models/base_from_ths_hf_data.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
 	"fmt"
@@ -214,13 +215,12 @@ func (m *BaseFromThsHfData) GetIndexMinMax(indexCode string) (item *EdbInfoMaxAn
 	}
 
 	// 获取最新值
-	var lastVal float64
+	var latestValueNull sql2.NullFloat64
 	sql = fmt.Sprintf(`SELECT %s AS latest_value FROM %s WHERE %s = ? ORDER BY %s DESC LIMIT 1`, m.Cols().Value, m.TableName(), m.Cols().IndexCode, m.Cols().DataTime)
-	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&lastVal).Error
-	if err != nil {
-		return
+	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		item.LatestValue = latestValueNull.Float64
 	}
-	item.LatestValue = lastVal
 
 	return
 }

+ 7 - 3
models/base_from_usda_fas.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
 	"fmt"
@@ -305,12 +306,15 @@ func (y *BaseFromUsdaFasData) GetMaxAndMinDateByIndexCode(indexCode string) (ite
 	sql := ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date,MIN(value) AS min_value,MAX(value) AS max_value FROM base_from_usda_fas_data WHERE index_code=? `
 	//err = o.Raw(sql, indexCode).QueryRow(&item)
 	err = global.DEFAULT_DB.Raw(sql, indexCode).First(&item).Error
-	var latest_value float64
 	sql = ` SELECT value AS latest_value FROM %s WHERE index_code=? ORDER BY data_time DESC LIMIT 1 `
 	sql = fmt.Sprintf(sql, "base_from_usda_fas_data")
 	//err = o.Raw(sql, indexCode).QueryRow(&latest_value)
-	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latest_value).Error
-	item.LatestValue = latest_value
+	var latestValueNull sql2.NullFloat64
+	err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		item.LatestValue = latestValueNull.Float64
+	}
+
 	return
 }
 

+ 1 - 1
models/data_stat/edb_info_delete_log.go

@@ -54,6 +54,6 @@ type EdbInfoDeleteLogNum struct {
 
 func GetEdbDeleteLogNumByCreateTime(startDate, endDate string) (item []*EdbInfoDeleteLogNum, err error) {
 	sql := ` SELECT source, terminal_code, count(*) as num FROM edb_info_delete_log WHERE create_time >= ? and create_time < ? group by source, terminal_code `
-	err = global.DEFAULT_DB.Raw(sql, startDate, endDate).Scan(&item).Error
+	err = global.DEFAULT_DB.Raw(sql, startDate, endDate).Find(&item).Error
 	return
 }

+ 1 - 1
models/data_stat/edb_source_stat.go

@@ -30,7 +30,7 @@ func GetEdbSourceStatByCondition(condition string, pars []interface{}) (item []*
 	if condition != "" {
 		sql += condition
 	}
-	err = global.DEFAULT_DB.Raw(sql, pars...).Scan(&item).Error
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&item).Error
 	return
 }
 

+ 6 - 1
models/edb_classify.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"errors"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
@@ -83,8 +84,12 @@ func GetEdbClassifyCount(classifyName string, parentId int, classifyType uint8)
 
 // GetEdbClassifyMaxSort 获取分类下最大的排序数
 func GetEdbClassifyMaxSort(parentId int, classifyType uint8) (sort int, err error) {
+	var sortNull sql2.NullInt64
 	sql := `SELECT Max(sort) AS sort FROM edb_classify WHERE parent_id=? AND classify_type=? `
-	err = global.DEFAULT_DB.Raw(sql, parentId, classifyType).Scan(&sort).Error
+	err = global.DEFAULT_DB.Raw(sql, parentId, classifyType).Scan(&sortNull).Error
+	if err == nil && sortNull.Valid {
+		sort = int(sortNull.Int64)
+	}
 
 	return
 }

+ 1 - 1
models/edb_data_base.go

@@ -88,7 +88,7 @@ func GetEdbDataAllByEdbCode(edbCode string, source, subSource, limit int) (items
 		pars = append(pars, limit)
 	}
 	sql = fmt.Sprintf(sql, tableName)
-	err = global.DEFAULT_DB.Raw(sql, pars...).Scan(&items).Error
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 	return
 }
 

+ 2 - 2
models/edb_data_calculate_zjpj.go

@@ -23,8 +23,8 @@ type EdbDataCalculateZjpj struct {
 	DataTimestamp int64     `gorm:"column:data_timestamp" description:"数据日期时间戳"`
 }
 
-func (e *EdbDataCalculateZjpj) AfterFind(db *gorm.DB) (err error) {
-	e.DataTime = utils.GormDateStrToDateStr(e.DataTime)
+func (m *EdbDataCalculateZjpj) AfterFind(db *gorm.DB) (err error) {
+	m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
 
 	return
 }

+ 17 - 9
models/edb_info.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"encoding/json"
 	"errors"
 	"eta/eta_index_lib/global"
@@ -205,7 +206,7 @@ type EdbClassifyItemsButton struct {
 // GetEdbInfoByName 根据指标名称获取所有的指标数据列表
 func GetEdbInfoByName(edbName string) (items []*EdbInfoList, err error) {
 	sql := ` SELECT * FROM edb_info WHERE edb_name=? `
-	err = global.DEFAULT_DB.Raw(sql, edbName).Scan(&items).Error
+	err = global.DEFAULT_DB.Raw(sql, edbName).Find(&items).Error
 
 	if err != nil {
 		return
@@ -567,12 +568,15 @@ func GetEdbInfoMaxAndMinInfo(source, subSource int, edbCode string) (item *EdbIn
 	sql = fmt.Sprintf(sql, tableName)
 	err = global.DEFAULT_DB.Raw(sql, edbCode).First(&item).Error
 
-	var latest_value float64
 	sql = ` SELECT value AS latest_value FROM %s WHERE edb_code=? ORDER BY data_time DESC LIMIT 1 `
 	sql = fmt.Sprintf(sql, tableName)
-	// todo 测试查询单个字段
-	err = global.DEFAULT_DB.Raw(sql, edbCode).Scan(&latest_value).Error
-	item.LatestValue = latest_value
+
+	var latestValueNull sql2.NullFloat64
+	err = global.DEFAULT_DB.Raw(sql, edbCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		item.LatestValue = latestValueNull.Float64
+	}
+
 	return
 }
 
@@ -734,7 +738,7 @@ func GetEdbInfoCalculateListByCondition(condition string, pars []interface{}) (i
 	if condition != "" {
 		sql += condition
 	}
-	err = global.DEFAULT_DB.Raw(sql, pars...).Scan(&items).Error
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 
 	return
 }
@@ -779,7 +783,7 @@ func GetEdbDataListAllV1ByTo(to *gorm.DB, condition string, pars []interface{},
 	} else {
 		sql += ` ORDER BY data_time DESC `
 	}
-	err = to.Raw(sql, pars...).Scan(&items).Error
+	err = to.Raw(sql, pars...).Find(&items).Error
 	if err != nil {
 		return
 	}
@@ -1706,10 +1710,14 @@ type ResetEdbClassifyReq struct {
 
 // GetEdbInfoMaxSortByClassifyId 获取分类下指标的最大的排序数
 func GetEdbInfoMaxSortByClassifyId(classifyId int) (sort int, err error) {
-	//o := orm.NewOrm()
+	var intNull sql2.NullInt64
 	sql := `SELECT Max(sort) AS sort FROM edb_info WHERE classify_id=? `
 	//err = o.Raw(sql, classifyId).QueryRow(&sort)
-	err = global.DEFAULT_DB.Raw(sql, classifyId).Scan(&sort).Error
+	err = global.DEFAULT_DB.Raw(sql, classifyId).Scan(&intNull).Error
+	if err == nil && intNull.Valid {
+		sort = int(intNull.Int64)
+	}
+
 	return
 }
 

+ 1 - 1
models/edb_info_relation.go

@@ -39,7 +39,7 @@ func GetEdbInfoRelationByChildEdbInfoId(edbInfoId int) (item *EdbInfoRelation, e
 // GetEdbInfoRelationListByChildEdbInfoId 根据间接引用中的的计算指标ID查询引用列表
 func GetEdbInfoRelationListByChildEdbInfoId(edbInfoId int) (items []*EdbInfoRelation, err error) {
 	msql := ` SELECT * FROM edb_info_relation WHERE relation_type=1 AND child_edb_info_id=?`
-	err = global.DEFAULT_DB.Raw(msql, edbInfoId).Scan(&items).Error
+	err = global.DEFAULT_DB.Raw(msql, edbInfoId).Find(&items).Error
 	return
 }
 

+ 1 - 1
models/edb_refresh/edb_refresh_default_config.go

@@ -119,7 +119,7 @@ func GetDefaultRefreshEdbInfoListBySourceAndSubSource(source, subSource int, fre
 	sql := `SELECT a.* FROM edb_info a 
 LEFT JOIN edb_refresh_mapping b ON a.edb_info_id = b.edb_info_id
 WHERE a.source = ? AND a.sub_source = ? AND a.frequency IN (?)  AND b.edb_info_id is null`
-	err = global.DEFAULT_DB.Raw(sql, source, subSource, frequencyList).Scan(&list).Error
+	err = global.DEFAULT_DB.Raw(sql, source, subSource, frequencyList).Find(&list).Error
 
 	return
 }

+ 2 - 2
models/excel/excel_info.go

@@ -46,7 +46,7 @@ func GetNoContentExcelInfoAll(source, userId int) (items []*ExcelClassifyItems,
 		pars = append(pars, userId)
 	}
 	sql += `  ORDER BY sort asc,create_time desc `
-	err = global.DEFAULT_DB.Raw(sql, pars...).Scan(&items).Error
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 
 	return
 }
@@ -128,6 +128,6 @@ func (m *ExcelInfo) Update(cols []string) (err error) {
 func (m *ExcelInfo) GetItemById(id int) (item *ExcelInfo, err error) {
 	sql := `SELECT * FROM excel_info WHERE excel_info_id = ? LIMIT 1`
 	err = global.DEFAULT_DB.Raw(sql, id).First(&item).Error
-	
+
 	return
 }

+ 1 - 1
models/factor_edb_series_calculate_data_qjjs.go

@@ -193,7 +193,7 @@ func (m *FactorEdbSeriesCalculateDataQjjs) GetEdbDataList(seriesId int, edbInfoI
 	sql += ` ORDER BY data_time ASC `
 	sql = fmt.Sprintf(sql, m.TableName())
 
-	err = global.DEFAULT_DB.Raw(sql, pars...).Scan(&list).Error
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&list).Error
 
 	return
 }

+ 1 - 1
models/factor_edb_series_chart_mapping.go

@@ -157,9 +157,9 @@ func (m *FactorEdbSeriesChartMapping) GetPageItemsByCondition(condition string,
 
 // GetDistinctSeriesIdByChartId 获取图表关联的系列ID
 func (m *FactorEdbSeriesChartMapping) GetDistinctSeriesIdByChartId(chartId int) (seriesIds []int, err error) {
-
 	sql := fmt.Sprintf(`SELECT DISTINCT %s FROM %s WHERE %s = ?`, m.Cols().FactorEdbSeriesId, m.TableName(), m.Cols().ChartInfoId)
 	err = global.DEFAULT_DB.Raw(sql, chartId).Scan(&seriesIds).Error
+
 	return
 }
 

+ 1 - 1
models/factor_edb_series_mapping.go

@@ -164,6 +164,6 @@ func (m *FactorEdbSeriesMapping) Format2Item() (item *FactorEdbSeriesMappingItem
 
 func (m *FactorEdbSeriesMapping) GetItemBySeriesId(seriesId int) (items []*FactorEdbSeriesMapping, err error) {
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? `, m.TableName(), m.Cols().FactorEdbSeriesId)
-	err = global.DEFAULT_DB.Raw(sql, seriesId).Scan(&items).Error
+	err = global.DEFAULT_DB.Raw(sql, seriesId).Find(&items).Error
 	return
 }

+ 8 - 3
models/future_good/future_good_edb_info.go

@@ -1,6 +1,7 @@
 package future_good
 
 import (
+	sql2 "database/sql"
 	"errors"
 	"eta/eta_index_lib/global"
 	"eta/eta_index_lib/utils"
@@ -149,6 +150,7 @@ type FutureGoodEdbInfoMaxAndMinInfo struct {
 	LatestValue float64 `description:"最新值"`
 	LatestDate  string  `description:"实际数据最新日期"`
 }
+
 func (e *FutureGoodEdbInfoMaxAndMinInfo) ConvertDateTimeStr() {
 	e.MinDate = utils.GormDateStrToDateStr(e.MinDate)
 	e.MaxDate = utils.GormDateStrToDateStr(e.MaxDate)
@@ -165,10 +167,13 @@ func GetEdbInfoMaxAndMinInfo(futureGoodEdbCode string) (item *FutureGoodEdbInfoM
 		return
 	}
 
-	var latest_value float64
+	var latestValueNull sql2.NullFloat64
 	sql = ` SELECT close AS latest_value FROM future_good_edb_data WHERE future_good_edb_code=? ORDER BY data_time DESC LIMIT 1 `
-	err = global.DEFAULT_DB.Raw(sql, futureGoodEdbCode).Scan(&latest_value).Error
-	item.LatestValue = latest_value
+	err = global.DEFAULT_DB.Raw(sql, futureGoodEdbCode).Scan(&latestValueNull).Error
+	if err == nil && latestValueNull.Valid {
+		item.LatestValue = latestValueNull.Float64
+	}
+
 	item.ConvertDateTimeStr()
 	return
 }

+ 1 - 1
models/supply_analysis/variety_edb_info.go

@@ -24,7 +24,7 @@ type VarietyEdbInfo struct {
 // GetAllVarietyEdbInfoByVarietyId 根据品种id获取所有的指标
 func GetAllVarietyEdbInfoByVarietyId(varietyId int) (items []*VarietyEdbInfo, err error) {
 	sql := `SELECT * FROM variety_edb_info AS a WHERE a.variety_id = ? ORDER BY a.variety_edb_id ASC `
-	err = global.DEFAULT_DB.Raw(sql, varietyId).Scan(&items).Error
+	err = global.DEFAULT_DB.Raw(sql, varietyId).Find(&items).Error
 
 	return
 }

+ 2 - 2
models/trade_analysis/trade_futures_company.go

@@ -94,7 +94,7 @@ func (m *TradeFuturesCompany) GetItemsByCondition(condition string, pars []inter
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	err = global.DEFAULT_DB.Raw(sql, pars...).Scan(&items).Error
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -110,7 +110,7 @@ func (m *TradeFuturesCompany) GetPageItemsByCondition(condition string, pars []i
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
 	pars = append(pars, startSize, pageSize)
-	err = global.DEFAULT_DB.Raw(sql, pars...).Scan(&items).Error
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 	return
 }
 

+ 16 - 6
utils/common.go

@@ -1078,13 +1078,13 @@ func GetFrequencyEndDay(currDate time.Time, frequency string) (endDate time.Time
 // 小于0,代表右侧是高频(例:左侧:周度,右侧:日度)
 func CheckFrequency(leftFrequency, rightFrequency string) int {
 	frequencyMap := map[string]int{
-		"年度":  0,
+		"年度":   0,
 		"半年度": 1,
-		"季度":  2,
-		"月度":  3,
-		"旬度":  4,
-		"周度":  5,
-		"日度":  6,
+		"季度":   2,
+		"月度":   3,
+		"旬度":   4,
+		"周度":   5,
+		"日度":   6,
 	}
 
 	return frequencyMap[leftFrequency] - frequencyMap[rightFrequency]
@@ -1130,6 +1130,10 @@ func TimeTransferString(format string, t time.Time) string {
 	if t.IsZero() {
 		return ""
 	}
+	if strings.Contains(str, "0001-01-01") {
+		return ""
+	}
+
 	return str
 }
 
@@ -1755,6 +1759,9 @@ func GormDateStrToDateTimeStr(originalString string) (formatStr string) {
 	if originalString == `` {
 		return
 	}
+	if strings.Contains(originalString, "0001-01-01") {
+		return
+	}
 
 	formatStr = originalString
 	if !strings.Contains(originalString, "T") {
@@ -1782,6 +1789,9 @@ func GormDateStrToDateStr(originalString string) (formatStr string) {
 	if originalString == `` {
 		return
 	}
+	if strings.Contains(originalString, "0001-01-01") {
+		return
+	}
 
 	formatStr = originalString
 	if !strings.Contains(originalString, "T") {