db.go 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. package models
  2. import (
  3. "eta/eta_index_lib/models/data_stat"
  4. "eta/eta_index_lib/models/edb_refresh"
  5. "eta/eta_index_lib/models/excel"
  6. "eta/eta_index_lib/models/future_good"
  7. "eta/eta_index_lib/models/supply_analysis"
  8. "eta/eta_index_lib/utils"
  9. "time"
  10. "github.com/beego/beego/v2/client/orm"
  11. _ "github.com/go-sql-driver/mysql"
  12. _ "github.com/lib/pq"
  13. )
  14. func init() {
  15. _ = orm.RegisterDataBase("default", utils.DBDRIVER_NAME, utils.MYSQL_URL)
  16. orm.SetMaxIdleConns("default", 50)
  17. orm.SetMaxOpenConns("default", 100)
  18. db, _ := orm.GetDB("default")
  19. db.SetConnMaxLifetime(10 * time.Minute)
  20. _ = orm.RegisterDataBase("edb", utils.DBDRIVER_NAME, utils.MYSQL_URL_EDB)
  21. orm.SetMaxIdleConns("edb", 50)
  22. orm.SetMaxOpenConns("edb", 100)
  23. edb_db, _ := orm.GetDB("edb")
  24. edb_db.SetConnMaxLifetime(10 * time.Minute)
  25. _ = orm.RegisterDataBase("gl", utils.DBDRIVER_NAME, utils.MYSQL_URL_GL)
  26. orm.SetMaxIdleConns("gl", 50)
  27. orm.SetMaxOpenConns("gl", 100)
  28. gl, _ := orm.GetDB("gl")
  29. gl.SetConnMaxLifetime(10 * time.Minute)
  30. // master库
  31. {
  32. _ = orm.RegisterDataBase("master", utils.DBDRIVER_NAME, utils.MYSQL_URL_MASTER)
  33. orm.SetMaxIdleConns("master", 50)
  34. orm.SetMaxOpenConns("master", 100)
  35. master, _ := orm.GetDB("master")
  36. master.SetConnMaxLifetime(10 * time.Minute)
  37. }
  38. orm.Debug = true
  39. orm.DebugLog = orm.NewLog(utils.Binlog)
  40. //注册对象
  41. orm.RegisterModel(
  42. new(EdbDataCalculateZjpj),
  43. new(EdbDataCalculateLjztbpj),
  44. //new(EdbInfo),
  45. new(EdbInfoOrm),
  46. new(EdbInfoRecord),
  47. new(BaseFromSmmRecord),
  48. new(BaseFromMysteelChemicalRecord),
  49. new(EdbInfoCalculateMapping),
  50. new(EdbPythonCode),
  51. new(EdbDataPython),
  52. new(ChartEdbMapping),
  53. new(PredictEdbConf),
  54. new(EdbClassify),
  55. new(PredictEdbConfCalculateMapping),
  56. new(PredictEdbRuleData),
  57. new(EdbDataCalculateNhcc),
  58. new(EdbDataPredictCalculateLjztbpj),
  59. new(EdbDataPredictCalculateNhcc),
  60. new(EdbDataPredictCalculateZjpj),
  61. new(EdbDataInsertConfig),
  62. new(EdbAdjustConf), // 数据调整的配置
  63. new(BaseFromMysteelChemicalClassify),
  64. new(EdbInfoRelation), //指标引用记录
  65. )
  66. // 注册期货数据 数据表
  67. initFutureGood()
  68. // 供应分析 数据表
  69. initSupplyAnalysis()
  70. // 基础指标表
  71. initBaseIndex()
  72. // initDataStat 数据源统计管理相关表
  73. initDataStat()
  74. // Eta表格相关
  75. initExcel()
  76. // 初始化指标刷新
  77. initEdbRefresh()
  78. // 自有数据指标
  79. initBusinessEdb()
  80. // 初始化因子指标系列
  81. initFactorEdbSeries()
  82. // 初始化部分数据表变量(直接init会有顺序问题=_=!)
  83. afterInitTable()
  84. }
  85. // initFutureGood 注册期货数据 数据表
  86. func initFutureGood() {
  87. //注册对象
  88. orm.RegisterModel(
  89. new(future_good.FutureGoodEdbInfo), //期货指标表
  90. new(future_good.FutureGoodEdbData), //期货指标数据表
  91. new(future_good.ChartInfoFutureGoodProfit), //商品期货利润图表相关的信息
  92. )
  93. }
  94. // initSupplyAnalysis 供应分析
  95. func initSupplyAnalysis() {
  96. orm.RegisterModel(
  97. new(supply_analysis.Variety),
  98. new(supply_analysis.VarietyAdminPermission),
  99. new(supply_analysis.VarietyEdbInfo),
  100. new(supply_analysis.VarietyPlant),
  101. new(supply_analysis.BaseFromStockPlantData),
  102. )
  103. }
  104. // initBaseIndex 基础指标表
  105. func initBaseIndex() {
  106. orm.RegisterModel(
  107. new(BaseFromSciIndex),
  108. new(BaseFromSciData),
  109. new(BaseFromBaiinfoIndex),
  110. new(BaseFromBaiinfoData),
  111. new(BaseFromSmmIndex),
  112. new(BaseFromSmmData),
  113. new(BaseFromMysteelChemicalIndex),
  114. new(BaseFromMysteelChemicalData),
  115. new(BaseFromTradeShanghaiIndex),
  116. new(BaseFromTradeIneIndex),
  117. new(BaseFromSmmClassify),
  118. new(BaseFromYongyiIndex),
  119. new(BaseFromYongyiData),
  120. new(BaseFromYongyiClassify),
  121. new(BaseFromCoalmineMapping),
  122. new(BaseFromCoalmineJsmIndex),
  123. new(BaseFromCoalmineCoastalIndex),
  124. new(BaseFromCoalmineInlandIndex),
  125. new(BaseFromCoalmineCompanyIndex),
  126. new(BaseFromCoalmineFirmIndex),
  127. new(BaseFromMtjhMapping),
  128. new(BaseFromMtjhIndex),
  129. new(BaseFromFenweiIndex),
  130. new(BaseFromFenweiData),
  131. new(BaseFromBloombergIndex),
  132. new(BaseFromBloombergData),
  133. new(BaseFromSci99Data),
  134. new(BaseFromSci99Index),
  135. new(BaseFromSci99Classify),
  136. new(BaseFromCCFIndex),
  137. new(BaseFromCCFData),
  138. new(CCFStockExcel),
  139. new(BaseFromSciHqData),
  140. new(BaseFromSciHqIndex),
  141. new(BaseFromThsHfIndex),
  142. new(BaseFromThsHfData),
  143. new(BaseFromEdbMapping),
  144. new(EdbDataThsHf),
  145. new(BaseFromBusinessData), // 数据源中自有数据的明细数据表
  146. new(BaseFromOilchemIndex),
  147. new(BaseFromOilchemData),
  148. new(BaseFromFenweiClassify),
  149. new(EdbDataTradeAnalysis),
  150. new(BaseFromUsdaFasIndex),
  151. new(BaseFromUsdaFasData),
  152. new(BaseFromUsdaFasClassify),
  153. new(BaseFromGprRiskIndex),
  154. new(BaseFromGprRiskData),
  155. new(BaseFromGprRiskClassify),
  156. new(BaseFromHisugarIndex),
  157. new(BaseFromHisugarData),
  158. new(EdbDataCalculateStl),
  159. new(CalculateStlConfig),
  160. new(BaseFromClarksonsIndex),
  161. new(BaseFromClarksonsData),
  162. )
  163. }
  164. // initDataStat 数据源统计管理相关表
  165. func initDataStat() {
  166. orm.RegisterModel(
  167. new(data_stat.EdbInfoUpdateLog), // 指标更新/刷新日志列表
  168. new(data_stat.EdbInfoUpdateStat), // 数据源明细表
  169. new(data_stat.EdbSourceStat), // 数据源统计表
  170. )
  171. }
  172. // initExcel Excel
  173. func initExcel() {
  174. orm.RegisterModel(
  175. new(excel.ExcelInfo),
  176. new(excel.ExcelClassify),
  177. new(excel.ExcelEdbMapping), //excel与指标的关系表
  178. )
  179. }
  180. // initEdbRefresh 初始化指标刷新
  181. func initEdbRefresh() {
  182. orm.RegisterModel(
  183. new(edb_refresh.EdbRefreshSource), // 刷新的数据源表
  184. new(edb_refresh.EdbRefreshDefaultConfig), // 指标的默认刷新时间配置表
  185. new(edb_refresh.EdbRefreshConfig), // 指标的刷新时间配置表
  186. new(edb_refresh.EdbRefreshMapping), // 指标刷新时间配置关系表
  187. )
  188. }
  189. // initBusinessEdb 初始化指标刷新
  190. func initBusinessEdb() {
  191. orm.RegisterModel(
  192. new(BaseFromBusinessIndex), // 外部指标(商家系统)表
  193. new(EdbBusinessSource), // 自有数据(商家)指标来源
  194. )
  195. }
  196. // initFactorEdbSeries 因子指标系列数据表
  197. func initFactorEdbSeries() {
  198. orm.RegisterModel(
  199. new(FactorEdbSeries), // 因子指标系列
  200. new(FactorEdbSeriesChartMapping), // 因子指标系列-图表关联
  201. new(FactorEdbSeriesMapping), // 因子指标系列-指标计算数据
  202. new(FactorEdbSeriesCalculateData), // 因子指标系列-指标关联
  203. new(FactorEdbSeriesCalculateDataQjjs), // 因子指标系列-区间计算
  204. )
  205. }
  206. // afterInitTable
  207. // @Description: 初始化表结构的的后置操作
  208. // @author: Roc
  209. // @datetime 2024-07-01 13:31:09
  210. func afterInitTable() {
  211. // 初始化指标来源配置
  212. InitEdbSource()
  213. // 初始化是否启用mongo配置
  214. InitUseMongoConf()
  215. // 初始化Smm有色指标数据获取方式
  216. InitSmmDataMethodConf()
  217. }