base_from_trade_index.go 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785
  1. package data_manage
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "fmt"
  6. "gorm.io/gorm"
  7. "time"
  8. "github.com/rdlucklib/rdluck_tools/paging"
  9. )
  10. type BaseFromTradeShanghaiIndex struct {
  11. BaseFromTradeShangHaiIndexId int `orm:"column(base_from_trade_shanghai_index_id);pk" gorm:"primaryKey"`
  12. Rank int
  13. DealShortName string
  14. DealName string
  15. DealCode string
  16. DealValue string
  17. DealChange string
  18. BuyShortName string
  19. BuyName string
  20. BuyCode string
  21. BuyValue string
  22. BuyChange string
  23. SoldShortName string
  24. SoldName string
  25. SoldCode string
  26. SoldValue string
  27. SoldChange string
  28. Frequency string
  29. ClassifyName string
  30. ClassifyType string
  31. CreateTime time.Time
  32. ModifyTime time.Time
  33. DataTime string
  34. }
  35. type BaseFromTradeCffexIndex struct {
  36. BaseFromTradeCffexIndexId int `orm:"column(base_from_trade_cffex_index_id);pk" gorm:"primaryKey"`
  37. Rank int
  38. DealShortName string
  39. DealName string
  40. DealCode string
  41. DealValue string
  42. DealChange string
  43. BuyShortName string
  44. BuyName string
  45. BuyCode string
  46. BuyValue string
  47. BuyChange string
  48. SoldShortName string
  49. SoldName string
  50. SoldCode string
  51. SoldValue string
  52. SoldChange string
  53. Frequency string
  54. ClassifyName string
  55. ClassifyType string
  56. CreateTime time.Time
  57. ModifyTime time.Time
  58. DataTime string
  59. }
  60. type BaseFromTradeIneIndex struct {
  61. BaseFromTradeIneIndexId int `orm:"column(base_from_trade_ine_index_id);pk" gorm:"primaryKey"`
  62. Rank int
  63. DealShortName string
  64. DealName string
  65. DealCode string
  66. DealValue string
  67. DealChange string
  68. BuyShortName string
  69. BuyName string
  70. BuyCode string
  71. BuyValue string
  72. BuyChange string
  73. SoldShortName string
  74. SoldName string
  75. SoldCode string
  76. SoldValue string
  77. SoldChange string
  78. Frequency string
  79. ClassifyName string
  80. ClassifyType string
  81. CreateTime time.Time
  82. ModifyTime time.Time
  83. DataTime string
  84. }
  85. type BaseFromTradeEicIndex struct {
  86. BaseFromEicIndexId int `orm:"column(base_from_eic_index_id);pk" gorm:"primaryKey"`
  87. Country string
  88. Type string
  89. EicCode string
  90. ShortName string
  91. Name string
  92. Status string
  93. GasDayStartedOn string
  94. GasInStorage string
  95. GasInStorageCode string
  96. Full string
  97. FullCode string
  98. Trend string
  99. TrendCode string
  100. Injection string
  101. InjectionCode string
  102. Withdrawal string
  103. WithdrawalCode string
  104. WorkingGasVolume string
  105. WorkingGasVolumeCode string
  106. InjectionCapacity string
  107. InjectionCapacityCode string
  108. WithdrawalCapacity string
  109. WithdrawalCapacityCode string
  110. Info string
  111. CreateTime time.Time
  112. ModifyTime time.Time
  113. }
  114. func GetBaseFromTradeIndexByParam(exchange, date, classifyName, classifyType string) (list []*BaseFromTradeShanghaiIndex, err error) {
  115. o := global.DbMap[utils.DbNameIndex]
  116. if classifyName == "" {
  117. sql := "SELECT * FROM base_from_trade_" + exchange + "_index where data_time=?"
  118. err = o.Raw(sql, date).Find(&list).Error
  119. return
  120. } else if classifyType == "" {
  121. sql := "SELECT * FROM base_from_trade_" + exchange + "_index where data_time=? and classify_name=? ORDER BY classify_type,`rank`"
  122. err = o.Raw(sql, date, classifyName).Find(&list).Error
  123. return
  124. } else {
  125. sql := "SELECT * FROM base_from_trade_" + exchange + "_index where data_time=? and classify_name=? and classify_type=?"
  126. err = o.Raw(sql, date, classifyName, classifyType).Find(&list).Error
  127. return
  128. }
  129. }
  130. func GetExchangeClassify(exchange, dataTime string) (classifyName []string, err error) {
  131. o := global.DbMap[utils.DbNameIndex]
  132. sql := "SELECT DISTINCT classify_name FROM base_from_trade_" + exchange + fmt.Sprintf("_index where data_time=? ORDER BY %s DESC", utils.GenerateQuerySql(utils.ConvertColumn, &utils.QueryParam{ConvertColumn: "classify_name"}))
  133. //sql := "SELECT DISTINCT classify_name FROM base_from_trade_" + exchange + "_index where data_time=? ORDER BY CONVERT(classify_name using gbk) DESC"
  134. err = o.Raw(sql, dataTime).Scan(&classifyName).Error
  135. return
  136. }
  137. func GetLatestDate(exchange string) (dataTime string, err error) {
  138. o := global.DbMap[utils.DbNameIndex]
  139. sql := "SELECT data_time FROM base_from_trade_" + exchange + "_index ORDER BY data_time desc limit 1"
  140. err = o.Raw(sql).Scan(&dataTime).Error
  141. if utils.NeedDateOrTimeFormat(utils.DbDriverName) {
  142. dataTime = utils.GormDateStrToDateStr(dataTime)
  143. }
  144. return
  145. }
  146. func GetExchangeClassifyContract(exchange, Classify, dataTime string) (classifyName []*string, err error) {
  147. o := global.DbMap[utils.DbNameIndex]
  148. sql := "SELECT DISTINCT classify_type FROM base_from_trade_" + exchange + "_index where classify_name=? and data_time=?"
  149. err = o.Raw(sql, Classify, dataTime).Scan(&classifyName).Error
  150. return
  151. }
  152. func GetContinentEicDate(date string) (data []*BaseFromTradeEicIndex, err error) {
  153. o := global.DbMap[utils.DbNameIndex]
  154. sql := "SELECT * FROM base_from_trade_eic_index where gas_day_started_on=? and type='continent' "
  155. err = o.Raw(sql, date).Find(&data).Error
  156. return
  157. }
  158. func GetCountryEicDate(date string) (data []*BaseFromTradeEicIndex, err error) {
  159. o := global.DbMap[utils.DbNameIndex]
  160. sql := "SELECT * FROM base_from_trade_eic_index where gas_day_started_on=? and type='country' "
  161. err = o.Raw(sql, date).Find(&data).Error
  162. return
  163. }
  164. func GetSSOEicDate(date, country string) (data []*BaseFromTradeEicIndex, err error) {
  165. o := global.DbMap[utils.DbNameIndex]
  166. sql := "SELECT * FROM base_from_trade_eic_index where gas_day_started_on=? and country=? and type='SSO' "
  167. err = o.Raw(sql, date, country).Find(&data).Error
  168. return
  169. }
  170. func GetStorageEicDate(date, country string) (data []*BaseFromTradeEicIndex, err error) {
  171. o := global.DbMap[utils.DbNameIndex]
  172. sql := "SELECT * FROM base_from_trade_eic_index where gas_day_started_on=? and country=? " +
  173. " and (type='Storage Facility' or type='Storage Group') "
  174. err = o.Raw(sql, date, country).Find(&data).Error
  175. return
  176. }
  177. func GetEicDate() (date []*BaseFromTradeEicIndex, err error) {
  178. o := global.DbMap[utils.DbNameIndex]
  179. sql := "SELECT * FROM base_from_trade_eic_index ORDER BY gas_day_started_on desc limit 1"
  180. err = o.Raw(sql).Find(&date).Error
  181. return
  182. }
  183. func GetEicHistoryDate(code string) (date []*BaseFromTradeEicIndex, err error) {
  184. o := global.DbMap[utils.DbNameIndex]
  185. sql := "SELECT * FROM base_from_trade_eic_index WHERE eic_code=? ORDER BY gas_day_started_on desc limit 30"
  186. err = o.Raw(sql, code).Find(&date).Error
  187. return
  188. }
  189. func GetEicHistoryDateByDate(code, startDate, endDate string) (date []*BaseFromTradeEicIndex, err error) {
  190. o := global.DbMap[utils.DbNameIndex]
  191. sql := "SELECT * FROM base_from_trade_eic_index WHERE eic_code=? and gas_day_started_on between ? and ? ORDER BY gas_day_started_on desc"
  192. err = o.Raw(sql, code, startDate, endDate).Find(&date).Error
  193. return
  194. }
  195. type BaseFromCoalmineJsmIndex struct {
  196. BaseFromCoalmineJsmIndexId int `orm:"column(base_from_coalmine_jsm_index_id);pk" gorm:"primaryKey"`
  197. IndexName string `description:"持买单量指标名称"`
  198. IndexCode string `description:"持买单量指标编码"`
  199. Exchange string `description:"样本统计类别"`
  200. DealValue string `description:"成交量"`
  201. DataTime string `description:"数据日期"`
  202. Source string `description:"来源"`
  203. Province string `description:"省份"`
  204. Description string `description:"描述"`
  205. Unit string `description:"单位"`
  206. Frequency string `description:"频率"`
  207. CreateTime string `description:"插入时间"`
  208. ModifyTime string `description:"修改时间"`
  209. }
  210. func (baseFromCoalmineJsmIndex *BaseFromCoalmineJsmIndex) AfterFind(tx *gorm.DB) (err error) {
  211. if utils.NeedDateOrTimeFormat(utils.DbDriverName) {
  212. if baseFromCoalmineJsmIndex.CreateTime != "" {
  213. baseFromCoalmineJsmIndex.CreateTime = utils.GormDateStrToDateTimeStr(baseFromCoalmineJsmIndex.CreateTime)
  214. }
  215. if baseFromCoalmineJsmIndex.ModifyTime != "" {
  216. baseFromCoalmineJsmIndex.ModifyTime = utils.GormDateStrToDateTimeStr(baseFromCoalmineJsmIndex.ModifyTime)
  217. }
  218. if baseFromCoalmineJsmIndex.DataTime != "" {
  219. baseFromCoalmineJsmIndex.DataTime = utils.GormDateStrToDateStr(baseFromCoalmineJsmIndex.DataTime)
  220. }
  221. }
  222. return
  223. }
  224. // GetBaseFromCoalmineIndex 查询数据
  225. func GetBaseFromCoalmineIndex(startDate, endDate string) (items []*BaseFromCoalmineJsmIndex, err error) {
  226. o := global.DbMap[utils.DbNameIndex]
  227. sql := `SELECT * FROM base_from_coalmine_jsm_index WHERE data_time between ? and ? `
  228. err = o.Raw(sql, startDate, endDate).Find(&items).Error
  229. return
  230. }
  231. type BaseFromCoalmineCompanyIndex struct {
  232. BaseFromCoalmineCompanyIndexId int `gorm:"column:base_from_coalmine_company_index_id;primaryKey"`
  233. IndexName string `description:"持买单量指标名称"`
  234. IndexCode string `description:"持买单量指标编码"`
  235. DealValue string `description:"成交量"`
  236. DataTime string `description:"数据日期"`
  237. Source string `description:"来源"`
  238. Province string `description:"省份"`
  239. City string `description:"城市"`
  240. GroupName string `description:"集团名称"`
  241. Unit string `description:"单位"`
  242. Frequency string `description:"频率"`
  243. CreateTime string `description:"插入时间"`
  244. ModifyTime string `description:"修改时间"`
  245. }
  246. func (baseFromCoalmineCompanyIndex *BaseFromCoalmineCompanyIndex) AfterFind(tx *gorm.DB) (err error) {
  247. if utils.NeedDateOrTimeFormat(utils.DbDriverName) {
  248. if baseFromCoalmineCompanyIndex.CreateTime != "" {
  249. baseFromCoalmineCompanyIndex.CreateTime = utils.GormDateStrToDateTimeStr(baseFromCoalmineCompanyIndex.CreateTime)
  250. }
  251. if baseFromCoalmineCompanyIndex.ModifyTime != "" {
  252. baseFromCoalmineCompanyIndex.ModifyTime = utils.GormDateStrToDateTimeStr(baseFromCoalmineCompanyIndex.ModifyTime)
  253. }
  254. if baseFromCoalmineCompanyIndex.DataTime != "" {
  255. baseFromCoalmineCompanyIndex.DataTime = utils.GormDateStrToDateStr(baseFromCoalmineCompanyIndex.DataTime)
  256. }
  257. }
  258. return
  259. }
  260. // GetBaseFromCoalmineCompanyIndex 查询公司指标
  261. func GetBaseFromCoalmineCompanyIndex(startDate, endDate string) (items []*BaseFromCoalmineCompanyIndex, err error) {
  262. o := global.DbMap[utils.DbNameIndex]
  263. sql := `SELECT * FROM base_from_coalmine_company_index WHERE data_time between ? and ? `
  264. err = o.Raw(sql, startDate, endDate).Find(&items).Error
  265. return
  266. }
  267. // BaseFromCoalmineFirmIndex 煤矿产量周度公司数据表
  268. type BaseFromCoalmineFirmIndex struct {
  269. BaseFromCoalmineFirmIndexID int `orm:"column(base_from_coalmine_firm_index_id);pk" gorm:"primaryKey"`
  270. IndexName string // 省份/企业名称
  271. IndexCode string // 持买单量指标编码
  272. DataTime string // 指标时间
  273. DealValue string // 数据量
  274. GroupName string // 集团名
  275. Source string // 来源
  276. Unit string // 来源
  277. Frequency string `description:"频率"`
  278. CreateTime string `description:"插入时间"`
  279. ModifyTime string `description:"修改时间"`
  280. }
  281. func (baseFromCoalmineFirmIndex *BaseFromCoalmineFirmIndex) AfterFind(tx *gorm.DB) (err error) {
  282. if utils.NeedDateOrTimeFormat(utils.DbDriverName) {
  283. if baseFromCoalmineFirmIndex.CreateTime != "" {
  284. baseFromCoalmineFirmIndex.CreateTime = utils.GormDateStrToDateTimeStr(baseFromCoalmineFirmIndex.CreateTime)
  285. }
  286. if baseFromCoalmineFirmIndex.ModifyTime != "" {
  287. baseFromCoalmineFirmIndex.ModifyTime = utils.GormDateStrToDateTimeStr(baseFromCoalmineFirmIndex.ModifyTime)
  288. }
  289. if baseFromCoalmineFirmIndex.DataTime != "" {
  290. baseFromCoalmineFirmIndex.DataTime = utils.GormDateStrToDateStr(baseFromCoalmineFirmIndex.DataTime)
  291. }
  292. }
  293. return
  294. }
  295. // 查询指标
  296. func GetBaseFromCoalmineFirmIndex(dataTime string) (items []*BaseFromCoalmineFirmIndex, err error) {
  297. o := global.DbMap[utils.DbNameIndex]
  298. sql := `SELECT * FROM base_from_coalmine_firm_index WHERE data_time LIKE `
  299. sql = sql + "'" + dataTime + "%" + "'"
  300. err = o.Raw(sql).Find(&items).Error
  301. fmt.Println(sql)
  302. return
  303. }
  304. // BaseFromCoalmineCoastalIndex 沿海八省动力煤用户供耗存数据指标表
  305. type BaseFromCoalmineCoastalIndex struct {
  306. BaseFromCoalmineCoastalIndexID int `orm:"column(base_from_coalmine_coastal_index_id);pk" gorm:"primaryKey"`
  307. IndexName string // 省份/企业名称
  308. IndexCode string // 持买单量指标编码
  309. DataTime string // 指标时间
  310. DealValue string // 数据量
  311. GroupName string // 地区
  312. Source string // 来源
  313. Unit string //单位
  314. Frequency string `description:"频率"`
  315. CreateTime string `description:"插入时间"`
  316. ModifyTime string `description:"修改时间"`
  317. }
  318. func (baseFromCoalmineCoastalIndex *BaseFromCoalmineCoastalIndex) AfterFind(tx *gorm.DB) (err error) {
  319. if utils.NeedDateOrTimeFormat(utils.DbDriverName) {
  320. if baseFromCoalmineCoastalIndex.CreateTime != "" {
  321. baseFromCoalmineCoastalIndex.CreateTime = utils.GormDateStrToDateTimeStr(baseFromCoalmineCoastalIndex.CreateTime)
  322. }
  323. if baseFromCoalmineCoastalIndex.ModifyTime != "" {
  324. baseFromCoalmineCoastalIndex.ModifyTime = utils.GormDateStrToDateTimeStr(baseFromCoalmineCoastalIndex.ModifyTime)
  325. }
  326. if baseFromCoalmineCoastalIndex.DataTime != "" {
  327. baseFromCoalmineCoastalIndex.DataTime = utils.GormDateStrToDateStr(baseFromCoalmineCoastalIndex.DataTime)
  328. }
  329. }
  330. return
  331. }
  332. // 查询指标
  333. func GetBaseFromCoalmineCoastalIndex(startDate, endDate string) (items []*BaseFromCoalmineCoastalIndex, err error) {
  334. o := global.DbMap[utils.DbNameIndex]
  335. sql := `SELECT * FROM base_from_coalmine_coastal_index WHERE data_time between ? and ? `
  336. err = o.Raw(sql, startDate, endDate).Find(&items).Error
  337. return
  338. }
  339. // BaseFromCoalmineInlandIndex 内陆动力煤用户供耗存数据指标表
  340. type BaseFromCoalmineInlandIndex struct {
  341. BaseFromCoalmineInlandIndexID int `orm:"column(base_from_coalmine_inland_index_id);pk" gorm:"primaryKey"`
  342. IndexName string // 省份/企业名称
  343. IndexCode string // 持买单量指标编码
  344. DataTime string // 指标时间
  345. DealValue string // 数据量
  346. GroupName string // 地区
  347. Source string // 来源
  348. Unit string // 来源
  349. Frequency string `description:"频率"`
  350. CreateTime string `description:"插入时间"`
  351. ModifyTime string `description:"修改时间"`
  352. }
  353. func (baseFromCoalmineInlandIndex *BaseFromCoalmineInlandIndex) AfterFind(tx *gorm.DB) (err error) {
  354. if utils.NeedDateOrTimeFormat(utils.DbDriverName) {
  355. if baseFromCoalmineInlandIndex.CreateTime != "" {
  356. baseFromCoalmineInlandIndex.CreateTime = utils.GormDateStrToDateTimeStr(baseFromCoalmineInlandIndex.CreateTime)
  357. }
  358. if baseFromCoalmineInlandIndex.ModifyTime != "" {
  359. baseFromCoalmineInlandIndex.ModifyTime = utils.GormDateStrToDateTimeStr(baseFromCoalmineInlandIndex.ModifyTime)
  360. }
  361. if baseFromCoalmineInlandIndex.DataTime != "" {
  362. baseFromCoalmineInlandIndex.DataTime = utils.GormDateStrToDateStr(baseFromCoalmineInlandIndex.DataTime)
  363. }
  364. }
  365. return
  366. }
  367. // 查询指标
  368. func GetBaseFromCoalmineInlandIndex(startDate, endDate string) (items []*BaseFromCoalmineInlandIndex, err error) {
  369. o := global.DbMap[utils.DbNameIndex]
  370. sql := `SELECT * FROM base_from_coalmine_inland_index WHERE data_time between ? and ? `
  371. err = o.Raw(sql, startDate, endDate).Find(&items).Error
  372. return
  373. }
  374. type BaseFromCoalmineClassifyItem struct {
  375. ClassifyId int
  376. ClassifyName string
  377. Child []CoalChild
  378. }
  379. type CoalChild struct {
  380. ClassifyId int
  381. ClassifyName string
  382. }
  383. type CoalmineDataResp struct {
  384. IndexName string
  385. IndexCode string // 持买单量指标编码
  386. Unit string // 来源
  387. Frequency string
  388. ModifyTime string
  389. DataList []DataList
  390. }
  391. type CoalmineDataPageResp struct {
  392. IndexName string
  393. IndexCode string // 持买单量指标编码
  394. Unit string // 来源
  395. Frequency string
  396. ModifyTime string
  397. Paging *paging.PagingItem `description:"分页数据" gorm:"-"`
  398. DataList []DataList `gorm:"-"`
  399. }
  400. type CoalmineSingalDataResp struct {
  401. IndexName string
  402. IndexCode string // 持买单量指标编码
  403. Unit string // 来源
  404. GroupId int // 二级id
  405. GroupName string // 二级名称
  406. Frequency string
  407. ModifyTime string
  408. ClassifyId int
  409. DataList []DataList
  410. }
  411. type DataList struct {
  412. Value string
  413. DataTime string
  414. }
  415. type FrequencyResp struct {
  416. Frequency int
  417. }
  418. // GetFrequencyFromCoal 获取指标信息
  419. func GetFrequencyFromCoal(suffix string) (list *string, err error) {
  420. o := global.DbMap[utils.DbNameIndex]
  421. sql := `SELECT DISTINCT frequency FROM base_from_coalmine_%s `
  422. sql = fmt.Sprintf(sql, suffix)
  423. err = o.Raw(sql).Scan(&list).Error
  424. return
  425. }
  426. // 查询数据
  427. func GetBaseFromCoalmineIndexByFrequency(frequency, groupName string) (items []*BaseFromCoalmineJsmIndex, err error) {
  428. o := global.DbMap[utils.DbNameIndex]
  429. sql := `SELECT * FROM base_from_coalmine_jsm_index WHERE frequency=? AND province=?`
  430. err = o.Raw(sql, frequency, groupName).Find(&items).Error
  431. return
  432. }
  433. // 查询数据
  434. func GetGroupNameFromCoalmineIndex(suffix string) (items []*string, err error) {
  435. o := global.DbMap[utils.DbNameIndex]
  436. sql := `SELECT DISTINCT group_name FROM base_from_coalmine_%s `
  437. sql = fmt.Sprintf(sql, suffix)
  438. err = o.Raw(sql).Find(&items).Error
  439. return
  440. }
  441. // 查询数据
  442. func GetProvinceFromCoalmineIndex(suffix string) (items []*string, err error) {
  443. o := global.DbMap[utils.DbNameIndex]
  444. sql := `SELECT DISTINCT province FROM base_from_coalmine_%s `
  445. sql = fmt.Sprintf(sql, suffix)
  446. err = o.Raw(sql).Find(&items).Error
  447. return
  448. }
  449. // 查询数据
  450. func GetClassifyCoalmineIndexByGroupName(groupName string) (items []*string, err error) {
  451. o := global.DbMap[utils.DbNameIndex]
  452. sql := `SELECT DISTINCT index_code FROM base_from_coalmine_jsm_index WHERE province=? `
  453. err = o.Raw(sql, groupName).Find(&items).Error
  454. return
  455. }
  456. // 查询数据
  457. func GetPageFromCoalmineIndexByFrequency(frequency, classify string, startSize, pageSize int) (items []*BaseFromCoalmineJsmIndex, err error) {
  458. o := global.DbMap[utils.DbNameIndex]
  459. sql := `SELECT * FROM base_from_coalmine_jsm_index WHERE frequency=? AND index_code=? ORDER BY data_time DESC LIMIT ?,? `
  460. err = o.Raw(sql, frequency, classify, startSize, pageSize).Find(&items).Error
  461. return
  462. }
  463. // 查询数据
  464. func GetCountFromJsm(indexCode string) (item int, err error) {
  465. o := global.DbMap[utils.DbNameIndex]
  466. sql := `SELECT COUNT(1) FROM base_from_coalmine_jsm_index WHERE index_code=? `
  467. err = o.Raw(sql, indexCode).First(&item).Error
  468. return
  469. }
  470. func GetClassifyCompanyByGroupName(groupName string) (items []*string, err error) {
  471. o := global.DbMap[utils.DbNameIndex]
  472. sql := `SELECT DISTINCT index_code FROM base_from_coalmine_company_index WHERE group_name=? `
  473. err = o.Raw(sql, groupName).Find(&items).Error
  474. return
  475. }
  476. func GetClassifyJsmByGroupName(groupName string) (items []*string, err error) {
  477. o := global.DbMap[utils.DbNameIndex]
  478. sql := `SELECT DISTINCT index_code FROM base_from_coalmine_jsm_index WHERE province=? `
  479. err = o.Raw(sql, groupName).Find(&items).Error
  480. return
  481. }
  482. // 查询公司指标
  483. func GetPageFromCoalmineCompanyIndexByFrequency(frequency, classify string, startSize, pageSize int) (items []*BaseFromCoalmineCompanyIndex, err error) {
  484. o := global.DbMap[utils.DbNameIndex]
  485. sql := `SELECT * FROM base_from_coalmine_company_index WHERE frequency=? AND index_code=? ORDER BY data_time DESC LIMIT ?,? `
  486. err = o.Raw(sql, frequency, classify, startSize, pageSize).Find(&items).Error
  487. return
  488. }
  489. func GetCountFromCompany(indexCode string) (item int, err error) {
  490. o := global.DbMap[utils.DbNameIndex]
  491. sql := `SELECT COUNT(1) FROM base_from_coalmine_company_index WHERE index_code=? `
  492. err = o.Raw(sql, indexCode).First(&item).Error
  493. return
  494. }
  495. func GetCountFromFirm(indexCode string) (item int, err error) {
  496. o := global.DbMap[utils.DbNameIndex]
  497. sql := `SELECT COUNT(1) FROM base_from_coalmine_firm_index WHERE index_code=? `
  498. err = o.Raw(sql, indexCode).First(&item).Error
  499. return
  500. }
  501. func GetClassifyFirmByGroupName(groupName string) (items []*string, err error) {
  502. o := global.DbMap[utils.DbNameIndex]
  503. sql := `SELECT DISTINCT index_code FROM base_from_coalmine_firm_index WHERE group_name=? `
  504. err = o.Raw(sql, groupName).Find(&items).Error
  505. return
  506. }
  507. // 查询指标
  508. func GetPageFromCoalmineFirmIndexByFrequency(frequency, classify string, startSize, pageSize int) (items []*BaseFromCoalmineFirmIndex, err error) {
  509. o := global.DbMap[utils.DbNameIndex]
  510. sql := `SELECT * FROM base_from_coalmine_firm_index WHERE frequency=? AND index_code=? ORDER BY data_time DESC LIMIT ?,? `
  511. err = o.Raw(sql, frequency, classify, startSize, pageSize).Find(&items).Error
  512. return
  513. }
  514. func GetCountFromCoastal(indexCode string) (item int, err error) {
  515. o := global.DbMap[utils.DbNameIndex]
  516. sql := `SELECT COUNT(1) FROM base_from_coalmine_coastal_index WHERE index_code=? `
  517. err = o.Raw(sql, indexCode).First(&item).Error
  518. return
  519. }
  520. func GetClassifyCoastalByGroupName(groupName string) (items []*string, err error) {
  521. o := global.DbMap[utils.DbNameIndex]
  522. sql := `SELECT DISTINCT index_code FROM base_from_coalmine_coastal_index WHERE group_name=? `
  523. err = o.Raw(sql, groupName).Find(&items).Error
  524. return
  525. }
  526. // 查询指标
  527. func GetPageFromCoalmineCoastalIndexByFrequency(frequency, classify string, startSize, pageSize int) (items []*BaseFromCoalmineCoastalIndex, err error) {
  528. o := global.DbMap[utils.DbNameIndex]
  529. sql := `SELECT * FROM base_from_coalmine_coastal_index WHERE frequency=? AND index_code=? ORDER BY data_time DESC LIMIT ?,? `
  530. err = o.Raw(sql, frequency, classify, startSize, pageSize).Find(&items).Error
  531. return
  532. }
  533. func GetCountFromInland(indexCode string) (item int, err error) {
  534. o := global.DbMap[utils.DbNameIndex]
  535. sql := `SELECT COUNT(1) FROM base_from_coalmine_inland_index WHERE index_code=? `
  536. err = o.Raw(sql, indexCode).First(&item).Error
  537. return
  538. }
  539. func GetClassifyInlandByGroupName(groupName string) (items []*string, err error) {
  540. o := global.DbMap[utils.DbNameIndex]
  541. sql := `SELECT DISTINCT index_code FROM base_from_coalmine_inland_index WHERE group_name=? `
  542. err = o.Raw(sql, groupName).Find(&items).Error
  543. return
  544. }
  545. // 查询指标
  546. func GetPageFromCoalmineInlandIndexByFrequency(frequency, classify string, startSize, pageSize int) (items []*BaseFromCoalmineInlandIndex, err error) {
  547. o := global.DbMap[utils.DbNameIndex]
  548. sql := `SELECT * FROM base_from_coalmine_inland_index WHERE frequency=? AND index_code=? ORDER BY data_time DESC LIMIT ?,? `
  549. err = o.Raw(sql, frequency, classify, startSize, pageSize).Find(&items).Error
  550. return
  551. }
  552. // 查询公司指标
  553. func GetBaseFromCoalmineCompanyIndexByFrequency(frequency, groupName string) (items []*BaseFromCoalmineCompanyIndex, err error) {
  554. o := global.DbMap[utils.DbNameIndex]
  555. sql := `SELECT * FROM base_from_coalmine_company_index WHERE frequency=? AND group_name=? `
  556. err = o.Raw(sql, frequency, groupName).Find(&items).Error
  557. return
  558. }
  559. // 查询指标
  560. func GetBaseFromCoalmineFirmIndexByFrequency(frequency, groupName string) (items []*BaseFromCoalmineFirmIndex, err error) {
  561. o := global.DbMap[utils.DbNameIndex]
  562. sql := `SELECT * FROM base_from_coalmine_firm_index WHERE frequency=? AND group_name=? `
  563. err = o.Raw(sql, frequency, groupName).Find(&items).Error
  564. return
  565. }
  566. // 查询指标
  567. func GetBaseFromCoalmineCoastalIndexByFrequency(frequency, groupName string) (items []*BaseFromCoalmineCoastalIndex, err error) {
  568. o := global.DbMap[utils.DbNameIndex]
  569. sql := `SELECT * FROM base_from_coalmine_coastal_index WHERE frequency=? AND group_name=? `
  570. err = o.Raw(sql, frequency, groupName).Find(&items).Error
  571. return
  572. }
  573. // 查询指标
  574. func GetBaseFromCoalmineInlandIndexByFrequency(frequency, groupName string) (items []*BaseFromCoalmineInlandIndex, err error) {
  575. o := global.DbMap[utils.DbNameIndex]
  576. sql := `SELECT * FROM base_from_coalmine_inland_index WHERE frequency=? AND group_name=? `
  577. err = o.Raw(sql, frequency, groupName).Find(&items).Error
  578. return
  579. }
  580. // 查询数据
  581. func GetBaseFromCoalmineIndexByCode(indexCode string) (items []*BaseFromCoalmineJsmIndex, err error) {
  582. o := global.DbMap[utils.DbNameIndex]
  583. sql := `SELECT * FROM base_from_coalmine_jsm_index WHERE index_code=?`
  584. err = o.Raw(sql, indexCode).Find(&items).Error
  585. return
  586. }
  587. // 查询公司指标
  588. func GetBaseFromCoalmineCompanyIndexByCode(indexCode string) (items []*BaseFromCoalmineCompanyIndex, err error) {
  589. o := global.DbMap[utils.DbNameIndex]
  590. sql := `SELECT * FROM base_from_coalmine_company_index WHERE index_code=? `
  591. err = o.Raw(sql, indexCode).Find(&items).Error
  592. return
  593. }
  594. // 查询指标
  595. func GetBaseFromCoalmineFirmIndexByCode(indexCode string) (items []*BaseFromCoalmineFirmIndex, err error) {
  596. o := global.DbMap[utils.DbNameIndex]
  597. sql := `SELECT * FROM base_from_coalmine_firm_index WHERE index_code=? `
  598. err = o.Raw(sql, indexCode).Find(&items).Error
  599. return
  600. }
  601. // 查询指标
  602. func GetBaseFromCoalmineCoastalIndexByCode(indexCode string) (items []*BaseFromCoalmineCoastalIndex, err error) {
  603. o := global.DbMap[utils.DbNameIndex]
  604. sql := `SELECT * FROM base_from_coalmine_coastal_index WHERE index_code=? `
  605. err = o.Raw(sql, indexCode).Find(&items).Error
  606. return
  607. }
  608. // 查询指标
  609. func GetBaseFromCoalmineInlandIndexByCode(indexCode string) (items []*BaseFromCoalmineInlandIndex, err error) {
  610. o := global.DbMap[utils.DbNameIndex]
  611. sql := `SELECT * FROM base_from_coalmine_inland_index WHERE index_code=? `
  612. err = o.Raw(sql, indexCode).Find(&items).Error
  613. return
  614. }
  615. type BaseFromTradeEicIndexV2 struct {
  616. BaseFromEicIndexId int `orm:"column(base_from_eic_index_id);pk" gorm:"primaryKey"`
  617. Type string
  618. EicCode string
  619. Name string
  620. Status string
  621. GasDayStart string
  622. GasInStorage float64
  623. GasInStorageCode string
  624. Consumption string
  625. ConsumptionCode string
  626. ConsumptionFull string
  627. ConsumptionFullCode string
  628. Full float64
  629. FullCode string
  630. Trend float64
  631. TrendCode string
  632. Injection float64
  633. InjectionCode string
  634. Withdrawal float64
  635. WithdrawalCode string
  636. WorkingGasVolume float64
  637. WorkingGasVolumeCode string
  638. InjectionCapacity float64
  639. InjectionCapacityCode string
  640. WithdrawalCapacity float64
  641. WithdrawalCapacityCode string
  642. Info string
  643. Parent string
  644. CreateTime time.Time
  645. ModifyTime time.Time
  646. Children []BaseFromTradeEicIndexV2 `gorm:"-"`
  647. }
  648. func GetEicDateV2() (date []*BaseFromTradeEicIndexV2, err error) {
  649. o := global.DbMap[utils.DbNameIndex]
  650. sql := "SELECT * FROM base_from_trade_eic_index_v2 ORDER BY gas_day_start desc limit 1"
  651. err = o.Raw(sql).Find(&date).Error
  652. return
  653. }
  654. func GetEicDataV2(date string) (data []*BaseFromTradeEicIndexV2, err error) {
  655. o := global.DbMap[utils.DbNameIndex]
  656. sql := "SELECT * FROM base_from_trade_eic_index_v2 where gas_day_start=? "
  657. err = o.Raw(sql, date).Find(&data).Error
  658. return
  659. }
  660. func GetEicHistoryDateByDateV2(code, startDate, endDate string) (date []*BaseFromTradeEicIndexV2, err error) {
  661. o := global.DbMap[utils.DbNameIndex]
  662. sql := "SELECT * FROM base_from_trade_eic_index_v2 WHERE eic_code=? and gas_day_start between ? and ? ORDER BY gas_day_start desc"
  663. err = o.Raw(sql, code, startDate, endDate).Find(&date).Error
  664. return
  665. }
  666. func GetEicHistoryDateV2(code string) (date []*BaseFromTradeEicIndexV2, err error) {
  667. o := global.DbMap[utils.DbNameIndex]
  668. sql := "SELECT * FROM base_from_trade_eic_index_v2 WHERE eic_code=? ORDER BY gas_day_start desc limit 30"
  669. err = o.Raw(sql, code).Find(&date).Error
  670. return
  671. }
  672. func GetContinentAndCountryEicDateV2(date string) (data []*BaseFromTradeEicIndexV2, err error) {
  673. o := global.DbMap[utils.DbNameIndex]
  674. sql := "SELECT * FROM base_from_trade_eic_index_v2 where gas_day_start=? and (type='continent' OR type='country') "
  675. err = o.Raw(sql, date).Find(&data).Error
  676. return
  677. }
  678. func GetSSOAndFacEicDateV2(date, name string) (data []*BaseFromTradeEicIndexV2, err error) {
  679. o := global.DbMap[utils.DbNameIndex]
  680. sql := "SELECT * FROM base_from_trade_eic_index_v2 where gas_day_start=? and (type='sso' OR type='fac') "
  681. err = o.Raw(sql, date).Find(&data).Error
  682. return
  683. }
  684. func GetBaseFromTradeIndexByDate(exchange, startDate, endDate string) (list []*BaseFromTradeShanghaiIndex, err error) {
  685. o := global.DbMap[utils.DbNameIndex]
  686. sql := "SELECT * FROM base_from_trade_" + exchange + "_index where `rank` < 50 and data_time between ? and ? order by data_time asc"
  687. err = o.Raw(sql, startDate, endDate).Find(&list).Error
  688. return
  689. }
  690. func GetFirstBaseFromTradeIndexByDate(exchange string) (item *BaseFromTradeShanghaiIndex, err error) {
  691. o := global.DbMap[utils.DbNameIndex]
  692. sql := "SELECT * FROM base_from_trade_" + exchange + "_index where `rank` < 50 order by data_time asc"
  693. err = o.Raw(sql).First(&item).Error
  694. return
  695. }
  696. type BaseFromCoalmineClassify struct {
  697. BaseFromCoalmineClassifyId int `orm:"column(base_from_coalmine_classify_id);pk" gorm:"primaryKey"`
  698. ClassifyName string // 分类名称
  699. Suffix string // 表名后缀
  700. CreateTime time.Time
  701. }
  702. func GetCoalmineClassifyList() (list []*BaseFromCoalmineClassify, err error) {
  703. o := global.DbMap[utils.DbNameIndex]
  704. sql := "SELECT * FROM base_from_coalmine_classify"
  705. err = o.Raw(sql).Find(&list).Error
  706. return
  707. }