qmbz.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package game
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "ordonnance/common/auth"
  6. "ordonnance/common/db"
  7. "ordonnance/common/util"
  8. "ordonnance/logger"
  9. "ordonnance/server/dao"
  10. "ordonnance/server/model"
  11. "ordonnance/server/response"
  12. "strconv"
  13. "strings"
  14. "time"
  15. "github.com/gin-gonic/gin"
  16. )
  17. // 注册
  18. func Register(c *gin.Context) {
  19. username, _ := c.GetPostForm("username")
  20. password, _ := c.GetPostForm("password")
  21. if len(password) != 32 || len(username) < 3 {
  22. response.ReturnErrMsg(response.PASSWD_ERR, c)
  23. return
  24. }
  25. if _, err := dao.GetUserByName(username); err == nil {
  26. logger.Info("user exsit", err.Error())
  27. response.ReturnErrMsg(response.PLAYER_EXIST, c)
  28. return
  29. }
  30. user := model.User{
  31. Username: username,
  32. Nickname: username,
  33. Password: password,
  34. }
  35. if err := db.GDB.Create(&user).Error; err != nil {
  36. logger.Info("create err", err.Error())
  37. response.ReturnErrMsg(response.PLAYER_EXIST, c)
  38. return
  39. }
  40. curtime := int(time.Now().UnixNano() / 1000000)
  41. data := fmt.Sprintf("%d|%d|-1", user.UserId, curtime)
  42. msg := response.NewMessage(response.OK)
  43. msg.Token = auth.AesEncrypt(data)
  44. msg.Uid = user.UserId
  45. c.JSON(200, msg)
  46. }
  47. // 登入
  48. func Login(c *gin.Context) {
  49. username, _ := c.GetPostForm("username")
  50. password, _ := c.GetPostForm("password")
  51. if len(password) != 32 || len(username) < 3 {
  52. response.ReturnErrMsg(response.PASSWD_ERR, c)
  53. return
  54. }
  55. user, err := dao.GetUserByName(username)
  56. if err != nil {
  57. logger.Info("player null", err.Error())
  58. response.ReturnErrMsg(response.PLAYER_NOT_EXIST, c)
  59. return
  60. }
  61. curtime := int(time.Now().UnixNano() / 1000000)
  62. if user.Password != password {
  63. logger.Info("passwd err ", user.Password, password)
  64. response.ReturnErrMsg(response.PASSWD_ERR, c)
  65. return
  66. }
  67. data := strconv.Itoa(user.UserId) + "|" + strconv.Itoa(curtime) + "|-1"
  68. token := auth.AesEncrypt(data)
  69. msg := response.NewMessage(response.OK)
  70. msg.Token = token
  71. msg.Uid = user.UserId
  72. if v, err := dao.GetValidBulletin(); err == nil {
  73. msg.Data = v
  74. }
  75. c.JSON(200, msg)
  76. }
  77. // 获取服务器
  78. func ServerList(c *gin.Context) {
  79. token := c.PostForm("token")
  80. tokenData, err := util.ParseToken(token)
  81. if err != nil {
  82. logger.Info("errtoken err ", err.Error())
  83. response.ReturnErrMsg(response.ERR_PARM, c)
  84. return
  85. }
  86. version := c.DefaultPostForm("version", "A")
  87. userID := tokenData.UserId
  88. historyList, err := dao.GetIUserServerByUid(userID, version)
  89. if err != nil {
  90. logger.Info("historyList err", err.Error())
  91. historyList = []model.LUserServer{}
  92. }
  93. serverList, err := dao.GetAllServer(version)
  94. if err != nil {
  95. logger.Info("serverList err", err.Error())
  96. serverList = []model.TServer{}
  97. }
  98. retData := map[string]interface{}{
  99. "historyList": historyList,
  100. "serverList": serverList,
  101. }
  102. c.JSON(200, retData)
  103. }
  104. func GetGate(c *gin.Context) {
  105. tokenData, err := util.ParseToken(c.PostForm("token"))
  106. if err != nil {
  107. logger.Info("errtoken err ", err.Error())
  108. response.ReturnErrMsg(response.ERR_PARM, c)
  109. return
  110. }
  111. version := c.DefaultPostForm("version", "B")
  112. version = strings.TrimSpace(version)
  113. serverID := c.PostForm("serverId")
  114. data := fmt.Sprintf("%v|%v|%v|%v", tokenData.UserId, time.Now().UnixNano()/1000000, 0, 2)
  115. token := auth.AesEncrypt(data)
  116. rowServer, _ := dao.GetServerInfo(serverID)
  117. retData := model.Server{
  118. Server: map[string]string{"0": rowServer.Name},
  119. Net: model.ServerNet{},
  120. GamePlatform: rowServer.GamePlatform,
  121. Path: model.ServerPath{},
  122. IsDebugVersions: 1 == rowServer.IsDebugVersions,
  123. Tpl: model.ServerTpl{},
  124. Opendns: []string{},
  125. Token: token,
  126. RealAuth: 2,
  127. }
  128. json.Unmarshal([]byte(rowServer.Net), &retData.Net)
  129. json.Unmarshal([]byte(rowServer.Tpl), &retData.Tpl)
  130. json.Unmarshal([]byte(rowServer.Opendns), &retData.Opendns)
  131. msg := response.NewMessage(response.OK)
  132. // tmpData, _ := util.ParseToken(token)
  133. msg.Data = retData
  134. c.JSON(200, msg)
  135. }