//------------------------------------------------------------------------------ // 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充 // 此代码版权(除特别声明外的代码)归作者本人Diego所有 // 源代码使用协议遵循本仓库的开源协议及附加协议 // Gitee源代码仓库:https://gitee.com/diego2098/ThingsGateway // Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway // 使用文档:https://thingsgateway.cn/ // QQ群:605534569 //------------------------------------------------------------------------------ using ThingsGateway.Common.List; namespace ThingsGateway.Admin.Application; /// /// 会话信息 /// [SugarTable("verificatinfo", TableDescription = "验证缓存表")] [Tenant(SqlSugarConst.DB_TokenCache)] public class VerificatInfo : PrimaryIdEntity { /// /// 客户端ID列表 /// [AutoGenerateColumn(Ignore = true)] [SugarColumn(ColumnDescription = "客户端ID列表", IsNullable = true, IsJson = true)] public ConcurrentList ClientIds { get; set; } = new(); /// /// 验证Id /// [AutoGenerateColumn(Ignore = true)] public long UserId { get; set; } /// /// 验证Id /// [AutoGenerateColumn(Filterable = true, Sortable = true)] [SugarColumn(ColumnDescription = "Id", IsPrimaryKey = true)] [IgnoreExcel] [System.ComponentModel.DataAnnotations.Key] public override long Id { get; set; } /// /// 登录IP /// [AutoGenerateColumn(Filterable = true, Sortable = true, Width = 200)] [SugarColumn(IsNullable = true)] public string LoginIp { get; set; } /// /// 登录时间 /// [AutoGenerateColumn(Filterable = true, Sortable = true, Width = 200)] public DateTime LoginTime { get; set; } /// /// 在线状态 /// [Newtonsoft.Json.JsonIgnore] [System.Text.Json.Serialization.JsonIgnore] [AutoGenerateColumn(Filterable = true, Sortable = true, Width = 120)] [SugarColumn(IsIgnore = true)] public bool Online => ClientIds.Count > 0; /// /// 过期时间 /// [AutoGenerateColumn(Filterable = true, Sortable = true)] public int Expire { get; set; } /// /// 超时时间 /// [AutoGenerateColumn(Filterable = true, Sortable = true)] public DateTime VerificatTimeout { get; set; } /// /// 登录设备 /// [AutoGenerateColumn(Filterable = true, Sortable = true, Width = 100)] [SugarColumn(IsNullable = true)] public string Device { get; set; } }