xyxie vor 5 Monaten
Ursprung
Commit
01de2385a0

+ 1 - 1
models/base_from_baiinfo.go

@@ -286,7 +286,7 @@ func GetBaiinfoIndexInfoMaxAndMinInfo(indexCode string) (item *EdbInfoMaxAndMinI
 	//o := orm.NewOrm()
 	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_baiinfo_data WHERE index_code=? `
 	//err = o.Raw(sql, indexCode).QueryRow(&item)
-	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).First(&item).Error
 	return
 }
 

+ 1 - 1
models/base_from_bloomberg.go

@@ -170,7 +170,7 @@ func MultiInsertOrUpdateBaseFromBloombergData(inserts, updates []*BaseFromBloomb
 func GetBaseFromBloombergIndexMinMax(indexCode string) (item *EdbInfoMaxAndMinInfo, err error) {
 	//o := orm.NewOrm()
 	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_bloomberg_data WHERE index_code = ? `
-	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).First(&item).Error
 	//err = o.Raw(sql, indexCode).QueryRow(&item)
 	if err != nil {
 		return

+ 1 - 1
models/base_from_business_data.go

@@ -280,7 +280,7 @@ func (m *BaseFromBusinessData) GetEdbInfoMaxAndMinInfo(indexCode string) (result
 	sql := ``
 	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_business_data WHERE index_code = ? `
 	//err = o.Raw(sql, indexCode).QueryRow(&result)
-	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).Find(&result).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).First(&result).Error
 	if err != nil {
 		return
 	}

+ 1 - 1
models/base_from_ccf.go

@@ -356,7 +356,7 @@ func (m *BaseFromCCFData) GetMaxAndMinDateByIndexCode(indexCode string) (item *E
 	//o := orm.NewOrm()
 	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_DmSQL.Raw(sql, indexCode).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).First(&item).Error
 	return
 }
 

+ 1 - 1
models/base_from_fenwei.go

@@ -366,7 +366,7 @@ func (y *BaseFromFenweiData) GetMaxAndMinDateByIndexCode(indexCode string) (item
 	//o := orm.NewOrm()
 	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_fenwei_data WHERE index_code=? `
 	//err = o.Raw(sql, indexCode).QueryRow(&item)
-	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).First(&item).Error
 	return
 }
 

+ 2 - 2
models/base_from_mysteel_chemical.go

@@ -291,7 +291,7 @@ func (m *BaseFromMysteelChemicalIndex) GetIndexItem(indexCode string) (item *Bas
 	//o := orm.NewOrm()
 	sql := `SELECT * FROM base_from_mysteel_chemical_index WHERE index_code = ? `
 	//err = o.Raw(sql, indexCode).QueryRow(&item)
-	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).Scan(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).First(&item).Error
 	return
 }
 
@@ -616,7 +616,7 @@ func (d *BaseFromMysteelChemicalData) GetMysteelIndexInfoMaxAndMinInfo(indexCode
 	//o := orm.NewOrm()
 	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_mysteel_chemical_data WHERE index_code=? `
 	//err = o.Raw(sql, indexCode).QueryRow(&item)
-	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).First(&item).Error
 
 	if err != nil {
 		return

+ 1 - 1
models/base_from_smm.go

@@ -307,7 +307,7 @@ func GetSmmIndexInfoMaxAndMinInfo(indexCode string) (item *EdbInfoMaxAndMinInfo,
 	//o := orm.NewOrm()
 	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_smm_data WHERE index_code=? `
 	//err = o.Raw(sql, indexCode).QueryRow(&item)
-	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).First(&item).Error
 	if err != nil {
 		return
 	}

+ 1 - 1
models/base_from_yongyi.go

@@ -280,7 +280,7 @@ func (y *BaseFromYongyiData) GetMaxAndMinDateByIndexCode(indexCode string) (item
 	//o := orm.NewOrm()
 	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_yongyi_data WHERE index_code=? `
 	//err = o.Raw(sql, indexCode).QueryRow(&item)
-	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, indexCode).First(&item).Error
 	return
 }
 

+ 3 - 0
models/edb_data_base.go

@@ -34,6 +34,9 @@ type EdbData struct {
 
 // AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
 func (m *EdbData) AfterFind(db *gorm.DB) (err error) {
+	if m.DataTime == "" {
+        return
+    }
 	minDateTmp, err := time.ParseInLocation(utils.FormatDateWallWithLoc, m.DataTime, time.Local)
 	if err != nil {
 		return

+ 17 - 11
models/edb_info.go

@@ -421,16 +421,20 @@ type EdbInfoMaxAndMinInfo struct {
 
 // AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
 func (m *EdbInfoMaxAndMinInfo) AfterFind(db *gorm.DB) (err error) {
-	minDateTmp, err := time.ParseInLocation(utils.FormatDateWallWithLoc, m.MinDate, time.Local)
-	if err != nil {
-		return
+	if m.MinDate != "" {
+		minDateTmp, err := time.ParseInLocation(utils.FormatDateWallWithLoc, m.MinDate, time.Local)
+		if err != nil {
+			return
+		}
+		m.MinDate = minDateTmp.Format(utils.FormatDate)
 	}
-	m.MinDate = minDateTmp.Format(utils.FormatDate)
-	maxDateTmp, err := time.ParseInLocation(utils.FormatDateWallWithLoc, m.MaxDate, time.Local)
-	if err != nil {
-		return
+	if m.MaxDate != "" {
+		maxDateTmp, err := time.ParseInLocation(utils.FormatDateWallWithLoc, m.MaxDate, time.Local)
+		if err != nil {
+			return
+		}
+		m.MaxDate = maxDateTmp.Format(utils.FormatDate)
 	}
-	m.MaxDate = maxDateTmp.Format(utils.FormatDate)
 	return
 }
 
@@ -452,8 +456,7 @@ func GetEdbInfoMaxAndMinInfo(source, subSource int, edbCode string) (item *EdbIn
 	tableName := GetEdbDataTableName(source, subSource)
 	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 %s WHERE edb_code=? `
 	sql = fmt.Sprintf(sql, tableName)
-	err = global.DEFAULT_DmSQL.Raw(sql, edbCode).Find(&item).Error
-	//fmt.Println("item.MinDate", item.MinDate)
+	err = global.DEFAULT_DmSQL.Raw(sql, edbCode).First(&item).Error
 
 	/*itemTmp.MinDate = itemTmp.MinDate.In(time.Local)
 	itemTmp.MaxDate = itemTmp.MaxDate.In(time.Local)
@@ -483,6 +486,9 @@ type EdbIndoDataUpdateTime struct {
 
 // AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
 func (m *EdbIndoDataUpdateTime) AfterFind(db *gorm.DB) (err error) {
+	if m.MinDate == "" {
+		return
+	}
 	minDateTmp, err := time.ParseInLocation(utils.FormatDateWallWithLoc, m.MinDate, time.Local)
 	if err != nil {
 		return
@@ -498,7 +504,7 @@ func GetEdbDataUpdateTimeByModify(source, subSource int, edbCode string, dataUpd
 	tableName := GetEdbDataTableName(source, subSource)
 	sql = ` SELECT MIN(data_time) AS min_date FROM %s WHERE edb_code=? and modify_time>=?`
 	sql = fmt.Sprintf(sql, tableName)
-	err = global.DEFAULT_DmSQL.Raw(sql, edbCode, dataUpdateTime).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, edbCode, dataUpdateTime).First(&item).Error
 	return
 }
 

+ 7 - 1
models/edb_terminal.go

@@ -52,7 +52,13 @@ func GetEdbTerminalByCode(terminalCode string) (item *EdbTerminal, err error) {
 // GetEdbCountGroupByTerminal 获取终端code分组总数
 func GetEdbCountGroupByTerminal(source int) (list []TerminalCodeCountGroup, err error) {
 
-	sql := `select terminal_code,count(1) total from edb_info where source = ? AND no_update=0 AND terminal_code != "" group by terminal_code; `
+	//sql := `select terminal_code, count(1) as total from edb_info where source = ? AND no_update=0 AND terminal_code != "" AND terminal_code IS NOT NULL GROUP BY terminal_code`
+	sql := `SELECT "terminal_code", COUNT(*)  AS total
+	FROM "eta_index"."edb_info" ei
+	WHERE "source" = ?
+	  AND "no_update" = 0
+	  AND "terminal_code" IS NOT NULL
+	GROUP BY "terminal_code"`
 	err = global.DEFAULT_DmSQL.Raw(sql, source).Scan(&list).Error
 	return
 }

+ 13 - 9
models/future_good/future_good_edb_info.go

@@ -131,16 +131,20 @@ type FutureGoodEdbInfoMaxAndMinInfo struct {
 
 // AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
 func (m *FutureGoodEdbInfoMaxAndMinInfo) AfterFind(db *gorm.DB) (err error) {
-	minDateTmp, err := time.ParseInLocation(utils.FormatDateWallWithLoc, m.MinDate, time.Local)
-	if err != nil {
-		return
+	if m.MinDate != "" {
+		minDateTmp, err := time.ParseInLocation(utils.FormatDateWallWithLoc, m.MinDate, time.Local)
+		if err != nil {
+			return
+		}
+		m.MinDate = minDateTmp.Format(utils.FormatDate)
 	}
-	m.MinDate = minDateTmp.Format(utils.FormatDate)
-	maxDateTmp, err := time.ParseInLocation(utils.FormatDateWallWithLoc, m.MaxDate, time.Local)
-	if err != nil {
-		return
+	if m.MaxDate != "" {
+		maxDateTmp, err := time.ParseInLocation(utils.FormatDateWallWithLoc, m.MaxDate, time.Local)
+		if err != nil {
+			return
+		}
+		m.MaxDate = maxDateTmp.Format(utils.FormatDate)
 	}
-	m.MaxDate = maxDateTmp.Format(utils.FormatDate)
 	return
 }
 
@@ -149,7 +153,7 @@ func GetEdbInfoMaxAndMinInfo(futureGoodEdbCode string) (item *FutureGoodEdbInfoM
 
 	sql := ``
 	sql = ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date,MIN(close) AS min_value,MAX(close) AS max_value FROM future_good_edb_data WHERE future_good_edb_code=? `
-	err = global.DEFAULT_DmSQL.Raw(sql, futureGoodEdbCode).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, futureGoodEdbCode).First(&item).Error
 
 	var latest_value float64
 	sql = ` SELECT close AS latest_value FROM future_good_edb_data WHERE future_good_edb_code=? ORDER BY data_time DESC LIMIT 1 `

+ 1 - 0
services/base_from_mysteel_chemical.go

@@ -653,6 +653,7 @@ func RefreshDataFromMysteelChemical(edbCode, startDate, endDate string) (err err
 	if err != nil {
 		return
 	}
+	fmt.Println("tmpIndex.IndexCode", tmpIndex.IndexCode)
 
 	terminal, err := GetTerminal(utils.DATA_SOURCE_MYSTEEL_CHEMICAL, tmpIndex.TerminalCode)
 	if err != nil {