user.go 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package controller
  2. import (
  3. "encoding/base64"
  4. "fmt"
  5. "github.com/gin-gonic/gin"
  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/rsa"
  11. "iot_manager_service/util/token"
  12. "iot_manager_service/util/websocket"
  13. "net/http"
  14. "strconv"
  15. )
  16. var SysUserController = new(user)
  17. type user struct{}
  18. func (u *user) Login(c *gin.Context) {
  19. loginSysUser := model.LoginSysUser{}
  20. if err := c.ShouldBindJSON(&loginSysUser); err != nil {
  21. c.JSON(http.StatusOK, common.ParamsInvalidResponse(err.Error(), nil))
  22. return
  23. }
  24. info := service.SysUserService.Login(loginSysUser.UserName, loginSysUser.PassWord)
  25. c.JSON(http.StatusOK, info)
  26. }
  27. func (u *user) GetPublicKey(c *gin.Context) {
  28. key := service.SysUserService.GetPublicKey()
  29. r := rsa.RSA{}
  30. publicKey := r.ReturnPublicKey()
  31. fmt.Print("key", publicKey)
  32. encryption := r.Encryption([]byte("123456"))
  33. toString := base64.StdEncoding.EncodeToString(encryption)
  34. fmt.Print("?????+++", toString)
  35. c.JSON(http.StatusOK, key)
  36. }
  37. func (u *user) GetDeptSysUsers(c *gin.Context) {
  38. header := c.GetHeader("Authorization")
  39. claims, _ := token.JwtClaims.ParseJwtToken(header)
  40. uid, _ := strconv.Atoi(claims.ID)
  41. users := service.SysUserService.GetDeptSysUsers(uid)
  42. c.JSON(http.StatusOK, users)
  43. }
  44. func (u *user) GetDepts(c *gin.Context) {
  45. depts := service.SysUserService.GetDepts()
  46. c.JSON(http.StatusOK, depts)
  47. }
  48. func (u *user) GetNewTokens(c *gin.Context) {
  49. header := c.GetHeader("Authorization")
  50. claims, _ := token.JwtClaims.ParseJwtToken(header)
  51. nowSysUser, _ := cache.GetNowSysUser(claims.ID)
  52. accessToken, _ := token.JwtClaims.CreateJwtToken(claims.ID, nowSysUser.Username, nowSysUser.UUID, 1)
  53. refreshToken, _ := token.JwtClaims.CreateJwtToken(claims.ID, nowSysUser.Username, nowSysUser.UUID, 24*7)
  54. tokens := make(map[string]interface{})
  55. tokens["accessToken"] = accessToken
  56. tokens["refreshToken"] = refreshToken
  57. c.JSON(http.StatusOK, common.SuccessResponse("获取成功", tokens))
  58. }
  59. func (u *user) Logout(c *gin.Context) {
  60. header := c.GetHeader("Authorization")
  61. claims, _ := token.JwtClaims.ParseJwtToken(header)
  62. err := cache.DeleteToken(claims.ID)
  63. if err != nil {
  64. c.JSON(http.StatusOK, common.ParamsInvalidResponse(err.Error(), nil))
  65. return
  66. }
  67. //关闭websocket连接
  68. websocket.CloseConn(claims.ID)
  69. c.JSON(http.StatusOK, common.SuccessResponse("退出成功", nil))
  70. }
  71. func (u *user) GetSysUserInfo(c *gin.Context) {
  72. header := c.GetHeader("Authorization")
  73. claims, _ := token.JwtClaims.ParseJwtToken(header)
  74. uid, _ := strconv.Atoi(claims.ID)
  75. info := service.SysUserService.GetSysUserInfo(uid)
  76. c.JSON(http.StatusOK, info)
  77. }
  78. func (u *user) GetSysUser(c *gin.Context) {
  79. fmt.Println("demo。。。")
  80. }