SysLogRepository.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using CommonTool;
  6. using YZXYH.Repository.Models;
  7. namespace YZXYH.Repository
  8. {
  9. public partial class SysLogRepository
  10. {
  11. /// <summary>
  12. /// 写入数据库操作日志
  13. /// </summary>
  14. /// <param name="pcLogCommand">操作命令("用户类型|用户命令")</param>
  15. /// <param name="pcLogMsg">日志信息</param>
  16. /// <param name="pcUserNo">用户编号</param>
  17. /// <param name="pcErrorMsg">错误日志</param>
  18. /// <param name="pcGranduationYear">普通校友用户的毕业年份</param>
  19. /// <param name="pcLogMsgType">日志类型</param>
  20. public void AddLog(string pcLogCommand, string pcLogMsg, string pcUserNo, string pcErrorMsg = "", string pcGranduationYear = "", LogMsgType pcLogMsgType= LogMsgType.Information)
  21. {
  22. string lcLogSite= WebLibs.CurPageName;
  23. string[] ltArr = lcLogSite.Split(new []{'_'}, StringSplitOptions.RemoveEmptyEntries);
  24. if (pcLogCommand.IndexOf("Login", StringComparison.Ordinal) > 0 && ltArr.Length> 1 && ltArr[1].Length > 30 )
  25. {
  26. lcLogSite = ltArr[0] + "_" + SysSecurity.Decrypt(ltArr[1]);
  27. }
  28. SysLog loSysLogInfo = new SysLog()
  29. {
  30. //Id = Guid.NewGuid().ToString("N"),
  31. LogDate =DateTime.Now,
  32. SysLogType = ((int)pcLogMsgType).ToString(),
  33. LogCommand = pcLogCommand,
  34. LogMessage = pcLogMsg,
  35. UserNo = pcUserNo,
  36. GraduationYear = pcGranduationYear,
  37. LogErrorMessage = pcErrorMsg,
  38. LogSite = lcLogSite,
  39. UserHostAddress = HttpContext.Current.Request.UserHostAddress
  40. };
  41. InsertNoId(loSysLogInfo);
  42. Save();
  43. }
  44. /// <summary>
  45. /// 管理员编码进行年级筛选用户日志
  46. /// </summary>
  47. /// <param name="pcSysLogs">数据源</param>
  48. /// <param name="pcUserNo">管理员编码</param>
  49. /// <returns>SysLogs</returns>
  50. public List<SysLog> GetUserSysLogs(List<SysLog> pcSysLogs, string pcUserNo)
  51. {
  52. var graduationStr = GetSingle(s => s.UserNo == pcUserNo).GraduationYear;
  53. if (graduationStr.Contains("ALL"))
  54. return pcSysLogs;
  55. List<SysLog> loSysLogInfos = new List<SysLog>();
  56. string[] graduationStrs = graduationStr.Split(',');
  57. foreach (var graduation in graduationStrs)
  58. loSysLogInfos.AddRange(pcSysLogs.Where(s => s.GraduationYear == graduation));
  59. return loSysLogInfos;
  60. }
  61. }
  62. }