talent_income.go 1022 B

1234567891011121314151617181920212223242526272829303132
  1. package db
  2. import (
  3. "context"
  4. "github.com/issue9/conv"
  5. "gorm.io/gorm"
  6. "youngee_b_api/model/gorm_model"
  7. )
  8. func CreateIncome(ctx context.Context, income gorm_model.YounggeeTalentIncome, tx *gorm.DB) error {
  9. if tx != nil {
  10. err := tx.Create(&income).Error
  11. if err != nil {
  12. return err
  13. }
  14. err = tx.Model(gorm_model.YoungeeTalentInfo{}).Where("id = ?", income.TalentID).Updates(map[string]interface{}{"income": gorm.Expr("income + ?", conv.MustFloat64(income.Income)), "canwithdraw": gorm.Expr("canwithdraw + ?", conv.MustFloat64(income.Income))}).Error
  15. if err != nil {
  16. return err
  17. }
  18. } else {
  19. db := GetWriteDB(ctx)
  20. err := db.Create(&income).Error
  21. if err != nil {
  22. return err
  23. }
  24. err = db.Model(gorm_model.YoungeeTalentInfo{}).Where("id = ?", income.TalentID).Updates(map[string]interface{}{"income": gorm.Expr("income + ?", conv.MustFloat64(income.Income)), "canwithdraw": gorm.Expr("canwithdraw + ?", conv.MustFloat64(income.Income))}).Error
  25. if err != nil {
  26. return err
  27. }
  28. }
  29. return nil
  30. }