base_from_business_data.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package data_manage
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/utils"
  5. "fmt"
  6. "strings"
  7. "time"
  8. )
  9. type BaseFromBusinessData struct {
  10. BusinessDataId int `orm:"column(business_data_id);pk" gorm:"primaryKey" json:"business_data_id"`
  11. BaseFromBusinessIndexId int `json:"base_from_business_index_id"` // 指标id
  12. IndexCode string `json:"index_code"` // 指标编码
  13. DataTime time.Time `json:"data_time"` // 数据日期
  14. Value float64 `json:"value"` // 数据值
  15. CreateTime time.Time `json:"create_time"` // 创建时间
  16. ModifyTime time.Time `json:"modify_time"` // 修改时间
  17. }
  18. func (m *BaseFromBusinessData) TableName() string {
  19. return "base_from_business_data"
  20. }
  21. func (m *BaseFromBusinessData) CollectionName() string {
  22. return "base_from_business_data"
  23. }
  24. func (m *BaseFromBusinessData) DataBaseName() string {
  25. return utils.MgoDataDbName
  26. }
  27. type WhereParams struct {
  28. Condition string
  29. Pars []interface{}
  30. Order string `description:"排序字段"`
  31. }
  32. func (m *BaseFromBusinessData) GetAllDataList(condition string, pars []interface{}, order string) (result []*BaseFromBusinessData, err error) {
  33. sql := `SELECT * FROM base_from_business_data WHERE 1=1 `
  34. if condition != `` {
  35. sql += ` ` + condition
  36. }
  37. if order != `` {
  38. sql += ` ORDER BY ` + order
  39. }
  40. err = global.DmSQL["data"].Raw(sql, pars...).Scan(&result).Error
  41. return
  42. }
  43. func (m *BaseFromBusinessData) GetLimitDataList(condition string, pars []interface{}, order string, size int64) (result []*BaseFromBusinessData, err error) {
  44. o := global.DmSQL["data"]
  45. sql := `SELECT * FROM base_from_business_data WHERE 1=1 `
  46. if condition != `` {
  47. sql += ` ` + condition
  48. }
  49. if order != `` {
  50. sql += ` ORDER BY ` + order
  51. }
  52. sql += fmt.Sprintf(` LIMIT %d`, size)
  53. err = o.Raw(sql, pars...).Scan(&result).Error
  54. return
  55. }
  56. func (m *BaseFromBusinessData) GetPageDataList(condition []string, pars []interface{}, order string, startSize, size int64) (result []*BaseFromBusinessData, err error) {
  57. sql := `SELECT * FROM base_from_business_data `
  58. if len(condition) > 0 {
  59. sql += ` WHERE ` + strings.Join(condition, " AND ")
  60. }
  61. if order != `` {
  62. sql += ` ORDER BY ` + order
  63. }
  64. sql += fmt.Sprintf(` LIMIT %d,%d`, startSize, size)
  65. err = global.DmSQL["data"].Raw(sql, pars...).Scan(&result).Error
  66. return
  67. }
  68. func (m *BaseFromBusinessData) GetCountDataList(condition []string, pars []interface{}) (count int64, err error) {
  69. sql := `SELECT COUNT(1) FROM base_from_business_data `
  70. if len(condition) > 0 {
  71. sql += ` WHERE ` + strings.Join(condition, " AND ")
  72. }
  73. err = global.DmSQL["data"].Raw(sql, pars...).Scan(&count).Error
  74. return
  75. }
  76. func (m *BaseFromBusinessData) InsertDataByColl(addData interface{}) (err error) {
  77. err = global.DmSQL["data"].Create(addData).Error
  78. return
  79. }
  80. func (m *BaseFromBusinessData) BatchInsertData(bulk int, dataList []interface{}) (err error) {
  81. err = global.DmSQL["data"].CreateInBatches(dataList, bulk).Error
  82. return
  83. }
  84. func (m *BaseFromBusinessData) UpdateData(updateCols []string) (err error) {
  85. err = global.DmSQL["data"].Select(updateCols).Updates(m).Error
  86. if err != nil {
  87. fmt.Println("UpdateDataByColl:Err:" + err.Error())
  88. return
  89. }
  90. return
  91. }
  92. func (m *BaseFromBusinessData) GetEdbInfoMaxAndMinInfo(indexCode string) (result EdbInfoMaxAndMinInfo, err error) {
  93. o := global.DmSQL["data"]
  94. sql := ``
  95. sql = ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date,MIN(value) AS min_value,MAX(value) AS max_value FROM base_from_business_data WHERE index_code = ? `
  96. err = o.Raw(sql, indexCode).Scan(&result).Error
  97. if err != nil {
  98. return
  99. }
  100. var latestValue float64
  101. sql = ` SELECT value AS latest_value FROM base_from_business_data WHERE index_code = ? ORDER BY data_time DESC LIMIT 1 `
  102. err = o.Raw(sql, indexCode).Scan(&latestValue).Error
  103. result.LatestValue = latestValue
  104. return
  105. }