actor_account.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package account
  2. import (
  3. cfacade "github.com/mhaya/facade"
  4. "github.com/mhaya/game/game_cluster/internal/code"
  5. "github.com/mhaya/game/game_cluster/internal/mdb/models"
  6. "github.com/mhaya/game/game_cluster/internal/param"
  7. cactor "github.com/mhaya/net/actor"
  8. "strings"
  9. )
  10. type (
  11. ActorAccount struct {
  12. cactor.Base
  13. }
  14. )
  15. func (p *ActorAccount) AliasID() string {
  16. return "account"
  17. }
  18. // OnInit center为后端节点,不直接与客户端通信,所以了一些remote函数,供RPC调用
  19. func (p *ActorAccount) OnInit() {
  20. p.Remote().Register("registerAccount", p.registerOrLoinAccount)
  21. }
  22. // registerDevAccount 注册开发者帐号
  23. func (p *ActorAccount) registerOrLoinAccount(req *param.LoginReq) (*param.LoginResp, int32) {
  24. if strings.TrimSpace(req.OpenID) == "" || strings.TrimSpace(req.IP) == "" {
  25. return nil, code.Error
  26. }
  27. account, err := models.AccountRegisterOrLogin(req)
  28. if err > 0 {
  29. return nil, code.Error
  30. }
  31. return &param.LoginResp{
  32. UserName: account.UserName,
  33. OpenId: account.OpenId,
  34. TargetPath: cfacade.NewChildPath(10001, "player", account.UserName),
  35. }, code.OK
  36. }