Files
DanhengServer-OpenSource/Common/Database/Account/AccountData.cs
2024-03-03 14:13:48 +08:00

55 lines
1.6 KiB
C#

using EggLink.DanhengServer.Util;
using Microsoft.Data.Sqlite;
using SqlSugar;
namespace EggLink.DanhengServer.Database.Account
{
[SugarTable("Account")]
public class AccountData() : BaseDatabaseData
{
public string? Username { get; set; }
[SugarColumn(IsNullable = true)]
public string? ComboToken { get; set; }
[SugarColumn(IsNullable = true)]
public string? DispatchToken { get; set; }
[SugarColumn(IsNullable = true)]
public string? Permissions { get; set; } // type: permission1,permission2,permission3...
public static AccountData? GetAccountByUserName(string username)
{
AccountData? result = null;
DatabaseHelper.Instance?.GetAllInstance<AccountData>()?.ForEach((account) =>
{
if (account.Username == username)
{
result = account;
}
});
return result;
}
public static AccountData? GetAccountByUid(long uid)
{
AccountData? result = DatabaseHelper.Instance?.GetInstance<AccountData>(uid);
return result;
}
public string GenerateDispatchToken()
{
DispatchToken = Crypto.CreateSessionKey(Uid.ToString());
DatabaseHelper.Instance?.UpdateInstance(this);
return DispatchToken;
}
public string GenerateComboToken()
{
ComboToken = Crypto.CreateSessionKey(Uid.ToString());
DatabaseHelper.Instance?.UpdateInstance(this);
return ComboToken;
}
}
}