[U] Sync n3
This commit is contained in:
@@ -14,35 +14,14 @@ namespace tysdk
|
||||
{
|
||||
public class AccountInfo
|
||||
{
|
||||
#if UNITY_ANDROID
|
||||
|
||||
private static Dictionary<string, EAccoutType> accoutTypeMap = new Dictionary<string, EAccoutType>(){
|
||||
{EAccoutType.hwGoogle.ToString(), EAccoutType.hwGoogle},
|
||||
{EAccoutType.hwFacebook.ToString(), EAccoutType.hwFacebook},
|
||||
{"tyGuest", EAccoutType.hwGuest}
|
||||
};
|
||||
#else
|
||||
|
||||
private static Dictionary<string, EAccoutType> accoutTypeMap = new Dictionary<string, EAccoutType>(){
|
||||
{"google", EAccoutType.hwGoogle},
|
||||
{"fb", EAccoutType.hwFacebook},
|
||||
{"tyGuest", EAccoutType.hwGuest},
|
||||
{"ios13", EAccoutType.Apple}
|
||||
};
|
||||
#endif
|
||||
|
||||
public int userId;
|
||||
public string token;
|
||||
public string jwtToken;
|
||||
public string strUserId => userId.ToString();
|
||||
public string channelstr {
|
||||
set{
|
||||
channel = accoutTypeMap[value];
|
||||
linkedAccout.Add(channel);
|
||||
}
|
||||
}
|
||||
public HashSet<EAccoutType> linkedAccout = new HashSet<EAccoutType>();
|
||||
public EAccoutType channel {get; private set;}
|
||||
public EAccoutType channel {get; set;}
|
||||
public string userName;
|
||||
public string avatar;
|
||||
|
||||
private const string KEY_ACCOUNT_INFO = "KEY_ACCOUNT_INFO";
|
||||
|
||||
@@ -54,23 +33,30 @@ namespace tysdk
|
||||
}
|
||||
}
|
||||
|
||||
public void AddLinkedAccount(string channel)
|
||||
private static Dictionary<string, EAccoutType> accoutTypeMap = new Dictionary<string, EAccoutType>(){
|
||||
{"google", EAccoutType.hwGoogle},
|
||||
{"fb", EAccoutType.hwFacebook},
|
||||
{"tyGuest", EAccoutType.hwGuest},
|
||||
{"ios13", EAccoutType.Apple}
|
||||
};
|
||||
|
||||
private static EAccoutType ConvertAccoutType(string accountType)
|
||||
{
|
||||
if(accoutTypeMap.TryGetValue(channel, out var accoutType))
|
||||
if (accoutTypeMap.ContainsKey(accountType))
|
||||
{
|
||||
if (!linkedAccout.Contains(accoutType))
|
||||
{
|
||||
linkedAccout.Add(accoutType);
|
||||
}
|
||||
return accoutTypeMap[accountType];
|
||||
}
|
||||
return (EAccoutType)Enum.Parse(typeof(EAccoutType), accountType);
|
||||
}
|
||||
|
||||
public void Save()
|
||||
{
|
||||
JObject jInfo = new JObject();
|
||||
jInfo["channel"] = accoutTypeMap.First(x => x.Value == channel).Key;
|
||||
jInfo["channel"] = channel.ToString();
|
||||
jInfo["token"] = token;
|
||||
jInfo["userId"] = userId;
|
||||
jInfo["userName"] = userName;
|
||||
jInfo["avatar"] = avatar;
|
||||
jInfo["jwtToken"] = jwtToken;
|
||||
jInfo["linkedAccout"] = string.Join(",", linkedAccout.Select(x => x.ToString()));
|
||||
PlayerPrefs.SetString(KEY_ACCOUNT_INFO, jInfo.ToString());
|
||||
@@ -86,14 +72,26 @@ namespace tysdk
|
||||
if (PlayerPrefs.HasKey(KEY_ACCOUNT_INFO))
|
||||
{
|
||||
var jInfo = JObject.Parse(PlayerPrefs.GetString(KEY_ACCOUNT_INFO));
|
||||
return new AccountInfo()
|
||||
var accountInfo = new AccountInfo()
|
||||
{
|
||||
userId = (int)jInfo["userId"],
|
||||
token = (string)jInfo["token"],
|
||||
channelstr = (string)jInfo["channel"],
|
||||
channel = ConvertAccoutType((string)jInfo["channel"]),
|
||||
jwtToken = (string)jInfo["jwtToken"],
|
||||
linkedAccout = jInfo["linkedAccout"].ToString().Split(',').Select(x => (EAccoutType)Enum.Parse(typeof(EAccoutType), x)).ToHashSet()
|
||||
linkedAccout = jInfo["linkedAccout"].ToString().Split(',').Select(x => ConvertAccoutType(x)).ToHashSet()
|
||||
};
|
||||
|
||||
if(jInfo.TryGetValue("userName", out var userName))
|
||||
{
|
||||
accountInfo.userName = (string) userName;
|
||||
}
|
||||
|
||||
if(jInfo.TryGetValue("avatar", out var avatar))
|
||||
{
|
||||
accountInfo.avatar = (string)avatar;
|
||||
}
|
||||
|
||||
return accountInfo;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -184,10 +182,15 @@ namespace tysdk
|
||||
|
||||
UnityBridgeFunc.UnityLogin(accoutType);
|
||||
|
||||
return await taskSource.Task;
|
||||
|
||||
var loginInfo = await taskSource.Task;
|
||||
if(loginInfo.isSuccess)
|
||||
{
|
||||
_accountInfo.channel = accoutType;
|
||||
_accountInfo.AddLinkedAccount(accoutType);
|
||||
_accountInfo.Save();
|
||||
}
|
||||
return loginInfo;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
public async Task<LoginInfo> LoginByToken()
|
||||
@@ -203,7 +206,12 @@ namespace tysdk
|
||||
|
||||
UnityBridgeFunc.UnityLoginByTokenFun(accoutInfo.token);
|
||||
|
||||
return await taskSource.Task;
|
||||
var loginInfo = await taskSource.Task;
|
||||
if(loginInfo.isSuccess)
|
||||
{
|
||||
_accountInfo.Save();
|
||||
}
|
||||
return loginInfo;
|
||||
}
|
||||
|
||||
public void LoginResult(string json)
|
||||
@@ -221,7 +229,6 @@ namespace tysdk
|
||||
var userId = (int)loginData["userId"];
|
||||
var token = (string)loginData["token"];
|
||||
var jwtToken = (string)loginData["jwttoken"];
|
||||
var channelstr = (string)loginData["loginChannelTypeC"];
|
||||
|
||||
var savedInfo = AccountInfo.GetSavedAccoutInfo();
|
||||
if(savedInfo == null || savedInfo.userId != userId)
|
||||
@@ -229,19 +236,16 @@ namespace tysdk
|
||||
_accountInfo = new AccountInfo()
|
||||
{
|
||||
userId = (int)loginData["userId"],
|
||||
userName = (string)loginData["userName"],
|
||||
avatar = (string)loginData["purl"],
|
||||
token = (string)loginData["token"],
|
||||
jwtToken = (string)loginData["jwttoken"],
|
||||
channelstr = (string)loginData["loginChannelTypeC"]
|
||||
};
|
||||
|
||||
_accountInfo.Save();
|
||||
}
|
||||
else
|
||||
{
|
||||
savedInfo.token = token;
|
||||
savedInfo.jwtToken = jwtToken;
|
||||
savedInfo.AddLinkedAccount(channelstr);
|
||||
savedInfo.Save();
|
||||
_accountInfo = savedInfo;
|
||||
}
|
||||
|
||||
@@ -290,12 +294,13 @@ namespace tysdk
|
||||
var result = await taskSource.Task;
|
||||
if (result.isSuccess)
|
||||
{
|
||||
var savedInfo = AccountInfo.GetSavedAccoutInfo();
|
||||
if(savedInfo != null)
|
||||
if(_accountInfo == null)
|
||||
_accountInfo = AccountInfo.GetSavedAccoutInfo();
|
||||
|
||||
if(_accountInfo != null)
|
||||
{
|
||||
savedInfo.AddLinkedAccount(accoutType);
|
||||
savedInfo.Save();
|
||||
_accountInfo = savedInfo;
|
||||
_accountInfo.AddLinkedAccount(accoutType);
|
||||
_accountInfo.Save();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -332,6 +337,17 @@ namespace tysdk
|
||||
UnityBridgeFunc.LinkAccount(accoutType);
|
||||
|
||||
var result = await taskSource.Task;
|
||||
if (result.isSuccess)
|
||||
{
|
||||
if(_accountInfo == null)
|
||||
_accountInfo = AccountInfo.GetSavedAccoutInfo();
|
||||
|
||||
if(_accountInfo != null)
|
||||
{
|
||||
_accountInfo.AddLinkedAccount(accoutType);
|
||||
_accountInfo.Save();
|
||||
}
|
||||
}
|
||||
|
||||
return result.isSuccess;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user