member_login_api.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package client
  2. import (
  3. "ulink-admin/frame"
  4. "ulink-admin/modules/system/models/req"
  5. service2 "ulink-admin/modules/system/service"
  6. "ulink-admin/pkg/cache"
  7. "ulink-admin/pkg/captcha"
  8. "ulink-admin/pkg/jwt/admin"
  9. )
  10. type MemberLoginApi struct {
  11. MemberLoginService *service2.MemberLoginService `inject:""`
  12. SysMemberService *service2.SysMemberService `inject:""`
  13. }
  14. // Login 登录
  15. // @Summary 登录接口
  16. // @Description 用户登录接口
  17. // @Tags 用户登录相关接口
  18. // @Accept application/json
  19. // @Produce application/json
  20. // @Param data body req.LoginBody true "登录实体对象"
  21. // @Success 200 {object} resp.Response{data=map[stirng]string,msg=string} "返回登录结果"
  22. // @Router /login [post]
  23. func (a MemberLoginApi) Login(c *frame.Context) {
  24. loginBody := req.LoginBody{}
  25. err := c.BindJSON(&loginBody)
  26. c.ValidteError(err, loginBody)
  27. s := a.MemberLoginService.Login(loginBody)
  28. m := make(map[string]string)
  29. m["token"] = s
  30. c.Ok(m)
  31. }
  32. // GetUserInfo 获取用户信息
  33. // Login 用户详情查询接口
  34. // @Summary 用户详情查询接口
  35. // @Description 用户详情查询接口
  36. // @Tags 用户登录相关接口
  37. // @Accept application/json
  38. // @Produce application/json
  39. // @Param Authorization header string false "Bearer 令牌"
  40. // @Success 200 {object} resp.Response{data=map[stirng]interface{},msg=string} "返回用户详情查询"
  41. // @Router /getInfo [get]
  42. func (a MemberLoginApi) GetUserInfo(c *frame.Context) {
  43. /* m := make(map[string]interface{})*/
  44. user := a.MemberLoginService.LoginUser(c)
  45. member := a.SysMemberService.Get(user.Id)
  46. /* //查询用户角色集合
  47. roleKeys := a.PermissionService.GetRolePermissionByUserId(record)
  48. // 权限集合
  49. perms := a.PermissionService.GetMenuPermission(record)
  50. menus := a.MenuService.GetMenuTreeByUserId(user)
  51. systemMenus := tree_menu.SystemMenus{}
  52. systemMenus = *menus
  53. array := systemMenus.ConvertToINodeArray()
  54. generateTree := tree_menu.GenerateTree(array, nil)
  55. m["roles"] = roleKeys
  56. m["permissions"] = perms
  57. m["user"] = user
  58. m["menu"] = generateTree*/
  59. c.Ok(member)
  60. }
  61. // captcha 获取验证码接口
  62. // @Summary 获取验证码接口
  63. // @Description 获取验证码接口
  64. // @Tags 用户登录相关接口
  65. // @Accept application/json
  66. // @Produce application/json
  67. // @Success 200 {object} resp.Response{data=captcha.CaptchaInfo,msg=string} "返回验证码查询"
  68. // @Router /getCaptcha [get]
  69. func (a MemberLoginApi) GetCaptcha(c *frame.Context) {
  70. id, image, error := captcha.CreateCode()
  71. captchaInfo := new(captcha.CaptchaInfo)
  72. if error != nil {
  73. frame.Throw(frame.BUSINESS_CODE, "获取验证码错误")
  74. }
  75. captchaInfo.Id = id
  76. captchaInfo.Image = image
  77. c.Ok(captchaInfo)
  78. }
  79. // Logout 退出登录
  80. // @Summary 退出登录接口
  81. // @Description 退出登录接口
  82. // @Tags 用户登录相关接口
  83. // @Accept application/json
  84. // @Produce application/json
  85. // @Param Authorization header string false "Bearer 令牌"
  86. // @Success 200 {object} resp.Response "返回退出结果"
  87. // @Router /logout [post]
  88. func (a MemberLoginApi) Logout(c *frame.Context) {
  89. //删除Redis缓存
  90. name := admin.GetJWTRedisKey(c)
  91. cache.RemoveKey(name)
  92. }