好友申请

back_recharge
lvxinran 2019-10-30 20:46:46 +08:00
parent fb67d6253a
commit 4133c142c5
4 changed files with 37 additions and 6 deletions

View File

@ -12,6 +12,8 @@ public class FriendManager extends MongoBase {
private List<Integer> blackFriends = new CopyOnWriteArrayList<>();
private List<Integer> applyFriends = new CopyOnWriteArrayList<>(); // 申请列表信息
private List<Integer> myApplyFriends = new CopyOnWriteArrayList<>();//我申请过的信息
//key: friendId value 状态 0:未赠送 1赠送过
private Map<Integer,Integer> giveMap = new ConcurrentHashMap<>();
//key: friendId value 状态 0: 不可领取 1:可以领取 2: 已领取
@ -105,4 +107,22 @@ public class FriendManager extends MongoBase {
public List<Integer> getBlackFriends() {
return blackFriends;
}
public List<Integer> getMyApplyFriends() {
return myApplyFriends;
}
public void setMyApplyFriends(List<Integer> myApplyFriends) {
updateString("myApplyFriends", myApplyFriends);
this.myApplyFriends = myApplyFriends;
}
public void delMyApplyFriend(Integer friendId){
this.myApplyFriends.remove(friendId);
setMyApplyFriends(this.myApplyFriends);
}
public void addMyApplyFriend(int friendId){
this.myApplyFriends.add(friendId);
setMyApplyFriends(this.myApplyFriends);
}
}

View File

@ -265,6 +265,7 @@ public class FriendLogic {
applyFriends.remove(0);
}
friendManager.addApplyFriend(uid);
user.getFriendManager().addMyApplyFriend(inviteUid);
sendFriendInfoIndication(uid,inviteUid,1);
}
MessageUtil.sendMessage(iSession, 1, msgId, null, true);
@ -308,10 +309,12 @@ public class FriendLogic {
int uid = iSession.getUid();
User user = UserManager.getUser(uid);
FriendManager friendManager = user.getFriendManager();
User friendUser = UserManager.getUser(friendId);
FriendManager friendfriendManager = friendUser.getFriendManager();
List<Integer> friends = friendManager.getFriends();
List<Integer> applyFriends = friendManager.getApplyFriends();
int maxFriends = SSpecialConfig.getIntegerValue(SSpecialConfig.FRIENDAMOUNT_LIMIT);
User friendUser;
List<Integer> friendFriendList;
switch (type){
case 1://同意
@ -321,9 +324,7 @@ public class FriendLogic {
if (friends.size() >= maxFriends){
throw new ErrorCodeException(ErrorCode.FRIENDS_MAX);
}
friendUser = UserManager.getUser(friendId);
FriendManager friendfriendManager = friendUser.getFriendManager();
friendFriendList = friendUser.getFriendManager().getFriends();
friendFriendList = friendfriendManager.getFriends();
if (friendFriendList.size() >=maxFriends){
throw new ErrorCodeException(ErrorCode.FRIENDS_SIDE_MAX);
}
@ -332,9 +333,11 @@ public class FriendLogic {
}
if (applyFriends.contains(friendId)){
friendManager.delApplyFriend(friendId);
friendfriendManager.delMyApplyFriend(uid);
}
if (friendfriendManager.getApplyFriends().contains(uid)){
if (friendfriendManager.getApplyFriends().contains(uid)||applyFriends.contains(friendId)){
friendfriendManager.delApplyFriend(uid);
friendManager.delMyApplyFriend(friendId);
}
friendManager.addFriendId(friendId);
friendfriendManager.addFriendId(uid);
@ -348,6 +351,7 @@ public class FriendLogic {
applyFriends = friendManager.getApplyFriends();
if (applyFriends.contains(friendId)){
friendManager.delApplyFriend(friendId);
friendfriendManager.delMyApplyFriend(uid);
}
break;
case 3://全部同意

View File

@ -468,6 +468,9 @@ public class PlayerLogic {
}
oneInfo.setTeam(teamInfo);
if(UserManager.getUser(session.getUid()).getFriendManager().getMyApplyFriends().contains(id)){
oneInfo.setIsApplyed(1);
}
PlayerInfoProto.GetPlayerOneTeamInfoResponse.Builder playerTeamInfo = PlayerInfoProto.GetPlayerOneTeamInfoResponse.newBuilder().setTeamInfo(oneInfo);
MessageUtil.sendMessage(session,1,messageType.getNumber(),playerTeamInfo.build(),true);

View File

@ -311,6 +311,7 @@ public class CBean2Proto {
PlayerManager playerInfoManager = user.getPlayerInfoManager();
int isGrive = 0;
int haveReward = 0;
CommonProto.Friend.Builder friend = CommonProto.Friend.newBuilder();
if (friendManager != null){
Map<Integer, Integer> giveMap =friendManager.getGiveMap();
Map<Integer, Integer> haveRewardMap = friendManager.getHaveRewardMap();
@ -320,8 +321,10 @@ public class CBean2Proto {
if (haveRewardMap.size() != 0 && giveMap.containsKey(friendId) && haveRewardMap.containsKey(friendId)){
haveReward = haveRewardMap.get(friendId) ==2?0:haveRewardMap.get(friendId);
}
if(friendManager.getMyApplyFriends().contains(friendId)){
friend.setIsApplyed(1);
}
}
CommonProto.Friend.Builder friend = CommonProto.Friend.newBuilder();
friend.setId(user.getId());
friend.setName(playerInfoManager.getNickName());
friend.setLv(playerInfoManager.getLevel());
@ -335,6 +338,7 @@ public class CBean2Proto {
friend.setHead(playerInfoManager.getHead());
friend.setFrame(playerInfoManager.getHeadFrame());
friend.setSoulVal(playerInfoManager.getMaxForce());
return friend.build();
}