request.go 2.1 KB

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