【车迟斗法】没有收到前公会的排行奖励

back_recharge
wangyuan 2020-05-25 14:42:55 +08:00
parent e8307d5664
commit 940625d330
3 changed files with 17 additions and 1 deletions

View File

@ -26,9 +26,10 @@ public class CarDelayFunction implements FunctionManager {
List<String> delKeys = new ArrayList<>();
String key = RedisUtil.getInstence().getKey(RedisKey.CAR_DEALY_RANK, "");
String guildKey = RedisUtil.getInstence().getKey(RedisKey.CAR_DEALY_GUILD_RANK, "");
String userLevelGuild = RedisUtil.getInstence().getKey(RedisKey.USER_LEVEL_GUILD_INFO, "");
delKeys.add(key);
delKeys.add(guildKey);
delKeys.add(guildKey);
delKeys.add(userLevelGuild);
Set<String> guildSet = RedisUtil.getInstence().getZset(guildKey, 0, -1);
guildSet.forEach(guildId->{
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(guildId));
@ -66,6 +67,13 @@ public class CarDelayFunction implements FunctionManager {
String guildTitle = SErrorCodeEerverConfig.getI18NMessage("family_fight_rank_familyreward_title");
Set<ZSetOperations.TypedTuple<String>> guildRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.CAR_DEALY_GUILD_RANK, "", 0, -1);
rank=0;
Map<Integer, Integer> userLevelGuildMap = RedisUtil.getInstence().getMapValues(RedisKey.USER_LEVEL_GUILD_INFO, "", Integer.class, Integer.class);
Map<Integer,Set<Integer>> usersByGuildId = new HashMap<>();
userLevelGuildMap.forEach((userId,guildId)->{
usersByGuildId.putIfAbsent(guildId,new HashSet<>());
usersByGuildId.get(guildId).add(userId);
});
for(ZSetOperations.TypedTuple<String> item : guildRangeWithScores){
String value = item.getValue();
@ -77,6 +85,9 @@ public class CarDelayFunction implements FunctionManager {
}
rank++;
Collection<Set<Integer>> values = guildInfo.getMembers().values();
if(userLevelGuildMap.containsKey(guildId)){
values.add(usersByGuildId.get(guildId));
}
String guildContent = SErrorCodeEerverConfig.getI18NMessage("family_fight_rank_familyreward_txt",new Object[]{rank});
for(Set<Integer> uids : values){
for(Integer uid:uids){

View File

@ -262,6 +262,8 @@ public class RedisKey {
public final static String CAR_CHALLENGE_RECORD = "CAR_CHALLENGE_RECORD"; //车迟玩法挑战记录
public final static String USER_LEVEL_GUILD_INFO = "USER_LEVEL_GUILD_INFO"; //车迟玩法挑战记录
public static Set<String> familyKey = new HashSet<>();

View File

@ -590,6 +590,7 @@ public class GuildLogic {
RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE,"",String.valueOf(applyId),cache);
AyyncWorker ayyncWorker = new AyyncWorker(targetUser, true, new AynMissionWorker(GameEvent.JOIN_FAMILY));
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
RedisUtil.getInstence().removeMapEntrys(RedisKey.USER_LEVEL_GUILD_INFO,"",String.valueOf(applyId));
// targetUser.getUserMissionManager().onGameEvent(targetUser, GameEvent.JOIN_FAMILY);
}finally {
RedisUtil.getInstence().releaseDistributedLock(RedisKey.OPERATE_FAMILY_APPLY_JOIN,Integer.toString(applyId), Integer.toString(applyId));
@ -1358,6 +1359,8 @@ public class GuildLogic {
//TODO lock all 公会id清零之前调用
//退公会清除数据 补发奖励
sendGuildHelpRewardEmail(user);
int guildId = user.getPlayerInfoManager().getGuildId();
RedisUtil.getInstence().putMapEntry(RedisKey.USER_LEVEL_GUILD_INFO,"",String.valueOf(user.getId()),guildId);
//notify all
Family.GuildHelpInfoIndication.Builder build = Family.GuildHelpInfoIndication.newBuilder();