Router.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package router
  2. import (
  3. "ARKItems/configs"
  4. "ARKItems/entity/ark"
  5. "ARKItems/util"
  6. "github.com/gin-gonic/gin"
  7. "github.com/spf13/cast"
  8. )
  9. var ARKConfig ark.Config
  10. // ARKShopItems 商城物品列表
  11. var ARKShopItems map[string]ark.ShopItem
  12. var ARKShopDines map[string]ark.ShopDino
  13. var ARKShopBeacons map[string]ark.ShopBeacon
  14. var ARKShopExperiences map[string]ark.ShopExperience
  15. var ARKShopUnlockengram map[string]ark.ShopUnlockengram
  16. var ARKShopCommands map[string]ark.ShopCommand
  17. func init() {
  18. //加载配置文件
  19. ARKConfig, ARKShopItems, ARKShopDines, ARKShopBeacons, ARKShopExperiences, ARKShopUnlockengram, ARKShopCommands =
  20. util.LoadArkShopConfig(configs.ARKJsonFilePath)
  21. }
  22. func LoadRouter(router *gin.Engine) {
  23. router.POST("/login", Login)
  24. router.GET("/replay", Replay)
  25. router.Use(Calibration())
  26. group := router.Group("/ark")
  27. ARKConfigRouter(group)
  28. ArkItemRouter(group)
  29. }
  30. func Replay(c *gin.Context) {
  31. configs.LoadServerConfiguration()
  32. //加载配置文件
  33. ARKConfig, ARKShopItems, ARKShopDines, ARKShopBeacons, ARKShopExperiences, ARKShopUnlockengram, ARKShopCommands =
  34. util.LoadArkShopConfig(configs.ARKJsonFilePath)
  35. }
  36. // Calibration 登录校验
  37. func Calibration() gin.HandlerFunc {
  38. return func(c *gin.Context) {
  39. header := c.GetHeader("auth-sign")
  40. if header == "" {
  41. c.JSON(200, CreateResultError(565, "用户未登录"))
  42. c.Abort()
  43. }
  44. token, err := util.ParseToken(header)
  45. if err != nil {
  46. c.JSON(200, CreateResultError(565, "token解析失败"))
  47. c.Abort()
  48. return
  49. }
  50. if !util.JudgmentUserInfo(token) {
  51. c.JSON(200, CreateResultError(565, "token过期,或无效"))
  52. c.Abort()
  53. return
  54. }
  55. }
  56. }
  57. func Login(c *gin.Context) {
  58. param := util.GetJsonAnyParam(c)
  59. username, _ := param("username")
  60. password, _ := param("password")
  61. if username == configs.Manager.Username && password == configs.Manager.Password {
  62. token, err := util.GenerateToken(cast.ToString(username))
  63. if err != nil {
  64. c.JSON(200, CreateResultError(500, "token生成失败"))
  65. return
  66. }
  67. c.JSON(200, CreateResultData(gin.H{
  68. "token": token,
  69. }))
  70. return
  71. }
  72. c.JSON(200, CreateResultError(500, "用户名或密码错误"))
  73. }
  74. //===============================================================
  75. func CreateResult() gin.H {
  76. return gin.H{
  77. "code": 200,
  78. "msg": "success",
  79. }
  80. }
  81. func CreateResultData(Data any) gin.H {
  82. return gin.H{
  83. "code": 200,
  84. "msg": "success",
  85. "data": Data,
  86. }
  87. }
  88. func CreateResultError(errCode int, errMsg string) gin.H {
  89. return gin.H{
  90. "code": errCode,
  91. "msg": errMsg,
  92. }
  93. }