request.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. }
  34. // 设置当前登录用户信息
  35. func SetUserInfo(r *ghttp.Request, userInfo UserInfo) {
  36. //var userinfo UserInfo
  37. //userinfo.Id = userId
  38. //userinfo.Uuid = uuid
  39. //userinfo.UserName = username
  40. //userinfo.RealName = realName
  41. r.SetParam("userinfo", userInfo)
  42. }
  43. // 从request中获取当前登录用户信息
  44. func GetUserInfo(r *ghttp.Request) UserInfo {
  45. var userinfo UserInfo
  46. gconv.Struct(r.GetParam("userinfo"), &userinfo)
  47. return userinfo
  48. }
  49. // 获取租户码
  50. func GetTenant(r *ghttp.Request) string {
  51. return r.Header.Get("Tenant")
  52. }
  53. // 获取客户端IP
  54. func GetClientIp(r *ghttp.Request) string {
  55. ip := r.Header.Get("X-Forwarded-For")
  56. if ip == "" {
  57. ip = r.GetClientIp()
  58. }
  59. return ip
  60. }