78 lines
2.1 KiB
Go
78 lines
2.1 KiB
Go
// Package jwt -----------------------------
|
|
// @file : common.go
|
|
// @author : JJXu
|
|
// @contact : wavingbear@163.com
|
|
// @time : 2025/6/12 18:07
|
|
// -------------------------------------------
|
|
package jwt
|
|
|
|
import (
|
|
"context"
|
|
"fonchain-fiee/api/account"
|
|
"fonchain-fiee/api/accountFiee"
|
|
"fonchain-fiee/pkg/config"
|
|
"fonchain-fiee/pkg/e"
|
|
"fonchain-fiee/pkg/service"
|
|
"fonchain-fiee/pkg/utils/secret"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// ParseToChatUser 将token信息转换为聊天室用户信息
|
|
func ParseToChatUser(c *gin.Context) (chatUserInfo *accountFiee.ChatUserData, code e.ErrorCodeType) {
|
|
domain := config.Domain
|
|
domainAny, exist := c.Get("domain")
|
|
if exist {
|
|
domain = domainAny.(string)
|
|
}
|
|
var err error
|
|
token := c.GetHeader(e.Authorization)
|
|
if token == "" {
|
|
code = e.NotLogin
|
|
return
|
|
}
|
|
|
|
ctx := context.Background()
|
|
var originId int64 = 0
|
|
switch domain {
|
|
case config.Domain:
|
|
//fiee token校验
|
|
token, err = secret.GetJwtFromStr(token)
|
|
if err != nil {
|
|
code = e.NotLogin
|
|
return
|
|
}
|
|
var fieeJwtInfo *accountFiee.DecryptJwtResponse
|
|
fieeJwtInfo, err = service.AccountFieeProvider.DecryptJwt(ctx, &accountFiee.DecryptJwtRequest{Token: token, Domain: domain})
|
|
if err != nil || fieeJwtInfo.IsOffline {
|
|
return
|
|
}
|
|
originId = int64(fieeJwtInfo.ID)
|
|
case "fontree":
|
|
//erp token校验
|
|
token, err = secret.GetJwtFromStr(token)
|
|
if err != nil {
|
|
code = e.NotLogin
|
|
return
|
|
}
|
|
var fontreeJwtInfo *account.DecryptJwtResponse
|
|
fontreeJwtInfo, err = service.AccountProvider.DecryptJwt(ctx, &account.DecryptJwtRequest{Token: token, Domain: domain})
|
|
if err != nil || fontreeJwtInfo.IsOffline {
|
|
code = e.NotLogin
|
|
return
|
|
}
|
|
originId = int64(fontreeJwtInfo.ID)
|
|
}
|
|
var userQueryRes *accountFiee.GetChatUserListResp
|
|
userQueryRes, err = service.AccountFieeProvider.GetChatUserList(c, &accountFiee.GetChatUserListRequest{
|
|
Query: &accountFiee.ChatUserData{Origin: domain, OriginId: originId},
|
|
Page: 1,
|
|
PageSize: 1,
|
|
})
|
|
if err != nil || userQueryRes.Total == 0 {
|
|
code = e.ErrorNotExistUser
|
|
return
|
|
}
|
|
chatUserInfo = userQueryRes.List[0]
|
|
return
|
|
}
|