package logic import ( "context" "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" ) type GetUserByUsernameLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewGetUserByUsernameLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserByUsernameLogic { return &GetUserByUsernameLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } 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 }