package request import ( "context" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/net/ghttp" "github.com/gogf/gf/util/gconv" ) const DefaultPageSize = 10 type PageReq struct { BeginTime string `p:"beginTime"` //开始时间 EndTime string `p:"endTime"` //结束时间 PageNum int `p:"pageNum"` //当前页码 PageSize int `p:"pageSize"` //每页数 OrderBy string `p:"orderBy"` //排序方式 Ctx context.Context `swaggerignore:"true"` } func (p *PageReq) GetPage() (int, int) { if p.PageNum == 0 { p.PageNum = 1 } if p.PageSize == 0 { p.PageSize = DefaultPageSize } return p.PageNum, p.PageSize } // UserInfo 登录用户信息 type UserInfo struct { Id int `json:"id"` Uuid string `json:"uuid"` UserName string `json:"userName"` NickName string `json:"nickName"` WechatId string `json:"wechatId"` DingtalkId string `json:"dingtalkId"` DingtalkUid string `json:"dingtalkUid"` DeptId int `json:"deptId"` // 所属部门 Roles []string `json:"roles"` // 所属角色 Posts []string `json:"posts"` // 所属岗位 Groups []string `json:"groups"` // 所属用户组 DataScope g.Map `json:"dataScope"` // 数据权限 IsFirstLogin bool `json:"isFirstLogin"` // 是否首次登录 } // 设置当前登录用户信息 func SetUserInfo(r *ghttp.Request, userInfo UserInfo) { //var userinfo UserInfo //userinfo.Id = userId //userinfo.Uuid = uuid //userinfo.UserName = username //userinfo.RealName = realName r.SetParam("userinfo", userInfo) } // 从request中获取当前登录用户信息 func GetUserInfo(r *ghttp.Request) UserInfo { var userinfo UserInfo gconv.Struct(r.GetParam("userinfo"), &userinfo) return userinfo } // 获取租户码 func GetTenant(r *ghttp.Request) string { return r.Header.Get("Tenant") } // 获取客户端IP func GetClientIp(r *ghttp.Request) string { ip := r.Header.Get("X-Forwarded-For") if ip == "" { ip = r.GetClientIp() } return ip }