excel_chart_edb.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package excel
  2. import (
  3. "eta/eta_api/utils"
  4. "fmt"
  5. "github.com/beego/beego/v2/client/orm"
  6. "time"
  7. )
  8. type ExcelChartEdb struct {
  9. ExcelChartEdbId int `orm:"column(excel_chart_edb_id);pk"`
  10. ExcelInfoId int `description:"表格id"`
  11. EdbCode string `description:"指标编码"`
  12. EdbName string `description:"指标名称"`
  13. DateSequence string `description:"日期序列选区"`
  14. DataSequence string `description:"数据序列选区"`
  15. SysUserId int `description:"创建人"`
  16. SysUserRealName string `description:"创建人姓名"`
  17. ModifyTime time.Time `description:"修改时间"`
  18. CreateTime time.Time `description:"创建时间"`
  19. }
  20. func (e *ExcelChartEdb) TableName() string {
  21. return "excel_chart_edb"
  22. }
  23. // 新增
  24. func (e *ExcelChartEdb) Add() (err error) {
  25. o := orm.NewOrmUsingDB("data")
  26. _, err = o.Insert(e)
  27. return
  28. }
  29. // 修改
  30. func (e *ExcelChartEdb) Update(cols []string) (err error) {
  31. o := orm.NewOrmUsingDB("data")
  32. _, err = o.Update(e, cols...)
  33. return
  34. }
  35. // 删除
  36. func (e *ExcelChartEdb) Delete() (err error) {
  37. o := orm.NewOrmUsingDB("data")
  38. _, err = o.Delete(e)
  39. return
  40. }
  41. // 同时添加指标和指标数据
  42. func (e *ExcelChartEdb) AddChartEdb(chartEdb *ExcelChartEdb, dateList []string, valList []float64) (err error) {
  43. o, err := orm.NewOrmUsingDB("data").Begin()
  44. if err != nil {
  45. return
  46. }
  47. defer func() {
  48. if err != nil {
  49. _ = o.Rollback()
  50. } else {
  51. _ = o.Commit()
  52. }
  53. }()
  54. // 图表指标信息入库
  55. lastId, err := o.Insert(chartEdb)
  56. if err != nil {
  57. return
  58. }
  59. chartEdb.ExcelChartEdbId = int(lastId)
  60. // 图表指标数据入库
  61. addList := make([]*ExcelChartData, 0)
  62. for k, v := range dateList {
  63. chartData := &ExcelChartData{
  64. ExcelInfoId: chartEdb.ExcelInfoId,
  65. ExcelChartEdbId: chartEdb.ExcelChartEdbId,
  66. DataTime: v,
  67. Value: valList[k],
  68. ModifyTime: time.Now(),
  69. CreateTime: time.Now(),
  70. }
  71. //时间戳
  72. currentDate, er := time.Parse(utils.FormatDate, v)
  73. if er != nil {
  74. err = fmt.Errorf("时间格式化失败 err:%v", er)
  75. return
  76. }
  77. timestamp := currentDate.UnixNano() / 1e6
  78. chartData.DataTimestamp = timestamp
  79. addList = append(addList, chartData)
  80. // data信息入库
  81. if len(addList) > 1000 {
  82. _, err = o.InsertMulti(len(addList), len(addList))
  83. if err != nil {
  84. return
  85. }
  86. addList = addList[:0]
  87. }
  88. }
  89. // data信息入库
  90. if len(addList) > 0 {
  91. _, err = o.InsertMulti(len(addList), len(addList))
  92. if err != nil {
  93. return
  94. }
  95. }
  96. return
  97. }