session.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package router
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "log"
  6. "net/url"
  7. "app.yhyue.com/moapp/jybase/redis"
  8. "github.com/gogf/gf/v2/frame/g"
  9. "github.com/gogf/gf/v2/net/ghttp"
  10. "github.com/gogf/gf/v2/util/gconv"
  11. )
  12. const (
  13. JY_SESSIONNAME = "SESSIONID"
  14. )
  15. // JySession 剑鱼程序SESSION获取
  16. type JySession struct {
  17. UserId string // 上下文用户信息
  18. NewUid int64 // 新用户id
  19. EntId int64 // 当前企业id
  20. EntName string // 当前企业名称
  21. Phone string // 手机号
  22. Data g.Map // 当前Session管理对象
  23. EntUserId int64 //当前企业用户id
  24. UserName string //用户名称
  25. NickName string //微信昵称
  26. YyName string //剑鱼生成的昵称
  27. UserPositionId int64 //个人职位id
  28. UserAccountId int64 //个人账户id
  29. EntUserPositionId int64 //企业职位id
  30. EntUserName string //企业员工姓名
  31. PersonId int64 //自然人id
  32. AccountId int64 //账户id
  33. EntAccountId int64 //企业账户id
  34. PositionId int64 //职位id
  35. PositionType int64 //职位类型
  36. MgoUserId string //mongodb用户id
  37. EntRole int64 //管理员角色
  38. EntNicheDis int64 //商机分配角色
  39. EntDeptId int64 //部门id
  40. EntUserRole string //
  41. }
  42. // InitJySessionContext 获取用户session
  43. func InitJySessionContext(r *ghttp.Request) (jSession *JySession, err error) {
  44. jSession = &JySession{}
  45. cookie, err := r.Request.Cookie(JY_SESSIONNAME)
  46. if err != nil {
  47. return
  48. }
  49. if cookie.Value == "" {
  50. err = fmt.Errorf("cookie 内容为空")
  51. return
  52. }
  53. findKey, _ := url.QueryUnescape(cookie.Value)
  54. bs, err := redis.GetBytes("session", findKey)
  55. if err != nil {
  56. return
  57. }
  58. var data map[string]interface{}
  59. err = json.Unmarshal(*bs, &data)
  60. jSession.Phone, _ = data["phone"].(string)
  61. jSession.UserId, _ = data["userId"].(string)
  62. jSession.EntName, _ = data["entName"].(string)
  63. jSession.EntId = gconv.Int64(data["entId"])
  64. jSession.NewUid = gconv.Int64(data["base_user_id"])
  65. jSession.EntUserId = gconv.Int64(data["entUserId"])
  66. jSession.UserName, _ = data["userName"].(string)
  67. jSession.NickName, _ = data["s_nickname"].(string)
  68. jSession.YyName, _ = data["s_jyname"].(string)
  69. jSession.EntUserName, _ = data["entUserName"].(string)
  70. jSession.UserPositionId = gconv.Int64(data["userPositionId"])
  71. jSession.UserAccountId = gconv.Int64(data["userAccountId"])
  72. jSession.EntUserPositionId = gconv.Int64(data["entUserPositionId"])
  73. jSession.PersonId = gconv.Int64(data["personId"])
  74. jSession.AccountId = gconv.Int64(data["accountId"])
  75. jSession.EntAccountId = gconv.Int64(data["entAccountId"])
  76. jSession.PositionId = gconv.Int64(data["positionId"])
  77. jSession.PositionType = gconv.Int64(data["positionType"])
  78. jSession.MgoUserId = gconv.String(data["mgoUserId"])
  79. jSession.EntRole = gconv.Int64(data["entRole"])
  80. jSession.EntNicheDis = gconv.Int64(data["entNicheDis"])
  81. jSession.EntDeptId = gconv.Int64(data["entDeptId"])
  82. jSession.EntUserRole = gconv.String(data["entUserRole"])
  83. log.Println(jSession.PositionId, "-------jSession.EntUserRole", data["entUserRole"], gconv.String(data["entUserRole"]))
  84. jSession.Data = data
  85. return
  86. }