You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.3 KiB

3 years ago
3 years ago
3 years ago
  1. // Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
  2. package container
  3. import (
  4. "errors"
  5. "fmt"
  6. "LEIT_PM/global"
  7. )
  8. // 会话
  9. type Session struct {
  10. // 会话上下文
  11. SessionContext
  12. // 会话标识
  13. sessionId string
  14. // 组件句柄管理器
  15. handlers *HandlerManager
  16. }
  17. // 创建会话
  18. // 参数
  19. // 1.会话上下文
  20. // 2.用户信息
  21. // 3.组件句柄管理器
  22. // 返回值:
  23. // 1.会话
  24. // 2.错误
  25. func NewSession(context *SessionContext, sessionId string, handlerManager *HandlerManager) (*Session, error) {
  26. if context == nil {
  27. return nil, errors.New(fmt.Sprintf("会话上下文不能为空!"))
  28. }
  29. if sessionId == "" {
  30. return nil, errors.New(fmt.Sprintf("会话标识不能为空!"))
  31. }
  32. if handlerManager == nil {
  33. return nil, errors.New(fmt.Sprintf("组件句柄管理器不能为空!"))
  34. }
  35. return &Session{*context, sessionId, handlerManager}, nil
  36. }
  37. // 获取用户信息
  38. // 返回值:
  39. // 1.用户信息
  40. func (session *Session) User() *global.User {
  41. return session.user
  42. }
  43. // 获取会话标识
  44. // 返回值:
  45. // 1.会话标识
  46. func (session *Session) SessionId() string {
  47. return session.sessionId
  48. }
  49. // 获取组件句柄管理器
  50. // 返回值:
  51. // 1.组件句柄管理器
  52. func (session *Session) Handlers() *HandlerManager {
  53. return session.handlers
  54. }