base_from_ths_hf_index.go 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. package data_manage
  2. import (
  3. "eta/eta_task/global"
  4. "eta/eta_task/utils"
  5. "fmt"
  6. "strings"
  7. "time"
  8. )
  9. // BaseFromThsHfIndex 同花顺高频数据
  10. type BaseFromThsHfIndex struct {
  11. BaseFromThsHfIndexId int `gorm:"column:base_from_ths_hf_index_id;primaryKey;autoIncrement"`
  12. BaseFromThsHfClassifyId int `description:"分类ID"`
  13. IndexCode string `description:"指标编码"`
  14. IndexName string `description:"指标名称"`
  15. Unit string `description:"单位"`
  16. Source string `description:"数据来源"`
  17. Frequency string `description:"频度"`
  18. StartDate time.Time `description:"开始日期(至时分秒)"`
  19. EndDate time.Time `description:"结束日期(至时分秒)"`
  20. Describe string `description:"指标描述"`
  21. Sort int `description:"排序"`
  22. IsStop int `description:"是否停更:0-否;1-停更"`
  23. TerminalCode string `description:"所属终端编码"`
  24. StockCode string `description:"证券代码"`
  25. Indicator string `description:"同花顺指标代码"`
  26. ApiPars string `description:"API请求参数"`
  27. LatestValue float64 `description:"最新值"`
  28. SysUserId int `description:"创建人ID"`
  29. SysUserRealName string `description:"创建人姓名"`
  30. CreateTime time.Time `description:"创建时间"`
  31. ModifyTime time.Time `description:"修改时间"`
  32. }
  33. func (m *BaseFromThsHfIndex) TableName() string {
  34. return "base_from_ths_hf_index"
  35. }
  36. type BaseFromThsHfIndexCols struct {
  37. PrimaryId string
  38. BaseFromThsHfClassifyId string
  39. IndexCode string
  40. IndexName string
  41. Unit string
  42. Source string
  43. Frequency string
  44. StartDate string
  45. EndDate string
  46. Describe string
  47. Sort string
  48. IsStop string
  49. TerminalCode string
  50. StockCode string
  51. Indicator string
  52. ApiPars string
  53. LatestValue string
  54. SysUserId string
  55. SysUserRealName string
  56. CreateTime string
  57. ModifyTime string
  58. }
  59. func (m *BaseFromThsHfIndex) Cols() BaseFromThsHfIndexCols {
  60. return BaseFromThsHfIndexCols{
  61. PrimaryId: "base_from_ths_hf_index_id",
  62. BaseFromThsHfClassifyId: "base_from_ths_hf_classify_id",
  63. IndexCode: "index_code",
  64. IndexName: "index_name",
  65. Unit: "unit",
  66. Source: "source",
  67. Frequency: "frequency",
  68. StartDate: "start_date",
  69. EndDate: "end_date",
  70. Describe: "describe",
  71. Sort: "sort",
  72. IsStop: "is_stop",
  73. TerminalCode: "terminal_code",
  74. StockCode: "stock_code",
  75. Indicator: "indicator",
  76. ApiPars: "api_pars",
  77. LatestValue: "latest_value",
  78. SysUserId: "sys_user_id",
  79. SysUserRealName: "sys_user_real_name",
  80. CreateTime: "create_time",
  81. ModifyTime: "modify_time",
  82. }
  83. }
  84. func (m *BaseFromThsHfIndex) Create() (err error) {
  85. err = global.DbMap[utils.DbNameIndex].Create(m).Error
  86. return
  87. }
  88. func (m *BaseFromThsHfIndex) CreateMulti(items []*BaseFromThsHfIndex) (err error) {
  89. if len(items) == 0 {
  90. return
  91. }
  92. o := global.DbMap[utils.DbNameIndex]
  93. err = o.CreateInBatches(items, utils.MultiAddNum).Error
  94. return
  95. }
  96. func (m *BaseFromThsHfIndex) Update(cols []string) (err error) {
  97. err = global.DbMap[utils.DbNameIndex].Select(cols).Updates(m).Error
  98. return
  99. }
  100. func (m *BaseFromThsHfIndex) Remove() (err error) {
  101. o := global.DbMap[utils.DbNameIndex]
  102. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
  103. err = o.Exec(sql, m.BaseFromThsHfIndexId).Error
  104. return
  105. }
  106. func (m *BaseFromThsHfIndex) MultiRemove(ids []int) (err error) {
  107. if len(ids) == 0 {
  108. return
  109. }
  110. o := global.DbMap[utils.DbNameIndex]
  111. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.Cols().PrimaryId, utils.GetOrmInReplace(len(ids)))
  112. err = o.Exec(sql, ids).Error
  113. return
  114. }
  115. func (m *BaseFromThsHfIndex) RemoveByCondition(condition string, pars []interface{}) (err error) {
  116. if condition == "" {
  117. return
  118. }
  119. o := global.DbMap[utils.DbNameIndex]
  120. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
  121. err = o.Raw(sql, pars...).Error
  122. return
  123. }
  124. func (m *BaseFromThsHfIndex) GetItemById(id int) (item *BaseFromThsHfIndex, err error) {
  125. o := global.DbMap[utils.DbNameIndex]
  126. sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
  127. err = o.Raw(sql, id).First(&item).Error
  128. return
  129. }
  130. func (m *BaseFromThsHfIndex) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *BaseFromThsHfIndex, err error) {
  131. o := global.DbMap[utils.DbNameIndex]
  132. order := ``
  133. if orderRule != "" {
  134. order = ` ORDER BY ` + orderRule
  135. }
  136. sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
  137. err = o.Raw(sql, pars...).First(&item).Error
  138. return
  139. }
  140. func (m *BaseFromThsHfIndex) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  141. o := global.DbMap[utils.DbNameIndex]
  142. sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  143. err = o.Raw(sql, pars...).Scan(&count).Error
  144. return
  145. }
  146. func (m *BaseFromThsHfIndex) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*BaseFromThsHfIndex, err error) {
  147. o := global.DbMap[utils.DbNameIndex]
  148. fields := strings.Join(fieldArr, ",")
  149. if len(fieldArr) == 0 {
  150. fields = `*`
  151. }
  152. order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
  153. if orderRule != "" {
  154. order = ` ORDER BY ` + orderRule
  155. }
  156. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  157. err = o.Raw(sql, pars...).Find(&items).Error
  158. return
  159. }
  160. func (m *BaseFromThsHfIndex) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*BaseFromThsHfIndex, err error) {
  161. o := global.DbMap[utils.DbNameIndex]
  162. fields := strings.Join(fieldArr, ",")
  163. if len(fieldArr) == 0 {
  164. fields = `*`
  165. }
  166. order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
  167. if orderRule != "" {
  168. order = ` ORDER BY ` + orderRule
  169. }
  170. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
  171. pars = append(pars, startSize, pageSize)
  172. err = o.Raw(sql, pars...).Find(&items).Error
  173. return
  174. }