Эх сурвалжийг харах

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

# Conflicts:
#	controllers/chart.go
#	controllers/chart_common.go
#	controllers/excel_info.go
#	utils/constants.go
Roc 2 сар өмнө
parent
commit
954045de6f
64 өөрчлөгдсөн 2093 нэмэгдсэн , 931 устгасан
  1. 4 4
      controllers/chart.go
  2. 1 1
      controllers/chart_auth.go
  3. 2 2
      controllers/chart_common.go
  4. 2 2
      controllers/excel_info.go
  5. 1 1
      controllers/table.go
  6. 16 0
      global/global.go
  7. 167 0
      global/initDb.go
  8. 4 0
      go.mod
  9. 9 0
      go.sum
  10. 4 0
      main.go
  11. 6 9
      models/business_conf.go
  12. 95 42
      models/chart.go
  13. 40 14
      models/chart_edb_mapping.go
  14. 44 24
      models/chart_series.go
  15. 7 4
      models/chart_series_edb_mapping.go
  16. 5 3
      models/data_manage/chart_info.go
  17. 25 17
      models/data_manage/chart_info_correlation.go
  18. 36 32
      models/data_manage/chart_theme/chart_theme.go
  19. 19 16
      models/data_manage/chart_theme/chart_theme_type.go
  20. 14 10
      models/data_manage/cross_variety/chart_tag.go
  21. 8 6
      models/data_manage/cross_variety/chart_tag_variety.go
  22. 27 23
      models/data_manage/cross_variety/chart_variety.go
  23. 12 8
      models/data_manage/edb_info.go
  24. 18 9
      models/data_manage/edb_info_calculate.go
  25. 5 6
      models/data_manage/edb_source.go
  26. 27 16
      models/data_manage/excel/excel_chart_data.go
  27. 86 47
      models/data_manage/excel/excel_chart_edb.go
  28. 65 47
      models/data_manage/excel/excel_classify.go
  29. 14 10
      models/data_manage/excel/excel_draft.go
  30. 30 22
      models/data_manage/excel/excel_edb_mapping.go
  31. 153 95
      models/data_manage/excel/excel_info.go
  32. 24 16
      models/data_manage/excel/excel_sheet.go
  33. 19 15
      models/data_manage/excel/excel_sheet_data.go
  34. 66 46
      models/data_manage/factor_edb_series.go
  35. 46 31
      models/data_manage/factor_edb_series_chart_mapping.go
  36. 46 31
      models/data_manage/factor_edb_series_mapping.go
  37. 25 17
      models/data_manage/future_good/chart_info_future_good_profit.go
  38. 54 33
      models/data_manage/future_good/future_good_chart_classify.go
  39. 32 22
      models/data_manage/future_good/future_good_edb_info.go
  40. 22 12
      models/data_manage/future_good/future_good_edb_info_data.go
  41. 18 13
      models/data_manage/multiple_graph_config.go
  42. 24 20
      models/data_manage/multiple_graph_config_chart_mapping.go
  43. 23 18
      models/data_manage/multiple_graph_config_edb_mapping.go
  44. 46 28
      models/data_manage/predict_edb_conf.go
  45. 20 13
      models/data_manage/predict_edb_conf_calculate_mapping.go
  46. 8 4
      models/data_manage/predict_edb_rule_data.go
  47. 4 4
      models/db.go
  48. 79 49
      models/excel_info.go
  49. 25 14
      models/excel_info_rule_mapping.go
  50. 43 28
      models/factor_edb_series_calculate_data_qjjs.go
  51. 6 4
      models/referenced_excel_config.go
  52. 11 4
      models/share_chart_refresh_log.go
  53. 7 4
      models/table.go
  54. 7 5
      models/table_data.go
  55. 5 6
      services/data/chart_theme.go
  56. 3 5
      services/data/edb_info.go
  57. 1 1
      services/data/excel/balance_table.go
  58. 1 1
      services/data/excel/excel_info.go
  59. 6 6
      services/data/range_analysis/chart_info.go
  60. 2 2
      services/excel/lucky_sheet.go
  61. 85 1
      utils/common.go
  62. 7 0
      utils/config.go
  63. 24 8
      utils/constants.go
  64. 358 0
      utils/sql.go

+ 4 - 4
controllers/chart.go

@@ -2,8 +2,8 @@ package controllers
 
 import (
 	"encoding/json"
-	"eta/eta_chart_lib/facade"
 	"errors"
+	"eta/eta_chart_lib/facade"
 	"eta/eta_chart_lib/models"
 	"eta/eta_chart_lib/models/data_manage"
 	"eta/eta_chart_lib/models/data_manage/cross_variety/request"
@@ -100,7 +100,7 @@ func (this *ChartController) ChartInfoDetail() {
 
 	chartInfo, err := models.GetChartInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return
@@ -196,7 +196,7 @@ func (this *ChartController) ChartInfoRefresh() {
 	}
 	chartInfo, err := models.GetChartInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return
@@ -389,7 +389,7 @@ func (this *ChartController) Collect() {
 
 	chartInfo, err := models.GetChartInfoByUniqueCode(req.UniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return

+ 1 - 1
controllers/chart_auth.go

@@ -64,7 +64,7 @@ func (this *ChartAuthController) ChartInfoDetail() {
 
 	chartInfo, err := models.GetChartInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return

+ 2 - 2
controllers/chart_common.go

@@ -767,7 +767,7 @@ func (this *ChartController) FutureGoodChartInfoRefresh() {
 	}
 	chartInfo, err := models.GetChartInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return
@@ -965,7 +965,7 @@ func (this *ChartController) CorrelationChartInfoRefresh() {
 	}
 	chartInfo, err := models.GetChartInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return

+ 2 - 2
controllers/excel_info.go

@@ -305,7 +305,7 @@ func (this *ExcelInfoController) GetTableDetail() {
 
 	// 获取表格引用
 	reference, err := models.GetReferencedExcelConfig(referencedId, fromScene, uniqueCode, uuid)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+	if err != nil && !utils.IsErrNoRow(err) {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取表格引用失败,Err:" + err.Error()
 		return
@@ -369,7 +369,7 @@ func (this *ExcelInfoController) Refresh() {
 	// 获取数据详情
 	excelDetail, errMsg, err := excel2.GetExcelDetailInfoByExcelInfoId(uniqueCode, this.Lang)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该表格已被删除,请刷新页面"
 			br.ErrMsg = "该表格已被删除,请刷新页面,Err:" + err.Error()
 			return

+ 1 - 1
controllers/table.go

@@ -53,7 +53,7 @@ func (this *TableController) TableInfoDetail() {
 
 	tableInfo, err := models.GetTableInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该表格已被删除,请刷新页面"
 			br.ErrMsg = "该表格已被删除,请刷新页面,Err:" + err.Error()
 			return

+ 16 - 0
global/global.go

@@ -0,0 +1,16 @@
+package global
+
+import (
+	_ "github.com/go-sql-driver/mysql"
+	"gorm.io/gorm"
+)
+
+var (
+	DbMap      map[string]*gorm.DB //数据库连接配置
+	DEFAULT_DB *gorm.DB            //默认数据库连接配置
+)
+
+func init() {
+	// 初始化数据库连接
+	InitDb()
+}

+ 167 - 0
global/initDb.go

@@ -0,0 +1,167 @@
+package global
+
+import (
+	"database/sql/driver"
+	_ "dm"
+	dm "dmgorm2"
+	"eta/eta_chart_lib/utils"
+	"fmt"
+	"gorm.io/driver/mysql"
+	"gorm.io/gorm"
+	"gorm.io/gorm/logger"
+	"gorm.io/gorm/schema"
+	"io"
+	"log"
+	"os"
+	"strings"
+	"time"
+)
+
+var (
+	//需要钩子函数执行的数据库表
+	tableMap = map[string]int{
+		"base_from_mysteel_chemical_data": 1,
+		"future_good_edb_info":            1,
+	}
+)
+
+type LocalTime time.Time
+
+// InitDb
+// @Description: 数据库初始化
+func InitDb() {
+	dbMap := make(map[string]*gorm.DB)
+
+	//开启日志
+	logWriter := io.MultiWriter(utils.Binlog) //binlog日志,记录到文件中去
+	if utils.RunMode == `dev` {               // 测试环境,默认输出在控制台,不需要的话,可以注释if里面下面的这行
+		logWriter = io.MultiWriter(utils.Binlog, os.Stdout)
+	}
+	newLogger := logger.New(log.New(logWriter, "\r\n", log.LstdFlags), logger.Config{
+		SlowThreshold:             200 * time.Millisecond, //慢sql :200ms
+		LogLevel:                  logger.Info,            //记录的日志类型,info代表所有信息都记录
+		IgnoreRecordNotFoundError: true,                   //是否忽略找不到数据错误信息(只是日志记录记录成err还是普通的输出的区别,并不影响业务代码中的:找不到数据行error)
+		Colorful:                  false,                  //是否颜色输出
+	})
+
+	// 默认库
+	connectDb(utils.MYSQL_URL, utils.DbNameMaster, newLogger, dbMap, true)
+
+	// 手工数据库
+	connectDb(utils.MYSQL_URL_EDB, utils.DbNameManualIndex, newLogger, dbMap, false)
+	// 指标库
+	connectDb(utils.MYSQL_URL_DATA, utils.DbNameIndex, newLogger, dbMap, false)
+
+	// gorm前置处理
+	for _, db := range dbMap {
+		_ = db.Callback().Query().Before("gorm:query").Register("before_query", func(tx *gorm.DB) {
+			orgSql := tx.Statement.SQL.String()
+			if _, ok := tableMap[tx.Statement.Table]; ok && strings.Contains(strings.ToLower(orgSql), "select") {
+				newSql := utils.ReplaceDriverKeywords(utils.DbDriverName, orgSql)
+				tx.Statement.SQL.Reset()
+				tx.Statement.SQL.WriteString(newSql)
+			}
+		})
+		_ = db.Callback().Raw().Before("gorm:raw").Register("before_raw", func(tx *gorm.DB) {
+			orgSql := tx.Statement.SQL.String()
+			if _, ok := tableMap[tx.Statement.Table]; ok &&
+				(strings.Contains(strings.ToLower(orgSql), "delete") ||
+					strings.Contains(strings.ToLower(orgSql), "update") ||
+					strings.Contains(strings.ToLower(orgSql), "insert")) {
+				newSql := utils.ReplaceDriverKeywords(utils.DbDriverName, orgSql)
+				tx.Statement.SQL.Reset()
+				tx.Statement.SQL.WriteString(newSql)
+			}
+		})
+	}
+
+	//全局赋值数据库链接
+	DbMap = dbMap
+
+}
+
+// connectDb
+// @Description: 达梦数据库连接
+// @param dsn
+// @param aliasName
+// @param newLogger
+// @param dbMap
+// @param isDefault
+func connectDb(dsn, aliasName string, newLogger logger.Interface, dbMap map[string]*gorm.DB, isDefault bool) {
+	//fmt.Println("dsn:", dsn, "  ==  ;aliasName:", aliasName)
+	if dsn == `` {
+		return
+	}
+
+	var dialector gorm.Dialector
+	switch utils.DbDriverName {
+	case utils.DbDriverByMysql:
+		if !strings.Contains(dsn, `parseTime`) {
+			dsn += `&parseTime=true`
+		}
+		dialector = mysql.Open(dsn)
+	case utils.DbDriverByDm:
+		dialector = dm.Open(dsn)
+	default:
+		panic(fmt.Errorf("数据库 链接异常,错误的数据库类型,数据库:%s", utils.DbDriverName))
+	}
+	db, err := gorm.Open(dialector, &gorm.Config{
+		Logger: newLogger,
+		NamingStrategy: schema.NamingStrategy{
+			SingularTable: true, // 表示使用单数表名,启用该选项后,GORM 将不会对表名进行复数化处理
+		},
+	})
+	if err != nil {
+		//global.LOG.Errorf("mysql 启动异常,数据库:default;Err:", err)
+		panic(fmt.Errorf("数据库 链接异常,数据库:%s;Err:%s", aliasName, err))
+	}
+	//创建连接池
+	sqlDB, err := db.DB()
+	if err != nil {
+		//global.LOG.Errorf("达梦 创建连接池失败,数据库:default;Err:", err)
+		panic(fmt.Errorf("数据库 创建连接池失败,数据库:%s;Err:%s", aliasName, err))
+	}
+
+	dbMap[aliasName] = db
+
+	//默认数据库连接
+	if isDefault {
+		DEFAULT_DB = db
+	}
+
+	// SetMaxIdleConns 设置空闲连接池中连接的最大数量
+	sqlDB.SetMaxIdleConns(50)
+
+	// SetMaxOpenConns 设置打开数据库连接的最大数量。
+	sqlDB.SetMaxOpenConns(100)
+
+	// SetConnMaxLifetime 设置了连接可复用的最大时间。
+	sqlDB.SetConnMaxLifetime(10 * time.Minute)
+
+}
+
+func (t *LocalTime) MarshalJSON() ([]byte, error) {
+	tTime := time.Time(*t)
+	if tTime.IsZero() {
+		return []byte("\"\""), nil
+	}
+	return []byte(fmt.Sprintf("\"%v\"", tTime.Format("2006-01-02 15:04:05"))), nil
+}
+
+func (t LocalTime) Value() (driver.Value, error) {
+	var zeroTime time.Time
+	tlt := time.Time(t)
+	//判断给定时间是否和默认零时间的时间戳相同
+	if tlt.UnixNano() == zeroTime.UnixNano() {
+		return nil, nil
+	}
+	return tlt, nil
+}
+
+func (t *LocalTime) Scan(v interface{}) error {
+	if value, ok := v.(time.Time); ok {
+		*t = LocalTime(value)
+		return nil
+	}
+	return fmt.Errorf("can not convert %v to timestamp", v)
+}

+ 4 - 0
go.mod

@@ -16,6 +16,8 @@ require (
 	github.com/yidane/formula v0.0.0-20220322063702-c9da84ba3476
 	go.mongodb.org/mongo-driver v1.15.0
 	gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
+	gorm.io/driver/mysql v1.5.7
+	gorm.io/gorm v1.25.12
 )
 
 require (
@@ -35,6 +37,8 @@ require (
 	github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9 // indirect
 	github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9 // indirect
 	github.com/hashicorp/golang-lru v0.5.4 // indirect
+	github.com/jinzhu/inflection v1.0.0 // indirect
+	github.com/jinzhu/now v1.1.5 // indirect
 	github.com/klauspost/compress v1.13.6 // indirect
 	github.com/kr/text v0.2.0 // indirect
 	github.com/leodido/go-urn v1.2.0 // indirect

+ 9 - 0
go.sum

@@ -109,6 +109,10 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/
 github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
 github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
+github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
+github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
+github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
@@ -342,3 +346,8 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo=
+gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM=
+gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
+gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8=
+gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=

+ 4 - 0
main.go

@@ -3,6 +3,7 @@ package main
 import (
 	"eta/eta_chart_lib/controllers"
 	_ "eta/eta_chart_lib/facade/instance"
+	"eta/eta_chart_lib/models"
 	_ "eta/eta_chart_lib/routers"
 	"eta/eta_chart_lib/services/alarm_msg"
 	"eta/eta_chart_lib/utils"
@@ -20,6 +21,9 @@ func main() {
 		beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
 	}
 
+	// 初始化表数据入库
+	models.AfterInitTable()
+
 	// 异常处理
 	beego.ErrorController(&controllers.ErrorController{})
 

+ 6 - 9
models/business_conf.go

@@ -1,12 +1,11 @@
 package models
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
 	"fmt"
 	"html"
 	"time"
-
-	"github.com/beego/beego/v2/client/orm"
 )
 
 const (
@@ -27,7 +26,8 @@ var FromSceneMap = map[int]string{
 
 // BusinessConf 商户配置表
 type BusinessConf struct {
-	Id         int    `orm:"column(id);pk"`
+	//Id         int    `orm:"column(id);pk"`
+	Id         int    `gorm:"column:id;primaryKey"`
 	ConfKey    string `description:"配置Key"`
 	ConfVal    string `description:"配置值"`
 	ValType    int    `description:"1-字符串;2-数值;3-字符串数组;4-富文本;"`
@@ -41,9 +41,8 @@ func GetBusinessConf() (list map[string]string, err error) {
 	list = make(map[string]string)
 
 	var items []*BusinessConf
-	o := orm.NewOrm()
 	sql := `SELECT * FROM business_conf`
-	_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DB.Raw(sql).Find(&items).Error
 	if err != nil {
 		return
 	}
@@ -59,9 +58,8 @@ func GetBusinessConf() (list map[string]string, err error) {
 }
 
 func GetBusinessConfByKey(key string) (item *BusinessConf, err error) {
-	o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM business_conf WHERE conf_key = ? LIMIT 1`)
-	err = o.Raw(sql, key).QueryRow(&item)
+	err = global.DEFAULT_DB.Raw(sql, key).First(&item).Error
 	return
 }
 
@@ -71,9 +69,8 @@ func GetBusinessConfByKeys(key []string) (list map[string]string, err error) {
 		return
 	}
 	var items []*BusinessConf
-	o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM business_conf WHERE conf_key IN (%s) `, utils.GetOrmInReplace(len(key)))
-	_, err = o.Raw(sql, key).QueryRows(&items)
+	err = global.DEFAULT_DB.Raw(sql, key).Find(&items).Error
 
 	for _, v := range items {
 		if v.ValType == 4 {

+ 95 - 42
models/chart.go

@@ -2,20 +2,22 @@ package models
 
 import (
 	"errors"
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/models/mgo"
 	"eta/eta_chart_lib/utils"
 	"fmt"
+	"gorm.io/gorm"
 	"strconv"
 	"time"
 
-	"github.com/beego/beego/v2/client/orm"
 	"go.mongodb.org/mongo-driver/bson"
 
 	"github.com/nosixtools/solarlunar"
 )
 
 type ChartInfo struct {
-	ChartInfoId       int       `json:"-" orm:"column(chart_info_id);pk"`
+	//ChartInfoId       int       `json:"-" orm:"column(chart_info_id);pk"`
+	ChartInfoId       int       `json:"-" gorm:"column:chart_info_id;primaryKey"`
 	ChartName         string    `description:"来源名称"`
 	ChartNameEn       string    `description:"英文图表名称"`
 	ChartClassifyId   int       `json:"-" description:"图表分类id"`
@@ -60,45 +62,59 @@ type ChartInfo struct {
 	MarkersAreas      string    `description:"标识区"`
 }
 
+func (m *ChartInfo) ConvertDate() {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	m.SeasonStartDate = utils.GormDateStrToDateStr(m.SeasonStartDate)
+	m.SeasonEndDate = utils.GormDateStrToDateStr(m.SeasonEndDate)
+
+	return
+}
+
 func GetChartInfoByUniqueCode(uniqueCode string) (item *ChartInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM chart_info WHERE unique_code=? `
-	err = o.Raw(sql, uniqueCode).QueryRow(&item)
+	//err = o.Raw(sql, uniqueCode).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, uniqueCode).First(&item).Error
+	if err != nil {
+		item.ConvertDate()
+	}
+
 	return
 }
 
 type ChartEdbInfoMapping struct {
-	EdbInfoId         int     `description:"指标id"`
-	SourceName        string  `description:"来源名称"`
-	Source            int     `description:"来源id"`
-	EdbCode           string  `description:"指标编码"`
-	EdbName           string  `description:"指标名称"`
-	EdbAliasName      string  `description:"指标名称(别名)"`
-	EdbAliasNameEn    string  `description:"英文指标名称(别名)"`
-	EdbNameEn         string  `description:"英文指标名称"`
-	Frequency         string  `description:"频率"`
-	FrequencyEn       string  `description:"英文频率"`
-	Unit              string  `description:"单位"`
-	UnitEn            string  `description:"英文单位"`
-	StartDate         string  `description:"起始日期"`
-	EndDate           string  `description:"终止日期"`
-	ModifyTime        string  `description:"指标最后更新时间"`
-	ChartEdbMappingId int     `description:"图表指标id" json:"-"`
-	ChartInfoId       int     `description:"图表id"`
-	MaxData           float64 `description:"上限"`
-	MinData           float64 `description:"下限"`
-	IsOrder           bool    `description:"true:正序,false:逆序"`
-	IsAxis            int     `description:"1:左轴,0:右轴"`
-	EdbInfoType       int     `description:"1:标准指标,0:领先指标"`
-	EdbType           int     `description:"指标类型:1:基础指标,2:计算指标"`
-	LeadValue         int     `description:"领先值"`
-	LeadUnit          string  `description:"领先单位"`
-	LeadUnitEn        string  `description:"领先英文单位"`
-	ChartStyle        string  `description:"图表类型"`
-	ChartColor        string  `description:"颜色"`
-	ChartWidth        float64 `description:"线条大小"`
-	ChartScale        float64 `description:"参考刻度线"`
-	DataList          interface{}
+	EdbInfoId         int         `description:"指标id"`
+	SourceName        string      `description:"来源名称"`
+	Source            int         `description:"来源id"`
+	EdbCode           string      `description:"指标编码"`
+	EdbName           string      `description:"指标名称"`
+	EdbAliasName      string      `description:"指标名称(别名)"`
+	EdbAliasNameEn    string      `description:"英文指标名称(别名)"`
+	EdbNameEn         string      `description:"英文指标名称"`
+	Frequency         string      `description:"频率"`
+	FrequencyEn       string      `description:"英文频率"`
+	Unit              string      `description:"单位"`
+	UnitEn            string      `description:"英文单位"`
+	StartDate         string      `description:"起始日期"`
+	EndDate           string      `description:"终止日期"`
+	ModifyTime        string      `description:"指标最后更新时间"`
+	ChartEdbMappingId int         `description:"图表指标id" json:"-"`
+	ChartInfoId       int         `description:"图表id"`
+	MaxData           float64     `description:"上限"`
+	MinData           float64     `description:"下限"`
+	IsOrder           bool        `description:"true:正序,false:逆序"`
+	IsAxis            int         `description:"1:左轴,0:右轴"`
+	EdbInfoType       int         `description:"1:标准指标,0:领先指标"`
+	EdbType           int         `description:"指标类型:1:基础指标,2:计算指标"`
+	LeadValue         int         `description:"领先值"`
+	LeadUnit          string      `description:"领先单位"`
+	LeadUnitEn        string      `description:"领先英文单位"`
+	ChartStyle        string      `description:"图表类型"`
+	ChartColor        string      `description:"颜色"`
+	ChartWidth        float64     `description:"线条大小"`
+	ChartScale        float64     `description:"参考刻度线"`
+	DataList          interface{} `gorm:"-"`
 
 	EdbInfoCategoryType int     `description:"0:普通指标,1:预测指标"`
 	PredictChartColor   string  `description:"预测数据的颜色"`
@@ -124,8 +140,27 @@ type ChartEdbInfoMapping struct {
 	IsJoinPermission    int     `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
 }
 
+func (m *ChartEdbInfoMapping) AfterFind(db *gorm.DB) (err error) {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	m.LatestDate = utils.GormDateStrToDateStr(m.LatestDate)
+	m.MoveLatestDate = utils.GormDateStrToDateStr(m.MoveLatestDate)
+	m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
+
+	return
+}
+
+func (m *ChartEdbInfoMapping) ConvertDate() {
+	m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
+	m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
+	m.LatestDate = utils.GormDateStrToDateStr(m.LatestDate)
+	m.MoveLatestDate = utils.GormDateStrToDateStr(m.MoveLatestDate)
+	m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
+
+	return
+}
+
 func GetChartEdbMappingList(chartInfoId int) (list []*ChartEdbInfoMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
 	aField := `a.chart_edb_mapping_id,a.chart_info_id,a.edb_info_id,a.create_time,a.modify_time,a.unique_code,a.max_data,a.min_data,a.is_order,a.is_axis,a.edb_info_type,a.lead_value,a.lead_unit,a.chart_style,a.chart_color,a.predict_chart_color,a.chart_width,a.source as mapping_source,a.edb_alias_name,a.chart_scale`
 	sql := ` SELECT ` + aField + `,b.source_name,b.source,b.edb_code,b.edb_name,b.edb_name_en,b.frequency,b.unit,b.unit_en,b.start_date,b.end_date,b.modify_time,b.edb_type,b.latest_date,b.latest_value,b.unique_code,b.edb_info_type AS edb_info_category_type,b.sub_source,
 a.is_convert, a.convert_type, a.convert_value, a.convert_unit, a.convert_en_unit 
@@ -133,7 +168,8 @@ a.is_convert, a.convert_type, a.convert_value, a.convert_unit, a.convert_en_unit
 			 INNER JOIN edb_info AS b ON a.edb_info_id=b.edb_info_id
 			 WHERE chart_info_id=? 
              ORDER BY chart_edb_mapping_id ASC `
-	_, err = o.Raw(sql, chartInfoId).QueryRows(&list)
+	//_, err = o.Raw(sql, chartInfoId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId).Find(&list).Error
 	return
 }
 
@@ -142,7 +178,13 @@ type EdbDataList struct {
 	EdbInfoId     int     `json:"-" description:"指标ID"`
 	DataTime      string  `description:"数据日期"`
 	DataTimestamp int64   `description:"数据日期"`
-	Value         float64 `description:"数据值"`
+	Value         float64 `description:"数据值" gorm:"column:value"`
+}
+
+func (m *EdbDataList) AfterFind(db *gorm.DB) (err error) {
+	m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
+
+	return
 }
 
 // GetEdbDataList 获取指标的数据(日期正序返回)
@@ -192,8 +234,14 @@ func getEdbDataListByMysql(source, subSource, edbInfoId int, startDate, endDate
 	}
 	sql += ` ORDER BY data_time ASC  `
 	sql = fmt.Sprintf(sql, tableName)
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, edbInfoId, pars).QueryRows(&list)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Raw(sql, edbInfoId, pars).QueryRows(&list)
+	newPars := utils.ForwardPars(pars, edbInfoId)
+	pars = append(pars, edbInfoId)
+	sql = utils.ReplaceDriverKeywords("", sql)
+
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, newPars...).Find(&list).Error
+
 	return
 }
 
@@ -950,9 +998,14 @@ type ChartTimeCombineDataResp struct {
 }
 
 func GetChartInfoById(chartInfoId int) (item *ChartInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM chart_info WHERE chart_info_id=? `
-	err = o.Raw(sql, chartInfoId).QueryRow(&item)
+	//err = o.Raw(sql, chartInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId).First(&item).Error
+	if err != nil {
+		item.ConvertDate()
+	}
+
 	return
 }
 

+ 40 - 14
models/chart_edb_mapping.go

@@ -1,13 +1,13 @@
 package models
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
-	"github.com/beego/beego/v2/client/orm"
 )
 
 // GetEtaEdbChartEdbMapping       商品曲线图查询对应的普通指标
 func GetEtaEdbChartEdbMapping(chartInfoId int) (item *ChartEdbInfoMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 
 	aField := `a.chart_edb_mapping_id,a.chart_info_id,a.edb_info_id,a.create_time,a.modify_time,a.unique_code,a.max_data,a.min_data,a.is_order,a.is_axis,a.edb_info_type,a.lead_value,a.lead_unit,a.chart_style,a.chart_color,a.predict_chart_color,a.chart_width,a.source as mapping_source`
 	sql := ` SELECT ` + aField + `,b.source_name,b.source,b.sub_source,b.edb_code,b.edb_name,b.edb_name_en,b.frequency,b.unit,b.unit_en,b.start_date,b.end_date,b.modify_time,b.latest_date,b.latest_value,b.unique_code,b.edb_info_type AS edb_info_category_type
@@ -15,13 +15,19 @@ func GetEtaEdbChartEdbMapping(chartInfoId int) (item *ChartEdbInfoMapping, err e
 			 INNER JOIN edb_info AS b ON a.edb_info_id=b.edb_info_id
 			 WHERE a.chart_info_id=? AND a.source = ?
              ORDER BY chart_edb_mapping_id ASC `
-	err = o.Raw(sql, chartInfoId, utils.CHART_SOURCE_DEFAULT).QueryRow(&item)
+	//err = o.Raw(sql, chartInfoId, utils.CHART_SOURCE_DEFAULT).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId, utils.CHART_SOURCE_DEFAULT).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertDate()
+
 	return
 }
 
 // GetEtaEdbChartEdbMappingList       商品曲线图查询对应的普通指标
 func GetEtaEdbChartEdbMappingList(chartInfoId int) (items []*ChartEdbInfoMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	aField := `a.chart_edb_mapping_id,a.chart_info_id,a.edb_info_id,a.create_time,a.modify_time,a.unique_code,a.max_data,a.min_data,a.is_order,a.is_axis,a.edb_info_type,a.lead_value,a.lead_unit,a.chart_style,a.chart_color,a.predict_chart_color,a.chart_width,a.source as mapping_source`
 
 	sql := ` SELECT ` + aField + `,b.source_name,b.source,b.sub_source,b.edb_code,b.edb_name,b.edb_name_en,b.frequency,b.unit,b.unit_en,b.start_date,b.end_date,b.modify_time,b.latest_date,b.latest_value,b.unique_code,b.edb_info_type AS edb_info_category_type,b.classify_id,b.is_join_permission
@@ -29,43 +35,57 @@ func GetEtaEdbChartEdbMappingList(chartInfoId int) (items []*ChartEdbInfoMapping
 			 INNER JOIN edb_info AS b ON a.edb_info_id=b.edb_info_id
 			 WHERE a.chart_info_id=? AND a.source = ?
              ORDER BY chart_edb_mapping_id ASC `
-	_, err = o.Raw(sql, chartInfoId, utils.CHART_SOURCE_DEFAULT).QueryRows(&items)
+	//_, err = o.Raw(sql, chartInfoId, utils.CHART_SOURCE_DEFAULT).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId, utils.CHART_SOURCE_DEFAULT).Find(&items).Error
 	return
 }
 
 // GetFutureGoodEdbChartEdbMapping       商品曲线图查询对应的商品指标
 func GetFutureGoodEdbChartEdbMapping(chartInfoId int) (item *ChartEdbInfoMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	aField := `a.chart_edb_mapping_id,a.chart_info_id,a.edb_info_id,a.create_time,a.modify_time,a.unique_code,a.max_data,a.min_data,a.is_order,a.is_axis,a.edb_info_type,a.lead_value,a.lead_unit,a.chart_style,a.chart_color,a.predict_chart_color,a.chart_width,a.source as mapping_source`
 	sql := ` SELECT ` + aField + `,b.future_good_edb_info_id,b.future_good_edb_code as edb_code,b.future_good_edb_name as edb_name,b.start_date,b.end_date,b.modify_time,b.latest_date,b.latest_value
              FROM chart_edb_mapping AS a
 			 INNER JOIN future_good_edb_info AS b ON a.edb_info_id=b.future_good_edb_info_id
 			 WHERE a.chart_info_id=? AND a.source = ?
              ORDER BY chart_edb_mapping_id ASC `
-	err = o.Raw(sql, chartInfoId, utils.CHART_SOURCE_FUTURE_GOOD).QueryRow(&item)
+	//err = o.Raw(sql, chartInfoId, utils.CHART_SOURCE_FUTURE_GOOD).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId, utils.CHART_SOURCE_FUTURE_GOOD).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertDate()
+
 	return
 }
 
 // GetFutureGoodEdbChartEdbMappingList       商品曲线图查询对应的商品指标
 func GetFutureGoodEdbChartEdbMappingList(chartInfoId int) (items []*ChartEdbInfoMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	aField := `a.chart_edb_mapping_id,a.chart_info_id,a.edb_info_id,a.create_time,a.modify_time,a.unique_code,a.max_data,a.min_data,a.is_order,a.is_axis,a.edb_info_type,a.lead_value,a.lead_unit,a.chart_style,a.chart_color,a.predict_chart_color,a.chart_width,a.source as mapping_source`
 	sql := ` SELECT ` + aField + `,b.future_good_edb_info_id,b.future_good_edb_code as edb_code,b.future_good_edb_name as edb_name,b.start_date,b.end_date,b.modify_time,b.latest_date,b.latest_value
              FROM chart_edb_mapping AS a
 			 INNER JOIN future_good_edb_info AS b ON a.edb_info_id=b.future_good_edb_info_id
 			 WHERE a.chart_info_id=? AND a.source = ?
              ORDER BY chart_edb_mapping_id ASC `
-	_, err = o.Raw(sql, chartInfoId, utils.CHART_SOURCE_FUTURE_GOOD).QueryRows(&items)
+	//_, err = o.Raw(sql, chartInfoId, utils.CHART_SOURCE_FUTURE_GOOD).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId, utils.CHART_SOURCE_FUTURE_GOOD).Find(&items).Error
 	return
 }
 
 // GetChartEdbMappingByEdbInfoId 根据指标id获取edb_mapping
 func GetChartEdbMappingByEdbInfoId(edbInfoId int) (item *ChartEdbInfoMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT edb_info_id,source_name,source,sub_source,edb_code,edb_name,edb_name_en,frequency,unit,unit_en,start_date,end_date,modify_time,latest_date,latest_value,unique_code,edb_info_type AS edb_info_category_type,max_value,min_value
              FROM edb_info
 			 WHERE edb_info_id = ? limit 1`
-	err = o.Raw(sql, edbInfoId).QueryRow(&item)
+	//err = o.Raw(sql, edbInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.ConvertDate()
+
 	return
 }
 
@@ -75,12 +95,18 @@ func GetChartEdbMappingListByEdbInfoIdList(edbIdList []int) (list []*ChartEdbInf
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT edb_info_id,source_name,source,sub_source,edb_code,edb_name,edb_name_en,frequency,unit,unit_en,start_date,end_date,modify_time,latest_date,latest_value,unique_code,edb_info_type AS edb_info_category_type,max_value,min_value,edb_type
              FROM edb_info
-			 WHERE edb_info_id IN(` + utils.GetOrmInReplace(num) + `)
+			 WHERE edb_info_id IN ?
 			ORDER BY FIELD(edb_info_id,` + utils.GetOrmInReplace(num) + `)
               `
-	_, err = o.Raw(sql, edbIdList, edbIdList).QueryRows(&list)
+	//_, err = o.Raw(sql, edbIdList, edbIdList).QueryRows(&list)
+	var pars []interface{}
+	pars = append(pars, edbIdList)
+	for i := 0; i < num; i++ {
+		pars = append(pars, edbIdList[i])
+	}
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&list).Error
 	return
 }

+ 44 - 24
models/chart_series.go

@@ -2,14 +2,15 @@ package models
 
 import (
 	"encoding/json"
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 type ChartSeries struct {
-	ChartSeriesId int       `orm:"column(chart_series_id);pk"`
+	//ChartSeriesId int       `orm:"column(chart_series_id);pk"`
+	ChartSeriesId int       `gorm:"column:chart_series_id;primaryKey"`
 	SeriesName    string    `description:"系列名称"`
 	SeriesNameEn  string    `description:"系列英文名称"`
 	ChartInfoId   int       `description:"图表ID"`
@@ -31,16 +32,18 @@ func (c *ChartSeries) TableName() string {
 }
 
 func GetChartSeriesByChartInfoId(chartInfoId int) (items []*ChartSeries, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := "SELECT * FROM chart_series WHERE chart_info_id = ?"
-	_, err = o.Raw(sql, chartInfoId).QueryRows(&items)
+	//_, err = o.Raw(sql, chartInfoId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId).Find(&items).Error
 	return
 }
 
 // EditChartSeriesAndEdbMapping
 func EditChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
+	//o := orm.NewOrmUsingDB("data")
+	//to, err := o.Begin()
+	to := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
@@ -72,7 +75,8 @@ func EditChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err e
 	}
 
 	// 删除所有的指标映射
-	_, err = o.Raw("DELETE FROM chart_series_edb_mapping WHERE chart_info_id = ?", chartInfoId).Exec()
+	//_, err = o.Raw("DELETE FROM chart_series_edb_mapping WHERE chart_info_id = ?", chartInfoId).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec("DELETE FROM chart_series_edb_mapping WHERE chart_info_id = ?", chartInfoId).Error
 	if err != nil {
 		return
 	}
@@ -102,16 +106,20 @@ func EditChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err e
 			}
 			//新增
 			tmp.CreateTime = time.Now()
-			seriesIdTmp, e := to.Insert(tmp)
+			//seriesIdTmp, e := to.Insert(tmp)
+			e := to.Create(&tmp).Error
 			if e != nil {
 				err = fmt.Errorf("AddChartSeries Err:" + e.Error())
 				return
 			}
-			seriesId = int(seriesIdTmp)
+			//seriesId = int(seriesIdTmp)
+			seriesId = tmp.ChartSeriesId
 		} else {
 			//编辑
 			delete(seriesDeleteMap, v.ChartSeriesId)
-			_, e := to.Update(tmp)
+			//_, e := to.Update(tmp)
+			//e := to.Model(tmp).Select("*").Updates(tmp).Error
+			e := to.Save(&tmp).Error
 			if e != nil {
 				err = fmt.Errorf("UpdateChartSeries Err:" + e.Error())
 				return
@@ -141,7 +149,8 @@ func EditChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err e
 			addSeriesEdbList = append(addSeriesEdbList, edbTmp)
 		}
 		if len(addSeriesEdbList) > 0 {
-			_, err = to.InsertMulti(len(addSeriesEdbList), addSeriesEdbList)
+			//_, err = to.InsertMulti(len(addSeriesEdbList), addSeriesEdbList)
+			err = to.CreateInBatches(addSeriesEdbList, len(addSeriesEdbList)).Error
 			if err != nil {
 				err = fmt.Errorf("AddChartSeries Err:" + err.Error())
 				return
@@ -154,14 +163,18 @@ func EditChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err e
 		seriesIds = append(seriesIds, id)
 	}
 	if len(seriesIds) > 0 {
-		sql := `DELETE FROM chart_series WHERE chart_series_id IN (` + utils.GetOrmInReplace(len(seriesIds)) + `) and chart_info_id=?`
-		_, err = to.Raw(sql, seriesIds, chartInfoId).Exec()
+		//sql := `DELETE FROM chart_series WHERE chart_series_id IN (` + utils.GetOrmInReplace(len(seriesIds)) + `) and chart_info_id=?`
+		//_, err = to.Raw(sql, seriesIds, chartInfoId).Exec()
+		sql := `DELETE FROM chart_series WHERE chart_series_id IN ? and chart_info_id=?`
+		err = to.Exec(sql, seriesIds, chartInfoId).Error
 		if err != nil {
 			err = fmt.Errorf("删除系列失败 Err:" + err.Error())
 			return
 		}
-		sql = `DELETE FROM chart_series_edb_mapping WHERE chart_series_id IN (` + utils.GetOrmInReplace(len(seriesIds)) + `) and chart_info_id=?`
-		_, err = to.Raw(sql, seriesIds, chartInfoId).Exec()
+		//sql = `DELETE FROM chart_series_edb_mapping WHERE chart_series_id IN (` + utils.GetOrmInReplace(len(seriesIds)) + `) and chart_info_id=?`
+		//_, err = to.Raw(sql, seriesIds, chartInfoId).Exec()
+		sql = `DELETE FROM chart_series_edb_mapping WHERE chart_series_id IN ? and chart_info_id=?`
+		err = to.Exec(sql, seriesIds, chartInfoId).Error
 		if err != nil {
 			err = fmt.Errorf("删除系列指标 Err:" + err.Error())
 			return
@@ -172,8 +185,9 @@ func EditChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err e
 }
 
 func AddChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
+	//o := orm.NewOrmUsingDB("data")
+	//to, err := o.Begin()
+	to := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
@@ -209,12 +223,14 @@ func AddChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err er
 			CreateTime:   time.Now(),
 			ModifyTime:   time.Now(),
 		}
-		seriesIdTmp, e := to.Insert(tmp)
+		//seriesIdTmp, e := to.Insert(tmp)
+		e := to.Create(&tmp).Error
 		if e != nil {
 			err = fmt.Errorf("AddChartSeries Err:" + e.Error())
 			return
 		}
-		seriesId := int(seriesIdTmp)
+		//seriesId := int(seriesIdTmp)
+		seriesId := tmp.ChartSeriesId
 		addSeriesEdbList := make([]*ChartSeriesEdbMapping, 0)
 		for _, edbItem := range v.EdbInfoList {
 			dateConfStrByte, e := json.Marshal(edbItem.DateConf)
@@ -238,7 +254,8 @@ func AddChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err er
 			addSeriesEdbList = append(addSeriesEdbList, edbTmp)
 		}
 		if len(addSeriesEdbList) > 0 {
-			_, e = to.InsertMulti(len(addSeriesEdbList), addSeriesEdbList)
+			//_, e = to.InsertMulti(len(addSeriesEdbList), addSeriesEdbList)
+			e = to.CreateInBatches(addSeriesEdbList, len(addSeriesEdbList)).Error
 			if e != nil {
 				err = fmt.Errorf("AddChartSeries Err:" + e.Error())
 				return
@@ -249,8 +266,9 @@ func AddChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err er
 }
 
 func DeleteChartSeriesAndEdbMapping(chartInfoId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
+	//o := orm.NewOrmUsingDB("data")
+	//to, err := o.Begin()
+	to := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
@@ -263,12 +281,14 @@ func DeleteChartSeriesAndEdbMapping(chartInfoId int) (err error) {
 	}()
 
 	sql := ` DELETE FROM chart_series WHERE chart_info_id=? `
-	_, err = to.Raw(sql, chartInfoId).Exec()
+	//_, err = to.Raw(sql, chartInfoId).Exec()
+	err = to.Exec(sql, chartInfoId).Error
 	if err != nil {
 		return
 	}
 	sql = ` DELETE FROM  chart_series_edb_mapping WHERE chart_info_id=? `
-	_, err = to.Raw(sql, chartInfoId).Exec()
+	//_, err = to.Raw(sql, chartInfoId).Exec()
+	err = to.Exec(sql, chartInfoId).Error
 	return
 }
 

+ 7 - 4
models/chart_series_edb_mapping.go

@@ -1,12 +1,14 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 type ChartSeriesEdbMapping struct {
-	ChartSeriesEdbMappingId int       `orm:"column(chart_series_edb_mapping_id);pk"`
+	//ChartSeriesEdbMappingId int       `orm:"column(chart_series_edb_mapping_id);pk"`
+	ChartSeriesEdbMappingId int       `gorm:"column:chart_series_edb_mapping_id;primaryKey"`
 	ChartSeriesId           int       `description:"系列ID"`
 	ChartInfoId             int       `description:"图表ID"`
 	EdbInfoId               int       `description:"指标id"`
@@ -22,8 +24,9 @@ func (c *ChartSeriesEdbMapping) TableName() string {
 }
 
 func GetChartSeriesEdbByChartInfoId(chartInfoId int) (items []*ChartSeriesEdbMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := "SELECT * FROM chart_series_edb_mapping WHERE chart_info_id = ?"
-	_, err = o.Raw(sql, chartInfoId).QueryRows(&items)
+	//_, err = o.Raw(sql, chartInfoId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId).Find(&items).Error
 	return
 }

+ 5 - 3
models/data_manage/chart_info.go

@@ -1,7 +1,8 @@
 package data_manage
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 )
 
 type ChartEdbInfoMapping struct {
@@ -55,13 +56,14 @@ type AreaExtraConf struct {
 }
 
 func GetChartEdbMappingList(chartInfoId int) (list []*ChartEdbInfoMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT a.*,b.source_name,b.source,b.edb_code,b.edb_name,b.edb_name_en,b.frequency,b.unit,b.unit_en,b.start_date,b.end_date,b.modify_time,b.latest_date,b.latest_value,b.unique_code,b.edb_info_type AS edb_info_category_type
              FROM chart_edb_mapping AS a
 			 INNER JOIN edb_info AS b ON a.edb_info_id=b.edb_info_id
 			 WHERE chart_info_id=? 
              ORDER BY chart_edb_mapping_id ASC `
-	_, err = o.Raw(sql, chartInfoId).QueryRows(&list)
+	//_, err = o.Raw(sql, chartInfoId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId).Find(&list).Error
 	return
 }
 

+ 25 - 17
models/data_manage/chart_info_correlation.go

@@ -1,15 +1,17 @@
 package data_manage
 
 import (
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // ChartInfoCorrelation 相关性图表-扩展信息
 type ChartInfoCorrelation struct {
-	CorrelationChartInfoId int       `orm:"column(correlation_chart_info_id);pk" description:"相关性图表ID(chart_info表source=3的)"`
+	//CorrelationChartInfoId int       `orm:"column(correlation_chart_info_id);pk" description:"相关性图表ID(chart_info表source=3的)"`
+	CorrelationChartInfoId int       `gorm:"column:correlation_chart_info_id;primaryKey" description:"相关性图表ID(chart_info表source=3的)"`
 	LeadValue              int       `description:"领先值"`
 	LeadUnit               string    `description:"领先单位"`
 	CalculateValue         int       `description:"计算窗口"`
@@ -33,44 +35,49 @@ func (m *ChartInfoCorrelation) TableName() string {
 }
 
 func (m *ChartInfoCorrelation) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Insert(m)
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
 	//m.CorrelationChartInfoId = int(id)
+	err = global.DbMap[utils.DbNameIndex].Create(&m).Error
 	return
 }
 
 func (m *ChartInfoCorrelation) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(m, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&m).Select(cols).Updates(&m).Error
 	return
 }
 
 func (m *ChartInfoCorrelation) Delete() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE correlation_chart_info_id = ? LIMIT 1`, m.TableName())
-	_, err = o.Raw(sql, m.CorrelationChartInfoId).Exec()
+	//_, err = o.Raw(sql, m.CorrelationChartInfoId).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, m.CorrelationChartInfoId).Error
 	return
 }
 
 func (m *ChartInfoCorrelation) GetItemById(id int) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE correlation_chart_info_id = ? LIMIT 1`, m.TableName())
-	err = o.Raw(sql, id).QueryRow(&m)
+	//err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, id).First(&m).Error
 	return
 }
 
 func (m *ChartInfoCorrelation) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&m)
+	//err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&m).Error
 	return
 }
 
 func (m *ChartInfoCorrelation) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*ChartInfoCorrelation, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -80,7 +87,8 @@ func (m *ChartInfoCorrelation) GetItemsByCondition(condition string, pars []inte
 		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).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 

+ 36 - 32
models/data_manage/chart_theme/chart_theme.go

@@ -2,14 +2,16 @@ package chart_theme
 
 import (
 	"errors"
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 // ChartTheme
 // @Description: 图表主题表
 type ChartTheme struct {
-	ChartThemeId     int       `description:"图表主题类型ID" orm:"column(chart_theme_id);pk"`
+	//ChartThemeId     int       `description:"图表主题类型ID" orm:"column(chart_theme_id);pk"`
+	ChartThemeId     int       `description:"图表主题类型ID" gorm:"column:chart_theme_id;primaryKey"`
 	ChartThemeName   string    `description:"图表主题名称"`
 	ChartThemeTypeId int       `description:"图表主题类型ID"`
 	ChartImage       string    `description:"缩略图"`
@@ -30,10 +32,10 @@ type ChartTheme struct {
 // @return item *ChartTheme
 // @return err error
 func GetChartThemeId(chartThemeId int) (item *ChartTheme, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM chart_theme where chart_theme_id = ? AND is_delete = 0`
-	err = o.Raw(sql, chartThemeId).QueryRow(&item)
-
+	//err = o.Raw(sql, chartThemeId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartThemeId).First(&item).Error
 	return
 }
 
@@ -49,12 +51,13 @@ func (m *ChartTheme) Add() (err error) {
 		err = errors.New("该配置已存在")
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	lastId, err := o.Insert(m)
+	//o := orm.NewOrmUsingDB("data")
+	//lastId, err := o.Insert(m)
+	err = global.DbMap[utils.DbNameIndex].Create(&m).Error
 	if err != nil {
 		return
 	}
-	m.ChartThemeId = int(lastId)
+	//m.ChartThemeId = int(lastId)
 
 	return
 }
@@ -67,8 +70,9 @@ func (m *ChartTheme) Add() (err error) {
 // @param cols []string
 // @return err error
 func (m *ChartTheme) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(m, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&m).Select(cols).Updates(&m).Error
 	return
 }
 
@@ -79,10 +83,10 @@ func (m *ChartTheme) Update(cols []string) (err error) {
 // @return list []*ChartTheme
 // @return err error
 func GetChartThemeListByTypeId(chartThemeTypeId int) (list []*ChartTheme, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM chart_theme WHERE chart_theme_type_id = ? AND  is_delete=0 ORDER BY chart_theme_id ASC `
-	_, err = o.Raw(sql, chartThemeTypeId).QueryRows(&list)
-
+	//_, err = o.Raw(sql, chartThemeTypeId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartThemeTypeId).Find(&list).Error
 	return
 }
 
@@ -93,10 +97,10 @@ func GetChartThemeListByTypeId(chartThemeTypeId int) (list []*ChartTheme, err er
 // @return list []*ChartTheme
 // @return err error
 func GetAllChartThemeList() (list []*ChartTheme, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM chart_theme WHERE  is_delete=0 ORDER BY chart_theme_id ASC `
-	_, err = o.Raw(sql).QueryRows(&list)
-
+	//_, err = o.Raw(sql).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&list).Error
 	return
 }
 
@@ -125,12 +129,12 @@ type ChartThemeItem struct {
 // @return list []*ChartThemeConfig
 // @return err error
 func GetChartThemeItemList(chartThemeTypeId int) (list []*ChartThemeItem, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT a.*,b.default_chart_theme_id FROM chart_theme a 
          JOIN chart_theme_type b on a.chart_theme_type_id =b.chart_theme_type_id 
          WHERE a.chart_theme_type_id = ? AND a.is_delete=0 ORDER BY a.chart_theme_id ASC `
-	_, err = o.Raw(sql, chartThemeTypeId).QueryRows(&list)
-
+	//_, err = o.Raw(sql, chartThemeTypeId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartThemeTypeId).Find(&list).Error
 	return
 }
 
@@ -142,11 +146,11 @@ func GetChartThemeItemList(chartThemeTypeId int) (list []*ChartThemeItem, err er
 // @return item *ChartTheme
 // @return err error
 func GetSystemChartTheme(chartThemeTypeId int) (item *ChartTheme, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT a.* FROM chart_theme a
          WHERE a.chart_theme_type_id = ? AND a.is_system_theme=1 ORDER BY a.chart_theme_id ASC `
-	err = o.Raw(sql, chartThemeTypeId).QueryRow(&item)
-
+	//err = o.Raw(sql, chartThemeTypeId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartThemeTypeId).First(&item).Error
 	return
 }
 
@@ -191,7 +195,7 @@ type DrawOption struct {
 
 type LineOptions struct {
 	DashStyle string  `json:"dashStyle"`
-	LineWidth float64     `json:"lineWidth"`
+	LineWidth float64 `json:"lineWidth"`
 	LineType  string  `json:"lineType"`
 	Radius    float64 `json:"radius"`
 }
@@ -223,13 +227,13 @@ type NewLineOptions struct {
 }
 
 type LineStyleOptions struct {
-	DashStyle string `json:"dashStyle"`
-	Color     string `json:"color"`
-	LineWidth float64    `json:"lineWidth"`
-	LineType  string `json:"lineType"`
-	Radius    int    `json:"radius"`
-	DataMark  string `json:"dataMark"`
-	MarkType  string `json:"markType"`
-	MarkSize  int    `json:"markSize"`
-	MarkColor string `json:"markColor"`
+	DashStyle string  `json:"dashStyle"`
+	Color     string  `json:"color"`
+	LineWidth float64 `json:"lineWidth"`
+	LineType  string  `json:"lineType"`
+	Radius    int     `json:"radius"`
+	DataMark  string  `json:"dataMark"`
+	MarkType  string  `json:"markType"`
+	MarkSize  int     `json:"markSize"`
+	MarkColor string  `json:"markColor"`
 }

+ 19 - 16
models/data_manage/chart_theme/chart_theme_type.go

@@ -1,14 +1,16 @@
 package chart_theme
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 // ChartThemeType
 // @Description: 图表主题类型表
 type ChartThemeType struct {
-	ChartThemeTypeId    int       `description:"图表主题类型ID" orm:"column(chart_theme_type_id);pk"`
+	//ChartThemeTypeId    int       `description:"图表主题类型ID" orm:"column(chart_theme_type_id);pk"`
+	ChartThemeTypeId    int       `description:"图表主题类型ID" gorm:"column:chart_theme_type_id;primaryKey"`
 	ChartTypeName       string    `description:"类型名称"`
 	ChartType           int       `description:"图表类型"`
 	ChartSource         int       `description:"图表来源"`
@@ -25,8 +27,9 @@ type ChartThemeType struct {
 // @param cols []string
 // @return err error
 func (m *ChartThemeType) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(m, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&m).Select(cols).Updates(&m).Error
 	return
 }
 
@@ -37,10 +40,10 @@ func (m *ChartThemeType) Update(cols []string) (err error) {
 // @return list []*ChartThemeType
 // @return err error
 func GetAllChartThemeTypeList() (list []*ChartThemeType, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM chart_theme_type ORDER BY chart_theme_type_id ASC `
-	_, err = o.Raw(sql).QueryRows(&list)
-
+	//_, err = o.Raw(sql).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&list).Error
 	return
 }
 
@@ -52,10 +55,10 @@ func GetAllChartThemeTypeList() (list []*ChartThemeType, err error) {
 // @return list []*ChartThemeType
 // @return err error
 func GetChartThemeTypeListBySource(source int) (list []*ChartThemeType, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM chart_theme_type WHERE chart_source = ?  ORDER BY chart_theme_type_id ASC `
-	_, err = o.Raw(sql, source).QueryRows(&list)
-
+	//_, err = o.Raw(sql, source).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, source).Find(&list).Error
 	return
 }
 
@@ -67,10 +70,10 @@ func GetChartThemeTypeListBySource(source int) (list []*ChartThemeType, err erro
 // @return item *ChartThemeType
 // @return err error
 func GetChartThemeTypeById(chartThemeTypeId int) (item *ChartThemeType, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM chart_theme_type where chart_theme_type_id = ? `
-	err = o.Raw(sql, chartThemeTypeId).QueryRow(&item)
-
+	//err = o.Raw(sql, chartThemeTypeId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartThemeTypeId).First(&item).Error
 	return
 }
 
@@ -82,9 +85,9 @@ func GetChartThemeTypeById(chartThemeTypeId int) (item *ChartThemeType, err erro
 // @return item *ChartThemeType
 // @return err error
 func GetChartThemeTypeByChartTypeAndSource(chartType, source int) (item *ChartThemeType, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM chart_theme_type where chart_type = ? AND chart_source = ? `
-	err = o.Raw(sql, chartType, source).QueryRow(&item)
-
+	//err = o.Raw(sql, chartType, source).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartType, source).First(&item).Error
 	return
 }

+ 14 - 10
models/data_manage/cross_variety/chart_tag.go

@@ -1,15 +1,16 @@
 package cross_variety
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ChartTag
 // @Description: chart_tag 图表标签表
 type ChartTag struct {
-	ChartTagId      int       `orm:"column(chart_tag_id);pk"`
+	//ChartTagId      int       `orm:"column(chart_tag_id);pk"`
+	ChartTagId      int       `gorm:"column:chart_tag_id;primaryKey"`
 	ChartTagName    string    `description:"标签名称"`
 	ChartTagNameEn  string    `description:"标签名称(英文)"`
 	SysUserId       int       `description:"创建人id"`
@@ -26,16 +27,18 @@ type ChartTag struct {
 // @param updateColList []string
 // @return err error
 func (item *ChartTag) Update(updateColList []string) (err error) {
-	to := orm.NewOrmUsingDB("data")
-	_, err = to.Update(item, updateColList...)
+	//to := orm.NewOrmUsingDB("data")
+	//_, err = to.Update(item, updateColList...)
 
+	err = global.DbMap[utils.DbNameIndex].Model(&item).Select(updateColList).Updates(&item).Error
 	return
 }
 
 // Delete 删除
 func (item *ChartTag) Delete() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Delete(item)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Delete(item)
+	err = global.DbMap[utils.DbNameIndex].Delete(&item).Error
 	return
 }
 
@@ -51,9 +54,10 @@ func GetTagListByIdList(idList []int) (items []*ChartTag, err error) {
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	sql := `SELECT * FROM chart_tag WHERE 1 = 1 AND chart_tag_id in (` + utils.GetOrmInReplace(num) + `)`
-	_, err = o.Raw(sql, idList).QueryRows(&items)
-
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `SELECT * FROM chart_tag WHERE 1 = 1 AND chart_tag_id in (` + utils.GetOrmInReplace(num) + `)`
+	//_, err = o.Raw(sql, idList).QueryRows(&items)
+	sql := `SELECT * FROM chart_tag WHERE 1 = 1 AND chart_tag_id in ?`
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, idList).Find(&items).Error
 	return
 }

+ 8 - 6
models/data_manage/cross_variety/chart_tag_variety.go

@@ -1,15 +1,16 @@
 package cross_variety
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ChartTagVariety
 // @Description: chart_tag_variety 图表标签品种关系表
 type ChartTagVariety struct {
-	Id                        int       `orm:"column(id);pk"`
+	//Id                        int       `orm:"column(id);pk"`
+	Id                        int       `gorm:"column:id;primaryKey"`
 	ChartTagId                int       `description:"标签id"`
 	ChartVarietyId            int       `description:"品种id"`
 	EdbInfoId                 int       `description:"指标id"`
@@ -32,9 +33,10 @@ func GetChartTagVarietyListByTagAndVariety(chartTagId int, varietyIdList []int)
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	sql := `SELECT * FROM chart_tag_variety WHERE chart_tag_id = ? AND chart_variety_id in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = o.Raw(sql, chartTagId, varietyIdList).QueryRows(&items)
-
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `SELECT * FROM chart_tag_variety WHERE chart_tag_id = ? AND chart_variety_id in (` + utils.GetOrmInReplace(num) + `) `
+	sql := `SELECT * FROM chart_tag_variety WHERE chart_tag_id = ? AND chart_variety_id in ? `
+	//_, err = o.Raw(sql, chartTagId, varietyIdList).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartTagId, varietyIdList).Find(&items).Error
 	return
 }

+ 27 - 23
models/data_manage/cross_variety/chart_variety.go

@@ -1,15 +1,16 @@
 package cross_variety
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ChartVariety
 // @Description: chart_variety 图表品种表
 type ChartVariety struct {
-	ChartVarietyId     int       `orm:"column(chart_variety_id);pk"`
+	//ChartVarietyId     int       `orm:"column(chart_variety_id);pk"`
+	ChartVarietyId     int       `gorm:"column:chart_variety_id;primaryKey"`
 	ChartVarietyName   string    `description:"品种名称"`
 	ChartVarietyNameEn string    `description:"品种名称(英文)"`
 	SysUserId          int       `description:"创建人id"`
@@ -26,10 +27,10 @@ type ChartVariety struct {
 // @return item *ChartVariety
 // @return err error
 func GetVarietyById(id int) (item *ChartVariety, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM chart_variety WHERE chart_variety_id = ?`
-	err = o.Raw(sql, id).QueryRow(&item)
-
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, id).First(&item).Error
 	return
 }
 
@@ -41,10 +42,10 @@ func GetVarietyById(id int) (item *ChartVariety, err error) {
 // @return item *ChartVariety
 // @return err error
 func GetVarietyByName(name string) (item *ChartVariety, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM chart_variety WHERE chart_variety_name = ?`
-	err = o.Raw(sql, name).QueryRow(&item)
-
+	//err = o.Raw(sql, name).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, name).First(&item).Error
 	return
 }
 
@@ -55,13 +56,14 @@ func GetVarietyByName(name string) (item *ChartVariety, err error) {
 // @param item *ChartVariety
 // @return err error
 func AddVariety(item *ChartVariety) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err := o.Insert(item)
+	//o := orm.NewOrmUsingDB("data")
+	//lastId, err := o.Insert(item)
+	err = global.DbMap[utils.DbNameIndex].Create(&item).Error
 	if err != nil {
 		return
 	}
 
-	item.ChartVarietyId = int(lastId)
+	//item.ChartVarietyId = int(lastId)
 
 	return
 }
@@ -74,16 +76,17 @@ func AddVariety(item *ChartVariety) (err error) {
 // @param updateColList []string
 // @return err error
 func (item *ChartVariety) Update(updateColList []string) (err error) {
-	to := orm.NewOrmUsingDB("data")
-	_, err = to.Update(item, updateColList...)
-
+	//to := orm.NewOrmUsingDB("data")
+	//_, err = to.Update(item, updateColList...)
+	err = global.DbMap[utils.DbNameIndex].Model(&item).Select(updateColList).Updates(&item).Error
 	return
 }
 
 // Delete 删除
 func (item *ChartVariety) Delete() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Delete(item)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Delete(item)
+	err = global.DbMap[utils.DbNameIndex].Delete(&item).Error
 	return
 }
 
@@ -94,10 +97,10 @@ func (item *ChartVariety) Delete() (err error) {
 // @return items []*ChartVariety
 // @return err error
 func GetVarietyList() (items []*ChartVariety, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM chart_variety WHERE 1 = 1 `
-	_, err = o.Raw(sql).QueryRows(&items)
-
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&items).Error
 	return
 }
 
@@ -113,9 +116,10 @@ func GetVarietyListByIdList(idList []int) (items []*ChartVariety, err error) {
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	sql := `SELECT * FROM chart_variety WHERE 1 = 1 AND chart_variety_id in (` + utils.GetOrmInReplace(num) + `)`
-	_, err = o.Raw(sql, idList).QueryRows(&items)
-
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `SELECT * FROM chart_variety WHERE 1 = 1 AND chart_variety_id in (` + utils.GetOrmInReplace(num) + `)`
+	sql := `SELECT * FROM chart_variety WHERE 1 = 1 AND chart_variety_id in ?`
+	//_, err = o.Raw(sql, idList).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, idList).Find(&items).Error
 	return
 }

+ 12 - 8
models/data_manage/edb_info.go

@@ -1,13 +1,14 @@
 package data_manage
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 type EdbInfo struct {
-	EdbInfoId        int    `orm:"column(edb_info_id);pk"`
+	//EdbInfoId        int    `orm:"column(edb_info_id);pk"`
+	EdbInfoId        int    `gorm:"column:edb_info_id;primaryKey"`
 	EdbInfoType      int    `description:"指标类型,0:普通指标,1:预测指标"`
 	SourceName       string `description:"来源名称"`
 	Source           int    `description:"来源id"`
@@ -52,9 +53,10 @@ type EdbInfoMaxAndMinInfo struct {
 }
 
 func GetEdbInfoById(edbInfoId int) (item *EdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM edb_info WHERE edb_info_id=? `
-	err = o.Raw(sql, edbInfoId).QueryRow(&item)
+	//err = o.Raw(sql, edbInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).First(&item).Error
 	return
 }
 
@@ -64,15 +66,17 @@ func GetEdbInfoByIdList(edbInfoIdList []int) (items []*EdbInfo, err error) {
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_info WHERE edb_info_id in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = o.Raw(sql, edbInfoIdList).QueryRows(&items)
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT * FROM edb_info WHERE edb_info_id in (` + utils.GetOrmInReplace(num) + `) `
+	sql := ` SELECT * FROM edb_info WHERE edb_info_id in ?`
+	//_, err = o.Raw(sql, edbInfoIdList).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoIdList).Find(&items).Error
 	return
 }
 
 func GetRefreshEdbInfoFromBase(edbInfoId, source int) (baseEdbInfoArr, calculateInfoArr []*EdbInfo, err error) {
 	calculateList, err := GetEdbInfoCalculateMap(edbInfoId, source)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+	if err != nil && !utils.IsErrNoRow(err) {
 		return
 	}
 	for _, item := range calculateList {

+ 18 - 9
models/data_manage/edb_info_calculate.go

@@ -1,13 +1,13 @@
 package data_manage
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 func GetEdbInfoCalculateMap(edbInfoId, source int) (list []*EdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 
 	//calculateTableName := GetEdbInfoCalculateTableName(source)
 
@@ -20,7 +20,8 @@ func GetEdbInfoCalculateMap(edbInfoId, source int) (list []*EdbInfo, err error)
 	sql := ` SELECT b.* FROM edb_info_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)
+	//_, err = o.Raw(sql, edbInfoId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).Find(&list).Error
 	return
 }
 
@@ -31,19 +32,26 @@ func GetEdbInfoAllCalculateByEdbInfoIdList(edbInfoIdList []int) (list []*EdbInfo
 		return
 	}
 
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT b.* FROM edb_info_calculate_mapping AS a
+	//		 INNER JOIN edb_info AS b ON a.edb_info_id=b.edb_info_id
+	//         WHERE a.from_edb_info_id in (` + utils.GetOrmInReplace(num) + `)
+	//		 GROUP BY a.edb_info_id
+	//		 ORDER BY a.edb_info_id ASC `
 	sql := ` SELECT b.* FROM edb_info_calculate_mapping AS a
 			 INNER JOIN edb_info AS b ON a.edb_info_id=b.edb_info_id
-             WHERE a.from_edb_info_id in (` + utils.GetOrmInReplace(num) + `)
+             WHERE a.from_edb_info_id in ?
 			 GROUP BY a.edb_info_id
 			 ORDER BY a.edb_info_id ASC `
-	_, err = o.Raw(sql, edbInfoIdList).QueryRows(&list)
+	//_, err = o.Raw(sql, edbInfoIdList).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoIdList).Find(&list).Error
 	return
 }
 
 // EdbInfoCalculateMappingInfo
 type EdbInfoCalculateMappingInfo struct {
-	EdbInfoCalculateMappingId int       `orm:"column(edb_info_calculate_mapping_id);pk"`
+	//EdbInfoCalculateMappingId int       `orm:"column(edb_info_calculate_mapping_id);pk"`
+	EdbInfoCalculateMappingId int       `gorm:"column:edb_info_calculate_mapping_id;primaryKey"`
 	EdbInfoId                 int       `description:"计算指标id"`
 	Source                    int       `description:"计算指标来源"`
 	SourceName                string    `description:"计算指标来源名称"`
@@ -66,10 +74,11 @@ type EdbInfoCalculateMappingInfo struct {
 
 // GetEdbInfoCalculateMappingListByEdbInfoId 根据生成的指标id获取来源的指标id列表
 func GetEdbInfoCalculateMappingListByEdbInfoId(edbInfoId int) (items []*EdbInfoCalculateMappingInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT a.*,b.edb_type as from_edb_type,b.edb_info_type as from_edb_info_type, b.unique_code AS from_unique_code, b.classify_id AS from_classify_id FROM edb_info_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=? `
-	_, err = o.Raw(sql, edbInfoId).QueryRows(&items)
+	//_, err = o.Raw(sql, edbInfoId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).Find(&items).Error
 	return
 }

+ 5 - 6
models/data_manage/edb_source.go

@@ -1,9 +1,9 @@
 package data_manage
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 )
 
@@ -13,7 +13,8 @@ var (
 
 // EdbSource 指标来源表
 type EdbSource struct {
-	EdbSourceId      int    `orm:"column(edb_source_id);pk"`
+	//EdbSourceId      int    `orm:"column(edb_source_id);pk"`
+	EdbSourceId      int    `gorm:"column:edb_source_id;primaryKey"`
 	SourceName       string `description:"指标来源名称"`
 	TableName        string `description:"数据表名"`
 	EdbAddMethod     string `description:"指标新增接口"`
@@ -27,7 +28,6 @@ type EdbSource struct {
 
 // GetEdbSourceItemsByCondition 获取指标来源列表
 func GetEdbSourceItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*EdbSource, err error) {
-	o := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -37,7 +37,7 @@ func GetEdbSourceItemsByCondition(condition string, pars []interface{}, fieldArr
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM edb_source WHERE 1=1 %s %s`, fields, condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -52,9 +52,8 @@ type EdbSourceChild struct {
 
 // GetEdbSourceItemByCondition 获取指标来源
 func GetEdbSourceItemByCondition(condition string, pars []interface{}) (item *EdbSource, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`SELECT * FROM edb_source WHERE 1=1 %s`, condition)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars).First(&item).Error
 	return
 }
 

+ 27 - 16
models/data_manage/excel/excel_chart_data.go

@@ -1,14 +1,16 @@
 package excel
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/models"
+	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 type ExcelChartData struct {
-	ExcelChartDataId int `orm:"column(excel_chart_data_id);pk"`
+	//ExcelChartDataId int `orm:"column(excel_chart_data_id);pk"`
+	ExcelChartDataId int `gorm:"column:excel_chart_data_id;primaryKey"`
 	ExcelInfoId      int `description:"表格id"`
 	ExcelChartEdbId  int `description:"指标ID"`
 	ChartInfoId      int `description:"图表id"`
@@ -25,38 +27,43 @@ func (e *ExcelChartData) TableName() string {
 
 // 新增
 func (e *ExcelChartData) Add() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Insert(e)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Insert(e)
+	err = global.DbMap[utils.DbNameIndex].Create(&e).Error
 	return
 }
 
 // 修改
 func (e *ExcelChartData) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(e, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(e, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&e).Select(cols).Updates(&e).Error
 	return
 }
 
 // 删除
 func (e *ExcelChartData) Delete() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Delete(e)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Delete(e)
+	err = global.DbMap[utils.DbNameIndex].Delete(&e).Error
 	return
 }
 
 // 查询
 func GetExcelChartDataByExcelInfoId(excelInfoId int) (list []*ExcelChartData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *
              FROM excel_chart_data
 			 WHERE excel_info_id=? 
             ORDER BY excel_chart_edb_id ASC, data_time desc, excel_chart_data_id ASC `
-	_, err = o.Raw(sql, excelInfoId).QueryRows(&list)
+	//_, err = o.Raw(sql, excelInfoId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).Find(&list).Error
 	return
 }
 
 func BatchUpdateChartEdbData(excelInfoId int, excelEdbMap map[int]*ExcelChartEdb, excelDataMap map[int][]*models.EdbDataList) (err error) {
-	o, err := orm.NewOrmUsingDB("data").Begin()
+	//o, err := orm.NewOrmUsingDB("data").Begin()
+	o := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
@@ -69,7 +76,8 @@ func BatchUpdateChartEdbData(excelInfoId int, excelEdbMap map[int]*ExcelChartEdb
 	}()
 	//如果有数据则删除所有的数据
 	sql := `delete from excel_chart_data where excel_info_id = ?`
-	_, err = o.Raw(sql, excelInfoId).Exec()
+	//_, err = o.Raw(sql, excelInfoId).Exec()
+	err = o.Exec(sql, excelInfoId).Error
 	if err != nil {
 		return
 	}
@@ -96,7 +104,8 @@ func BatchUpdateChartEdbData(excelInfoId int, excelEdbMap map[int]*ExcelChartEdb
 			addList = append(addList, chartData)
 			// data信息入库
 			if len(addList) > 1000 {
-				_, err = o.InsertMulti(len(addList), addList)
+				//_, err = o.InsertMulti(len(addList), addList)
+				err = o.CreateInBatches(addList, len(addList)).Error
 				if err != nil {
 					return
 				}
@@ -107,7 +116,8 @@ func BatchUpdateChartEdbData(excelInfoId int, excelEdbMap map[int]*ExcelChartEdb
 
 	// data信息入库
 	if len(addList) > 0 {
-		_, err = o.InsertMulti(len(addList), addList)
+		//_, err = o.InsertMulti(len(addList), addList)
+		err = o.CreateInBatches(addList, len(addList)).Error
 		if err != nil {
 			return
 		}
@@ -116,11 +126,12 @@ func BatchUpdateChartEdbData(excelInfoId int, excelEdbMap map[int]*ExcelChartEdb
 }
 
 func GetExcelChartDataByChartInfoId(chartInfoId int) (list []*ExcelChartData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *
              FROM excel_chart_Data
 			 WHERE chart_info_id=? 
              ORDER BY excel_chart_edb_id ASC `
-	_, err = o.Raw(sql, chartInfoId).QueryRows(&list)
+	//_, err = o.Raw(sql, chartInfoId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId).Find(&list).Error
 	return
 }

+ 86 - 47
models/data_manage/excel/excel_chart_edb.go

@@ -1,17 +1,20 @@
 package excel
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/models"
 	"eta/eta_chart_lib/utils"
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
+	"gorm.io/gorm"
 	"strconv"
 	"strings"
 	"time"
 )
 
 type ExcelChartEdb struct {
-	ExcelChartEdbId int       `orm:"column(excel_chart_edb_id);pk"`
+	//ExcelChartEdbId int       `orm:"column(excel_chart_edb_id);pk"`
+	ExcelChartEdbId int       `gorm:"column:excel_chart_edb_id;primaryKey"`
 	ExcelInfoId     int       `description:"表格id"`
 	ChartInfoId     int       `description:"图表id"`
 	EdbCode         string    `description:"指标编码"`
@@ -79,22 +82,25 @@ func (e *ExcelChartEdb) TableName() string {
 
 // 新增
 func (e *ExcelChartEdb) Add() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Insert(e)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Insert(e)
+	err = global.DbMap[utils.DbNameIndex].Create(&e).Error
 	return
 }
 
 // 修改
 func (e *ExcelChartEdb) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(e, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(e, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&e).Select(cols).Updates(&e).Error
 	return
 }
 
 // 删除
 func (e *ExcelChartEdb) Delete() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Delete(e)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Delete(e)
+	err = global.DbMap[utils.DbNameIndex].Delete(&e).Error
 	return
 }
 
@@ -105,7 +111,8 @@ type AddChartEdbAndDataItem struct {
 
 // 同时添加指标和指标数据
 func (e *ExcelChartEdb) AddChartEdbAndData(list []*AddChartEdbAndDataItem, chartInfo *models.ChartInfo, deleteEdbIds []int) (err error) {
-	o, err := orm.NewOrmUsingDB("data").Begin()
+	//o, err := orm.NewOrmUsingDB("data").Begin()
+	o := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
@@ -119,8 +126,10 @@ func (e *ExcelChartEdb) AddChartEdbAndData(list []*AddChartEdbAndDataItem, chart
 
 	// 先删除原先的绑定的指标
 	if len(deleteEdbIds) > 0 && chartInfo.ChartInfoId > 0 {
-		sql := `DELETE FROM excel_chart_edb WHERE chart_info_id = ? AND excel_chart_edb_id in (` + utils.GetOrmInReplace(len(deleteEdbIds)) + `)`
-		_, err = o.Raw(sql, chartInfo.ChartInfoId, deleteEdbIds).Exec()
+		//sql := `DELETE FROM excel_chart_edb WHERE chart_info_id = ? AND excel_chart_edb_id in (` + utils.GetOrmInReplace(len(deleteEdbIds)) + `)`
+		sql := `DELETE FROM excel_chart_edb WHERE chart_info_id = ? AND excel_chart_edb_id in ?`
+		//_, err = o.Raw(sql, chartInfo.ChartInfoId, deleteEdbIds).Exec()
+		err = o.Exec(sql, chartInfo.ChartInfoId, deleteEdbIds).Error
 		if err != nil {
 			err = fmt.Errorf("删除原先的指标失败:%v", err)
 			return
@@ -141,14 +150,17 @@ func (e *ExcelChartEdb) AddChartEdbAndData(list []*AddChartEdbAndDataItem, chart
 	//新增图表
 	chartInfoId := chartInfo.ChartInfoId
 	if chartInfo.ChartInfoId <= 0 {
-		lastId, e := o.Insert(chartInfo)
-		if e != nil {
+		//lastId, e := o.Insert(chartInfo)
+		err = o.Create(&chartInfo).Error
+		if err != nil {
 			err = fmt.Errorf("新增图表失败,AddChartEdbAndData: %v", e)
 			return
 		}
-		chartInfoId = int(lastId)
+		//chartInfoId = int(lastId)
+		chartInfoId = chartInfo.ChartInfoId
 	} else {
-		_, err = o.Update(chartInfo)
+		//_, err = o.Update(chartInfo)
+		err = o.Save(&chartInfo).Error
 		if err != nil {
 			err = fmt.Errorf("更新图表失败,AddChartEdbAndData: %v", e)
 			return
@@ -156,8 +168,10 @@ func (e *ExcelChartEdb) AddChartEdbAndData(list []*AddChartEdbAndDataItem, chart
 	}
 
 	//更新图表id
-	sql := `update excel_chart_edb set chart_info_id = ? where excel_chart_edb_id in (` + utils.GetOrmInReplace(len(updateIds)) + `) and chart_info_id=0`
-	_, err = o.Raw(sql, chartInfoId, updateIds).Exec()
+	//sql := `update excel_chart_edb set chart_info_id = ? where excel_chart_edb_id in (` + utils.GetOrmInReplace(len(updateIds)) + `) and chart_info_id=0`
+	sql := `update excel_chart_edb set chart_info_id = ? where excel_chart_edb_id in ? and chart_info_id=0`
+	//_, err = o.Raw(sql, chartInfoId, updateIds).Exec()
+	err = o.Exec(sql, chartInfoId, updateIds).Error
 	if err != nil {
 		err = fmt.Errorf("更新图表id失败,AddChartEdbAndData: %v", err)
 		return
@@ -167,30 +181,36 @@ func (e *ExcelChartEdb) AddChartEdbAndData(list []*AddChartEdbAndDataItem, chart
 		edbInfoIdStr := strings.Join(edbInfoIdArrStr, ",")
 		//更新图表关联的指标id
 		sql = `update chart_info set edb_info_ids = ? where chart_info_id = ?`
-		_, err = o.Raw(sql, edbInfoIdStr, chartInfoId).Exec()
+		//_, err = o.Raw(sql, edbInfoIdStr, chartInfoId).Exec()
+		err = o.Exec(sql, edbInfoIdStr, chartInfoId).Error
 	}
 	return
 }
 
-func addChartEdbAndData(o orm.TxOrmer, chartEdb *ExcelChartEdb, dataList []*ExcelChartData) (err error) {
+// func addChartEdbAndData(o orm.TxOrmer, chartEdb *ExcelChartEdb, dataList []*ExcelChartData) (err error) {
+func addChartEdbAndData(o *gorm.DB, chartEdb *ExcelChartEdb, dataList []*ExcelChartData) (err error) {
 	// 图表指标信息入库
 	excelChartEdbId := chartEdb.ExcelChartEdbId
 	if chartEdb.ExcelChartEdbId <= 0 {
-		lastId, e := o.Insert(chartEdb)
+		//lastId, e := o.Insert(chartEdb)
+		e := o.Create(&chartEdb).Error
 		if e != nil {
 			err = fmt.Errorf("新增指标失败,addChartEdbAndData: %v", e)
 			return
 		}
-		excelChartEdbId = int(lastId)
+		//excelChartEdbId = int(lastId)
+		excelChartEdbId = chartEdb.ExcelChartEdbId
 	} else {
-		_, e := o.Update(chartEdb)
+		//_, e := o.Update(chartEdb)
+		e := o.Save(&chartEdb).Error
 		if e != nil {
 			err = fmt.Errorf("更新指标失败,addChartEdbAndData: %v", e)
 			return
 		}
 		//如果有数据则删除所有的数据
 		sql := `delete from excel_chart_data where excel_chart_edb_id = ?`
-		_, err = o.Raw(sql, excelChartEdbId).Exec()
+		//_, err = o.Raw(sql, excelChartEdbId).Exec()
+		err = o.Exec(sql, excelChartEdbId).Error
 		if err != nil {
 			return
 		}
@@ -215,7 +235,8 @@ func addChartEdbAndData(o orm.TxOrmer, chartEdb *ExcelChartEdb, dataList []*Exce
 			addList = append(addList, chartData)
 			// data信息入库
 			if len(addList) > 1000 {
-				_, err = o.InsertMulti(len(addList), addList)
+				//_, err = o.InsertMulti(len(addList), addList)
+				err = o.CreateInBatches(addList, len(addList)).Error
 				if err != nil {
 					return
 				}
@@ -226,7 +247,8 @@ func addChartEdbAndData(o orm.TxOrmer, chartEdb *ExcelChartEdb, dataList []*Exce
 
 	// data信息入库
 	if len(addList) > 0 {
-		_, err = o.InsertMulti(len(addList), addList)
+		//_, err = o.InsertMulti(len(addList), addList)
+		err = o.CreateInBatches(addList, len(addList)).Error
 		if err != nil {
 			return
 		}
@@ -235,53 +257,62 @@ func addChartEdbAndData(o orm.TxOrmer, chartEdb *ExcelChartEdb, dataList []*Exce
 }
 
 func GetExcelChartEdbMappingByExcelInfoId(excelInfoId int) (list []*ExcelChartEdb, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *
              FROM excel_chart_edb 
 			 WHERE excel_info_id=? 
              ORDER BY chart_info_id asc, excel_chart_edb_id ASC `
-	_, err = o.Raw(sql, excelInfoId).QueryRows(&list)
+	//_, err = o.Raw(sql, excelInfoId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).Find(&list).Error
 	return
 }
 
 func GetExcelChartEdbMappingByExcelInfoIds(excelInfoIds []int) (list []*ExcelChartEdb, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT *
+	//         FROM excel_chart_edb
+	//		 WHERE excel_info_id in (` + utils.GetOrmInReplace(len(excelInfoIds)) + `)`
 	sql := ` SELECT *
              FROM excel_chart_edb 
-			 WHERE excel_info_id in (` + utils.GetOrmInReplace(len(excelInfoIds)) + `)`
-	_, err = o.Raw(sql, excelInfoIds).QueryRows(&list)
+			 WHERE excel_info_id in ?`
+	//_, err = o.Raw(sql, excelInfoIds).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoIds).Find(&list).Error
 	return
 }
 
 func GetExcelChartEdbById(id int) (item *ExcelChartEdb, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_chart_edb WHERE excel_chart_edb_id=? `
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, id).First(&item).Error
 	return
 }
 
 func GetExcelChartEdbMappingByChartInfoId(chartInfoId int) (list []*ExcelChartEdb, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *
              FROM excel_chart_edb 
 			 WHERE chart_info_id=? 
              ORDER BY excel_chart_edb_id ASC `
-	_, err = o.Raw(sql, chartInfoId).QueryRows(&list)
+	//_, err = o.Raw(sql, chartInfoId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId).Find(&list).Error
 	return
 }
 
 func GetExcelInfoByChartInfoId(chartInfoId int) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT i.*
              FROM excel_chart_edb e left join excel_info i on e.excel_info_id=i.excel_info_id
 			 WHERE e.chart_info_id=? limit 1`
-	err = o.Raw(sql, chartInfoId).QueryRow(&item)
+	//err = o.Raw(sql, chartInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId).First(&item).Error
 	return
 }
 
 // 同时删除指标和指标数据
 func DeleteExcelChartEdbAndData(excelInfoIds []int, chartInfoIds []int) (err error) {
-	o, err := orm.NewOrmUsingDB("data").Begin()
+	//o, err := orm.NewOrmUsingDB("data").Begin()
+	o := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
@@ -294,16 +325,20 @@ func DeleteExcelChartEdbAndData(excelInfoIds []int, chartInfoIds []int) (err err
 	}()
 	// 把对应的表格状态改成删除状态
 	//更新图表id
-	sql := `update excel_info set is_delete = 1, modify_time = ? where excel_info_id in (` + utils.GetOrmInReplace(len(excelInfoIds)) + `)`
-	_, err = o.Raw(sql, time.Now(), excelInfoIds).Exec()
+	//sql := `update excel_info set is_delete = 1, modify_time = ? where excel_info_id in (` + utils.GetOrmInReplace(len(excelInfoIds)) + `)`
+	sql := `update excel_info set is_delete = 1, modify_time = ? where excel_info_id in ?`
+	//_, err = o.Raw(sql, time.Now(), excelInfoIds).Exec()
+	err = o.Exec(sql, time.Now(), excelInfoIds).Error
 	if err != nil {
 		err = fmt.Errorf("更新图表id失败,AddChartEdbAndData: %v", err)
 		return
 	}
 	// 把删除图表状态
 	if len(chartInfoIds) > 0 {
-		sql := `DELETE FROM chart_info WHERE  chart_info_id in (` + utils.GetOrmInReplace(len(chartInfoIds)) + `)`
-		_, err = o.Raw(sql, chartInfoIds).Exec()
+		//sql := `DELETE FROM chart_info WHERE  chart_info_id in (` + utils.GetOrmInReplace(len(chartInfoIds)) + `)`
+		sql := `DELETE FROM chart_info WHERE  chart_info_id in ?`
+		//_, err = o.Raw(sql, chartInfoIds).Exec()
+		err = o.Exec(sql, chartInfoIds).Error
 		if err != nil {
 			err = fmt.Errorf("删除原先的指标失败:%v", err)
 			return
@@ -312,15 +347,19 @@ func DeleteExcelChartEdbAndData(excelInfoIds []int, chartInfoIds []int) (err err
 		// todo 如果加入到我的图库中,则删除我的图库中的数据
 	}
 	// 删除原先的绑定的指标
-	sql = `DELETE FROM excel_chart_edb WHERE  excel_info_id in (` + utils.GetOrmInReplace(len(excelInfoIds)) + `)`
-	_, err = o.Raw(sql, excelInfoIds).Exec()
+	//sql = `DELETE FROM excel_chart_edb WHERE  excel_info_id in (` + utils.GetOrmInReplace(len(excelInfoIds)) + `)`
+	//_, err = o.Raw(sql, excelInfoIds).Exec()
+	sql = `DELETE FROM excel_chart_edb WHERE  excel_info_id in ?`
+	err = o.Exec(sql, excelInfoIds).Error
 	if err != nil {
 		err = fmt.Errorf("删除原先的指标失败:%v", err)
 		return
 	}
 	// 删除指标数据
-	sql = `DELETE FROM excel_chart_data WHERE  excel_info_id in (` + utils.GetOrmInReplace(len(excelInfoIds)) + `)`
-	_, err = o.Raw(sql, excelInfoIds).Exec()
+	//sql = `DELETE FROM excel_chart_data WHERE  excel_info_id in (` + utils.GetOrmInReplace(len(excelInfoIds)) + `)`
+	//_, err = o.Raw(sql, excelInfoIds).Exec()
+	sql = `DELETE FROM excel_chart_data WHERE  excel_info_id in ?`
+	err = o.Exec(sql, excelInfoIds).Error
 	if err != nil {
 		err = fmt.Errorf("删除原先的指标失败:%v", err)
 		return
@@ -343,20 +382,20 @@ func DeleteBalanceExcelChartInfoAndData(chartInfoId int) (err error) {
 		}
 	}()
 
-	sql := ` DELETE FROM chart_info WHERE chart_info_id=? `
+	sql := ` DELETE FROM chart_info WHERE chart_info_id = ? `
 	_, err = to.Raw(sql, chartInfoId).Exec()
 	if err != nil {
 		err = fmt.Errorf("删除平衡表图表失败 %s", err.Error())
 		return
 	}
-	sql = ` DELETE FROM  excel_chart_edb WHERE chart_info_id=? `
+	sql = ` DELETE FROM  excel_chart_edb WHERE chart_info_id = ? `
 	_, err = to.Raw(sql, chartInfoId).Exec()
 	if err != nil {
 		err = fmt.Errorf("删除平衡表图表指标失败 %s", err.Error())
 		return
 	}
 	// 删除表格里的数据
-	sql = ` DELETE FROM  excel_chart_data WHERE chart_info_id=? `
+	sql = ` DELETE FROM  excel_chart_data WHERE chart_info_id = ? `
 	_, err = to.Raw(sql, chartInfoId).Exec()
 	if err != nil {
 		err = fmt.Errorf("删除平衡表图表指标失败 %s", err.Error())

+ 65 - 47
models/data_manage/excel/excel_classify.go

@@ -1,15 +1,16 @@
 package excel
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ExcelClassify excel表格分类
 type ExcelClassify struct {
-	ExcelClassifyId   int       `orm:"column(excel_classify_id);pk"`
+	//ExcelClassifyId   int       `orm:"column(excel_classify_id);pk"`
+	ExcelClassifyId   int       `gorm:"column:excel_classify_id;primaryKey"`
 	Source            int       `description:"表格来源,1:excel插件的表格,2:自定义表格,3:混合表格,4:自定义分析,默认:1"`
 	ExcelClassifyName string    `description:"分类名称"`
 	ParentId          int       `description:"父级id"`
@@ -26,28 +27,30 @@ type ExcelClassify struct {
 
 // AddExcelClassify 添加excel分类
 func AddExcelClassify(item *ExcelClassify) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.ExcelClassifyId = int(lastId)
-
+	//o := orm.NewOrmUsingDB("data")
+	//lastId, err = o.Insert(item)
+	//if err != nil {
+	//	return
+	//}
+	//item.ExcelClassifyId = int(lastId)
+	err = global.DbMap[utils.DbNameIndex].Create(&item).Error
 	return
 }
 
 // GetExcelClassifyCount 获取同级分类下存在同名分类的数量
 func GetExcelClassifyCount(ExcelClassifyName string, parentId, source int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT COUNT(1) AS count FROM excel_classify WHERE parent_id=? AND source = ? AND excel_classify_name=? AND is_delete=0 `
-	err = o.Raw(sql, parentId, source, ExcelClassifyName).QueryRow(&count)
+	//err = o.Raw(sql, parentId, source, ExcelClassifyName).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, parentId, source, ExcelClassifyName).Scan(&count).Error
 	return
 }
 
 func GetExcelClassifyById(classifyId int) (item *ExcelClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM excel_classify WHERE excel_classify_id=? AND is_delete=0 `
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).First(&item).Error
 	return
 }
 
@@ -63,9 +66,11 @@ func GetExcelClassifyByIdList(classifyIdList []int) (items []*ExcelClassify, err
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	sql := `SELECT * FROM excel_classify WHERE excel_classify_id in (` + utils.GetOrmInReplace(num) + `) AND is_delete=0 `
-	_, err = o.Raw(sql, classifyIdList).QueryRows(&items)
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `SELECT * FROM excel_classify WHERE excel_classify_id in (` + utils.GetOrmInReplace(num) + `) AND is_delete=0 `
+	//_, err = o.Raw(sql, classifyIdList).QueryRows(&items)
+	sql := `SELECT * FROM excel_classify WHERE excel_classify_id in ? AND is_delete=0 `
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyIdList).Find(&items).Error
 	return
 }
 
@@ -77,44 +82,49 @@ func GetExcelClassifyByIdList(classifyIdList []int) (items []*ExcelClassify, err
 // @return items []*ExcelClassify
 // @return err error
 func GetExcelClassifyBySourceAndIsJoinPermission(source, isJoinPermission int) (items []*ExcelClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM excel_classify WHERE source = ? AND is_join_permission = ? `
-	_, err = o.Raw(sql, source, isJoinPermission).QueryRows(&items)
-
+	//_, err = o.Raw(sql, source, isJoinPermission).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, source, isJoinPermission).Find(&items).Error
 	return
 }
 
 func GetChildClassifyById(classifyId int) (items []*ExcelClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM excel_classify WHERE parent_id=? AND is_delete=0 `
-	_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	//_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).Find(&items).Error
 	return
 }
 
 func GetExcelClassifyByParentId(parentId, source int) (items []*ExcelClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_classify WHERE parent_id=? AND source = ? AND is_delete=0 order by sort asc,excel_classify_id asc`
-	_, err = o.Raw(sql, parentId, source).QueryRows(&items)
+	//_, err = o.Raw(sql, parentId, source).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, parentId, source).Find(&items).Error
 	return
 }
 
 func GetExcelClassifyBySource(source int) (items []*ExcelClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_classify WHERE  source = ? AND is_delete=0 order by sort asc,excel_classify_id asc`
-	_, err = o.Raw(sql, source).QueryRows(&items)
+	//_, err = o.Raw(sql, source).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, source).Find(&items).Error
 	return
 }
 
 func GetExcelClassifyBySourceOrderByLevel(source int) (items []*ExcelClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_classify WHERE  source = ? AND is_delete=0 order by level asc, sort asc,excel_classify_id asc`
-	_, err = o.Raw(sql, source).QueryRows(&items)
+	//_, err = o.Raw(sql, source).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, source).Find(&items).Error
 	return
 }
 func GetExcelClassifyAll() (items []*ExcelClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_classify WHERE parent_id<>0 AND is_delete=0 order by sort asc,excel_classify_id asc`
-	_, err = o.Raw(sql).QueryRows(&items)
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&items).Error
 	return
 }
 
@@ -135,58 +145,64 @@ type ExcelClassifyItems struct {
 }
 
 func GetExcelClassifyByCondition(condition string, pars []interface{}) (item *ExcelClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_classify WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 // GetNextExcelClassifyByCondition 获取下一个分类
 func GetNextExcelClassifyByCondition(condition string, pars []interface{}) (item *ExcelClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_classify WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += " ORDER BY sort asc , create_time ASC LIMIT 1 "
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 // GetFirstExcelClassifyByParentId 获取当前父级图表分类下的排序第一条的数据
 func GetFirstExcelClassifyByParentId(parentId int) (item *ExcelClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_classify WHERE parent_id=? AND is_delete=0 order by sort asc,excel_classify_id asc limit 1`
-	err = o.Raw(sql, parentId).QueryRow(&item)
+	//err = o.Raw(sql, parentId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, parentId).First(&item).Error
 	return
 }
 
 // UpdateExcelClassifySortByParentId 根据图表父类id更新排序
 func UpdateExcelClassifySortByParentId(parentId, classifyId, nowSort int, updateSort string, source int) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` update excel_classify set sort = ` + updateSort + ` WHERE parent_id=? and source=? and sort > ? AND is_delete=0 `
 	if classifyId > 0 {
 		sql += ` or ( excel_classify_id > ` + fmt.Sprint(classifyId) + ` and sort= ` + fmt.Sprint(nowSort) + `)`
 	}
-	_, err = o.Raw(sql, parentId, source, nowSort).Exec()
+	//_, err = o.Raw(sql, parentId, source, nowSort).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, parentId, source, nowSort).Error
 	return
 }
 
 // Update 更新图表分类基础信息
 func (ExcelClassify *ExcelClassify) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(ExcelClassify, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(ExcelClassify, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&ExcelClassify).Select(cols).Updates(&ExcelClassify).Error
 	return
 }
 
 // GetExcelClassifyMaxSort 获取图表分类下最大的排序数
 func GetExcelClassifyMaxSort(parentId int, source int) (sort int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT Max(sort) AS sort FROM excel_classify WHERE parent_id=? AND source = ? AND is_delete=0 `
-	err = o.Raw(sql, parentId, source).QueryRow(&sort)
+	//err = o.Raw(sql, parentId, source).QueryRow(&sort)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, parentId, source).Scan(&sort).Error
 	return
 }
 
@@ -197,9 +213,10 @@ type ExcelClassifyView struct {
 }
 
 func GetExcelClassifyViewById(classifyId int) (item *ExcelClassifyView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM excel_classify WHERE excel_classify_id=? AND is_delete=0 `
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).First(&item).Error
 	return
 }
 
@@ -220,9 +237,10 @@ func GetClassifyByIdList(classifyIdList []int) (items []*ExcelClassify, err erro
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	sql := `SELECT * FROM excel_classify WHERE excel_classify_id in (` + utils.GetOrmInReplace(num) + `) AND is_delete=0 `
-	_, err = o.Raw(sql, classifyIdList).QueryRows(&items)
-
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `SELECT * FROM excel_classify WHERE excel_classify_id in (` + utils.GetOrmInReplace(num) + `) AND is_delete=0 `
+	sql := `SELECT * FROM excel_classify WHERE excel_classify_id in ? AND is_delete=0 `
+	//_, err = o.Raw(sql, classifyIdList).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyIdList).Find(&items).Error
 	return
 }

+ 14 - 10
models/data_manage/excel/excel_draft.go

@@ -1,13 +1,15 @@
 package excel
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 // ExcelDraft 沙盘推演草稿表
 type ExcelDraft struct {
-	ExcelDraftId int       `orm:"column(excel_draft_id);pk" description:"excel表格草稿记录id"`
+	//ExcelDraftId int       `orm:"column(excel_draft_id);pk" description:"excel表格草稿记录id"`
+	ExcelDraftId int       `gorm:"column:excel_draft_id;primaryKey" description:"excel表格草稿记录id"`
 	ExcelId      int       `description:"excel表格id"`
 	Name         string    `description:"excel表格名称"`
 	Content      string    `description:"excel数据"`
@@ -18,20 +20,22 @@ type ExcelDraft struct {
 
 // AddExcelDraft 添加一个新的excel表格草稿
 func AddExcelDraft(excelDraft *ExcelDraft) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	// 新增草稿
-	id, err := o.Insert(excelDraft)
-	if err != nil {
-		return
-	}
-	excelDraft.ExcelDraftId = int(id)
+	//id, err := o.Insert(excelDraft)
+	//if err != nil {
+	//	return
+	//}
+	//excelDraft.ExcelDraftId = int(id)
+	err = global.DbMap[utils.DbNameIndex].Create(&excelDraft).Error
 	return
 }
 
 // GetLastExcelDraftById 根据沙盘id获取最后一条沙盘草稿详情
 func GetLastExcelDraftById(excelId int) (excelDraft *ExcelDraft, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `select * from excel_draft where excel_id = ? order by excel_draft_id desc `
-	err = o.Raw(sql, excelId).QueryRow(&excelDraft)
+	//err = o.Raw(sql, excelId).QueryRow(&excelDraft)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelId).First(&excelDraft).Error
 	return
 }

+ 30 - 22
models/data_manage/excel/excel_edb_mapping.go

@@ -1,15 +1,16 @@
 package excel
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ExcelEdbMapping excel与指标的关系表
 type ExcelEdbMapping struct {
-	ExcelEdbMappingId int       `orm:"column(excel_edb_mapping_id);pk"`
+	//ExcelEdbMappingId int       `orm:"column(excel_edb_mapping_id);pk"`
+	ExcelEdbMappingId int       `gorm:"column:excel_edb_mapping_id;primaryKey"`
 	ExcelInfoId       int       `description:"excel的id"`
 	Source            int       `description:"表格来源,1:excel插件的表格,2:自定义表格,3:混合表格,4:自定义分析,默认:1"`
 	EdbInfoId         int       `description:"计算指标id"`
@@ -19,35 +20,38 @@ type ExcelEdbMapping struct {
 
 // AddExcelEdbMappingMulti 批量添加excel与指标的关系
 func AddExcelEdbMappingMulti(items []*ExcelEdbMapping) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(len(items), items)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DbMap[utils.DbNameIndex].CreateInBatches(items, len(items)).Error
 	return
 }
 
 // Add 添加excel与指标的关系
 func (e *ExcelEdbMapping) Add() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Insert(e)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Insert(e)
+	err = global.DbMap[utils.DbNameIndex].Create(&e).Error
 	return
 }
 
 // GetExcelEdbMappingByEdbInfoId 根据指标id获取配置关系
 func GetExcelEdbMappingByEdbInfoId(edbInfoId int) (item *ExcelEdbMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *  FROM excel_edb_mapping WHERE 1=1 AND edb_info_id = ? `
 
-	err = o.Raw(sql, edbInfoId).QueryRow(&item)
+	//err = o.Raw(sql, edbInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).First(&item).Error
 	return
 }
 
 // GetExcelEdbMappingByExcelInfoId 根据excel的id获取配置关系
 func GetExcelEdbMappingByExcelInfoId(excelInfoId int) (items []*ExcelEdbMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *  FROM excel_edb_mapping AS a 
            join edb_info as b on a.edb_info_id = b.edb_info_id
            WHERE 1=1 AND a.excel_info_id = ? `
-	_, err = o.Raw(sql, excelInfoId).QueryRows(&items)
-
+	//_, err = o.Raw(sql, excelInfoId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).Find(&items).Error
 	return
 }
 
@@ -71,30 +75,33 @@ type CalculateFormula struct {
 
 // GetAllExcelEdbMappingItemByExcelInfoId 根据品种id获取所有的指标结果集
 func GetAllExcelEdbMappingItemByExcelInfoId(excelInfoId int) (items []*ExcelEdbMappingItem, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT a.edb_info_id,a.unique_code,a.edb_name,a.classify_id,a.frequency,a.unit,calculate_formula FROM edb_info AS a 
          JOIN excel_edb_mapping AS b ON a.edb_info_id=b.edb_info_id 
          WHERE b.excel_info_id = ? ORDER BY b.excel_edb_mapping_id ASC `
-	_, err = o.Raw(sql, excelInfoId).QueryRows(&items)
+	//_, err = o.Raw(sql, excelInfoId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).Find(&items).Error
 	return
 }
 
 // GetNoCustomAnalysisExcelEdbMappingCount 根据指标id获取非自定义分析的关联关系
 func GetNoCustomAnalysisExcelEdbMappingCount(edbInfoId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT COUNT(1) AS count FROM excel_edb_mapping a 
                           join excel_info b on a.excel_info_id=b.excel_info_id
                           WHERE edb_info_id=? AND a.source != 4 AND b.is_delete = 0`
-	err = o.Raw(sql, edbInfoId).QueryRow(&count)
+	//err = o.Raw(sql, edbInfoId).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).Scan(&count).Error
 	return
 }
 
 // GetAllExcelEdbMappingByExcelInfoId 根据excel的id获取所有的指标
 func GetAllExcelEdbMappingByExcelInfoId(excelInfoId int) (items []*ExcelEdbMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT a.* FROM  excel_edb_mapping a
          WHERE a.excel_info_id = ? ORDER BY a.excel_edb_mapping_id ASC `
-	_, err = o.Raw(sql, excelInfoId).QueryRows(&items)
+	//_, err = o.Raw(sql, excelInfoId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).Find(&items).Error
 	return
 }
 
@@ -105,16 +112,16 @@ func GetAllExcelEdbMappingByExcelInfoId(excelInfoId int) (items []*ExcelEdbMappi
 // @param excelInfoId int
 // @return err error
 func DeleteCustomAnalysisExcelEdbMappingByEdbInfoId(excelInfoId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `DELETE FROM excel_edb_mapping WHERE source = ? AND edb_info_id = ? LIMIT 1`
-	_, err = o.Raw(sql, utils.CUSTOM_ANALYSIS_TABLE, excelInfoId).Exec()
-
+	//_, err = o.Raw(sql, utils.CUSTOM_ANALYSIS_TABLE, excelInfoId).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, utils.CUSTOM_ANALYSIS_TABLE, excelInfoId).Error
 	return
 }
 
 // GetExcelEdbMappingItemByExcelInfoIdOrKeyword 根据表格ID或关键词获取指标
 func GetExcelEdbMappingItemByExcelInfoIdOrKeyword(excelInfoId int, keyword string) (items []*ExcelEdbMappingItem, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	cond := `b.excel_info_id = ?`
 	pars := make([]interface{}, 0)
 	pars = append(pars, excelInfoId)
@@ -137,6 +144,7 @@ func GetExcelEdbMappingItemByExcelInfoIdOrKeyword(excelInfoId int, keyword strin
 			%s
 		ORDER BY
 			b.excel_edb_mapping_id ASC`, cond)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }

+ 153 - 95
models/data_manage/excel/excel_info.go

@@ -1,15 +1,16 @@
 package excel
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ExcelInfo excel表格详情表
 type ExcelInfo struct {
-	ExcelInfoId        int       `orm:"column(excel_info_id);pk"`
+	//ExcelInfoId        int       `orm:"column(excel_info_id);pk"`
+	ExcelInfoId        int       `gorm:"column:excel_info_id;primaryKey"`
 	Source             int       `description:"表格来源,1:excel插件的表格,2:自定义表格,3:混合表格,4:自定义分析,默认:1"`
 	ExcelType          int       `description:"表格类型,1:指标列,2:日期列,默认:1"`
 	ExcelName          string    `description:"表格名称"`
@@ -34,13 +35,15 @@ type ExcelInfo struct {
 
 // Update 更新 excel表格基础信息
 func (excelInfo *ExcelInfo) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(excelInfo, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(excelInfo, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&excelInfo).Select(cols).Updates(&excelInfo).Error
 	return
 }
 
 type MyExcelInfoList struct {
-	ExcelInfoId      int       `orm:"column(excel_info_id);pk"`
+	//ExcelInfoId      int       `orm:"column(excel_info_id);pk"`
+	ExcelInfoId      int       `gorm:"column:excel_info_id;primaryKey"`
 	Source           int       `description:"表格来源,1:excel插件的表格,2:自定义表格,默认:1"`
 	ExcelType        int       `description:"表格类型,1:指标列,2:日期列,默认:1"`
 	ExcelName        string    `description:"表格名称"`
@@ -59,7 +62,8 @@ type MyExcelInfoList struct {
 
 // AddExcelInfo 新增表格
 func AddExcelInfo(excelInfo *ExcelInfo, excelEdbMappingList []*ExcelEdbMapping) (err error) {
-	o, err := orm.NewOrmUsingDB("data").Begin()
+	//o, err := orm.NewOrmUsingDB("data").Begin()
+	o := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
@@ -71,12 +75,15 @@ func AddExcelInfo(excelInfo *ExcelInfo, excelEdbMappingList []*ExcelEdbMapping)
 		}
 	}()
 	// 表格信息入库
-	lastId, err := o.Insert(excelInfo)
+	//lastId, err := o.Insert(excelInfo)
+	//if err != nil {
+	//	return
+	//}
+	//excelInfo.ExcelInfoId = int(lastId)
+	err = o.Create(&excelInfo).Error
 	if err != nil {
 		return
 	}
-	excelInfo.ExcelInfoId = int(lastId)
-
 	// excel与指标的关联关系
 	dataNum := len(excelEdbMappingList)
 	if dataNum > 0 {
@@ -84,7 +91,8 @@ func AddExcelInfo(excelInfo *ExcelInfo, excelEdbMappingList []*ExcelEdbMapping)
 			v.ExcelInfoId = excelInfo.ExcelInfoId
 			excelEdbMappingList[k] = v
 		}
-		_, err = o.InsertMulti(dataNum, excelEdbMappingList)
+		//_, err = o.InsertMulti(dataNum, excelEdbMappingList)
+		err = o.CreateInBatches(excelEdbMappingList, dataNum).Error
 	}
 
 	return
@@ -92,7 +100,8 @@ func AddExcelInfo(excelInfo *ExcelInfo, excelEdbMappingList []*ExcelEdbMapping)
 
 // EditExcelInfo 编辑表格
 func EditExcelInfo(excelInfo *ExcelInfo, updateExcelInfoParams []string, excelEdbMappingList []*ExcelEdbMapping) (err error) {
-	o, err := orm.NewOrmUsingDB("data").Begin()
+	//o, err := orm.NewOrmUsingDB("data").Begin()
+	o := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
@@ -105,14 +114,16 @@ func EditExcelInfo(excelInfo *ExcelInfo, updateExcelInfoParams []string, excelEd
 	}()
 
 	// ETA表格信息变更
-	_, err = o.Update(excelInfo, updateExcelInfoParams...)
+	//_, err = o.Update(excelInfo, updateExcelInfoParams...)
+	err = o.Model(&excelInfo).Select(updateExcelInfoParams).Updates(&excelInfo).Error
 	if err != nil {
 		return
 	}
 
 	// 删除关系表
 	sql := `DELETE FROM excel_edb_mapping WHERE excel_info_id=? `
-	_, err = o.Raw(sql, excelInfo.ExcelInfoId).Exec()
+	//_, err = o.Raw(sql, excelInfo.ExcelInfoId).Exec()
+	err = o.Exec(sql, excelInfo.ExcelInfoId).Error
 
 	// excel与指标的关联关系
 	dataNum := len(excelEdbMappingList)
@@ -121,7 +132,8 @@ func EditExcelInfo(excelInfo *ExcelInfo, updateExcelInfoParams []string, excelEd
 			v.ExcelInfoId = excelInfo.ExcelInfoId
 			excelEdbMappingList[k] = v
 		}
-		_, err = o.InsertMulti(dataNum, excelEdbMappingList)
+		//_, err = o.InsertMulti(dataNum, excelEdbMappingList)
+		err = o.CreateInBatches(excelEdbMappingList, dataNum).Error
 	}
 
 	return
@@ -129,17 +141,18 @@ func EditExcelInfo(excelInfo *ExcelInfo, updateExcelInfoParams []string, excelEd
 
 // GetExcelInfoAll 获取所有表格列表,用于分类展示
 func GetExcelInfoAll() (items []*ExcelClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT excel_info_id,excel_classify_id,excel_name AS excel_classify_name,
              unique_code,sys_user_id,sys_user_real_name,is_join_permission
             FROM excel_info where is_delete=0 ORDER BY sort asc,create_time ASC `
-	_, err = o.Raw(sql).QueryRows(&items)
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&items).Error
 	return
 }
 
 // GetNoContentExcelInfoAll 获取不含content的表格列表 用于分类展示
 func GetNoContentExcelInfoAll(source, userId int) (items []*ExcelClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT excel_info_id,excel_classify_id,excel_name AS excel_classify_name,
              unique_code,sys_user_id,sys_user_real_name,sort,is_join_permission
             FROM excel_info where is_delete=0 AND source = ?  `
@@ -151,53 +164,59 @@ func GetNoContentExcelInfoAll(source, userId int) (items []*ExcelClassifyItems,
 		pars = append(pars, userId)
 	}
 	sql += `  ORDER BY sort asc,excel_info_id desc `
-	_, err = o.Raw(sql, pars...).QueryRows(&items)
+	//_, err = o.Raw(sql, pars...).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 // GetAllExcelInfoBySource 根据来源获取包含content的表格列表
 func GetAllExcelInfoBySource(source int) (items []*ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info where is_delete=0  AND source = ?  ORDER BY sort asc,create_time desc `
-	_, err = o.Raw(sql, source).QueryRows(&items)
+	//_, err = o.Raw(sql, source).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, source).Find(&items).Error
 	return
 }
 
 // GetExcelInfoById 根据id 获取eta表格详情
 func GetExcelInfoById(excelInfoId int) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE excel_info_id=? AND is_delete=0 `
-	err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	//err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).First(&item).Error
 	return
 }
 
 // GetExcelInfoByUnicode 编码获取表格
 func GetExcelInfoByUnicode(unicode string) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE unique_code = ? AND is_delete = 0 `
-	err = o.Raw(sql, unicode).QueryRow(&item)
+	//err = o.Raw(sql, unicode).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, unicode).First(&item).Error
 	return
 }
 
 func GetExcelInfoViewById(excelInfoId int) (item *ExcelInfoView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE excel_info_id=? AND is_delete=0 `
-	err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	//err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).First(&item).Error
 	return
 }
 
 func GetExcelInfoCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT COUNT(1) AS count FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
 func GetNoContentExcelInfoListByCondition(condition string, pars []interface{}, startSize, pageSize int) (items []*ExcelClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT excel_info_id,excel_classify_id,excel_name AS excel_classify_name,
              unique_code,sys_user_id,sys_user_real_name,sort,is_join_permission FROM excel_info WHERE 1=1 `
 	if condition != "" {
@@ -205,51 +224,57 @@ func GetNoContentExcelInfoListByCondition(condition string, pars []interface{},
 	}
 
 	sql += ` AND is_delete=0 ORDER BY excel_info_id DESC LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func GetExcelInfoByCondition(condition string, pars []interface{}) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 // GetNextExcelInfoByCondition 根据条件获取下一个表格
 func GetNextExcelInfoByCondition(condition string, pars []interface{}) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += " ORDER BY sort asc , create_time desc LIMIT 1 "
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 // GetNextExcelInfo 根据分类id获取下一个excel表格
 func GetNextExcelInfo(classifyId, classifySort, source int) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT b.* FROM excel_classify AS a
 			INNER JOIN excel_info AS b ON a.excel_classify_id=b.excel_classify_id
 			WHERE (a.sort>? OR (a.sort=? and a.excel_classify_id>?) ) AND a.is_delete=0 AND b.is_delete=0
 			AND a.source = ? AND b.source = ? 
 			ORDER BY a.sort ASC,b.sort asc,b.create_time desc
 			LIMIT 1 `
-	err = o.Raw(sql, classifySort, classifySort, classifyId, source, source).QueryRow(&item)
+	//err = o.Raw(sql, classifySort, classifySort, classifyId, source, source).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifySort, classifySort, classifyId, source, source).First(&item).Error
 	return
 }
 
 // EditExcelInfoImage 修改excel表格的图片
 func EditExcelInfoImage(excelInfoId int, imageUrl string) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 
 	sql := ` UPDATE  excel_info SET excel_image=?, modify_time = NOW() WHERE excel_info_id = ? AND is_delete=0 `
-	_, err = o.Raw(sql, imageUrl, excelInfoId).Exec()
+	//_, err = o.Raw(sql, imageUrl, excelInfoId).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, imageUrl, excelInfoId).Error
 	if err != nil {
 		fmt.Println("EditExcelInfoImage Err:", err.Error())
 		return err
@@ -260,35 +285,39 @@ func EditExcelInfoImage(excelInfoId int, imageUrl string) (err error) {
 
 // GetExcelInfoByUniqueCode 根据unique_code来获取excel表格详情
 func GetExcelInfoByUniqueCode(uniqueCode string) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE unique_code=? AND is_delete=0 `
-	err = o.Raw(sql, uniqueCode).QueryRow(&item)
+	//err = o.Raw(sql, uniqueCode).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, uniqueCode).First(&item).Error
 	return
 }
 
 // GetFirstExcelInfoByClassifyId 获取当前分类下,且排序数相同 的排序第一条的数据
 func GetFirstExcelInfoByClassifyId(classifyId int) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE excel_classify_id=? AND is_delete=0 order by sort asc,excel_info_id desc limit 1`
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).First(&item).Error
 	return
 }
 
 // UpdateExcelInfoSortByClassifyId 根据表格id更新排序
 func UpdateExcelInfoSortByClassifyId(classifyId, nowSort, prevExcelInfoId int, updateSort string, source int) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` update excel_info set sort = ` + updateSort + ` WHERE excel_classify_id=? AND source=? AND is_delete=0 AND ( sort > ? `
 	// todo 前一个兄弟节点后移
 	if prevExcelInfoId > 0 {
 		sql += ` or (excel_info_id < ` + fmt.Sprint(prevExcelInfoId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
 	}
 	sql += `)`
-	_, err = o.Raw(sql, classifyId, source, nowSort).Exec()
+	//_, err = o.Raw(sql, classifyId, source, nowSort).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, classifyId, source, nowSort).Error
 	return
 }
 
 type ExcelInfoView struct {
-	ExcelInfoId       int    `orm:"column(excel_info_id);pk"`
+	//ExcelInfoId       int    `orm:"column(excel_info_id);pk"`
+	ExcelInfoId       int    `gorm:"column:excel_info_id;primaryKey"`
 	ExcelName         string `description:"来源名称"`
 	ExcelClassifyId   int    `description:"表格分类id"`
 	ExcelClassifyName string `description:"表格名称"`
@@ -321,15 +350,16 @@ type ExcelInfoView struct {
 
 // GetExcelInfoByClassifyIdAndName 根据分类id和表格名获取表格信息
 func GetExcelInfoByClassifyIdAndName(classifyId int, excelName string) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE excel_classify_id = ? and excel_name=? AND is_delete=0 `
-	err = o.Raw(sql, classifyId, excelName).QueryRow(&item)
+	//err = o.Raw(sql, classifyId, excelName).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId, excelName).First(&item).Error
 	return
 }
 
 // GetNoContentExcelListByCondition 获取没有content的excel表格列表数据
 func GetNoContentExcelListByCondition(condition string, pars []interface{}, startSize, pageSize int) (item []*MyExcelInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission
 FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
@@ -337,76 +367,84 @@ FROM excel_info WHERE 1=1 AND is_delete=0 `
 	}
 	//sql += " ORDER BY sort ASC,chart_info_id DESC LIMIT ?,? "
 	sql += " ORDER BY create_time DESC LIMIT ?,? "
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	pars = append(pars, pageSize, startSize)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&item).Error
 	return
 }
 
 func GetExcelListCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT COUNT(1) AS count FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
 // GetExcelViewInfoByExcelInfoId 根据excelInfoId 获取ETA表格详情
 func GetExcelViewInfoByExcelInfoId(excelInfoId int) (item *MyExcelInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission FROM excel_info WHERE excel_info_id = ? AND is_delete=0 `
-	err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	//err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).First(&item).Error
 	return
 }
 
 // GetExcelInfoCountByClassifyId 根据分类id获取名下表格数量
 func GetExcelInfoCountByClassifyId(classifyId int) (total int64, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT count(1) total FROM excel_info WHERE excel_classify_id = ? AND is_delete=0 `
-	err = o.Raw(sql, classifyId).QueryRow(&total)
+	//err = o.Raw(sql, classifyId).QueryRow(&total)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).Count(&total).Error
 	return
 }
 
 // UpdateExcelInfoClassifyId 更改表格分类
 func UpdateExcelInfoClassifyId(classifyId, excelInfoId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` update excel_info set excel_classify_id = ? WHERE excel_info_id=? `
-	_, err = o.Raw(sql, classifyId, excelInfoId).Exec()
-
+	//_, err = o.Raw(sql, classifyId, excelInfoId).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, classifyId, excelInfoId).Error
 	return
 }
 
 // GetNoContentExcelInfoByName 根据名称 获取eta表格详情
 func GetNoContentExcelInfoByName(excelName string, source int) (item *MyExcelInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission 
  FROM excel_info WHERE excel_name = ? AND source = ? AND is_delete=0 `
-	err = o.Raw(sql, excelName, source).QueryRow(&item)
-
+	//err = o.Raw(sql, excelName, source).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelName, source).First(&item).Error
 	return
 }
 
 // GetNoContentExcelInfoByUniqueCode 根据unique_code来获取excel表格详情
 func GetNoContentExcelInfoByUniqueCode(uniqueCode string) (item *MyExcelInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission 
  FROM excel_info WHERE unique_code=? AND is_delete=0 `
-	err = o.Raw(sql, uniqueCode).QueryRow(&item)
+	//err = o.Raw(sql, uniqueCode).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, uniqueCode).First(&item).Error
 	return
 }
 
 // GetNoContentExcelInfoByExcelId 根据表格id来获取excel表格详情
 func GetNoContentExcelInfoByExcelId(excelInfoId int) (item *MyExcelInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission 
  FROM excel_info WHERE excel_info_id=? AND is_delete=0 `
-	err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	//err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).First(&item).Error
 	return
 }
 
 // AddExcelInfoAndSheet 新增excel
 func AddExcelInfoAndSheet(excelInfo *ExcelInfo, sheetParamsList []AddExcelSheetParams) (err error) {
-	o, err := orm.NewOrmUsingDB("data").Begin()
+	//o, err := orm.NewOrmUsingDB("data").Begin()
+	o := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
@@ -419,11 +457,15 @@ func AddExcelInfoAndSheet(excelInfo *ExcelInfo, sheetParamsList []AddExcelSheetP
 	}()
 
 	// 表格信息入库
-	lastId, err := o.Insert(excelInfo)
+	//lastId, err := o.Insert(excelInfo)
+	//if err != nil {
+	//	return
+	//}
+	//excelInfo.ExcelInfoId = int(lastId)
+	err = o.Create(&excelInfo).Error
 	if err != nil {
 		return
 	}
-	excelInfo.ExcelInfoId = int(lastId)
 
 	// sheet信息入库
 	for _, sheetInfo := range sheetParamsList {
@@ -442,12 +484,13 @@ func AddExcelInfoAndSheet(excelInfo *ExcelInfo, sheetParamsList []AddExcelSheetP
 			ModifyTime:   time.Now(),
 			CreateTime:   time.Now(),
 		}
-		sheetId, tmpErr := o.Insert(excelSheetInfo)
+		//sheetId, tmpErr := o.Insert(excelSheetInfo)
+		tmpErr := o.Create(&excelSheetInfo).Error
 		if tmpErr != nil {
 			err = tmpErr
 			return
 		}
-		excelSheetInfo.ExcelSheetId = int(sheetId)
+		//excelSheetInfo.ExcelSheetId = int(sheetId)
 
 		// data信息入库
 		if dataNum > 0 {
@@ -455,7 +498,8 @@ func AddExcelInfoAndSheet(excelInfo *ExcelInfo, sheetParamsList []AddExcelSheetP
 				sheetInfo.DataList[k].ExcelSheetId = excelSheetInfo.ExcelSheetId
 				sheetInfo.DataList[k].ExcelInfoId = excelSheetInfo.ExcelInfoId
 			}
-			_, tmpErr = o.InsertMulti(dataNum, sheetInfo.DataList)
+			//_, tmpErr = o.InsertMulti(dataNum, sheetInfo.DataList)
+			tmpErr = o.CreateInBatches(sheetInfo.DataList, dataNum).Error
 			if tmpErr != nil {
 				err = tmpErr
 				return
@@ -468,7 +512,8 @@ func AddExcelInfoAndSheet(excelInfo *ExcelInfo, sheetParamsList []AddExcelSheetP
 
 // SaveExcelInfoAndSheet 编辑保存
 func SaveExcelInfoAndSheet(excelInfo *ExcelInfo, updateExcelInfoParam []string, sheetParamsList []AddExcelSheetParams) (err error) {
-	o, err := orm.NewOrmUsingDB("data").Begin()
+	//o, err := orm.NewOrmUsingDB("data").Begin()
+	o := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
@@ -481,21 +526,24 @@ func SaveExcelInfoAndSheet(excelInfo *ExcelInfo, updateExcelInfoParam []string,
 	}()
 
 	// 表格信息入库
-	_, err = o.Update(excelInfo, updateExcelInfoParam...)
+	//_, err = o.Update(excelInfo, updateExcelInfoParam...)
+	err = o.Model(&excelInfo).Select(updateExcelInfoParam).Updates(&excelInfo).Error
 	if err != nil {
 		return
 	}
 
 	// 先删除历史的sheet信息
 	sql := `DELETE FROM excel_sheet WHERE excel_info_id = ?`
-	_, err = o.Raw(sql, excelInfo.ExcelInfoId).Exec()
+	//_, err = o.Raw(sql, excelInfo.ExcelInfoId).Exec()
+	err = o.Exec(sql, excelInfo.ExcelInfoId).Error
 	if err != nil {
 		return
 	}
 
 	// 再删除历史sheet中的cell data信息
 	sql = `DELETE FROM excel_sheet_data WHERE excel_info_id = ?`
-	_, err = o.Raw(sql, excelInfo.ExcelInfoId).Exec()
+	//_, err = o.Raw(sql, excelInfo.ExcelInfoId).Exec()
+	err = o.Exec(sql, excelInfo.ExcelInfoId).Error
 	if err != nil {
 		return
 	}
@@ -517,12 +565,13 @@ func SaveExcelInfoAndSheet(excelInfo *ExcelInfo, updateExcelInfoParam []string,
 			ModifyTime:   time.Now(),
 			CreateTime:   time.Now(),
 		}
-		sheetId, tmpErr := o.Insert(excelSheetInfo)
+		//sheetId, tmpErr := o.Insert(excelSheetInfo)
+		tmpErr := o.Create(&excelSheetInfo).Error
 		if tmpErr != nil {
 			err = tmpErr
 			return
 		}
-		excelSheetInfo.ExcelSheetId = int(sheetId)
+		//excelSheetInfo.ExcelSheetId = int(sheetId)
 
 		// data信息入库
 		if dataNum > 0 {
@@ -530,7 +579,8 @@ func SaveExcelInfoAndSheet(excelInfo *ExcelInfo, updateExcelInfoParam []string,
 				sheetInfo.DataList[k].ExcelSheetId = excelSheetInfo.ExcelSheetId
 				sheetInfo.DataList[k].ExcelInfoId = excelSheetInfo.ExcelInfoId
 			}
-			_, tmpErr = o.InsertMulti(dataNum, sheetInfo.DataList)
+			//_, tmpErr = o.InsertMulti(dataNum, sheetInfo.DataList)
+			tmpErr = o.CreateInBatches(sheetInfo.DataList, dataNum).Error
 			if tmpErr != nil {
 				err = tmpErr
 				return
@@ -551,9 +601,10 @@ type BatchRefreshExcelReq struct {
 
 // GetExcelMaxSortByClassifyId 获取当前分类下,且排序数最大的excel
 func GetExcelMaxSortByClassifyId(classifyId int, source int) (sort int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT Max(sort) AS sort FROM excel_info WHERE excel_classify_id=? AND source = ? AND is_delete=0 order by sort desc,excel_info_id desc limit 1`
-	err = o.Raw(sql, classifyId, source).QueryRow(&sort)
+	//err = o.Raw(sql, classifyId, source).QueryRow(&sort)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId, source).Scan(&sort).Error
 	return
 }
 
@@ -567,10 +618,11 @@ func GetNoContentExcelListByExcelInfoIdList(excelInfoIdList []string) (items []*
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM excel_info WHERE excel_info_id in (` + utils.GetOrmInReplace(num) + `) order by excel_info_id DESC `
-	_, err = o.Raw(sql, excelInfoIdList).QueryRows(&items)
-
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT * FROM excel_info WHERE excel_info_id in (` + utils.GetOrmInReplace(num) + `) order by excel_info_id DESC `
+	//_, err = o.Raw(sql, excelInfoIdList).QueryRows(&items)
+	sql := ` SELECT * FROM excel_info WHERE excel_info_id in ? order by excel_info_id DESC `
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoIdList).Find(&items).Error
 	return
 }
 
@@ -584,10 +636,11 @@ func GetNoContentExcelListByUserId(userIdList []int) (items []*MyExcelInfoList,
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM excel_info WHERE excel_info_id in (` + utils.GetOrmInReplace(num) + `) order by excel_info_id DESC `
-	_, err = o.Raw(sql, userIdList).QueryRows(&items)
-
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT * FROM excel_info WHERE excel_info_id in (` + utils.GetOrmInReplace(num) + `) order by excel_info_id DESC `
+	//_, err = o.Raw(sql, userIdList).QueryRows(&items)
+	sql := ` SELECT * FROM excel_info WHERE excel_info_id in ? order by excel_info_id DESC `
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, userIdList).Find(&items).Error
 	return
 }
 
@@ -604,9 +657,11 @@ func ModifyExcelInfoUserIdByCodeList(excelIdList []string, userId int, userName
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	sql := `UPDATE excel_info SET sys_user_id=?,sys_user_real_name=? WHERE excel_info_id in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = o.Raw(sql, userId, userName, excelIdList).Exec()
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `UPDATE excel_info SET sys_user_id=?,sys_user_real_name=? WHERE excel_info_id in (` + utils.GetOrmInReplace(num) + `) `
+	sql := `UPDATE excel_info SET sys_user_id=?,sys_user_real_name=? WHERE excel_info_id in ? `
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, userId, userName, excelIdList).Error
+	//_, err = o.Raw(sql, userId, userName, excelIdList).Exec()
 	return
 }
 
@@ -623,15 +678,18 @@ func ModifyExcelInfoUserIdByOldUserId(oldUserIdList []int, userId int, userName
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	sql := `UPDATE excel_info SET sys_user_id=?,sys_user_real_name=? WHERE is_delete=0 AND sys_user_id in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = o.Raw(sql, userId, userName, oldUserIdList).Exec()
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `UPDATE excel_info SET sys_user_id=?,sys_user_real_name=? WHERE is_delete=0 AND sys_user_id in (` + utils.GetOrmInReplace(num) + `) `
+	sql := `UPDATE excel_info SET sys_user_id=?,sys_user_real_name=? WHERE is_delete=0 AND sys_user_id in ?`
+	//_, err = o.Raw(sql, userId, userName, oldUserIdList).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, userId, userName, oldUserIdList).Error
 	return
 }
 
 // ExcelInfoDetail excel表格详情(前端使用)
 type ExcelInfoDetail struct {
-	ExcelInfoId     int         `orm:"column(excel_info_id);pk"`
+	//ExcelInfoId     int         `orm:"column(excel_info_id);pk"`
+	ExcelInfoId     int         `gorm:"column:excel_info_id;primaryKey"`
 	Source          int         `description:"表格来源,1:excel插件的表格,2:自定义表格,默认:1"`
 	ExcelType       int         `description:"表格类型,1:指标列,2:日期列,默认:1"`
 	ExcelName       string      `description:"表格名称"`

+ 24 - 16
models/data_manage/excel/excel_sheet.go

@@ -1,13 +1,15 @@
 package excel
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 // ExcelSheet excel表格详情表
 type ExcelSheet struct {
-	ExcelSheetId int       `orm:"column(excel_sheet_id);pk"`
+	//ExcelSheetId int       `orm:"column(excel_sheet_id);pk"`
+	ExcelSheetId int       `gorm:"column:excel_sheet_id;primaryKey"`
 	ExcelInfoId  int       `description:"excel的id"`
 	SheetName    string    `description:"sheet名称"`
 	PageNum      int       `description:"总页码数"`
@@ -21,38 +23,41 @@ type ExcelSheet struct {
 
 // Update 更新 excel表格的sheet基础信息
 func (excelSheet *ExcelSheet) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(excelSheet, cols...)
-
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(excelSheet, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&excelSheet).Select(cols).Updates(&excelSheet).Error
 	return
 }
 
 // AddExcelSheet 新增excel表格的sheet基础信息
 func AddExcelSheet(excelInfo *ExcelSheet) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	// 表格信息入库
-	lastId, err := o.Insert(excelInfo)
+	//lastId, err := o.Insert(excelInfo)
+	err = global.DbMap[utils.DbNameIndex].Create(&excelInfo).Error
 	if err != nil {
 		return
 	}
-	excelInfo.ExcelInfoId = int(lastId)
+	//excelInfo.ExcelInfoId = int(lastId)
 
 	return
 }
 
 // GetAllSheetList 根据excel_id获取所有的sheet
 func GetAllSheetList(excelInfoId int) (item []*ExcelSheet, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *
 FROM excel_sheet WHERE 1=1 AND excel_info_id = ? `
 	sql += " ORDER BY sort asc "
-	_, err = o.Raw(sql, excelInfoId).QueryRows(&item)
+	//_, err = o.Raw(sql, excelInfoId).QueryRows(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).Find(&item).Error
 	return
 }
 
 // SheetItem excel表格详情表
 type SheetItem struct {
-	ExcelSheetId int             `orm:"column(excel_sheet_id);pk" json:"-"`
+	//ExcelSheetId int             `orm:"column(excel_sheet_id);pk" json:"-"`
+	ExcelSheetId int             `gorm:"column:excel_sheet_id;primaryKey" json:"-"`
 	ExcelInfoId  int             `description:"excel的id"  json:"-"`
 	SheetName    string          `description:"sheet名称"`
 	PageNum      int             `description:"数据总页码数"`
@@ -67,27 +72,30 @@ type SheetItem struct {
 
 // GetAllSheetItemList 根据excel_id获取所有的sheet详情
 func GetAllSheetItemList(excelInfoId int) (item []*SheetItem, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *
 FROM excel_sheet WHERE 1=1 AND excel_info_id = ? `
 	sql += " ORDER BY sort asc "
-	_, err = o.Raw(sql, excelInfoId).QueryRows(&item)
+	//_, err = o.Raw(sql, excelInfoId).QueryRows(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).Find(&item).Error
 	return
 }
 
 // GetAllNoConfigSheetItemList 根据excel_id获取所有的sheet详情
 func GetAllNoConfigSheetItemList(excelInfoId int) (item []*SheetItem, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT excel_sheet_id,excel_info_id,sheet_name,sort,page_num,create_time
 FROM excel_sheet WHERE 1=1 AND excel_info_id = ? `
 	sql += " ORDER BY sort asc "
-	_, err = o.Raw(sql, excelInfoId).QueryRows(&item)
+	//_, err = o.Raw(sql, excelInfoId).QueryRows(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).Find(&item).Error
 	return
 }
 
 // AddExcelSheetParams excel表格详情表
 type AddExcelSheetParams struct {
-	ExcelSheetId int               `orm:"column(excel_sheet_id);pk"`
+	//ExcelSheetId int               `orm:"column(excel_sheet_id);pk"`
+	ExcelSheetId int               `gorm:"column:excel_sheet_id;primaryKey"`
 	ExcelInfoId  int               `description:"excel的id"`
 	SheetName    string            `description:"sheet名称"`
 	Index        string            `description:"excel数据中的index"`

+ 19 - 15
models/data_manage/excel/excel_sheet_data.go

@@ -1,14 +1,15 @@
 package excel
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ExcelSheetData excel表格详情表
 type ExcelSheetData struct {
-	ExcelDataId  int       `orm:"column(excel_data_id);pk"`
+	//ExcelDataId  int       `orm:"column(excel_data_id);pk"`
+	ExcelDataId  int       `gorm:"column:excel_data_id;primaryKey"`
 	ExcelInfoId  int       `description:"数据归属的excel_info的id"`
 	ExcelSheetId int       `description:"数据归属sheet"`
 	Sort         int       `description:"数据排序"`
@@ -19,21 +20,22 @@ type ExcelSheetData struct {
 
 // Update 更新 excel表格的sheet基础信息
 func (ExcelSheetData *ExcelSheetData) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(ExcelSheetData, cols...)
-
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(ExcelSheetData, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&ExcelSheetData).Select(cols).Updates(&ExcelSheetData).Error
 	return
 }
 
 // AddExcelSheetData 新增excel表格的sheet基础信息
 func AddExcelSheetData(excelInfo *ExcelSheetData) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	// 表格信息入库
-	lastId, err := o.Insert(excelInfo)
+	//lastId, err := o.Insert(excelInfo)
+	err = global.DbMap[utils.DbNameIndex].Create(&excelInfo).Error
 	if err != nil {
 		return
 	}
-	excelInfo.ExcelInfoId = int(lastId)
+	//excelInfo.ExcelInfoId = int(lastId)
 
 	return
 }
@@ -44,20 +46,22 @@ func GetSheetDataListBySheetIdListAndPage(excelSheetIdList []int, page int) (ite
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//	sql := ` SELECT *
+	//FROM excel_sheet_data WHERE 1=1 AND excel_sheet_id in (` + utils.GetOrmInReplace(num) + `) AND sort = ? `
 	sql := ` SELECT *
-FROM excel_sheet_data WHERE 1=1 AND excel_sheet_id in (` + utils.GetOrmInReplace(num) + `) AND sort = ? `
-	_, err = o.Raw(sql, excelSheetIdList, page).QueryRows(&items)
-
+FROM excel_sheet_data WHERE 1=1 AND excel_sheet_id in ? AND sort = ? `
+	//_, err = o.Raw(sql, excelSheetIdList, page).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelSheetIdList, page).Find(&items).Error
 	return
 }
 
 // GetAllSheetDataListByExcelInfoId 根据表格id获取所有的sheet的所有数据详情
 func GetAllSheetDataListByExcelInfoId(excelInfoId int) (items []*ExcelSheetData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *
 FROM excel_sheet_data WHERE 1=1 AND excel_info_id = ? ORDER BY sort ASC `
-	_, err = o.Raw(sql, excelInfoId).QueryRows(&items)
-
+	//_, err = o.Raw(sql, excelInfoId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).Find(&items).Error
 	return
 }

+ 66 - 46
models/data_manage/factor_edb_series.go

@@ -2,9 +2,9 @@ package data_manage
 
 import (
 	"encoding/json"
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
@@ -17,7 +17,8 @@ const (
 
 // FactorEdbSeries 因子指标系列表
 type FactorEdbSeries struct {
-	FactorEdbSeriesId int       `orm:"column(factor_edb_series_id);pk"`
+	//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 +54,13 @@ 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 := orm.NewOrmUsingDB("data")
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.FactorEdbSeriesId = int(id)
+	err = global.DbMap[utils.DbNameIndex].Create(&m).Error
 	return
 }
 
@@ -66,21 +68,24 @@ func (m *FactorEdbSeries) CreateMulti(items []*FactorEdbSeries) (err error) {
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(len(items), items)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DbMap[utils.DbNameIndex].CreateInBatches(items, len(items)).Error
 	return
 }
 
 func (m *FactorEdbSeries) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(m, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&m).Select(cols).Updates(&m).Error
 	return
 }
 
 func (m *FactorEdbSeries) Remove() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	_, err = o.Raw(sql, m.FactorEdbSeriesId).Exec()
+	//_, err = o.Raw(sql, m.FactorEdbSeriesId).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, m.FactorEdbSeriesId).Error
 	return
 }
 
@@ -88,39 +93,44 @@ func (m *FactorEdbSeries) MultiRemove(ids []int) (err error) {
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	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()
+	//o := orm.NewOrmUsingDB("data")
+	//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()
+	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN ?`, m.TableName(), m.Cols().PrimaryId)
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, ids).Error
 	return
 }
 
 func (m *FactorEdbSeries) GetItemById(id int) (item *FactorEdbSeries, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].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 := orm.NewOrmUsingDB("data")
 	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 = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
+	//err = o.Raw(sql, pars).QueryRow(&item)
 	return
 }
 
 func (m *FactorEdbSeries) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].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 := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -130,12 +140,13 @@ 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 = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
 	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 := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -145,7 +156,9 @@ 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, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -190,12 +203,13 @@ 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)
-		return
-	}
+	//o := orm.NewOrmUsingDB("data")
+	//tx, e := o.Begin()
+	tx := global.DbMap[utils.DbNameIndex].Begin()
+	//if e != nil {
+	//	err = fmt.Errorf("orm begin err: %v", e)
+	//	return
+	//}
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -204,19 +218,21 @@ func (m *FactorEdbSeries) CreateSeriesAndMapping(item *FactorEdbSeries, mappings
 		_ = tx.Commit()
 	}()
 
-	id, e := tx.Insert(item)
+	//id, e := tx.Insert(item)
+	e := tx.Create(&item).Error
 	if e != nil {
 		err = fmt.Errorf("insert series err: %v", e)
 		return
 	}
-	seriesId = int(id)
-	item.FactorEdbSeriesId = seriesId
+	//seriesId = int(id)
+	//item.FactorEdbSeriesId = seriesId
 
 	if len(mappings) > 0 {
 		for _, v := range mappings {
 			v.FactorEdbSeriesId = seriesId
 		}
-		_, e = tx.InsertMulti(200, mappings)
+		e = tx.CreateInBatches(mappings, 200).Error
+		//_, e = tx.InsertMulti(200, mappings)
 		if e != nil {
 			err = fmt.Errorf("insert multi mapping err: %v", e)
 			return
@@ -231,12 +247,13 @@ 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)
-		return
-	}
+	//o := orm.NewOrmUsingDB("data")
+	//tx, e := o.Begin()
+	//if e != nil {
+	//	err = fmt.Errorf("orm begin err: %v", e)
+	//	return
+	//}
+	tx := global.DbMap[utils.DbNameIndex].Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -245,7 +262,8 @@ func (m *FactorEdbSeries) EditSeriesAndMapping(item *FactorEdbSeries, mappings [
 		_ = tx.Commit()
 	}()
 
-	_, e = tx.Update(item, updateCols...)
+	//_, e = tx.Update(item, updateCols...)
+	e := tx.Model(&item).Select(updateCols).Updates(&item).Error
 	if e != nil {
 		err = fmt.Errorf("update series err: %v", e)
 		return
@@ -257,7 +275,8 @@ func (m *FactorEdbSeries) EditSeriesAndMapping(item *FactorEdbSeries, mappings [
 	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()
+	//_, e = tx.Raw(sql, pars).Exec()
+	e = tx.Exec(sql, pars...).Error
 	if e != nil {
 		err = fmt.Errorf("remove mapping err: %v", e)
 		return
@@ -267,7 +286,8 @@ func (m *FactorEdbSeries) EditSeriesAndMapping(item *FactorEdbSeries, mappings [
 		for _, v := range mappings {
 			v.FactorEdbSeriesId = item.FactorEdbSeriesId
 		}
-		_, e = tx.InsertMulti(200, mappings)
+		//_, e = tx.InsertMulti(200, mappings)
+		e = tx.CreateInBatches(mappings, 200).Error
 		if e != nil {
 			err = fmt.Errorf("insert multi mapping err: %v", e)
 			return

+ 46 - 31
models/data_manage/factor_edb_series_chart_mapping.go

@@ -1,9 +1,9 @@
 package data_manage
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
@@ -14,7 +14,8 @@ const (
 
 // FactorEdbSeriesChartMapping 因子指标系列-图表关联
 type FactorEdbSeriesChartMapping struct {
-	FactorEdbSeriesChartMappingId int       `orm:"column(factor_edb_series_chart_mapping_id);pk"`
+	//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,12 +63,13 @@ func (m *FactorEdbSeriesChartMapping) Cols() MultipleFactorSeriesChartMappingCol
 }
 
 func (m *FactorEdbSeriesChartMapping) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.FactorEdbSeriesChartMappingId = int(id)
+	//o := orm.NewOrmUsingDB("data")
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.FactorEdbSeriesChartMappingId = int(id)
+	err = global.DbMap[utils.DbNameIndex].Create(&m).Error
 	return
 }
 
@@ -75,21 +77,24 @@ func (m *FactorEdbSeriesChartMapping) CreateMulti(items []*FactorEdbSeriesChartM
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(len(items), items)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DbMap[utils.DbNameIndex].CreateInBatches(items, len(items)).Error
 	return
 }
 
 func (m *FactorEdbSeriesChartMapping) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(m, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&m).Select(cols).Updates(&m).Error
 	return
 }
 
 func (m *FactorEdbSeriesChartMapping) Remove() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	_, err = o.Raw(sql, m.FactorEdbSeriesChartMappingId).Exec()
+	//_, err = o.Raw(sql, m.FactorEdbSeriesChartMappingId).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, m.FactorEdbSeriesChartMappingId).Error
 	return
 }
 
@@ -97,39 +102,44 @@ func (m *FactorEdbSeriesChartMapping) MultiRemove(ids []int) (err error) {
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	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()
+	//o := orm.NewOrmUsingDB("data")
+	//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()
+	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN ?`, m.TableName(), m.Cols().PrimaryId)
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, ids).Error
 	return
 }
 
 func (m *FactorEdbSeriesChartMapping) GetItemById(id int) (item *FactorEdbSeriesChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *FactorEdbSeriesChartMapping) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FactorEdbSeriesChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 func (m *FactorEdbSeriesChartMapping) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
 func (m *FactorEdbSeriesChartMapping) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FactorEdbSeriesChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -139,12 +149,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).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func (m *FactorEdbSeriesChartMapping) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FactorEdbSeriesChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -154,21 +165,25 @@ 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, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 // GetDistinctSeriesIdByChartId 获取图表关联的系列ID
 func (m *FactorEdbSeriesChartMapping) GetDistinctSeriesIdByChartId(chartId int) (seriesIds []int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRows(&seriesIds)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartId).Scan(&seriesIds).Error
 	return
 }
 
 func (m *FactorEdbSeriesChartMapping) GetItemByChartInfoId(id int) (item *FactorEdbSeriesChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, id).First(&item).Error
 	return
 }

+ 46 - 31
models/data_manage/factor_edb_series_mapping.go

@@ -1,16 +1,17 @@
 package data_manage
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/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       `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:"指标编码"`
@@ -43,12 +44,13 @@ func (m *FactorEdbSeriesMapping) Cols() FactorEdbSeriesMappingCols {
 }
 
 func (m *FactorEdbSeriesMapping) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.FactorEdbSeriesMappingId = int(id)
+	//o := orm.NewOrmUsingDB("data")
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.FactorEdbSeriesMappingId = int(id)
+	err = global.DbMap[utils.DbNameIndex].Create(&m).Error
 	return
 }
 
@@ -56,21 +58,24 @@ func (m *FactorEdbSeriesMapping) CreateMulti(items []*FactorEdbSeriesMapping) (e
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(len(items), items)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DbMap[utils.DbNameIndex].CreateInBatches(items, len(items)).Error
 	return
 }
 
 func (m *FactorEdbSeriesMapping) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(m, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&m).Select(cols).Updates(&m).Error
 	return
 }
 
 func (m *FactorEdbSeriesMapping) Remove() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	_, err = o.Raw(sql, m.FactorEdbSeriesMappingId).Exec()
+	//_, err = o.Raw(sql, m.FactorEdbSeriesMappingId).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, m.FactorEdbSeriesMappingId).Error
 	return
 }
 
@@ -78,9 +83,11 @@ func (m *FactorEdbSeriesMapping) MultiRemove(ids []int) (err error) {
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	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()
+	//o := orm.NewOrmUsingDB("data")
+	//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()
+	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN ?`, m.TableName(), m.Cols().PrimaryId)
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, ids).Error
 	return
 }
 
@@ -88,39 +95,43 @@ func (m *FactorEdbSeriesMapping) RemoveByCondition(condition string, pars []inte
 	if condition == "" {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
-	_, err = o.Raw(sql, pars).Exec()
+	//_, err = o.Raw(sql, pars).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, pars...).Error
 	return
 }
 
 func (m *FactorEdbSeriesMapping) GetItemById(id int) (item *FactorEdbSeriesMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *FactorEdbSeriesMapping) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FactorEdbSeriesMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 func (m *FactorEdbSeriesMapping) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
 func (m *FactorEdbSeriesMapping) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FactorEdbSeriesMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -130,12 +141,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).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func (m *FactorEdbSeriesMapping) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FactorEdbSeriesMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -145,7 +157,9 @@ 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, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -199,12 +213,13 @@ func (m *FactorEdbSeriesMapping) Format2Item() (item *FactorEdbSeriesMappingItem
 
 // GetChartUsedFactorSeriesEdb 获取图表引用的系列指标
 func GetChartUsedFactorSeriesEdb(chartId int) (items []*FactorEdbSeriesMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	chartOb := new(FactorEdbSeriesChartMapping)
 	edbOb := new(FactorEdbSeriesMapping)
 	sql := fmt.Sprintf(`SELECT b.* FROM %s AS a
 	JOIN %s AS b ON a.%s = b.%s AND a.%s = b.%s
 	WHERE a.%s = ? ORDER BY %s ASC`, chartOb.TableName(), edbOb.TableName(), chartOb.Cols().FactorEdbSeriesId, edbOb.Cols().FactorEdbSeriesId, chartOb.Cols().EdbInfoId, edbOb.Cols().EdbInfoId, chartOb.Cols().ChartInfoId, edbOb.Cols().FactorEdbSeriesId)
-	_, err = o.Raw(sql, chartId).QueryRows(&items)
+	//_, err = o.Raw(sql, chartId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartId).Find(&items).Error
 	return
 }

+ 25 - 17
models/data_manage/future_good/chart_info_future_good_profit.go

@@ -1,15 +1,17 @@
 package future_good
 
 import (
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // ChartInfoFutureGoodProfit 商品利润图表-扩展信息
 type ChartInfoFutureGoodProfit struct {
-	ChartInfoId  int       `orm:"column(chart_info_id);pk" description:"商品利润图表ID(chart_info表source=5的)"`
+	//ChartInfoId  int       `orm:"column(chart_info_id);pk" description:"商品利润图表ID(chart_info表source=5的)"`
+	ChartInfoId  int       `gorm:"column:chart_info_id;primaryKey" description:"商品利润图表ID(chart_info表source=5的)"`
 	ProfitName   string    `description:"利润名称"`
 	ProfitNameEn string    `description:"利润英文名称"`
 	XValue       string    `description:"X轴数据值"`
@@ -36,44 +38,49 @@ func (m *ChartInfoFutureGoodProfit) TableName() string {
 }
 
 func (m *ChartInfoFutureGoodProfit) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Insert(m)
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
 	//m.CorrelationChartInfoId = int(id)
+	err = global.DbMap[utils.DbNameIndex].Create(&m).Error
 	return
 }
 
 func (m *ChartInfoFutureGoodProfit) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(m, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&m).Select(cols).Updates(&m).Error
 	return
 }
 
 func (m *ChartInfoFutureGoodProfit) Delete() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE chart_info_id = ? LIMIT 1`, m.TableName())
-	_, err = o.Raw(sql, m.ChartInfoId).Exec()
+	//_, err = o.Raw(sql, m.ChartInfoId).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, m.ChartInfoId).Error
 	return
 }
 
 func (m *ChartInfoFutureGoodProfit) GetItemById(id int) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE chart_info_id = ? LIMIT 1`, m.TableName())
-	err = o.Raw(sql, id).QueryRow(&m)
+	//err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, id).First(&m).Error
 	return
 }
 
 func (m *ChartInfoFutureGoodProfit) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&m)
+	//err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&m).Error
 	return
 }
 
 func (m *ChartInfoFutureGoodProfit) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*ChartInfoFutureGoodProfit, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -83,6 +90,7 @@ func (m *ChartInfoFutureGoodProfit) 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).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }

+ 54 - 33
models/data_manage/future_good/future_good_chart_classify.go

@@ -1,14 +1,16 @@
 package future_good
 
 import (
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // FutureGoodChartClassify future_good_chart表格分类
 type FutureGoodChartClassify struct {
-	FutureGoodChartClassifyId   int       `orm:"column(future_good_chart_classify_id);pk"`
+	//FutureGoodChartClassifyId   int       `orm:"column(future_good_chart_classify_id);pk"`
+	FutureGoodChartClassifyId   int       `gorm:"column:future_good_chart_classify_id;primaryKey"`
 	FutureGoodChartClassifyName string    `description:"分类名称"`
 	ParentId                    int       `description:"父级id"`
 	SysUserId                   int       `description:"创建人id"`
@@ -23,37 +25,46 @@ type FutureGoodChartClassify struct {
 
 // AddFutureGoodChartClassify 添加future_good_chart分类
 func AddFutureGoodChartClassify(item *FutureGoodChartClassify) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("data")
+	//lastId, err = o.Insert(item)
+	err = global.DbMap[utils.DbNameIndex].Create(&item).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(item.FutureGoodChartClassifyId)
 	return
 }
 
 // GetFutureGoodChartClassifyCount 获取同级分类下存在同名分类的数量
 func GetFutureGoodChartClassifyCount(FutureGoodChartClassifyName string, parentId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT COUNT(1) AS count FROM future_good_chart_classify WHERE parent_id=? AND future_good_chart_classify_name=? AND is_delete=0 `
-	err = o.Raw(sql, parentId, FutureGoodChartClassifyName).QueryRow(&count)
+	//err = o.Raw(sql, parentId, FutureGoodChartClassifyName).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, parentId, FutureGoodChartClassifyName).Scan(&count).Error
 	return
 }
 
 func GetFutureGoodChartClassifyById(classifyId int) (item *FutureGoodChartClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM future_good_chart_classify WHERE future_good_chart_classify_id=? AND is_delete=0 `
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).First(&item).Error
 	return
 }
 
 func GetFutureGoodChartClassifyByParentId(parentId int) (items []*FutureGoodChartClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM future_good_chart_classify WHERE parent_id=? AND is_delete=0 order by sort asc,future_good_chart_classify_id asc`
-	_, err = o.Raw(sql, parentId).QueryRows(&items)
+	//_, err = o.Raw(sql, parentId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, parentId).Find(&items).Error
 	return
 }
 
 func GetFutureGoodChartClassifyAll() (items []*FutureGoodChartClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM future_good_chart_classify WHERE parent_id<>0 AND is_delete=0 order by sort asc,future_good_chart_classify_id asc`
-	_, err = o.Raw(sql).QueryRows(&items)
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&items).Error
 	return
 }
 
@@ -72,58 +83,64 @@ type FutureGoodChartClassifyItems struct {
 }
 
 func GetFutureGoodChartClassifyByCondition(condition string, pars []interface{}) (item *FutureGoodChartClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM future_good_chart_classify WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 // GetNextFutureGoodChartClassifyByCondition 获取下一个分类
 func GetNextFutureGoodChartClassifyByCondition(condition string, pars []interface{}) (item *FutureGoodChartClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM future_good_chart_classify WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += " ORDER BY sort asc , create_time ASC LIMIT 1 "
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 // GetFirstFutureGoodChartClassifyByParentId 获取当前父级图表分类下的排序第一条的数据
 func GetFirstFutureGoodChartClassifyByParentId(parentId int) (item *FutureGoodChartClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM future_good_chart_classify WHERE parent_id=? AND is_delete=0 order by sort asc,future_good_chart_classify_id asc limit 1`
-	err = o.Raw(sql, parentId).QueryRow(&item)
+	//err = o.Raw(sql, parentId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, parentId).First(&item).Error
 	return
 }
 
 // UpdateFutureGoodChartClassifySortByParentId 根据图表父类id更新排序
 func UpdateFutureGoodChartClassifySortByParentId(parentId, classifyId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` update future_good_chart_classify set sort = ` + updateSort + ` WHERE parent_id=? and sort > ? AND is_delete=0 `
 	if classifyId > 0 {
 		sql += ` or ( future_good_chart_classify_id > ` + fmt.Sprint(classifyId) + ` and sort= ` + fmt.Sprint(nowSort) + `)`
 	}
-	_, err = o.Raw(sql, parentId, nowSort).Exec()
+	//_, err = o.Raw(sql, parentId, nowSort).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, parentId, nowSort).Error
 	return
 }
 
 // Update 更新图表分类基础信息
 func (FutureGoodChartClassify *FutureGoodChartClassify) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(FutureGoodChartClassify, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(FutureGoodChartClassify, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&FutureGoodChartClassify).Select(cols).Updates(&FutureGoodChartClassify).Error
 	return
 }
 
 // GetFutureGoodChartClassifyMaxSort 获取图表分类下最大的排序数
 func GetFutureGoodChartClassifyMaxSort(parentId int) (sort int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT Max(sort) AS sort FROM future_good_chart_classify WHERE parent_id=? AND is_delete=0 `
-	err = o.Raw(sql, parentId).QueryRow(&sort)
+	//err = o.Raw(sql, parentId).QueryRow(&sort)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, parentId).Scan(&sort).Error
 	return
 }
 
@@ -134,36 +151,40 @@ type FutureGoodChartClassifyView struct {
 }
 
 func GetFutureGoodChartClassifyViewById(classifyId int) (item *FutureGoodChartClassifyView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM future_good_chart_classify WHERE future_good_chart_classify_id=? AND is_delete=0 `
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).First(&item).Error
 	return
 }
 
-//用于分类展示
+// 用于分类展示
 func GetChartInfoAll() (items []*FutureGoodChartClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT chart_info_id,chart_classify_id,chart_name AS chart_classify_name,
              unique_code,sys_user_id,sys_user_real_name,date_type,start_date,end_date,chart_type,calendar,season_start_date,season_end_date
             FROM chart_info ORDER BY sort asc,create_time ASC `
-	_, err = o.Raw(sql).QueryRows(&items)
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&items).Error
 	return
 }
 
 // GetNoContentFutureGoodInfoAll 获取不含content的表格列表 用于分类展示
 func GetNoContentFutureGoodInfoAll() (items []FutureGoodChartClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT excel_info_id,excel_classify_id,excel_name AS excel_classify_name,
              unique_code,sys_user_id,sys_user_real_name
             FROM excel_info where is_delete=0 ORDER BY sort asc,create_time desc `
-	_, err = o.Raw(sql).QueryRows(&items)
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&items).Error
 	return
 }
 
 // GetFutureGoodChartInfoCountByClassifyId 根据分类id获取名下表格数量
 func GetFutureGoodChartInfoCountByClassifyId(classifyId int) (total int64, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT count(1) total FROM excel_info WHERE excel_classify_id = ? AND is_delete=0 `
-	err = o.Raw(sql, classifyId).QueryRow(&total)
+	//err = o.Raw(sql, classifyId).QueryRow(&total)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).Scan(&total).Error
 	return
 }

+ 32 - 22
models/data_manage/future_good/future_good_edb_info.go

@@ -1,13 +1,15 @@
 package future_good
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 // FutureGoodEdbInfo 期货指标表
 type FutureGoodEdbInfo struct {
-	FutureGoodEdbInfoId int       `orm:"column(future_good_edb_info_id);pk"`
+	//FutureGoodEdbInfoId int       `orm:"column(future_good_edb_info_id);pk"`
+	FutureGoodEdbInfoId int       `gorm:"column:future_good_edb_info_id;primaryKey"`
 	FutureGoodEdbCode   string    `description:"期货指标code"`
 	FutureGoodEdbName   string    `description:"期货指标名称"`
 	FutureGoodEdbNameEn string    `description:"期货指标英文名称"`
@@ -31,65 +33,72 @@ type FutureGoodEdbInfo struct {
 
 // GetFutureGoodEdbInfo 期货指标
 func GetFutureGoodEdbInfo(edbInfoId int) (item *FutureGoodEdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM future_good_edb_info WHERE future_good_edb_info_id = ? `
 	sql += ` ORDER BY future_good_edb_info_id DESC `
-	err = o.Raw(sql, edbInfoId).QueryRow(&item)
+	//err = o.Raw(sql, edbInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).First(&item).Error
 	return
 }
 
 // GetFutureGoodEdbInfoByCode 根据期货code获取 期货指标信息
 func GetFutureGoodEdbInfoByCode(futureGoodEdbCode string) (item *FutureGoodEdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM future_good_edb_info WHERE future_good_edb_code = ? `
 	sql += ` ORDER BY future_good_edb_info_id DESC `
-	err = o.Raw(sql, futureGoodEdbCode).QueryRow(&item)
+	//err = o.Raw(sql, futureGoodEdbCode).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, futureGoodEdbCode).First(&item).Error
 	return
 }
 
 // GetFutureGoodEdbInfoList 获取指标数据列表
 func GetFutureGoodEdbInfoList(condition string, pars []interface{}) (list []*FutureGoodEdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM future_good_edb_info WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY future_good_edb_info_id DESC `
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	//_, err = o.Raw(sql, pars).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&list).Error
 	return
 }
 
 // GetAllFutureGoodEdbInfoList 获取指标数据列表
 func GetAllFutureGoodEdbInfoList() (list []*FutureGoodEdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM future_good_edb_info  ORDER BY future_good_edb_info_id DESC `
-	_, err = o.Raw(sql).QueryRows(&list)
+	//_, err = o.Raw(sql).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&list).Error
 	return
 }
 
 // GetFutureGoodEdbInfoListByParentId 根据父级ID获取指标数据列表
 func GetFutureGoodEdbInfoListByParentId(parentId int) (list []*FutureGoodEdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM future_good_edb_info WHERE parent_id = ? or  future_good_edb_info_id = ? ORDER BY future_good_edb_info_id ASC `
-	_, err = o.Raw(sql, parentId, parentId).QueryRows(&list)
+	//_, err = o.Raw(sql, parentId, parentId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, parentId, parentId).Find(&list).Error
 	return
 }
 
 // AddFutureGoodEdbInfo 添加期货数据库指标
 func AddFutureGoodEdbInfo(item *FutureGoodEdbInfo) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.FutureGoodEdbInfoId = int(lastId)
+	//o := orm.NewOrmUsingDB("data")
+	//lastId, err := o.Insert(item)
+	//if err != nil {
+	//	return
+	//}
+	//item.FutureGoodEdbInfoId = int(lastId)
+	err = global.DbMap[utils.DbNameIndex].Create(&item).Error
 	return
 }
 
 // Update 更新指标基础信息
 func (FutureGoodEdbInfo *FutureGoodEdbInfo) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(FutureGoodEdbInfo, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(FutureGoodEdbInfo, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&FutureGoodEdbInfo).Select(cols).Updates(&FutureGoodEdbInfo).Error
 	return
 }
 
@@ -102,13 +111,14 @@ type FutureGoodEdbInfoGroupListResp struct {
 
 // GetFutureGoodEdbInfoGroupList 获取分組指标数据列表
 func GetFutureGoodEdbInfoGroupList(condition string, pars []interface{}) (list []*FutureGoodEdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM future_good_edb_info WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += ` ORDER BY future_good_edb_info_id DESC `
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	//_, err = o.Raw(sql, pars).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&list).Error
 	return
 }
 

+ 22 - 12
models/data_manage/future_good/future_good_edb_info_data.go

@@ -1,15 +1,16 @@
 package future_good
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
 // FutureGoodEdbData 期货指标数据的表
 type FutureGoodEdbData struct {
-	FutureGoodEdbDataId int       `orm:"column(future_good_edb_data_id);pk"`
+	//FutureGoodEdbDataId int       `orm:"column(future_good_edb_data_id);pk"`
+	FutureGoodEdbDataId int       `gorm:"column:future_good_edb_data_id;primaryKey"`
 	FutureGoodEdbInfoId int       `description:"期货指标id"`
 	FutureGoodEdbCode   string    `description:"期货指标code"`
 	DataTime            time.Time `description:"数据日期"`
@@ -35,7 +36,8 @@ type FutureGoodEdbDataListResp struct {
 
 // FutureGoodEdbDataItem 期货指标数据列表数据
 type FutureGoodEdbDataItem struct {
-	FutureGoodEdbDataId int     `orm:"column(future_good_edb_data_id);pk"`
+	//FutureGoodEdbDataId int     `orm:"column(future_good_edb_data_id);pk"`
+	FutureGoodEdbDataId int     `gorm:"column:future_good_edb_data_id;primaryKey"`
 	FutureGoodEdbInfoId int     `description:"期货指标id"`
 	FutureGoodEdbCode   string  `description:"期货指标code"`
 	FutureGoodEdbName   string  `description:"期货指标名称"`
@@ -56,24 +58,27 @@ type FutureGoodEdbDataItem struct {
 
 // GetFutureGoodEdbDataListCount 获取期货指标数据汇总数
 func GetFutureGoodEdbDataListCount(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT COUNT(1) AS count FROM future_good_edb_data WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
 // GetFutureGoodEdbDataList 获取期货指标数据列表
 func GetFutureGoodEdbDataList(condition string, pars []interface{}, startSize, pageSize int) (list []*FutureGoodEdbDataItem, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM future_good_edb_data WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY modify_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&list).Error
 	return
 }
 
@@ -98,14 +103,17 @@ func GetFutureGoodEdbDataListByDate(futureGoodEdbInfoId int, startDate, endDate
 	}
 
 	sql += ` ORDER BY data_time ASC `
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, futureGoodEdbInfoId, pars).QueryRows(&list)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Raw(sql, futureGoodEdbInfoId, pars).QueryRows(&list)
+	newPars := utils.ForwardPars(pars, futureGoodEdbInfoId)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, newPars...).Find(&list).Error
 	return
 }
 
 func GetFutureGoodEdbDataListByIdsAndDate(futureGoodEdbInfoIds []int, startDate, endDate string) (list []*FutureGoodEdbData, err error) {
 	var pars []interface{}
-	sql := `SELECT * FROM future_good_edb_data WHERE 1=1 AND future_good_edb_info_id in (` + utils.GetOrmInReplace(len(futureGoodEdbInfoIds)) + `)  `
+	//sql := `SELECT * FROM future_good_edb_data WHERE 1=1 AND future_good_edb_info_id in (` + utils.GetOrmInReplace(len(futureGoodEdbInfoIds)) + `)  `
+	sql := `SELECT * FROM future_good_edb_data WHERE 1=1 AND future_good_edb_info_id in ?`
 	if startDate != "" {
 		sql += ` AND data_time>=? `
 		pars = append(pars, startDate)
@@ -116,7 +124,9 @@ func GetFutureGoodEdbDataListByIdsAndDate(futureGoodEdbInfoIds []int, startDate,
 	}
 
 	sql += ` ORDER BY data_time ASC `
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, futureGoodEdbInfoIds, pars).QueryRows(&list)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Raw(sql, futureGoodEdbInfoIds, pars).QueryRows(&list)
+	newPars := utils.ForwardPars(pars, futureGoodEdbInfoIds)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, newPars...).Find(&list).Error
 	return
 }

+ 18 - 13
models/data_manage/multiple_graph_config.go

@@ -1,13 +1,15 @@
 package data_manage
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 // MultipleGraphConfig 多图配置表
 type MultipleGraphConfig struct {
-	MultipleGraphConfigId int       `orm:"column(multiple_graph_config_id);pk"`
+	//MultipleGraphConfigId int       `orm:"column(multiple_graph_config_id);pk"`
+	MultipleGraphConfigId int       `gorm:"column:multiple_graph_config_id;primaryKey"`
 	EdbInfoIdA            int       `description:"指标A"`
 	EdbInfoIdB            int       `description:"指标B"`
 	Curve                 string    `description:"曲线图配置"`
@@ -21,29 +23,32 @@ type MultipleGraphConfig struct {
 
 // AddMultipleGraphConfig 新增多图配置
 func AddMultipleGraphConfig(item *MultipleGraphConfig) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	// 表格信息入库
-	lastId, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.MultipleGraphConfigId = int(lastId)
+	//o := orm.NewOrmUsingDB("data")
+	//// 表格信息入库
+	//lastId, err := o.Insert(item)
+	//if err != nil {
+	//	return
+	//}
+	//item.MultipleGraphConfigId = int(lastId)
+	err = global.DbMap[utils.DbNameIndex].Create(&item).Error
 	return
 }
 
 // Update 更新 基础信息
 func (item *MultipleGraphConfig) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(item, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&item).Select(cols).Updates(&item).Error
 	return
 }
 
 // GetMultipleGraphConfigById 根据配置id获取配置
 func GetMultipleGraphConfigById(id int) (item *MultipleGraphConfig, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM multiple_graph_config WHERE multiple_graph_config_id = ? `
 	// 表格信息入库
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, id).First(&item).Error
 	return
 }
 

+ 24 - 20
models/data_manage/multiple_graph_config_chart_mapping.go

@@ -1,13 +1,15 @@
 package data_manage
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 // MultipleGraphConfigChartMapping 图表与多图配置的关系表
 type MultipleGraphConfigChartMapping struct {
-	Id                    int       `orm:"column(id);pk"`
+	//Id                    int       `orm:"column(id);pk"`
+	Id                    int       `gorm:"column:id;primaryKey"`
 	MultipleGraphConfigId int       `description:"多图配置id"`
 	ChartInfoId           int       `description:"图表id"`
 	Source                int       `description:"来源,1:曲线图,2:相关性图;3:滚动相关性图1;4:滚动相关性图2;"`
@@ -17,46 +19,48 @@ type MultipleGraphConfigChartMapping struct {
 
 // AddMultipleGraphConfigChartMapping 新增多图配置
 func AddMultipleGraphConfigChartMapping(item *MultipleGraphConfigChartMapping) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	// 表格信息入库
-	lastId, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.Id = int(lastId)
+	//o := orm.NewOrmUsingDB("data")
+	//// 表格信息入库
+	//lastId, err := o.Insert(item)
+	//if err != nil {
+	//	return
+	//}
+	//item.Id = int(lastId)
+	err = global.DbMap[utils.DbNameIndex].Create(&item).Error
 	return
 }
 
 // Update 更新 基础信息
 func (item *MultipleGraphConfigChartMapping) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(item, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&item).Select(cols).Updates(&item).Error
 	return
 }
 
 // GetMultipleGraphConfigChartMappingByIdAndSource 根据配置id和来源获取关联关系
 func GetMultipleGraphConfigChartMappingByIdAndSource(configId, source int) (item *MultipleGraphConfigChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM multiple_graph_config_chart_mapping WHERE multiple_graph_config_id = ? AND source = ? `
-	err = o.Raw(sql, configId, source).QueryRow(&item)
-
+	//err = o.Raw(sql, configId, source).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, configId, source).First(&item).Error
 	return
 }
 
 // GetMultipleGraphConfigChartMappingByChartId 根据图表id和来源获取关联关系
 func GetMultipleGraphConfigChartMappingByChartId(chartId int) (item *MultipleGraphConfigChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM multiple_graph_config_chart_mapping WHERE chart_info_id = ?  `
-	err = o.Raw(sql, chartId).QueryRow(&item)
-
+	//err = o.Raw(sql, chartId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, chartId).First(&item).Error
 	return
 }
 
 // GetMultipleGraphConfigChartMappingListById 根据配置id获取所有关联关系
 func GetMultipleGraphConfigChartMappingListById(configId int) (items []*MultipleGraphConfigChartMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM multiple_graph_config_chart_mapping WHERE multiple_graph_config_id = ? `
-	_, err = o.Raw(sql, configId).QueryRows(&items)
-
+	//_, err = o.Raw(sql, configId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, configId).Find(&items).Error
 	return
 }

+ 23 - 18
models/data_manage/multiple_graph_config_edb_mapping.go

@@ -1,13 +1,15 @@
 package data_manage
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 // MultipleGraphConfigEdbMapping 指标与多图配置的关系表
 type MultipleGraphConfigEdbMapping struct {
-	Id                    int       `orm:"column(id);pk"`
+	//Id                    int       `orm:"column(id);pk"`
+	Id                    int       `gorm:"column:id;primaryKey"`
 	MultipleGraphConfigId int       `description:"多图配置id"`
 	EdbInfoId             int       `description:"指标id"`
 	Source                int       `description:"来源,1:曲线图,2:相关性图;3:滚动相关性图1;4:滚动相关性图2;"`
@@ -17,45 +19,48 @@ type MultipleGraphConfigEdbMapping struct {
 
 // AddMultipleGraphConfigEdbMapping 新增多图配置
 func AddMultipleGraphConfigEdbMapping(item *MultipleGraphConfigEdbMapping) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	// 表格信息入库
-	lastId, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.Id = int(lastId)
+	//lastId, err := o.Insert(item)
+	//if err != nil {
+	//	return
+	//}
+	//item.Id = int(lastId)
+	err = global.DbMap[utils.DbNameIndex].Create(&item).Error
 	return
 }
 
 // Update 更新 基础信息
 func (item *MultipleGraphConfigEdbMapping) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(item, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&item).Select(cols).Updates(&item).Error
 	return
 }
 
 // GetMultipleGraphConfigEdbMappingByIdAndSource 根据配置id和来源获取关联关系
 func GetMultipleGraphConfigEdbMappingByIdAndSource(configId, source int) (item *MultipleGraphConfigEdbMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM multiple_graph_config_edb_mapping WHERE multiple_graph_config_id = ? AND source = ? `
 	// 表格信息入库
-	err = o.Raw(sql, configId, source).QueryRow(&item)
+	//err = o.Raw(sql, configId, source).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, configId, source).First(&item).Error
 	return
 }
 
 // GetMultipleGraphConfigEdbMappingListById 根据配置id获取所有关联关系
 func GetMultipleGraphConfigEdbMappingListById(configId int) (items []*MultipleGraphConfigEdbMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM multiple_graph_config_edb_mapping WHERE multiple_graph_config_id = ? `
-	_, err = o.Raw(sql, configId).QueryRows(&items)
-
+	//_, err = o.Raw(sql, configId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, configId).Find(&items).Error
 	return
 }
 
 func GetMultipleGraphConfigEdbMappingListByIdAndSource(configId, source int) (items []*MultipleGraphConfigEdbMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM multiple_graph_config_edb_mapping WHERE multiple_graph_config_id = ? AND source = ? `
-	_, err = o.Raw(sql, configId, source).QueryRows(&items)
-
+	//_, err = o.Raw(sql, configId, source).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, configId, source).Find(&items).Error
 	return
 }

+ 46 - 28
models/data_manage/predict_edb_conf.go

@@ -1,15 +1,17 @@
 package data_manage
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/services/alarm_msg"
 	"eta/eta_chart_lib/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 type PredictEdbConf struct {
-	ConfigId         int       `orm:"column(config_id);pk" description:"规则id"`
-	PredictEdbInfoId int       `orm:"column(predict_edb_info_id)" description:"预测指标id"`
+	//ConfigId         int       `orm:"column(config_id);pk" description:"规则id"`
+	//PredictEdbInfoId int       `orm:"column(predict_edb_info_id)" description:"预测指标id"`
+	ConfigId         int       `gorm:"column:config_id;primaryKey" description:"规则id"`
+	PredictEdbInfoId int       `gorm:"column:predict_edb_info_id" description:"预测指标id"`
 	SourceEdbInfoId  int       `description:"来源指标id"`
 	RuleType         int       `description:"预测规则,1:最新,2:固定值,3:同比,4:同差,5:环比,6:环差,7:N期移动均值,8:N期段线性外推值"`
 	FixedValue       float64   `description:"固定值"`
@@ -21,62 +23,73 @@ type PredictEdbConf struct {
 
 // GetPredictEdbConfById 根据预测指标id获取预测指标配置信息
 func GetPredictEdbConfById(edbInfoId int) (item *PredictEdbConf, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM predict_edb_conf WHERE predict_edb_info_id=? `
-	err = o.Raw(sql, edbInfoId).QueryRow(&item)
+	//err = o.Raw(sql, edbInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).First(&item).Error
 	return
 }
 
 // GetPredictEdbConfBySourceEdbInfoId 根据来源指标id获取配置
 func GetPredictEdbConfBySourceEdbInfoId(sourceEdbInfoId int) (item *PredictEdbConf, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM predict_edb_conf WHERE source_edb_info_id=? `
-	err = o.Raw(sql, sourceEdbInfoId).QueryRow(&item)
+	//err = o.Raw(sql, sourceEdbInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, sourceEdbInfoId).First(&item).Error
 	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)
+	//err = o.Raw(sql, sourceEdbInfoId).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].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)
+	//o := orm.NewOrmUsingDB("data")
+	//lastId, err = o.Insert(item)
+	err = global.DbMap[utils.DbNameIndex].Create(&item).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(item.ConfigId)
 	return
 }
 
 // AddPredictEdb 添加预测指标
 func AddPredictEdb(item *EdbInfo, predictEdbConf *PredictEdbConf) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	tx, err := o.Begin()
+	//o := orm.NewOrmUsingDB("data")
+	//tx, err := o.Begin()
+	tx := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
 	defer func() {
 		if err != nil {
-			tmpErr := tx.Rollback()
+			tmpErr := tx.Rollback().Error
 			if tmpErr != nil {
 				go alarm_msg.SendAlarmMsg("AddPredictEdb 事务回滚失败,Err:"+tmpErr.Error(), 3)
 			}
 		} else {
-			err = tx.Commit()
+			err = tx.Commit().Error
 		}
 	}()
 	// 新增预测指标
-	edbInfoId, err := o.Insert(item)
+	//edbInfoId, err := o.Insert(item)
+	err = tx.Create(&item).Error
 	if err != nil {
 		return
 	}
-	item.EdbInfoId = int(edbInfoId)
+	//item.EdbInfoId = int(edbInfoId)
 
 	// 新增预测指标配置
 	predictEdbConf.PredictEdbInfoId = item.EdbInfoId
-	_, err = o.Insert(predictEdbConf)
+	//_, err = o.Insert(predictEdbConf)
+	err = tx.Create(&predictEdbConf).Error
 	if err != nil {
 		return
 	}
@@ -85,28 +98,31 @@ func AddPredictEdb(item *EdbInfo, predictEdbConf *PredictEdbConf) (err error) {
 
 // EditPredictEdb 修改预测指标
 func EditPredictEdb(edbInfo *EdbInfo, predictEdbConf *PredictEdbConf, updateEdbInfoCol, updatePredictEdbConfCol []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	tx, err := o.Begin()
+	//o := orm.NewOrmUsingDB("data")
+	//tx, err := o.Begin()
+	tx := global.DbMap[utils.DbNameIndex].Begin()
 	if err != nil {
 		return
 	}
 	defer func() {
 		if err != nil {
-			tmpErr := tx.Rollback()
+			tmpErr := tx.Rollback().Error
 			if tmpErr != nil {
 				go alarm_msg.SendAlarmMsg("AddPredictEdb 事务回滚失败,Err:"+tmpErr.Error(), 3)
 			}
 		} else {
-			err = tx.Commit()
+			err = tx.Commit().Error
 		}
 	}()
 	// 修改预测指标
-	_, err = o.Update(edbInfo, updateEdbInfoCol...)
+	//_, err = o.Update(edbInfo, updateEdbInfoCol...)
+	err = tx.Model(&edbInfo).Select(updateEdbInfoCol).Updates(edbInfo).Error
 	if err != nil {
 		return
 	}
 	// 修改预测指标配置
-	_, err = o.Update(predictEdbConf, updatePredictEdbConfCol...)
+	//_, err = o.Update(predictEdbConf, updatePredictEdbConfCol...)
+	err = tx.Model(&predictEdbConf).Select(updatePredictEdbConfCol).Updates(predictEdbConf).Error
 	if err != nil {
 		return
 	}
@@ -119,20 +135,22 @@ 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)
+	//_, err = o.Raw(sql, edbInfoIdList).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].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)
+	//_, err = o.Raw(sql, edbInfoId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).Find(&items).Error
 	return
 }

+ 20 - 13
models/data_manage/predict_edb_conf_calculate_mapping.go

@@ -1,14 +1,15 @@
 package data_manage
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // PredictEdbConfCalculateMapping 预测基础指标规则 与 计算预测指标关联关系表
 type PredictEdbConfCalculateMapping struct {
-	PredictEdbConfCalculateMappingId int       `orm:"column(predict_edb_conf_calculate_mapping_id);pk"`
+	//PredictEdbConfCalculateMappingId int       `orm:"column(predict_edb_conf_calculate_mapping_id);pk"`
+	PredictEdbConfCalculateMappingId int       `gorm:"column:predict_edb_conf_calculate_mapping_id;primaryKey"`
 	EdbInfoId                        int       `description:"指标id"`
 	ConfigId                         int       `description:"配置id"`
 	FromEdbInfoId                    int       `description:"基础指标id"`
@@ -24,22 +25,25 @@ type PredictEdbConfCalculateMapping struct {
 
 // GetPredictEdbConfCalculateMappingListById 根据预测指标id获取预测指标配置的关联指标信息列表
 func GetPredictEdbConfCalculateMappingListById(edbInfoId int) (items []*PredictEdbConf, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//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)
+	//_, err = o.Raw(sql, edbInfoId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).Find(&items).Error
 	return
 }
 
 // GetPredictEdbConfCalculateMappingListByConfigId 根据预测指标配置id获取预测指标配置的关联指标信息列表
 func GetPredictEdbConfCalculateMappingListByConfigId(edbInfoId, configId int) (items []*PredictEdbConf, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//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)
+	//_, err = o.Raw(sql, edbInfoId, configId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId, configId).Find(&items).Error
 	return
 }
 
 type PredictEdbConfCalculateMappingDetail struct {
-	PredictEdbConfCalculateMappingId int       `orm:"column(predict_edb_conf_calculate_mapping_id);pk"`
+	//PredictEdbConfCalculateMappingId int       `orm:"column(predict_edb_conf_calculate_mapping_id);pk"`
+	PredictEdbConfCalculateMappingId int       `gorm:"column:predict_edb_conf_calculate_mapping_id;primaryKey"`
 	EdbInfoId                        int       `description:"指标id"`
 	ConfigId                         int       `description:"配置id"`
 	FromEdbInfoId                    int       `description:"基础指标id"`
@@ -59,23 +63,25 @@ type PredictEdbConfCalculateMappingDetail struct {
 
 // GetPredictEdbConfCalculateMappingDetailListById 根据配置id获取 配置关联指标信息
 func GetPredictEdbConfCalculateMappingDetailListById(edbInfoId 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=? ORDER BY sort ASC `
 
-	_, err = o.Raw(sql, edbInfoId).QueryRows(&list)
+	//_, err = o.Raw(sql, edbInfoId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId).Find(&list).Error
 	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)
+	//_, err = o.Raw(sql, edbInfoId, configId).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, edbInfoId, configId).Find(&list).Error
 	return
 }
 
@@ -85,11 +91,12 @@ 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)
+	//_, err = o.Raw(sql, fromEdbInfoIdList).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, fromEdbInfoIdList).Find(&list).Error
 	return
 }

+ 8 - 4
models/data_manage/predict_edb_rule_data.go

@@ -1,13 +1,15 @@
 package data_manage
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 // PredictEdbRuleData 预测指标,动态规则的计算数据
 type PredictEdbRuleData struct {
-	PredictEdbRuleDataId int `orm:"column(predict_edb_rule_data_id);pk"`
+	//PredictEdbRuleDataId int `orm:"column(predict_edb_rule_data_id);pk"`
+	PredictEdbRuleDataId int `gorm:"column:predict_edb_rule_data_id;primaryKey"`
 	EdbInfoId            int
 	ConfigId             int
 	DataTime             string
@@ -19,7 +21,7 @@ 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 != "" {
@@ -31,6 +33,8 @@ 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 = o.Raw(sql, edbInfoId, configId, pars).QueryRows(&list)
+	pars = utils.ForwardPars(pars, []int{edbInfoId, configId})
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&list).Error
 	return
 }

+ 4 - 4
models/db.go

@@ -10,7 +10,7 @@ import (
 	"github.com/beego/beego/v2/client/orm"
 )
 
-func init() {
+func init2() {
 
 	_ = orm.RegisterDataBase("default", "mysql", utils.MYSQL_URL)
 	orm.SetMaxIdleConns("default", 50)
@@ -44,7 +44,7 @@ func init() {
 	initFutureGood()
 
 	// 初始化部分数据表变量(直接init会有顺序问题=_=!)
-	afterInitTable()
+	AfterInitTable()
 }
 
 // initFutureGood 注册期货数据 数据表
@@ -57,11 +57,11 @@ func initFutureGood() {
 	)
 }
 
-// afterInitTable
+// AfterInitTable
 // @Description: 初始化表结构的的后置操作
 // @author: Roc
 // @datetime 2024-07-01 13:31:09
-func afterInitTable() {
+func AfterInitTable() {
 	// 初始化指标来源配置
 	data_manage.InitEdbSourceVar()
 

+ 79 - 49
models/excel_info.go

@@ -1,15 +1,16 @@
 package models
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ExcelInfo excel表格详情表
 type ExcelInfo struct {
-	ExcelInfoId     int       `orm:"column(excel_info_id);pk"`
+	//ExcelInfoId     int       `orm:"column(excel_info_id);pk"`
+	ExcelInfoId     int       `gorm:"column:excel_info_id;primaryKey"`
 	Source          int       `description:"表格来源,1:excel插件的表格,2:自定义表格,默认:1"`
 	ExcelType       int       `description:"表格类型,1:指标列,2:日期列,默认:1"`
 	ExcelName       string    `description:"表格名称"`
@@ -28,13 +29,15 @@ type ExcelInfo struct {
 
 // Update 更新 excel表格基础信息
 func (excelInfo *ExcelInfo) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(excelInfo, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(excelInfo, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&excelInfo).Select(cols).Updates(&excelInfo).Error
 	return
 }
 
 type MyExcelInfoList struct {
-	ExcelInfoId     int       `orm:"column(excel_info_id);pk"`
+	//ExcelInfoId     int       `orm:"column(excel_info_id);pk"`
+	ExcelInfoId     int       `gorm:"column:excel_info_id;primaryKey"`
 	ExcelName       string    `description:"表格名称"`
 	UniqueCode      string    `description:"表格唯一编码"`
 	ExcelClassifyId int       `description:"表格分类id"`
@@ -49,77 +52,85 @@ type MyExcelInfoList struct {
 
 // AddExcelInfo 新增表格
 func AddExcelInfo(excelInfo *ExcelInfo) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	// 表格信息入库
-	lastId, err := o.Insert(excelInfo)
-	if err != nil {
-		return
-	}
-	excelInfo.ExcelInfoId = int(lastId)
+	//lastId, err := o.Insert(excelInfo)
+	err = global.DbMap[utils.DbNameIndex].Model(&excelInfo).Create(&excelInfo).Error
+	//if err != nil {
+	//	return
+	//}
+	//excelInfo.ExcelInfoId = int(lastId)
 	return
 }
 
 // EditExcelInfo 编辑表格
 func EditExcelInfo(excelInfo *ExcelInfo, updateExcelInfoParams []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	// ETA表格信息变更
-	_, err = o.Update(excelInfo, updateExcelInfoParams...)
+	//_, err = o.Update(excelInfo, updateExcelInfoParams...)
+	err = global.DbMap[utils.DbNameIndex].Model(&excelInfo).Select(updateExcelInfoParams).Updates(&excelInfo).Error
 	return
 }
 
 // GetExcelInfoById 根据id 获取eta表格详情
 func GetExcelInfoById(excelInfoId int) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE excel_info_id=? AND is_delete=0 `
-	err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	//err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).First(&item).Error
 	return
 }
 
 func GetExcelInfoViewById(excelInfoId int) (item *ExcelInfoView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE excel_info_id=? AND is_delete=0 `
-	err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	//err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).First(&item).Error
 	return
 }
 
 func GetExcelInfoCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT COUNT(1) AS count FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
 func GetExcelInfoByCondition(condition string, pars []interface{}) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 // GetNextExcelInfo 根据分类id获取下一个excel表格
 func GetNextExcelInfo(classifyId int) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT b.* FROM excel_classify AS a
 			INNER JOIN excel_info AS b ON a.excel_classify_id=b.excel_classify_id
 			WHERE a.excel_classify_id>? AND is_delete=0
 			ORDER BY a.excel_classify_id ASC
 			LIMIT 1 `
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).First(&item).Error
 	return
 }
 
 // EditExcelInfoImage 修改excel表格的图片
 func EditExcelInfoImage(excelInfoId int, imageUrl string) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 
 	sql := ` UPDATE  excel_info SET excel_image=?, modify_time = NOW() WHERE excel_info_id = ? AND is_delete=0 `
-	_, err = o.Raw(sql, imageUrl, excelInfoId).Exec()
+	//_, err = o.Raw(sql, imageUrl, excelInfoId).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, imageUrl, excelInfoId).Error
 	if err != nil {
 		fmt.Println("EditExcelInfoImage Err:", err.Error())
 		return err
@@ -130,33 +141,37 @@ func EditExcelInfoImage(excelInfoId int, imageUrl string) (err error) {
 
 // GetExcelInfoByUniqueCode 根据unique_code来获取excel表格详情
 func GetExcelInfoByUniqueCode(uniqueCode string) (item *ExcelInfoView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE unique_code=? AND is_delete=0 `
-	err = o.Raw(sql, uniqueCode).QueryRow(&item)
+	//err = o.Raw(sql, uniqueCode).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, uniqueCode).First(&item).Error
 	return
 }
 
 // GetFirstExcelInfoByClassifyId 获取当前分类下,且排序数相同 的排序第一条的数据
 func GetFirstExcelInfoByClassifyId(classifyId int) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE excel_classify_id=? AND is_delete=0 order by sort asc,excel_info_id asc limit 1`
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).First(&item).Error
 	return
 }
 
 // UpdateExcelInfoSortByClassifyId 根据表格id更新排序
 func UpdateExcelInfoSortByClassifyId(classifyId, nowSort, prevExcelInfoId int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` update excel_info set sort = ` + updateSort + ` WHERE excel_classify_id=? and sort > ? AND is_delete=0 `
 	if prevExcelInfoId > 0 {
 		sql += ` or (excel_info_id > ` + fmt.Sprint(prevExcelInfoId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
 	}
-	_, err = o.Raw(sql, classifyId, nowSort).Exec()
+	//_, err = o.Raw(sql, classifyId, nowSort).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, classifyId, nowSort).Error
 	return
 }
 
 type ExcelInfoView struct {
-	ExcelInfoId     int       `orm:"column(excel_info_id);pk"`
+	//ExcelInfoId     int       `orm:"column(excel_info_id);pk"`
+	ExcelInfoId     int       `gorm:"column:excel_info_id;primaryKey"`
 	Source          int       `description:"表格来源,1:excel插件的表格,2:自定义表格,默认:1"`
 	ExcelType       int       `description:"表格类型,1:指标列,2:日期列,默认:1"`
 	ExcelName       string    `description:"表格名称"`
@@ -176,9 +191,10 @@ type ExcelInfoView struct {
 
 // GetExcelInfoByClassifyIdAndName 根据分类id和表格名获取表格信息
 func GetExcelInfoByClassifyIdAndName(classifyId int, excelName string) (item *ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE excel_classify_id = ? and excel_name=? AND is_delete=0 `
-	err = o.Raw(sql, classifyId, excelName).QueryRow(&item)
+	//err = o.Raw(sql, classifyId, excelName).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId, excelName).First(&item).Error
 	return
 }
 
@@ -188,28 +204,36 @@ func GetExcelInfoListByUniqueCodeSlice(uniqueCodeSlice []string) (total int64, i
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM excel_info WHERE unique_code in ("` + utils.GetOrmInReplace(num) + `") AND is_delete=0 `
-	total, err = o.Raw(sql, uniqueCodeSlice).QueryRows(&items)
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT * FROM excel_info WHERE unique_code in ("` + utils.GetOrmInReplace(num) + `") AND is_delete=0 `
+	//total, err = o.Raw(sql, uniqueCodeSlice).QueryRows(&items)
+	sql := ` SELECT * FROM excel_info WHERE unique_code in ? AND is_delete=0 `
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, uniqueCodeSlice).Find(&items).Error
+	if err != nil {
+		return
+	}
+	total = int64(len(items))
 	return
 }
 
 // GetExcelListByCondition 获取excel表格列表数据
 func GetExcelListByCondition(condition string, pars []interface{}, startSize, pageSize int) (item []*MyExcelInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
 	//sql += " ORDER BY sort ASC,chart_info_id DESC LIMIT ?,? "
 	sql += " ORDER BY create_time DESC LIMIT ?,? "
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&item).Error
 	return
 }
 
 // GetNoContentExcelListByCondition 获取没有content的excel表格列表数据
 func GetNoContentExcelListByCondition(condition string, pars []interface{}, startSize, pageSize int) (item []*MyExcelInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT excel_info_id,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time
 FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
@@ -217,43 +241,49 @@ FROM excel_info WHERE 1=1 AND is_delete=0 `
 	}
 	//sql += " ORDER BY sort ASC,chart_info_id DESC LIMIT ?,? "
 	sql += " ORDER BY create_time DESC LIMIT ?,? "
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Error
 	return
 }
 
 func GetExcelListCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT COUNT(1) AS count FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
 // GetExcelViewInfoByExcelInfoId 根据excelInfoId 获取ETA表格详情
 func GetExcelViewInfoByExcelInfoId(excelInfoId int) (item *MyExcelInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE excel_info_id = ? AND is_delete=0 `
-	err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	//err = o.Raw(sql, excelInfoId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, excelInfoId).First(&item).Error
 	return
 }
 
 // GetExcelInfoCountByClassifyId 根据分类id获取名下表格数量
 func GetExcelInfoCountByClassifyId(classifyId int) (total int64, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT count(1) total FROM excel_info WHERE excel_classify_id = ? AND is_delete=0 `
-	err = o.Raw(sql, classifyId).QueryRow(&total)
+	//err = o.Raw(sql, classifyId).QueryRow(&total)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).Count(&total).Error
 	return
 }
 
 func GetExcelInfoListByCondition(condition string, pars []interface{}) (items []*ExcelInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += ` ORDER BY sort asc, excel_info_id asc`
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }

+ 25 - 14
models/excel_info_rule_mapping.go

@@ -1,13 +1,14 @@
 package models
 
 import (
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
-
-	"github.com/beego/beego/v2/client/orm"
 )
 
 type ExcelInfoRuleMapping struct {
-	ExcelInfoRuleMappingId int       `orm:"pk" description:"主键"`
+	//ExcelInfoRuleMappingId int       `orm:"pk" description:"主键"`
+	ExcelInfoRuleMappingId int       `gorm:"primaryKey"`
 	ExcelInfoId            int       `description:"Excel信息ID"`
 	RuleType               int       `description:"规则类型"`
 	LeftValue              string    `description:"左值"`
@@ -27,7 +28,8 @@ type ExcelInfoRuleMapping struct {
 }
 
 type ExcelInfoRuleMappingView struct {
-	ExcelInfoRuleMappingId int    `orm:"pk" description:"主键"`
+	//ExcelInfoRuleMappingId int    `orm:"pk" description:"主键"`
+	ExcelInfoRuleMappingId int    `gorm:"primaryKey"`
 	ExcelInfoId            int    `description:"Excel信息ID"`
 	RuleType               int    `description:"规则类型:1-大于,2-小于,3-介于,4-等于,5-发生日期"`
 	LeftValue              string `description:"左值"`
@@ -47,36 +49,45 @@ type ExcelInfoRuleMappingView struct {
 }
 
 func (e *ExcelInfoRuleMapping) Insert() (insertId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	insertId, err = o.Insert(e)
+	//o := orm.NewOrmUsingDB("data")
+	//insertId, err = o.Insert(e)
+	err = global.DbMap[utils.DbNameIndex].Create(&e).Error
+	if err != nil {
+		return
+	}
+	insertId = int64(e.ExcelInfoRuleMappingId)
 	return
 }
 
 func (e *ExcelInfoRuleMapping) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(e, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(e, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&e).Select(cols).Updates(&e).Error
 	return
 }
 
 // GetExcelRuleMappingByExcelInfoId 根据excelInfoId获取规则映射信息
 func GetExcelRuleMappingByExcelInfoId(id int) (items []*ExcelInfoRuleMappingView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM excel_info_rule_mapping WHERE excel_info_id = ? ORDER BY create_time ASC`
-	_, err = o.Raw(sql, id).QueryRows(&items)
+	//_, err = o.Raw(sql, id).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, id).Find(&items).Error
 	return
 }
 
 // GetExcelRuleMappingById 根据主键Id获取规则映射信息
 func GetExcelRuleMappingById(id int) (item *ExcelInfoRuleMappingView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM excel_info_rule_mapping WHERE excel_info_rule_mapping_id = ?`
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, id).First(&item).Error
 	return
 }
 
 func DeleteExcelRuleMappingById(id int) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `DELETE FROM excel_info_rule_mapping WHERE excel_info_rule_mapping_id = ?`
-	_, err = o.Raw(sql, id).Exec()
+	//_, err = o.Raw(sql, id).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, id).Error
 	return
 }

+ 43 - 28
models/factor_edb_series_calculate_data_qjjs.go

@@ -1,16 +1,17 @@
 package models
 
 import (
+	"eta/eta_chart_lib/global"
 	"eta/eta_chart_lib/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       `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:"指标编码"`
@@ -52,12 +53,13 @@ func (m *FactorEdbSeriesCalculateDataQjjs) Cols() FactorEdbSeriesCalculateDataQj
 }
 
 func (m *FactorEdbSeriesCalculateDataQjjs) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	id, err := o.Insert(m)
+	//o := orm.NewOrmUsingDB("data")
+	//id, err := o.Insert(m)
+	err = global.DbMap[utils.DbNameIndex].Create(&m).Error
 	if err != nil {
 		return
 	}
-	m.FactorEdbSeriesCalculateDataId = int(id)
+	//m.FactorEdbSeriesCalculateDataId = int(id)
 	return
 }
 
@@ -65,21 +67,24 @@ func (m *FactorEdbSeriesCalculateDataQjjs) CreateMulti(items []*FactorEdbSeriesC
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(500, items)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.InsertMulti(500, items)
+	err = global.DbMap[utils.DbNameIndex].CreateInBatches(items, 500).Error
 	return
 }
 
 func (m *FactorEdbSeriesCalculateDataQjjs) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(m, cols...)
+	err = global.DbMap[utils.DbNameIndex].Model(&m).Select(cols).Updates(&m).Error
 	return
 }
 
 func (m *FactorEdbSeriesCalculateDataQjjs) Remove() (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
-	_, err = o.Raw(sql, m.FactorEdbSeriesCalculateDataId).Exec()
+	//_, err = o.Raw(sql, m.FactorEdbSeriesCalculateDataId).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, m.FactorEdbSeriesCalculateDataId).Error
 	return
 }
 
@@ -87,9 +92,11 @@ func (m *FactorEdbSeriesCalculateDataQjjs) MultiRemove(ids []int) (err error) {
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
-	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()
+	//o := orm.NewOrmUsingDB("data")
+	//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()
+	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN ?`, m.TableName(), m.Cols().PrimaryId)
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, ids).Error
 	return
 }
 
@@ -97,39 +104,43 @@ func (m *FactorEdbSeriesCalculateDataQjjs) RemoveByCondition(condition string, p
 	if condition == "" {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
-	_, err = o.Raw(sql, pars).Exec()
+	//_, err = o.Raw(sql, pars).Exec()
+	err = global.DbMap[utils.DbNameIndex].Exec(sql, pars...).Error
 	return
 }
 
 func (m *FactorEdbSeriesCalculateDataQjjs) GetItemById(id int) (item *FactorEdbSeriesCalculateDataQjjs, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *FactorEdbSeriesCalculateDataQjjs) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FactorEdbSeriesCalculateDataQjjs, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 func (m *FactorEdbSeriesCalculateDataQjjs) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	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).QueryRow(&count)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
 func (m *FactorEdbSeriesCalculateDataQjjs) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FactorEdbSeriesCalculateDataQjjs, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -139,12 +150,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).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func (m *FactorEdbSeriesCalculateDataQjjs) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FactorEdbSeriesCalculateDataQjjs, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -154,7 +166,9 @@ 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, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -192,7 +206,8 @@ func (m *FactorEdbSeriesCalculateDataQjjs) GetEdbDataList(seriesId int, edbInfoI
 
 	sql += ` ORDER BY data_time ASC `
 	sql = fmt.Sprintf(sql, m.TableName())
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Raw(sql, pars).QueryRows(&list)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Find(&list).Error
 	return
 }

+ 6 - 4
models/referenced_excel_config.go

@@ -1,12 +1,14 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 type ReferencedExcelConfig struct {
-	ReferencedExcelConfigId int       `orm:"column(referenced_excel_config_id);pk;auto" ` // excel表格配置id
+	//ReferencedExcelConfigId int       `orm:"column(referenced_excel_config_id);pk;auto" ` // excel表格配置id
+	ReferencedExcelConfigId int       `gorm:"column:referenced_excel_config_id;primaryKey;autoIncrement" ` // excel表格配置id
 	UniqueCode              string    // 表格唯一编码
 	ReferencedId            int       // 被引用的id,报告就是报告id,pptId
 	FromScene               int       // 引用类型 1智能研报 2研报列表 3英文研报 4PPT 5英文ppt
@@ -22,8 +24,8 @@ type ReferencedExcelConfig struct {
 
 // getByCode
 func GetReferencedExcelConfig(referencedId, fromScene int, uniqueCode, uuid string) (item ReferencedExcelConfig, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? AND unique_code = ? AND uuid = ? `
-	err = o.Raw(sql, referencedId, fromScene, uniqueCode, uuid).QueryRow(&item)
+	err = o.Raw(sql, referencedId, fromScene, uniqueCode, uuid).First(&item).Error
 	return
 }

+ 11 - 4
models/share_chart_refresh_log.go

@@ -1,13 +1,15 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 // ShareChartRefreshLog 分享图表的日志
 type ShareChartRefreshLog struct {
-	Id         int    `orm:"column(id);pk"`
+	//Id         int    `orm:"column(id);pk"`
+	Id         int    `gorm:"column:id;primaryKey"`
 	Ip         string `description:"来源ip"`
 	ChartId    int    `description:"图表分类id"`
 	CreateTime time.Time
@@ -15,7 +17,12 @@ type ShareChartRefreshLog struct {
 
 // AddShareChartRefreshLog 添加日志
 func AddShareChartRefreshLog(item *ShareChartRefreshLog) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("data")
+	err = global.DbMap[utils.DbNameIndex].Create(&item).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(item.Id)
+	//lastId, err = o.Insert(item)
 	return
 }

+ 7 - 4
models/table.go

@@ -1,12 +1,14 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 type TableInfo struct {
-	TableInfoId     int       `orm:"column(table_info_id);pk"`
+	TableInfoId int `gorm:"column:table_info_id;primaryKey"`
+	//TableInfoId     int       `orm:"column(table_info_id);pk"`
 	TableName       string    `description:"表格名称"`
 	UniqueCode      string    `description:"表格唯一编码"`
 	TableClassifyId int       `description:"表格分类id"`
@@ -24,9 +26,10 @@ type TableInfo struct {
 
 // GetTableInfoByUniqueCode 根据union_code 获取表格信息
 func GetTableInfoByUniqueCode(uniqueCode string) (item *TableInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM table_info WHERE unique_code=? `
-	err = o.Raw(sql, uniqueCode).QueryRow(&item)
+	//err = o.Raw(sql, uniqueCode).QueryRow(&item)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, uniqueCode).First(&item).Error
 	return
 }
 

+ 7 - 5
models/table_data.go

@@ -1,12 +1,14 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_chart_lib/global"
+	"eta/eta_chart_lib/utils"
 	"time"
 )
 
 type TableData struct {
-	TableDataId       int       `orm:"column(table_data_id);pk"`
+	//TableDataId       int       `orm:"column(table_data_id);pk"`
+	TableDataId       int       `gorm:"column:table_data_id;primaryKey"`
 	TableInfoId       int       `description:"表格id"`
 	Date              time.Time `description:"指标时间"`
 	DataCol1          string    `orm:"column(data_col_1);" description:"第1个表格的数据"`
@@ -29,12 +31,12 @@ type TableData struct {
 
 // GetTableDataListByTableInfoId 根据表格id获取数据列表
 func GetTableDataListByTableInfoId(tableInfoId int) (items []*TableData, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	pars := make([]interface{}, 0)
 	pars = append(pars, tableInfoId)
 
 	sql := ` SELECT * FROM table_data WHERE table_info_id = ? order by sort asc `
-
-	_, err = o.Raw(sql, tableInfoId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameIndex].Raw(sql, tableInfoId).Find(&items).Error
+	//_, err = o.Raw(sql, tableInfoId).QueryRows(&items)
 	return
 }

+ 5 - 6
services/data/chart_theme.go

@@ -17,14 +17,14 @@ import (
 // @return err error
 func GetChartThemeConfig(chartThemeId, source, chartType int) (chartTheme *chart_theme.ChartTheme, err error) {
 	chartTheme, err = chart_theme.GetChartThemeId(chartThemeId)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+	if err != nil && !utils.IsErrNoRow(err) {
 		return
 	}
 
 	err = nil
 
 	// 如果找到了,那么就返回
-	if chartTheme != nil {
+	if chartTheme != nil && chartTheme.ChartThemeId > 0 {
 		// 兼容历史数据,加入新字段LineOptionList
 		newConfig, e := ConvertOldChartOptions(chartTheme.Config)
 		if e == nil {
@@ -46,14 +46,14 @@ func GetChartThemeConfig(chartThemeId, source, chartType int) (chartTheme *chart
 
 	// 寻找默认的主题id
 	chartTheme, err = chart_theme.GetChartThemeId(chartThemeType.DefaultChartThemeId)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+	if err != nil && !utils.IsErrNoRow(err) {
 		return
 	}
 
 	err = nil
 
 	// 如果找到了,那么就返回
-	if chartTheme != nil {
+	if chartTheme != nil && chartTheme.ChartThemeTypeId > 0 {
 		// 兼容历史数据,加入新字段LineOptionList
 		newConfig, e := ConvertOldChartOptions(chartTheme.Config)
 		if e == nil {
@@ -79,7 +79,6 @@ func GetChartThemeConfig(chartThemeId, source, chartType int) (chartTheme *chart
 	return
 }
 
-
 // 兼容历史数据,加入新字段LineOptionList
 func ConvertOldChartOptions(config string) (newConfig string, err error) {
 	var oldTheme chart_theme.OldChartOptions
@@ -108,4 +107,4 @@ func ConvertOldChartOptions(config string) (newConfig string, err error) {
 	newThemeStr, _ := json.Marshal(newTheme)
 	newConfig = string(newThemeStr)
 	return
-}
+}

+ 3 - 5
services/data/edb_info.go

@@ -317,7 +317,7 @@ func EdbInfoRefreshAllFromBaseBak(edbInfoIdList []int, refreshAll bool) (err err
 // getRefreshEdbInfoList 获取待更新的指标(普通基础指标、普通运算指标,预测运算指标)
 func getRefreshEdbInfoListByIds(edbInfoIdList []int) (newBaseEdbInfoArr, newBasePredictEdbInfoArr []*data_manage.EdbInfo, newCalculateMap, newPredictCalculateMap map[int]*data_manage.EdbInfo, calculateArr, predictCalculateArr []int, err error, errMsg string) {
 	calculateList, err := data_manage.GetEdbInfoAllCalculateByEdbInfoIdList(edbInfoIdList)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+	if err != nil && !utils.IsErrNoRow(err) {
 		err = errors.New("GetEdbInfoAllCalculate Err:" + err.Error())
 		return
 	}
@@ -1268,9 +1268,8 @@ func GetEdbSourceByEdbInfoIdListForExcel(edbInfoIdList []int) (sourceNameList, s
 	return
 }
 
-
 // HandleDataByLinearRegressionToList 插值法补充数据(线性方程式)
-func HandleDataByLinearRegressionToList (edbInfoDataList []*models.EdbDataList, handleDataMap map[string]float64) (dataTimeList []string,valueList []float64, err error) {
+func HandleDataByLinearRegressionToList(edbInfoDataList []*models.EdbDataList, handleDataMap map[string]float64) (dataTimeList []string, valueList []float64, err error) {
 	if len(edbInfoDataList) < 2 {
 		return
 	}
@@ -1408,9 +1407,8 @@ func HandleDataByLinearRegressionToListV2(edbInfoDataList []*models.EdbDataList,
 	return
 }
 
-
 // HandleDataByLinearRegressionToListV3 插值法补充数据(线性方程式)-直接补充指标起始日期间的所有数据
-func HandleDataByLinearRegressionToListV3 (edbInfoDataList []*models.EdbDataList, handleDataMap map[string]float64) (newEdbInfoDataList []*models.EdbDataList, dataTimeList []string,valueList []float64, err error) {
+func HandleDataByLinearRegressionToListV3(edbInfoDataList []*models.EdbDataList, handleDataMap map[string]float64) (newEdbInfoDataList []*models.EdbDataList, dataTimeList []string, valueList []float64, err error) {
 	if len(edbInfoDataList) < 2 {
 		return
 	}

+ 1 - 1
services/data/excel/balance_table.go

@@ -80,7 +80,7 @@ func GetBalanceExcelChartSingle(chartInfoId, ChartEdbId int, lang string) (mappi
 	excelInfoId := mappingListTmp[0].ExcelInfoId
 	excelInfo, err := excel.GetExcelInfoById(excelInfoId)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			errMsg = "表格不存在"
 			err = fmt.Errorf(errMsg)
 			return

+ 1 - 1
services/data/excel/excel_info.go

@@ -1125,7 +1125,7 @@ func GetExcelDetailInfoByExcelInfoId(uniqueCode, lang string) (excelDetail excel
 	excelInfo, err := excel.GetExcelInfoByUniqueCode(uniqueCode)
 	if err != nil {
 		err = errors.New("获取ETA表格信息失败,Err:" + err.Error())
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			errMsg = "ETA表格被删除,请刷新页面"
 			err = errors.New("ETA表格被删除,请刷新页面,Err:" + err.Error())
 		}

+ 6 - 6
services/data/range_analysis/chart_info.go

@@ -507,7 +507,7 @@ func GetChartDataByEdbInfoList(chartInfoId int, dateType, startYear int, startDa
 	dataResp = models.ChartRangeAnalysisDataResp{ChartRangeAnalysisExtraConf: req}
 	if req.MultipleGraphConfigId > 0 {
 		multipleGraphConfigEdbMappingList, e := data_manage.GetMultipleGraphConfigEdbMappingListByIdAndSource(req.MultipleGraphConfigId, utils.CHART_SOURCE_RANGE_ANALYSIS)
-		if e != nil && e.Error() != utils.ErrNoRow() {
+		if e != nil && !utils.IsErrNoRow(e) {
 			err = fmt.Errorf("获取区间计算图表, 指标信息失败, Err:" + e.Error())
 			return
 		}
@@ -527,7 +527,7 @@ func GetChartDataByEdbInfoListBySeries(chartInfoId int, dateType, startYear int,
 	chartSeriesOb := new(data_manage.FactorEdbSeriesChartMapping)
 	seriesMappingItem, err := chartSeriesOb.GetItemByChartInfoId(chartInfoId)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			err = fmt.Errorf("图表关联关系不存在")
 			return
 		} else {
@@ -638,7 +638,7 @@ func GetChartDataByEdbInfoListBySeries(chartInfoId int, dateType, startYear int,
 	// 查询配置关联关系
 	if req.MultipleGraphConfigId > 0 {
 		multipleGraphConfigEdbMappingList, e := data_manage.GetMultipleGraphConfigEdbMappingListByIdAndSource(req.MultipleGraphConfigId, utils.CHART_SOURCE_RANGE_ANALYSIS)
-		if e != nil && e.Error() != utils.ErrNoRow() {
+		if e != nil && !utils.IsErrNoRow(e) {
 			err = fmt.Errorf("获取区间计算图表, 指标信息失败, Err:" + e.Error())
 			return
 		}
@@ -855,7 +855,7 @@ func ChartInfoRefresh(chartInfoId int, uniqueCode string) (isAsync bool, err err
 	if chartInfoId > 0 {
 		chartInfo, err = models.GetChartInfoById(chartInfoId)
 		if err != nil {
-			if err.Error() == utils.ErrNoRow() {
+			if utils.IsErrNoRow(err) {
 				errMsg = "图表已被删除,请刷新页面"
 				err = errors.New(errMsg)
 				return
@@ -867,7 +867,7 @@ func ChartInfoRefresh(chartInfoId int, uniqueCode string) (isAsync bool, err err
 	} else {
 		chartInfo, err = models.GetChartInfoByUniqueCode(uniqueCode)
 		if err != nil {
-			if err.Error() == utils.ErrNoRow() {
+			if utils.IsErrNoRow(err) {
 				errMsg = "图表已被删除,请刷新页面"
 				err = errors.New(errMsg)
 				return
@@ -909,7 +909,7 @@ func ChartInfoRefresh(chartInfoId int, uniqueCode string) (isAsync bool, err err
 	chartSeriesOb := new(data_manage.FactorEdbSeriesChartMapping)
 	seriesMappingItem, err := chartSeriesOb.GetItemByChartInfoId(chartInfo.ChartInfoId)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			err = nil
 		} else {
 			err = fmt.Errorf("获取图表关联失败, Err: " + err.Error())

+ 2 - 2
services/excel/lucky_sheet.go

@@ -196,7 +196,7 @@ type LuckySheetDataValue struct {
 	VerticalType   int                    ` description:"垂直对齐,	0 中间、1 上、2下"`
 	Fs             interface{}            `json:"fs" description:"字体大小,14"`
 	Cl             interface{}            `json:"cl" description:"删除线,	0 常规 、 1 删除线"`
-	Ht             interface{}            `json:"instance" description:"水平对齐,	0 居中、1 左、2右"`
+	Ht             interface{}            `json:"ht" description:"水平对齐,	0 居中、1 左、2右"`
 	Vt             interface{}            `json:"vt" description:"垂直对齐,	0 中间、1 上、2下"`
 	//TextRotate     string                    `json:"tr" description:"竖排文字,	3"`
 	//RotateText     string                    `json:"rt" description:"文字旋转角度,	介于0~180之间的整数,包含0和180"`
@@ -221,7 +221,7 @@ type LuckySheetDataCellType struct {
 		VerticalType   int         `description:"垂直对齐,	0 中间、1 上、2下"`
 		Fs             interface{} `json:"fs" description:"字体大小,14"`
 		Cl             interface{} `json:"cl" description:"删除线,	0 常规 、 1 删除线"`
-		Ht             interface{} `json:"instance" description:"水平对齐,	0 居中、1 左、2右"`
+		Ht             interface{} `json:"ht" description:"水平对齐,	0 居中、1 左、2右"`
 		Vt             interface{} `json:"vt" description:"垂直对齐,	0 中间、1 上、2下"`
 		Un             interface{} `json:"un" description:""`
 		Bold           interface{} `json:"bl" description:"粗体,0 常规 、 1加粗	"`

+ 85 - 1
utils/common.go

@@ -13,6 +13,7 @@ import (
 	"encoding/json"
 	"errors"
 	"fmt"
+	"gorm.io/gorm"
 	"image"
 	"image/png"
 	"io"
@@ -211,7 +212,18 @@ func StrListToString(strList []string) (str string) {
 
 // 数据没有记录
 func ErrNoRow() string {
-	return "<QuerySeter> no row found"
+	return "record not found"
+}
+
+// IsErrNoRow
+// @Description: 判断是否是gorm的查询不到数据的报错
+// @param err
+// @return bool
+func IsErrNoRow(err error) bool {
+	if err == nil {
+		return false
+	}
+	return errors.Is(err, gorm.ErrRecordNotFound)
 }
 
 // 校验邮箱格式
@@ -1417,3 +1429,75 @@ func RoundNumber(num string, decimalPlaces int, hasPercent bool) string {
 	}
 	return numStr
 }
+
+// ForwardPars
+// @Description: 向前插入参数
+// @param pars
+// @param values
+// @return []interface{}
+func ForwardPars(pars []interface{}, values ...interface{}) []interface{} {
+	if len(values) <= 0 {
+		return pars
+	}
+	return append(values, pars...)
+}
+
+// GormDateStrToDateTimeStr
+// @Description: gorm日期字符串格式转正常显示的日期时间字符串
+// @param originalString
+// @return formatStr
+func GormDateStrToDateTimeStr(originalString string) (formatStr string) {
+	if originalString == `` {
+		return
+	}
+	if strings.Contains(originalString, "0001-01-01") {
+		return
+	}
+
+	formatStr = originalString
+	if !strings.Contains(originalString, "T") {
+		return
+	}
+
+	// 解析原始字符串
+	t, err := time.Parse(FormatDateWallWithLoc, originalString)
+	if err != nil {
+		fmt.Println("Error parsing time:", err)
+		return
+	}
+
+	// 重新格式化时间
+	formatStr = t.Format(FormatDateTime)
+
+	return
+}
+
+// GormDateStrToDateStr
+// @Description: gorm日期字符串格式转正常显示的日期字符串
+// @param originalString
+// @return formatStr
+func GormDateStrToDateStr(originalString string) (formatStr string) {
+	if originalString == `` {
+		return
+	}
+	if strings.Contains(originalString, "0001-01-01") {
+		return
+	}
+
+	formatStr = originalString
+	if !strings.Contains(originalString, "T") {
+		return
+	}
+
+	// 解析原始字符串
+	t, err := time.Parse(FormatDateWallWithLoc, originalString)
+	if err != nil {
+		fmt.Println("Error parsing time:", err)
+		return
+	}
+
+	// 重新格式化时间
+	formatStr = t.Format(FormatDate)
+
+	return
+}

+ 7 - 0
utils/config.go

@@ -17,6 +17,7 @@ var (
 	MYSQL_URL      string //数据库连接
 	MYSQL_URL_DATA string
 	MYSQL_URL_EDB  string
+	DbDriverName   string // 数据库驱动名称
 	MgoUrlData     string // mongodb数据库连接配置
 
 	REDIS_CACHE string //缓存地址
@@ -107,6 +108,12 @@ func init() {
 	MYSQL_URL_DATA = config["mysql_url_data"]
 	MYSQL_URL_EDB = config["mysql_url_edb"]
 
+	// 数据库驱动名称
+	DbDriverName = config["db_driver_name"]
+	if DbDriverName == "" {
+		DbDriverName = "mysql"
+	}
+
 	// mongodb数据库连接配置
 	MgoUrlData = config["mgo_url_data"]
 

+ 24 - 8
utils/constants.go

@@ -2,14 +2,15 @@ package utils
 
 // 常量定义
 const (
-	FormatTime            = "15:04:05"                //时间格式
-	FormatDate            = "2006-01-02"              //日期格式
-	FormatDateUnSpace     = "20060102"                //日期格式
-	FormatDateTime        = "2006-01-02 15:04:05"     //完整时间格式
-	HlbFormatDateTime     = "2006-01-02_15:04:05.999" //完整时间格式
-	FormatDateTimeUnSpace = "20060102150405"          //完整时间格式
-	FormatYearMonthDate   = "2006-01"                 //日期格式
-	PageSize15            = 15                        //列表页每页数据量
+	FormatTime            = "15:04:05"                  //时间格式
+	FormatDate            = "2006-01-02"                //日期格式
+	FormatDateUnSpace     = "20060102"                  //日期格式
+	FormatDateWallWithLoc = "2006-01-02T15:04:05-07:00" //日期格式
+	FormatDateTime        = "2006-01-02 15:04:05"       //完整时间格式
+	HlbFormatDateTime     = "2006-01-02_15:04:05.999"   //完整时间格式
+	FormatDateTimeUnSpace = "20060102150405"            //完整时间格式
+	FormatYearMonthDate   = "2006-01"                   //日期格式
+	PageSize15            = 15                          //列表页每页数据量
 	PageSize5             = 5
 	PageSize10            = 10
 	PageSize20            = 20
@@ -234,3 +235,18 @@ const (
 const (
 	CACHE_CHART_AUTH = "chart:auth:" //图表数据
 )
+
+const (
+	DbDriverByMysql = "mysql"
+	DbDriverByDm    = "dm"
+)
+
+const (
+	DbNameMaster      = "eta_master"
+	DbNameReport      = "eta_report"
+	DbNameManualIndex = "eta_manual_index"
+	DbNameIndex       = "eta_index"
+	DbNameGL          = "eta_gl"
+	DbNameAI          = "eta_ai"
+	DbNameWeekly      = "weekly_report"
+)

+ 358 - 0
utils/sql.go

@@ -0,0 +1,358 @@
+package utils
+
+import (
+	"bytes"
+	"errors"
+	"fmt"
+	"reflect"
+	"regexp"
+	"text/template"
+)
+
+type Driver string
+type SqlCondition string
+
+const (
+	DM            Driver       = "dm"
+	MySql         Driver       = "mysql"
+	GroupUnit     SqlCondition = "GroupUnit"
+	Distinct      SqlCondition = "Distinct"
+	Order         SqlCondition = "Order"
+	Delimiter     SqlCondition = "Delimiter"
+	ConvertColumn SqlCondition = "ConvertColumn"
+)
+
+var TemplateMap = map[SqlCondition]map[Driver]string{
+	GroupUnit: {
+		MySql: `GROUP_CONCAT({{.Distinct}} {{.Column}} {{.Order}} SEPARATOR '{{.Delimiter}}')`,
+		DM:    `LISTAGG({{.Distinct}} {{.Column}},'{{.Delimiter}}') WITHIN GROUP ({{.Order}})`,
+	},
+	ConvertColumn: {
+		MySql: `CONVERT({{.ConvertColumn}} USING gbk )`,
+		DM:    `{{.ConvertColumn}}`,
+	},
+}
+
+var supportDriverMap = map[string]Driver{
+	"mysql": MySql,
+	"dm":    DM,
+	//"postgres": Postgres,
+}
+
+type QueryParam struct {
+	Driver        string
+	Column        string
+	Order         string
+	Distinct      string
+	Delimiter     string
+	OrderField    string
+	OrderRule     string
+	ConvertColumn string `description:"Convert指令传递的clounm"`
+	HasDistinct   bool
+}
+type SqlParam interface {
+	GetParamName() string
+	GetFormatConditionStr(param *QueryParam) string
+}
+type DistinctParam struct {
+}
+
+func (distinctParam *DistinctParam) GetParamName() string {
+	return "Distinct"
+}
+func (distinctParam *DistinctParam) GetFormatConditionStr(param *QueryParam) string {
+	if param.HasDistinct {
+		return "DISTINCT"
+	}
+	return ""
+}
+
+type ConvertParam struct {
+}
+
+func (convertParam *ConvertParam) GetParamName() string {
+	return "Convert"
+}
+func (convertParam *ConvertParam) GetFormatConditionStr(param *QueryParam) (sqlStr string) {
+	dbDriver, _ := getDriverInstance(param.Driver)
+	if param.ConvertColumn == "" {
+		FileLog.Error("转换字段为空,无法生成聚合sql")
+		return
+	}
+	var templateSqlStr string
+	if _, ok := TemplateMap[ConvertColumn][dbDriver]; !ok {
+		templateSqlStr = TemplateMap[ConvertColumn][MySql]
+	} else {
+		templateSqlStr = TemplateMap[ConvertColumn][dbDriver]
+	}
+	if templateSqlStr == "" {
+		FileLog.Error("转换sql模板不存在,无法生成转换sql")
+		return
+	}
+	templateSql, err := template.New("ConvertColumn").Parse(templateSqlStr)
+	if err != nil {
+		FileLog.Error("failed to parse template: %v", err)
+		return
+	}
+	//反射获取结构体的值
+	value := reflect.ValueOf(param)
+	// 检查是否是指针
+	if value.Kind() != reflect.Ptr {
+		fmt.Println("请求参数必须是一个结构体")
+		return
+	}
+	// 获取结构体的元素
+	elem := value.Elem()
+	// 检查是否是结构体
+	if elem.Kind() != reflect.Struct {
+		fmt.Println("请求参数必须是一个结构体")
+		return
+	}
+	// 获取字段的值
+	fieldValue := elem.FieldByName("ConvertColumn")
+	// 检查字段是否存在
+	if !fieldValue.IsValid() {
+		fmt.Printf("Error: field %s not found\n", "ConvertColumn")
+		return
+	}
+	// 检查字段是否可导出
+	if !fieldValue.CanSet() {
+		fmt.Printf("Error: field %s is not exported and cannot be set\n", "ConvertColumn")
+		return
+	}
+	// 渲染模板
+	var buf bytes.Buffer
+	err = templateSql.Execute(&buf, param)
+	if err != nil {
+		fmt.Sprintf("执行模板填充失败: %v", err)
+		return
+	}
+	sqlStr = buf.String()
+	fmt.Printf("生成的准换编码语句为:%s\n", sqlStr)
+	return sqlStr
+}
+
+var sqlGeneratorFactory = map[SqlCondition]SqlParam{
+	// 添加支持的语法
+	GroupUnit: &GroupUnitParam{
+		supportGrams: []SqlCondition{
+			Distinct,
+			Order,
+			Delimiter,
+		},
+	},
+	Order:         &OrderParam{},
+	Delimiter:     &DelimiterParam{},
+	Distinct:      &DistinctParam{},
+	ConvertColumn: &ConvertParam{},
+}
+
+type DelimiterParam struct {
+}
+
+func (delimiterParam *DelimiterParam) GetParamName() string {
+	return "Delimiter"
+}
+func (delimiterParam *DelimiterParam) GetFormatConditionStr(param *QueryParam) string {
+	if param.Delimiter == "" {
+		return ","
+	}
+	return param.Delimiter
+}
+
+type OrderParam struct {
+	Field string
+	Rule  string
+}
+
+func (orderParam *OrderParam) GetParamName() string {
+	return "Order"
+}
+
+func (orderParam *OrderParam) GetFormatConditionStr(param *QueryParam) string {
+	if param.OrderField == "" {
+		orderParam.Field = param.Column
+	} else {
+		orderParam.Field = param.OrderField
+	}
+	if param.OrderRule != "" {
+		if param.OrderRule == "ASC" || param.OrderRule == "DESC" {
+			orderParam.Rule = param.OrderRule
+		}
+	}
+	return fmt.Sprintf("ORDER BY %s %s", orderParam.Field, orderParam.Rule)
+}
+
+// 高级语法聚合
+type GroupUnitParam struct {
+	supportGrams []SqlCondition
+}
+
+func (groupUnitParam *GroupUnitParam) GetParamName() string {
+	return "GroupUnit"
+}
+
+func (groupUnitParam *GroupUnitParam) GetFormatConditionStr(param *QueryParam) (sqlStr string) {
+	dbDriver, _ := getDriverInstance(param.Driver)
+	if param.Column == "" {
+		FileLog.Error("聚合字段为空,无法生成聚合sql")
+		return
+	}
+	var templateSqlStr string
+	if _, ok := TemplateMap[GroupUnit][dbDriver]; !ok {
+		templateSqlStr = TemplateMap[GroupUnit][MySql]
+	} else {
+		templateSqlStr = TemplateMap[GroupUnit][dbDriver]
+	}
+	if templateSqlStr == "" {
+		FileLog.Error("聚合sql模板不存在,无法生成聚合sql")
+		return
+	}
+	templateSql, err := template.New("GroupUnit").Parse(templateSqlStr)
+	if err != nil {
+		FileLog.Error("failed to parse template: %v", err)
+		return
+	}
+	//反射获取结构体的值
+	value := reflect.ValueOf(param)
+	// 检查是否是指针
+	if value.Kind() != reflect.Ptr {
+		fmt.Println("请求参数必须是一个结构体")
+		return
+	}
+	// 获取结构体的元素
+	elem := value.Elem()
+	// 检查是否是结构体
+	if elem.Kind() != reflect.Struct {
+		fmt.Println("请求参数必须是一个结构体")
+		return
+	}
+	for _, supportGram := range groupUnitParam.supportGrams {
+		// 获取字段的值
+		fieldValue := elem.FieldByName(string(supportGram))
+		// 检查字段是否存在
+		if !fieldValue.IsValid() {
+			fmt.Printf("Error: field %s not found\n", supportGram)
+			continue
+		}
+		// 检查字段是否可导出
+		if !fieldValue.CanSet() {
+			fmt.Printf("Error: field %s is not exported and cannot be set\n", supportGram)
+			continue
+		}
+		newValue := sqlGeneratorFactory[supportGram].GetFormatConditionStr(param)
+		// 检查新值的类型是否匹配
+		newValueValue := reflect.ValueOf(newValue)
+		if fieldValue.Type() != newValueValue.Type() {
+			fmt.Printf("字段%s类型不匹配 : 期望的类型是 %s, 传入的类型为: %s", supportGram, fieldValue.Type(), newValueValue.Type())
+			return
+		}
+		// 设置字段的值
+		fieldValue.Set(newValueValue)
+	}
+	// 渲染模板
+	var buf bytes.Buffer
+	err = templateSql.Execute(&buf, param)
+	if err != nil {
+		fmt.Sprintf("执行模板填充失败: %v", err)
+		return
+	}
+	sqlStr = buf.String()
+	fmt.Printf("生成的聚合语句为:%s\n", sqlStr)
+	return sqlStr
+}
+
+func GroupUnitFunc(driver string, column, delimiter string, columnOrder bool, orderField, orderRule string, hasDistinct bool) (sqlStr string) {
+	dbDriver, _ := getDriverInstance(driver)
+	if delimiter == "" {
+		delimiter = ","
+	}
+	if column == "" {
+		column = "[UNKNOWN COLUMN]"
+	}
+	//if tableAlia != "" {
+	//	column = fmt.Sprintf("%s.%s", tableAlia, column)
+	//}
+	var sqlOrder, strDistinct string
+	if hasDistinct {
+		strDistinct = "DISTINCT"
+	}
+	if columnOrder && orderField == "" {
+		orderField = column
+	}
+	switch dbDriver {
+	case DM:
+		if columnOrder {
+			sqlOrder = fmt.Sprintf("WITHIN GROUP (ORDER BY %s %s)", orderField, orderRule)
+		}
+		sqlStr = fmt.Sprintf("LISTAGG(%s %s, '%s') %s", strDistinct, column, delimiter, sqlOrder)
+	default:
+		// 默认使用MySQL的语法
+		if columnOrder {
+			sqlOrder = fmt.Sprintf("ORDER BY %s %s", orderField, orderRule)
+		}
+		sqlStr = fmt.Sprintf("GROUP_CONCAT(%s %s %s SEPARATOR '%s')", strDistinct, column, sqlOrder, delimiter)
+	}
+	return sqlStr
+}
+
+func getDriverInstance(driver string) (dbDriver Driver, err error) {
+	if driver == "" {
+		dbDriver = supportDriverMap[DbDriverName]
+	}
+	if currentDriver, ok := supportDriverMap[driver]; !ok {
+		err = errors.New("不支持的数据库驱动类型")
+		return
+	} else {
+		dbDriver = currentDriver
+	}
+	return
+}
+
+func NeedDateOrTimeFormat(driver string) bool {
+	var dbDriver Driver
+	if driver == "" {
+		dbDriver = supportDriverMap[DbDriverName]
+	} else {
+		dbDriver, _ = getDriverInstance(driver)
+	}
+	if dbDriver == DM {
+		return true
+	}
+	return false
+}
+
+func ReplaceDriverKeywords(driver string, sql string) string {
+	dbDriver, _ := getDriverInstance(driver)
+	rules := map[Driver]map[string]string{
+		DM: {
+			"admin":    `"admin"`,
+			"value":    `"value"`,
+			"exchange": `"exchange"`,
+			"size":     `"size"`,
+			"a.from":   `a."from"`,
+			"b.from":   `b."from"`,
+		},
+	}
+	replacements, ok := rules[dbDriver]
+	if !ok {
+		return sql
+	}
+	for keyword, replace := range replacements {
+		// 仅替换单独的单词,复合单词含关键词不管
+		pattern := fmt.Sprintf(`\b%s\b`, regexp.QuoteMeta(keyword))
+		re := regexp.MustCompile(pattern)
+		sql = re.ReplaceAllString(sql, replace)
+	}
+	return sql
+}
+
+func GenerateQuerySql(gram SqlCondition, param *QueryParam) (sqlGenerator string) {
+	if exec, ok := sqlGeneratorFactory[gram]; !ok {
+		FileLog.Error("不支持的语法:%s", gram)
+		return
+	} else {
+		sqlGenerator = exec.GetFormatConditionStr(param)
+	}
+	return
+}