feat: minilogin改造
This commit is contained in:
@@ -23,18 +23,6 @@ func NewCreateUserLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Create
|
||||
}
|
||||
|
||||
func (l *CreateUserLogic) CreateUser(in *system.CreateUserReq) (*system.CreateUserResp, error) {
|
||||
// 如果有 OpenId,先查是否已存在(社交登录场景:已有用户直接返回)
|
||||
if in.OpenId != "" {
|
||||
var existing sysModel.SundynixUser
|
||||
if err := l.svcCtx.DB.Where("open_id = ?", in.OpenId).First(&existing).Error; err == nil {
|
||||
// 用户已存在,更新 session_key 后直接返回
|
||||
if in.SessionKey != "" {
|
||||
l.svcCtx.DB.Model(&existing).Update("session_key", in.SessionKey)
|
||||
}
|
||||
return &system.CreateUserResp{User: convertUserToProto(&existing)}, nil
|
||||
}
|
||||
}
|
||||
|
||||
// 如果有 Account,检查是否重复(后台创建用户场景:禁止重复)
|
||||
if in.Account != "" {
|
||||
var count int64
|
||||
@@ -45,12 +33,11 @@ func (l *CreateUserLogic) CreateUser(in *system.CreateUserReq) (*system.CreateUs
|
||||
}
|
||||
|
||||
u := sysModel.SundynixUser{
|
||||
Name: in.Name,
|
||||
Account: in.Account,
|
||||
Phone: in.Phone,
|
||||
OpenID: in.OpenId,
|
||||
SessionKey: in.SessionKey,
|
||||
ClientID: in.ClientId,
|
||||
Name: in.Name,
|
||||
Account: in.Account,
|
||||
Phone: in.Phone,
|
||||
NickName: in.NickName,
|
||||
ClientID: in.ClientId,
|
||||
}
|
||||
if in.Password != "" {
|
||||
u.Password = hash.BcryptHash(in.Password)
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
package logic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
sysModel "sundynix-micro-go/app/system/model"
|
||||
"sundynix-micro-go/app/system/rpc/internal/svc"
|
||||
"sundynix-micro-go/app/system/rpc/system"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type GetUserByOpenIdLogic struct {
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
logx.Logger
|
||||
}
|
||||
|
||||
func NewGetUserByOpenIdLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserByOpenIdLogic {
|
||||
return &GetUserByOpenIdLogic{ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx)}
|
||||
}
|
||||
|
||||
func (l *GetUserByOpenIdLogic) GetUserByOpenId(in *system.GetUserByOpenIdReq) (*system.GetUserByOpenIdResp, error) {
|
||||
var u sysModel.SundynixUser
|
||||
if err := l.svcCtx.DB.Where("open_id = ?", in.OpenId).First(&u).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return nil, status.Error(codes.NotFound, "用户不存在")
|
||||
}
|
||||
return nil, status.Error(codes.Internal, "查询失败")
|
||||
}
|
||||
return &system.GetUserByOpenIdResp{User: convertUserToProto(&u)}, nil
|
||||
}
|
||||
@@ -8,21 +8,17 @@ import (
|
||||
// convertUserToProto 将 model 转为 proto UserInfo
|
||||
func convertUserToProto(u *sysModel.SundynixUser) *system.UserInfo {
|
||||
info := &system.UserInfo{
|
||||
Id: u.ID,
|
||||
TenantId: u.TenantID,
|
||||
ClientId: u.ClientID,
|
||||
Name: u.Name,
|
||||
Account: u.Account,
|
||||
NickName: u.NickName,
|
||||
Phone: u.Phone,
|
||||
SessionKey: u.SessionKey,
|
||||
UnionId: u.UnionID,
|
||||
OpenId: u.OpenID,
|
||||
SaOpenId: u.SaOpenID,
|
||||
AvatarId: u.AvatarID,
|
||||
Gender: int32(u.Gender),
|
||||
CreatedAt: u.CreatedAt.Unix(),
|
||||
UpdatedAt: u.UpdatedAt.Unix(),
|
||||
Id: u.ID,
|
||||
TenantId: u.TenantID,
|
||||
ClientId: u.ClientID,
|
||||
Name: u.Name,
|
||||
Account: u.Account,
|
||||
NickName: u.NickName,
|
||||
Phone: u.Phone,
|
||||
AvatarId: u.AvatarID,
|
||||
Gender: int32(u.Gender),
|
||||
CreatedAt: u.CreatedAt.Unix(),
|
||||
UpdatedAt: u.UpdatedAt.Unix(),
|
||||
}
|
||||
if u.LastLoginAt != nil {
|
||||
info.LastLoginAt = u.LastLoginAt.Unix()
|
||||
|
||||
@@ -29,11 +29,6 @@ func (s *SystemServiceServer) GetUserById(ctx context.Context, in *system.GetUse
|
||||
return l.GetUserById(in)
|
||||
}
|
||||
|
||||
func (s *SystemServiceServer) GetUserByOpenId(ctx context.Context, in *system.GetUserByOpenIdReq) (*system.GetUserByOpenIdResp, error) {
|
||||
l := logic.NewGetUserByOpenIdLogic(ctx, s.svcCtx)
|
||||
return l.GetUserByOpenId(in)
|
||||
}
|
||||
|
||||
func (s *SystemServiceServer) LoginByAccount(ctx context.Context, in *system.LoginByAccountReq) (*system.LoginByAccountResp, error) {
|
||||
l := logic.NewLoginByAccountLogic(ctx, s.svcCtx)
|
||||
return l.LoginByAccount(in)
|
||||
|
||||
@@ -259,10 +259,6 @@ message UserInfo {
|
||||
string account = 5;
|
||||
string nickName = 6;
|
||||
string phone = 7;
|
||||
string sessionKey = 8;
|
||||
string unionId = 9;
|
||||
string openId = 10;
|
||||
string saOpenId = 11;
|
||||
string avatarId = 12;
|
||||
int32 gender = 13;
|
||||
string country = 14;
|
||||
@@ -287,20 +283,11 @@ message GetUserByIdResp {
|
||||
UserInfo user = 1;
|
||||
}
|
||||
|
||||
message GetUserByOpenIdReq {
|
||||
string openId = 1;
|
||||
}
|
||||
|
||||
message GetUserByOpenIdResp {
|
||||
UserInfo user = 1;
|
||||
}
|
||||
|
||||
message CreateUserReq {
|
||||
string name = 1;
|
||||
string account = 2;
|
||||
string password = 3;
|
||||
string openId = 4;
|
||||
string sessionKey = 5;
|
||||
string nickName = 4;
|
||||
string clientId = 6;
|
||||
string phone = 7;
|
||||
}
|
||||
@@ -392,7 +379,6 @@ message GetClientByIdResp {
|
||||
service SystemService {
|
||||
// --- 用户 ---
|
||||
rpc GetUserById(GetUserByIdReq) returns (GetUserByIdResp);
|
||||
rpc GetUserByOpenId(GetUserByOpenIdReq) returns (GetUserByOpenIdResp);
|
||||
rpc LoginByAccount(LoginByAccountReq) returns (LoginByAccountResp);
|
||||
rpc CreateUser(CreateUserReq) returns (CreateUserResp);
|
||||
rpc UpdateUser(UpdateUserReq) returns (CommonResp);
|
||||
|
||||
+278
-426
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.6.1
|
||||
// - protoc v7.34.1
|
||||
// source: pb/system.proto
|
||||
// source: app/system/rpc/pb/system.proto
|
||||
|
||||
package system
|
||||
|
||||
@@ -20,7 +20,6 @@ const _ = grpc.SupportPackageIsVersion9
|
||||
|
||||
const (
|
||||
SystemService_GetUserById_FullMethodName = "/system.SystemService/GetUserById"
|
||||
SystemService_GetUserByOpenId_FullMethodName = "/system.SystemService/GetUserByOpenId"
|
||||
SystemService_LoginByAccount_FullMethodName = "/system.SystemService/LoginByAccount"
|
||||
SystemService_CreateUser_FullMethodName = "/system.SystemService/CreateUser"
|
||||
SystemService_UpdateUser_FullMethodName = "/system.SystemService/UpdateUser"
|
||||
@@ -61,7 +60,6 @@ const (
|
||||
type SystemServiceClient interface {
|
||||
// --- 用户 ---
|
||||
GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error)
|
||||
GetUserByOpenId(ctx context.Context, in *GetUserByOpenIdReq, opts ...grpc.CallOption) (*GetUserByOpenIdResp, error)
|
||||
LoginByAccount(ctx context.Context, in *LoginByAccountReq, opts ...grpc.CallOption) (*LoginByAccountResp, error)
|
||||
CreateUser(ctx context.Context, in *CreateUserReq, opts ...grpc.CallOption) (*CreateUserResp, error)
|
||||
UpdateUser(ctx context.Context, in *UpdateUserReq, opts ...grpc.CallOption) (*CommonResp, error)
|
||||
@@ -120,16 +118,6 @@ func (c *systemServiceClient) GetUserById(ctx context.Context, in *GetUserByIdRe
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *systemServiceClient) GetUserByOpenId(ctx context.Context, in *GetUserByOpenIdReq, opts ...grpc.CallOption) (*GetUserByOpenIdResp, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(GetUserByOpenIdResp)
|
||||
err := c.cc.Invoke(ctx, SystemService_GetUserByOpenId_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *systemServiceClient) LoginByAccount(ctx context.Context, in *LoginByAccountReq, opts ...grpc.CallOption) (*LoginByAccountResp, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(LoginByAccountResp)
|
||||
@@ -456,7 +444,6 @@ func (c *systemServiceClient) GetOperationRecordList(ctx context.Context, in *Op
|
||||
type SystemServiceServer interface {
|
||||
// --- 用户 ---
|
||||
GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error)
|
||||
GetUserByOpenId(context.Context, *GetUserByOpenIdReq) (*GetUserByOpenIdResp, error)
|
||||
LoginByAccount(context.Context, *LoginByAccountReq) (*LoginByAccountResp, error)
|
||||
CreateUser(context.Context, *CreateUserReq) (*CreateUserResp, error)
|
||||
UpdateUser(context.Context, *UpdateUserReq) (*CommonResp, error)
|
||||
@@ -508,9 +495,6 @@ type UnimplementedSystemServiceServer struct{}
|
||||
func (UnimplementedSystemServiceServer) GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error) {
|
||||
return nil, status.Error(codes.Unimplemented, "method GetUserById not implemented")
|
||||
}
|
||||
func (UnimplementedSystemServiceServer) GetUserByOpenId(context.Context, *GetUserByOpenIdReq) (*GetUserByOpenIdResp, error) {
|
||||
return nil, status.Error(codes.Unimplemented, "method GetUserByOpenId not implemented")
|
||||
}
|
||||
func (UnimplementedSystemServiceServer) LoginByAccount(context.Context, *LoginByAccountReq) (*LoginByAccountResp, error) {
|
||||
return nil, status.Error(codes.Unimplemented, "method LoginByAccount not implemented")
|
||||
}
|
||||
@@ -646,24 +630,6 @@ func _SystemService_GetUserById_Handler(srv interface{}, ctx context.Context, de
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SystemService_GetUserByOpenId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(GetUserByOpenIdReq)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SystemServiceServer).GetUserByOpenId(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: SystemService_GetUserByOpenId_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SystemServiceServer).GetUserByOpenId(ctx, req.(*GetUserByOpenIdReq))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SystemService_LoginByAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(LoginByAccountReq)
|
||||
if err := dec(in); err != nil {
|
||||
@@ -1251,10 +1217,6 @@ var SystemService_ServiceDesc = grpc.ServiceDesc{
|
||||
MethodName: "GetUserById",
|
||||
Handler: _SystemService_GetUserById_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetUserByOpenId",
|
||||
Handler: _SystemService_GetUserByOpenId_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "LoginByAccount",
|
||||
Handler: _SystemService_LoginByAccount_Handler,
|
||||
@@ -1385,5 +1347,5 @@ var SystemService_ServiceDesc = grpc.ServiceDesc{
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "pb/system.proto",
|
||||
Metadata: "app/system/rpc/pb/system.proto",
|
||||
}
|
||||
|
||||
@@ -36,14 +36,10 @@ type (
|
||||
GetMenusByRoleIdReq = system.GetMenusByRoleIdReq
|
||||
GetMenusByRoleIdResp = system.GetMenusByRoleIdResp
|
||||
GetRoleDetailReq = system.GetRoleDetailReq
|
||||
GetRoleListReq = system.RoleListReq
|
||||
GetRoleListResp = system.RoleListResp
|
||||
GetRolesByUserIdReq = system.GetRolesByUserIdReq
|
||||
GetRolesByUserIdResp = system.GetRolesByUserIdResp
|
||||
GetUserByIdReq = system.GetUserByIdReq
|
||||
GetUserByIdResp = system.GetUserByIdResp
|
||||
GetUserByOpenIdReq = system.GetUserByOpenIdReq
|
||||
GetUserByOpenIdResp = system.GetUserByOpenIdResp
|
||||
GetUserDetailReq = system.GetUserDetailReq
|
||||
GetUserListReq = system.GetUserListReq
|
||||
GetUserListResp = system.GetUserListResp
|
||||
@@ -72,7 +68,6 @@ type (
|
||||
SystemService interface {
|
||||
// --- 用户 ---
|
||||
GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error)
|
||||
GetUserByOpenId(ctx context.Context, in *GetUserByOpenIdReq, opts ...grpc.CallOption) (*GetUserByOpenIdResp, error)
|
||||
LoginByAccount(ctx context.Context, in *LoginByAccountReq, opts ...grpc.CallOption) (*LoginByAccountResp, error)
|
||||
CreateUser(ctx context.Context, in *CreateUserReq, opts ...grpc.CallOption) (*CreateUserResp, error)
|
||||
UpdateUser(ctx context.Context, in *UpdateUserReq, opts ...grpc.CallOption) (*CommonResp, error)
|
||||
@@ -130,11 +125,6 @@ func (m *defaultSystemService) GetUserById(ctx context.Context, in *GetUserByIdR
|
||||
return client.GetUserById(ctx, in, opts...)
|
||||
}
|
||||
|
||||
func (m *defaultSystemService) GetUserByOpenId(ctx context.Context, in *GetUserByOpenIdReq, opts ...grpc.CallOption) (*GetUserByOpenIdResp, error) {
|
||||
client := system.NewSystemServiceClient(m.cli.Conn())
|
||||
return client.GetUserByOpenId(ctx, in, opts...)
|
||||
}
|
||||
|
||||
func (m *defaultSystemService) LoginByAccount(ctx context.Context, in *LoginByAccountReq, opts ...grpc.CallOption) (*LoginByAccountResp, error) {
|
||||
client := system.NewSystemServiceClient(m.cli.Conn())
|
||||
return client.LoginByAccount(ctx, in, opts...)
|
||||
|
||||
Reference in New Issue
Block a user