好友接口测试
parent
6d39b2db5a
commit
da4b5a36d3
|
@ -15,7 +15,7 @@ import java.util.List;
|
|||
public class FriendSearchRequestHandler extends BaseHandler {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.FRIEND_INVITE_REQUEST;
|
||||
return MessageTypeProto.MessageType.FRIEND_SEARCH_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.ljsd.jieling.logic.dao;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import com.ljsd.common.mogodb.MongoBase;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -9,8 +8,6 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
public class FriendManager extends MongoBase {
|
||||
private int uid;
|
||||
|
||||
private List<Integer> friends = new CopyOnWriteArrayList<>();
|
||||
|
||||
private List<Integer> applyFriends = new CopyOnWriteArrayList<>(); // 申请列表信息
|
||||
|
@ -19,19 +16,40 @@ public class FriendManager extends MongoBase {
|
|||
//key: friendId value 状态 0: 不可领取 1:可以领取 2: 已领取
|
||||
private Map<Integer,Integer> haveRewardMap = new ConcurrentHashMap<>();
|
||||
|
||||
public void delFriends(int friendId) {
|
||||
public void delFriends(Integer friendId) {
|
||||
this.friends.remove(friendId);
|
||||
setFriends(this.friends);
|
||||
}
|
||||
|
||||
public int getUid() {
|
||||
return uid;
|
||||
public void addFriendId(int friendId) {
|
||||
this.friends.add(friendId);
|
||||
setFriends(this.friends);
|
||||
}
|
||||
public void delApplyFriend(Integer friendId){
|
||||
this.applyFriends.remove(friendId);
|
||||
setApplyFriends(this.applyFriends);
|
||||
}
|
||||
public void addApplyFriend(int friendId){
|
||||
this.applyFriends.add(friendId);
|
||||
setApplyFriends(this.applyFriends);
|
||||
}
|
||||
public void updateGiveMap(int friendId,int state){
|
||||
this.giveMap.put(friendId,state);
|
||||
setGiveMap(this.giveMap);
|
||||
}
|
||||
public void updateHaveRewardMap(int friendId,int state){
|
||||
this.haveRewardMap.put(friendId,state);
|
||||
setHaveRewardMap(this.haveRewardMap);
|
||||
}
|
||||
public void delGiveMap(Integer friendId){
|
||||
this.giveMap.remove(friendId);
|
||||
setGiveMap(this.giveMap);
|
||||
}
|
||||
|
||||
public void setUid(int uid) {
|
||||
this.uid = uid;
|
||||
public void delHaveReward(int friendId){
|
||||
this.haveRewardMap.remove(friendId);
|
||||
setHaveRewardMap(this.haveRewardMap);
|
||||
}
|
||||
|
||||
public List<Integer> getFriends() {
|
||||
return friends;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ public class FriendLogic {
|
|||
List<Integer> friends = friendManager.getFriends();
|
||||
List<CommonProto.Friend> friendList = new CopyOnWriteArrayList<>();
|
||||
for (Integer friendId :friends){
|
||||
CommonProto.Friend friend = CBean2Proto.getFriendInfo(friendId);
|
||||
CommonProto.Friend friend = CBean2Proto.getFriendInfo(friendId,friendManager);
|
||||
friendList.add(friend);
|
||||
}
|
||||
PlayerInfoProto.GetFriendInfoResponse getFriendInfoResponse = PlayerInfoProto.GetFriendInfoResponse
|
||||
|
@ -78,7 +78,7 @@ public class FriendLogic {
|
|||
}
|
||||
List<CommonProto.Friend> friendList = new CopyOnWriteArrayList<>();
|
||||
for (Integer commondUid : recommondIds){
|
||||
CommonProto.Friend friend = CBean2Proto.getFriendInfo(commondUid);
|
||||
CommonProto.Friend friend = CBean2Proto.getFriendInfo(commondUid,null);
|
||||
friendList.add(friend);
|
||||
}
|
||||
PlayerInfoProto.GetFriendInfoResponse getFriendInfoResponse = PlayerInfoProto.GetFriendInfoResponse
|
||||
|
@ -114,7 +114,7 @@ public class FriendLogic {
|
|||
List<Integer> applyFriends = friendManager.getApplyFriends();
|
||||
List<CommonProto.Friend> friendList = new CopyOnWriteArrayList<>();
|
||||
for (Integer applyFriendId :applyFriends){
|
||||
CommonProto.Friend friend = CBean2Proto.getFriendInfo(applyFriendId);
|
||||
CommonProto.Friend friend = CBean2Proto.getFriendInfo(applyFriendId,null);
|
||||
friendList.add(friend);
|
||||
}
|
||||
PlayerInfoProto.GetFriendInfoResponse getFriendInfoResponse = PlayerInfoProto.GetFriendInfoResponse
|
||||
|
@ -167,8 +167,8 @@ public class FriendLogic {
|
|||
if (applyFriends.size()>= maxApplyFriends){
|
||||
applyFriends.remove(0);
|
||||
}
|
||||
friendManager.addApplyFriend(uid);
|
||||
sendFriendInfoIndication(inviteUid);
|
||||
applyFriends.add(uid);
|
||||
}
|
||||
MessageUtil.sendMessage(iSession, 1, msgId, null, true);
|
||||
}
|
||||
|
@ -182,7 +182,7 @@ public class FriendLogic {
|
|||
if (isOnline){
|
||||
ISession session = OnlineUserManager.getSessionByUid(inviteUid);
|
||||
PlayerInfoProto.sendFriendInfoIndication sendFriendInfoIndication = PlayerInfoProto.sendFriendInfoIndication.newBuilder()
|
||||
.setFriends(CBean2Proto.getFriendInfo(inviteUid))
|
||||
.setFriends(CBean2Proto.getFriendInfo(inviteUid,null))
|
||||
.build();
|
||||
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.SEND_FRIEND_INFO_INDICATION_VALUE, sendFriendInfoIndication, true);
|
||||
}
|
||||
|
@ -206,12 +206,16 @@ public class FriendLogic {
|
|||
List<Integer> friendFriendList;
|
||||
switch (type){
|
||||
case 1://同意
|
||||
if (friends.contains(friendId)){
|
||||
MessageUtil.sendErrorResponse(iSession,0,msgId,"对方已是你的好友");
|
||||
return;
|
||||
}
|
||||
if (friends.size() >= maxFriends){
|
||||
MessageUtil.sendErrorResponse(iSession,0,msgId,"好友已达上限");
|
||||
return;
|
||||
}
|
||||
if (applyFriends.contains(friendId)){
|
||||
applyFriends.remove(friendId);
|
||||
friendManager.delApplyFriend(friendId);
|
||||
}
|
||||
friendUser = UserManager.getUser(friendId);
|
||||
FriendManager friendfriendManager = friendUser.getFriendManager();
|
||||
|
@ -220,14 +224,14 @@ public class FriendLogic {
|
|||
MessageUtil.sendErrorResponse(iSession,0,msgId,"对方好友已达上限");
|
||||
return;
|
||||
}
|
||||
friendFriendList.add(uid);
|
||||
friends.add(friendId);
|
||||
friendfriendManager.addFriendId(uid);
|
||||
friendManager.addFriendId(friendId);
|
||||
initFriendGriveAndRreward(friendId, uid, friendManager, friendfriendManager);
|
||||
break;
|
||||
case 2://拒绝
|
||||
applyFriends = friendManager.getApplyFriends();
|
||||
if (applyFriends.contains(friendId)){
|
||||
applyFriends.remove(friendId);
|
||||
friendManager.delApplyFriend(friendId);
|
||||
}
|
||||
break;
|
||||
case 3://全部同意
|
||||
|
@ -248,23 +252,28 @@ public class FriendLogic {
|
|||
friendUser = UserManager.getUser(applyfriendId);
|
||||
friendfriendManager = friendUser.getFriendManager();
|
||||
friendFriendList = friendfriendManager.getFriends();
|
||||
if (friends.contains(friendId)){
|
||||
continue;
|
||||
}
|
||||
if (friends.size() >= maxFriends){
|
||||
continue;
|
||||
}
|
||||
if (friendFriendList.size() >= maxFriends){
|
||||
continue;
|
||||
}
|
||||
friendFriendList.add(uid);
|
||||
friends.add(friendId);
|
||||
friendManager.setApplyFriends(new CopyOnWriteArrayList<>());
|
||||
friendfriendManager.addFriendId(uid);
|
||||
friendManager.addFriendId(friendId);
|
||||
initFriendGriveAndRreward(friendId, uid, friendManager, friendfriendManager);
|
||||
}
|
||||
}
|
||||
|
||||
private void initFriendGriveAndRreward(int friendId, int uid, FriendManager friendManager, FriendManager friendfriendManager) {
|
||||
friendfriendManager.getGiveMap().put(uid, 0);
|
||||
friendfriendManager.getHaveRewardMap().put(uid, 0);
|
||||
friendManager.getGiveMap().put(friendId, 0);
|
||||
friendManager.getHaveRewardMap().put(friendId, 0);
|
||||
|
||||
friendfriendManager.updateGiveMap(uid,0);
|
||||
friendfriendManager.updateHaveRewardMap(uid,0);
|
||||
friendManager.updateGiveMap(friendId,0);
|
||||
friendManager.updateHaveRewardMap(friendId,0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -284,11 +293,19 @@ public class FriendLogic {
|
|||
}
|
||||
User friendUser = UserManager.getUser(friendId);
|
||||
FriendManager friendManager1 = friendUser.getFriendManager();
|
||||
friendManager1.delFriends(uid);
|
||||
friendManager.delFriends(friendId);
|
||||
delFriendInfo(friendId, uid, friendManager, friendManager1);
|
||||
sendFriendInfoIndication(friendId);
|
||||
MessageUtil.sendMessage(iSession, 1, msgId, null, true);
|
||||
}
|
||||
//删除好友清除赠送领取体力信息
|
||||
private void delFriendInfo(int friendId, int uid, FriendManager friendManager, FriendManager friendManager1) {
|
||||
friendManager1.delFriends(uid);
|
||||
friendManager1.delGiveMap(friendId);
|
||||
friendManager1.delHaveReward(friendId);
|
||||
friendManager.delFriends(friendId);
|
||||
friendManager.delGiveMap(friendId);
|
||||
friendManager.delHaveReward(friendId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 赠送礼包
|
||||
|
@ -315,14 +332,12 @@ public class FriendLogic {
|
|||
User friendUser = UserManager.getUser(friendId);
|
||||
FriendManager friendManager1 = friendUser.getFriendManager();
|
||||
Map<Integer, Integer> haveRewardMap = friendUser.getFriendManager().getHaveRewardMap();
|
||||
if (haveRewardMap.get(friendId) != 0) {
|
||||
if (haveRewardMap.get(uid) != 0) {
|
||||
MessageUtil.sendErrorResponse(iSession, 0, msgId, "已经赠送过");
|
||||
return;
|
||||
}
|
||||
giveMap.put(friendId,1);
|
||||
friendManager.setGiveMap(giveMap);
|
||||
haveRewardMap.put(friendId,1);
|
||||
friendManager1.setHaveRewardMap(haveRewardMap);
|
||||
friendManager.updateGiveMap(friendId,1);
|
||||
friendManager1.updateHaveRewardMap(uid,1);
|
||||
}else{ //赠送全部好友
|
||||
for (Integer friendIds : friends) {
|
||||
if (giveMap.get(friendId) == 1) {
|
||||
|
@ -334,10 +349,8 @@ public class FriendLogic {
|
|||
if (haveRewardMap.get(friendId) != 0) {
|
||||
continue;
|
||||
}
|
||||
giveMap.put(friendId,1);
|
||||
friendManager.setGiveMap(giveMap);
|
||||
haveRewardMap.put(friendId,1);
|
||||
friendManager1.setHaveRewardMap(haveRewardMap);
|
||||
friendManager.updateGiveMap(friendId,1);
|
||||
friendManager1.updateHaveRewardMap(friendId,1);
|
||||
}
|
||||
}
|
||||
MessageUtil.sendMessage(iSession, 1, msgId, null, true);
|
||||
|
@ -367,16 +380,13 @@ public class FriendLogic {
|
|||
return;
|
||||
}
|
||||
itemNum= 10;
|
||||
haveRewardMap.put(friendId,2);
|
||||
friendManager.updateHaveRewardMap(friendId,2);
|
||||
}else{
|
||||
for (Integer friendIds : friends) {
|
||||
if (haveRewardMap.get(friendId) != 1) {
|
||||
for (Integer friend : friends) {
|
||||
if (haveRewardMap.get(friend) != 1) {
|
||||
continue;
|
||||
}
|
||||
User friendUser = UserManager.getUser(friendIds);
|
||||
FriendManager friendManager1 = friendUser.getFriendManager();
|
||||
haveRewardMap.put(friendId,2);
|
||||
friendManager1.setHaveRewardMap(haveRewardMap);
|
||||
friendManager.updateHaveRewardMap(friend,2);
|
||||
itemNum += 10;
|
||||
}
|
||||
}
|
||||
|
@ -425,7 +435,7 @@ public class FriendLogic {
|
|||
PlayerInfoProto.FriendSearchResponse friendSearchResponse = PlayerInfoProto.FriendSearchResponse
|
||||
.newBuilder()
|
||||
.setType(type)
|
||||
.setFriends(CBean2Proto.getFriendInfo((Integer) friendId))
|
||||
.setFriends(CBean2Proto.getFriendInfo((Integer) friendId,null))
|
||||
.build();
|
||||
MessageUtil.sendMessage(iSession, 1, msgId, friendSearchResponse, true);
|
||||
}
|
||||
|
|
|
@ -246,18 +246,28 @@ public class CBean2Proto {
|
|||
}
|
||||
return chatInfo.build();
|
||||
}
|
||||
public static CommonProto.Friend getFriendInfo(int friendId) throws Exception {
|
||||
public static CommonProto.Friend getFriendInfo(int friendId, FriendManager friendManager) throws Exception {
|
||||
User user = UserManager.getUser(friendId);
|
||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||
Map<Integer, Integer> giveMap = user.getFriendManager().getGiveMap();
|
||||
Map<Integer, Integer> haveRewardMap = user.getFriendManager().getHaveRewardMap();
|
||||
int isGrive = 0;
|
||||
int haveReward = 0;
|
||||
if (friendManager != null){
|
||||
Map<Integer, Integer> giveMap =friendManager.getGiveMap();
|
||||
Map<Integer, Integer> haveRewardMap = friendManager.getHaveRewardMap();
|
||||
if (giveMap.size() != 0){
|
||||
isGrive = giveMap.get(friendId);
|
||||
}
|
||||
if (haveRewardMap.size() != 0){
|
||||
haveReward = haveRewardMap.get(friendId) ==2?0:haveRewardMap.get(friendId);
|
||||
}
|
||||
}
|
||||
CommonProto.Friend.Builder friend = CommonProto.Friend.newBuilder();
|
||||
friend.setId(Integer.parseInt(user.getId()));
|
||||
friend.setName(playerInfoManager.getNickName());
|
||||
friend.setLv(playerInfoManager.getLevel());
|
||||
friend.setOffLineTime(playerInfoManager.getOffLineTime());
|
||||
friend.setHaveReward(giveMap.get(friendId));
|
||||
friend.setIsGive(haveRewardMap.get(friendId) ==2?0:haveRewardMap.get(friendId));
|
||||
friend.setHaveReward(haveReward);
|
||||
friend.setIsGive(isGrive);
|
||||
friend.setHead(playerInfoManager.getHead());
|
||||
friend.setFrame(playerInfoManager.getFamilyId());
|
||||
friend.setSoulVal(playerInfoManager.getMaxForce());
|
||||
|
|
|
@ -14,13 +14,15 @@ import org.slf4j.LoggerFactory;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
public class NettyClient {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(NettyClient.class);
|
||||
|
||||
private static int uid = 10003663;
|
||||
// private static int uid = 10004436;
|
||||
private static int msgIndex = 1;
|
||||
private static int uid = 10004481;
|
||||
private static int token=543242;
|
||||
|
||||
public static void main(String[] args) throws InterruptedException, InvalidProtocolBufferException {
|
||||
|
@ -43,10 +45,25 @@ public class NettyClient {
|
|||
//---------------------------------------------------------------------------------------------------------
|
||||
|
||||
handler.sendRequest_jieling(makeFinalMessage(gameMessage, MessageTypeProto.MessageType.LOGIN_REQUEST_VALUE));
|
||||
for (int i= 0; i < 1000; i++){
|
||||
handler.sendRequest_jieling(makeFinalMessage(sendChatInfo(i), MessageTypeProto.MessageType.SEND_CHAT_INFO_REQUEST_VALUE));
|
||||
}
|
||||
handler.sendRequest_jieling(makeFinalMessage(getChatInfo(), MessageTypeProto.MessageType.GET_CHAT_MESSAGE_REQUEST_VALUE));
|
||||
//获取好友信息
|
||||
// handler.sendRequest_jieling(makeFinalMessage(getFriends(), MessageTypeProto.MessageType.GET_FRIEND_INFO_REQUEST_VALUE));
|
||||
//根据用户名查找玩家
|
||||
// handler.sendRequest_jieling(makeFinalMessage(findUserByName(), MessageTypeProto.MessageType.FRIEND_SEARCH_REQUEST_VALUE));
|
||||
//发送好友申请
|
||||
// handler.sendRequest_jieling(makeFinalMessage(friendInvite(), MessageTypeProto.MessageType.FRIEND_INVITE_REQUEST_VALUE));
|
||||
//同意好友
|
||||
// handler.sendRequest_jieling(makeFinalMessage(friendInviteOperation(), MessageTypeProto.MessageType.FRIEND_INVITE_OPERATION_REQUEST_VALUE));
|
||||
//删除好友
|
||||
// handler.sendRequest_jieling(makeFinalMessage(delFriend(), MessageTypeProto.MessageType.DEL_FRIEND_REQUEST_VALUE));
|
||||
//赠送体力
|
||||
handler.sendRequest_jieling(makeFinalMessage(friendGive(), MessageTypeProto.MessageType.FRIEND_GIVE_PRESENT_REQUEST_VALUE));
|
||||
//领取体力
|
||||
handler.sendRequest_jieling(makeFinalMessage(takeHeart(), MessageTypeProto.MessageType.FRIEND_TAKE_HEART_REQUEST_VALUE));
|
||||
//聊天
|
||||
// for (int i= 0; i < 1000; i++){
|
||||
// handler.sendRequest_jieling(makeFinalMessage(sendChatInfo(i), MessageTypeProto.MessageType.SEND_CHAT_INFO_REQUEST_VALUE));
|
||||
// }
|
||||
// handler.sendRequest_jieling(makeFinalMessage(getChatInfo(), MessageTypeProto.MessageType.GET_CHAT_MESSAGE_REQUEST_VALUE));
|
||||
//获取商店信息
|
||||
// handler.sendRequest_jieling(makeFinalMessage(gameMessage, MessageTypeProto.MessageType.GET_STARE_INFOS_REQUEST_VALUE));
|
||||
// handler.sendRequest_jieling(makeFinalMessage(buyStoreItem(), MessageTypeProto.MessageType.BUY_STORE_ITEM_REQUEST_VALUE));
|
||||
|
@ -77,6 +94,62 @@ public class NettyClient {
|
|||
|
||||
}
|
||||
|
||||
private static MessageLite takeHeart() {
|
||||
PlayerInfoProto.FriendTakeHeartRequest friendGivePresentRequest = PlayerInfoProto.FriendTakeHeartRequest.newBuilder()
|
||||
.setType(1)
|
||||
.setFriendId(10004480)
|
||||
.build();
|
||||
return friendGivePresentRequest;
|
||||
}
|
||||
|
||||
private static MessageLite friendGive() {
|
||||
PlayerInfoProto.FriendGivePresentRequest friendGivePresentRequest = PlayerInfoProto.FriendGivePresentRequest.newBuilder()
|
||||
.setType(1)
|
||||
.setFriendId(10004480)
|
||||
.build();
|
||||
return friendGivePresentRequest;
|
||||
}
|
||||
|
||||
private static MessageLite delFriend() {
|
||||
PlayerInfoProto.DelFriendRequest delFriendRequest = PlayerInfoProto.DelFriendRequest.newBuilder()
|
||||
.setFriendId(10004436)
|
||||
.build();
|
||||
return delFriendRequest;
|
||||
|
||||
}
|
||||
|
||||
private static MessageLite friendInviteOperation() {
|
||||
PlayerInfoProto.FriendInviteOperationRequest inviteFriendRequest = PlayerInfoProto.FriendInviteOperationRequest.newBuilder()
|
||||
.setType(1)
|
||||
.setFriendId(10004436)
|
||||
.build();
|
||||
return inviteFriendRequest;
|
||||
}
|
||||
|
||||
private static MessageLite friendInvite() {
|
||||
List<Integer> inviteFriends = new CopyOnWriteArrayList<>();
|
||||
inviteFriends.add(10004480);
|
||||
PlayerInfoProto.InviteFriendRequest inviteFriendRequest = PlayerInfoProto.InviteFriendRequest.newBuilder()
|
||||
.addAllInviteUids(inviteFriends)
|
||||
.build();
|
||||
return inviteFriendRequest;
|
||||
}
|
||||
|
||||
private static MessageLite findUserByName() {
|
||||
PlayerInfoProto.FriendSearchRequest friendSearchRequest = PlayerInfoProto.FriendSearchRequest
|
||||
. newBuilder()
|
||||
.setName("10004481")
|
||||
.build();
|
||||
return friendSearchRequest;
|
||||
}
|
||||
|
||||
private static MessageLite getFriends() {
|
||||
PlayerInfoProto.GetFriendInfoRequest getFriendInfoRequest = PlayerInfoProto.GetFriendInfoRequest
|
||||
.newBuilder().setType(3)
|
||||
.build();
|
||||
return getFriendInfoRequest;
|
||||
}
|
||||
|
||||
private static MessageLite getChatInfo() {
|
||||
ChatProto.GetChatMessageInfoRequest getChatMessageInfoRequest = ChatProto.GetChatMessageInfoRequest.newBuilder()
|
||||
.setChatType(1)
|
||||
|
|
Loading…
Reference in New Issue