package user_public import ( "context" "mingyang-admin-app-rpc/types/app" "mingyang-admin-app-api/internal/svc" "mingyang-admin-app-api/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type LoginLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewLoginLogic(ctx context.Context, svcCtx *svc.ServiceContext) *LoginLogic { return &LoginLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *LoginLogic) Login(req *types.LoginReq) (resp *types.LoginResp, err error) { loginUser, err := l.svcCtx.AppRpc.LoginUser(l.ctx, &app.LoginRequest{ Username: &req.UserName, Password: &req.Password, ClientIp: &req.ClientIP, LoginTyp: &req.LoginType, LoginPlatform: &req.LoginPlatform, }) if err != nil { return nil, err } token := loginUser.AuthToken user := loginUser.User return &types.LoginResp{ BaseMsgResp: types.BaseMsgResp{ Code: 200, }, AuthToken: &types.AuthToken{ AccessToken: token.AccessToken, RefreshToken: token.RefreshToken, TokenType: token.TokenType, AccessTokenExpires: token.AccessTokenExpires.Seconds, RefreshTokenExpires: token.RefreshTokenExpires.Seconds, }, UserInfo: &types.UserInfo{ Username: user.Username, NickName: user.NickName, Avatar: user.Avatar, Gender: user.Gender, }, }, nil }