request.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package request
  2. import (
  3. "context"
  4. "github.com/gogf/gf/net/ghttp"
  5. "github.com/gogf/gf/util/gconv"
  6. )
  7. const DefaultPageSize = 10
  8. type PageReq struct {
  9. BeginTime string `p:"beginTime"` //开始时间
  10. EndTime string `p:"endTime"` //结束时间
  11. PageNum int `p:"pageNum"` //当前页码
  12. PageSize int `p:"pageSize"` //每页数
  13. OrderBy string `p:"orderBy"` //排序方式
  14. Ctx context.Context `swaggerignore:"true"`
  15. }
  16. func (p *PageReq) GetPage() (int, int) {
  17. if p.PageNum == 0 {
  18. p.PageNum = 1
  19. }
  20. if p.PageSize == 0 {
  21. p.PageSize = DefaultPageSize
  22. }
  23. return p.PageNum, p.PageSize
  24. }
  25. // UserInfo 登录用户信息
  26. type UserInfo struct {
  27. Id int `json:"id"`
  28. Uuid string `json:"uuid"`
  29. UserName string `json:"userName"`
  30. NickName string `json:"nickName"`
  31. DeptId int `json:"deptId"` // 所属部门
  32. Roles []string `json:"roles"` // 所属角色
  33. Posts []string `json:"posts"` // 所属岗位
  34. Groups []string `json:"groups"` // 所属用户组
  35. }
  36. // 设置当前登录用户信息
  37. func SetUserInfo(r *ghttp.Request, userInfo UserInfo) {
  38. //var userinfo UserInfo
  39. //userinfo.Id = userId
  40. //userinfo.Uuid = uuid
  41. //userinfo.UserName = username
  42. //userinfo.RealName = realName
  43. r.SetParam("userinfo", userInfo)
  44. }
  45. // 从request中获取当前登录用户信息
  46. func GetUserInfo(r *ghttp.Request) UserInfo {
  47. var userinfo UserInfo
  48. gconv.Struct(r.GetParam("userinfo"), &userinfo)
  49. return userinfo
  50. }
  51. // 获取租户码
  52. func GetTenant(r *ghttp.Request) string {
  53. return r.Header.Get("Tenant")
  54. }
  55. // 获取客户端IP
  56. func GetClientIp(r *ghttp.Request) string {
  57. ip := r.Header.Get("X-Forwarded-For")
  58. if ip == "" {
  59. ip = r.GetClientIp()
  60. }
  61. return ip
  62. }