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 }