SysUserRepository.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. using System;
  2. using System.Configuration;
  3. using CommonTool;
  4. using YZXYH.Repository.Models;
  5. namespace YZXYH.Repository
  6. {
  7. public partial class SysUserRepository
  8. {
  9. /// <summary>
  10. /// 管理员登录
  11. /// </summary>
  12. /// <param name="pcSysNo">管理员账号</param>
  13. /// <param name="pcPassword">管理员密码</param>
  14. /// <param name="pcErrorMsg">错误信息</param>
  15. /// <param name="userType">管理员类型</param>
  16. /// <returns></returns>
  17. public bool Login(string pcSysNo, string pcPassword, ref string pcErrorMsg, UserType userType)
  18. {
  19. if (pcErrorMsg == null) throw new ArgumentNullException(nameof(pcErrorMsg));
  20. bool lbRetval = false;
  21. string lcMsg = "失败";
  22. pcErrorMsg = "";
  23. if (!IsExist(u => u.SysNo == pcSysNo && u.IsLocked == "N"))
  24. pcErrorMsg = "管理员不存在!";
  25. else
  26. {
  27. SysUser loSysUser = GetSingle(u => u.SysNo == pcSysNo);
  28. pcPassword = SysSecurity.Encrypt4CPlus(pcPassword.Trim());
  29. if (loSysUser.SysPassword == pcPassword.Trim())
  30. {
  31. lbRetval = true;
  32. lcMsg = "成功";
  33. string lcGuid = UtilRandom.GetGuid();
  34. SysUserInfo loUserInfo = new SysUserInfo(pcSysNo, pcPassword, loSysUser.SysName, userType)
  35. {
  36. UserGuid = lcGuid
  37. };
  38. UserListSession.Instance.Add(lcGuid, loUserInfo);
  39. string lcSessionName = ConfigurationManager.AppSettings["SysUserInfoSession"];
  40. SessionHelper.Instance.AddSession(lcSessionName, lcGuid, 30);
  41. }
  42. else
  43. pcErrorMsg = "管理员密码错误!";
  44. new SysLogRepository(Context).AddLog(userType + " | Login", " 登录 " + lcMsg,
  45. loSysUser.SysName + "|" + pcSysNo, pcErrorMsg);
  46. }
  47. return lbRetval;
  48. }
  49. /// <summary>
  50. /// 修改密码
  51. /// </summary>
  52. /// <param name="pcSysNo">管理员账号</param>
  53. /// <param name="pcOldPassword">原密码</param>
  54. /// <param name="pcNewPassword">新密码</param>
  55. /// <param name="pcMsg">操作信息</param>
  56. /// <param name="sysUserInfo"></param>
  57. /// <returns></returns>
  58. public bool ModifyPassword(string pcSysNo, string pcOldPassword, string pcNewPassword, ref string pcMsg, SysUserInfo sysUserInfo)
  59. {
  60. if (pcMsg == null) throw new ArgumentNullException(nameof(pcMsg));
  61. bool lbRetval = false;
  62. string lcErrorMsg = "";
  63. SysUser sysUser = GetSingle(a => a.SysNo == pcSysNo && a.IsLocked == "N");
  64. if (sysUser != null)
  65. {
  66. if (SysSecurity.Encrypt4CPlus(pcOldPassword.Trim()) == sysUser.SysPassword)
  67. {
  68. Update(a => a.SysNo == pcSysNo, a => new SysUser { SysPassword = SysSecurity.Encrypt4CPlus(pcNewPassword.Trim()) });
  69. if (Save())
  70. {
  71. pcMsg = "密码修改成功";
  72. lbRetval = true;
  73. }
  74. else
  75. lcErrorMsg = pcMsg = "密码修改失败";
  76. }
  77. else
  78. pcMsg = "原密码错误";
  79. UnitOfWork.SysLogRepository.AddLog(sysUserInfo.UserType + " | Modify", " 修改密码" + pcMsg,
  80. sysUser.SysName + "|" + sysUser.SysNo, lcErrorMsg);
  81. }
  82. else
  83. {
  84. pcMsg = "用户不存在或已被锁定!";
  85. }
  86. return lbRetval;
  87. }
  88. /// <summary>
  89. /// 重置密码
  90. /// </summary>
  91. /// <param name="pcSysNo"></param>
  92. /// <param name="pcPassword"></param>
  93. /// <param name="adminPassword"></param>
  94. /// <param name="pcMsg"></param>
  95. /// <param name="sysUserInfo"></param>
  96. /// <returns></returns>
  97. /// <exception cref="ArgumentNullException"></exception>
  98. public bool ResetPassword(string pcSysNo, string pcPassword, string adminPassword, ref string pcMsg, SysUserInfo sysUserInfo)
  99. {
  100. if (pcMsg == null) throw new ArgumentNullException(nameof(pcMsg));
  101. bool lbRetval = false;
  102. string lcErrorMsg = "";
  103. SysUser sysUser = GetSingle(a => a.SysNo == pcSysNo && a.IsLocked == "N");
  104. if (sysUser != null)
  105. {
  106. if (string.IsNullOrEmpty(adminPassword) || SysSecurity.Encrypt4CPlus(sysUserInfo.Password.Trim()) == adminPassword)
  107. {
  108. Update(a => a.SysNo == pcSysNo, a => new SysUser { SysPassword = SysSecurity.Encrypt4CPlus(pcPassword.Trim()) });
  109. if (Save())
  110. {
  111. pcMsg = "密码修改成功";
  112. lbRetval = true;
  113. }
  114. else
  115. lcErrorMsg = pcMsg = "密码修改失败";
  116. }
  117. else
  118. pcMsg = "管理员密码错误";
  119. UnitOfWork.SysLogRepository.AddLog(sysUserInfo.UserType + " | Reset", " 重置密码" + pcMsg,
  120. sysUserInfo.UserName + "|" + sysUserInfo.UserNo, lcErrorMsg);
  121. }
  122. else
  123. {
  124. pcMsg = "用户不存在或已被锁定!";
  125. }
  126. return lbRetval;
  127. }
  128. }
  129. }