qmbz.go 3.4 KB

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