diff --git a/worldsrv/rankmatch.go b/worldsrv/rankmatch.go index d968da3..7a87e13 100644 --- a/worldsrv/rankmatch.go +++ b/worldsrv/rankmatch.go @@ -765,29 +765,29 @@ func (r *RankMatchMgr) RankAward() { } rankId := int32(1) for k, player := range players { + localRankId := rankId if player == nil { logger.Logger.Errorf("RankMatchMgr OnDayTimer FindPlayerPermitList player is nil %v", list.List[k].SnId) continue } + var items []int64 + for _, award := range rankAward { + if award.RankLevelId == localRankId { + for _, itemInfo := range award.Item { + items = append(items, int64(itemInfo.ItemId)) + items = append(items, itemInfo.ItemNum) + } + break + } + } + if len(items) == 0 { + break + } // 发邮件 var newMsg *model.Message task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - id := rankId - var items []int64 - for _, award := range rankAward { - if award.RankLevelId == rankId { - for _, itemInfo := range award.Item { - items = append(items, int64(itemInfo.ItemId)) - items = append(items, itemInfo.ItemNum) - } - break - } - } - if len(items) == 0 { - return nil - } title := i18n.Tr("languages", "PermitAwardTitle") - content := i18n.Tr("languages", "PermitAward", []int{int(id), int(id), int(id), int(id)}) + content := i18n.Tr("languages", "PermitAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) err := model.InsertMessage(platform, newMsg) @@ -838,29 +838,29 @@ func (r *RankMatchMgr) RankAward() { } rankId := int32(1) for k, player := range players { + localRankId := rankId if player == nil { logger.Logger.Errorf("RankMatchMgr OnDayTimer FindWinCoinListTienlen player is nil %v", ret.List[k].SnId) continue } + var items []int64 + for _, award := range rankAward { + if award.RankLevelId == localRankId { + for _, itemInfo := range award.Item { + items = append(items, int64(itemInfo.ItemId)) + items = append(items, itemInfo.ItemNum) + } + break + } + } + if len(items) == 0 { + break + } // 发邮件 var newMsg *model.Message task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - id := rankId - var items []int64 - for _, award := range rankAward { - if award.RankLevelId == id { - for _, itemInfo := range award.Item { - items = append(items, int64(itemInfo.ItemId)) - items = append(items, itemInfo.ItemNum) - } - break - } - } - if len(items) == 0 { - return nil - } title := i18n.Tr("languages", "PermitAwardTitle") - content := i18n.Tr("languages", "PermitAward", []int{int(id), int(id), int(id), int(id)}) + content := i18n.Tr("languages", "PermitAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) err := model.InsertMessage(platform, newMsg) @@ -996,24 +996,28 @@ func (r *RankMatchMgr) NianRankAward() { } rankId := int32(1) for k, player := range players { + localRankId := rankId if player == nil { logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId) continue } + var items []int64 + for _, award := range rankAward { + if award.RankId == localRankId { + for _, itemInfo := range award.Award { + items = append(items, int64(itemInfo.ItemId)) + items = append(items, itemInfo.ItemNum) + } + } + } + if len(items) == 0 { + break + } // 发邮件 var newMsg *model.Message task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - id := rankId - var items []int64 - for _, award := range rankAward[id].Award { - items = append(items, int64(award.ItemId)) - items = append(items, award.ItemNum) - } - if len(items) == 0 { - return nil - } title := i18n.Tr("languages", "NianLuckTitle") - content := i18n.Tr("languages", "NianLuckAward", []int{int(id), int(id), int(id), int(id)}) + content := i18n.Tr("languages", "NianLuckAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) err := model.InsertMessage(platform, newMsg) @@ -1030,16 +1034,15 @@ func (r *RankMatchMgr) NianRankAward() { })).Start() //记录log rankData := &model.NianPlayerRankData{ - RankId: rankId, + RankId: localRankId, Snid: player.SnId, - Score: list.List[rankId-1].Luck, + Score: list.List[localRankId-1].Luck, } log.RankData = append(log.RankData, rankData) rankId += 1 - logger.Logger.Infof("年兽幸运榜发奖 snid:%v rankData:%v", player.SnId, rankData) + logger.Logger.Infof("发奖 snid:%v rankId:%v", player.SnId, localRankId) } mq.Write(log) - logger.Logger.Infof("年兽幸运榜发奖 log:%v", log) //清除幸运榜数值 err := model.ClearNianRank(&model.FindNianListArgs{ Platform: platform, @@ -1083,24 +1086,28 @@ func (r *RankMatchMgr) NianRankAward() { } rankId := int32(1) for k, player := range players { + localRankId := rankId // 将 rankId 复制到局部变量 if player == nil { logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId) continue } + var items []int64 + for _, award := range rankAward { + if award.RankId == localRankId { + for _, itemInfo := range award.Award { + items = append(items, int64(itemInfo.ItemId)) + items = append(items, itemInfo.ItemNum) + } + } + } + if len(items) == 0 { + break + } // 发邮件 var newMsg *model.Message task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - id := rankId - var items []int64 - for _, award := range rankAward[id].Award { - items = append(items, int64(award.ItemId)) - items = append(items, award.ItemNum) - } - if len(items) == 0 { - return nil - } title := i18n.Tr("languages", "NianDamageTitle") - content := i18n.Tr("languages", "NianDamageAward", []int{int(id), int(id), int(id), int(id)}) + content := i18n.Tr("languages", "NianDamageAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) err := model.InsertMessage(platform, newMsg) @@ -1116,15 +1123,14 @@ func (r *RankMatchMgr) NianRankAward() { } })).Start() rankData := &model.NianPlayerRankData{ - RankId: rankId, + RankId: localRankId, Snid: player.SnId, - Score: list.List[rankId-1].Damage, + Score: list.List[localRankId-1].Damage, } log.RankData = append(log.RankData, rankData) rankId += 1 } mq.Write(log) - logger.Logger.Infof("年兽伤害榜发奖 log:%v", log) //删除数据库数据 err := model.DelNianRank(&model.FindNianListArgs{ Platform: platform,