using Longbow.Web.Mvc; using PetaPoco; using System; using System.Collections.Generic; namespace Bootstrap.DataAccess { /// /// 登录用户信息实体类 /// [TableName("LoginLogs")] public class LoginUser { /// /// 获得/设置 Id /// public string Id { get; set; } /// /// 获得/设置 用户名 /// public string UserName { get; set; } /// /// 获得/设置 登录时间 /// public DateTime LoginTime { get; set; } /// /// 获得/设置 登录IP地址 /// public string Ip { get; set; } /// /// 获得/设置 登录浏览器 /// public string Browser { get; set; } /// /// 获得/设置 登录操作系统 /// public string OS { get; set; } /// /// 获得/设置 登录地点 /// public string City { get; set; } /// /// 获得/设置 登录是否成功 /// public string Result { get; set; } /// /// 获得/设置 用户 UserAgent /// public string UserAgent { get; set; } /// /// 保存登录用户数据 /// /// /// public virtual bool Log(LoginUser user) { var db = DbManager.Create(); db.Save(user); return true; } /// /// 获得登录用户的分页数据 /// /// /// /// /// /// public virtual Page RetrieveByPages(PaginationOption po, DateTime? startTime, DateTime? endTime, string ip) { var sql = new Sql("select * from LoginLogs"); if (startTime.HasValue) sql.Where("LoginTime >= @0", startTime.Value); if (endTime.HasValue) sql.Where("LoginTime < @0", endTime.Value.AddDays(1)); if (!string.IsNullOrEmpty(ip)) sql.Where("ip = @0", ip); sql.OrderBy($"{po.Sort} {po.Order}"); return DbManager.Create().Page(po.PageIndex, po.Limit, sql); } /// /// 获取所有登录数据 /// /// public virtual IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string ip) { var sql = new Sql("select UserName, LoginTime, Ip, Browser, OS, City, Result from LoginLogs"); if (startTime.HasValue) sql.Where("LoginTime >= @0", startTime.Value); if (endTime.HasValue) sql.Where("LoginTime < @0", endTime.Value.AddDays(1)); if (!string.IsNullOrEmpty(ip)) sql.Where("ip = @0", ip); sql.OrderBy($"LoginTime"); return DbManager.Create().Fetch(sql); } } }