base_from_ly_data.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. // @Author gmy 2024/8/7 9:50:00
  2. package models
  3. import (
  4. "errors"
  5. "eta/eta_index_lib/utils"
  6. "github.com/beego/beego/v2/client/orm"
  7. "time"
  8. )
  9. type BaseFromLyData struct {
  10. BaseFromLyDataId int `orm:"column(base_from_ly_data_id);pk"` // 数据ID
  11. CreateTime string `orm:"column(create_time)"` // 创建时间
  12. ModifyTime string `orm:"column(modify_time)"` // 修改时间
  13. BaseFromLyIndexId int `orm:"column(base_from_ly_index_id)"` // 指标id
  14. IndexCode string `orm:"column(index_code)"` // 指标编码
  15. DataTime string `orm:"column(data_time)"` // 数据日期
  16. Value float64 `orm:"column(value)"` // 数据值
  17. }
  18. type BaseFromLyDataOrm struct {
  19. BaseFromLyDataId int `orm:"column(base_from_ly_data_id);pk"` // 数据ID
  20. CreateTime time.Time `orm:"column(create_time)"` // 创建时间
  21. ModifyTime time.Time `orm:"column(modify_time)"` // 修改时间
  22. BaseFromLyIndexId int `orm:"column(base_from_ly_index_id)"` // 指标id
  23. IndexCode string `orm:"column(index_code)"` // 指标编码
  24. DataTime time.Time `orm:"column(data_time)"` // 数据日期
  25. Value float64 `orm:"column(value)"` // 数据值
  26. }
  27. func (ormItem *BaseFromLyDataOrm) convertToLyData() BaseFromLyData {
  28. return BaseFromLyData{
  29. BaseFromLyDataId: ormItem.BaseFromLyDataId,
  30. CreateTime: ormItem.CreateTime.Format(utils.FormatDateTime),
  31. ModifyTime: ormItem.ModifyTime.Format(utils.FormatDateTime),
  32. BaseFromLyIndexId: ormItem.BaseFromLyIndexId,
  33. IndexCode: ormItem.IndexCode,
  34. DataTime: ormItem.DataTime.Format(utils.FormatDate),
  35. Value: ormItem.Value,
  36. }
  37. }
  38. func convertToLyDataList(ormList []BaseFromLyDataOrm) (list []BaseFromLyData) {
  39. for _, item := range ormList {
  40. list = append(list, item.convertToLyData())
  41. }
  42. return
  43. }
  44. func init() {
  45. orm.RegisterModel(new(BaseFromLyData))
  46. }
  47. // AddLyDataList 批量插入数据记录列表
  48. func AddLyDataList(items []BaseFromLyData) (err error) {
  49. o := orm.NewOrm()
  50. _, err = o.InsertMulti(len(items), items)
  51. return
  52. }
  53. // GetLyDataByIndexIdAndDataTime 根据指标id和数据日期查询数据
  54. func GetLyDataByIndexIdAndDataTime(indexId int, dataTime string) (items []BaseFromLyData, err error) {
  55. o := orm.NewOrm()
  56. sql := `SELECT * FROM base_from_ly_data WHERE base_from_ly_index_id=? AND data_time=?`
  57. _, err = o.Raw(sql, indexId, dataTime).QueryRows(&items)
  58. if errors.Is(err, orm.ErrNoRows) {
  59. return nil, nil
  60. }
  61. return
  62. }
  63. // GetLyDataByIndexIdAndDataTimeYM 根据指标id和数据日期的年月查询数据
  64. func GetLyDataByIndexIdAndDataTimeYM(indexId int, dataTime string) (items []BaseFromLyData, err error) {
  65. o := orm.NewOrm()
  66. sql := `SELECT * FROM base_from_ly_data WHERE base_from_ly_index_id=? AND data_time like ?`
  67. var ormList []BaseFromLyDataOrm
  68. _, err = o.Raw(sql, indexId, dataTime+"%").QueryRows(&ormList)
  69. if errors.Is(err, orm.ErrNoRows) {
  70. return nil, nil
  71. }
  72. if err != nil {
  73. return
  74. }
  75. items = convertToLyDataList(ormList)
  76. return
  77. }
  78. // UpdateLyDataById 根据主键id更新数据
  79. func UpdateLyDataById(dataId int, value float64) (err error) {
  80. o := orm.NewOrm()
  81. sql := `UPDATE base_from_ly_data SET value=? WHERE base_from_ly_data_id=?`
  82. _, err = o.Raw(sql, value, dataId).Exec()
  83. return
  84. }
  85. // GetBaseFromLyDataByIndexCode 根据指标编码查询
  86. func GetBaseFromLyDataByIndexCode(condition string, pars []interface{}) (items []BaseFromLyData, err error) {
  87. sql := `SELECT * FROM base_from_ly_data WHERE 1=1 `
  88. o := orm.NewOrm()
  89. if condition != "" {
  90. sql += condition
  91. }
  92. var ormList []BaseFromLyDataOrm
  93. _, err = o.Raw(sql, pars...).QueryRows(&ormList)
  94. if errors.Is(err, orm.ErrNoRows) {
  95. return nil, nil
  96. }
  97. if err != nil {
  98. return
  99. }
  100. items = convertToLyDataList(ormList)
  101. return
  102. }