diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 71926d180..bbeb43abb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -343,23 +343,16 @@ public class PlayerLogic { //如果这个权限是活动 且永久了 那么需要修复 SPrivilegeTypeConfig config = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(key); if (config == null){ - LOGGER.info("特权刷新删除日志1:{}-{}-{}",user.getId(), key, info.getEffectTime()); + LOGGER.info("特权刷新,特权id不存在,uid:{},vipid:{}",user.getId(), key); removePrivileges.add(key); continue; } - - if(info.getEffectTime() == 0){ - int unlockType = config.getUnlockType(); - if(unlockType==5 || (unlockType==4 && config.getContinueTime().length>0)){ - playerInfoManager.addVipByTime(key, nowInt); - } - } - else if(info.getEffectTime() <= nowInt){ + if(info.getEffectTime() != 0 && info.getEffectTime() <= nowInt){ if(config.getPrivilegeType() == VipPrivilegeType.ADVENTURE_BASE_REWARD){ CombatLogic.getInstance().getNewAdventureReward(user,true, info.getEffectTime()); } removePrivileges.add(key); - LOGGER.info("特权刷新删除日志2:{}-{}-{}",user.getId(), key, info.getEffectTime()); + LOGGER.info("特权刷新,特权到期,uid:{},id:{},过期时间:{}",user.getId(), key, info.getEffectTime()); } } vipFlush(user, removePrivileges); @@ -390,6 +383,7 @@ public class PlayerLogic { LOGGER.error("vip刷新,vipinfo为空,uid:{}",user.getId()); return; } + int nowInt = TimeUtils.nowInt(); for (Map.Entry entry : vipInfo.entrySet()) { Integer id = entry.getKey(); if (removeIds.contains(id)){ @@ -397,10 +391,15 @@ public class PlayerLogic { } VipInfo info = entry.getValue(); SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(id); - if (sPrivilegeTypeConfig == null) { - LOGGER.error("vip新增,vipid查询表不存在,已删除,uid:{},vipid:{}",user.getId(),id); - removeIds.add(id); - continue; + int unlockType = sPrivilegeTypeConfig.getUnlockType(); + if(info.getEffectTime() == 0){ + if(unlockType==5 || (unlockType==4 && sPrivilegeTypeConfig.getContinueTime().length>0)){ + VipInfo refreshVipInfo = new VipInfo(); + refreshVipInfo.setCount(0); + refreshVipInfo.setEffectTime(nowInt); + vipInfo.put(id,refreshVipInfo); + LOGGER.info("vip刷新,特殊vip刷新,uid:{},vipid:{},time:{}",user.getId(), id, nowInt); + } } int refreshType = sPrivilegeTypeConfig.getRefreshType()[0]; if (refreshType == 1 && info.getCount() > 0) { @@ -408,14 +407,13 @@ public class PlayerLogic { refreshVipInfo.setCount(0); refreshVipInfo.setEffectTime(info.getEffectTime()); vipInfo.put(id,refreshVipInfo); + LOGGER.info("vip刷新,日常vip刷新,uid:{},vipid:{},time:{}",user.getId(), id, nowInt); } } - LOGGER.error("vip刷新,删除前的vip数量,uid:{},vipnum:{},removeIds:{}",user.getId(),vipInfo.size(),removeIds); // 删除vip for (Integer remove : removeIds) { vipInfo.remove(remove); } - LOGGER.error("vip刷新,删除后的vip数量,uid:{},vipnum:{}",user.getId(),vipInfo.size()); playerManager.setVipInfo(vipInfo); }