You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

144 lines
4.8 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Estsh.Core.IRepositories;
using Estsh.Core.IServices;
using Estsh.Core.Models;
using Estsh.Core.Util;
using System.Collections;
/***************************************************************************************************
*
* 更新人sitong.dong
* 描述:用户登录处理类
* 修改时间2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Services
{
public enum LoginStatus { USERNAMENOEXISTED, PASSWORDERROR, LOGINSUCESS };
/// <summary>
/// 处理登录过程
/// </summary>
public class AccountService : BaseService<SysEmp>, IAccountService
{
//private UserDal repository = new UserDal(RemotingProxyProvider._remotingProxy);
private readonly IUserRepository repository;
public AccountService(IUserRepository _repository) : base(_repository)
{
repository = _repository;
}
#region 系统登录
/// <summary>
/// 用户登录
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public Hashtable login(SysEmp user)
{
Hashtable result = new Hashtable();
LoginStatus status;
SysEmp userInfo = null;
try
{
if (userInfo != null)
{
string userPassword = MD5Encrypt.NewObject.MD5(user.Passwd);
if (userInfo != null && userInfo.EmpId == 0)
{
if (userInfo.Passwd == userPassword)
{
status = LoginStatus.LOGINSUCESS;
}
else
{
status = LoginStatus.PASSWORDERROR;
}
}
else
{
status = LoginStatus.USERNAMENOEXISTED;
}
}
else
{
userInfo = repository.getUserInfo(" and emp_no ='" + user.EmpNo.Trim() + "' ");
string userPassword = MD5Encrypt.NewObject.MD5(user.Passwd);
if (userInfo != null && userInfo.EmpId > 0)
{
if (userInfo.Passwd == userPassword)
{
status = LoginStatus.LOGINSUCESS;
userInfo.EmpNoMD5 = MD5Encrypt.NewObject.MD5(user.EmpNo).Trim();
}
else
{
status = LoginStatus.PASSWORDERROR;
}
}
else
{
status = LoginStatus.USERNAMENOEXISTED;
}
}
}
catch (Exception e)
{
status = LoginStatus.USERNAMENOEXISTED;
System.Console.WriteLine(e.Message);
}
result.Add("status", status);
result.Add("userInfo", userInfo);
return result;
}
#endregion
#region 修改密码
public Hashtable EditUserPassword(string userId, string oldPasWord, string newPasWord,string updateEmpId)
{
Hashtable result = new Hashtable();
string msg = string.Empty;
bool status = false;
SysEmp userInfo = repository.getUserInfo(" and emp_id ='" + userId.Trim() + "' ");
if (userInfo != null)
{
oldPasWord = MD5Encrypt.NewObject.MD5(oldPasWord);
if (oldPasWord == userInfo.Passwd)
{
newPasWord = MD5Encrypt.NewObject.MD5(newPasWord);
status = repository.UpdatePassword(userId, newPasWord, updateEmpId);
if (status)
{
msg = "修改成功!";
}
else
{
msg = "修改失败!";
}
}
else
{
msg = "原始密码输入错误!请检查……";
}
}
else
{
msg = "没查询到该用户的信息!";
}
result.Add("status", status);
result.Add("msg", msg);
return result;
}
#endregion
//获取工厂信息
public List<SysFactory> getSelectFactory(int factoryID)
{
return repository.getSelectFactory(factoryID);
}
}
}