using System;
using System.Configuration;
using CommonTool;
using YZXYH.Repository.Models;
namespace YZXYH.Repository
{
public partial class SysUserRepository
{
///
/// 管理员登录
///
/// 管理员账号
/// 管理员密码
/// 错误信息
/// 管理员类型
///
public bool Login(string pcSysNo, string pcPassword, ref string pcErrorMsg, UserType userType)
{
if (pcErrorMsg == null) throw new ArgumentNullException(nameof(pcErrorMsg));
bool lbRetval = false;
string lcMsg = "失败";
pcErrorMsg = "";
if (!IsExist(u => u.SysNo == pcSysNo && u.IsLocked == "N"))
pcErrorMsg = "管理员不存在!";
else
{
SysUser loSysUser = GetSingle(u => u.SysNo == pcSysNo);
pcPassword = SysSecurity.Encrypt4CPlus(pcPassword.Trim());
if (loSysUser.SysPassword == pcPassword.Trim())
{
lbRetval = true;
lcMsg = "成功";
string lcGuid = UtilRandom.GetGuid();
SysUserInfo loUserInfo = new SysUserInfo(pcSysNo, pcPassword, loSysUser.SysName, userType)
{
UserGuid = lcGuid
};
UserListSession.Instance.Add(lcGuid, loUserInfo);
string lcSessionName = ConfigurationManager.AppSettings["SysUserInfoSession"];
SessionHelper.Instance.AddSession(lcSessionName, lcGuid, 30);
}
else
pcErrorMsg = "管理员密码错误!";
new SysLogRepository(Context).AddLog(userType + " | Login", " 登录 " + lcMsg,
loSysUser.SysName + "|" + pcSysNo, pcErrorMsg);
}
return lbRetval;
}
///
/// 修改密码
///
/// 管理员账号
/// 原密码
/// 新密码
/// 操作信息
///
///
public bool ModifyPassword(string pcSysNo, string pcOldPassword, string pcNewPassword, ref string pcMsg, SysUserInfo sysUserInfo)
{
if (pcMsg == null) throw new ArgumentNullException(nameof(pcMsg));
bool lbRetval = false;
string lcErrorMsg = "";
SysUser sysUser = GetSingle(a => a.SysNo == pcSysNo && a.IsLocked == "N");
if (sysUser != null)
{
if (SysSecurity.Encrypt4CPlus(pcOldPassword.Trim()) == sysUser.SysPassword)
{
Update(a => a.SysNo == pcSysNo, a => new SysUser { SysPassword = SysSecurity.Encrypt4CPlus(pcNewPassword.Trim()) });
if (Save())
{
pcMsg = "密码修改成功";
lbRetval = true;
}
else
lcErrorMsg = pcMsg = "密码修改失败";
}
else
pcMsg = "原密码错误";
UnitOfWork.SysLogRepository.AddLog(sysUserInfo.UserType + " | Modify", " 修改密码" + pcMsg,
sysUser.SysName + "|" + sysUser.SysNo, lcErrorMsg);
}
else
{
pcMsg = "用户不存在或已被锁定!";
}
return lbRetval;
}
///
/// 重置密码
///
///
///
///
///
///
///
///
public bool ResetPassword(string pcSysNo, string pcPassword, string adminPassword, ref string pcMsg, SysUserInfo sysUserInfo)
{
if (pcMsg == null) throw new ArgumentNullException(nameof(pcMsg));
bool lbRetval = false;
string lcErrorMsg = "";
SysUser sysUser = GetSingle(a => a.SysNo == pcSysNo && a.IsLocked == "N");
if (sysUser != null)
{
if (string.IsNullOrEmpty(adminPassword) || SysSecurity.Encrypt4CPlus(sysUserInfo.Password.Trim()) == adminPassword)
{
Update(a => a.SysNo == pcSysNo, a => new SysUser { SysPassword = SysSecurity.Encrypt4CPlus(pcPassword.Trim()) });
if (Save())
{
pcMsg = "密码修改成功";
lbRetval = true;
}
else
lcErrorMsg = pcMsg = "密码修改失败";
}
else
pcMsg = "管理员密码错误";
UnitOfWork.SysLogRepository.AddLog(sysUserInfo.UserType + " | Reset", " 重置密码" + pcMsg,
sysUserInfo.UserName + "|" + sysUserInfo.UserNo, lcErrorMsg);
}
else
{
pcMsg = "用户不存在或已被锁定!";
}
return lbRetval;
}
}
}