From 15c940a3e96104a4b51baea247d7383b4ad73e00 Mon Sep 17 00:00:00 2001 From: zetaloop Date: Fri, 3 Apr 2026 22:32:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20GetUserByUsername=20RPC=20=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internal/logic/getUserByUsernameLogic.go | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/app/users/rpc/internal/logic/getUserByUsernameLogic.go b/app/users/rpc/internal/logic/getUserByUsernameLogic.go index cd55ef3..5e2c195 100644 --- a/app/users/rpc/internal/logic/getUserByUsernameLogic.go +++ b/app/users/rpc/internal/logic/getUserByUsernameLogic.go @@ -2,11 +2,12 @@ package logic import ( "context" + "encoding/json" + "errors" "juwan-backend/app/users/rpc/internal/models/users" "juwan-backend/app/users/rpc/internal/svc" "juwan-backend/app/users/rpc/pb" - "juwan-backend/common/converter" "github.com/zeromicro/go-zero/core/logx" ) @@ -26,22 +27,31 @@ func NewGetUserByUsernameLogic(ctx context.Context, svcCtx *svc.ServiceContext) } func (l *GetUserByUsernameLogic) GetUserByUsername(in *pb.GetUserByUsernameReq) (*pb.GetUserByUsernameResp, error) { - pbUsers := &pb.Users{} - - //user, err := l.svcCtx.UsersModelRO.FindOneByUsername(l.ctx, in.Username) user, err := l.svcCtx.UsersModelRO.Users.Query().Where(users.UsernameEQ(in.Username)).First(l.ctx) - if err == nil || user != nil { - return &pb.GetUserByUsernameResp{ - Users: pbUsers, - }, nil - } - if err.Error() != "not found" { - return nil, err - } - - err = converter.StructToStruct(user, pbUsers) if err != nil { return nil, err } - return &pb.GetUserByUsernameResp{}, nil + + verificationStatus, err := json.Marshal(user.VerificationStatus) + if err != nil { + logx.Errorf("json marshal verification status failed: %v", err) + return nil, errors.New("marshal verification status failed") + } + + pbUser := &pb.Users{ + Id: user.ID, + Username: user.Username, + Nickname: user.Nickname, + Avatar: user.Avatar, + Bio: user.Bio, + CurrentRole: user.CurrentRole, + VerifiedRoles: user.VerifiedRoles.Elements, + VerificationStatus: string(verificationStatus), + IsAdmin: user.IsAdmin, + CreatedAt: user.CreatedAt.Unix(), + UpdatedAt: user.UpdatedAt.Unix(), + DeletedAt: user.DeletedAt.Unix(), + } + + return &pb.GetUserByUsernameResp{Users: pbUser}, nil }