factor_edb_series_mapping.go 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package data_manage
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "fmt"
  6. "strings"
  7. "time"
  8. )
  9. // FactorEdbSeriesMapping 因子指标系列-指标关联表
  10. type FactorEdbSeriesMapping struct {
  11. FactorEdbSeriesMappingId int `gorm:"column:factor_edb_series_mapping_id;primaryKey"`
  12. FactorEdbSeriesId int `description:"因子指标系列ID"`
  13. EdbInfoId int `description:"指标ID"`
  14. EdbCode string `description:"指标编码"`
  15. CreateTime time.Time `description:"创建时间"`
  16. ModifyTime time.Time `description:"修改时间"`
  17. }
  18. func (m *FactorEdbSeriesMapping) TableName() string {
  19. return "factor_edb_series_mapping"
  20. }
  21. type FactorEdbSeriesMappingCols struct {
  22. PrimaryId string
  23. FactorEdbSeriesId string
  24. EdbInfoId string
  25. EdbCode string
  26. CreateTime string
  27. ModifyTime string
  28. }
  29. func (m *FactorEdbSeriesMapping) Cols() FactorEdbSeriesMappingCols {
  30. return FactorEdbSeriesMappingCols{
  31. PrimaryId: "factor_edb_series_mapping_id",
  32. FactorEdbSeriesId: "factor_edb_series_id",
  33. EdbInfoId: "edb_info_id",
  34. EdbCode: "edb_code",
  35. CreateTime: "create_time",
  36. ModifyTime: "modify_time",
  37. }
  38. }
  39. // Create 创建单个记录
  40. func (m *FactorEdbSeriesMapping) Create() (err error) {
  41. o := global.DbMap[utils.DbNameIndex]
  42. err = o.Create(m).Error
  43. return
  44. }
  45. // CreateMulti 批量创建记录
  46. func (m *FactorEdbSeriesMapping) CreateMulti(items []*FactorEdbSeriesMapping) (err error) {
  47. if len(items) == 0 {
  48. return
  49. }
  50. o := global.DbMap[utils.DbNameIndex]
  51. err = o.CreateInBatches(items, utils.MultiAddNum).Error
  52. return
  53. }
  54. // Update 更新指定字段
  55. func (m *FactorEdbSeriesMapping) Update(cols []string) (err error) {
  56. o := global.DbMap[utils.DbNameIndex]
  57. err = o.Model(m).Select(cols).Updates(m).Error
  58. return
  59. }
  60. // Remove 删除单个记录
  61. func (m *FactorEdbSeriesMapping) Remove() (err error) {
  62. o := global.DbMap[utils.DbNameIndex]
  63. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
  64. err = o.Exec(sql, m.FactorEdbSeriesMappingId).Error
  65. return
  66. }
  67. // MultiRemove 批量删除记录
  68. func (m *FactorEdbSeriesMapping) MultiRemove(ids []int) (err error) {
  69. if len(ids) == 0 {
  70. return
  71. }
  72. o := global.DbMap[utils.DbNameIndex]
  73. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.Cols().PrimaryId, utils.GetOrmInReplace(len(ids)))
  74. err = o.Exec(sql, ids).Error
  75. return
  76. }
  77. // RemoveByCondition 按条件删除记录
  78. func (m *FactorEdbSeriesMapping) RemoveByCondition(condition string, pars []interface{}) (err error) {
  79. if condition == "" {
  80. return
  81. }
  82. o := global.DbMap[utils.DbNameIndex]
  83. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
  84. err = o.Exec(sql, pars...).Error
  85. return
  86. }
  87. // GetItemById 根据ID获取单个记录
  88. func (m *FactorEdbSeriesMapping) GetItemById(id int) (item *FactorEdbSeriesMapping, err error) {
  89. o := global.DbMap[utils.DbNameIndex]
  90. sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
  91. err = o.Raw(sql, id).First(&item).Error
  92. return
  93. }
  94. // GetItemByCondition 根据条件获取单个记录
  95. func (m *FactorEdbSeriesMapping) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FactorEdbSeriesMapping, err error) {
  96. o := global.DbMap[utils.DbNameIndex]
  97. order := ``
  98. if orderRule != "" {
  99. order = ` ORDER BY ` + orderRule
  100. }
  101. sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
  102. err = o.Raw(sql, pars...).First(&item).Error
  103. return
  104. }
  105. // GetCountByCondition 根据条件获取记录数量
  106. func (m *FactorEdbSeriesMapping) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  107. o := global.DbMap[utils.DbNameIndex]
  108. sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  109. err = o.Raw(sql, pars...).Scan(&count).Error
  110. return
  111. }
  112. // GetItemsByCondition 根据条件获取多条记录
  113. func (m *FactorEdbSeriesMapping) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FactorEdbSeriesMapping, err error) {
  114. o := global.DbMap[utils.DbNameIndex]
  115. fields := strings.Join(fieldArr, ",")
  116. if len(fieldArr) == 0 {
  117. fields = `*`
  118. }
  119. order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
  120. if orderRule != "" {
  121. order = ` ORDER BY ` + orderRule
  122. }
  123. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  124. err = o.Raw(sql, pars...).Find(&items).Error
  125. return
  126. }
  127. // GetPageItemsByCondition 根据条件分页获取记录
  128. func (m *FactorEdbSeriesMapping) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FactorEdbSeriesMapping, err error) {
  129. o := global.DbMap[utils.DbNameIndex]
  130. fields := strings.Join(fieldArr, ",")
  131. if len(fieldArr) == 0 {
  132. fields = `*`
  133. }
  134. order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
  135. if orderRule != "" {
  136. order = ` ORDER BY ` + orderRule
  137. }
  138. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
  139. err = o.Raw(sql, append(pars, startSize, pageSize)...).Find(&items).Error
  140. return
  141. }
  142. // FactorEdbSeriesMappingItem 因子指标系列-指标关联信息
  143. type FactorEdbSeriesMappingItem struct {
  144. SeriesId int `description:"因子指标系列ID"`
  145. EdbInfoId int `description:"指标ID"`
  146. EdbCode string `description:"指标编码"`
  147. EdbName string `description:"指标名称"`
  148. EdbNameEn string `description:"指标名称-英文"`
  149. }
  150. // Format2Item 格式化为展示用的结构体
  151. func (m *FactorEdbSeriesMapping) Format2Item() (item *FactorEdbSeriesMappingItem) {
  152. item = new(FactorEdbSeriesMappingItem)
  153. item.SeriesId = m.FactorEdbSeriesId
  154. item.EdbInfoId = m.EdbInfoId
  155. item.EdbCode = m.EdbCode
  156. return
  157. }
  158. // GetItemBySeriesId 根据系列ID获取关联的映射
  159. func (m *FactorEdbSeriesMapping) GetItemBySeriesId(seriesId int) (items []*FactorEdbSeriesMapping, err error) {
  160. o := global.DbMap[utils.DbNameIndex]
  161. sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().FactorEdbSeriesId)
  162. err = o.Raw(sql, seriesId).Find(&items).Error
  163. return
  164. }