user.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package controller
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "github.com/google/uuid"
  6. "iot_manager_service/app/user/model"
  7. "iot_manager_service/app/user/service"
  8. "iot_manager_service/util/cache"
  9. "iot_manager_service/util/common"
  10. "iot_manager_service/util/token"
  11. "iot_manager_service/util/websocket"
  12. "net/http"
  13. "strconv"
  14. )
  15. var UserController = new(user)
  16. type user struct{}
  17. func (u *user) Login(c *gin.Context) {
  18. loginUser := model.LoginUser{}
  19. if err := c.ShouldBindJSON(&loginUser); err != nil {
  20. c.JSON(http.StatusOK, common.ParamsInvalidResponse(err.Error(), nil))
  21. return
  22. }
  23. info := service.UserService.Login(loginUser.Account, loginUser.PassWord)
  24. c.JSON(http.StatusOK, info)
  25. }
  26. func (u *user) GetPublicKey(c *gin.Context) {
  27. key := service.UserService.GetPublicKey()
  28. c.JSON(http.StatusOK, key)
  29. }
  30. func (u *user) GetDeptUsers(c *gin.Context) {
  31. depts := model.ReqDepts{}
  32. err := c.ShouldBindJSON(&depts)
  33. if err != nil {
  34. c.JSON(http.StatusOK, common.ParamsInvalidResponse(err.Error(), nil))
  35. return
  36. }
  37. users := service.UserService.GetDeptUsers(depts.Depts)
  38. c.JSON(http.StatusOK, users)
  39. }
  40. func (u *user) GetNewTokens(c *gin.Context) {
  41. header := c.GetHeader("Authorization")
  42. claims, _ := token.JwtClaims.ParseJwtToken(header)
  43. nowUser, _ := cache.GetNowUser(claims.ID)
  44. UUID := uuid.New().String()
  45. accessToken, _ := token.JwtClaims.CreateJwtToken(strconv.Itoa(nowUser.User.ID), nowUser.User.UserName, UUID, 1)
  46. refreshToken, _ := token.JwtClaims.CreateJwtToken(strconv.Itoa(nowUser.User.ID), nowUser.User.UserName, UUID, 24*7)
  47. tokens := make(map[string]interface{})
  48. tokens["accessToken"] = accessToken
  49. tokens["refreshToken"] = refreshToken
  50. c.JSON(http.StatusOK, common.SuccessResponse("获取成功", tokens))
  51. }
  52. func (u *user) Logout(c *gin.Context) {
  53. header := c.GetHeader("Authorization")
  54. claims, _ := token.JwtClaims.ParseJwtToken(header)
  55. err := cache.DeleteToken(claims.ID)
  56. if err != nil {
  57. c.JSON(http.StatusOK, common.ParamsInvalidResponse(err.Error(), nil))
  58. return
  59. }
  60. //关闭websocket连接
  61. websocket.CloseConn(claims.ID)
  62. c.JSON(http.StatusOK, common.SuccessResponse("退出成功", nil))
  63. }
  64. func (u *user) GetUser(c *gin.Context) {
  65. fmt.Println("demo。。。")
  66. }