SyslogController.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6. using MES.Production.Service.IService;
  7. using Central.Control.Domain;
  8. using Ant.Service.Common;
  9. using Ant.Service.Common.Enums;
  10. using ChangFa.Machinery.WebPage.Controllers;
  11. namespace ChangFa.Machinery.WebPage.Areas.SysManage.Controllers
  12. {
  13. public class SyslogController : BaseController
  14. {
  15. #region 声明容器
  16. /// <summary>
  17. /// 系统日志管理
  18. /// </summary>
  19. ISyslogManage SyslogManage { get; set; }
  20. #endregion
  21. #region 基本视图
  22. /// <summary>
  23. /// 加载首页
  24. /// 日志特殊规则:
  25. /// 1、非管理员只能查看自己的操作内容
  26. /// </summary>
  27. [UserAuthorizeAttribute(ModuleAlias = "Syslog", OperaAction = "View")]
  28. public ActionResult Index()
  29. {
  30. //获取查询条件
  31. var level = Request.QueryString["level"];
  32. var action = Request.QueryString["actions"];
  33. var result = BindList(level, action);
  34. ViewData["logaction"] = Tools.BindEnums(typeof(enumOperator));
  35. ViewData["sellog"] = action;
  36. ViewData["lev"] = level;
  37. ViewBag.Search = base.keywords;
  38. return View(result);
  39. }
  40. /// <summary>
  41. /// 加载列表
  42. /// </summary>
  43. private object BindList(string level, string action)
  44. {
  45. var predicate = PredicateBuilder.True<SYS_LOG>();
  46. //日志级别
  47. if (!string.IsNullOrEmpty(level))
  48. {
  49. predicate = predicate.And(p => p.LEVELS == level);
  50. }
  51. //日志动作
  52. if (!string.IsNullOrEmpty(action))
  53. {
  54. predicate = predicate.And(p => p.ACTION == action);
  55. }
  56. //关键词
  57. if (!string.IsNullOrEmpty(base.keywords))
  58. {
  59. predicate = predicate.And(p => p.MESSAGE.Contains(keywords));
  60. }
  61. //人员
  62. if (!this.CurrentUser.IsAdmin)
  63. {
  64. predicate = predicate.And(p => p.CLIENTUSER == CurrentUser.Name);
  65. }
  66. return this.SyslogManage.Query(this.SyslogManage.LoadAll(predicate).OrderByDescending(p => p.DATES), base.page, base.pagesize);
  67. }
  68. /// <summary>
  69. /// 加载详情
  70. /// </summary>
  71. [UserAuthorizeAttribute(ModuleAlias = "Syslog", OperaAction = "Detail")]
  72. public ActionResult Detail(int? id)
  73. {
  74. var entity = this.SyslogManage.Get(p => p.ID == id) ?? new SYS_LOG();
  75. return View(entity);
  76. }
  77. #endregion
  78. #region 其他调用
  79. #endregion
  80. }
  81. }