fix friend bug

pull/351/head
wangchuxiao 3 years ago
parent c5d144bcc4
commit 1c528b0f04

@ -157,29 +157,53 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq
ErrMsg: callbackResp.ErrMsg, ErrMsg: callbackResp.ErrMsg,
}}, nil }}, nil
} }
var isSend = true
userIDList, err := rocksCache.GetFriendIDListFromCache(req.CommID.ToUserID)
if err != nil {
log.NewError(req.CommID.OperationID, "GetFriendIDListFromCache failed ", err.Error(), req.CommID.ToUserID)
return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: err.Error()}}, nil
}
userIDList2, err := rocksCache.GetFriendIDListFromCache(req.CommID.FromUserID)
if err != nil {
log.NewError(req.CommID.OperationID, "GetUserByUserID failed ", err.Error(), req.CommID.FromUserID)
return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: err.Error()}}, nil
}
//Cannot add non-existent users for _, v := range userIDList {
if _, err := imdb.GetUserByUserID(req.CommID.ToUserID); err != nil { if v == req.CommID.FromUserID {
log.NewError(req.CommID.OperationID, "GetUserByUserID failed ", err.Error(), req.CommID.ToUserID) for _, v2 := range userIDList2 {
return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil if v2 == req.CommID.ToUserID {
isSend = false
}
}
}
} }
//Establish a latest relationship in the friend request table //Cannot add non-existent users
friendRequest := db.FriendRequest{
HandleResult: 0, ReqMsg: req.ReqMsg, CreateTime: time.Now()} if isSend {
utils.CopyStructFields(&friendRequest, req.CommID) if _, err := imdb.GetUserByUserID(req.CommID.ToUserID); err != nil {
// {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }] log.NewError(req.CommID.OperationID, "GetUserByUserID failed ", err.Error(), req.CommID.ToUserID)
log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
//err := imdb.InsertFriendApplication(&friendRequest) }
err := imdb.InsertFriendApplication(&friendRequest, friendRequest := db.FriendRequest{
map[string]interface{}{"handle_result": 0, "req_msg": friendRequest.ReqMsg, "create_time": friendRequest.CreateTime, HandleResult: 0, ReqMsg: req.ReqMsg, CreateTime: time.Now()}
"handler_user_id": "", "handle_msg": "", "handle_time": utils.UnixSecondToTime(0), "ex": ""}) utils.CopyStructFields(&friendRequest, req.CommID)
if err != nil { // {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }]
log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest)
return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil //err := imdb.InsertFriendApplication(&friendRequest)
err := imdb.InsertFriendApplication(&friendRequest,
map[string]interface{}{"handle_result": 0, "req_msg": friendRequest.ReqMsg, "create_time": friendRequest.CreateTime,
"handler_user_id": "", "handle_msg": "", "handle_time": utils.UnixSecondToTime(0), "ex": ""})
if err != nil {
log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest)
return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
}
chat.FriendApplicationNotification(req)
} }
//Establish a latest relationship in the friend request table
chat.FriendApplicationNotification(req)
return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{}}, nil return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{}}, nil
} }

Loading…
Cancel
Save