request.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package request
  2. import (
  3. "github.com/gogf/gf/net/ghttp"
  4. "github.com/gogf/gf/util/gconv"
  5. )
  6. type PageInfo struct {
  7. Current int `json:"current"` //分页当前页
  8. Size int `json:"size"` //分页记录数条数
  9. }
  10. // 获取前端分页信息
  11. func GetPageInfo(r *ghttp.Request) PageInfo {
  12. var page PageInfo
  13. page.Current = r.GetInt("current")
  14. page.Size = r.GetInt("size")
  15. return page
  16. }
  17. // 登录用户信息
  18. type UserInfo struct {
  19. Id int32 `json:"id"`
  20. Uuid string `json:"uuid"`
  21. UserName string `json:"user_name"`
  22. RealName string `json:"real_name"`
  23. Roles string `json:"roles"` // 所属角色
  24. DeptId string `json:"dept_id"` //所属部门
  25. }
  26. // 设置当前登录用户信息
  27. func SetUserInfo(r *ghttp.Request, userInfo UserInfo) {
  28. //var userinfo UserInfo
  29. //userinfo.Id = userId
  30. //userinfo.Uuid = uuid
  31. //userinfo.UserName = username
  32. //userinfo.RealName = realName
  33. r.SetParam("userinfo", userInfo)
  34. }
  35. // 从request中获取当前登录用户信息
  36. func GetUserInfo(r *ghttp.Request) UserInfo {
  37. var userinfo UserInfo
  38. gconv.Struct(r.GetParam("userinfo"), &userinfo)
  39. return userinfo
  40. }
  41. // 获取租户码
  42. func GetTenant(r *ghttp.Request) string {
  43. return r.Header.Get("Tenant")
  44. }
  45. //获取客户端IP
  46. func GetClientIp(r *ghttp.Request) string {
  47. ip := r.Header.Get("X-Forwarded-For")
  48. if ip == "" {
  49. ip = r.GetClientIp()
  50. }
  51. return ip
  52. }