trade_futures_company.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package trade_analysis
  2. import (
  3. "database/sql"
  4. "eta/eta_api/global"
  5. "eta/eta_api/utils"
  6. "fmt"
  7. "strings"
  8. "time"
  9. )
  10. const TradeFuturesCompanyTop20 = "TOP20"
  11. // TradeFuturesCompany 期货公司表
  12. type TradeFuturesCompany struct {
  13. TradeFuturesCompanyId int `orm:"column(trade_futures_company_id);pk"`
  14. CompanyName string `description:"标准公司名称"`
  15. ZhengzhouName string `description:"郑商所下的名称"`
  16. DalianName string `description:"大商所下的名称"`
  17. ShanghaiName string `description:"上期所下的名称"`
  18. IneName string `description:"上期能源下的名称"`
  19. GuangzhouName string `description:"广期所下的名称"`
  20. CffexName string `description:"中金所下的名称"`
  21. Sort int `description:"排序"`
  22. CreateTime time.Time `description:"创建时间"`
  23. ModifyTime time.Time `description:"修改时间"`
  24. }
  25. func (m *TradeFuturesCompany) TableName() string {
  26. return "trade_futures_company"
  27. }
  28. type TradeFuturesCompanyCols struct {
  29. PrimaryId string
  30. CompanyName string
  31. ZhengzhouName string
  32. DalianName string
  33. ShanghaiName string
  34. IneName string
  35. GuangzhouName string
  36. CffexName string
  37. Sort string
  38. CreateTime string
  39. ModifyTime string
  40. }
  41. func (m *TradeFuturesCompany) Cols() TradeFuturesCompanyCols {
  42. return TradeFuturesCompanyCols{
  43. PrimaryId: "trade_futures_company_id",
  44. CompanyName: "company_name",
  45. ZhengzhouName: "zhengzhou_name",
  46. DalianName: "dalian_name",
  47. ShanghaiName: "shanghai_name",
  48. IneName: "ine_name",
  49. GuangzhouName: "guangzhou_name",
  50. CffexName: "cffex_name",
  51. Sort: "sort",
  52. CreateTime: "create_time",
  53. ModifyTime: "modify_time",
  54. }
  55. }
  56. func (m *TradeFuturesCompany) GetItemById(id int) (item *TradeFuturesCompany, err error) {
  57. sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
  58. err = global.DbMap[utils.DbNameIndex].Raw(sql, id).First(&item).Error
  59. return
  60. }
  61. func (m *TradeFuturesCompany) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *TradeFuturesCompany, err error) {
  62. order := ``
  63. if orderRule != "" {
  64. order = ` ORDER BY ` + orderRule
  65. }
  66. sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
  67. err = global.DbMap[utils.DbNameIndex].Raw(sql, pars).First(&item).Error
  68. return
  69. }
  70. func (m *TradeFuturesCompany) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  71. var totalNull sql.NullInt64
  72. sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  73. err = global.DbMap[utils.DbNameIndex].Raw(sql, pars).Scan(&count).Error
  74. if !totalNull.Valid {
  75. count = 0
  76. } else {
  77. count = int(totalNull.Int64)
  78. }
  79. return
  80. }
  81. func (m *TradeFuturesCompany) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*TradeFuturesCompany, err error) {
  82. fields := strings.Join(fieldArr, ",")
  83. if len(fieldArr) == 0 {
  84. fields = `*`
  85. }
  86. order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
  87. if orderRule != "" {
  88. order = ` ORDER BY ` + orderRule
  89. }
  90. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  91. err = global.DbMap[utils.DbNameIndex].Raw(sql, pars).Find(&items).Error
  92. return
  93. }
  94. func (m *TradeFuturesCompany) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*TradeFuturesCompany, err error) {
  95. fields := strings.Join(fieldArr, ",")
  96. if len(fieldArr) == 0 {
  97. fields = `*`
  98. }
  99. order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
  100. if orderRule != "" {
  101. order = ` ORDER BY ` + orderRule
  102. }
  103. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
  104. err = global.DbMap[utils.DbNameIndex].Raw(sql, pars, startSize, pageSize).Find(&items).Error
  105. return
  106. }
  107. // TradeFuturesCompanyItem 期货公司信息
  108. type TradeFuturesCompanyItem struct {
  109. CompanyId int `description:"期货公司ID"`
  110. CompanyName string `description:"标准公司名称"`
  111. Sort int `description:"排序"`
  112. }
  113. func (m *TradeFuturesCompany) Format2Item() (item *TradeFuturesCompanyItem) {
  114. item = new(TradeFuturesCompanyItem)
  115. item.CompanyId = m.TradeFuturesCompanyId
  116. item.CompanyName = m.CompanyName
  117. item.Sort = m.Sort
  118. return
  119. }