guagnzhouqihuo.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package data_source
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "time"
  6. )
  7. type BaseFromTradeGuangzhouClassify struct {
  8. BaseFromTradeGuangzhouClassifyId int `orm:"column(base_from_trade_guangzhou_classify_id);pk" gorm:"primaryKey"`
  9. ClassifyName string `description:"分类名称"`
  10. ClassifyCode string `description:"分类编码"`
  11. ParentId int `description:"分类父级id"`
  12. ModifyTime time.Time `description:"修改时间"`
  13. CreateTime time.Time `description:"创建时间"`
  14. }
  15. type BaseFromTradeGuangzhouIndex struct {
  16. BaseFromTradeGuangzhouIndexId int `orm:"column(base_from_trade_guangzhou_index_id);pk" gorm:"primaryKey"`
  17. BaseFromTradeGuangzhouClassifyId int `description:"分类id"`
  18. IndexCode string `description:"指标编码"`
  19. IndexName string `description:"指标名称"`
  20. Frequency string `description:"频率"`
  21. Unit string `description:"单位"`
  22. StartDate string `description:"开始日期"`
  23. EndDate string `description:"结束日期"`
  24. CreateTime time.Time `description:"创建日期"`
  25. ModifyTime time.Time `description:"修改日期"`
  26. }
  27. type BaseFromTradeGuangzhouData struct {
  28. BaseFromTradeGuangzhouDataId int `orm:"column(base_from_trade_guangzhou_data_id);pk" gorm:"primaryKey"`
  29. BaseFromTradeGuangzhouIndexId int `description:"指标id"`
  30. IndexCode string `description:"指标编码"`
  31. DataTime string `description:"数据日期"`
  32. Value float64 `description:"数据值"`
  33. QtySub float64 `description:"增减"`
  34. CreateTime time.Time `description:"创建日期"`
  35. ModifyTime time.Time `description:"修改日期"`
  36. }
  37. type BaseFromTradeGuangzhouClassifyView struct {
  38. BaseFromTradeGuangzhouClassifyId int `orm:"column(base_from_trade_guangzhou_classify_id);pk" gorm:"primaryKey"`
  39. ClassifyName string `description:"分类名称"`
  40. ClassifyCode string `description:"分类编码"`
  41. ParentId int `description:"分类父级id"`
  42. Children []*BaseFromTradeGuangzhouClassifyView `gorm:"-"`
  43. }
  44. type BaseFromTradeGuangzhouContract struct {
  45. BaseFromTradeGuangzhouContractId int `orm:"column(base_from_trade_guangzhou_contract_id);pk" gorm:"primaryKey"`
  46. BaseFromTradeGuangzhouClassifyId int `description:"分类id"`
  47. ClassifyCode string `description:"分类编码"`
  48. Contract string `description:"合约编码"`
  49. TradeDate string `description:"合约日期"`
  50. }
  51. func (obj *BaseFromTradeGuangzhouIndex) GetBaseFromTradeGuangzhouClassifyAll() (list []*BaseFromTradeGuangzhouClassifyView, err error) {
  52. o := global.DbMap[utils.DbNameIndex]
  53. sql := `SELECT * FROM base_from_trade_guangzhou_classify`
  54. err = o.Raw(sql).Find(&list).Error
  55. return list, err
  56. }
  57. func (obj *BaseFromTradeGuangzhouIndex) GetBaseFromTradeGuangzhouMaxDate() (max_date string, err error) {
  58. o := global.DbMap[utils.DbNameIndex]
  59. sql := ` SELECT MAX(a.end_date) AS max_date FROM base_from_trade_guangzhou_index AS a `
  60. err = o.Raw(sql).Scan(&max_date).Error
  61. return max_date, err
  62. }
  63. func (obj *BaseFromTradeGuangzhouIndex) GetBaseFromTradeGuangzhouContract(classifyId int, tradeDate string) (list []*BaseFromTradeGuangzhouContract, err error) {
  64. o := global.DbMap[utils.DbNameIndex]
  65. sql := ` SELECT * FROM base_from_trade_guangzhou_contract AS a WHERE base_from_trade_guangzhou_classify_id=? AND trade_date=? `
  66. err = o.Raw(sql, classifyId, tradeDate).Find(&list).Error
  67. return
  68. }
  69. type BaseFromTradeGuangzhouIndexView struct {
  70. BaseFromTradeGuangzhouIndexId int `description:"指标id"`
  71. BaseFromTradeGuangzhouClassifyId int `description:"分类id"`
  72. IndexCode string `description:"指标编码"`
  73. IndexName string `description:"指标名称"`
  74. Frequency string `description:"频率"`
  75. Unit string `description:"单位"`
  76. StartDate string `description:"开始日期"`
  77. EndDate string `description:"结束日期"`
  78. Value float64 `description:"数据"`
  79. }
  80. func (obj *BaseFromTradeGuangzhouIndex) GetBaseFromTradeGuangzhouIndex(condition string, pars []interface{}, baseFromTradeGuangzhouContractId int) (list []*BaseFromTradeGuangzhouIndexView, err error) {
  81. o := global.DbMap[utils.DbNameIndex]
  82. if baseFromTradeGuangzhouContractId <= 0 {
  83. sql := ` SELECT b.base_from_trade_guangzhou_index_id,b.index_code,b.index_name,b.unit,b.frequency,b.start_date,b.end_date,a.value,c.base_from_trade_guangzhou_contract_id
  84. FROM base_from_trade_guangzhou_data AS a
  85. INNER JOIN base_from_trade_guangzhou_index AS b ON a.base_from_trade_guangzhou_index_id=b.base_from_trade_guangzhou_index_id
  86. LEFT JOIN base_from_trade_guangzhou_contract AS c ON b.base_from_trade_guangzhou_classify_id=c.base_from_trade_guangzhou_classify_id
  87. WHERE `
  88. if condition != "" {
  89. sql += condition
  90. }
  91. sql += ` ORDER BY a.index_code ASC `
  92. err = o.Raw(sql, pars...).Find(&list).Error
  93. return
  94. } else {
  95. condition += ` AND a.base_from_trade_guangzhou_contract_id=? `
  96. pars = append(pars, baseFromTradeGuangzhouContractId)
  97. sql := ` SELECT a.*,b.value
  98. FROM base_from_trade_guangzhou_index AS a
  99. INNER JOIN base_from_trade_guangzhou_data AS b ON a.base_from_trade_guangzhou_index_id=b.base_from_trade_guangzhou_index_id
  100. WHERE `
  101. if condition != "" {
  102. sql += condition
  103. }
  104. sql += ` ORDER BY a.index_code ASC `
  105. err = o.Raw(sql, pars...).Find(&list).Error
  106. return
  107. }
  108. }
  109. func (obj *BaseFromTradeGuangzhouIndex) GetBaseFromTradeGuangzhouIndexDetail(condition string, pars []interface{}) (list []*BaseFromTradeGuangzhouIndexView, err error) {
  110. o := global.DbMap[utils.DbNameIndex]
  111. sql := ` SELECT a.*
  112. FROM base_from_trade_guangzhou_index AS a
  113. WHERE `
  114. if condition != "" {
  115. sql += condition
  116. }
  117. sql += ` ORDER BY a.index_code ASC `
  118. err = o.Raw(sql, pars...).Find(&list).Error
  119. return
  120. }