关卡排行热更

back_recharge
lvxinran 2020-03-13 15:21:49 +08:00
parent 288c4d627e
commit be83f871c0
2 changed files with 74 additions and 12 deletions

View File

@ -750,12 +750,7 @@ public class PlayerLogic {
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
}
public boolean check(User user, int privilageTypeId, int checkNum){
return priviliageCheck(user,privilageTypeId,checkNum,false);
}
public boolean checkAndUpdate(User user, int privilageTypeId, int updateNum){
return priviliageCheck(user,privilageTypeId,updateNum,true);
}
private boolean priviliageCheck(User user, int privilageTypeId, int checkNum,boolean isUpdate){
// return priviliageCheck(user,privilageTypeId,checkNum,false);
Map<Integer, VipInfo> vipInfo = user.getPlayerInfoManager().getVipInfo();
if(privilageTypeId == 0){
return true;
@ -783,13 +778,79 @@ public class PlayerLogic {
if((info.getCount()+checkNum>mCount)|| (info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime())){
continue;
}
if (isUpdate){
user.getPlayerInfoManager().updateVipPrivilage(privilageId, checkNum);
}
return true;
}
return false;
}
public boolean checkAndUpdate(User user, int privilageTypeId, int updateNum){
// return priviliageCheck(user,privilageTypeId,updateNum,true);
Map<Integer, VipInfo> vipInfo = user.getPlayerInfoManager().getVipInfo();
if(privilageTypeId == 0){
return true;
}
List<SPrivilegeTypeConfig> sPrivilegeTypeConfigs = SPrivilegeTypeConfig.privilegeByType.get(privilageTypeId);
List<Integer> typePrivileges = new ArrayList<>();
for(SPrivilegeTypeConfig config:sPrivilegeTypeConfigs){
if(!vipInfo.containsKey(config.getId())){
continue;
}
typePrivileges.add(config.getId());
}
if(typePrivileges.isEmpty()){
return false;
}
for(Integer privilageId:typePrivileges){
VipInfo info = vipInfo.get(privilageId);
if(info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime()){
continue;
}
int mCount = getMaxCountByPrivilege(user,privilageId);
if(mCount==-1){
return true;
}
if((info.getCount()+updateNum>mCount)|| (info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime())){
continue;
}
user.getPlayerInfoManager().updateVipPrivilage(privilageId, updateNum);
return true;
}
return false;
}
// private boolean priviliageCheck(User user, int privilageTypeId, int checkNum,boolean isUpdate){
// Map<Integer, VipInfo> vipInfo = user.getPlayerInfoManager().getVipInfo();
// if(privilageTypeId == 0){
// return true;
// }
// List<SPrivilegeTypeConfig> sPrivilegeTypeConfigs = SPrivilegeTypeConfig.privilegeByType.get(privilageTypeId);
// List<Integer> typePrivileges = new ArrayList<>();
// for(SPrivilegeTypeConfig config:sPrivilegeTypeConfigs){
// if(!vipInfo.containsKey(config.getId())){
// continue;
// }
// typePrivileges.add(config.getId());
// }
// if(typePrivileges.isEmpty()){
// return false;
// }
// for(Integer privilageId:typePrivileges){
// VipInfo info = vipInfo.get(privilageId);
// if(info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime()){
// continue;
// }
// int mCount = getMaxCountByPrivilege(user,privilageId);
// if(mCount==-1){
// return true;
// }
// if((info.getCount()+checkNum>mCount)|| (info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime())){
// continue;
// }
// if (isUpdate){
// user.getPlayerInfoManager().updateVipPrivilage(privilageId, checkNum);
// }
// return true;
// }
// return false;
// }
private int getMaxCountByPrivilege(User user,int privilegeId){
SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(privilegeId);
Map<Integer, Map<Integer, Integer>> conditionMap = SPrivilegeTypeConfig.conditionMap.get(sPrivilegeTypeConfig.getUnlockType());

View File

@ -27,8 +27,8 @@ public class MainLevelRank extends AbstractRank {
return new int[]{i%10_000_000};
}
// @Override
// protected PlayerInfoProto.RankResponse.Builder getAllUserResponse(Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores, int start) throws Exception {
@Override
protected PlayerInfoProto.RankResponse.Builder getAllUserResponse(Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores, int start) throws Exception {
// PlayerInfoProto.RankResponse.Builder allUserResponse = super.getAllUserResponse(zsetreverseRangeWithScores, start);
// List<CommonProto.UserRank> ranksBuilderList = allUserResponse.getRanksList();
// if(ranksBuilderList.size()<2){
@ -53,7 +53,8 @@ public class MainLevelRank extends AbstractRank {
// PlayerInfoProto.RankResponse.Builder response = PlayerInfoProto.RankResponse.newBuilder();
// response.setMyRankInfo(allUserResponse.getMyRankInfo()).addAllRanks(buildersCopy);
// return response;
// }
return super.getAllUserResponse(zsetreverseRangeWithScores,start);
}
@Override
public Set<ZSetOperations.TypedTuple<String>> getRankByKey(String rkey,int start, int end) {