From 823c1edd93331056e943cbddd498dbb00e34bb5f Mon Sep 17 00:00:00 2001 From: hujiebin Date: Mon, 24 Jul 2023 14:41:16 +0800 Subject: [PATCH] feature/ondup --- domain/model/groupPower_m/group_grade.go | 27 +++++++++++++++++------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/domain/model/groupPower_m/group_grade.go b/domain/model/groupPower_m/group_grade.go index b8212e2..1e537c3 100644 --- a/domain/model/groupPower_m/group_grade.go +++ b/domain/model/groupPower_m/group_grade.go @@ -82,17 +82,28 @@ func IncrGroupPowerExp(txModel *domain.Model, groupPowerId mysql.ID, exp mysql.N return err } // 增加家族经验-总 - gpg := &GroupPowerGrade{ - GroupPowerId: groupPowerId, - Exp: exp, - Grade: 0, - ExpireAt: time.Time{}, + gpg := new(GroupPowerGrade) + if err := txModel.DB().Model(GroupPowerGrade{}).Where("group_power_id = ?", groupPowerId).First(gpg).Error; err != nil { + if err != gorm.ErrRecordNotFound { + return err + } + // gorm.ErrRecordNotFound + gpg = &GroupPowerGrade{ + GroupPowerId: groupPowerId, + Exp: exp, + Grade: 0, + ExpireAt: time.Time{}, + } } - if err = txModel.DB().Model(GroupPowerGrade{}).Clauses(clause.OnConflict{Columns: []clause.Column{{Name: "group_power_id"}}, - DoUpdates: clause.Assignments(map[string]interface{}{ - "exp": gorm.Expr("exp + ?", gpg.Exp)})}).Create(gpg).Error; err != nil { + if err := txModel.DB().Model(GroupPowerGrade{}).Where("group_power_id = ?", groupPowerId). + UpdateColumn("exp", gorm.Expr("exp + ?", exp)).Error; err != nil { return err } + //if err = txModel.DB().Model(GroupPowerGrade{}).Clauses(clause.OnConflict{Columns: []clause.Column{{Name: "group_power_id"}}, + // DoUpdates: clause.Assignments(map[string]interface{}{ + // "exp": gorm.Expr("exp + ?", gpg.Exp)})}).Create(gpg).Error; err != nil { + // return err + //} // 当前写后读 latestGrade := new(GroupPowerGrade) if err = txModel.DB().Model(GroupPowerGrade{}).Where("group_power_id = ?", groupPowerId).First(latestGrade).Error; err != nil { -- 2.22.0