add:
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
"juwan-backend/app/users/api/internal/svc"
|
||||
"juwan-backend/app/users/api/internal/types"
|
||||
"juwan-backend/app/users/rpc/pb"
|
||||
"juwan-backend/common/utils"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
@@ -31,25 +32,44 @@ func NewRegisterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Register
|
||||
}
|
||||
|
||||
func (l *RegisterLogic) Register(req *types.RegisterReq) (resp *types.RegisterResp, err error) {
|
||||
// todo: add your logic here and delete this line
|
||||
user, err := l.svcCtx.UserRpc.GetUserByUsername(l.ctx, &pb.GetUserByUsernameReq{
|
||||
// 检查用户是否已存在
|
||||
existingUser, err := l.svcCtx.UserRpc.GetUserByUsername(l.ctx, &pb.GetUserByUsernameReq{
|
||||
Username: req.Username,
|
||||
})
|
||||
if err == nil || user != nil {
|
||||
return nil, errors.New("User is exisit")
|
||||
}
|
||||
id, err := uuid.NewRandom()
|
||||
if err != nil {
|
||||
return nil, errors.New("Register is failed")
|
||||
if err == nil && existingUser != nil {
|
||||
return nil, errors.New("用户已存在")
|
||||
}
|
||||
|
||||
_, err = l.svcCtx.UserRpc.AddUsers(l.ctx, &pb.AddUsersReq{
|
||||
UserId: id.String(),
|
||||
// 生成用户ID
|
||||
userId, err := uuid.NewRandom()
|
||||
if err != nil {
|
||||
return nil, errors.New("注册失败:无法生成用户ID")
|
||||
}
|
||||
|
||||
// 加密密码
|
||||
hashedPassword, err := utils.HashPassword(req.Password)
|
||||
if err != nil {
|
||||
return nil, errors.New("注册失败:密码加密失败")
|
||||
}
|
||||
|
||||
// 创建新用户
|
||||
newUser, err := l.svcCtx.UserRpc.AddUsers(l.ctx, &pb.AddUsersReq{
|
||||
UserId: userId.String(),
|
||||
Username: req.Username,
|
||||
Passwd: req.Password,
|
||||
Passwd: hashedPassword,
|
||||
Phone: req.Phone,
|
||||
State: true,
|
||||
})
|
||||
if err != nil {
|
||||
l.Errorf("AddUsers failed: %v", err)
|
||||
return nil, errors.New("注册失败:创建用户失败")
|
||||
}
|
||||
|
||||
return
|
||||
// 返回响应
|
||||
return &types.RegisterResp{
|
||||
UserId: int64(newUser.), // RPC 返回的可能是用户信息,这里简化处理
|
||||
Username: req.Username,
|
||||
Email: req.Email,
|
||||
Message: "注册成功",
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user