好友友情点修改

back_recharge
lvxinran 2020-03-13 14:26:45 +08:00
parent 50110c8723
commit 566fc26e6d
2 changed files with 24 additions and 52 deletions

View File

@ -527,11 +527,11 @@ public class FriendLogic {
throw new ErrorCodeException(ErrorCode.FRIENDS_SEMD_YET); throw new ErrorCodeException(ErrorCode.FRIENDS_SEMD_YET);
} }
friendManager.updateGiveMap(friendId,1); friendManager.updateGiveMap(friendId,1);
boolean check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); // boolean check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1);
if(check){ // if(check){
friendManager1.updateHaveRewardMap(uid,1); friendManager1.updateHaveRewardMap(uid,1);
sendFriendStatedication(uid,friendId,2); sendFriendStatedication(uid,friendId,2);
} // }
times++; times++;
}else{ //赠送全部好友 }else{ //赠送全部好友
for (Integer friendUserId : friends) { for (Integer friendUserId : friends) {
@ -545,11 +545,11 @@ public class FriendLogic {
continue; continue;
} }
friendManager.updateGiveMap(friendUserId,1); friendManager.updateGiveMap(friendUserId,1);
boolean check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); // boolean check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1);
if(check){ // if(check){
friendManager1.updateHaveRewardMap(uid,1); friendManager1.updateHaveRewardMap(uid,1);
sendFriendStatedication(uid,friendUserId,2); sendFriendStatedication(uid,friendUserId,2);
} // }
times++; times++;
} }
} }
@ -571,7 +571,7 @@ public class FriendLogic {
List<Integer> friends = friendManager.getFriends(); List<Integer> friends = friendManager.getFriends();
Map<Integer, Integer> haveRewardMap = friendManager.getHaveRewardMap(); Map<Integer, Integer> haveRewardMap = friendManager.getHaveRewardMap();
PlayerManager playerInfoManager = user.getPlayerInfoManager(); PlayerManager playerInfoManager = user.getPlayerInfoManager();
boolean check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); boolean check = PlayerLogic.getInstance().check(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1);
Set<Integer> receieveFriends = new HashSet<>(); Set<Integer> receieveFriends = new HashSet<>();
if(!check){ if(!check){
throw new ErrorCodeException(ErrorCode.FRIENDS_GET_MAX); throw new ErrorCodeException(ErrorCode.FRIENDS_GET_MAX);
@ -594,7 +594,6 @@ public class FriendLogic {
takeTimes++; takeTimes++;
rewardStr = reward.toString(); rewardStr = reward.toString();
}else{ }else{
int i=0;
for (Integer friend : friends) { for (Integer friend : friends) {
if (!haveRewardMap.containsKey(friend)) { if (!haveRewardMap.containsKey(friend)) {
continue; continue;
@ -602,13 +601,11 @@ public class FriendLogic {
if (haveRewardMap.containsKey(friend) && haveRewardMap.get(friend) != 1) { if (haveRewardMap.containsKey(friend) && haveRewardMap.get(friend) != 1) {
continue; continue;
} }
if(i++>0){
check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1);
if(!check){ if(!check){
break; break;
}
} }
playerInfoManager.updateVipPrivilage(STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(),1);
friendManager.updateHaveRewardMap(friend,2); friendManager.updateHaveRewardMap(friend,2);
reward.append(SSpecialConfig.getStringValue(SSpecialConfig.Friend_Gift)).append("|"); reward.append(SSpecialConfig.getStringValue(SSpecialConfig.Friend_Gift)).append("|");
receieveFriends.add(friend); receieveFriends.add(friend);

View File

@ -749,41 +749,13 @@ public class PlayerLogic {
user.getPlayerInfoManager().setRideLevel(rideLevel+1); user.getPlayerInfoManager().setRideLevel(rideLevel+1);
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
} }
public boolean checkAndUpdate(User user, int privilageTypeId, int updateNum){
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;
}
public boolean check(User user, int privilageTypeId, int checkNum){ 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){
Map<Integer, VipInfo> vipInfo = user.getPlayerInfoManager().getVipInfo(); Map<Integer, VipInfo> vipInfo = user.getPlayerInfoManager().getVipInfo();
if(privilageTypeId == 0){ if(privilageTypeId == 0){
return true; return true;
@ -811,6 +783,9 @@ public class PlayerLogic {
if((info.getCount()+checkNum>mCount)|| (info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime())){ if((info.getCount()+checkNum>mCount)|| (info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime())){
continue; continue;
} }
if (isUpdate){
user.getPlayerInfoManager().updateVipPrivilage(privilageId, checkNum);
}
return true; return true;
} }
return false; return false;