好友申请
parent
fb67d6253a
commit
4133c142c5
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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://全部同意
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue