db.go 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566
  1. package models
  2. import (
  3. "eta/eta_api/models/aimod"
  4. "eta/eta_api/models/company"
  5. "eta/eta_api/models/data_manage"
  6. "eta/eta_api/models/data_manage/chart_theme"
  7. "eta/eta_api/models/data_manage/cross_variety"
  8. "eta/eta_api/models/data_manage/data_manage_permission"
  9. "eta/eta_api/models/data_manage/edb_refresh"
  10. "eta/eta_api/models/data_manage/excel"
  11. future_good2 "eta/eta_api/models/data_manage/future_good"
  12. "eta/eta_api/models/data_manage/supply_analysis"
  13. "eta/eta_api/models/data_stat"
  14. "eta/eta_api/models/eta_trial"
  15. "eta/eta_api/models/ppt_english"
  16. "eta/eta_api/models/report_approve"
  17. "eta/eta_api/models/sandbox"
  18. "eta/eta_api/models/semantic_analysis"
  19. "eta/eta_api/models/smart_report"
  20. "eta/eta_api/models/system"
  21. "eta/eta_api/models/yb"
  22. "eta/eta_api/utils"
  23. _ "github.com/go-sql-driver/mysql"
  24. "time"
  25. "github.com/beego/beego/v2/client/orm"
  26. )
  27. func init() {
  28. _ = orm.RegisterDataBase("default", "mysql", utils.MYSQL_URL)
  29. orm.SetMaxIdleConns("default", 50)
  30. orm.SetMaxOpenConns("default", 100)
  31. db, _ := orm.GetDB("default")
  32. db.SetConnMaxLifetime(10 * time.Minute)
  33. _ = orm.RegisterDataBase("rddp", "mysql", utils.MYSQL_URL_RDDP)
  34. orm.SetMaxIdleConns("rddp", 50)
  35. orm.SetMaxOpenConns("rddp", 100)
  36. report_db, _ := orm.GetDB("rddp")
  37. report_db.SetConnMaxLifetime(10 * time.Minute)
  38. _ = orm.RegisterDataBase("edb", "mysql", utils.MYSQL_URL_EDB)
  39. orm.SetMaxIdleConns("edb", 50)
  40. orm.SetMaxOpenConns("edb", 100)
  41. edb_db, _ := orm.GetDB("edb")
  42. edb_db.SetConnMaxLifetime(10 * time.Minute)
  43. _ = orm.RegisterDataBase("data", "mysql", utils.MYSQL_URL_DATA)
  44. orm.SetMaxIdleConns("data", 50)
  45. orm.SetMaxOpenConns("data", 100)
  46. data_db, _ := orm.GetDB("data")
  47. data_db.SetConnMaxLifetime(10 * time.Minute)
  48. _ = orm.RegisterDataBase("gl", "mysql", utils.MYSQL_URL_GL)
  49. orm.SetMaxIdleConns("gl", 50)
  50. orm.SetMaxOpenConns("gl", 100)
  51. gl, _ := orm.GetDB("gl")
  52. gl.SetConnMaxLifetime(10 * time.Minute)
  53. // 用户主库
  54. if utils.MYSQL_WEEKLY_URL != `` && (utils.BusinessCode == utils.BusinessCodeRelease || utils.BusinessCode == utils.BusinessCodeSandbox || utils.BusinessCode == utils.BusinessCodeDebug) {
  55. _ = orm.RegisterDataBase("weekly", "mysql", utils.MYSQL_WEEKLY_URL)
  56. orm.SetMaxIdleConns("weekly", 50)
  57. orm.SetMaxOpenConns("weekly", 100)
  58. weeklyDb, _ := orm.GetDB("weekly")
  59. weeklyDb.SetConnMaxLifetime(10 * time.Minute)
  60. }
  61. if utils.MYSQL_AI_URL != "" {
  62. _ = orm.RegisterDataBase("ai", "mysql", utils.MYSQL_AI_URL)
  63. orm.SetMaxIdleConns("ai", 50)
  64. orm.SetMaxOpenConns("ai", 100)
  65. weeklyDb, _ := orm.GetDB("ai")
  66. weeklyDb.SetConnMaxLifetime(10 * time.Minute)
  67. }
  68. orm.Debug = true
  69. orm.DebugLog = orm.NewLog(utils.Binlog)
  70. //注册对象
  71. orm.RegisterModel(
  72. new(Classify),
  73. new(Resource),
  74. new(PptV2),
  75. new(PptV2PublishRecord),
  76. new(PptV2SaveLog),
  77. new(PptV2Group),
  78. new(PptV2GroupMapping),
  79. new(PptV2Grant), //ppt授权操作表
  80. new(VarietyClassify), // 标签分类表
  81. new(VarietyTag), // 标签表
  82. new(ResearchVarietyTagRelation), // 研究员标签关系表
  83. new(ReportPptImg), //Ppt转报告的图片记录表
  84. )
  85. // 系统表 数据表
  86. initSystem()
  87. // 客户相关
  88. initCompany()
  89. // 联系人相关
  90. initWxUser()
  91. // 报告相关 数据表
  92. initReport()
  93. // 研报相关
  94. initYb()
  95. // 注册Edb沙盘 数据表
  96. initSandbox()
  97. // 上海指标服务 数据表
  98. initShEdbData()
  99. // 指标服务 数据表
  100. initEdbData()
  101. // 图表 数据表
  102. initChart()
  103. // 英文报告
  104. initEnglishReport()
  105. // 英文ppt
  106. initPptEnglish()
  107. // 期货数据库
  108. initFutureGood()
  109. // 共享网盘
  110. initCloudDisk()
  111. // 语义分析
  112. initSemanticAnalysis()
  113. // 供应分析
  114. initSupplyAnalysis()
  115. //多图配置
  116. initMultipleGraphConfig()
  117. // 商家配置
  118. initBusinessConf()
  119. // 图库框架
  120. initChartFramework()
  121. // 外部链接
  122. initOutLink()
  123. // 智能研报
  124. initSmartReport()
  125. // ETA试用相关表
  126. if utils.BusinessCode == utils.BusinessCodeSandbox {
  127. initEtaTrial()
  128. }
  129. // initDataStat 数据源统计管理相关表
  130. initDataStat()
  131. // 初始化EXCEL的表
  132. initExcel()
  133. // 初始化跨品种分析表
  134. initCrossVariety()
  135. //初始化AI
  136. initAi()
  137. // 报告审批
  138. initReportApprove()
  139. // 初始化图表主题
  140. initChartTheme()
  141. // 初始化指标刷新
  142. initEdbRefresh()
  143. // 初始化数据资产权限的一些表
  144. initDataMangePerMission()
  145. // 初始化部分数据表变量(直接init会有顺序问题=_=!)
  146. data_manage.InitEdbSourceVar()
  147. }
  148. // initSystem 系统表 数据表
  149. func initSystem() {
  150. orm.RegisterModel(
  151. new(system.SysUserLoginRecord),
  152. new(system.SysSession),
  153. new(system.SysDepartment),
  154. new(system.SysGroup),
  155. new(system.SysRoleMenu),
  156. new(system.Admin),
  157. new(system.SysRole),
  158. new(system.SysMenuButton),
  159. new(system.SysRoleButton),
  160. new(system.ResearchGroup), // 研究员研究方向分组表
  161. new(system.ResearchGroupRelation), // 研究员研究方向分组关系表
  162. new(system.SysRoleAdmin), //管理员账号和角色映射表
  163. new(system.AdminConfig), //系统用户配置表
  164. new(system.AdminOperateRecord),
  165. new(system.AdminVerifyCodeRecord), // 用户短信邮箱验证码记录表
  166. )
  167. }
  168. // initCompany 客户相关 数据表
  169. func initCompany() {
  170. orm.RegisterModel(
  171. new(company.Company),
  172. )
  173. }
  174. // initWxUser 联系人相关 数据表
  175. func initWxUser() {
  176. orm.RegisterModel(
  177. new(WxUser),
  178. new(UserSellerRelation),
  179. )
  180. }
  181. // initReport 报告相关 数据表
  182. func initReport() {
  183. orm.RegisterModel(
  184. new(Report),
  185. new(ReportViewRecord),
  186. new(ChartPermissionSearchKeyWordMapping), //报告分类权限表
  187. new(ReportChapter), // 报告章节表
  188. new(ReportChapterTicker), // 晨报章节ticker
  189. new(ReportChapterTypePermission), // 晨周报章节类型权限表
  190. new(ChartPermission), // 权限表
  191. new(YbPcSuncode),
  192. new(YbSuncodePars),
  193. new(ReportAuthor), //报告作者
  194. new(ClassifyMenu), // 报告分类-子目录表
  195. new(ClassifyMenuRelation), // 报告分类-子目录关联表
  196. new(ChartPermissionChapterMapping), // 权限mapping表
  197. new(ReportChapterType), // 报告章节类型表
  198. new(ReportStateRecord), // 研报状态修改记录表
  199. )
  200. }
  201. // initYb 研报 数据表
  202. func initYb() {
  203. orm.RegisterModel(
  204. new(yb.PriceDriven), // 价格驱动表
  205. new(yb.PriceDrivenSaveLog), // 价格驱动保存记录表
  206. new(yb.PriceDrivenTag), // 价格驱动标签表
  207. new(yb.CommunityQuestionProcess), // 研报问答社区流程表
  208. )
  209. }
  210. // initSandbox 注册Edb沙盘 数据表
  211. func initSandbox() {
  212. //注册对象
  213. orm.RegisterModel(
  214. new(sandbox.Sandbox), //沙盘主表
  215. new(sandbox.SandboxVersion), //沙盘版本表
  216. new(sandbox.SandboxDraft), //沙盘草稿表
  217. new(sandbox.SandboxClassify), //沙盘分类表
  218. )
  219. }
  220. // initShEdbData 上海服务器指标 数据表
  221. func initShEdbData() {
  222. orm.RegisterModel(
  223. new(Edbdata),
  224. new(EdbdataDeleteRecord),
  225. new(EdbdataImportFail),
  226. new(EdbImportFail), //指标导入失败数据表
  227. new(Edbinfo), //edb库的edbinfo表
  228. new(data_manage.ExcelStyle), //在线excel样式表
  229. new(data_manage.ExcelEdbdataMapping), //excel样式和指标映射表
  230. )
  231. }
  232. // initEdbData 指标服务 数据表
  233. func initEdbData() {
  234. orm.RegisterModel(
  235. new(data_manage.EdbClassify),
  236. new(data_manage.EdbInfo), //hz_data库的edb_info表
  237. new(data_manage.EdbDataThs),
  238. new(data_manage.EdbDataWind),
  239. new(data_manage.EdbDataPb),
  240. new(data_manage.ManualUserClassify),
  241. new(data_manage.EdbdataClassify),
  242. new(data_manage.ManualUser),
  243. new(data_manage.EdbInfoCalculate),
  244. new(data_manage.EdbDataCalculate),
  245. new(data_manage.EdbInfoCalculateLjzzy),
  246. new(data_manage.EdbInfoCalculateTbz),
  247. new(data_manage.EdbInfoCalculateTcz),
  248. new(data_manage.EdbInfoCalculateNszydpjjs),
  249. new(data_manage.SearchKeyword),
  250. new(data_manage.EdbInfoCalculateHbz),
  251. new(data_manage.EdbInfoCalculateHcz),
  252. new(data_manage.EdbInfoCalculateBp),
  253. new(data_manage.BaseFromSmm),
  254. new(data_manage.BaseFromSmmIndex),
  255. new(data_manage.BaseFromSmmData),
  256. new(data_manage.BaseFromSmmClassify),
  257. new(data_manage.EdbInfoLog),
  258. new(data_manage.EdbInfoCalculateMapping),
  259. new(data_manage.EdbDataCalculateZjpj), //直接拼接
  260. new(data_manage.EdbDataCalculateLjztbpj), //累计同比值拼接
  261. new(data_manage.PredictEdbConf), //预测指标配置
  262. new(data_manage.BaseFromMysteelChemicalClassify), //预测指标配置
  263. new(data_manage.BaseFromMysteelChemicalIndex), //钢联化工
  264. new(data_manage.BaseFromEiaSteoClassify), // Eia steo 报告指标
  265. new(data_manage.BaseFromEiaSteoIndex), // Eia steo 报告指标分类
  266. new(data_manage.PredictEdbRuleData), //预测指标,动态规则的计算数据
  267. new(data_manage.ComTradeCountry), //联合国商品贸易数据库的国家编码表
  268. new(data_manage.ComTradeData), //联合国商品贸易数据表
  269. new(data_manage.BaseFromSci),
  270. new(data_manage.BaseFromSciIndex),
  271. new(data_manage.BaseFromSciData),
  272. new(data_manage.BaseFromSciClassify),
  273. new(data_manage.TradePositionDalianTop),
  274. new(data_manage.TradePositionZhengzhouTop),
  275. new(data_manage.TradePositionCffexTop),
  276. new(data_manage.TradePositionShanghaiTop),
  277. new(data_manage.TradePositionIneTop),
  278. new(data_manage.BaseFromBaiinfo),
  279. new(data_manage.BaseFromBaiinfoIndex),
  280. new(data_manage.BaseFromBaiinfoData),
  281. new(data_manage.BaseFromBaiinfoClassify),
  282. new(data_manage.EdbDataInsertConfig), // 指标数据插入配置表
  283. new(data_manage.EdbInfoNoPermissionAdmin), //指标不可见用户配置表
  284. new(data_manage.EdbTerminal), //指标终端
  285. )
  286. }
  287. // initChart 图表 数据表
  288. func initChart() {
  289. orm.RegisterModel(
  290. new(data_manage.ChartClassify),
  291. new(data_manage.ChartInfo),
  292. new(data_manage.ChartEdbMapping),
  293. new(data_manage.MyChartClassify),
  294. new(data_manage.MyChart),
  295. new(data_manage.MyChartLog),
  296. new(data_manage.MyChartClassifyMapping),
  297. new(data_manage.ChartInfoLog),
  298. new(data_manage.ChartInfoCorrelation),
  299. )
  300. }
  301. // initEnglishReport 英文报告
  302. func initEnglishReport() {
  303. orm.RegisterModel(
  304. new(EnglishReport),
  305. new(EnglishPolicyReport),
  306. new(EnglishReportEmail),
  307. new(EnglishReportEmailPV),
  308. new(EnglishReportEmailLog),
  309. new(EnglishClassify),
  310. new(EnglishCompany), // 英文客户
  311. new(EnglishCompanyLog), // 英文客户操作日志
  312. new(EnglishReportEmailOpLog), // 英文联系人操作日志
  313. new(EnglishCompanyTodo), // 英文客户TODO任务
  314. new(EnglishCompanyTodoPublic), // 英文客户公共TODO任务
  315. new(EnglishVideoCover), // 英文研报线上路演视频封面
  316. new(EnglishVideo), // 英文研报线上路演
  317. new(EnPermission), // 英文品种权限表
  318. new(EnCompanyPermission), // 英文客户品种权限关联表
  319. new(EnClassifyPermission), // 英文分类品种权限关联表
  320. )
  321. }
  322. // initPptEnglish ppt英文
  323. func initPptEnglish() {
  324. orm.RegisterModel(
  325. new(ppt_english.PptEnglish),
  326. new(ppt_english.PptEnglishPublishRecord),
  327. new(ppt_english.PptEnglishSaveLog),
  328. new(ppt_english.PptEnglishGroup),
  329. new(ppt_english.PptEnglishGroupMapping),
  330. new(ppt_english.PptEnglishGrant), //ppt授权操作表
  331. new(ppt_english.ReportPptEnglishImg), //Ppt转报告的图片记录表
  332. )
  333. }
  334. // initFutureGood 注册期货数据 数据表
  335. func initFutureGood() {
  336. //注册对象
  337. orm.RegisterModel(
  338. new(future_good2.FutureGoodEdbInfo), //期货指标表
  339. new(future_good2.FutureGoodEdbData), //期货指标数据表
  340. //new(future_good2.FutureGoodChartClassify), //期货指标分类表
  341. new(future_good2.ChartInfoFutureGoodProfit), //期货利润图的扩展表
  342. )
  343. }
  344. // initCloudDisk 共享云盘
  345. func initCloudDisk() {
  346. //注册对象
  347. orm.RegisterModel(
  348. new(CloudDiskMenu), // 云盘目录表
  349. new(CloudDiskResource), // 云盘资源表
  350. )
  351. }
  352. // initSemanticAnalysis 语义分析
  353. func initSemanticAnalysis() {
  354. orm.RegisterModel(
  355. new(semantic_analysis.SaLabel), // 语义分析-标签表
  356. new(semantic_analysis.SaDocClassify), // 语义分析-文档分类表
  357. new(semantic_analysis.SaDoc), // 语义分析-文档表
  358. new(semantic_analysis.SaDocSection), // 语义分析-文档段落表
  359. new(semantic_analysis.SaCompareClassify), // 语义分析-比对分类表
  360. new(semantic_analysis.SaCompare), // 语义分析-比对表
  361. new(semantic_analysis.SaCompareDoc), // 语义分析-比对关联文档表
  362. new(semantic_analysis.SaCompareLabel), // 语义分析-比对段落表
  363. new(semantic_analysis.SaCompareSearchKeyword), // 语义分析-比对搜索关键词
  364. )
  365. }
  366. // initSupplyAnalysis 供应分析
  367. func initSupplyAnalysis() {
  368. orm.RegisterModel(
  369. new(supply_analysis.Variety),
  370. new(supply_analysis.VarietyAdminPermission),
  371. new(supply_analysis.VarietyEdbInfo),
  372. new(supply_analysis.VarietyPlant),
  373. )
  374. }
  375. // initMultipleGraphConfig 多图配置 数据表
  376. func initMultipleGraphConfig() {
  377. //注册对象
  378. orm.RegisterModel(
  379. new(data_manage.MultipleGraphConfig), //多图配置表
  380. new(data_manage.MultipleGraphConfigChartMapping), //图表与多图配置的关系表
  381. new(data_manage.MultipleGraphConfigEdbMapping), //指标与多图配置的关系表
  382. )
  383. }
  384. // initBusinessConf 商家配置
  385. func initBusinessConf() {
  386. orm.RegisterModel(
  387. new(BusinessConf), // 商家配置表
  388. new(BusinessConfOperationRecord), // 商家配置操作记录表
  389. )
  390. }
  391. func initOutLink() {
  392. orm.RegisterModel(
  393. new(OutLink)) // 外部链接表
  394. }
  395. // initEtaTrial 试用平台相关表
  396. func initEtaTrial() {
  397. orm.RegisterModel(
  398. new(eta_trial.QuestionnaireFillRecord), // 问卷填写记录表
  399. )
  400. }
  401. // initDataStat 数据源统计管理相关表
  402. func initDataStat() {
  403. orm.RegisterModel(
  404. new(data_stat.EdbInfoDeleteLog), // 指标删除日志表
  405. new(data_stat.EdbInfoUpdateStat), // 指标更新/刷新 汇总表(数据源明细表)
  406. new(data_stat.EdbInfoUpdateLog), // 指标更新/刷新日志列表
  407. new(data_stat.EdbSourceStat), // 数据源统计表
  408. )
  409. }
  410. // initChartFramework 图库框架相关表
  411. func initChartFramework() {
  412. orm.RegisterModel(
  413. new(data_manage.ChartFramework), // 图库框架主表
  414. new(data_manage.ChartFrameworkNode), // 图库框架节点表
  415. )
  416. }
  417. // initExcel 初始化EXCEL
  418. func initExcel() {
  419. orm.RegisterModel(
  420. new(excel.ExcelClassify), //ETA excel表格分类
  421. new(excel.ExcelInfo), //ETA excel表格
  422. new(excel.ExcelDraft), //ETA excel表格草稿
  423. new(excel.ExcelSheet), //ETA excel sheet
  424. new(excel.ExcelSheetData), //ETA excel sheet data
  425. new(excel.ExcelEdbMapping), //ETA excel 与 指标 的关系表
  426. )
  427. }
  428. // initSmartReport 智能研报相关表
  429. func initSmartReport() {
  430. orm.RegisterModel(
  431. new(smart_report.SmartReport), // 智能研报主表
  432. new(smart_report.SmartReportSaveLog), // 智能研报-保存记录表
  433. new(smart_report.SmartReportResource), // 智能研报-资源表
  434. )
  435. }
  436. // initCrossVariety 跨品种分析
  437. func initCrossVariety() {
  438. orm.RegisterModel(
  439. new(cross_variety.ChartVariety), // 品种表
  440. new(cross_variety.ChartTag), // 标签表
  441. new(cross_variety.ChartTagVariety), // 标签、品种、指标关系表
  442. new(cross_variety.ChartVarietyMapping), // 图表与品种的关系表
  443. new(cross_variety.ChartInfoCrossVariety), // 跨品种分析配置表
  444. )
  445. }
  446. func initAi() {
  447. orm.RegisterModel(
  448. new(aimod.AiChatTopic),
  449. new(aimod.AiChat),
  450. new(aimod.FileUploadRecord),
  451. )
  452. }
  453. // initReportApprove 报告审批相关表
  454. func initReportApprove() {
  455. orm.RegisterModel(
  456. new(report_approve.ReportApprove), // 审批表
  457. new(report_approve.ReportApproveFlow), // 审批流表
  458. new(report_approve.ReportApproveNode), // 审批节点表
  459. new(report_approve.ReportApproveRecord), // 审批记录表
  460. new(report_approve.ReportApproveMessage), // 审批消息表
  461. )
  462. }
  463. // initChartTheme 初始化图表主题
  464. func initChartTheme() {
  465. orm.RegisterModel(
  466. new(chart_theme.ChartTheme), // 图表主题
  467. new(chart_theme.ChartThemeType), // 图表主题类型
  468. new(chart_theme.ChartThemeDefaultData), //默认数据
  469. )
  470. }
  471. // initEdbRefresh 初始化指标刷新
  472. func initEdbRefresh() {
  473. orm.RegisterModel(
  474. new(edb_refresh.EdbRefreshSource), // 刷新的数据源表
  475. new(edb_refresh.EdbRefreshDefaultConfig), // 指标的默认刷新时间配置表
  476. new(edb_refresh.EdbRefreshConfig), // 指标的刷新时间配置表
  477. new(edb_refresh.EdbRefreshMapping), // 指标刷新时间配置关系表
  478. )
  479. }
  480. // initDataMangePerMission
  481. // @Description: 初始化数据资产权限的一些表
  482. // @author: Roc
  483. // @datetime 2024-03-27 14:03:11
  484. func initDataMangePerMission() {
  485. orm.RegisterModel(
  486. new(data_manage_permission.EdbInfoPermission), // 指标权限表
  487. new(data_manage_permission.EdbClassifyPermission), // 指标分类权限表
  488. )
  489. }