Router.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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. ARKFileRouter(group)
  30. }
  31. func Replay(c *gin.Context) {
  32. configs.LoadServerConfiguration()
  33. //加载配置文件
  34. ARKConfig, ARKShopItems, ARKShopDines, ARKShopBeacons, ARKShopExperiences, ARKShopUnlockengram, ARKShopCommands =
  35. util.LoadArkShopConfig(configs.ARKJsonFilePath)
  36. }
  37. // Calibration 登录校验
  38. func Calibration() gin.HandlerFunc {
  39. return func(c *gin.Context) {
  40. header := c.GetHeader("auth-sign")
  41. if header == "" {
  42. c.JSON(200, CreateResultError(565, "用户未登录"))
  43. c.Abort()
  44. }
  45. token, err := util.ParseToken(header)
  46. if err != nil {
  47. c.JSON(200, CreateResultError(565, "token解析失败"))
  48. c.Abort()
  49. return
  50. }
  51. if !util.JudgmentUserInfo(token) {
  52. c.JSON(200, CreateResultError(565, "token过期,或无效"))
  53. c.Abort()
  54. return
  55. }
  56. }
  57. }
  58. func Login(c *gin.Context) {
  59. param := util.GetJsonAnyParam(c)
  60. username, _ := param("username")
  61. password, _ := param("password")
  62. if username == configs.Manager.Username && password == configs.Manager.Password {
  63. token, err := util.GenerateToken(cast.ToString(username))
  64. if err != nil {
  65. c.JSON(200, CreateResultError(500, "token生成失败"))
  66. return
  67. }
  68. c.JSON(200, CreateResultData(gin.H{
  69. "token": token,
  70. }))
  71. return
  72. }
  73. c.JSON(200, CreateResultError(500, "用户名或密码错误"))
  74. }
  75. //===============================================================
  76. func CreateResult() gin.H {
  77. return gin.H{
  78. "code": 200,
  79. "msg": "success",
  80. }
  81. }
  82. func CreateResultData(Data any) gin.H {
  83. return gin.H{
  84. "code": 200,
  85. "msg": "success",
  86. "data": Data,
  87. }
  88. }
  89. func CreateResultError(errCode int, errMsg string) gin.H {
  90. return gin.H{
  91. "code": errCode,
  92. "msg": errMsg,
  93. }
  94. }