request.go 2.0 KB

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