Router.go 2.5 KB

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