login.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package controller
  2. import (
  3. mhayaGin "github.com/mhaya/components/gin"
  4. "github.com/mhaya/game/game_cluster/internal/code"
  5. "github.com/mhaya/game/game_cluster/internal/constant"
  6. "github.com/mhaya/game/game_cluster/internal/data"
  7. "github.com/mhaya/game/game_cluster/internal/mdb/models"
  8. "github.com/mhaya/game/game_cluster/internal/param"
  9. mhayaLogger "github.com/mhaya/logger"
  10. )
  11. func (p *Controller) login(c *mhayaGin.Context) {
  12. var pa param.LoginReq
  13. if err := c.BindJSON(&pa); err != nil {
  14. mhayaLogger.Warnf("if login err {. params=%s", pa)
  15. code.RenderResult(c, code.Error)
  16. return
  17. }
  18. token, err := p.Auth(c)
  19. if code.IsFail(err) {
  20. mhayaLogger.Warnf("if login token err {. params=%s", c.GetHeader(constant.Token))
  21. code.RenderResult(c, code.AccountTokenValidateFail)
  22. return
  23. }
  24. ctl, ok := p.GetChildActor(token.PlayerID)
  25. if !ok {
  26. code.RenderResult(c, code.Error)
  27. return
  28. }
  29. rsp := &models.Player{}
  30. token.Nickname = pa.NickName
  31. errCode := ctl.CallWait(token.TargetPath, "login", token, rsp)
  32. if code.IsFail(errCode) {
  33. mhayaLogger.Warnf("[Login] token = %s, errCode = %v", token, errCode)
  34. code.RenderResult(c, errCode)
  35. return
  36. }
  37. ret := data.AchieveTaskConfig.GetAll()
  38. for _, v := range rsp.AchieveTask {
  39. if v.Type == 1 {
  40. rsp.AchieveTask[v.ID].Url = ret[v.ID].Url
  41. }
  42. }
  43. var curId int
  44. for _, v := range rsp.AchieveTask {
  45. if v.Type == 2 {
  46. if v.Num == v.Condition.Max {
  47. continue
  48. }
  49. if curId == 0 {
  50. curId = v.ID
  51. }
  52. if v.ID < curId {
  53. curId = v.ID
  54. }
  55. }
  56. }
  57. for _, v := range rsp.AchieveTask {
  58. if v.Type == 2 {
  59. if v.ID != curId {
  60. delete(rsp.AchieveTask, v.ID)
  61. }
  62. }
  63. }
  64. code.RenderResult(c, code.OK, rsp)
  65. }
  66. func (p *Controller) start(c *mhayaGin.Context) {
  67. token, err := p.Auth(c)
  68. if code.IsFail(err) {
  69. mhayaLogger.Warnf("if start token err {. params=%s", c.GetHeader(constant.Token))
  70. code.RenderResult(c, code.AccountTokenValidateFail)
  71. return
  72. }
  73. ctl, ok := p.GetChildActor(token.PlayerID)
  74. if !ok {
  75. code.RenderResult(c, code.Error)
  76. return
  77. }
  78. rsp := &models.HomeData{}
  79. errCode := ctl.CallWait(token.TargetPath, "start", nil, rsp)
  80. if code.IsFail(errCode) {
  81. mhayaLogger.Warnf("[start] token = %v, errCode = %v", token, errCode)
  82. code.RenderResult(c, errCode)
  83. return
  84. }
  85. code.RenderResult(c, code.OK, rsp)
  86. }