edb_data_base.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package models
  2. import (
  3. "fmt"
  4. "github.com/beego/beego/v2/client/orm"
  5. "hongze/hongze_edb_lib/utils"
  6. "time"
  7. )
  8. //指标检索数据
  9. type EdbDataItem struct {
  10. EdbCode string `description:"指标编码"`
  11. StartDate string `description:"起始日期"`
  12. EndDate string `description:"终止日期"`
  13. EdbName string `description:"指标名称"`
  14. Unit string `description:"单位"`
  15. Frequency string `description:"频率"`
  16. DataList []*EdbData
  17. }
  18. type EdbData struct {
  19. EdbDataId int `orm:"column(edb_data_id);pk"`
  20. EdbInfoId int
  21. EdbCode string
  22. DataTime string
  23. Value string
  24. Status int
  25. CreateTime time.Time
  26. ModifyTime time.Time
  27. DataTimestamp int64
  28. }
  29. func GetAddSql(edbInfoId, edbCode, dataTime, timestampStr string, value string) (addSql string) {
  30. nowStr := time.Now().Format(utils.FormatDateTime)
  31. addSql += "("
  32. addSql += edbInfoId + "," + "'" + edbCode + "'" + "," + "'" + dataTime + "'" + "," + value + "," + "'" + nowStr + "'" +
  33. "," + "'" + nowStr + "'"
  34. addSql += "," + "'" + timestampStr + "'"
  35. addSql += "),"
  36. return
  37. }
  38. type AddEdbInfoReq struct {
  39. EdbCode string `description:"指标编码"`
  40. }
  41. // GetEdbInfoCountByCondition 获取指标数量
  42. func GetEdbInfoCountByCondition(condition string, pars []interface{}) (count int, err error) {
  43. o := orm.NewOrm()
  44. sql := ` SELECT COUNT(1) AS count FROM edb_info WHERE 1=1 `
  45. if condition != "" {
  46. sql += condition
  47. }
  48. err = o.Raw(sql, pars).QueryRow(&count)
  49. return
  50. }
  51. // GetEdbDataAllByEdbCode 根据指标编码获取指标数据列表
  52. func GetEdbDataAllByEdbCode(edbCode string, source, limit int) (items []*EdbInfoSearchData, err error) {
  53. var pars []interface{}
  54. pars = append(pars, edbCode)
  55. o := orm.NewOrm()
  56. tableName := GetEdbDataTableName(source)
  57. sql := ` SELECT * FROM %s WHERE edb_code=? ORDER BY data_time DESC`
  58. if limit > 0 {
  59. sql += ` LIMIT ? `
  60. pars = append(pars, limit)
  61. }
  62. sql = fmt.Sprintf(sql, tableName)
  63. _, err = o.Raw(sql, pars).QueryRows(&items)
  64. return
  65. }
  66. func GetEdbDataByCondition(source int, condition string, pars []interface{}) (items []*EdbInfoSearchData, err error) {
  67. o := orm.NewOrm()
  68. tableName := GetEdbDataTableName(source)
  69. sql := ` SELECT * FROM %s WHERE 1=1 `
  70. if condition != "" {
  71. sql += condition
  72. }
  73. sql += ` ORDER BY data_time DESC `
  74. sql = fmt.Sprintf(sql, tableName)
  75. _, err = o.Raw(sql, pars).QueryRows(&items)
  76. return
  77. }
  78. // GetEdbDataByDate 根据数据日期获取指标数据
  79. func GetEdbDataByDate(source int, edbCode, dataTime string) (item *EdbInfoSearchData, err error) {
  80. o := orm.NewOrm()
  81. tableName := GetEdbDataTableName(source)
  82. sql := ` SELECT * FROM %s WHERE 1=1 AND edb_code = ? AND data_time =? ORDER BY data_time DESC `
  83. sql = fmt.Sprintf(sql, tableName)
  84. err = o.Raw(sql, edbCode, dataTime).QueryRow(&item)
  85. return
  86. }
  87. func ModifyEdbDataById(source, edbDataId int, value string) (err error) {
  88. o := orm.NewOrm()
  89. tableName := GetEdbDataTableName(source)
  90. sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_data_id=? `
  91. sql = fmt.Sprintf(sql, tableName)
  92. _, err = o.Raw(sql, value, edbDataId).Exec()
  93. return
  94. }
  95. func DeleteEdbDataById(source, edbDataId int) (err error) {
  96. sql := ` DELETE FROM %s WHERE edb_data_id=? `
  97. tableName := GetEdbDataTableName(source)
  98. sql = fmt.Sprintf(sql, tableName)
  99. o := orm.NewOrm()
  100. _, err = o.Raw(sql, edbDataId).Exec()
  101. return
  102. }
  103. type RefreshEdbInfoReq struct {
  104. EdbInfoId int `description:"指标ID"`
  105. EdbCode string `description:"指标编码"`
  106. StartDate string `description:"开始日期"`
  107. }
  108. // GetAllEdbDataList 获取所有的指标数据列表
  109. func GetAllEdbDataList(edbInfoId, source int) (existDataList []*EdbData, err error) {
  110. o := orm.NewOrm()
  111. dataTableName := GetEdbDataTableName(source)
  112. fmt.Println("dataTableName:", dataTableName)
  113. sql := `SELECT * FROM %s WHERE edb_info_id=? order by data_time asc`
  114. sql = fmt.Sprintf(sql, dataTableName)
  115. _, err = o.Raw(sql, edbInfoId).QueryRows(&existDataList)
  116. return
  117. }
  118. // GetAllEdbDataListByTo 获取所有的指标数据列表
  119. func GetAllEdbDataListByTo(to orm.TxOrmer, edbInfoId, source int) (existDataList []*EdbData, err error) {
  120. dataTableName := GetEdbDataTableName(source)
  121. fmt.Println("dataTableName:", dataTableName)
  122. sql := `SELECT * FROM %s WHERE edb_info_id=? order by data_time asc`
  123. sql = fmt.Sprintf(sql, dataTableName)
  124. _, err = to.Raw(sql, edbInfoId).QueryRows(&existDataList)
  125. return
  126. }
  127. //新版本
  128. type EdbDataV1 struct {
  129. EdbDataId int `orm:"column(edb_data_id);pk"`
  130. EdbInfoId int
  131. EdbCode string
  132. DataTime string
  133. Value string
  134. Status int
  135. CreateTime time.Time
  136. ModifyTime time.Time
  137. DataTimestamp int64
  138. }