context.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package service
  2. import (
  3. "context"
  4. "dashoo.cn/opms_libary/micro_srv"
  5. "dashoo.cn/opms_libary/request"
  6. "github.com/gogf/gf/os/glog"
  7. )
  8. // Context 上下文管理服务
  9. type ContextService struct {
  10. Tenant string `json:"tenant"`
  11. CxtUser *request.UserInfo `json:"cxtUser"`
  12. }
  13. // Init 初始化上下文对象指针到上下文对象中,以便后续的请求流程中可以修改。
  14. func (c *ContextService) Init(ctx context.Context) (*ContextService, error) {
  15. c = new(ContextService)
  16. // 获取租户码
  17. tenant, err := micro_srv.GetTenant(ctx)
  18. if err != nil {
  19. return nil, err
  20. }
  21. reqMethod, _ := micro_srv.GetReqMethod(ctx)
  22. glog.Info("Received " + reqMethod + " request @ " + tenant)
  23. c.Tenant = tenant
  24. c.CxtUser = nil
  25. if !micro_srv.IsAuthExclude(ctx) {
  26. userInfo, err := micro_srv.GetUserInfo(ctx)
  27. if err != nil {
  28. return nil, err
  29. }
  30. c.CxtUser = &userInfo
  31. }
  32. return c, nil
  33. }
  34. func (c *ContextService) GetCxtUserId() int {
  35. if c.CxtUser == nil {
  36. return -1
  37. }
  38. return c.CxtUser.Id
  39. }
  40. func (c *ContextService) GetCxtUserUuid() string {
  41. if c.CxtUser == nil {
  42. return "-1"
  43. }
  44. return c.CxtUser.Uuid
  45. }
  46. func (c *ContextService) GetCxtUserName() string {
  47. if c.CxtUser == nil {
  48. return "-1"
  49. }
  50. return c.CxtUser.UserName
  51. }
  52. func (c *ContextService) GetCxtUserDeptId() int {
  53. if c.CxtUser == nil {
  54. return -1
  55. }
  56. return c.CxtUser.DeptId
  57. }