mirror of
https://github.com/weloe/token-go.git
synced 2025-09-27 03:46:01 +08:00
40 lines
810 B
Go
40 lines
810 B
Go
package model
|
|
|
|
import (
|
|
"encoding/json"
|
|
"sync"
|
|
)
|
|
|
|
func JsonByteToSyncSession(jsonByte []byte) (*SyncSession, error) {
|
|
s := &Session{}
|
|
err := json.Unmarshal(jsonByte, s)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return ConvertSyncSession(s), nil
|
|
}
|
|
|
|
func JsonToSyncSession(jsonStr string) (*SyncSession, error) {
|
|
return JsonByteToSyncSession([]byte(jsonStr))
|
|
}
|
|
|
|
// ConvertSyncSession convert to Session
|
|
func ConvertSyncSession(s *Session) *SyncSession {
|
|
session := &SyncSession{
|
|
Id: s.Id,
|
|
Type: s.Type,
|
|
LoginType: s.LoginType,
|
|
LoginId: s.LoginId,
|
|
Token: s.Token,
|
|
CreateTime: s.CreateTime,
|
|
DataMap: &sync.Map{},
|
|
TokenSignList: s.TokenSignList,
|
|
}
|
|
// copy DataMap
|
|
for k, v := range s.DataMap {
|
|
session.DataMap.Store(k, v)
|
|
}
|
|
return session
|
|
}
|