message.go 549 B

12345678910111213141516171819202122232425262728293031
  1. package services
  2. import (
  3. "github.com/jinzhu/gorm"
  4. "goiot-cronapi/models"
  5. )
  6. // 保存消息
  7. func SaveMessage(db *gorm.DB, datas []models.ConsumeData) error {
  8. var err error
  9. tx := db.Begin()
  10. for _, data := range datas {
  11. rate := data.Rate - data.Ratio
  12. if rate <= 20 {
  13. m := models.Message{
  14. ProjectName: data.ProjectName,
  15. ConsumeName: data.Name,
  16. SourceId: data.ID,
  17. UserId: data.UserId,
  18. }
  19. if err = m.Save(tx); err != nil {
  20. tx.Rollback()
  21. break
  22. }
  23. }
  24. }
  25. if nil == err {
  26. tx.Commit()
  27. }
  28. return nil
  29. }