线上热更,vip刷新

master_0.05_aqlm
grimm 2024-02-26 14:10:04 +08:00
parent 05f2ebf7eb
commit 0c55069829
4 changed files with 20 additions and 12 deletions

View File

@ -1,4 +1,4 @@
{ {
"version":"7", "version":"8",
"tables":"GlobalActivity" "tables":"GlobalActivity"
} }

View File

@ -1,6 +1,7 @@
{ {
"version":"6", "version":"7",
"classes":[ "classes":[
{"name":"PlayerManager.class","fullName":"com.ljsd.jieling.logic.dao.PlayerManager"} {"name":"PlayerManager.class","fullName":"com.ljsd.jieling.logic.dao.PlayerManager"},
{"name":"PlayerLogic.class","fullName":"com.ljsd.jieling.logic.player.PlayerLogic"}
] ]
} }

View File

@ -563,12 +563,15 @@ public class PlayerManager extends MongoBase {
} }
public void vipFlush(Set<Integer> removePrivileges) { public void vipFlush(Set<Integer> removePrivileges) {
System.out.println("开始刷新特权:"+removePrivileges);
if (vipInfo.isEmpty()) { if (vipInfo.isEmpty()) {
return; return;
} }
System.out.println("开始刷新特权,删除前特权数量:"+vipInfo.size());
for (Integer remove : removePrivileges) { for (Integer remove : removePrivileges) {
vipInfo.remove(remove); vipInfo.remove(remove);
} }
System.out.println("开始刷新特权,删除后特权数量:"+vipInfo.size());
for (Map.Entry<Integer, VipInfo> entry : vipInfo.entrySet()) { for (Map.Entry<Integer, VipInfo> entry : vipInfo.entrySet()) {
Integer id = entry.getKey(); Integer id = entry.getKey();
VipInfo info = entry.getValue(); VipInfo info = entry.getValue();
@ -584,6 +587,7 @@ public class PlayerManager extends MongoBase {
vipInfo.put(id,refreshVipInfo); vipInfo.put(id,refreshVipInfo);
} }
} }
System.out.println("刷新特权完成,特权数量:"+vipInfo.size());
updateString("vipInfo", vipInfo); updateString("vipInfo", vipInfo);
setHadTakeDailyBoxVip(-1); setHadTakeDailyBoxVip(-1);
} }

View File

@ -350,28 +350,31 @@ public class PlayerLogic {
int nowInt = TimeUtils.nowInt(); int nowInt = TimeUtils.nowInt();
Map<Integer, VipInfo> vipInfo = playerInfoManager.getVipInfo(); Map<Integer, VipInfo> vipInfo = playerInfoManager.getVipInfo();
for(Map.Entry<Integer,VipInfo> vipInfoItem : vipInfo.entrySet()){ for(Map.Entry<Integer,VipInfo> vipInfoItem : vipInfo.entrySet()){
Integer id = vipInfoItem.getKey();
VipInfo info = vipInfoItem.getValue();
//如果这个权限是活动 且永久了 那么需要修复 //如果这个权限是活动 且永久了 那么需要修复
SPrivilegeTypeConfig config = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(vipInfoItem.getKey()); SPrivilegeTypeConfig config = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(id);
if (config == null){ if (config == null){
LOGGER.info("特权刷新删除日志1{}-{}",vipInfoItem.getKey(),vipInfoItem.getValue().getEffectTime()); LOGGER.info("特权刷新删除日志1{};{};{}",user.getId(), id, info.getEffectTime());
removePrivileges.add(vipInfoItem.getKey()); removePrivileges.add(id);
continue; continue;
} }
if(vipInfoItem.getValue().getEffectTime() == 0){ if(info.getEffectTime() == 0){
int unlockType = config.getUnlockType(); int unlockType = config.getUnlockType();
if(unlockType==5 || (unlockType==4 && config.getContinueTime().length>0)){ if(unlockType==5 || (unlockType==4 && config.getContinueTime().length>0)){
playerInfoManager.addVipByTime(vipInfoItem.getKey(), nowInt); playerInfoManager.addVipByTime(id, nowInt);
} }
} }
else if(vipInfoItem.getValue().getEffectTime() <= nowInt){ else if(info.getEffectTime() <= nowInt){
if(config.getPrivilegeType() == VipPrivilegeType.ADVENTURE_BASE_REWARD){ if(config.getPrivilegeType() == VipPrivilegeType.ADVENTURE_BASE_REWARD){
CombatLogic.getInstance().getNewAdventureReward(user,true,vipInfoItem.getValue().getEffectTime()); CombatLogic.getInstance().getNewAdventureReward(user,true, info.getEffectTime());
} }
removePrivileges.add(vipInfoItem.getKey()); removePrivileges.add(id);
LOGGER.info("特权刷新删除日志2{}-{}",vipInfoItem.getKey(),vipInfoItem.getValue().getEffectTime()); LOGGER.info("特权刷新删除日志2{};{};{}",user.getId(), id, info.getEffectTime());
} }
} }
LOGGER.info("特权刷新删除日志3{};{}",user.getId(),removePrivileges);
playerInfoManager.vipFlush(removePrivileges); playerInfoManager.vipFlush(removePrivileges);
// vip刷新后才能发给前端 // vip刷新后才能发给前端