request.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. DingtalkId string `json:"dingtalk_id"`
  32. DeptId int `json:"deptId"` // 所属部门
  33. Roles []string `json:"roles"` // 所属角色
  34. Posts []string `json:"posts"` // 所属岗位
  35. Groups []string `json:"groups"` // 所属用户组
  36. }
  37. // 设置当前登录用户信息
  38. func SetUserInfo(r *ghttp.Request, userInfo UserInfo) {
  39. //var userinfo UserInfo
  40. //userinfo.Id = userId
  41. //userinfo.Uuid = uuid
  42. //userinfo.UserName = username
  43. //userinfo.RealName = realName
  44. r.SetParam("userinfo", userInfo)
  45. }
  46. // 从request中获取当前登录用户信息
  47. func GetUserInfo(r *ghttp.Request) UserInfo {
  48. var userinfo UserInfo
  49. gconv.Struct(r.GetParam("userinfo"), &userinfo)
  50. return userinfo
  51. }
  52. // 获取租户码
  53. func GetTenant(r *ghttp.Request) string {
  54. return r.Header.Get("Tenant")
  55. }
  56. // 获取客户端IP
  57. func GetClientIp(r *ghttp.Request) string {
  58. ip := r.Header.Get("X-Forwarded-For")
  59. if ip == "" {
  60. ip = r.GetClientIp()
  61. }
  62. return ip
  63. }