edb_data_calculate.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package mgodb
  2. import (
  3. "context"
  4. "eta/eta_forum_hub/utils"
  5. "go.mongodb.org/mongo-driver/bson"
  6. "go.mongodb.org/mongo-driver/bson/primitive"
  7. "go.mongodb.org/mongo-driver/mongo/options"
  8. "time"
  9. )
  10. func GetEdbDataCalculateByEdbInfoId(edbInfoId int) (items []*EdbDataBase, err error) {
  11. findOptions := options.Find()
  12. db := NewMgo(utils.MgoDataDbName, "edb_data_calculate", utils.MgoDataCli)
  13. filter := bson.D{{"edb_info_id", edbInfoId}}
  14. ctx := context.TODO()
  15. cur, err := db.Find(filter, findOptions)
  16. if err != nil {
  17. return
  18. }
  19. // Close the cursor once finished
  20. defer cur.Close(ctx)
  21. for cur.Next(ctx) {
  22. // create a value into which the single document can be decoded
  23. var elem EdbDataBase
  24. err = cur.Decode(&elem)
  25. if err != nil {
  26. return
  27. }
  28. items = append(items, &elem)
  29. }
  30. if err = cur.Err(); err != nil {
  31. return
  32. }
  33. return
  34. }
  35. func GetEdbDataCalculateByEdbCode(edbCode string) (items []*EdbDataBase, err error) {
  36. findOptions := options.Find()
  37. db := NewMgo(utils.MgoDataDbName, "edb_data_calculate", utils.MgoDataCli)
  38. filter := bson.D{{"edb_code", edbCode}}
  39. ctx := context.TODO()
  40. cur, err := db.Find(filter, findOptions)
  41. if err != nil {
  42. return
  43. }
  44. // Close the cursor once finished
  45. defer cur.Close(ctx)
  46. for cur.Next(ctx) {
  47. // create a value into which the single document can be decoded
  48. var elem EdbDataBase
  49. err = cur.Decode(&elem)
  50. if err != nil {
  51. return
  52. }
  53. items = append(items, &elem)
  54. }
  55. if err = cur.Err(); err != nil {
  56. return
  57. }
  58. return
  59. }
  60. func InsertEdbCalculateDataBatch(items []interface{}) (err error) {
  61. db := NewMgo(utils.MgoDataDbName, "edb_data_calculate", utils.MgoDataCli)
  62. _, err = db.InsertMany(items)
  63. if err != nil {
  64. return
  65. }
  66. return
  67. }
  68. func ModifyEdbCalculateDataEdbInfoId(edbInfoId int64, edbCode string) (err error) {
  69. filter := bson.D{{"edb_code", edbCode}}
  70. update := bson.D{{"$set", bson.D{{"edb_info_id", edbInfoId}, {"modify_time", time.Now()}}}}
  71. db := NewMgo(utils.MgoDataDbName, "edb_data_calculate", utils.MgoDataCli)
  72. _, err = db.UpdateMany(filter, update)
  73. if err != nil {
  74. return
  75. }
  76. return
  77. }
  78. // 删除
  79. func DeleteEdbInfoCalculateDataByEdbInfoId(edbInfoId int) (err error) {
  80. filter := bson.D{{"edb_info_id", edbInfoId}}
  81. db := NewMgo(utils.MgoDataDbName, "edb_data_calculate", utils.MgoDataCli)
  82. _, err = db.DeleteMany(filter)
  83. return
  84. }
  85. // 更新指标的值
  86. func ModifyValueEdbCalculateDataValue(edbDataId primitive.ObjectID, value float64) (err error) {
  87. filter := bson.D{{"_id", edbDataId}}
  88. update := bson.D{{"$set", bson.D{{"value", value}, {"modify_time", time.Now()}}}}
  89. db := NewMgo(utils.MgoDataDbName, "edb_data_calculate", utils.MgoDataCli)
  90. _, err = db.UpdateOne(filter, update)
  91. return
  92. }
  93. func DeleteEdbCalculateDataByEdbInfoIdAndDate(edbCode string, dataTime []time.Time) (err error) {
  94. filter := bson.D{{"edb_code", edbCode}, {"data_time", bson.D{{"$in", dataTime}}}}
  95. db := NewMgo(utils.MgoDataDbName, "edb_data_calculate", utils.MgoDataCli)
  96. _, err = db.DeleteMany(filter)
  97. return
  98. }