| | |
| | | using WMS.Entity.BllTaskEntity; |
| | | using WMS.DAL; |
| | | using Utility; |
| | | using System.Text.RegularExpressions; |
| | | |
| | | namespace WMS.BLL.SysServer |
| | | { |
| | | public class UserInforServer : IUserInforServer |
| | | { |
| | | public IUserInforRepository UserSvc { get; set; } |
| | | readonly IMapper _mapper; |
| | | private readonly IFunSettingServer _setting; |
| | | private static readonly SqlSugarScope Db = DataContext.Db; |
| | | private readonly UserManager _userManager; |
| | | public UserInforServer(IUserInforRepository userSvc, IMapper mapper, IFunSettingServer setting, UserManager userManager) |
| | | public UserInforServer(IMapper mapper, IFunSettingServer setting, UserManager userManager) |
| | | { |
| | | UserSvc = userSvc; |
| | | _mapper = mapper; |
| | | _setting = setting; |
| | | _userManager = userManager; |
| | |
| | | public async Task<int> LoginAdmin(string loginName, string loginPwd) |
| | | { |
| | | //loginPwd = Md5Tools.CalcMd5(loginPwd); |
| | | var modUser = await Db.Queryable<SysUserInfor>().FirstAsync(m => m.UserName == loginName && m.PassWord == loginPwd); |
| | | var modUser = await Db.Queryable<SysUserInfor>().FirstAsync(m => m.UserName == loginName && m.PassWord == loginPwd &&m.IsDel=="0"); |
| | | if (modUser != null) //账号密码是否正确 |
| | | { |
| | | if (modUser.Status == "0") //当前账号是否正常启用 |
| | |
| | | return -1; |
| | | } |
| | | } |
| | | public SysUserInfor CeShi() |
| | | { |
| | | var date = UserSvc.ceshi(); |
| | | |
| | | return date; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取用户角色信息 |
| | |
| | | /// <returns></returns> |
| | | public async Task<List<UserInfoDto>> GetUserRoleList(string UserName, string DepartmentNo, string RoleNo, string Status) |
| | | { |
| | | var modUser = await Db.Queryable<SysUserInfor>().FirstAsync(s => s.Id == _userManager.UserId); |
| | | return await Db.Queryable<SysUserInfor>() |
| | | .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) |
| | | .LeftJoin<SysDepartment>((a, b, c) => a.DepartmentNo == c.DepartmentNo) |
| | | .LeftJoin<SysRoles>((a, b, c, d) => a.RoleNo == d.RoleNo) |
| | | .Where((a,b,c,d)=>d.IsDel == "0") |
| | | .WhereIF(!string.IsNullOrEmpty(UserName), a => a.UserName.Contains(UserName)) |
| | | .WhereIF(!string.IsNullOrEmpty(DepartmentNo), a => a.DepartmentNo == DepartmentNo) |
| | | .WhereIF(!string.IsNullOrEmpty(RoleNo), a => a.RoleNo == RoleNo) |
| | | .WhereIF(!string.IsNullOrEmpty(Status), a => a.Status == Status) |
| | | .WhereIF(modUser.UserName.ToUpper() != "ADMIN", a => a.CreateUser == _userManager.UserId) |
| | | .Where(a => a.IsDel == "0") |
| | | .Select<UserInfoDto>() |
| | | .Select<UserInfoDto>((a, b, c, d) => new UserInfoDto() |
| | | { |
| | | RealName = a.RealName, |
| | | CreateUserName = b.RealName, |
| | | DepartmentName = c.DepartmentName, |
| | | RoleName = d.RoleName, |
| | | }, true) |
| | | .ToListAsync(); |
| | | } |
| | | |
| | |
| | | } |
| | | else if (count == 0) |
| | | { |
| | | //新增用户 |
| | | //i = await UserSvc.InsertUserInfo(userinfo); |
| | | userinfo.PassWord = Md5Tools.CalcMd5("boxline"); |
| | | userinfo.SetPasswordTime = DateTime.Now; |
| | | userinfo.CreateTime = DateTime.Now; |
| | | userinfo.CreateUser = _userManager.UserId; |
| | | i = await Db.Insertable(userinfo).ExecuteCommandAsync(); |
| | | if (i <= 0) |
| | | throw Oops.Bah("新增用户信息失败"); |
| | |
| | | } |
| | | else if (count == 0) |
| | | { |
| | | userdto.UpdateUser = _userManager.UserId; |
| | | userdto.UpdateTime = DateTime.Now; |
| | | i = await Db.Updateable(userlist) |
| | | .UpdateColumns(s => new { s.UserName, s.UserNo, s.Sex, s.RoleNo, s.RealName, s.Phone, s.Paper, s.Nationality, s.JobNo, s.Email, s.Demo, s.Addres }) |
| | | .UpdateColumns(s => new { s.UserName, s.UserNo, s.Sex, s.RoleNo, s.RealName, s.Phone, s.Paper, s.Nationality, s.JobNo, s.Email, s.Demo, s.Addres, s.UpdateUser, s.UpdateTime }) |
| | | .ExecuteCommandAsync(); |
| | | if (i <= 0) |
| | | throw Oops.Bah("编辑用户信息失败"); |
| | |
| | | /// </summary> |
| | | /// <param name="userids">用户id</param> |
| | | /// <returns></returns> |
| | | public async Task<SysUserInfor> GetUserInfoById(int userids) |
| | | public async Task<SysUserInfor> GetUserInfoById(int userid) |
| | | { |
| | | return await Db.Queryable<SysUserInfor>().FirstAsync(s => s.Id == userids && s.IsDel == "0"); |
| | | return await Db.Queryable<SysUserInfor>().FirstAsync(s => s.Id == userid && s.IsDel == "0"); |
| | | } |
| | | |
| | | /// <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 pwdNew, int userId) |
| | | public async Task<int> UptUserPassWord(string pwdNew,string pwdNewTwo, int userId) |
| | | { |
| | | var funSet = Db.Queryable<SysFunSetting>().Where(m => m.IsDel == "0" && m.FunSetName == "密码规则" && m.IsEnable == "NO").ToList().FirstOrDefault(); |
| | | if (funSet != null) |
| | | { |
| | | bool t = false; |
| | | switch (funSet.FunSetNo) |
| | | { |
| | | case "Fun052": //数字,字母,符号 |
| | | t = Regex.IsMatch(pwdNewTwo, @"^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*)(?=.*[^0-9A-Za-z].*)).{3,}"); |
| | | break; |
| | | case "Fun053": //字母,数字 |
| | | t = Regex.IsMatch(pwdNewTwo, @"^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*)).{2,}"); |
| | | break; |
| | | case "Fun051": //数字,字母,符号,长度 |
| | | t = Regex.IsMatch(pwdNewTwo, @"^(?=.*[0-9])(?=.*[a-zA-Z])(?=([\x21-\x7e]+)[^a-zA-Z0-9]).{8,30}"); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | if (!t) |
| | | { |
| | | throw Oops.Bah("输入密码不符合密码规则"); |
| | | } |
| | | } |
| | | return await Db.Updateable<SysUserInfor>() |
| | | .Where(s => s.Id == userId) |
| | | .SetColumns(s => s.UpdateTime == DateTime.Now) |
| | | .SetColumns(s => s.UpdateUser == _userManager.UserId) |
| | | .SetColumns(s => s.SetPasswordTime == DateTime.Now) |
| | | .ExecuteCommandAsync(); |
| | | .Where(s => s.Id == userId) |
| | | .SetColumns(s => s.UpdateTime == DateTime.Now) |
| | | .SetColumns(s => s.UpdateUser == _userManager.UserId) |
| | | .SetColumns(s => s.PassWord == pwdNew) |
| | | .SetColumns(s => s.SetPasswordTime == DateTime.Now) |
| | | .ExecuteCommandAsync(); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// x天后提醒用户修改密码 |