package model import ( "dashoo.cn/micro/app/dao" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/net/ghttp" ) const ( // CtxKey 上下文变量存储键名,前后端系统共享 CtxKey = "GFastContext" ) // Context 请求上下文结构 type Context struct { Session *ghttp.Session // 当前Session管理对象 User *CtxUser // 上下文用户信息 Data g.Map // 自定KV变量,业务模块根据需要设置,不固定 } // CtxUser 请求上下文中的用户信息 type CtxUser struct { Id uint64 `json:"id"` // 用户id UserName string `json:"userName"` // 用户名 DeptId uint64 `json:"deptId"` // 部门id UserNickname string `json:"userNickname"` // 用户昵称 UserStatus uint `json:"userStatus"` // 用户状态;0:禁用,1:正常,2:未验证 IsAdmin int `json:"isAdmin"` // 是否后台管理员 1 是 0 否 Avatar string `json:"avatar"` //头像 } // GetUserId 获取登录用户id func (ctxUser *CtxUser) GetUserId() (id uint64) { return ctxUser.Id } // GetDept 获取登录用户所属部门 func (ctxUser *CtxUser) GetDept() (err error, dept *SysDept) { err = g.DB().Model(dao.SysDept.Table).Fields(dao.SysDept.Columns.Id, dao.SysDept.Columns.DeptName).WherePri(ctxUser.DeptId).Scan(&dept) if dept == nil { dept = &SysDept{} } return }