瀏覽代碼

db初始化

Roc 6 月之前
父節點
當前提交
46dae549cf
共有 4 個文件被更改,包括 142 次插入603 次删除
  1. 5 0
      go.mod
  2. 11 0
      go.sum
  3. 74 603
      models/db.go
  4. 52 0
      models/db2.go

+ 5 - 0
go.mod

@@ -33,6 +33,7 @@ require (
 	github.com/mojocn/base64Captcha v1.3.6
 	github.com/nosixtools/solarlunar v0.0.0-20211112060703-1b6dea7b4a19
 	github.com/olivere/elastic/v7 v7.0.32
+	github.com/op/go-logging v0.0.0-20160315200505-970db520ece7
 	github.com/pdfcpu/pdfcpu v0.8.0
 	github.com/qiniu/qmgo v1.1.8
 	github.com/rdlucklib/rdluck_tools v1.0.3
@@ -48,6 +49,8 @@ require (
 	go.mongodb.org/mongo-driver v1.15.0
 	golang.org/x/net v0.21.0
 	gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
+	gorm.io/driver/mysql v1.5.7
+	gorm.io/gorm v1.25.12
 )
 
 require (
@@ -91,6 +94,8 @@ require (
 	github.com/hashicorp/hcl v1.0.0 // indirect
 	github.com/hhrutter/lzw v1.0.0 // indirect
 	github.com/hhrutter/tiff v1.0.1 // indirect
+	github.com/jinzhu/inflection v1.0.0 // indirect
+	github.com/jinzhu/now v1.1.5 // indirect
 	github.com/jmespath/go-jmespath v0.4.0 // indirect
 	github.com/josharian/intern v1.0.0 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect

+ 11 - 0
go.sum

@@ -327,6 +327,10 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO
 github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ=
 github.com/jackc/pgx v3.6.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=
+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/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
 github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
 github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
@@ -445,6 +449,8 @@ github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAl
 github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs=
 github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw=
 github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=
+github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88=
+github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
 github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b h1:FfH+VrHHk6Lxt9HdVS0PXzSXFyS2NbZKXv33FYPol0A=
 github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b/go.mod h1:AC62GU6hc0BrNm+9RK9VSiwa/EUe1bkIeFORAMcHvJU=
 github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
@@ -908,6 +914,11 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
 gopkg.in/yaml.v3 v3.0.0/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=
 honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

+ 74 - 603
models/db.go

@@ -1,639 +1,110 @@
 package models
 
 import (
-	"eta_gn/eta_api/models/ai_summary"
-	"eta_gn/eta_api/models/aimod"
-	"eta_gn/eta_api/models/company"
+	_ "dm"
+	dm "dmgorm2"
 	"eta_gn/eta_api/models/data_manage"
-	"eta_gn/eta_api/models/data_manage/chart_theme"
-	"eta_gn/eta_api/models/data_manage/cross_variety"
-	"eta_gn/eta_api/models/data_manage/data_manage_permission"
-	"eta_gn/eta_api/models/data_manage/edb_refresh"
-	"eta_gn/eta_api/models/data_manage/excel"
-	future_good2 "eta_gn/eta_api/models/data_manage/future_good"
-	"eta_gn/eta_api/models/data_manage/supply_analysis"
-	"eta_gn/eta_api/models/data_stat"
-	"eta_gn/eta_api/models/eta_trial"
-	"eta_gn/eta_api/models/fe_calendar"
-	"eta_gn/eta_api/models/ppt_english"
-	"eta_gn/eta_api/models/report"
-	"eta_gn/eta_api/models/report_approve"
-	"eta_gn/eta_api/models/sandbox"
-	"eta_gn/eta_api/models/semantic_analysis"
-	"eta_gn/eta_api/models/smart_report"
-	"eta_gn/eta_api/models/speech_recognition"
-	"eta_gn/eta_api/models/system"
-	"eta_gn/eta_api/models/yb"
 	"eta_gn/eta_api/utils"
+	"fmt"
+	"gorm.io/gorm"
+	"gorm.io/gorm/logger"
+	"io"
+	"log"
+	"os"
 	"time"
 
 	_ "github.com/go-sql-driver/mysql"
+)
 
-	"github.com/beego/beego/v2/client/orm"
+var (
+	DmSQL         map[string]*gorm.DB //数据库连接配置
+	DEFAULT_DmSQL *gorm.DB            //默认数据库连接配置
 )
 
+// 达梦数据库初始化
 func init() {
+	dmSqlMap := make(map[string]*gorm.DB)
 
-	_ = orm.RegisterDataBase("default", "mysql", utils.MYSQL_URL)
-	orm.SetMaxIdleConns("default", 50)
-	orm.SetMaxOpenConns("default", 100)
-
-	db, _ := orm.GetDB("default")
-	db.SetConnMaxLifetime(10 * time.Minute)
-
-	_ = orm.RegisterDataBase("rddp", "mysql", utils.MYSQL_URL_RDDP)
-	orm.SetMaxIdleConns("rddp", 50)
-	orm.SetMaxOpenConns("rddp", 100)
-
-	report_db, _ := orm.GetDB("rddp")
-	report_db.SetConnMaxLifetime(10 * time.Minute)
-
-	_ = orm.RegisterDataBase("edb", "mysql", utils.MYSQL_URL_EDB)
-	orm.SetMaxIdleConns("edb", 50)
-	orm.SetMaxOpenConns("edb", 100)
-
-	edb_db, _ := orm.GetDB("edb")
-	edb_db.SetConnMaxLifetime(10 * time.Minute)
-
-	_ = orm.RegisterDataBase("data", "mysql", utils.MYSQL_URL_DATA)
-	orm.SetMaxIdleConns("data", 50)
-	orm.SetMaxOpenConns("data", 100)
-
-	data_db, _ := orm.GetDB("data")
-	data_db.SetConnMaxLifetime(10 * time.Minute)
-
-	_ = orm.RegisterDataBase("gl", "mysql", utils.MYSQL_URL_GL)
-	orm.SetMaxIdleConns("gl", 50)
-	orm.SetMaxOpenConns("gl", 100)
-
-	gl, _ := orm.GetDB("gl")
-	gl.SetConnMaxLifetime(10 * time.Minute)
+	//开启日志
+	logWriter := io.MultiWriter(utils.Binlog) //binlog日志,记录到文件中去
+	if utils.RunMode == `debug` {             // 测试环境,默认输出在控制台,不需要的话,可以注释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:                  true,                   //是否颜色输出
+	})
+
+	// 默认库
+	initDm(utils.MYSQL_URL, "default", newLogger, dmSqlMap, true)
+
+	// 报告库
+	initDm(utils.MYSQL_URL_RDDP, "rddp", newLogger, dmSqlMap, false)
+	// 手工数据库
+	initDm(utils.MYSQL_URL_EDB, "edb", newLogger, dmSqlMap, false)
+	// 指标库
+	initDm(utils.MYSQL_URL_DATA, "data", newLogger, dmSqlMap, false)
+	// 钢联库
+	initDm(utils.MYSQL_URL_GL, "gl", newLogger, dmSqlMap, false)
 
 	// 用户主库
 	if utils.MYSQL_WEEKLY_URL != `` && (utils.BusinessCode == utils.BusinessCodeRelease || utils.BusinessCode == utils.BusinessCodeSandbox || utils.BusinessCode == utils.BusinessCodeDebug) {
-		_ = orm.RegisterDataBase("weekly", "mysql", utils.MYSQL_WEEKLY_URL)
-		orm.SetMaxIdleConns("weekly", 50)
-		orm.SetMaxOpenConns("weekly", 100)
-
-		weeklyDb, _ := orm.GetDB("weekly")
-		weeklyDb.SetConnMaxLifetime(10 * time.Minute)
+		// 用户主库
+		initDm(utils.MYSQL_WEEKLY_URL, "weekly", newLogger, dmSqlMap, false)
 	}
 
 	if utils.MYSQL_AI_URL != "" {
-		_ = orm.RegisterDataBase("ai", "mysql", utils.MYSQL_AI_URL)
-		orm.SetMaxIdleConns("ai", 50)
-		orm.SetMaxOpenConns("ai", 100)
-
-		weeklyDb, _ := orm.GetDB("ai")
-		weeklyDb.SetConnMaxLifetime(10 * time.Minute)
+		// AI库
+		initDm(utils.MYSQL_AI_URL, "ai", newLogger, dmSqlMap, false)
 	}
 
-	orm.Debug = true
-	orm.DebugLog = orm.NewLog(utils.Binlog)
-
-	//注册对象
-	orm.RegisterModel(
-		new(Classify),
-		new(Resource),
-		new(PptV2),
-		new(PptV2PublishRecord),
-		new(PptV2SaveLog),
-		new(PptV2Group),
-		new(PptV2GroupMapping),
-		new(PptV2Grant),                 //ppt授权操作表
-		new(VarietyClassify),            // 标签分类表
-		new(VarietyTag),                 // 标签表
-		new(ResearchVarietyTagRelation), // 研究员标签关系表
-		new(ReportPptImg),               //Ppt转报告的图片记录表
-	)
-
-	// 系统表 数据表
-	initSystem()
-
-	// 客户相关
-	initCompany()
-
-	// 联系人相关
-	initWxUser()
-
-	// 报告相关 数据表
-	initReport()
-
-	// 研报相关
-	initYb()
-
-	// 注册Edb沙盘 数据表
-	initSandbox()
-
-	// 上海指标服务 数据表
-	initShEdbData()
-
-	// 指标服务 数据表
-	initEdbData()
-
-	// 图表 数据表
-	initChart()
-	// 英文报告
-	initEnglishReport()
-
-	// 英文ppt
-	initPptEnglish()
-
-	// 期货数据库
-	initFutureGood()
-
-	// 共享网盘
-	initCloudDisk()
-
-	// 语义分析
-	initSemanticAnalysis()
-
-	// 供应分析
-	initSupplyAnalysis()
-
-	//多图配置
-	initMultipleGraphConfig()
-
-	// 商家配置
-	initBusinessConf()
-
-	// 图库框架
-	initChartFramework()
-
-	// 外部链接
-	initOutLink()
-
-	// 智能研报
-	initSmartReport()
-
-	// ETA试用相关表
-	if utils.BusinessCode == utils.BusinessCodeSandbox {
-		initEtaTrial()
-	}
-
-	// initDataStat 数据源统计管理相关表
-	initDataStat()
-
-	// 初始化EXCEL的表
-	initExcel()
-
-	// 初始化跨品种分析表
-	initCrossVariety()
-
-	//初始化AI
-	initAi()
-
-	// 报告审批
-	initReportApprove()
-
-	// 初始化图表主题
-	initChartTheme()
-
-	// 初始化指标刷新
-	initEdbRefresh()
-
-	// 语音识别
-	initSpeechRecognition()
-
-	// 初始化数据资产权限的一些表
-	initDataMangePerMission()
-
-	// 初始化外汇日历
-	initFeCalendar()
-
-	// 初始化因子指标系列
-	initFactorEdbSeries()
+	//全局赋值数据库链接
+	DmSQL = dmSqlMap
 
 	// 初始化部分数据表变量(直接init会有顺序问题=_=!)
 	afterInitTable()
 }
 
-// initSystem 系统表 数据表
-func initSystem() {
-	orm.RegisterModel(
-		new(system.SysUserLoginRecord),
-		new(system.SysSession),
-		new(system.SysDepartment),
-		new(system.SysGroup),
-		new(system.SysRoleMenu),
-		new(system.Admin),
-		new(system.SysRole),
-		new(system.SysMenuButton),
-		new(system.SysRoleButton),
-		new(system.ResearchGroup),         // 研究员研究方向分组表
-		new(system.ResearchGroupRelation), // 研究员研究方向分组关系表
-		new(system.SysRoleAdmin),          //管理员账号和角色映射表
-		new(system.AdminConfig),           //系统用户配置表
-		new(system.AdminOperateRecord),
-		new(system.AdminVerifyCodeRecord), // 用户短信邮箱验证码记录表
-	)
-}
-
-// initCompany 客户相关 数据表
-func initCompany() {
-	orm.RegisterModel(
-		new(company.Company),
-	)
-}
-
-// initWxUser 联系人相关 数据表
-func initWxUser() {
-	orm.RegisterModel(
-		new(WxUser),
-		new(UserSellerRelation),
-	)
-}
-
-// initReport 报告相关 数据表
-func initReport() {
-	orm.RegisterModel(
-		new(Report),
-		new(ReportViewRecord),
-		new(ChartPermissionSearchKeyWordMapping), //报告分类权限表
-		new(ReportChapter),                       // 报告章节表
-		new(ReportChapterTicker),                 // 晨报章节ticker
-		new(ReportChapterTypePermission),         // 晨周报章节类型权限表
-		new(ChartPermission),                     // 权限表
-		new(YbPcSuncode),
-		new(YbSuncodePars),
-		new(ReportAuthor),                          //报告作者
-		new(ClassifyMenu),                          // 报告分类-子目录表
-		new(ClassifyMenuRelation),                  // 报告分类-子目录关联表
-		new(ChartPermissionChapterMapping),         // 权限mapping表
-		new(ReportChapterType),                     // 报告章节类型表
-		new(ReportStateRecord),                     // 研报状态修改记录表
-		new(report.ReportGrant),                    // 报告授权用户表
-		new(report.ReportChapterGrant),             // 报告章节授权用户表
-		new(report.ReportChapterPermissionMapping), // 报告章节的权限关系表
-	)
-}
-
-// initYb 研报 数据表
-func initYb() {
-	orm.RegisterModel(
-		new(yb.PriceDriven),              // 价格驱动表
-		new(yb.PriceDrivenSaveLog),       // 价格驱动保存记录表
-		new(yb.PriceDrivenTag),           // 价格驱动标签表
-		new(yb.CommunityQuestionProcess), // 研报问答社区流程表
-	)
-}
-
-// initSandbox 注册Edb沙盘 数据表
-func initSandbox() {
-	//注册对象
-	orm.RegisterModel(
-		new(sandbox.Sandbox),         //沙盘主表
-		new(sandbox.SandboxVersion),  //沙盘版本表
-		new(sandbox.SandboxDraft),    //沙盘草稿表
-		new(sandbox.SandboxClassify), //沙盘分类表
-	)
-}
-
-// initShEdbData 上海服务器指标 数据表
-func initShEdbData() {
-	orm.RegisterModel(
-		new(Edbdata),
-		new(EdbdataDeleteRecord),
-		new(EdbdataImportFail),
-		new(EdbImportFail),                   //指标导入失败数据表
-		new(Edbinfo),                         //edb库的edbinfo表
-		new(data_manage.ExcelStyle),          //在线excel样式表
-		new(data_manage.ExcelEdbdataMapping), //excel样式和指标映射表
-		new(EdbinfoOpRecord),                 // 手工数据的操作日志
-	)
-}
-
-// initEdbData 指标服务 数据表
-func initEdbData() {
-	orm.RegisterModel(
-		new(data_manage.EdbClassify),
-		new(data_manage.EdbInfo), //hz_data库的edb_info表
-		new(data_manage.EdbDataThs),
-		new(data_manage.EdbDataWind),
-		new(data_manage.EdbDataPb),
-		new(data_manage.ManualUserClassify),
-		new(data_manage.EdbdataClassify),
-		new(data_manage.ManualUser),
-		new(data_manage.EdbInfoCalculate),
-		new(data_manage.SearchKeyword),
-		new(data_manage.BaseFromSmm),
-		new(data_manage.BaseFromSmmIndex),
-		new(data_manage.BaseFromSmmData),
-		new(data_manage.BaseFromSmmClassify),
-		new(data_manage.EdbInfoLog),
-		new(data_manage.EdbInfoRecord),
-		new(data_manage.EdbInfoCalculateMapping),
-		new(data_manage.PredictEdbConf),                  //预测指标配置
-		new(data_manage.BaseFromMysteelChemicalClassify), //预测指标配置
-		new(data_manage.BaseFromMysteelChemicalIndex),    //钢联化工
-		new(data_manage.BaseFromEiaSteoClassify),         // Eia steo 报告指标
-		new(data_manage.BaseFromEiaSteoIndex),            // Eia steo 报告指标分类
-		new(data_manage.PredictEdbRuleData),              //预测指标,动态规则的计算数据
-		new(data_manage.ComTradeCountry),                 //联合国商品贸易数据库的国家编码表
-		new(data_manage.ComTradeData),                    //联合国商品贸易数据表
-		new(data_manage.BaseFromSci),
-		new(data_manage.BaseFromSciIndex),
-		new(data_manage.BaseFromSciData),
-		new(data_manage.BaseFromSciClassify),
-		new(data_manage.TradePositionDalianTop),
-		new(data_manage.TradePositionZhengzhouTop),
-		new(data_manage.TradePositionCffexTop),
-		new(data_manage.TradePositionShanghaiTop),
-		new(data_manage.TradePositionIneTop),
-		new(data_manage.BaseFromBaiinfo),
-		new(data_manage.BaseFromBaiinfoIndex),
-		new(data_manage.BaseFromBaiinfoData),
-		new(data_manage.BaseFromBaiinfoClassify),
-		new(data_manage.EdbDataInsertConfig),      // 指标数据插入配置表
-		new(data_manage.EdbInfoNoPermissionAdmin), //指标不可见用户配置表
-		new(data_manage.EdbTerminal),              //指标终端
-		new(data_manage.BaseFromThsHfIndex),
-		new(data_manage.BaseFromThsHfData),
-		new(data_manage.BaseFromThsHfClassify),
-		new(data_manage.BaseFromEdbMapping),
-		new(data_manage.EdbInfoRelation), //指标关系表
-		new(data_manage.BaseFromSciHqClassify),
-		new(data_manage.BaseFromSciHqIndex),
-		new(data_manage.BaseFromSciHqData),
-	)
-}
-
-// initChart 图表 数据表
-func initChart() {
-	orm.RegisterModel(
-		new(data_manage.ChartClassify),
-		new(data_manage.ChartInfo),
-		new(data_manage.ChartEdbMapping),
-		new(data_manage.MyChartClassify),
-		new(data_manage.MyChart),
-		new(data_manage.MyChartLog),
-		new(data_manage.MyChartClassifyMapping),
-		new(data_manage.ChartInfoLog),
-		new(data_manage.ChartInfoCorrelation),
-		new(data_manage.ChartSeries),
-		new(data_manage.ChartSeriesEdbMapping),
-	)
-}
-
-// initEnglishReport 英文报告
-func initEnglishReport() {
-	orm.RegisterModel(
-		new(EnglishReport),
-		new(EnglishPolicyReport),
-		new(EnglishReportEmail),
-		new(EnglishReportEmailPV),
-		new(EnglishReportEmailLog),
-		new(EnglishClassify),
-		new(EnglishCompany),           // 英文客户
-		new(EnglishCompanyLog),        // 英文客户操作日志
-		new(EnglishReportEmailOpLog),  // 英文联系人操作日志
-		new(EnglishCompanyTodo),       // 英文客户TODO任务
-		new(EnglishCompanyTodoPublic), // 英文客户公共TODO任务
-		new(EnglishVideoCover),        // 英文研报线上路演视频封面
-		new(EnglishVideo),             // 英文研报线上路演
-		new(EnPermission),             // 英文品种权限表
-		new(EnCompanyPermission),      // 英文客户品种权限关联表
-		new(EnClassifyPermission),     // 英文分类品种权限关联表
-	)
-}
-
-// initPptEnglish ppt英文
-func initPptEnglish() {
-	orm.RegisterModel(
-		new(ppt_english.PptEnglish),
-		new(ppt_english.PptEnglishPublishRecord),
-		new(ppt_english.PptEnglishSaveLog),
-		new(ppt_english.PptEnglishGroup),
-		new(ppt_english.PptEnglishGroupMapping),
-		new(ppt_english.PptEnglishGrant),     //ppt授权操作表
-		new(ppt_english.ReportPptEnglishImg), //Ppt转报告的图片记录表
-	)
-}
-
-// initFutureGood 注册期货数据 数据表
-func initFutureGood() {
-	//注册对象
-	orm.RegisterModel(
-		new(future_good2.FutureGoodEdbInfo), //期货指标表
-		new(future_good2.FutureGoodEdbData), //期货指标数据表
-		//new(future_good2.FutureGoodChartClassify), //期货指标分类表
-		new(future_good2.ChartInfoFutureGoodProfit), //期货利润图的扩展表
-	)
-}
-
-// initCloudDisk 共享云盘
-func initCloudDisk() {
-	//注册对象
-	orm.RegisterModel(
-		new(CloudDiskMenu),     // 云盘目录表
-		new(CloudDiskResource), // 云盘资源表
-	)
-}
-
-// initSemanticAnalysis 语义分析
-func initSemanticAnalysis() {
-	orm.RegisterModel(
-		new(semantic_analysis.SaLabel),                // 语义分析-标签表
-		new(semantic_analysis.SaDocClassify),          // 语义分析-文档分类表
-		new(semantic_analysis.SaDoc),                  // 语义分析-文档表
-		new(semantic_analysis.SaDocSection),           // 语义分析-文档段落表
-		new(semantic_analysis.SaCompareClassify),      // 语义分析-比对分类表
-		new(semantic_analysis.SaCompare),              // 语义分析-比对表
-		new(semantic_analysis.SaCompareDoc),           // 语义分析-比对关联文档表
-		new(semantic_analysis.SaCompareLabel),         // 语义分析-比对段落表
-		new(semantic_analysis.SaCompareSearchKeyword), // 语义分析-比对搜索关键词
-	)
-}
-
-// initSupplyAnalysis 供应分析
-func initSupplyAnalysis() {
-	orm.RegisterModel(
-		new(supply_analysis.Variety),
-		new(supply_analysis.VarietyAdminPermission),
-		new(supply_analysis.VarietyEdbInfo),
-		new(supply_analysis.VarietyPlant),
-	)
-}
-
-// initMultipleGraphConfig 多图配置 数据表
-func initMultipleGraphConfig() {
-	//注册对象
-	orm.RegisterModel(
-		new(data_manage.MultipleGraphConfig),             //多图配置表
-		new(data_manage.MultipleGraphConfigChartMapping), //图表与多图配置的关系表
-		new(data_manage.MultipleGraphConfigEdbMapping),   //指标与多图配置的关系表
-	)
-}
-
-// initBusinessConf 商家配置
-func initBusinessConf() {
-	orm.RegisterModel(
-		new(BusinessConf),                // 商家配置表
-		new(BusinessConfOperationRecord), // 商家配置操作记录表
-	)
-}
-
-func initOutLink() {
-	orm.RegisterModel(
-		new(OutLink)) // 外部链接表
-}
-
-// initEtaTrial 试用平台相关表
-func initEtaTrial() {
-	orm.RegisterModel(
-		new(eta_trial.QuestionnaireFillRecord), // 问卷填写记录表
-	)
-}
-
-// initDataStat 数据源统计管理相关表
-func initDataStat() {
-	orm.RegisterModel(
-		new(data_stat.EdbInfoDeleteLog),  // 指标删除日志表
-		new(data_stat.EdbInfoUpdateStat), // 指标更新/刷新 汇总表(数据源明细表)
-		new(data_stat.EdbInfoUpdateLog),  // 指标更新/刷新日志列表
-		new(data_stat.EdbSourceStat),     // 数据源统计表
-	)
-}
-
-// initChartFramework 图库框架相关表
-func initChartFramework() {
-	orm.RegisterModel(
-		new(data_manage.ChartFramework),     // 图库框架主表
-		new(data_manage.ChartFrameworkNode), // 图库框架节点表
-	)
-}
-
-// initExcel 初始化EXCEL
-func initExcel() {
-	orm.RegisterModel(
-		new(excel.ExcelClassify),        //ETA excel表格分类
-		new(excel.ExcelInfo),            //ETA excel表格
-		new(excel.ExcelDraft),           //ETA excel表格草稿
-		new(excel.ExcelSheet),           //ETA excel sheet
-		new(excel.ExcelSheetData),       //ETA excel sheet data
-		new(excel.ExcelEdbMapping),      //ETA excel 与 指标 的关系表
-		new(excel.ExcelWorker),          // 平衡表协作人表格
-		new(excel.ExcelChartEdb),        // 平衡表做图指标
-		new(excel.ExcelChartData),       // 平衡表作图数据
-		new(excel.ExcelInfoRuleMapping), //表格的管理规则
-	)
-}
-
-// initSmartReport 智能研报相关表
-func initSmartReport() {
-	orm.RegisterModel(
-		new(smart_report.SmartReport),         // 智能研报主表
-		new(smart_report.SmartReportSaveLog),  // 智能研报-保存记录表
-		new(smart_report.SmartReportResource), // 智能研报-资源表
-	)
-}
-
-// initCrossVariety 跨品种分析
-func initCrossVariety() {
-	orm.RegisterModel(
-		new(cross_variety.ChartVariety),          // 品种表
-		new(cross_variety.ChartTag),              // 标签表
-		new(cross_variety.ChartTagVariety),       // 标签、品种、指标关系表
-		new(cross_variety.ChartVarietyMapping),   // 图表与品种的关系表
-		new(cross_variety.ChartInfoCrossVariety), // 跨品种分析配置表
-	)
-}
-
-func initAi() {
-	orm.RegisterModel(
-		new(aimod.AiChatTopic),
-		new(aimod.AiChat),
-		new(aimod.FileUploadRecord),
-		new(ai_summary.AiSummaryClassify),
-		new(ai_summary.AiSummary),
-		new(ai_summary.AiPrompt),
-	)
-}
+// 达梦数据库连接
+func initDm(dsn, aliasName string, newLogger logger.Interface, dmSqlMap map[string]*gorm.DB, isDefault bool) {
+	if dsn == `` {
+		return
+	}
+	//dsn := "dm://SYSDBA:SYSDBA001@8.136.199.33:30236?schema=\"eta_master\""
+	//dsn := "dm://ETA:Han6258199118%60@localhost:5236?schema=ECOLOGY_TARGET"
+	db, err := gorm.Open(dm.Open(dsn), &gorm.Config{
+		Logger: newLogger,
+	})
+	if err != nil {
+		//global.LOG.Errorf("mysql 启动异常,数据库:default;Err:", err)
+		panic(fmt.Errorf("mysql 启动异常,数据库:%s;Err:%s", aliasName, err))
+	}
 
-// initReportApprove 报告审批相关表
-func initReportApprove() {
-	orm.RegisterModel(
-		new(report_approve.ReportApprove),        // 审批表
-		new(report_approve.ReportApproveFlow),    // 审批流表
-		new(report_approve.ReportApproveNode),    // 审批节点表
-		new(report_approve.ReportApproveRecord),  // 审批记录表
-		new(report_approve.ReportApproveMessage), // 审批消息表
-	)
-}
+	//创建连接池
+	sqlDB, err := db.DB()
+	if err != nil {
+		//global.LOG.Errorf("mysql 创建连接池失败,数据库:default;Err:", err)
+		panic(fmt.Errorf("mysql 创建连接池失败,数据库:%s;Err:%s", aliasName, err))
+	}
 
-// initChartTheme 初始化图表主题
-func initChartTheme() {
-	orm.RegisterModel(
-		new(chart_theme.ChartTheme),            // 图表主题
-		new(chart_theme.ChartThemeType),        // 图表主题类型
-		new(chart_theme.ChartThemeDefaultData), //默认数据
-	)
-}
+	dmSqlMap[aliasName] = db
 
-// initEdbRefresh 初始化指标刷新
-func initEdbRefresh() {
-	orm.RegisterModel(
-		new(edb_refresh.EdbRefreshSource),        // 刷新的数据源表
-		new(edb_refresh.EdbRefreshDefaultConfig), // 指标的默认刷新时间配置表
-		new(edb_refresh.EdbRefreshConfig),        // 指标的刷新时间配置表
-		new(edb_refresh.EdbRefreshMapping),       // 指标刷新时间配置关系表
-	)
-}
+	//默认数据库连接
+	if isDefault {
+		DEFAULT_DmSQL = db
+	}
 
-// initSpeechRecognition 语音识别
-func initSpeechRecognition() {
-	orm.RegisterModel(
-		new(speech_recognition.SpeechRecognition),           // 语音识别表
-		new(speech_recognition.SpeechRecognitionApiLog),     // 语音识别-API请求日志
-		new(speech_recognition.SpeechRecognitionContent),    // 语音识别-转换内容表
-		new(speech_recognition.SpeechRecognitionMenu),       // 语音识别-目录表
-		new(speech_recognition.SpeechRecognitionTag),        // 语音识别-标签表
-		new(speech_recognition.SpeechRecognitionTagMenu),    // 语音识别-标签目录表
-		new(speech_recognition.SpeechRecognitionTagMapping), // 语音识别-标签关联表
-	)
-}
+	// SetMaxIdleConns 设置空闲连接池中连接的最大数量
+	sqlDB.SetMaxIdleConns(50)
 
-// initDataMangePerMission
-// @Description: 初始化数据资产权限的一些表
-// @author: Roc
-// @datetime 2024-03-27 14:03:11
-func initDataMangePerMission() {
-	orm.RegisterModel(
-		new(data_manage_permission.EdbInfoPermission),                       // 指标权限表
-		new(data_manage_permission.EdbClassifyPermission),                   // 指标分类权限表
-		new(data_manage_permission.ChartInfoPermission),                     // 图表权限表
-		new(data_manage_permission.ChartClassifyPermission),                 // 图表分类权限表
-		new(data_manage_permission.ExcelInfoPermission),                     // ETA表格权限表
-		new(data_manage_permission.ExcelClassifyPermission),                 // ETA表格分类权限表
-		new(data_manage_permission.DataPermissionMessage),                   // 数据权限变更消息表
-		new(data_manage_permission.DataPermissionMoveRecord),                // 数据资产转移记录表
-		new(data_manage_permission.EdbInfoPermissionNoAuthRecord),           // 指标资产数据未授权分类记录表
-		new(data_manage_permission.ChartInfoPermissionNoAuthRecord),         // 图表资产数据未授权分类记录表
-		new(data_manage_permission.ExcelInfoPermissionNoAuthRecord),         // ETA表格资产数据未授权分类记录表
-		new(data_manage_permission.EdbInfoClassifyPermissionNoAuthRecord),   // 指标资产分类数据未授权分类记录表
-		new(data_manage_permission.ChartInfoClassifyPermissionNoAuthRecord), // 图表资产分类数据未授权分类记录表
-		new(data_manage_permission.ExcelInfoClassifyPermissionNoAuthRecord), // ETA表格资产分类数据未授权分类记录表
-		new(data_manage_permission.DataPermissionClassifyNoAuthRecord),      // 资产分类数据权限未授权记录表
-		new(data_manage_permission.DataPermissionNoAuthRecord),              // 资产数据权限设置记录表
-	)
-}
+	// SetMaxOpenConns 设置打开数据库连接的最大数量。
+	sqlDB.SetMaxOpenConns(100)
 
-// initFeCalendar 初始化外汇日历
-func initFeCalendar() {
-	orm.RegisterModel(
-		new(fe_calendar.FeCalendarMatter), // 事项表
-	)
-}
+	// SetConnMaxLifetime 设置了连接可复用的最大时间。
+	sqlDB.SetConnMaxLifetime(10 * time.Minute)
 
-// initFactorEdbSeries 因子指标系列数据表
-func initFactorEdbSeries() {
-	orm.RegisterModel(
-		new(data_manage.FactorEdbSeries),                  // 因子指标系列
-		new(data_manage.FactorEdbSeriesChartMapping),      // 因子指标系列-图表关联
-		new(data_manage.FactorEdbSeriesMapping),           // 因子指标系列-指标计算数据
-		new(data_manage.FactorEdbSeriesCalculateData),     // 因子指标系列-指标关联
-		new(data_manage.FactorEdbSeriesCalculateDataQjjs), // 因子指标系列-区间计算数据
-	)
 }
 
 // afterInitTable

+ 52 - 0
models/db2.go

@@ -0,0 +1,52 @@
+package models
+
+import (
+	_ "dm"
+	dm "dmgorm2"
+	"fmt"
+	"gorm.io/gorm"
+	"gorm.io/gorm/logger"
+	"time"
+
+	_ "github.com/go-sql-driver/mysql"
+)
+
+// 达梦数据库连接
+func initDm2(dsn, aliasName string, newLogger logger.Interface, dmSqlMap map[string]*gorm.DB, isDefault bool) {
+	if dsn == `` {
+		return
+	}
+	//dsn := "dm://SYSDBA:SYSDBA001@8.136.199.33:30236?schema=\"eta_master\""
+	//dsn := "dm://ETA:Han6258199118%60@localhost:5236?schema=ECOLOGY_TARGET"
+	db, err := gorm.Open(dm.Open(dsn), &gorm.Config{
+		Logger: newLogger,
+	})
+	if err != nil {
+		//global.LOG.Errorf("mysql 启动异常,数据库:default;Err:", err)
+		panic(fmt.Errorf("mysql 启动异常,数据库:%s;Err:%s", aliasName, err))
+	}
+
+	//创建连接池
+	sqlDB, err := db.DB()
+	if err != nil {
+		//global.LOG.Errorf("mysql 创建连接池失败,数据库:default;Err:", err)
+		panic(fmt.Errorf("mysql 创建连接池失败,数据库:%s;Err:%s", aliasName, err))
+	}
+
+	dmSqlMap[aliasName] = db
+
+	//默认数据库连接
+	if isDefault {
+		DEFAULT_DmSQL = db
+	}
+
+	// SetMaxIdleConns 设置空闲连接池中连接的最大数量
+	sqlDB.SetMaxIdleConns(50)
+
+	// SetMaxOpenConns 设置打开数据库连接的最大数量。
+	sqlDB.SetMaxOpenConns(100)
+
+	// SetConnMaxLifetime 设置了连接可复用的最大时间。
+	sqlDB.SetConnMaxLifetime(10 * time.Minute)
+
+}