using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using MadRunFabric.Common; using Microsoft.Extensions.Logging; using MessageApi.IRepositories; using MongoDB.Driver; using MadRunFabric.Model; namespace MessageApi.Controllers { /// /// 会员登录日志 - 暂停 /// [ApiVersion("6.0")] [Produces("application/json")] [Route("api/[controller]")] public class UserLoginLogsController : BaseController { private readonly ILogger _logger; private readonly ISys_User_LoginLogsRepository _sys_user_loginlogsrepository; public UserLoginLogsController( ILogger logger, ISys_User_LoginLogsRepository sys_user_loginlogsrepository ) { _logger = logger; _sys_user_loginlogsrepository = sys_user_loginlogsrepository; } /// /// 获取登录日志列表 by page /// /// 版本编号 /// 添加开始时间 /// 添加结束时间 /// 当前页 /// 每页条数 /// [HttpGet("getlistbypage")] public async Task GetListsByPageAsync(string keyword, string stime, string etime, int pageindex = 1, int pagesize = 10) { #region 条件信息 ////排序字段 var sort = Builders.Sort.Descending("logintime"); var list = await _sys_user_loginlogsrepository.GetByPage(null, pageindex, pagesize, sort); var redCount = await _sys_user_loginlogsrepository.CountAsync(null); //获取总数 //根据条件查询集合 var listApp = new List>(); listApp.Add(Builders.Filter.Eq("statetype", 0)); if (!string.IsNullOrEmpty(stime)) listApp.Add(Builders.Filter.Gt("logintime", stime)); if (!string.IsNullOrEmpty(etime)) listApp.Add(Builders.Filter.Lt("logintime", etime)); //模糊查询 if (!string.IsNullOrEmpty(keyword)) listApp.Add(Builders.Filter.Where(s => s.result.Contains(keyword))); #endregion int recordCount = 0; if (listApp.Count > 0) { var filter = Builders.Filter.And(listApp); list = await _sys_user_loginlogsrepository.GetByPage(filter, pageindex, pagesize, sort); redCount = await _sys_user_loginlogsrepository.CountAsync(filter); //获取总数 } recordCount = int.Parse(redCount.ToString()); var obj = new { state = "success", message = "成功", rows = list, total = recordCount, }; return Content(obj.ToJson()); } /// /// 获取登录日志详情 by id /// /// 登录日志id /// public async Task GetDetailsAsync(string id) { if (string.IsNullOrEmpty(id)) return Error("参数错误"); var model = await _sys_user_loginlogsrepository.GetSingle(id); if (model == null) return Error("获取失败"); var result = new { id = model.id, loginid = model.loginid, loginname = model.loginname, result = model.result, loginip = model.loginip, loginhostname = model.loginhostname, logintime = model.logintime.ToLocalTime(), loginouttime=model.loginouttime, statetype=model.statetype, content=model.content, }; return Success("获取成功", result); } /// /// 删除App版本信息 by ids /// /// string[] id /// [HttpPost("delete")] public async Task DeleteAsync(string[] ids) { int num = 0; if (ids == null && ids.Length <= 0) return Error("请选择要删除的记录"); foreach (var item in ids) { var model = await _sys_user_loginlogsrepository.GetSingle(item); model.isdelete = -1; if (await _sys_user_loginlogsrepository.Update(model)) num += 1; } if (num == ids.Length) return Success("删除成功"); if (num > 0 && num < ids.Length) return Error("部分删除失败,请查看后重新操作"); return Error("删除失败,请查看后重新操作"); } } }