diff --git a/domain/model/groupPower_m/group_grade.go b/domain/model/groupPower_m/group_grade.go index 978b413e902ff67a2147cb28dd97c1bce8f6ac03..04b14d17da712e09ed131b03b4b7bc02dc82188a 100644 --- a/domain/model/groupPower_m/group_grade.go +++ b/domain/model/groupPower_m/group_grade.go @@ -3,6 +3,8 @@ package groupPower_m import ( "git.hilo.cn/hilo-common/domain" "git.hilo.cn/hilo-common/resource/mysql" + "git.hilo.cn/hilo-common/utils" + "github.com/jinzhu/now" "gorm.io/gorm" "gorm.io/gorm/clause" "hilo-group/_const/enum/groupPower_e" @@ -68,7 +70,13 @@ func IncrGroupPowerExp(txModel *domain.Model, groupPowerId mysql.ID, exp int64) for grade := groupPower_e.GroupPowerGradeMax; grade >= groupPower_e.GroupPowerGrade0; grade-- { if latestGrade.Exp > groupPower_e.GroupPowerGradeExp[grade] { if latestGrade.Grade != grade { - if err = txModel.DB().Model(GroupPowerGrade{}).Where("group_power_id = ?", latestGrade.GroupPowerId).UpdateColumn("grade", grade).Error; err != nil { + expireAt := now.EndOfMonth() + expireAt = utils.AddDate(expireAt, 0, 1) // 等级有效期到下个月月底 + updateAttrs := map[string]interface{}{ + "grade": grade, + "expire_at": expireAt, + } + if err = txModel.DB().Model(GroupPowerGrade{}).Where("group_power_id = ?", latestGrade.GroupPowerId).UpdateColumns(updateAttrs).Error; err != nil { return err } }