From ac8062b7c69e266c72b03dfa1996ba994f5b5c83 Mon Sep 17 00:00:00 2001 From: hawklin2017 <32898629+hawklin2017@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:04:07 +0800 Subject: [PATCH] full name --- internal/rpc/user/user.go | 2 ++ pkg/common/convert/user.go | 42 +++++++++++++++++++++++--------- pkg/common/storage/model/user.go | 1 + protocol | 2 +- 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index f889214ad..84e6f88e2 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -590,6 +590,7 @@ func (s *userServer) UserRegister(ctx context.Context, req *pbuser.UserRegisterR now := time.Now() users := make([]*tablerelation.User, 0, len(req.Users)) for _, user := range req.Users { + fullName := convert.BuildFullName(user.FirstName, user.LastName) users = append(users, &tablerelation.User{ UserID: user.UserID, Nickname: user.Nickname, @@ -600,6 +601,7 @@ func (s *userServer) UserRegister(ctx context.Context, req *pbuser.UserRegisterR GlobalRecvMsgOpt: user.GlobalRecvMsgOpt, FirstName: user.FirstName, LastName: user.LastName, + FullName: fullName, }) } if err := s.db.Create(ctx, users); err != nil { diff --git a/pkg/common/convert/user.go b/pkg/common/convert/user.go index a85e025d1..4cf094c24 100644 --- a/pkg/common/convert/user.go +++ b/pkg/common/convert/user.go @@ -15,26 +15,38 @@ package convert import ( + "strings" + "time" + relationtb "github.com/openimsdk/open-im-server/v3/pkg/common/storage/model" "github.com/openimsdk/tools/utils/datautil" - "time" "github.com/openimsdk/protocol/sdkws" ) +func BuildFullName(firstName, lastName string) string { + if firstName == "" { + return lastName + } + if lastName == "" { + return firstName + } + return strings.TrimSpace(firstName + " " + lastName) +} + func UserDB2Pb(user *relationtb.User) *sdkws.UserInfo { return &sdkws.UserInfo{ - UserID: user.UserID, - Nickname: user.Nickname, - FaceURL: user.FaceURL, - Ex: user.Ex, - CreateTime: user.CreateTime.UnixMilli(), - AppMangerLevel: user.AppMangerLevel, - GlobalRecvMsgOpt: user.GlobalRecvMsgOpt, - FirstName: user.FirstName, - LastName: user.LastName, - Phone: user.Phone, - PhoneVisibility: user.PhoneVisibility, + UserID: user.UserID, + Nickname: user.Nickname, + FaceURL: user.FaceURL, + Ex: user.Ex, + CreateTime: user.CreateTime.UnixMilli(), + AppMangerLevel: user.AppMangerLevel, + GlobalRecvMsgOpt: user.GlobalRecvMsgOpt, + FirstName: user.FirstName, + LastName: user.LastName, + Phone: user.Phone, + PhoneVisibility: user.PhoneVisibility, CallAcceptSetting: user.CallAcceptSetting, MsgReceiveSetting: user.MsgReceiveSetting, } @@ -45,6 +57,7 @@ func UsersDB2Pb(users []*relationtb.User) []*sdkws.UserInfo { } func UserPb2DB(user *sdkws.UserInfo) *relationtb.User { + fullName := BuildFullName(user.FirstName, user.LastName) return &relationtb.User{ UserID: user.UserID, Nickname: user.Nickname, @@ -55,6 +68,7 @@ func UserPb2DB(user *sdkws.UserInfo) *relationtb.User { GlobalRecvMsgOpt: user.GlobalRecvMsgOpt, FirstName: user.FirstName, LastName: user.LastName, + FullName: fullName, } } @@ -79,6 +93,10 @@ func UserPb2DBMap(user *sdkws.UserInfo) map[string]any { val[key] = v } } + if user.FirstName != "" || user.LastName != "" { + fullName := BuildFullName(user.FirstName, user.LastName) + val["full_name"] = fullName + } return val } func UserPb2DBMapEx(user *sdkws.UserInfoWithEx) map[string]any { diff --git a/pkg/common/storage/model/user.go b/pkg/common/storage/model/user.go index 3a54be167..8c2e18167 100644 --- a/pkg/common/storage/model/user.go +++ b/pkg/common/storage/model/user.go @@ -52,6 +52,7 @@ type User struct { CreateTime time.Time `bson:"create_time"` FirstName string `bson:"first_name"` LastName string `bson:"last_name"` + FullName string `bson:"full_name"` Phone string `bson:"phone"` PhoneVisibility int32 `bson:"phone_visibility"` CallAcceptSetting int32 `bson:"call_accept_setting"` diff --git a/protocol b/protocol index a186c4a07..ba5857cc0 160000 --- a/protocol +++ b/protocol @@ -1 +1 @@ -Subproject commit a186c4a0722d8ea983dacd34b6664f23e23dc18e +Subproject commit ba5857cc0817dcfaf6892af0c542385b71f46377