mingyang-admin-iot-app/api/internal/logic/user_public/login_logic.go

59 lines
1.4 KiB
Go

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
}