diff --git a/server/imserver/friendsmgr.go b/server/imserver/friendsmgr.go index 0ad57109..577ff557 100644 --- a/server/imserver/friendsmgr.go +++ b/server/imserver/friendsmgr.go @@ -36,7 +36,11 @@ func (fm *FriendsMgr) init() { mt.Table.GameDb.GetById(0).GetPasswd(), mt.Table.GameDb.GetById(0).GetDatabase(), ) - gameDBStore.Open() + err := gameDBStore.Open() + if err != nil { + f5.GetSysLog().Info("mysql error:%s\n", err) + return + } fm.loadUsersFromDB(gameDBStore) // init friendDB @@ -47,7 +51,12 @@ func (fm *FriendsMgr) init() { mt.Table.FriendDb.GetById(0).GetPasswd(), mt.Table.FriendDb.GetById(0).GetDatabase(), ) - friendDBStore.Open() + err = friendDBStore.Open() + if err != nil { + f5.GetSysLog().Info("mysql error:%s\n", err) + return + } + // 加载好友关系表 列表 fm.loadFriendshipsFromDB(friendDBStore) // 加载等待验证好友请求 列表 @@ -158,14 +167,23 @@ func (fm *FriendsMgr) acceptFriendRequest(user1Id string, user2Id string) error // rejectFriendRequest 拒绝好友请求 func (fm *FriendsMgr) rejectFriendRequest(user1Id string, user2Id string) error { + if fm.pendingReqs[user1Id] == nil { + return errors.New("no pending friend request to reject") + } if !fm.pendingReqs[user1Id][user2Id] { return errors.New("no pending friend request from user1 to user2") } - err := fm.acceptFriendRequestToDB(user1Id, user2Id) - if err != nil { - return err + + delete(fm.pendingReqs[user1Id], user2Id) + if len(fm.pendingReqs[user2Id]) == 0 { + delete(fm.pendingReqs, user2Id) } + //err := fm.acceptFriendRequestToDB(user1Id, user2Id) + //if err != nil { + // return err + //} + //fm.pendingReqs[user1Id], user2Id //fm.pendingReqs[user2Id], user1Id diff --git a/server/imserver/friendsmgr_test.go b/server/imserver/friendsmgr_test.go index e202a7de..3d2c82a2 100644 --- a/server/imserver/friendsmgr_test.go +++ b/server/imserver/friendsmgr_test.go @@ -20,7 +20,7 @@ func TestRegisterUser(t *testing.T) { fm.registerUser("4", "panasonic") fm.registerUser("5", "nec") fm.registerUser("6", "ntt") - for i := 7; i <= 20; i++ { + for i := 7; i <= 10; i++ { fm.registerUser(fmt.Sprint(i), RandomUsername()) } fmt.Printf("users: %d \n", len(fm.users)) @@ -38,12 +38,16 @@ func TestRegisterUser(t *testing.T) { fm.addFriendRequest("3", "2") fm.addFriendRequest("4", "2") fm.addFriendRequest("5", "6") + fm.addFriendRequest("6", "2") fmt.Printf("before: pendingReqs count: %d \n", len(fm.pendingReqs)) // Accept friend requests fm.acceptFriendRequest("2", "1") fm.acceptFriendRequest("2", "3") fm.acceptFriendRequest("2", "4") + fm.rejectFriendRequest("2", "6") + + fm.acceptFriendRequest("6", "5") // Get friends googleFriends := fm.listFriend("1") @@ -51,4 +55,7 @@ func TestRegisterUser(t *testing.T) { appleFriends := fm.listFriend("2") PrintUsers("appleFriends", appleFriends) + + necFriends := fm.listFriend("5") + PrintUsers("necFriends", necFriends) }