颐和api

LogController.cs 3.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Microsoft.Extensions.Logging;
  7. using Microsoft.AspNetCore.Authorization;
  8. using Api.SignToken;
  9. using MadRunFabric.Common;
  10. using System.Threading;
  11. using System.Security.Claims;
  12. using SignTokenApi.IRepositories;
  13. using MongoDB.Driver;
  14. using MongoDB.Bson;
  15. using MadRunFabric.Model;
  16. // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
  17. namespace SignTokenApi.Controllers
  18. {
  19. [Authorize]
  20. [Route("api/[controller]")]
  21. public class LogController : BaseController
  22. {
  23. private readonly ISys_Login_LogsRepository _sys_login_logsRepository;
  24. private readonly ILogger<PermissionController> _logger;
  25. public LogController(ISys_Login_LogsRepository sys_login_logsRepository,ILogger<PermissionController> logger)
  26. {
  27. _sys_login_logsRepository = sys_login_logsRepository;
  28. _logger = logger;
  29. }
  30. [AllowAnonymous]
  31. [HttpGet("getlogs")]
  32. public IActionResult GetLogs()
  33. {
  34. var logs = _sys_login_logsRepository.GetLogs();
  35. return Success("获取成功", logs);
  36. }
  37. /// <summary>
  38. /// 查詢登录记录
  39. /// </summary>
  40. /// <param name="keyword"></param>
  41. /// <param name="stime"></param>
  42. /// <param name="etime"></param>
  43. /// <param name="pageindex"></param>
  44. /// <param name="pagesize"></param>
  45. /// <returns></returns>
  46. [HttpGet("getlistbypage")]
  47. public async Task<IActionResult> GetListsByPageAsync(string keyword, string stime, string etime, int pageindex = 1, int pagesize = 10)
  48. {
  49. #region 条件信息
  50. ////排序字段
  51. var sort = Builders<Sys_Login_Logs>.Sort.Descending("time");
  52. var list = await _sys_login_logsRepository.GetByPage(null, pageindex, pagesize, sort);
  53. var redCount = await _sys_login_logsRepository.CountAsync(null); //获取总数
  54. //根据条件查询集合
  55. var listApp = new List<FilterDefinition<Sys_Login_Logs>>();
  56. listApp.Add(Builders<Sys_Login_Logs>.Filter.Eq("state", 1));
  57. if (!string.IsNullOrEmpty(stime))
  58. listApp.Add(Builders<Sys_Login_Logs>.Filter.Gt("time", stime));
  59. if (!string.IsNullOrEmpty(etime))
  60. listApp.Add(Builders<Sys_Login_Logs>.Filter.Lt("time", etime));
  61. //模糊查询
  62. if (!string.IsNullOrEmpty(keyword))
  63. listApp.Add(Builders<Sys_Login_Logs>.Filter.Where(s => s.username.Contains(keyword) || s.usercode.Contains(keyword)));
  64. #endregion
  65. int recordCount = 0;
  66. if (listApp.Count > 0)
  67. {
  68. var filter = Builders<Sys_Login_Logs>.Filter.And(listApp);
  69. list = await _sys_login_logsRepository.GetByPage(filter, pageindex, pagesize, sort);
  70. redCount = await _sys_login_logsRepository.CountAsync(filter); //获取总数
  71. }
  72. recordCount = int.Parse(redCount.ToString());
  73. var obj = new
  74. {
  75. rows = list,
  76. total = recordCount
  77. };
  78. return Success("成功", obj);
  79. }
  80. }
  81. }