diff --git a/domain/model/cp_m/level.go b/domain/model/cp_m/level.go index b756360ff0472f39bff34c8f890b2363be693abd..dabd445e2bfae13b392ea4bd956f59a4e2189a30 100644 --- a/domain/model/cp_m/level.go +++ b/domain/model/cp_m/level.go @@ -4,10 +4,13 @@ import ( "fmt" "git.hilo.cn/hilo-common/domain" "git.hilo.cn/hilo-common/resource/mysql" + "git.hilo.cn/hilo-common/rpc" "git.hilo.cn/hilo-common/txop/headwear_tx" "gorm.io/gorm" "gorm.io/gorm/clause" "hilo-user/_const/enum/cp_e" + "hilo-user/_const/enum/gift_e" + "hilo-user/domain/model/user_m" "hilo-user/myerr" "time" ) @@ -134,7 +137,7 @@ func InitCpLevel(model *domain.Model, cpId, userId1, userId2 mysql.ID) error { // 2.记录存在 // 2.1 在有效期内,直接加points后判断新level,升级需要更新有效期 // 2.2 不有效期内,算首充,重置points后判断新level,升级需要更新有效期 -func AddCpLevelPoints(model *domain.Model, cpRelation CpRelation, points mysql.Num) (err error) { +func AddCpLevelPoints(model *domain.Model, cpRelation CpRelation, points mysql.Num, sceneType gift_e.GiftOperateSceneType) (err error) { start := time.Now() defer func() { model.Log.Infof("AddCpLevelPoints cost:%v,err:%v", time.Now().Sub(start), err) @@ -281,6 +284,21 @@ func AddCpLevelPoints(model *domain.Model, cpRelation CpRelation, points mysql.N return err } } + // 群组中送礼升级 + if oldLevel != cpLevel.Level && sceneType == gift_e.GroupSceneType { + go func() { + userId1, userId2 := cpRelation.UserId1, cpRelation.UserId2 + model := domain.CreateModelContext(model.MyContext) + users, err := user_m.GetUserMapByIds(model, []mysql.ID{userId1, userId2}) + if err != nil { + model.Log.Errorf("") + return + } + if err := rpc.SendCpUpgrade(users[userId1].Nick, users[userId2].Nick, users[userId1].Avatar, users[userId2].Avatar, uint32(cpLevel.Level), "成为 todo"); err != nil { + model.Log.Errorf("SendCpUpgrade fail:%v", err) + } + }() + } return cpLevel.Persistence(model) } diff --git a/domain/service/event_s/cp_level.go b/domain/service/event_s/cp_level.go index 1d5e265718ca6a963724731f86f7c3740b4c78d8..6d0a4e12d4851b7d4075b9f7c2062853a58b25e9 100644 --- a/domain/service/event_s/cp_level.go +++ b/domain/service/event_s/cp_level.go @@ -26,7 +26,7 @@ func CpGiftEvent() { diamonds := sendGiftEvent.GiftN * sendGiftEvent.ResGift.DiamondNum // 有cp关系 if cpRelation, exits := cp_m.GetCpRelationPair(model, sendGiftEvent.SendUserId, receiverUid); exits { - if err := cp_m.AddCpLevelPoints(model, cpRelation, diamonds); err != nil { + if err := cp_m.AddCpLevelPoints(model, cpRelation, diamonds, sendGiftEvent.SceneType); err != nil { model.Log.Errorf("AddCpLevelPoints fail:%v", err) } if err := cp_m.AddCpDayRank(model, cpRelation, diamonds); err != nil {