package service import ( "context" "dashoo.cn/opms_libary/micro_srv" "dashoo.cn/opms_libary/request" "github.com/gogf/gf/os/glog" ) // Context 上下文管理服务 type ContextService struct { Tenant string `json:"tenant"` CxtUser *request.UserInfo `json:"cxtUser"` } // Init 初始化上下文对象指针到上下文对象中,以便后续的请求流程中可以修改。 func (c *ContextService) Init(ctx context.Context) (*ContextService, error) { c = new(ContextService) // 获取租户码 tenant, err := micro_srv.GetTenant(ctx) if err != nil { return nil, err } reqMethod, _ := micro_srv.GetReqMethod(ctx) glog.Info("Received " + reqMethod + " request @ " + tenant) c.Tenant = tenant c.CxtUser = nil if !micro_srv.IsAuthExclude(ctx) { userInfo, err := micro_srv.GetUserInfo(ctx) if err != nil { return nil, err } c.CxtUser = &userInfo } return c, nil } func (c *ContextService) GetCxtUserId() int { if c.CxtUser == nil { return -1 } return c.CxtUser.Id } func (c *ContextService) GetCxtUserUuid() string { if c.CxtUser == nil { return "-1" } return c.CxtUser.Uuid } func (c *ContextService) GetCxtUserName() string { if c.CxtUser == nil { return "-1" } return c.CxtUser.UserName } func (c *ContextService) GetCxtUserDeptId() int { if c.CxtUser == nil { return -1 } return c.CxtUser.DeptId }