소스 검색

修改数据库为达梦

genlong 7 달 전
부모
커밋
e7b8ac8cf1

+ 130 - 63
models/data_manage/predict_edb_conf.go

@@ -1,9 +1,8 @@
 package data_manage
 
 import (
-	"eta_gn/eta_api/services/alarm_msg"
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
@@ -51,64 +50,87 @@ type PredictEdbConfAndData struct {
 	DataList         []*EdbDataList `description:"动态数据"`
 }
 
-// GetPredictEdbConfById 根据预测指标id获取预测指标配置信息
-func GetPredictEdbConfById(edbInfoId int) (item *PredictEdbConf, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM predict_edb_conf WHERE predict_edb_info_id=? `
-	err = o.Raw(sql, edbInfoId).QueryRow(&item)
-	return
-}
-
-// GetPredictEdbConfBySourceEdbInfoId 根据来源指标id获取配置
-func GetPredictEdbConfBySourceEdbInfoId(sourceEdbInfoId int) (item *PredictEdbConf, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM predict_edb_conf WHERE source_edb_info_id=? `
-	err = o.Raw(sql, sourceEdbInfoId).QueryRow(&item)
-	return
-}
+//// GetPredictEdbConfById 根据预测指标id获取预测指标配置信息
+//func GetPredictEdbConfById(edbInfoId int) (item *PredictEdbConf, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT * FROM predict_edb_conf WHERE predict_edb_info_id=? `
+//	err = o.Raw(sql, edbInfoId).QueryRow(&item)
+//	return
+//}
+//
+//// GetPredictEdbConfBySourceEdbInfoId 根据来源指标id获取配置
+//func GetPredictEdbConfBySourceEdbInfoId(sourceEdbInfoId int) (item *PredictEdbConf, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT * FROM predict_edb_conf WHERE source_edb_info_id=? `
+//	err = o.Raw(sql, sourceEdbInfoId).QueryRow(&item)
+//	return
+//}
 
 // GetPredictEdbConfCount 根据来源指标id获取被引用的次数
 func GetPredictEdbConfCount(sourceEdbInfoId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT COUNT(1) AS count FROM predict_edb_conf WHERE source_edb_info_id=? `
+	//err = o.Raw(sql, sourceEdbInfoId).QueryRow(&count)
+
 	sql := ` SELECT COUNT(1) AS count FROM predict_edb_conf WHERE source_edb_info_id=? `
-	err = o.Raw(sql, sourceEdbInfoId).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, sourceEdbInfoId).Scan(&count).Error
 	return
 }
 
-// AddPredictEdbConf 添加预测指标规则
-func AddPredictEdbConf(item *PredictEdbConf) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
-	return
-}
+//// AddPredictEdbConf 添加预测指标规则
+//func AddPredictEdbConf(item *PredictEdbConf) (lastId int64, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	lastId, err = o.Insert(item)
+//	return
+//}
 
 // AddPredictEdb 添加预测指标
 func AddPredictEdb(item *EdbInfo, calculateMappingItem *EdbInfoCalculateMapping, predictEdbConfList []*PredictEdbConf) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrmUsingDB("data")
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		tmpErr := tx.Rollback()
+	//		if tmpErr != nil {
+	//			go alarm_msg.SendAlarmMsg("AddPredictEdb 事务回滚失败,Err:"+tmpErr.Error(), 3)
+	//		}
+	//	} else {
+	//		err = tx.Commit()
+	//	}
+	//}()
+
+	to := global.DmSQL["data"].Begin()
+
 	defer func() {
 		if err != nil {
-			tmpErr := tx.Rollback()
-			if tmpErr != nil {
-				go alarm_msg.SendAlarmMsg("AddPredictEdb 事务回滚失败,Err:"+tmpErr.Error(), 3)
-			}
+			_ = to.Rollback()
 		} else {
-			err = tx.Commit()
+			_ = to.Commit()
 		}
 	}()
+
 	// 新增预测指标
-	edbInfoId, err := o.Insert(item)
+	//edbInfoId, err := to.Create(item)
+	//if err != nil {
+	//	return
+	//}
+	//item.EdbInfoId = int(edbInfoId)
+
+	err = to.Create(item).Error
 	if err != nil {
 		return
 	}
-	item.EdbInfoId = int(edbInfoId)
-
 	// 新增预测指标
 	calculateMappingItem.EdbInfoId = item.EdbInfoId
-	_, err = o.Insert(calculateMappingItem)
+	//_, err = o.Insert(calculateMappingItem)
+	//if err != nil {
+	//	return
+	//}
+
+	err = to.Create(calculateMappingItem).Error
 	if err != nil {
 		return
 	}
@@ -119,7 +141,12 @@ func AddPredictEdb(item *EdbInfo, calculateMappingItem *EdbInfoCalculateMapping,
 		for _, v := range predictEdbConfList {
 			v.PredictEdbInfoId = item.EdbInfoId
 		}
-		_, err = o.InsertMulti(lenPredictEdbConf, predictEdbConfList)
+		//_, err = o.InsertMulti(lenPredictEdbConf, predictEdbConfList)
+		//if err != nil {
+		//	return
+		//}
+
+		err = to.CreateInBatches(predictEdbConfList, utils.MultiAddNum).Error
 		if err != nil {
 			return
 		}
@@ -129,38 +156,63 @@ func AddPredictEdb(item *EdbInfo, calculateMappingItem *EdbInfoCalculateMapping,
 
 // EditPredictEdb 修改预测指标
 func EditPredictEdb(edbInfo *EdbInfo, predictEdbConfList []*PredictEdbConf, updateEdbInfoCol []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrmUsingDB("data")
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		tmpErr := tx.Rollback()
+	//		if tmpErr != nil {
+	//			go alarm_msg.SendAlarmMsg("AddPredictEdb 事务回滚失败,Err:"+tmpErr.Error(), 3)
+	//		}
+	//	} else {
+	//		err = tx.Commit()
+	//	}
+	//}()
+	to := global.DmSQL["data"].Begin()
+
 	defer func() {
 		if err != nil {
-			tmpErr := tx.Rollback()
-			if tmpErr != nil {
-				go alarm_msg.SendAlarmMsg("AddPredictEdb 事务回滚失败,Err:"+tmpErr.Error(), 3)
-			}
+			_ = to.Rollback()
 		} else {
-			err = tx.Commit()
+			_ = to.Commit()
 		}
 	}()
+
 	// 修改预测指标
-	_, err = o.Update(edbInfo, updateEdbInfoCol...)
+	//_, err = o.Update(edbInfo, updateEdbInfoCol...)
+	//if err != nil {
+	//	return
+	//}
+
+	err = to.Select(updateEdbInfoCol).Updates(edbInfo).Error
 	if err != nil {
 		return
 	}
 
 	// 先删除原有的配置
+	//sql := ` DELETE FROM predict_edb_conf WHERE predict_edb_info_id = ?`
+	//_, err = o.Raw(sql, edbInfo.EdbInfoId).Exec()
+	//if err != nil {
+	//	return
+	//}
+
 	sql := ` DELETE FROM predict_edb_conf WHERE predict_edb_info_id = ?`
-	_, err = o.Raw(sql, edbInfo.EdbInfoId).Exec()
+	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
-
 	// 新增新有的预测指标配置
 	lenPredictEdbConf := len(predictEdbConfList)
 	if lenPredictEdbConf > 0 {
-		_, err = o.InsertMulti(lenPredictEdbConf, predictEdbConfList)
+		//_, err = o.InsertMulti(lenPredictEdbConf, predictEdbConfList)
+		//if err != nil {
+		//	return
+		//}
+
+		err = to.CreateInBatches(predictEdbConfList, utils.MultiAddNum).Error
 		if err != nil {
 			return
 		}
@@ -174,30 +226,45 @@ func GetPredictEdbInfoAllCalculate(edbInfoIdList []int) (list []*EdbInfo, err er
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT b.* FROM predict_edb_conf AS a
+	//		 INNER JOIN edb_info AS b ON a.source_edb_info_id=b.edb_info_id
+	//         WHERE a.predict_edb_info_id in (` + utils.GetOrmInReplace(num) + `)
+	//		 GROUP BY a.source_edb_info_id
+	//		 ORDER BY a.source_edb_info_id ASC `
+	//_, err = o.Raw(sql, edbInfoIdList).QueryRows(&list)
+
 	sql := ` SELECT b.* FROM predict_edb_conf AS a
 			 INNER JOIN edb_info AS b ON a.source_edb_info_id=b.edb_info_id
-             WHERE a.predict_edb_info_id in (` + utils.GetOrmInReplace(num) + `)
+	        WHERE a.predict_edb_info_id in (` + utils.GetOrmInReplace(num) + `)
 			 GROUP BY a.source_edb_info_id
 			 ORDER BY a.source_edb_info_id ASC `
-	_, err = o.Raw(sql, edbInfoIdList).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, edbInfoIdList).Find(&list).Error
 	return
 }
 
 // GetPredictEdbConfListById 根据预测指标id获取预测指标配置信息列表
 func GetPredictEdbConfListById(edbInfoId int) (items []*PredictEdbConf, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT * FROM predict_edb_conf WHERE predict_edb_info_id=? ORDER BY config_id ASC`
+	//_, err = o.Raw(sql, edbInfoId).QueryRows(&items)
+
 	sql := ` SELECT * FROM predict_edb_conf WHERE predict_edb_info_id=? ORDER BY config_id ASC`
-	_, err = o.Raw(sql, edbInfoId).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, edbInfoId).Find(&items).Error
 	return
 }
 
 // GetGroupPredictEdbBySourceEdbInfoId 根据来源指标id获取配置
 func GetGroupPredictEdbBySourceEdbInfoId(sourceEdbInfoId int) (items []*EdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT a.* FROM edb_info AS a
+	// JOIN predict_edb_conf AS b  on a.edb_info_id = b.predict_edb_info_id
+	//      WHERE b.source_edb_info_id=? group by a.edb_info_id`
+	//_, err = o.Raw(sql, sourceEdbInfoId).QueryRows(&items)
+
 	sql := ` SELECT a.* FROM edb_info AS a 
-     JOIN predict_edb_conf AS b  on a.edb_info_id = b.predict_edb_info_id
-          WHERE b.source_edb_info_id=? group by a.edb_info_id`
-	_, err = o.Raw(sql, sourceEdbInfoId).QueryRows(&items)
+	JOIN predict_edb_conf AS b  on a.edb_info_id = b.predict_edb_info_id
+	     WHERE b.source_edb_info_id=? group by a.edb_info_id`
+	err = global.DmSQL["data"].Raw(sql, sourceEdbInfoId).Find(&items).Error
 	return
 }

+ 43 - 30
models/data_manage/predict_edb_conf_calculate_mapping.go

@@ -1,8 +1,8 @@
 package data_manage
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
@@ -22,21 +22,22 @@ type PredictEdbConfCalculateMapping struct {
 	ModifyTime                       time.Time `description:"修改时间"`
 }
 
-// GetPredictEdbConfCalculateMappingListById 根据预测指标id获取预测指标配置的关联指标信息列表
-func GetPredictEdbConfCalculateMappingListById(edbInfoId int) (items []*PredictEdbConf, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM predict_edb_conf_calculate_mapping WHERE edb_info_id=? ORDER BY predict_edb_conf_calculate_mapping_id ASC`
-	_, err = o.Raw(sql, edbInfoId).QueryRows(&items)
-	return
-}
-
-// GetPredictEdbConfCalculateMappingListByConfigId 根据预测指标配置id获取预测指标配置的关联指标信息列表
-func GetPredictEdbConfCalculateMappingListByConfigId(edbInfoId, configId int) (items []*PredictEdbConf, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM predict_edb_conf_calculate_mapping WHERE edb_info_id=? AND config_id=? ORDER BY predict_edb_conf_calculate_mapping_id ASC`
-	_, err = o.Raw(sql, edbInfoId, configId).QueryRows(&items)
-	return
-}
+//
+//// GetPredictEdbConfCalculateMappingListById 根据预测指标id获取预测指标配置的关联指标信息列表
+//func GetPredictEdbConfCalculateMappingListById(edbInfoId int) (items []*PredictEdbConf, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT * FROM predict_edb_conf_calculate_mapping WHERE edb_info_id=? ORDER BY predict_edb_conf_calculate_mapping_id ASC`
+//	_, err = o.Raw(sql, edbInfoId).QueryRows(&items)
+//	return
+//}
+//
+//// GetPredictEdbConfCalculateMappingListByConfigId 根据预测指标配置id获取预测指标配置的关联指标信息列表
+//func GetPredictEdbConfCalculateMappingListByConfigId(edbInfoId, configId int) (items []*PredictEdbConf, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT * FROM predict_edb_conf_calculate_mapping WHERE edb_info_id=? AND config_id=? ORDER BY predict_edb_conf_calculate_mapping_id ASC`
+//	_, err = o.Raw(sql, edbInfoId, configId).QueryRows(&items)
+//	return
+//}
 
 type PredictEdbConfCalculateMappingDetail struct {
 	PredictEdbConfCalculateMappingId int       `orm:"column(predict_edb_conf_calculate_mapping_id);pk"`
@@ -57,25 +58,31 @@ type PredictEdbConfCalculateMappingDetail struct {
 	EdbCode                          string    `description:"指标code"`
 }
 
-// GetPredictEdbConfCalculateMappingDetailListById 根据配置id获取 配置关联指标信息
-func GetPredictEdbConfCalculateMappingDetailListById(edbInfoId int) (list []*PredictEdbConfCalculateMappingDetail, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT a.predict_edb_conf_calculate_mapping_id,a.edb_info_id,a.from_edb_info_id,a.from_edb_code,a.from_source,a.from_source_name,a.sort,a.create_time,a.modify_time,a.from_tag,b.edb_name_source as from_edb_name,b.start_date,b.end_date,b.edb_type FROM predict_edb_conf_calculate_mapping AS a
-			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
-			WHERE a.edb_info_id=? ORDER BY sort ASC `
-
-	_, err = o.Raw(sql, edbInfoId).QueryRows(&list)
-	return
-}
+//// GetPredictEdbConfCalculateMappingDetailListById 根据配置id获取 配置关联指标信息
+//func GetPredictEdbConfCalculateMappingDetailListById(edbInfoId int) (list []*PredictEdbConfCalculateMappingDetail, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT a.predict_edb_conf_calculate_mapping_id,a.edb_info_id,a.from_edb_info_id,a.from_edb_code,a.from_source,a.from_source_name,a.sort,a.create_time,a.modify_time,a.from_tag,b.edb_name_source as from_edb_name,b.start_date,b.end_date,b.edb_type FROM predict_edb_conf_calculate_mapping AS a
+//			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
+//			WHERE a.edb_info_id=? ORDER BY sort ASC `
+//
+//	_, err = o.Raw(sql, edbInfoId).QueryRows(&list)
+//	return
+//}
 
 // GetPredictEdbConfCalculateMappingDetailListByConfigId 根据配置id和指标id获取 配置关联指标信息
 func GetPredictEdbConfCalculateMappingDetailListByConfigId(edbInfoId, configId int) (list []*PredictEdbConfCalculateMappingDetail, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT a.predict_edb_conf_calculate_mapping_id,a.edb_info_id,a.from_edb_info_id,a.from_edb_code,a.from_source,a.from_source_name,a.sort,a.create_time,a.modify_time,a.from_tag,b.edb_name_source as from_edb_name,b.start_date,b.end_date,b.edb_type FROM predict_edb_conf_calculate_mapping AS a
+	//		INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
+	//		WHERE a.edb_info_id=? AND a.config_id=?  ORDER BY sort ASC `
+	//
+	//_, err = o.Raw(sql, edbInfoId, configId).QueryRows(&list)
+
 	sql := ` SELECT a.predict_edb_conf_calculate_mapping_id,a.edb_info_id,a.from_edb_info_id,a.from_edb_code,a.from_source,a.from_source_name,a.sort,a.create_time,a.modify_time,a.from_tag,b.edb_name_source as from_edb_name,b.start_date,b.end_date,b.edb_type FROM predict_edb_conf_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
 			WHERE a.edb_info_id=? AND a.config_id=?  ORDER BY sort ASC `
 
-	_, err = o.Raw(sql, edbInfoId, configId).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, edbInfoId, configId).Find(&list).Error
 	return
 }
 
@@ -85,11 +92,17 @@ func GetPredictEdbConfCalculateMappingDetailListByEdbInfoId(fromEdbInfoIdList []
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT a.predict_edb_conf_calculate_mapping_id,a.edb_info_id,a.from_edb_info_id,a.from_edb_code,a.from_source,a.from_source_name,a.sort,a.create_time,a.modify_time,a.from_tag,b.edb_name_source as from_edb_name,b.start_date,b.end_date,b.edb_type,b.edb_code FROM predict_edb_conf_calculate_mapping AS a
+	//		INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
+	//		WHERE a.edb_info_id in (` + utils.GetOrmInReplace(num) + `) GROUP BY a.edb_info_id ORDER BY sort ASC `
+	//
+	//_, err = o.Raw(sql, fromEdbInfoIdList).QueryRows(&list)
+
 	sql := ` SELECT a.predict_edb_conf_calculate_mapping_id,a.edb_info_id,a.from_edb_info_id,a.from_edb_code,a.from_source,a.from_source_name,a.sort,a.create_time,a.modify_time,a.from_tag,b.edb_name_source as from_edb_name,b.start_date,b.end_date,b.edb_type,b.edb_code FROM predict_edb_conf_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
 			WHERE a.edb_info_id in (` + utils.GetOrmInReplace(num) + `) GROUP BY a.edb_info_id ORDER BY sort ASC `
 
-	_, err = o.Raw(sql, fromEdbInfoIdList).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, fromEdbInfoIdList).Find(&list).Error
 	return
 }

+ 16 - 3
models/data_manage/predict_edb_rule_data.go

@@ -1,7 +1,7 @@
 package data_manage
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
@@ -19,7 +19,20 @@ type PredictEdbRuleData struct {
 
 // GetPredictEdbRuleDataList 根据基础预测指标id集合 获取 所有的普通指标列表数据
 func GetPredictEdbRuleDataList(edbInfoId, configId int, startDate, endDate string) (list []*PredictEdbRuleData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//var pars []interface{}
+	//sql := ` SELECT * FROM predict_edb_rule_data WHERE edb_info_id = ? AND config_id = ? `
+	//if startDate != "" {
+	//	sql += ` AND data_time>=? `
+	//	pars = append(pars, startDate)
+	//}
+	//if endDate != "" {
+	//	sql += ` AND data_time<=? `
+	//	pars = append(pars, endDate)
+	//}
+	//sql += ` ORDER BY data_time ASC `
+	//_, err = o.Raw(sql, edbInfoId, configId, pars).QueryRows(&list)
+
 	var pars []interface{}
 	sql := ` SELECT * FROM predict_edb_rule_data WHERE edb_info_id = ? AND config_id = ? `
 	if startDate != "" {
@@ -31,6 +44,6 @@ func GetPredictEdbRuleDataList(edbInfoId, configId int, startDate, endDate strin
 		pars = append(pars, endDate)
 	}
 	sql += ` ORDER BY data_time ASC `
-	_, err = o.Raw(sql, edbInfoId, configId, pars).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, edbInfoId, configId, pars).Find(&list).Error
 	return
 }

+ 108 - 69
models/data_manage/sci_data.go

@@ -1,8 +1,8 @@
 package data_manage
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
@@ -11,22 +11,26 @@ type SciClassify struct {
 	TypeCode string `orm:"column(type_code)" description:"分类名称编码"`
 }
 
-func GetSciClassify() (items []*SciClassify, err error) {
-	sql := `SELECT CONCAT(type_2,type_3) AS type_name,CONCAT(type_2,'#',type_3) type_code  FROM base_from_sci_index GROUP BY CONCAT(type_2,type_3) ORDER BY CONCAT(type_2,type_3) ASC `
-	o := orm.NewOrmUsingDB("data")
-	o.Raw(sql).QueryRows(&items)
-	return
-}
+//func GetSciClassify() (items []*SciClassify, err error) {
+//	sql := `SELECT CONCAT(type_2,type_3) AS type_name,CONCAT(type_2,'#',type_3) type_code  FROM base_from_sci_index GROUP BY CONCAT(type_2,type_3) ORDER BY CONCAT(type_2,type_3) ASC `
+//	o := orm.NewOrmUsingDB("data")
+//	o.Raw(sql).QueryRows(&items)
+//	return
+//}
 
 type SciFrequency struct {
 	Frequency string `description:"频度"`
 }
 
 func GetSciFrequencyByClassifyId(classifyId int) (items []*GlFrequency, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT frequency FROM base_from_sci_index WHERE classify_id = ? `
+	//sql += ` GROUP BY frequency ORDER BY frequency ASC `
+	//_, err = o.Raw(sql, classifyId).QueryRows(&items)
+
 	sql := ` SELECT frequency FROM base_from_sci_index WHERE classify_id = ? `
 	sql += ` GROUP BY frequency ORDER BY frequency ASC `
-	_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, classifyId).Find(&items).Error
 	return
 }
 
@@ -50,13 +54,21 @@ type SciIndex struct {
 }
 
 func GetSciIndex(condition string, pars interface{}) (items []*SciIndex, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT * FROM base_from_sci_index WHERE 1=1  `
+	//if condition != "" {
+	//	sql += condition
+	//}
+	//sql += `ORDER BY sort ASC, base_from_sci_index_id asc`
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+
 	sql := ` SELECT * FROM base_from_sci_index WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY sort ASC, base_from_sci_index_id asc`
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, pars).Find(&items).Error
+
 	return
 }
 
@@ -72,27 +84,33 @@ type SciExportIndex struct {
 	ModifyTime string
 }
 
-func GetExportSciIndex(typeCodes []string) (items []*SciExportIndex, err error) {
-	if len(typeCodes) == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT *,CONCAT(type_2, "#", type_3) AS type_name FROM base_from_sci_index WHERE CONCAT(type_2, "#", type_3) IN (` + utils.GetOrmInReplace(len(typeCodes)) + `) ORDER BY frequency ASC,index_code ASC`
-	_, err = o.Raw(sql, typeCodes).QueryRows(&items)
-	return
-}
+//func GetExportSciIndex(typeCodes []string) (items []*SciExportIndex, err error) {
+//	if len(typeCodes) == 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT *,CONCAT(type_2, "#", type_3) AS type_name FROM base_from_sci_index WHERE CONCAT(type_2, "#", type_3) IN (` + utils.GetOrmInReplace(len(typeCodes)) + `) ORDER BY frequency ASC,index_code ASC`
+//	_, err = o.Raw(sql, typeCodes).QueryRows(&items)
+//	return
+//}
 
 func GetSciFrequency(classifyId int) (items []*string, err error) {
+	//sql := `SELECT DISTINCT frequency FROM base_from_sci_index WHERE classify_id=? ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年','年度') `
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Raw(sql, classifyId).QueryRows(&items)
+
 	sql := `SELECT DISTINCT frequency FROM base_from_sci_index WHERE classify_id=? ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年','年度') `
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, classifyId).Find(&items).Error
 	return
 }
 
 func GetSciFrequencyByCode(code string) (items []*string, err error) {
+	//sql := `SELECT DISTINCT frequency FROM base_from_sci_index WHERE index_code=? ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年','年度') `
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Raw(sql, code).QueryRows(&items)
+
 	sql := `SELECT DISTINCT frequency FROM base_from_sci_index WHERE index_code=? ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年','年度') `
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, code).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, code).Find(&items).Error
 	return
 }
 
@@ -122,43 +140,63 @@ type SciIndexData struct {
 }
 
 func GetSciIndexData(indexCode string, startSize, pageSize int) (items []*SciIndexData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT *  FROM base_from_sci_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
+	//_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
+
 	sql := ` SELECT *  FROM base_from_sci_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
-	_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, indexCode, startSize, pageSize).Find(&items).Error
 	return
 }
 
 func GetSciIndexDataCount(indexCode string) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT COUNT(1) AS count  FROM base_from_sci_data WHERE index_code=? `
+	//err = o.Raw(sql, indexCode).QueryRow(&count)
+
 	sql := ` SELECT COUNT(1) AS count  FROM base_from_sci_data WHERE index_code=? `
-	err = o.Raw(sql, indexCode).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, indexCode).Scan(&count).Error
 	return
 }
 
 // GetSciItemList 模糊查询Sci数据库指标列表
 func GetSciItemList(keyword string) (items []*SciIndex, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := "SELECT * FROM base_from_sci_index WHERE CONCAT(index_name,index_code) LIKE ? "
+	//_, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
+
 	sql := "SELECT * FROM base_from_sci_index WHERE CONCAT(index_name,index_code) LIKE ? "
-	_, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, utils.GetLikeKeyword(keyword)).Find(&items).Error
 	return
 }
 
 func GetSciIndexDataByCode(indexCode string) (items []*SciIndexData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT *  FROM base_from_sci_data WHERE index_code=? ORDER BY data_time DESC  `
+	//_, err = o.Raw(sql, indexCode).QueryRows(&items)
+
 	sql := ` SELECT *  FROM base_from_sci_data WHERE index_code=? ORDER BY data_time DESC  `
-	_, err = o.Raw(sql, indexCode).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, indexCode).Find(&items).Error
 	return
 }
 
 func GetSciDataMaxCount(classifyId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `SELECT MAX(t.num) AS count FROM (
+	//			SELECT COUNT(1) AS num  FROM base_from_sci_index AS a
+	//			INNER JOIN base_from_sci_data AS b ON a.index_code=b.index_code
+	//			WHERE a.classify_id=?
+	//			GROUP BY a.base_from_sci_index_id
+	//		)AS t `
+	//err = o.Raw(sql, classifyId).QueryRow(&count)
+
 	sql := `SELECT MAX(t.num) AS count FROM (
 				SELECT COUNT(1) AS num  FROM base_from_sci_index AS a
 				INNER JOIN base_from_sci_data AS b ON a.index_code=b.index_code
 				WHERE a.classify_id=?
 				GROUP BY a.base_from_sci_index_id
 			)AS t `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, classifyId).Scan(&count).Error
 	return
 }
 
@@ -167,32 +205,33 @@ type ExportSciDataMaxCount struct {
 	Count    int
 }
 
-func GetExportSciDataMaxCount(typeCodes []string) (items []*ExportSciDataMaxCount, err error) {
-	if len(typeCodes) == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT
-				MAX(t.num) AS count,
-				t.type_name
-			FROM
-				(
-					SELECT
-						COUNT(1) AS num,
-						CONCAT(a.type_2, "#", a.type_3) AS type_name
-					FROM
-						base_from_sci_index AS a
-					INNER JOIN base_from_sci_data AS b ON a.index_code = b.index_code
-					WHERE
-						CONCAT(a.type_2, "#", a.type_3) IN (` + utils.GetOrmInReplace(len(typeCodes)) + `)
-					GROUP BY
-						a.base_from_sci_index_id
-				) AS t
-			GROUP BY
-				type_name `
-	_, err = o.Raw(sql, typeCodes).QueryRows(&items)
-	return
-}
+//
+//func GetExportSciDataMaxCount(typeCodes []string) (items []*ExportSciDataMaxCount, err error) {
+//	if len(typeCodes) == 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT
+//				MAX(t.num) AS count,
+//				t.type_name
+//			FROM
+//				(
+//					SELECT
+//						COUNT(1) AS num,
+//						CONCAT(a.type_2, "#", a.type_3) AS type_name
+//					FROM
+//						base_from_sci_index AS a
+//					INNER JOIN base_from_sci_data AS b ON a.index_code = b.index_code
+//					WHERE
+//						CONCAT(a.type_2, "#", a.type_3) IN (` + utils.GetOrmInReplace(len(typeCodes)) + `)
+//					GROUP BY
+//						a.base_from_sci_index_id
+//				) AS t
+//			GROUP BY
+//				type_name `
+//	_, err = o.Raw(sql, typeCodes).QueryRows(&items)
+//	return
+//}
 
 type ExportSciIndexData struct {
 	Value     string `orm:"column(value)" description:"日期"`
@@ -200,12 +239,12 @@ type ExportSciIndexData struct {
 	IndexCode string `orm:"column(index_code)" description:"指标编码"`
 }
 
-func GetExportSciIndexDataByCodes(indexCodes []string) (items []*ExportSciIndexData, err error) {
-	if len(indexCodes) == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT index_code,data_time,value FROM base_from_sci_data WHERE index_code IN (` + utils.GetOrmInReplace(len(indexCodes)) + `) ORDER BY data_time DESC  `
-	_, err = o.Raw(sql, indexCodes).QueryRows(&items)
-	return
-}
+//func GetExportSciIndexDataByCodes(indexCodes []string) (items []*ExportSciIndexData, err error) {
+//	if len(indexCodes) == 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT index_code,data_time,value FROM base_from_sci_data WHERE index_code IN (` + utils.GetOrmInReplace(len(indexCodes)) + `) ORDER BY data_time DESC  `
+//	_, err = o.Raw(sql, indexCodes).QueryRows(&items)
+//	return
+//}

+ 4 - 3
models/data_manage/search_keyword.go

@@ -1,7 +1,7 @@
 package data_manage
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
@@ -12,7 +12,8 @@ type SearchKeyword struct {
 }
 
 func AddSearchKeyword(item *SearchKeyword) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Insert(item)
+	err = global.DmSQL["data"].Create(item).Error
 	return
 }

+ 179 - 86
models/data_manage/smm_data.go

@@ -1,8 +1,8 @@
 package data_manage
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
@@ -11,22 +11,26 @@ type SmmClassify struct {
 	TypeCode string `orm:"column(type_code)" description:"分类名称编码"`
 }
 
-func GetSmmClassify() (items []*SmmClassify, err error) {
-	sql := `SELECT CONCAT(type_2,type_3) AS type_name,CONCAT(type_2,'#',type_3) type_code  FROM base_from_smm_index GROUP BY CONCAT(type_2,type_3) ORDER BY CONCAT(type_2,type_3) ASC `
-	o := orm.NewOrmUsingDB("data")
-	o.Raw(sql).QueryRows(&items)
-	return
-}
+//func GetSmmClassify() (items []*SmmClassify, err error) {
+//	sql := `SELECT CONCAT(type_2,type_3) AS type_name,CONCAT(type_2,'#',type_3) type_code  FROM base_from_smm_index GROUP BY CONCAT(type_2,type_3) ORDER BY CONCAT(type_2,type_3) ASC `
+//	o := orm.NewOrmUsingDB("data")
+//	o.Raw(sql).QueryRows(&items)
+//	return
+//}
 
 type SmmFrequency struct {
 	Frequency string `description:"频度"`
 }
 
 func GetSmmFrequencyByClassifyId(classifyId int) (items []*GlFrequency, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT frequency FROM base_from_smm_index WHERE classify_id = ? `
+	//sql += ` GROUP BY frequency ORDER BY frequency ASC `
+	//_, err = o.Raw(sql, classifyId).QueryRows(&items)
+
 	sql := ` SELECT frequency FROM base_from_smm_index WHERE classify_id = ? `
 	sql += ` GROUP BY frequency ORDER BY frequency ASC `
-	_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, classifyId).Find(&items).Error
 	return
 }
 
@@ -75,13 +79,20 @@ type SmmIndexItem struct {
 }
 
 func GetSmmIndex(condition string, pars interface{}) (items []*SmmIndex, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT * FROM base_from_smm_index WHERE 1=1  `
+	//if condition != "" {
+	//	sql += condition
+	//}
+	//sql += `ORDER BY sort ASC, base_from_smm_index_id asc`
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+
 	sql := ` SELECT * FROM base_from_smm_index WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY sort ASC, base_from_smm_index_id asc`
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, pars).Find(&items).Error
 	return
 }
 
@@ -93,10 +104,12 @@ func GetSmmIndex(condition string, pars interface{}) (items []*SmmIndex, err err
 // @return item *SmmIndex
 // @return err error
 func GetSmmIndexById(basFromSmmIndexId int) (item *SmmIndex, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM base_from_smm_index WHERE base_from_smm_index_id = ?  `
-	err = o.Raw(sql, basFromSmmIndexId).QueryRow(&item)
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT * FROM base_from_smm_index WHERE base_from_smm_index_id = ?  `
+	//err = o.Raw(sql, basFromSmmIndexId).QueryRow(&item)
 
+	sql := ` SELECT * FROM base_from_smm_index WHERE base_from_smm_index_id = ?  `
+	err = global.DmSQL["data"].Raw(sql, basFromSmmIndexId).First(&item).Error
 	return
 }
 
@@ -112,27 +125,33 @@ type SmmExportIndex struct {
 	ModifyTime string
 }
 
-func GetExportSmmIndex(typeCodes []string) (items []*SmmExportIndex, err error) {
-	if len(typeCodes) == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT *,CONCAT(type_2, "#", type_3) AS type_name FROM base_from_smm_index WHERE CONCAT(type_2, "#", type_3) IN (` + utils.GetOrmInReplace(len(typeCodes)) + `) ORDER BY frequency ASC,index_code ASC`
-	_, err = o.Raw(sql, typeCodes).QueryRows(&items)
-	return
-}
+//func GetExportSmmIndex(typeCodes []string) (items []*SmmExportIndex, err error) {
+//	if len(typeCodes) == 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT *,CONCAT(type_2, "#", type_3) AS type_name FROM base_from_smm_index WHERE CONCAT(type_2, "#", type_3) IN (` + utils.GetOrmInReplace(len(typeCodes)) + `) ORDER BY frequency ASC,index_code ASC`
+//	_, err = o.Raw(sql, typeCodes).QueryRows(&items)
+//	return
+//}
 
 func GetSmmFrequency(classifyId int) (items []*string, err error) {
+	//sql := `SELECT DISTINCT frequency FROM base_from_smm_index WHERE classify_id=? ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年','年度') `
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Raw(sql, classifyId).QueryRows(&items)
+
 	sql := `SELECT DISTINCT frequency FROM base_from_smm_index WHERE classify_id=? ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年','年度') `
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, classifyId).Find(&items).Error
 	return
 }
 
 func GetSmmFrequencyByCode(code string) (items []*string, err error) {
+	//sql := `SELECT DISTINCT frequency FROM base_from_smm_index WHERE index_code=? ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年','年度') `
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Raw(sql, code).QueryRows(&items)
+
 	sql := `SELECT DISTINCT frequency FROM base_from_smm_index WHERE index_code=? ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年','年度') `
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, code).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, code).Find(&items).Error
 	return
 }
 
@@ -162,43 +181,63 @@ type SmmIndexData struct {
 }
 
 func GetSmmIndexData(indexCode string, startSize, pageSize int) (items []*SmmIndexData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT *  FROM base_from_smm_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
+	//_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
+
 	sql := ` SELECT *  FROM base_from_smm_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
-	_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, indexCode, startSize, pageSize).Find(&items).Error
 	return
 }
 
 func GetSmmIndexDataCount(indexCode string) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT COUNT(1) AS count  FROM base_from_smm_data WHERE index_code=? `
+	//err = o.Raw(sql, indexCode).QueryRow(&count)
+
 	sql := ` SELECT COUNT(1) AS count  FROM base_from_smm_data WHERE index_code=? `
-	err = o.Raw(sql, indexCode).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, indexCode).Scan(&count).Error
 	return
 }
 
 // GetSmmItemList 模糊查询Smm数据库指标列表
 func GetSmmItemList(keyword string) (items []*SmmIndexItem, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := "SELECT * FROM base_from_smm_index WHERE CONCAT(index_name,index_code) LIKE ? "
+	//_, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
+
 	sql := "SELECT * FROM base_from_smm_index WHERE CONCAT(index_name,index_code) LIKE ? "
-	_, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, utils.GetLikeKeyword(keyword)).Find(&items).Error
 	return
 }
 
 func GetSmmIndexDataByCode(indexCode string) (items []*SmmIndexData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT *  FROM base_from_smm_data WHERE index_code=? ORDER BY data_time DESC  `
+	//_, err = o.Raw(sql, indexCode).QueryRows(&items)
+
 	sql := ` SELECT *  FROM base_from_smm_data WHERE index_code=? ORDER BY data_time DESC  `
-	_, err = o.Raw(sql, indexCode).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, indexCode).Find(&items).Error
 	return
 }
 
 func GetSmmDataMaxCount(classifyId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `SELECT MAX(t.num) AS count FROM (
+	//			SELECT COUNT(1) AS num  FROM base_from_smm_index AS a
+	//			INNER JOIN base_from_smm_data AS b ON a.index_code=b.index_code
+	//			WHERE a.classify_id=?
+	//			GROUP BY a.base_from_smm_index_id
+	//		)AS t `
+	//err = o.Raw(sql, classifyId).QueryRow(&count)
+
 	sql := `SELECT MAX(t.num) AS count FROM (
 				SELECT COUNT(1) AS num  FROM base_from_smm_index AS a
 				INNER JOIN base_from_smm_data AS b ON a.index_code=b.index_code
 				WHERE a.classify_id=?
 				GROUP BY a.base_from_smm_index_id
 			)AS t `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, classifyId).Scan(&count).Error
 	return
 }
 
@@ -207,32 +246,33 @@ type ExportSmmDataMaxCount struct {
 	Count    int
 }
 
-func GetExportSmmDataMaxCount(typeCodes []string) (items []*ExportSmmDataMaxCount, err error) {
-	if len(typeCodes) == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT
-				MAX(t.num) AS count,
-				t.type_name
-			FROM
-				(
-					SELECT
-						COUNT(1) AS num,
-						CONCAT(a.type_2, "#", a.type_3) AS type_name
-					FROM
-						base_from_smm_index AS a
-					INNER JOIN base_from_smm_data AS b ON a.index_code = b.index_code
-					WHERE
-						CONCAT(a.type_2, "#", a.type_3) IN (` + utils.GetOrmInReplace(len(typeCodes)) + `)
-					GROUP BY
-						a.base_from_smm_index_id
-				) AS t
-			GROUP BY
-				type_name `
-	_, err = o.Raw(sql, typeCodes).QueryRows(&items)
-	return
-}
+//
+//func GetExportSmmDataMaxCount(typeCodes []string) (items []*ExportSmmDataMaxCount, err error) {
+//	if len(typeCodes) == 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT
+//				MAX(t.num) AS count,
+//				t.type_name
+//			FROM
+//				(
+//					SELECT
+//						COUNT(1) AS num,
+//						CONCAT(a.type_2, "#", a.type_3) AS type_name
+//					FROM
+//						base_from_smm_index AS a
+//					INNER JOIN base_from_smm_data AS b ON a.index_code = b.index_code
+//					WHERE
+//						CONCAT(a.type_2, "#", a.type_3) IN (` + utils.GetOrmInReplace(len(typeCodes)) + `)
+//					GROUP BY
+//						a.base_from_smm_index_id
+//				) AS t
+//			GROUP BY
+//				type_name `
+//	_, err = o.Raw(sql, typeCodes).QueryRows(&items)
+//	return
+//}
 
 type ExportSmmIndexData struct {
 	Value     string `orm:"column(value)" description:"日期"`
@@ -240,15 +280,16 @@ type ExportSmmIndexData struct {
 	IndexCode string `orm:"column(index_code)" description:"指标编码"`
 }
 
-func GetExportSmmIndexDataByCodes(indexCodes []string) (items []*ExportSmmIndexData, err error) {
-	if len(indexCodes) == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT index_code,data_time,value FROM base_from_smm_data WHERE index_code IN (` + utils.GetOrmInReplace(len(indexCodes)) + `) ORDER BY data_time DESC  `
-	_, err = o.Raw(sql, indexCodes).QueryRows(&items)
-	return
-}
+//
+//func GetExportSmmIndexDataByCodes(indexCodes []string) (items []*ExportSmmIndexData, err error) {
+//	if len(indexCodes) == 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT index_code,data_time,value FROM base_from_smm_data WHERE index_code IN (` + utils.GetOrmInReplace(len(indexCodes)) + `) ORDER BY data_time DESC  `
+//	_, err = o.Raw(sql, indexCodes).QueryRows(&items)
+//	return
+//}
 
 // GetSmmBaseInfoList
 // @Description: 获取有色数据列表
@@ -263,14 +304,39 @@ func GetExportSmmIndexDataByCodes(indexCodes []string) (items []*ExportSmmIndexD
 // @return items []*BaseRefreshEdbInfo
 // @return err error
 func GetSmmBaseInfoList(condition string, pars []interface{}, orderBy string, startSize, pageSize int) (total int, items []*BaseRefreshEdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//
+	//// 数量汇总
+	//totalSql := ` SELECT count(1) FROM base_from_smm_index WHERE 1=1 `
+	//if condition != "" {
+	//	totalSql += condition
+	//}
+	//err = o.Raw(totalSql, pars).QueryRow(&total)
+	//if err != nil {
+	//	return
+	//}
+	//
+	//// 列表数据
+	//sql := ` SELECT base_from_smm_index_id as edb_info_id, classify_id,index_code,index_name,end_date,end_value,frequency,is_stop,terminal_code FROM base_from_smm_index WHERE 1=1  `
+	//if condition != "" {
+	//	sql += condition
+	//}
+	//
+	//if orderBy != "" {
+	//	sql += ` ORDER BY ` + orderBy
+	//} else {
+	//	sql += ` ORDER BY base_from_smm_index_id ASC `
+	//}
+	//sql += `  LIMIT ?,? `
+	//
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
 
 	// 数量汇总
 	totalSql := ` SELECT count(1) FROM base_from_smm_index WHERE 1=1 `
 	if condition != "" {
 		totalSql += condition
 	}
-	err = o.Raw(totalSql, pars).QueryRow(&total)
+	err = global.DmSQL["data"].Raw(totalSql, pars).Scan(&total).Error
 	if err != nil {
 		return
 	}
@@ -288,7 +354,7 @@ func GetSmmBaseInfoList(condition string, pars []interface{}, orderBy string, st
 	}
 	sql += `  LIMIT ?,? `
 
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -305,21 +371,37 @@ func ModifySmmUpdateStatus(edbIdList []int, indexCodeList []string, isStop int)
 	if idNum <= 0 {
 		return
 	}
-	o, err := orm.NewOrmUsingDB("data").Begin()
-	if err != nil {
-		return
-	}
+	//o, err := orm.NewOrmUsingDB("data").Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = o.Rollback()
+	//		return
+	//	}
+	//	_ = o.Commit()
+	//}()
+
+	to := global.DmSQL["data"].Begin()
+
 	defer func() {
 		if err != nil {
-			_ = o.Rollback()
-			return
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
 		}
-		_ = o.Commit()
 	}()
 
 	// 更改数据源的更新状态
+	//sql := ` UPDATE base_from_smm_index SET is_stop = ? WHERE base_from_smm_index_id IN (` + utils.GetOrmInReplace(idNum) + `) `
+	//_, err = o.Raw(sql, isStop, edbIdList).Exec()
+	//if err != nil {
+	//	return
+	//}
+
 	sql := ` UPDATE base_from_smm_index SET is_stop = ? WHERE base_from_smm_index_id IN (` + utils.GetOrmInReplace(idNum) + `) `
-	_, err = o.Raw(sql, isStop, edbIdList).Exec()
+	err = to.Exec(sql, isStop, edbIdList).Error
 	if err != nil {
 		return
 	}
@@ -327,8 +409,14 @@ func ModifySmmUpdateStatus(edbIdList []int, indexCodeList []string, isStop int)
 	codeNum := len(indexCodeList)
 	if codeNum <= 0 {
 		// 需要通过指标id列表查找code列表
+		//sql := ` SELECT index_code FROM base_from_smm_index WHERE base_from_smm_index_id IN (` + utils.GetOrmInReplace(idNum) + `) `
+		//_, err = o.Raw(sql, edbIdList).QueryRows(&indexCodeList)
+		//if err != nil {
+		//	return
+		//}
+
 		sql := ` SELECT index_code FROM base_from_smm_index WHERE base_from_smm_index_id IN (` + utils.GetOrmInReplace(idNum) + `) `
-		_, err = o.Raw(sql, edbIdList).QueryRows(&indexCodeList)
+		err = to.Raw(sql, edbIdList).Find(&indexCodeList).Error
 		if err != nil {
 			return
 		}
@@ -341,11 +429,16 @@ func ModifySmmUpdateStatus(edbIdList []int, indexCodeList []string, isStop int)
 	}
 
 	// 更改指标的更新状态
+	//sql = ` UPDATE edb_info SET no_update = ? WHERE source = ? AND sub_source= ? AND edb_code IN (` + utils.GetOrmInReplace(codeNum) + `) `
+	//_, err = o.Raw(sql, isStop, utils.DATA_SOURCE_YS, 0, indexCodeList).Exec()
+	//if err != nil {
+	//	return
+	//}
+
 	sql = ` UPDATE edb_info SET no_update = ? WHERE source = ? AND sub_source= ? AND edb_code IN (` + utils.GetOrmInReplace(codeNum) + `) `
-	_, err = o.Raw(sql, isStop, utils.DATA_SOURCE_YS, 0, indexCodeList).Exec()
+	err = to.Exec(sql, isStop, utils.DATA_SOURCE_YS, 0, indexCodeList).Error
 	if err != nil {
 		return
 	}
-
 	return
 }

+ 75 - 32
models/data_manage/trade_position_analysis.go

@@ -1,8 +1,8 @@
 package data_manage
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 	"unsafe"
 )
@@ -44,14 +44,16 @@ type TradePositionIneTop struct {
 }
 
 func InsertMultiTradePositionTop(exchange string, items []*TradePositionTop) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	if exchange == "dalian" {
 		list := make([]*TradePositionDalianTop, 0)
 		for _, v := range items {
 			tmp := (*TradePositionDalianTop)(unsafe.Pointer(v))
 			list = append(list, tmp)
 		}
-		_, err = o.InsertMulti(len(list), list)
+		//_, err = o.InsertMulti(len(list), list)
+
+		err = global.DmSQL["data"].CreateInBatches(list, utils.MultiAddNum).Error
 		return
 	} else if exchange == "zhengzhou" {
 		list := make([]*TradePositionZhengzhouTop, 0)
@@ -59,7 +61,9 @@ func InsertMultiTradePositionTop(exchange string, items []*TradePositionTop) (er
 			tmp := (*TradePositionZhengzhouTop)(unsafe.Pointer(v))
 			list = append(list, tmp)
 		}
-		_, err = o.InsertMulti(len(list), list)
+		//_, err = o.InsertMulti(len(list), list)
+
+		err = global.DmSQL["data"].CreateInBatches(list, utils.MultiAddNum).Error
 		return
 	} else if exchange == "cffex" {
 		list := make([]*TradePositionCffexTop, 0)
@@ -67,7 +71,8 @@ func InsertMultiTradePositionTop(exchange string, items []*TradePositionTop) (er
 			tmp := (*TradePositionCffexTop)(unsafe.Pointer(v))
 			list = append(list, tmp)
 		}
-		_, err = o.InsertMulti(len(list), list)
+		//_, err = o.InsertMulti(len(list), list)
+		err = global.DmSQL["data"].CreateInBatches(list, utils.MultiAddNum).Error
 		return
 	} else if exchange == "shanghai" {
 		list := make([]*TradePositionShanghaiTop, 0)
@@ -75,7 +80,8 @@ func InsertMultiTradePositionTop(exchange string, items []*TradePositionTop) (er
 			tmp := (*TradePositionShanghaiTop)(unsafe.Pointer(v))
 			list = append(list, tmp)
 		}
-		_, err = o.InsertMulti(len(list), list)
+		//_, err = o.InsertMulti(len(list), list)
+		err = global.DmSQL["data"].CreateInBatches(list, utils.MultiAddNum).Error
 		return
 	} else if exchange == "ine" {
 		list := make([]*TradePositionIneTop, 0)
@@ -83,7 +89,8 @@ func InsertMultiTradePositionTop(exchange string, items []*TradePositionTop) (er
 			tmp := (*TradePositionIneTop)(unsafe.Pointer(v))
 			list = append(list, tmp)
 		}
-		_, err = o.InsertMulti(len(list), list)
+		//_, err = o.InsertMulti(len(list), list)
+		err = global.DmSQL["data"].CreateInBatches(list, utils.MultiAddNum).Error
 		return
 	}
 
@@ -91,23 +98,32 @@ func InsertMultiTradePositionTop(exchange string, items []*TradePositionTop) (er
 }
 
 func GetTradePositionTopByExchangeDataTime(exchange string, startDate, endDate string) (list []*TradePositionTop, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := "SELECT * FROM trade_position_" + exchange + "_top where data_time >= ? and data_time <= ? and deal_type in (1,2) ORDER BY classify_name, classify_type, deal_type, data_time, deal_value desc"
+	//_, err = o.Raw(sql, startDate, endDate).QueryRows(&list)
+
 	sql := "SELECT * FROM trade_position_" + exchange + "_top where data_time >= ? and data_time <= ? and deal_type in (1,2) ORDER BY classify_name, classify_type, deal_type, data_time, deal_value desc"
-	_, err = o.Raw(sql, startDate, endDate).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, startDate, endDate).Find(&list).Error
 	return
 }
 
 func GetTradePositionTopCountByExchangeDataTime(exchange string, startDate, endDate string) (count int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := "SELECT count(*) FROM trade_position_" + exchange + "_top where data_time >= ? and data_time <= ? and deal_type in (1,2) ORDER BY classify_name, classify_type, deal_type, data_time, deal_value desc"
-	err = o.Raw(sql, startDate, endDate).QueryRow(&count)
+	//o := orm.NewOrmUsingDB("data")
+	//sql := "SELECT count(*) FROM trade_position_" + exchange + "_top where data_time >= ? and data_time <= ? and deal_type in (1,2) ORDER BY classify_name, classify_type, deal_type, data_time, deal_value desc"
+	//err = o.Raw(sql, startDate, endDate).QueryRow(&count)
+
+	sql := "SELECT count(*) AS count FROM trade_position_" + exchange + "_top where data_time >= ? and data_time <= ? and deal_type in (1,2) ORDER BY classify_name, classify_type, deal_type, data_time, deal_value desc"
+	err = global.DmSQL["data"].Raw(sql, startDate, endDate).Scan(&count).Error
 	return
 }
 
 func GetTradePositionTopByExchangeSourceType(exchange string, dataTime string, sourceType int) (list []*TradePositionTop, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := "SELECT * FROM trade_position_" + exchange + "_top where data_time= ? and source_type = ? ORDER BY classify_name, classify_type, deal_type, deal_value desc"
+	//_, err = o.Raw(sql, dataTime, sourceType).QueryRows(&list)
+
 	sql := "SELECT * FROM trade_position_" + exchange + "_top where data_time= ? and source_type = ? ORDER BY classify_name, classify_type, deal_type, deal_value desc"
-	_, err = o.Raw(sql, dataTime, sourceType).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, dataTime, sourceType).Find(&list).Error
 	return
 }
 
@@ -148,48 +164,75 @@ type UpdateDealValueChange struct {
 }
 
 func MultiUpdatePositionTop(exchange string, updates []UpdateDealValueChange) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	p, err := o.Raw("UPDATE trade_position_" + exchange + "_top SET deal_value=?, deal_change=?, source_type=?, modify_time=? WHERE id = ?").Prepare()
-	if err != nil {
-		return
-	}
-	defer func() {
-		_ = p.Close() // 别忘记关闭 statement
-	}()
+	//o := orm.NewOrmUsingDB("data")
+	//p, err := o.Raw("UPDATE trade_position_" + exchange + "_top SET deal_value=?, deal_change=?, source_type=?, modify_time=? WHERE id = ?").Prepare()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	_ = p.Close() // 别忘记关闭 statement
+	//}()
+	//for _, v := range updates {
+	//	_, err = p.Exec(v.DealValue, v.DealChange, v.SourceType, v.ModifyTime, v.Id)
+	//	if err != nil {
+	//		return
+	//	}
+	//}
+
+	sql := ` "UPDATE trade_position_" + exchange + "_top SET deal_value=?, deal_change=?, source_type=?, modify_time=? WHERE id = ?" `
+
 	for _, v := range updates {
-		_, err = p.Exec(v.DealValue, v.DealChange, v.SourceType, v.ModifyTime, v.Id)
+		err = global.DmSQL["data"].Exec(sql, v.DealValue, v.DealChange, v.SourceType, v.ModifyTime, v.Id).Error
 		if err != nil {
 			return
 		}
 	}
+
 	return
 }
 
 func DeletePositionTopByDataTime(exchange string, dataTime string, dealType int) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := "delete from trade_position_" + exchange + "_Top WHERE data_time=? and deal_type=?"
+	//_, err = o.Raw(sql, dataTime, dealType).Exec()
+
 	sql := "delete from trade_position_" + exchange + "_Top WHERE data_time=? and deal_type=?"
-	_, err = o.Raw(sql, dataTime, dealType).Exec()
+	err = global.DmSQL["data"].Exec(sql, dataTime, dealType).Error
+
 	return
 }
 
 func GetTradePositionTopByExchangeDataTimeType(exchange string, dataTime string, dealType int) (list []TradePositionTop, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := "select * from trade_position_" + exchange + "_Top WHERE data_time=? and deal_type=?"
+	//_, err = o.Raw(sql, dataTime, dealType).QueryRows(&list)
 	sql := "select * from trade_position_" + exchange + "_Top WHERE data_time=? and deal_type=?"
-	_, err = o.Raw(sql, dataTime, dealType).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, dataTime, dealType).Find(&list).Error
 	return
 }
 
 func MultiInsertTradeBaseDataToTop(exchange string, startDate, endDate string) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//	o := orm.NewOrmUsingDB("data")
+	//	now := time.Now().Format(utils.FormatDateTime)
+	//	sql1 := `INSERT INTO trade_position_` + exchange + `_top(classify_name,classify_type,deal_short_name,deal_value,deal_change,data_time,deal_type,source_type,rank,create_time,modify_time)
+	//	SELECT classify_name,classify_type,buy_short_name,buy_value,buy_change,data_time,1,0,rank,?,? FROM base_from_trade_` + exchange + `_index where rank <50 and buy_short_name !="" and data_time between ? and ?`
+	//	_, err = o.Raw(sql1, now, now, startDate, endDate).Exec()
+	//	if err != nil {
+	//		return
+	//	}
+	//	sql2 := `INSERT INTO trade_position_` + exchange + `_top(classify_name,classify_type,deal_short_name,deal_value,deal_change,data_time,deal_type,source_type,rank,create_time,modify_time)
+	//SELECT classify_name,classify_type,sold_short_name,sold_value,sold_change,data_time,2,0,rank,?,? FROM base_from_trade_` + exchange + `_index where rank <50 and sold_short_name !="" and data_time between ? and ?`
+	//	_, err = o.Raw(sql2, now, now, startDate, endDate).Exec()
+
 	now := time.Now().Format(utils.FormatDateTime)
 	sql1 := `INSERT INTO trade_position_` + exchange + `_top(classify_name,classify_type,deal_short_name,deal_value,deal_change,data_time,deal_type,source_type,rank,create_time,modify_time)
-	SELECT classify_name,classify_type,buy_short_name,buy_value,buy_change,data_time,1,0,rank,?,? FROM base_from_trade_` + exchange + `_index where rank <50 and buy_short_name !="" and data_time between ? and ?`
-	_, err = o.Raw(sql1, now, now, startDate, endDate).Exec()
+		SELECT classify_name,classify_type,buy_short_name,buy_value,buy_change,data_time,1,0,rank,?,? FROM base_from_trade_` + exchange + `_index where rank <50 and buy_short_name !="" and data_time between ? and ?`
+	err = global.DmSQL["data"].Exec(sql1, now, now, startDate, endDate).Error
 	if err != nil {
 		return
 	}
 	sql2 := `INSERT INTO trade_position_` + exchange + `_top(classify_name,classify_type,deal_short_name,deal_value,deal_change,data_time,deal_type,source_type,rank,create_time,modify_time)
-SELECT classify_name,classify_type,sold_short_name,sold_value,sold_change,data_time,2,0,rank,?,? FROM base_from_trade_` + exchange + `_index where rank <50 and sold_short_name !="" and data_time between ? and ?`
-	_, err = o.Raw(sql2, now, now, startDate, endDate).Exec()
+	SELECT classify_name,classify_type,sold_short_name,sold_value,sold_change,data_time,2,0,rank,?,? FROM base_from_trade_` + exchange + `_index where rank <50 and sold_short_name !="" and data_time between ? and ?`
+	err = global.DmSQL["data"].Raw(sql2, now, now, startDate, endDate).Error
 	return
 }