using AutoMapper;
|
using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using System.Threading.Tasks;
|
using Model.ModelDto.SysDto;
|
using WMS.Entity.SysEntity;
|
using WMS.IBLL.ISysServer;
|
using WMS.IDAL.ISysInterface;
|
using System.Security.Cryptography;
|
using OracleInternal.Secure.Network;
|
using Utility.Tools;
|
using System.Linq;
|
|
namespace WMS.BLL.SysServer
|
{
|
public class UserInforServer : IUserInforServer
|
{
|
public IUserInforRepository UserSvc { get; set; }
|
readonly IMapper _mapper;
|
private readonly IFunSettingServer _setting;
|
public UserInforServer(IUserInforRepository userSvc, IMapper mapper, IFunSettingServer setting)
|
{
|
UserSvc = userSvc;
|
_mapper = mapper;
|
_setting = setting;
|
}
|
|
public bool LoginAdmin(string loginName, string loginPwd, out int adminId)
|
{
|
//loginPwd = Md5Tools.CalcMd5(loginPwd);
|
var date = UserSvc.GetAllAsync().First(m => m.UserName == loginName && m.PassWord == loginPwd);
|
|
if (date != null) //账号密码是否正确
|
{
|
if (date.Status == "0") //当前账号是否正常启用
|
{
|
//最后登陆时间
|
UserSvc.UptUserLoginTime(date.Id);
|
adminId = date.Id;
|
return true;
|
}
|
else //当前账号被禁用
|
{
|
adminId = 0;
|
return true;
|
}
|
}
|
else //账号密码不正确或没有此账号
|
{
|
adminId = 0;
|
return false;
|
}
|
}
|
public SysUserInfor CeShi()
|
{
|
var date = UserSvc.ceshi();
|
|
return date;
|
|
}
|
|
/// <summary>
|
/// 获取用户角色信息
|
/// </summary>
|
/// <returns></returns>
|
public List<UserInfoDto> GetUserRoleList(string UserName, string DepartmentNo, string RoleNo, string Status)
|
{
|
|
string str = "select user1.Id Id,user1.UserNo UserNo,user1.UserName UserName,user1.RealName RealName,user1.PassWord PassWord,user1.JobNo JobNo,user1.Status Status,user1.Sex Sex,user1.Nationality Nationality,user1.CreateTime CreateTime,user1.CreateUser CreateUser,user1.Paper Paper,user1.Phone Phone,user1.Email Email,user1.Addres Addres,user1.Demo Demo,role.RoleName,user2.RealName CreateUserName,depa.DepartmentName DepartmentName from SysUserInfor user1 left join SysRoles role on user1.RoleNo = role.RoleNo left join SysUserInfor user2 on user1.CreateUser = user2.Id left join SysDepartment depa on user1.DepartmentNo = depa.DepartmentNo where user1.IsDel = '0'";
|
|
//判断登录名称是否为空
|
if (!string.IsNullOrEmpty(UserName))
|
{
|
str += $" and user1.UserName like '%{UserName}%'";
|
}
|
//判断部门号是否为0
|
if (!string.IsNullOrEmpty(DepartmentNo))
|
{
|
str += $" and user1.DepartmentNo = '{DepartmentNo}'";
|
}
|
//判断角色号是否为空
|
if (!string.IsNullOrEmpty(RoleNo))
|
{
|
str += $" and user1.RoleNo = '{RoleNo}'";
|
}
|
//判断状态是否为空
|
if (!string.IsNullOrEmpty(Status))
|
{
|
str += $" and user1.Status = '{Status}'";
|
}
|
|
List<UserInfoDto> userInfoDtos = UserSvc.GetUserRoleList(str);
|
|
//var arr = Md5Tools.CalcMd5(userInfoDtos[3].PassWord);
|
|
return userInfoDtos;
|
}
|
|
/// <summary>
|
/// 根据编号获取用户信息列表
|
/// </summary>
|
/// <param name="UserNo">用户编号</param>
|
/// <param name="userName">用户登录名</param>
|
/// <param name="id">用户ID</param>
|
/// <returns></returns>
|
public int GetUserInfoByNo(string userNo, string userName,int id)
|
{
|
string str = $"select * from SysUserInfor where IsDel=0 and (UserNo = '{userNo}' or UserName = '{userName}') ";
|
if (id!=0)
|
{
|
str += $"and Id != {id} ";
|
}
|
List<SysUserInfor> user = UserSvc.GetUserInfoByNo(str);
|
return user.Count;
|
}
|
|
/// <summary>
|
/// 新增用户信息
|
/// </summary>
|
/// <param name="UserInfoDto">用户视图模型</param>
|
/// <returns></returns>
|
/// <exception cref="Exception">异常</exception>
|
public async Task<int> InsertUserInfo(UserInfoDto UserInfoDto)
|
{
|
//异常
|
try
|
{
|
//数据模型映射
|
SysUserInfor userinfo = _mapper.Map<SysUserInfor>(UserInfoDto);
|
//判断用户号是否唯一
|
int count = GetUserInfoByNo(userinfo.UserNo,userinfo.UserName,0);
|
int i = 0;
|
if (count > 0)
|
{
|
i = 3;
|
}
|
else if (count ==0)
|
{
|
//新增用户
|
i = await UserSvc.InsertUserInfo(userinfo);
|
}
|
return i;
|
}
|
catch (Exception ex)
|
{
|
//抛出异常
|
throw new Exception("新增用户信息异常", ex);
|
}
|
|
}
|
|
/// <summary>
|
/// 删除用户信息
|
/// </summary>
|
/// <param name="user">用户实体模型</param>
|
/// <returns></returns>
|
/// <exception cref="Exception">异常</exception>
|
public async Task<int> DeleteUserinfo(SysUserInfor user)
|
{
|
//异常
|
try
|
{
|
//删除
|
int i = await UserSvc.DeleteUserinfo(user);
|
//返回数据
|
return i;
|
}
|
catch (Exception ex)
|
{
|
//抛出异常
|
throw new Exception("删除用户信息异常", ex);
|
}
|
}
|
|
/// <summary>
|
/// 编辑用户信息
|
/// </summary>
|
/// <param name="userdto">用户Dto</param>
|
/// <returns></returns>
|
/// <exception cref="Exception">异常exception>
|
public async Task<int> UpdateUserinfo(UserInfoDto userdto)
|
{
|
//异常
|
try
|
{
|
//映射数据模型
|
SysUserInfor userlist = _mapper.Map<SysUserInfor>(userdto);
|
//判断用户号是否唯一
|
int count = GetUserInfoByNo(userdto.UserNo, userdto.UserName,userdto.Id);
|
int i = 0;
|
if (count > 0)
|
{
|
i = 3;
|
}
|
else if (count == 0)
|
{
|
//编辑
|
i = await UserSvc.UpdateUserinfo(userlist);
|
}
|
|
return i;
|
}
|
catch (Exception ex)
|
{
|
//抛出异常
|
throw new Exception("编辑用户信息异常", ex);
|
}
|
}
|
|
/// <summary>
|
/// 根据id获取用户信息列表
|
/// </summary>
|
/// <param name="userids">用户id</param>
|
/// <returns></returns>
|
public SysUserInfor GetUserInfoById(int userids)
|
{
|
//获取信息列表
|
SysUserInfor user= UserSvc.GetUserInfoById(userids);
|
//返回数据
|
return user;
|
}
|
|
/// <summary>
|
/// 修改用户密码
|
/// </summary>
|
/// <param name="pwdOld">原密码</param>
|
/// <param name="pwdNew">新密码</param>
|
/// <param name="pwdNewTwo">确认密码</param>
|
/// <param name="userId">用户id</param>
|
/// <returns></returns>
|
/// <exception cref="Exception">捕获异常</exception>
|
public async Task<int> UptUserPassWord(string pwdOld, string pwdNew, string pwdNewTwo, int userId)
|
{
|
//捕获异常
|
try
|
{
|
//验证两次新密码是否一致
|
if (pwdNew == pwdNewTwo)
|
{
|
int i = await UserSvc.UptUserPassWord(pwdOld, pwdNew, pwdNewTwo, userId);
|
return i;
|
}
|
else
|
{
|
return 3;
|
}
|
}
|
catch (Exception ex)
|
{
|
//抛出异常
|
throw new Exception("修改密码异常",ex);
|
}
|
}
|
/// <summary>
|
/// x天后提醒用户修改密码
|
/// </summary>
|
/// <param name="userId"></param>
|
/// <returns></returns>
|
public int IsPassWordTime(int userId)
|
{
|
//捕获异常
|
try
|
{
|
SysFunSetting funSettings = _setting.GetFunSettingByNo("Fun026");
|
if (funSettings != null && funSettings.IsEnable == "NO")
|
{
|
SysUserInfor userinfo = UserSvc.GetAllAsync().First(m => m.Id == userId);
|
if (userinfo.SetPasswordTime != null)
|
{
|
int days = string.IsNullOrEmpty(funSettings.SetValue) ? 30 : Convert.ToInt32(funSettings.SetValue);
|
bool isTime = userinfo.SetPasswordTime.Value.AddDays(days) < DateTime.Now;
|
if (isTime)
|
{
|
return 1;
|
}
|
}
|
}
|
return 0;
|
}
|
catch (Exception ex)
|
{
|
//抛出异常
|
throw new Exception("修改密码异常", ex);
|
}
|
}
|
}
|
}
|