浏览代码

Merge remote-tracking branch 'origin/dm' into dm

Roc 2 月之前
父节点
当前提交
db976c8fc7

+ 68 - 75
models/data_manage/factor_edb_series.go

@@ -2,9 +2,9 @@ package data_manage
 
 import (
 	"encoding/json"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
@@ -17,7 +17,7 @@ const (
 
 // FactorEdbSeries 因子指标系列表
 type FactorEdbSeries struct {
-	FactorEdbSeriesId int       `orm:"column(factor_edb_series_id);pk"`
+	FactorEdbSeriesId int       `gorm:"column:factor_edb_series_id;primaryKey"`
 	SeriesName        string    `description:"系列名称"`
 	EdbInfoType       int       `description:"关联指标类型:0-普通指标;1-预测指标"`
 	CalculateStep     string    `description:"计算步骤-JSON"`
@@ -53,12 +53,8 @@ func (m *FactorEdbSeries) Cols() FactorEdbSeriesCols {
 }
 
 func (m *FactorEdbSeries) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.FactorEdbSeriesId = int(id)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Create(m).Error
 	return
 }
 
@@ -66,21 +62,21 @@ func (m *FactorEdbSeries) CreateMulti(items []*FactorEdbSeries) (err error) {
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(len(items), items)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *FactorEdbSeries) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Model(m).Select(cols).Updates(m).Error
 	return
 }
 
 func (m *FactorEdbSeries) Remove() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	_, err = o.Raw(sql, m.FactorEdbSeriesId).Exec()
+	err = o.Exec(sql, m.FactorEdbSeriesId).Error
 	return
 }
 
@@ -88,9 +84,9 @@ func (m *FactorEdbSeries) MultiRemove(ids []int) (err error) {
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.Cols().PrimaryId, utils.GetOrmInReplace(len(ids)))
-	_, err = o.Raw(sql, ids).Exec()
+	err = o.Exec(sql, ids).Error
 	return
 }
 
@@ -98,39 +94,39 @@ func (m *FactorEdbSeries) RemoveByCondition(condition string, pars []interface{}
 	if condition == "" {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
-	_, err = o.Raw(sql, pars).Exec()
+	err = o.Exec(sql, pars...).Error
 	return
 }
 
 func (m *FactorEdbSeries) GetItemById(id int) (item *FactorEdbSeries, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = o.Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *FactorEdbSeries) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FactorEdbSeries, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = o.Raw(sql, pars...).First(&item).Error
 	return
 }
 
 func (m *FactorEdbSeries) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	err = o.Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
 func (m *FactorEdbSeries) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FactorEdbSeries, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -140,12 +136,12 @@ func (m *FactorEdbSeries) GetItemsByCondition(condition string, pars []interface
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func (m *FactorEdbSeries) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FactorEdbSeries, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -155,7 +151,7 @@ func (m *FactorEdbSeries) GetPageItemsByCondition(condition string, pars []inter
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = o.Raw(sql, append(pars, startSize, pageSize)...).Find(&items).Error
 	return
 }
 
@@ -200,10 +196,10 @@ func (m *FactorEdbSeries) CreateSeriesAndMapping(item *FactorEdbSeries, mappings
 		err = fmt.Errorf("series is nil")
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	tx, e := o.Begin()
-	if e != nil {
-		err = fmt.Errorf("orm begin err: %v", e)
+	o := global.DbMap[utils.DbNameIndex]
+	tx := o.Begin()
+	if err = tx.Error; err != nil {
+		err = fmt.Errorf("orm begin err: %v", err)
 		return
 	}
 	defer func() {
@@ -214,21 +210,22 @@ func (m *FactorEdbSeries) CreateSeriesAndMapping(item *FactorEdbSeries, mappings
 		_ = tx.Commit()
 	}()
 
-	id, e := tx.Insert(item)
-	if e != nil {
-		err = fmt.Errorf("insert series err: %v", e)
+	// 创建系列
+	err = tx.Create(item).Error
+	if err != nil {
+		err = fmt.Errorf("insert series err: %v", err)
 		return
 	}
-	seriesId = int(id)
-	item.FactorEdbSeriesId = seriesId
+	seriesId = item.FactorEdbSeriesId
 
+	// 批量创建映射
 	if len(mappings) > 0 {
 		for _, v := range mappings {
 			v.FactorEdbSeriesId = seriesId
 		}
-		_, e = tx.InsertMulti(200, mappings)
-		if e != nil {
-			err = fmt.Errorf("insert multi mapping err: %v", e)
+		err = tx.CreateInBatches(mappings, utils.MultiAddNum).Error
+		if err != nil {
+			err = fmt.Errorf("insert multi mapping err: %v", err)
 			return
 		}
 	}
@@ -241,10 +238,10 @@ func (m *FactorEdbSeries) EditSeriesAndMapping(item *FactorEdbSeries, mappings [
 		err = fmt.Errorf("series is nil")
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	tx, e := o.Begin()
-	if e != nil {
-		err = fmt.Errorf("orm begin err: %v", e)
+	o := global.DbMap[utils.DbNameIndex]
+	tx := o.Begin()
+	if err = tx.Error; err != nil {
+		err = fmt.Errorf("orm begin err: %v", err)
 		return
 	}
 	defer func() {
@@ -255,31 +252,31 @@ func (m *FactorEdbSeries) EditSeriesAndMapping(item *FactorEdbSeries, mappings [
 		_ = tx.Commit()
 	}()
 
-	_, e = tx.Update(item, updateCols...)
-	if e != nil {
-		err = fmt.Errorf("update series err: %v", e)
+	// 更新系列
+	err = tx.Model(item).Select(updateCols).Updates(item).Error
+	if err != nil {
+		err = fmt.Errorf("update series err: %v", err)
 		return
 	}
-
-	// 清除原指标关联
 	mappingOb := new(FactorEdbSeriesMapping)
 	cond := fmt.Sprintf("%s = ?", mappingOb.Cols().FactorEdbSeriesId)
 	pars := make([]interface{}, 0)
 	pars = append(pars, item.FactorEdbSeriesId)
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, mappingOb.TableName(), cond)
-	_, e = tx.Raw(sql, pars).Exec()
-	if e != nil {
-		err = fmt.Errorf("remove mapping err: %v", e)
+	err = tx.Exec(sql, pars...).Error
+	if err != nil {
+		err = fmt.Errorf("remove mapping err: %v", err)
 		return
 	}
 
+	// 批量创建新映射
 	if len(mappings) > 0 {
 		for _, v := range mappings {
 			v.FactorEdbSeriesId = item.FactorEdbSeriesId
 		}
-		_, e = tx.InsertMulti(200, mappings)
-		if e != nil {
-			err = fmt.Errorf("insert multi mapping err: %v", e)
+		err = tx.CreateInBatches(mappings, utils.MultiAddNum).Error
+		if err != nil {
+			err = fmt.Errorf("insert multi mapping err: %v", err)
 			return
 		}
 	}
@@ -362,10 +359,10 @@ func (a FactorEdbSeriesCorrelationMatrixOrder) Less(i, j int) bool {
 
 // RemoveSeriesAndMappingByFactorEdbSeriesId 删除系列和指标关联
 func (m *FactorEdbSeries) RemoveSeriesAndMappingByFactorEdbSeriesId(factorEdbSeriesChartMapping *FactorEdbSeriesChartMapping) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	tx, e := o.Begin()
-	if e != nil {
-		err = fmt.Errorf("orm begin err: %v", e)
+	o := global.DbMap[utils.DbNameIndex]
+	tx := o.Begin()
+	if err = tx.Error; err != nil {
+		err = fmt.Errorf("orm begin err: %v", err)
 		return
 	}
 	defer func() {
@@ -375,6 +372,7 @@ func (m *FactorEdbSeries) RemoveSeriesAndMappingByFactorEdbSeriesId(factorEdbSer
 		}
 		_ = tx.Commit()
 	}()
+	
 	factorEdbSeriesId := factorEdbSeriesChartMapping.FactorEdbSeriesId
 	err = factorEdbSeriesChartMapping.Remove()
 	if err != nil {
@@ -388,35 +386,30 @@ func (m *FactorEdbSeries) RemoveSeriesAndMappingByFactorEdbSeriesId(factorEdbSer
 	// 清除原指标关联
 	seriesOb := new(FactorEdbSeries)
 	cond := fmt.Sprintf("%s = ?", seriesOb.Cols().PrimaryId)
-	pars := make([]interface{}, 0)
-	pars = append(pars, factorEdbSeriesId)
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, seriesOb.TableName(), cond)
-	_, e = tx.Raw(sql, pars).Exec()
-	if e != nil {
-		err = fmt.Errorf("remove FactorEdbSeries err: %v", e)
+	err = tx.Exec(sql, factorEdbSeriesId).Error
+	if err != nil {
+		err = fmt.Errorf("remove FactorEdbSeries err: %v", err)
 		return
 	}
 
 	// 清除原指标关联
 	mappingOb := new(FactorEdbSeriesMapping)
 	cond1 := fmt.Sprintf("%s = ?", mappingOb.Cols().FactorEdbSeriesId)
-	pars1 := make([]interface{}, 0)
-	pars1 = append(pars1, factorEdbSeriesId)
 	sql = fmt.Sprintf(`DELETE FROM %s WHERE %s`, mappingOb.TableName(), cond1)
-	_, e = tx.Raw(sql, pars1).Exec()
-	if e != nil {
-		err = fmt.Errorf("remove mapping err: %v", e)
+	err = tx.Exec(sql, factorEdbSeriesId).Error
+	if err != nil {
+		err = fmt.Errorf("remove mapping err: %v", err)
 		return
 	}
+
+	// 删除原指标数据
 	dataOb := new(FactorEdbSeriesCalculateDataQjjs)
-	//删除原指标数据
 	cond2 := fmt.Sprintf("%s = ?", dataOb.Cols().FactorEdbSeriesId)
-	pars2 := make([]interface{}, 0)
-	pars2 = append(pars2, factorEdbSeriesId)
 	sql = fmt.Sprintf(`DELETE FROM %s WHERE %s`, dataOb.TableName(), cond2)
-	_, e = tx.Raw(sql, pars2).Exec()
-	if e != nil {
-		err = fmt.Errorf("remove mapping err: %v", e)
+	err = tx.Exec(sql, factorEdbSeriesId).Error
+	if err != nil {
+		err = fmt.Errorf("remove mapping err: %v", err)
 		return
 	}
 	return

+ 37 - 28
models/data_manage/factor_edb_series_calculate_data.go

@@ -1,16 +1,16 @@
 package data_manage
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // FactorEdbSeriesCalculateData 因子指标系列-指标计算数据表
 type FactorEdbSeriesCalculateData struct {
-	FactorEdbSeriesCalculateDataId int       `orm:"column(factor_edb_series_calculate_data_id);pk"`
+	FactorEdbSeriesCalculateDataId int       `gorm:"column:factor_edb_series_calculate_data_id;primaryKey"`
 	FactorEdbSeriesId              int       `description:"因子指标系列ID"`
 	EdbInfoId                      int       `description:"指标ID"`
 	EdbCode                        string    `description:"指标编码"`
@@ -51,85 +51,91 @@ func (m *FactorEdbSeriesCalculateData) Cols() FactorEdbSeriesCalculateDataCols {
 	}
 }
 
+// Create 创建单个记录
 func (m *FactorEdbSeriesCalculateData) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.FactorEdbSeriesCalculateDataId = int(id)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Create(m).Error
 	return
 }
 
+// CreateMulti 批量创建记录
 func (m *FactorEdbSeriesCalculateData) CreateMulti(items []*FactorEdbSeriesCalculateData) (err error) {
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(500, items)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
+// Update 更新指定字段
 func (m *FactorEdbSeriesCalculateData) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Model(m).Select(cols).Updates(m).Error
 	return
 }
 
+// Remove 删除单个记录
 func (m *FactorEdbSeriesCalculateData) Remove() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	_, err = o.Raw(sql, m.FactorEdbSeriesCalculateDataId).Exec()
+	err = o.Exec(sql, m.FactorEdbSeriesCalculateDataId).Error
 	return
 }
 
+// MultiRemove 批量删除记录
 func (m *FactorEdbSeriesCalculateData) MultiRemove(ids []int) (err error) {
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.Cols().PrimaryId, utils.GetOrmInReplace(len(ids)))
-	_, err = o.Raw(sql, ids).Exec()
+	err = o.Exec(sql, ids).Error
 	return
 }
 
+// RemoveByCondition 按条件删除记录
 func (m *FactorEdbSeriesCalculateData) RemoveByCondition(condition string, pars []interface{}) (err error) {
 	if condition == "" {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
-	_, err = o.Raw(sql, pars).Exec()
+	err = o.Exec(sql, pars...).Error
 	return
 }
 
+// GetItemById 根据ID获取单个记录
 func (m *FactorEdbSeriesCalculateData) GetItemById(id int) (item *FactorEdbSeriesCalculateData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = o.Raw(sql, id).First(&item).Error
 	return
 }
 
+// GetItemByCondition 根据条件获取单个记录
 func (m *FactorEdbSeriesCalculateData) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FactorEdbSeriesCalculateData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = o.Raw(sql, pars...).First(&item).Error
 	return
 }
 
+// GetCountByCondition 根据条件获取记录数量
 func (m *FactorEdbSeriesCalculateData) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	err = o.Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
+// GetItemsByCondition 根据条件获取多条记录
 func (m *FactorEdbSeriesCalculateData) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FactorEdbSeriesCalculateData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -139,12 +145,13 @@ func (m *FactorEdbSeriesCalculateData) GetItemsByCondition(condition string, par
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
+// GetPageItemsByCondition 根据条件分页获取记录
 func (m *FactorEdbSeriesCalculateData) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FactorEdbSeriesCalculateData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -154,7 +161,7 @@ func (m *FactorEdbSeriesCalculateData) GetPageItemsByCondition(condition string,
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = o.Raw(sql, append(pars, startSize, pageSize)...).Find(&items).Error
 	return
 }
 
@@ -174,6 +181,8 @@ func (m *FactorEdbSeriesCalculateData) Format2Item() (item *FactorEdbSeriesCalcu
 	item.FactorEdbSeriesId = m.FactorEdbSeriesId
 	item.EdbInfoId = m.EdbInfoId
 	item.EdbCode = m.EdbCode
+	item.DataTime = m.DataTime.Format(utils.FormatDate)
+	item.Value = m.Value
 	return
 }
 

+ 41 - 33
models/data_manage/factor_edb_series_calculate_data_qjjs.go

@@ -1,16 +1,16 @@
 package data_manage
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // FactorEdbSeriesCalculateDataQjjs 因子指标系列-区间计算数据表
 type FactorEdbSeriesCalculateDataQjjs struct {
-	FactorEdbSeriesCalculateDataId int       `orm:"column(factor_edb_series_calculate_data_id);pk"`
+	FactorEdbSeriesCalculateDataId int       `gorm:"column:factor_edb_series_calculate_data_id;primaryKey"`
 	FactorEdbSeriesId              int       `description:"因子指标系列ID"`
 	EdbInfoId                      int       `description:"指标ID"`
 	EdbCode                        string    `description:"指标编码"`
@@ -51,85 +51,91 @@ func (m *FactorEdbSeriesCalculateDataQjjs) Cols() FactorEdbSeriesCalculateDataQj
 	}
 }
 
+// Create 创建单个记录
 func (m *FactorEdbSeriesCalculateDataQjjs) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.FactorEdbSeriesCalculateDataId = int(id)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Create(m).Error
 	return
 }
 
+// CreateMulti 批量创建记录
 func (m *FactorEdbSeriesCalculateDataQjjs) CreateMulti(items []*FactorEdbSeriesCalculateDataQjjs) (err error) {
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(500, items)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
+// Update 更新指定字段
 func (m *FactorEdbSeriesCalculateDataQjjs) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Model(m).Select(cols).Updates(m).Error
 	return
 }
 
+// Remove 删除单个记录
 func (m *FactorEdbSeriesCalculateDataQjjs) Remove() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	_, err = o.Raw(sql, m.FactorEdbSeriesCalculateDataId).Exec()
+	err = o.Exec(sql, m.FactorEdbSeriesCalculateDataId).Error
 	return
 }
 
+// MultiRemove 批量删除记录
 func (m *FactorEdbSeriesCalculateDataQjjs) MultiRemove(ids []int) (err error) {
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.Cols().PrimaryId, utils.GetOrmInReplace(len(ids)))
-	_, err = o.Raw(sql, ids).Exec()
+	err = o.Exec(sql, ids).Error
 	return
 }
 
+// RemoveByCondition 按条件删除记录
 func (m *FactorEdbSeriesCalculateDataQjjs) RemoveByCondition(condition string, pars []interface{}) (err error) {
 	if condition == "" {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
-	_, err = o.Raw(sql, pars).Exec()
+	err = o.Exec(sql, pars...).Error
 	return
 }
 
+// GetItemById 根据ID获取单个记录
 func (m *FactorEdbSeriesCalculateDataQjjs) GetItemById(id int) (item *FactorEdbSeriesCalculateDataQjjs, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = o.Raw(sql, id).First(&item).Error
 	return
 }
 
+// GetItemByCondition 根据条件获取单个记录
 func (m *FactorEdbSeriesCalculateDataQjjs) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FactorEdbSeriesCalculateDataQjjs, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = o.Raw(sql, pars...).First(&item).Error
 	return
 }
 
+// GetCountByCondition 根据条件获取记录数量
 func (m *FactorEdbSeriesCalculateDataQjjs) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	err = o.Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
+// GetItemsByCondition 根据条件获取多条记录
 func (m *FactorEdbSeriesCalculateDataQjjs) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FactorEdbSeriesCalculateDataQjjs, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -139,12 +145,13 @@ func (m *FactorEdbSeriesCalculateDataQjjs) GetItemsByCondition(condition string,
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
+// GetPageItemsByCondition 根据条件分页获取记录
 func (m *FactorEdbSeriesCalculateDataQjjs) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FactorEdbSeriesCalculateDataQjjs, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -154,7 +161,7 @@ func (m *FactorEdbSeriesCalculateDataQjjs) GetPageItemsByCondition(condition str
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = o.Raw(sql, append(pars, startSize, pageSize)...).Find(&items).Error
 	return
 }
 
@@ -189,22 +196,23 @@ func TransEdbSeriesCalculateDataQjjs2EdbDataList(items []*FactorEdbSeriesCalcula
 	return
 }
 
+// GetEdbDataList 获取Edb数据列表
 func (m *FactorEdbSeriesCalculateDataQjjs) GetEdbDataList(seriesId int, edbInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
 	var pars []interface{}
-	sql := `SELECT factor_edb_series_calculate_data_id as edb_data_id  ,edb_info_id,data_time,value,data_timestamp FROM %s WHERE edb_info_id=? and factor_edb_series_id=? `
+	sql := `SELECT factor_edb_series_calculate_data_id as edb_data_id, edb_info_id, data_time, value, data_timestamp FROM %s WHERE edb_info_id=? AND factor_edb_series_id=? `
 	pars = append(pars, edbInfoId, seriesId)
 	if startDate != "" {
-		sql += ` AND data_time>=? `
+		sql += ` AND data_time >= ? `
 		pars = append(pars, startDate)
 	}
 	if endDate != "" {
-		sql += ` AND data_time<=? `
+		sql += ` AND data_time <= ? `
 		pars = append(pars, endDate)
 	}
 
 	sql += ` ORDER BY data_time ASC `
 	sql = fmt.Sprintf(sql, m.TableName())
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Raw(sql, pars...).Find(&list).Error
 	return
 }

+ 32 - 26
models/data_manage/factor_edb_series_calculate_func.go

@@ -1,16 +1,16 @@
 package data_manage
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // FactorEdbSeriesCalculateFunc 多因子系列-计算方式表
 type FactorEdbSeriesCalculateFunc struct {
-	FactorEdbSeriesCalculateFuncId int       `orm:"column(factor_edb_series_calculate_func_id);pk"`
+	FactorEdbSeriesCalculateFuncId int       `gorm:"column:factor_edb_series_calculate_func_id;primaryKey"`
 	CalculateName                  string    `description:"计算方式名称"`
 	Source                         int       `description:"计算方式来源"`
 	EdbInfoType                    int       `description:"指标计算类型:0-普通指标;1-预测指标"`
@@ -42,75 +42,80 @@ func (m *FactorEdbSeriesCalculateFunc) Cols() FactorEdbSeriesCalculateFuncCols {
 	}
 }
 
+// Create 创建单个记录
 func (m *FactorEdbSeriesCalculateFunc) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.FactorEdbSeriesCalculateFuncId = int(id)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Create(m).Error
 	return
 }
 
+// CreateMulti 批量创建记录
 func (m *FactorEdbSeriesCalculateFunc) CreateMulti(items []*FactorEdbSeriesCalculateFunc) (err error) {
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(len(items), items)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
+// Update 更新指定字段
 func (m *FactorEdbSeriesCalculateFunc) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Model(m).Select(cols).Updates(m).Error
 	return
 }
 
+// Remove 删除单个记录
 func (m *FactorEdbSeriesCalculateFunc) Remove() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	_, err = o.Raw(sql, m.FactorEdbSeriesCalculateFuncId).Exec()
+	err = o.Exec(sql, m.FactorEdbSeriesCalculateFuncId).Error
 	return
 }
 
+// MultiRemove 批量删除记录
 func (m *FactorEdbSeriesCalculateFunc) MultiRemove(ids []int) (err error) {
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.Cols().PrimaryId, utils.GetOrmInReplace(len(ids)))
-	_, err = o.Raw(sql, ids).Exec()
+	err = o.Exec(sql, ids).Error
 	return
 }
 
+// GetItemById 根据ID获取单个记录
 func (m *FactorEdbSeriesCalculateFunc) GetItemById(id int) (item *FactorEdbSeriesCalculateFunc, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = o.Raw(sql, id).First(&item).Error
 	return
 }
 
+// GetItemByCondition 根据条件获取单个记录
 func (m *FactorEdbSeriesCalculateFunc) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FactorEdbSeriesCalculateFunc, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = o.Raw(sql, pars...).First(&item).Error
 	return
 }
 
+// GetCountByCondition 根据条件获取记录数量
 func (m *FactorEdbSeriesCalculateFunc) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	err = o.Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
+// GetItemsByCondition 根据条件获取多条记录
 func (m *FactorEdbSeriesCalculateFunc) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FactorEdbSeriesCalculateFunc, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -120,12 +125,13 @@ func (m *FactorEdbSeriesCalculateFunc) GetItemsByCondition(condition string, par
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
+// GetPageItemsByCondition 根据条件分页获取记录
 func (m *FactorEdbSeriesCalculateFunc) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FactorEdbSeriesCalculateFunc, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -135,7 +141,7 @@ func (m *FactorEdbSeriesCalculateFunc) GetPageItemsByCondition(condition string,
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = o.Raw(sql, append(pars, startSize, pageSize)...).Find(&items).Error
 	return
 }
 

+ 54 - 43
models/data_manage/factor_edb_series_chart_mapping.go

@@ -1,9 +1,9 @@
 package data_manage
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
@@ -15,7 +15,7 @@ const (
 
 // FactorEdbSeriesChartMapping 因子指标系列-图表关联
 type FactorEdbSeriesChartMapping struct {
-	FactorEdbSeriesChartMappingId int       `orm:"column(factor_edb_series_chart_mapping_id);pk"`
+	FactorEdbSeriesChartMappingId int       `gorm:"column:factor_edb_series_chart_mapping_id;primaryKey"`
 	ChartInfoId                   int       `description:"图表ID"`
 	Source                        int       `description:"图表来源, 同chart_info表source"`
 	CalculateType                 int       `description:"计算方式: 1-相关性"`
@@ -62,92 +62,99 @@ func (m *FactorEdbSeriesChartMapping) Cols() MultipleFactorSeriesChartMappingCol
 	}
 }
 
+// Create 创建单个记录
 func (m *FactorEdbSeriesChartMapping) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.FactorEdbSeriesChartMappingId = int(id)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Create(m).Error
 	return
 }
 
+// CreateMulti 批量创建记录
 func (m *FactorEdbSeriesChartMapping) CreateMulti(items []*FactorEdbSeriesChartMapping) (err error) {
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(len(items), items)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
+// Update 更新指定字段
 func (m *FactorEdbSeriesChartMapping) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Model(m).Select(cols).Updates(m).Error
 	return
 }
 
+// Remove 删除单个记录
 func (m *FactorEdbSeriesChartMapping) Remove() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	_, err = o.Raw(sql, m.FactorEdbSeriesChartMappingId).Exec()
+	err = o.Exec(sql, m.FactorEdbSeriesChartMappingId).Error
 	return
 }
 
+// MultiRemove 批量删除记录
 func (m *FactorEdbSeriesChartMapping) MultiRemove(ids []int) (err error) {
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.Cols().PrimaryId, utils.GetOrmInReplace(len(ids)))
-	_, err = o.Raw(sql, ids).Exec()
+	err = o.Exec(sql, ids).Error
 	return
 }
 
+// RemoveByCondition 按条件删除记录
 func (m *FactorEdbSeriesChartMapping) RemoveByCondition(condition string, pars []interface{}) (err error) {
 	if condition == "" {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
-	_, err = o.Raw(sql, pars).Exec()
+	err = o.Exec(sql, pars...).Error
 	return
 }
 
+// GetItemById 根据ID获取单个记录
 func (m *FactorEdbSeriesChartMapping) GetItemById(id int) (item *FactorEdbSeriesChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = o.Raw(sql, id).First(&item).Error
 	return
 }
 
+// GetItemByChartInfoId 根据ChartInfoId获取单个记录
 func (m *FactorEdbSeriesChartMapping) GetItemByChartInfoId(id int) (item *FactorEdbSeriesChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().ChartInfoId)
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = o.Raw(sql, id).First(&item).Error
 	return
 }
 
+// GetItemByCondition 根据条件获取单个记录
 func (m *FactorEdbSeriesChartMapping) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FactorEdbSeriesChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = o.Raw(sql, pars...).First(&item).Error
 	return
 }
 
+// GetCountByCondition 根据条件获取记录数量
 func (m *FactorEdbSeriesChartMapping) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	err = o.Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
+// GetItemsByCondition 根据条件获取多条记录
 func (m *FactorEdbSeriesChartMapping) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FactorEdbSeriesChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -157,12 +164,13 @@ func (m *FactorEdbSeriesChartMapping) GetItemsByCondition(condition string, pars
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
+// GetPageItemsByCondition 根据条件分页获取记录
 func (m *FactorEdbSeriesChartMapping) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FactorEdbSeriesChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -172,24 +180,24 @@ func (m *FactorEdbSeriesChartMapping) GetPageItemsByCondition(condition string,
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = o.Raw(sql, append(pars, startSize, pageSize)...).Find(&items).Error
 	return
 }
 
 // GetDistinctSeriesIdByChartId 获取图表关联的系列ID
 func (m *FactorEdbSeriesChartMapping) GetDistinctSeriesIdByChartId(chartId int) (seriesIds []int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT DISTINCT %s FROM %s WHERE %s = ?`, m.Cols().FactorEdbSeriesId, m.TableName(), m.Cols().ChartInfoId)
-	_, err = o.Raw(sql, chartId).QueryRows(&seriesIds)
+	err = o.Raw(sql, chartId).Find(&seriesIds).Error
 	return
 }
 
-// ClearAndCreateMapping 新增图表关联
+// ClearAndCreateMapping 清除并创建映射
 func (m *FactorEdbSeriesChartMapping) ClearAndCreateMapping(seriesIds []int, mappings []*FactorEdbSeriesChartMapping) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	tx, e := o.Begin()
-	if e != nil {
-		err = fmt.Errorf("orm begin err: %v", e)
+	o := global.DbMap[utils.DbNameIndex]
+	tx := o.Begin()
+	if err = tx.Error; err != nil {
+		err = fmt.Errorf("gorm begin err: %v", err)
 		return
 	}
 	defer func() {
@@ -202,17 +210,20 @@ func (m *FactorEdbSeriesChartMapping) ClearAndCreateMapping(seriesIds []int, map
 
 	if len(seriesIds) > 0 {
 		sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s) AND %s = 0`, m.TableName(), m.Cols().FactorEdbSeriesId, utils.GetOrmInReplace(len(seriesIds)), m.Cols().ChartInfoId)
-		_, e = tx.Raw(sql, seriesIds).Exec()
-		if e != nil {
-			err = fmt.Errorf("remove chart mapping err: %v", e)
+		err = tx.Exec(sql, seriesIds).Error
+		if err != nil {
+			err = fmt.Errorf("remove chart mapping err: %v", err)
 			return
 		}
 	}
 
 	if len(mappings) > 0 {
-		_, e = tx.InsertMulti(200, mappings)
-		if e != nil {
-			err = fmt.Errorf("insert multi mapping err: %v", e)
+		for _, v := range mappings {
+			v.FactorEdbSeriesId = 0 // 这里需要根据实际逻辑调整
+		}
+		err = tx.CreateInBatches(mappings, utils.MultiAddNum).Error
+		if err != nil {
+			err = fmt.Errorf("insert multi mapping err: %v", err)
 			return
 		}
 	}

+ 39 - 30
models/data_manage/factor_edb_series_mapping.go

@@ -1,16 +1,16 @@
 package data_manage
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // FactorEdbSeriesMapping 因子指标系列-指标关联表
 type FactorEdbSeriesMapping struct {
-	FactorEdbSeriesMappingId int       `orm:"column(factor_edb_series_mapping_id);pk"`
+	FactorEdbSeriesMappingId int       `gorm:"column:factor_edb_series_mapping_id;primaryKey"`
 	FactorEdbSeriesId        int       `description:"因子指标系列ID"`
 	EdbInfoId                int       `description:"指标ID"`
 	EdbCode                  string    `description:"指标编码"`
@@ -42,85 +42,91 @@ func (m *FactorEdbSeriesMapping) Cols() FactorEdbSeriesMappingCols {
 	}
 }
 
+// Create 创建单个记录
 func (m *FactorEdbSeriesMapping) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.FactorEdbSeriesMappingId = int(id)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Create(m).Error
 	return
 }
 
+// CreateMulti 批量创建记录
 func (m *FactorEdbSeriesMapping) CreateMulti(items []*FactorEdbSeriesMapping) (err error) {
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(len(items), items)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
+// Update 更新指定字段
 func (m *FactorEdbSeriesMapping) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	o := global.DbMap[utils.DbNameIndex]
+	err = o.Model(m).Select(cols).Updates(m).Error
 	return
 }
 
+// Remove 删除单个记录
 func (m *FactorEdbSeriesMapping) Remove() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	_, err = o.Raw(sql, m.FactorEdbSeriesMappingId).Exec()
+	err = o.Exec(sql, m.FactorEdbSeriesMappingId).Error
 	return
 }
 
+// MultiRemove 批量删除记录
 func (m *FactorEdbSeriesMapping) MultiRemove(ids []int) (err error) {
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.Cols().PrimaryId, utils.GetOrmInReplace(len(ids)))
-	_, err = o.Raw(sql, ids).Exec()
+	err = o.Exec(sql, ids).Error
 	return
 }
 
+// RemoveByCondition 按条件删除记录
 func (m *FactorEdbSeriesMapping) RemoveByCondition(condition string, pars []interface{}) (err error) {
 	if condition == "" {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
-	_, err = o.Raw(sql, pars).Exec()
+	err = o.Exec(sql, pars...).Error
 	return
 }
 
+// GetItemById 根据ID获取单个记录
 func (m *FactorEdbSeriesMapping) GetItemById(id int) (item *FactorEdbSeriesMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = o.Raw(sql, id).First(&item).Error
 	return
 }
 
+// GetItemByCondition 根据条件获取单个记录
 func (m *FactorEdbSeriesMapping) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FactorEdbSeriesMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = o.Raw(sql, pars...).First(&item).Error
 	return
 }
 
+// GetCountByCondition 根据条件获取记录数量
 func (m *FactorEdbSeriesMapping) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	err = o.Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
+// GetItemsByCondition 根据条件获取多条记录
 func (m *FactorEdbSeriesMapping) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FactorEdbSeriesMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -130,12 +136,13 @@ func (m *FactorEdbSeriesMapping) GetItemsByCondition(condition string, pars []in
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
+// GetPageItemsByCondition 根据条件分页获取记录
 func (m *FactorEdbSeriesMapping) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FactorEdbSeriesMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -145,7 +152,7 @@ func (m *FactorEdbSeriesMapping) GetPageItemsByCondition(condition string, pars
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = o.Raw(sql, append(pars, startSize, pageSize)...).Find(&items).Error
 	return
 }
 
@@ -158,6 +165,7 @@ type FactorEdbSeriesMappingItem struct {
 	EdbNameEn string `description:"指标名称-英文"`
 }
 
+// Format2Item 格式化为展示用的结构体
 func (m *FactorEdbSeriesMapping) Format2Item() (item *FactorEdbSeriesMappingItem) {
 	item = new(FactorEdbSeriesMappingItem)
 	item.SeriesId = m.FactorEdbSeriesId
@@ -166,9 +174,10 @@ func (m *FactorEdbSeriesMapping) Format2Item() (item *FactorEdbSeriesMappingItem
 	return
 }
 
+// GetItemBySeriesId 根据系列ID获取关联的映射
 func (m *FactorEdbSeriesMapping) GetItemBySeriesId(seriesId int) (items []*FactorEdbSeriesMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().FactorEdbSeriesId)
-	_, err = o.Raw(sql, seriesId).QueryRows(&items)
+	err = o.Raw(sql, seriesId).Find(&items).Error
 	return
 }

+ 86 - 92
models/data_manage/future_good_chart_info.go

@@ -1,55 +1,53 @@
 package data_manage
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // EditFutureGoodChartEnInfoAndEdbEnInfo 更改商品价格曲线英文信息
 func EditFutureGoodChartEnInfoAndEdbEnInfo(chartInfoId int, chartNameEn string, edbInfoId int, edbNameEn, edbUnitEn string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
+	o := global.DbMap[utils.DbNameIndex]
+	tx := o.Begin()
+	if err = tx.Error; err != nil {
 		return
 	}
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
+			tx.Rollback()
 		} else {
-			_ = to.Commit()
+			tx.Commit()
 		}
 	}()
 
-	sql := ` UPDATE  chart_info
-			SET
-			  chart_name_en =?,
-			  modify_time = NOW()
+	sql := `UPDATE chart_info 
+			SET chart_name_en = ?, modify_time = NOW() 
 			WHERE chart_info_id = ?`
-
-	_, err = to.Raw(sql, chartNameEn, chartInfoId).Exec()
+	err = tx.Exec(sql, chartNameEn, chartInfoId).Error
 	if err != nil {
-		fmt.Println("UPDATE  chart_info Err:", err.Error())
-		return err
+		fmt.Println("UPDATE chart_info Err:", err.Error())
+		return
 	}
-	var count int
-	csql := `SELECT COUNT(1) AS count FROM chart_edb_mapping WHERE chart_info_id=? AND edb_info_id=? AND source = 1 `
-	err = to.Raw(csql, chartInfoId, edbInfoId).QueryRow(&count)
+
+	var count int64
+	csql := `SELECT COUNT(1) AS count FROM chart_edb_mapping 
+	         WHERE chart_info_id=? AND edb_info_id=? AND source = 1`
+	err = tx.Raw(csql, chartInfoId, edbInfoId).Scan(&count).Error
 	if err != nil {
 		fmt.Println("QueryRow Err:", err.Error())
-		return err
+		return
 	}
+
 	if count > 0 {
-		msql := ` UPDATE  edb_info
-			SET edb_name_en = ?,
-			  unit_en = ?,
-			  modify_time = NOW()
-			WHERE edb_info_id = ? `
-		_, err = to.Raw(msql, edbNameEn, edbUnitEn, edbInfoId).Exec()
+		msql := `UPDATE edb_info 
+				SET edb_name_en = ?, unit_en = ?, modify_time = NOW() 
+				WHERE edb_info_id = ?`
+		err = tx.Exec(msql, edbNameEn, edbUnitEn, edbInfoId).Error
 		if err != nil {
 			fmt.Println("edb_info Err:" + err.Error())
-			return err
+			return
 		}
 	}
 
@@ -79,16 +77,16 @@ type EditFutureGoodChartInfoBaseReq struct {
 // @param lang string
 // @return err error
 func EditBaseFutureGoodChartInfoAndEdbEnInfo(chartInfo *ChartInfo, req *EditFutureGoodChartInfoBaseReq, lang string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
+	o := global.DbMap[utils.DbNameIndex]
+	tx := o.Begin()
+	if err = tx.Error; err != nil {
 		return
 	}
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
+			tx.Rollback()
 		} else {
-			_ = to.Commit()
+			tx.Commit()
 		}
 	}()
 
@@ -104,44 +102,42 @@ func EditBaseFutureGoodChartInfoAndEdbEnInfo(chartInfo *ChartInfo, req *EditFutu
 	}
 	chartInfo.ModifyTime = time.Now()
 	updateChartCols = append(updateChartCols, "ModifyTime", "BarConfig")
-	_, err = to.Update(chartInfo, updateChartCols...)
+	
+	err = tx.Model(chartInfo).Select(updateChartCols).Updates(chartInfo).Error
 	if err != nil {
-		fmt.Println("UPDATE  chart_info Err:", err.Error())
-		return err
+		fmt.Println("UPDATE chart_info Err:", err.Error())
+		return
 	}
+
 	for _, v := range req.ChartEdbInfoList {
-		msql := ` UPDATE edb_info SET modify_time = NOW()  `
+		msql := `UPDATE edb_info SET modify_time = NOW()`
 		pars := make([]interface{}, 0)
 		switch lang {
 		case utils.EnLangVersion:
 			if v.EdbName != `` {
-				msql += ` ,edb_name_en = ? `
+				msql += `, edb_name_en = ?`
 				pars = append(pars, v.EdbName)
 			}
-
 			if v.Unit != `` {
-				msql += ` ,unit_en = ? `
+				msql += `, unit_en = ?`
 				pars = append(pars, v.Unit)
 			}
-
 		default:
-
 			if v.EdbName != `` {
-				msql += ` ,edb_name = ? `
+				msql += `, edb_name = ?`
 				pars = append(pars, v.EdbName)
 			}
-
 			if v.Unit != `` {
-				msql += ` ,unit = ? `
+				msql += `, unit = ?`
 				pars = append(pars, v.Unit)
 			}
 		}
-		msql += ` WHERE edb_info_id = ? `
+		msql += ` WHERE edb_info_id = ?`
 		pars = append(pars, v.EdbInfoId)
-		_, err = to.Raw(msql, pars...).Exec()
+		err = tx.Exec(msql, pars...).Error
 		if err != nil {
 			fmt.Println("edb_info Err:" + err.Error())
-			return err
+			return
 		}
 	}
 	return
@@ -149,44 +145,41 @@ func EditBaseFutureGoodChartInfoAndEdbEnInfo(chartInfo *ChartInfo, req *EditFutu
 
 // EditFutureGoodProfitChartEnInfoAndEdbEnInfo 更改商品利润曲线英文信息
 func EditFutureGoodProfitChartEnInfoAndEdbEnInfo(chartInfoId int, chartNameEn string, edbInfoId int, edbNameEn, edbUnitEn, profitNameEn string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
+	o := global.DbMap[utils.DbNameIndex]
+	tx := o.Begin()
+	if err = tx.Error; err != nil {
 		return
 	}
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
+			tx.Rollback()
 		} else {
-			_ = to.Commit()
+			tx.Commit()
 		}
 	}()
 
-	sql := ` UPDATE  chart_info
-			SET chart_name_en =?,modify_time = NOW()
+	sql := `UPDATE chart_info 
+			SET chart_name_en = ?, modify_time = NOW() 
 			WHERE chart_info_id = ?`
-
-	_, err = to.Raw(sql, chartNameEn, chartInfoId).Exec()
+	err = tx.Exec(sql, chartNameEn, chartInfoId).Error
 	if err != nil {
-		fmt.Println("UPDATE  chart_info Err:", err.Error())
+		fmt.Println("UPDATE chart_info Err:", err.Error())
 		return
 	}
 
-	// 更改指标英文信息
-	sql = ` UPDATE  edb_info
-			SET edb_name_en = ?,unit_en = ?,modify_time = NOW()
-			WHERE edb_info_id = ? `
-	_, err = to.Raw(sql, edbNameEn, edbUnitEn, edbInfoId).Exec()
+	sql = `UPDATE edb_info 
+		   SET edb_name_en = ?, unit_en = ?, modify_time = NOW() 
+		   WHERE edb_info_id = ?`
+	err = tx.Exec(sql, edbNameEn, edbUnitEn, edbInfoId).Error
 	if err != nil {
 		fmt.Println("edb_info Err:" + err.Error())
 		return
 	}
 
-	// 更改指标英文信息
-	sql = ` UPDATE  chart_info_future_good_profit
-			SET profit_name_en = ?,modify_time = NOW()
-			WHERE chart_info_id = ? `
-	_, err = to.Raw(sql, profitNameEn, chartInfoId).Exec()
+	sql = `UPDATE chart_info_future_good_profit 
+		   SET profit_name_en = ?, modify_time = NOW() 
+		   WHERE chart_info_id = ?`
+	err = tx.Exec(sql, profitNameEn, chartInfoId).Error
 	if err != nil {
 		fmt.Println("chart_info_future_good_profit Err:" + err.Error())
 		return
@@ -208,16 +201,16 @@ func EditFutureGoodProfitChartEnInfoAndEdbEnInfo(chartInfoId int, chartNameEn st
 // @param lang string
 // @return err error
 func EditBaseFutureGoodProfitChartInfoAndEdbEnInfo(chartInfo *ChartInfo, req *EditFutureGoodChartInfoBaseReq, lang string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
+	o := global.DbMap[utils.DbNameIndex]
+	tx := o.Begin()
+	if err = tx.Error; err != nil {
 		return
 	}
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
+			tx.Rollback()
 		} else {
-			_ = to.Commit()
+			tx.Commit()
 		}
 	}()
 
@@ -233,58 +226,59 @@ func EditBaseFutureGoodProfitChartInfoAndEdbEnInfo(chartInfo *ChartInfo, req *Ed
 	}
 	chartInfo.ModifyTime = time.Now()
 	updateChartCols = append(updateChartCols, "ModifyTime", "ExtraConfig")
-	_, err = to.Update(chartInfo, updateChartCols...)
+	
+	err = tx.Model(chartInfo).Select(updateChartCols).Updates(chartInfo).Error
 	if err != nil {
-		fmt.Println("UPDATE  chart_info Err:", err.Error())
-		return err
+		fmt.Println("UPDATE chart_info Err:", err.Error())
+		return
 	}
-	var sql string
-	// 更改指标英文信息
+
+	// 更改指标信息
 	for _, v := range req.ChartEdbInfoList {
-		msql := ` UPDATE edb_info SET modify_time = NOW()  `
+		msql := `UPDATE edb_info SET modify_time = NOW()`
 		pars := make([]interface{}, 0)
 		switch lang {
 		case utils.EnLangVersion:
 			if v.EdbName != `` {
-				msql += ` ,edb_name_en = ? `
+				msql += `, edb_name_en = ?`
 				pars = append(pars, v.EdbName)
 			}
-
 			if v.Unit != `` {
-				msql += ` ,unit_en = ? `
+				msql += `, unit_en = ?`
 				pars = append(pars, v.Unit)
 			}
-
 		default:
-
 			if v.EdbName != `` {
-				msql += ` ,edb_name = ? `
+				msql += `, edb_name = ?`
 				pars = append(pars, v.EdbName)
 			}
-
 			if v.Unit != `` {
-				msql += ` ,unit = ? `
+				msql += `, unit = ?`
 				pars = append(pars, v.Unit)
 			}
 		}
-		msql += ` WHERE edb_info_id = ? `
+		msql += ` WHERE edb_info_id = ?`
 		pars = append(pars, v.EdbInfoId)
-		_, err = to.Raw(msql, pars...).Exec()
+		err = tx.Exec(msql, pars...).Error
 		if err != nil {
 			fmt.Println("edb_info Err:" + err.Error())
-			return err
+			return
 		}
 	}
 
-	// 更改指标英文信息
-
+	// 更改利润名称
+	var sql string
 	switch lang {
 	case utils.EnLangVersion:
-		sql = ` UPDATE  chart_info_future_good_profit SET profit_name_en = ?,modify_time = NOW() WHERE chart_info_id = ? `
+		sql = `UPDATE chart_info_future_good_profit 
+			   SET profit_name_en = ?, modify_time = NOW() 
+			   WHERE chart_info_id = ?`
 	default:
-		sql = ` UPDATE  chart_info_future_good_profit SET profit_name = ?,modify_time = NOW() WHERE chart_info_id = ? `
+		sql = `UPDATE chart_info_future_good_profit 
+			   SET profit_name = ?, modify_time = NOW() 
+			   WHERE chart_info_id = ?`
 	}
-	_, err = to.Raw(sql, req.ProfitName, chartInfo.ChartInfoId).Exec()
+	err = tx.Exec(sql, req.ProfitName, chartInfo.ChartInfoId).Error
 	if err != nil {
 		fmt.Println("chart_info_future_good_profit Err:" + err.Error())
 		return

+ 83 - 81
models/data_manage/gl_data.go

@@ -1,9 +1,10 @@
 package data_manage
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
+
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
@@ -12,9 +13,10 @@ type GlClassify struct {
 }
 
 func GetGlSurveyClassify() (items []*GlClassify, err error) {
-	sql := ` SELECT CASE WHEN BREED_SHORT_NAME IS NULL THEN '无' ELSE BREED_SHORT_NAME END BREED_SHORT_NAME  FROM mb_index_main_info GROUP BY BREED_SHORT_NAME ORDER BY BREED_SHORT_NAME ASC `
-	o := orm.NewOrmUsingDB("gl")
-	o.Raw(sql).QueryRows(&items)
+	sql := `SELECT CASE WHEN BREED_SHORT_NAME IS NULL THEN '无' ELSE BREED_SHORT_NAME END BREED_SHORT_NAME 
+           FROM mb_index_main_info GROUP BY BREED_SHORT_NAME ORDER BY BREED_SHORT_NAME ASC`
+	o := global.DbMap[utils.DbNameGL]
+	err = o.Raw(sql).Find(&items).Error
 	return
 }
 
@@ -23,94 +25,100 @@ type GlFrequency struct {
 }
 
 func GetGlFrequencyByClassifyId(breedShortName string) (items []*GlFrequency, err error) {
-	o := orm.NewOrmUsingDB("gl")
+	o := global.DbMap[utils.DbNameGL]
+	var sql string
 	if breedShortName == "无" {
-		sql := ` SELECT FREQUENCY_NAME AS frequency FROM mb_index_main_info WHERE BREED_SHORT_NAME IS NULL GROUP BY FREQUENCY_CODE ORDER BY FREQUENCY_CODE ASC `
-		_, err = o.Raw(sql).QueryRows(&items)
-		return
+		sql = `SELECT FREQUENCY_NAME AS frequency FROM mb_index_main_info 
+               WHERE BREED_SHORT_NAME IS NULL GROUP BY FREQUENCY_CODE ORDER BY FREQUENCY_CODE ASC`
+		err = o.Raw(sql).Find(&items).Error
 	} else {
-		sql := ` SELECT FREQUENCY_NAME AS frequency FROM mb_index_main_info WHERE BREED_SHORT_NAME=? GROUP BY FREQUENCY_CODE ORDER BY FREQUENCY_CODE ASC `
-		_, err = o.Raw(sql, breedShortName).QueryRows(&items)
-		return
+		sql = `SELECT FREQUENCY_NAME AS frequency FROM mb_index_main_info 
+               WHERE BREED_SHORT_NAME=? GROUP BY FREQUENCY_CODE ORDER BY FREQUENCY_CODE ASC`
+		err = o.Raw(sql, breedShortName).Find(&items).Error
 	}
+	return
 }
 
 type GlIndex struct {
-	Id            int    `orm:"column(ID)"`
-	IndexCode     string `orm:"column(INDEX_CODE)"`
-	IndexName     string `orm:"column(INDEX_NAME)"`
-	UnitName      string `orm:"column(UNIT_NAME)"`
-	FrequencyName string `orm:"column(FREQUENCY_NAME)"`
-	UpdateTime    string `orm:"column(UPDATE_TIME)"`
+	Id            int    `gorm:"column:id;primaryKey"`
+	IndexCode     string `description:"指标编码"`
+	IndexName     string `description:"指标名称"`
+	UnitName      string `description:"单位"`
+	FrequencyName string `description:"频度名称"`
+	UpdateTime    string `description:"更新时间"`
 }
 
 func GetGlIndex(breedShortName, frequency string) (items []*GlIndex, err error) {
-	o := orm.NewOrmUsingDB("gl")
+	o := global.DbMap[utils.DbNameGL]
+	var sql string
 	if breedShortName == "无" {
-		sql := ` SELECT * FROM mb_index_main_info WHERE BREED_SHORT_NAME IS NULL AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC `
-		_, err = o.Raw(sql, frequency).QueryRows(&items)
-		return
+		sql = `SELECT * FROM mb_index_main_info 
+               WHERE BREED_SHORT_NAME IS NULL AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC`
+		err = o.Raw(sql, frequency).Find(&items).Error
 	} else {
-		sql := ` SELECT * FROM mb_index_main_info WHERE BREED_SHORT_NAME=? AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC `
-		_, err = o.Raw(sql, breedShortName, frequency).QueryRows(&items)
-		return
+		sql = `SELECT * FROM mb_index_main_info 
+               WHERE BREED_SHORT_NAME=? AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC`
+		err = o.Raw(sql, breedShortName, frequency).Find(&items).Error
 	}
+	return
 }
 
 func GetGlFrequency(productName string) (items []*string, err error) {
-	sql := `SELECT DISTINCT FREQUENCY_NAME FROM mb_index_main_info WHERE BREED_SHORT_NAME=? ORDER BY FIELD(FREQUENCY_NAME,'日度','周度','旬度','月度','季度','半年','年度') `
-	o := orm.NewOrmUsingDB("gl")
-	_, err = o.Raw(sql, productName).QueryRows(&items)
+	sql := `SELECT DISTINCT FREQUENCY_NAME FROM mb_index_main_info 
+           WHERE BREED_SHORT_NAME=? ORDER BY FIELD(FREQUENCY_NAME,'日度','周度','旬度','月度','季度','半年','年度')`
+	o := global.DbMap[utils.DbNameGL]
+	err = o.Raw(sql, productName).Find(&items).Error
 	return
 }
 
 type GlIndexList struct {
-	Id            int                `orm:"column(ID)"`
-	IndexCode     string             `orm:"column(INDEX_CODE)"`
-	IndexName     string             `orm:"column(INDEX_NAME)"`
-	UnitName      string             `orm:"column(UNIT_NAME)"`
-	FrequencyName string             `orm:"column(FREQUENCY_NAME)"`
-	UpdateTime    string             `orm:"column(UPDATE_TIME)"`
-	Paging        *paging.PagingItem `description:"分页数据"`
-	DataList      []*GlIndexData
+	Id            int                `gorm:"column:ID;primaryKey"`
+	IndexCode     string             `description:"指标编码"`
+	IndexName     string             `description:"指标名称"`
+	UnitName      string             `description:"单位"`
+	FrequencyName string             `description:"频度名称"`
+	UpdateTime    string             `description:"更新时间"`
+	Paging        *paging.PagingItem `gorm:"-" description:"分页数据"`
+	DataList      []*GlIndexData     `gorm:"-"`
 }
 
 type GlIndexData struct {
-	InputValue string `orm:"column(DATA_VALUE)" description:"日期"`
-	DataTime   string `orm:"column(DATA_DATE)" description:"值"`
+	InputValue string `description:"日期"`
+	DataTime   string `description:"值"`
 }
 
 func GetGlIndexData(indexCode string, startSize, pageSize int) (items []*GlIndexData, err error) {
-	//sql := ` SELECT *  FROM mb_index_main_data WHERE INDEX_CODE=? ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC LIMIT ?,?`
-	sql := ` SELECT * FROM (
-	SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a WHERE INDEX_CODE=? AND IS_DELETE=0
-	ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC 
-	)AS t
+	sql := `SELECT * FROM (
+		SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a 
+		WHERE INDEX_CODE=? AND IS_DELETE=0
+		ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC 
+	) AS t
 	GROUP BY t.DATA_DATE
-	ORDER BY t.DATA_DATE DESC LIMIT ?,? `
-	o := orm.NewOrmUsingDB("gl")
-	_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
+	ORDER BY t.DATA_DATE DESC LIMIT ?,?`
+	o := global.DbMap[utils.DbNameGL]
+	err = o.Raw(sql, indexCode, startSize, pageSize).Find(&items).Error
 	return
 }
 
 func GetGlIndexByCode(indexCode string) (items *GlIndex, err error) {
-	sql := ` SELECT *  FROM mb_index_main_info WHERE INDEX_CODE=? `
-	o := orm.NewOrmUsingDB("gl")
-	err = o.Raw(sql, indexCode).QueryRow(&items)
+	sql := `SELECT * FROM mb_index_main_info WHERE INDEX_CODE=?`
+	o := global.DbMap[utils.DbNameGL]
+	err = o.Raw(sql, indexCode).First(&items).Error
 	return
 }
 
 func GetGlIndexDataCount(indexCode string) (count int, err error) {
-	o := orm.NewOrmUsingDB("gl")
 	sql := `SELECT COUNT(1) AS count FROM (
-			SELECT * FROM (
-				SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a WHERE INDEX_CODE=? AND IS_DELETE=0
-				ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC 
-				)AS t
-				GROUP BY t.DATA_DATE
-				ORDER BY t.DATA_DATE DESC
-			)AS n `
-	err = o.Raw(sql, indexCode).QueryRow(&count)
+		SELECT * FROM (
+			SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a 
+			WHERE INDEX_CODE=? AND IS_DELETE=0
+			ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC 
+		) AS t
+		GROUP BY t.DATA_DATE
+		ORDER BY t.DATA_DATE DESC
+	) AS n`
+	o := global.DbMap[utils.DbNameGL]
+	err = o.Raw(sql, indexCode).Scan(&count).Error
 	return
 }
 
@@ -132,52 +140,46 @@ type GlSearchIndex struct {
 	SearchText     string `description:"搜索结果(含高亮)"`
 }
 
-// GetGlItemList 模糊查询隆众数据库指标列表
 func GetGlItemList(keyword string) (items []*GlSearchIndex, err error) {
-	o := orm.NewOrmUsingDB("gl")
-	sql := "SELECT * FROM mb_index_main_info WHERE CONCAT(INDEX_NAME,INDEX_CODE) LIKE ? "
-	_, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
+	sql := "SELECT * FROM mb_index_main_info WHERE CONCAT(INDEX_NAME,INDEX_CODE) LIKE ?"
+	o := global.DbMap[utils.DbNameGL]
+	err = o.Raw(sql, utils.GetLikeKeyword(keyword)).Find(&items).Error
 	return
-
 }
 
 func GetGlDataMaxCount(classifyName string) (count int, err error) {
-	o := orm.NewOrmUsingDB("gl")
 	sql := `SELECT MAX(t.num) AS count FROM (
-				SELECT COUNT(1) AS num  FROM mb_index_main_info AS a
-				INNER JOIN mb_index_main_data AS b ON a.INDEX_CODE=b.INDEX_CODE
-				WHERE a.BREED_SHORT_NAME=?
-				GROUP BY a.INDEX_CODE
-			)AS t `
-	err = o.Raw(sql, classifyName).QueryRow(&count)
+		SELECT COUNT(1) AS num FROM mb_index_main_info AS a
+		INNER JOIN mb_index_main_data AS b ON a.INDEX_CODE=b.INDEX_CODE
+		WHERE a.BREED_SHORT_NAME=?
+		GROUP BY a.INDEX_CODE
+	) AS t`
+	o := global.DbMap[utils.DbNameGL]
+	err = o.Raw(sql, classifyName).Scan(&count).Error
 	return
 }
 
 func GetGlDataByCode(indexCode string) (items []*GlIndexData, err error) {
-	o := orm.NewOrmUsingDB("gl")
-	sql := `SELECT
-	* 
-FROM
-	( SELECT * FROM mb_index_main_data WHERE INDEX_CODE = ? GROUP BY UPDATE_TIME DESC, DATA_DATE DESC ) a 
-GROUP BY
-	a.DATA_DATE DESC `
-	_, err = o.Raw(sql, indexCode).QueryRows(&items)
+	sql := `SELECT * FROM (
+		SELECT * FROM mb_index_main_data WHERE INDEX_CODE=? 
+		GROUP BY UPDATE_TIME DESC, DATA_DATE DESC
+	) a GROUP BY a.DATA_DATE DESC`
+	o := global.DbMap[utils.DbNameGL]
+	err = o.Raw(sql, indexCode).Find(&items).Error
 	return
 }
 
-// GlDataPageListResp 钢联原始指标库-分页列表
 type GlDataPageListResp struct {
 	Paging *paging.PagingItem
 	List   []*GlSearchIndex
 }
 
-// GetGlItemListByIds IDs获取钢联原始指标库
 func GetGlItemListByIds(ids []int) (items []*GlSearchIndex, err error) {
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("gl")
 	sql := fmt.Sprintf(`SELECT * FROM mb_index_main_info WHERE ID IN (%s)`, utils.GetOrmInReplace(len(ids)))
-	_, err = o.Raw(sql, ids).QueryRows(&items)
+	o := global.DbMap[utils.DbNameGL]
+	err = o.Raw(sql, ids).Find(&items).Error
 	return
 }

+ 62 - 60
models/data_manage/lz_data.go

@@ -1,19 +1,21 @@
 package data_manage
 
 import (
-	"github.com/beego/beego/v2/client/orm"
 	"time"
+
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 )
 
 type LzClassify struct {
-	BreedId   int    `description:"分类id"`
-	BreedName string `description:"分类名称"`
+	BreedId   int    `gorm:"column:breed_id" description:"分类id"`
+	BreedName string `gorm:"column:breed_name" description:"分类名称"`
 }
 
 func GetLzSurveyClassify() (items []*LzClassify, err error) {
-	sql := ` SELECT breed_id,breed_name FROM longzhong_survey_product GROUP BY breed_name ORDER BY breed_name DESC `
-	o := orm.NewOrmUsingDB("edb")
-	o.Raw(sql).QueryRows(&items)
+	sql := `SELECT breed_id,breed_name FROM longzhong_survey_product GROUP BY breed_name ORDER BY breed_name DESC`
+	o := global.DbMap[utils.DbNameManualIndex]
+	err = o.Raw(sql).Find(&items).Error
 	return
 }
 
@@ -22,65 +24,65 @@ type LzFrequency struct {
 }
 
 func GetLzFrequencyByClassifyId(breedId int) (items []*LzFrequency, err error) {
-	sql := ` SELECT frequency  FROM longzhong_survey_product WHERE breed_id=? GROUP BY frequency ORDER BY frequency ASC `
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.Raw(sql, breedId).QueryRows(&items)
+	sql := `SELECT frequency FROM longzhong_survey_product WHERE breed_id=? GROUP BY frequency ORDER BY frequency ASC`
+	o := global.DbMap[utils.DbNameManualIndex]
+	err = o.Raw(sql, breedId).Find(&items).Error
 	return
 }
 
 type LongzhongSurveyProduct struct {
-	SurveyProductId      int `orm:"column(survey_product_id);pk"`
-	ProjectQuotaId       int64
-	BreedId              string
-	BreedName            string
-	QuotaId              string
-	QuotaName            string
-	UnitId               string
-	UnitName             string
-	SampleType           int64
-	SampleId             string
-	SampleName           string
-	DeviceId             string
-	Device               string
-	ProductCraftId       string
-	ProductCraft         string
-	ProductLine          string
-	InputMode            int64
-	Frequency            int64
-	InputValue           string
-	TaskShouldFinishTime int
-	CustomId             string
-	CustomType           int64
-	Custom               string
-	QuotaSampleId        int64
-	StartDate            string
-	EndDate              string
-	ModifyTime           time.Time
-	LzCode               string
+	SurveyProductId      int       `gorm:"column:survey_product_id;primaryKey"`
+	ProjectQuotaId       int64     `gorm:"column:project_quota_id"`
+	BreedId              string    `gorm:"column:breed_id"`
+	BreedName            string    `gorm:"column:breed_name"`
+	QuotaId              string    `gorm:"column:quota_id"`
+	QuotaName            string    `gorm:"column:quota_name"`
+	UnitId               string    `gorm:"column:unit_id"`
+	UnitName             string    `gorm:"column:unit_name"`
+	SampleType           int64     `gorm:"column:sample_type"`
+	SampleId             string    `gorm:"column:sample_id"`
+	SampleName           string    `gorm:"column:sample_name"`
+	DeviceId             string    `gorm:"column:device_id"`
+	Device               string    `gorm:"column:device"`
+	ProductCraftId       string    `gorm:"column:product_craft_id"`
+	ProductCraft         string    `gorm:"column:product_craft"`
+	ProductLine          string    `gorm:"column:product_line"`
+	InputMode            int64     `gorm:"column:input_mode"`
+	Frequency            int64     `gorm:"column:frequency"`
+	InputValue           string    `gorm:"column:input_value"`
+	TaskShouldFinishTime int       `gorm:"column:task_should_finish_time"`
+	CustomId             string    `gorm:"column:custom_id"`
+	CustomType           int64     `gorm:"column:custom_type"`
+	Custom               string    `gorm:"column:custom"`
+	QuotaSampleId        int64     `gorm:"column:quota_sample_id"`
+	StartDate            string    `gorm:"column:start_date"`
+	EndDate              string    `gorm:"column:end_date"`
+	ModifyTime           time.Time `gorm:"column:modify_time"`
+	LzCode               string    `gorm:"column:lz_code"`
 }
 
 func GetLongzhongSurveyProduct(breedId, frequency int) (items []*LongzhongSurveyProduct, err error) {
-	sql := ` SELECT *  FROM longzhong_survey_product WHERE breed_id=? AND frequency=? ORDER BY survey_product_id ASC `
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.Raw(sql, breedId, frequency).QueryRows(&items)
+	sql := `SELECT * FROM longzhong_survey_product WHERE breed_id=? AND frequency=? ORDER BY survey_product_id ASC`
+	o := global.DbMap[utils.DbNameManualIndex]
+	err = o.Raw(sql, breedId, frequency).Find(&items).Error
 	return
 }
 
 type LzProductList struct {
-	SurveyProductId int    `orm:"column(survey_product_id);pk"`
-	BreedName       string `description:"品种名称"`
-	QuotaName       string `description:"指标名称"`
-	UnitName        string `description:"单位"`
-	SampleType      int64  `description:"样本类型 0-空 1-企业 2-港口 3-运距 4-区域/国家 99-不确定"`
-	SampleName      string `description:"样本名称"`
-	Device          string `description:"设备"`
-	Frequency       int64  `description:"频度"`
-	Custom          string `description:"扩展字段"`
-	StartDate       string `description:"开始日期"`
-	EndDate         string `description:"结束日期"`
-	ModifyTime      string `description:"修改时间"`
-	LzCode          string `description:"指标编码"`
-	DataList        []*LzProductData
+	SurveyProductId int             `gorm:"column:survey_product_id;primaryKey"`
+	BreedName       string          `gorm:"column:breed_name" description:"品种名称"`
+	QuotaName       string          `gorm:"column:quota_name" description:"指标名称"`
+	UnitName        string          `gorm:"column:unit_name" description:"单位"`
+	SampleType      int64           `gorm:"column:sample_type" description:"样本类型 0-空 1-企业 2-港口 3-运距 4-区域/国家 99-不确定"`
+	SampleName      string          `gorm:"column:sample_name" description:"样本名称"`
+	Device          string          `gorm:"column:device" description:"设备"`
+	Frequency       int64           `gorm:"column:frequency" description:"频度"`
+	Custom          string          `gorm:"column:custom" description:"扩展字段"`
+	StartDate       string          `gorm:"column:start_date" description:"开始日期"`
+	EndDate         string          `gorm:"column:end_date" description:"结束日期"`
+	ModifyTime      string          `gorm:"column:modify_time" description:"修改时间"`
+	LzCode          string          `gorm:"column:lz_code" description:"指标编码"`
+	DataList        []*LzProductData `gorm:"-"`
 }
 
 type LzProductData struct {
@@ -89,15 +91,15 @@ type LzProductData struct {
 }
 
 func GetLongzhongSurveyProductData(surveyProductId int) (items []*LzProductData, err error) {
-	sql := ` SELECT *  FROM longzhong_survey_data WHERE survey_product_id=? ORDER BY data_time DESC `
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.Raw(sql, surveyProductId).QueryRows(&items)
+	sql := `SELECT * FROM longzhong_survey_data WHERE survey_product_id=? ORDER BY data_time DESC`
+	o := global.DbMap[utils.DbNameManualIndex]
+	err = o.Raw(sql, surveyProductId).Find(&items).Error
 	return
 }
 
 func GetLongzhongSurveyProductByCode(lzCode string) (items *LongzhongSurveyProduct, err error) {
-	sql := ` SELECT *  FROM longzhong_survey_product WHERE lz_code=? `
-	o := orm.NewOrmUsingDB("edb")
-	err = o.Raw(sql, lzCode).QueryRow(&items)
+	sql := `SELECT * FROM longzhong_survey_product WHERE lz_code=?`
+	o := global.DbMap[utils.DbNameManualIndex]
+	err = o.Raw(sql, lzCode).First(&items).Error
 	return
 }