oa.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package xiangyu
  2. import (
  3. "errors"
  4. "eta/eta_bridge/models/eta"
  5. "eta/eta_bridge/models/response"
  6. "eta/eta_bridge/services"
  7. "eta/eta_bridge/services/xiangyu"
  8. "time"
  9. )
  10. // LoginEtaByToken
  11. // @Description: 获取eta的session
  12. // @author: Roc
  13. // @datetime 2024-01-23 17:44:15
  14. // @param code string
  15. // @return resp response.LoginResp
  16. // @return err error
  17. // @return errMsg string
  18. func LoginEtaByToken(sid, token string) (resp response.LoginResp, err error, errMsg string) {
  19. // 获取xiangyu token
  20. isLogin, err := xiangyu.CheckSidPS(sid, token)
  21. if err != nil {
  22. return
  23. }
  24. if !isLogin {
  25. errMsg = `OA平台未登录,请重新登录`
  26. err = errors.New(errMsg)
  27. return
  28. }
  29. // 获取eta用户信息
  30. adminInfo, err := eta.GetSysUserByAdminName(sid)
  31. if err != nil {
  32. return
  33. }
  34. // 生成登录session
  35. resp, session, err, errMsg := services.CreateEtaSession(adminInfo)
  36. if err != nil {
  37. return
  38. }
  39. // 记录两方session的绑定信息
  40. thirdSession := &eta.SysThirdSession{
  41. ID: 0,
  42. SysUserID: uint64(session.SysUserId),
  43. UserName: session.UserName,
  44. AccessToken: session.AccessToken,
  45. ThirdAccessToken: token,
  46. //ThirdRefreshToken: tokenResp.RefreshToken,
  47. //ThirdExpiredTime: time.Now().Add(time.Duration(tokenResp.ExpiresIn-100) * time.Second),
  48. CreatedTime: time.Now(),
  49. LastUpdatedTime: time.Now(),
  50. }
  51. eta.AddSysThirdSession(thirdSession)
  52. return
  53. }