go_dreamfactory/modules/user/login_comp.go
2022-06-06 18:42:03 +08:00

68 lines
1.4 KiB
Go

package user
import (
"context"
"go_dreamfactory/comm"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/cache"
"go_dreamfactory/sys/db"
"github.com/liwei1dao/lego/sys/log"
"go.mongodb.org/mongo-driver/mongo"
)
type LoginComp struct {
modules.MComp_GateComp
}
//登录
func (this *LoginComp) Login(ctx context.Context, session comm.IUserSession, req *pb.UserLoginReq) error {
log.Debugf("User - Login: session:%v rsp:%v", session.ToString(), req)
db_user, err := db.Defsys.User_FindUserByAccount(req.Name)
if err != nil {
if err != mongo.ErrNoDocuments {
return err
}
}
if db_user.UserId == 0 {
db_user.Account = req.Name
err = db.Defsys.User_CreateUser(db_user)
if err != nil {
return err
}
}
session.Build(db_user.UserId)
cache_user := &pb.Cache_UserData{
SessionId: session.GetSessionId(),
GatewayServiceId: session.GetGatewayServiceId(),
UserData: db_user,
}
err = cache.Defsys.User_UpdateUser(cache_user)
if err != nil {
return err
}
session.SendMsg("login", "login", &pb.UserLoginResp{
Code: comm.ErrorCode_Success,
Data: &pb.Cache_UserData{
UserData: &pb.DB_UserData{
UserId: db_user.UserId,
},
},
})
return nil
}
//注销
func (this *LoginComp) Logout(ctx context.Context, session comm.IUserSession, rsp *pb.UserLoginReq) error {
log.Debugf("User - Logout: session:%v rsp:%v", session.ToString(), rsp)
return nil
}