admin
8 天以前 c92020bb3028a20db77f33f6481baf51b18be65b
Wms/WMS.BLL/SysServer/UserInforServer.cs
@@ -35,25 +35,52 @@
        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 &&m.IsDel=="0");
            if (modUser != null) //账号密码是否正确
            //查询密码已错误次数
            string pwdErrNumSql = $@"select PwdErrNum from SysUserInfor where UserName='{loginName}'";
            int pwdErrNum = Db.Ado.GetInt(pwdErrNumSql);
            //设定密码错误的次数
            string funNumSql = $@"select SetValue from SysFunSetting where IsDel='0' and IsEnable='NO' and FunSetNo='pwdErrNum' and GroupNo='pwdErrNum'";
            int funNum = Db.Ado.GetInt(funNumSql);
            //比较设定次数和已错误次数
            if (pwdErrNum < funNum)
            {
                if (modUser.Status == "0") //当前账号是否正常启用
                //loginPwd = Md5Tools.CalcMd5(loginPwd);
                var modUser = await Db.Queryable<SysUserInfor>().FirstAsync(m => m.UserName == loginName && m.PassWord == loginPwd && m.IsDel == "0");
                if (modUser != null) //账号密码是否正确
                {
                    //最后登陆时间
                    await Db.Updateable(modUser).UpdateColumns(s => s.LoginTime == DateTime.Now).ExecuteCommandAsync();
                    return modUser.Id;
                    if (modUser.Status == "0") //当前账号是否正常启用
                    {
                        //密码错误次数+1
                        string uptErrNumSql = $@"update SysUserInfor set PwdErrNum=0 where UserName='{loginName}'";
                        int uptErrNum = Db.Ado.ExecuteCommand(uptErrNumSql);
                        //最后登陆时间
                        await Db.Updateable(modUser).UpdateColumns(s => s.LoginTime == DateTime.Now).ExecuteCommandAsync();
                        return modUser.Id;
                    }
                    else //当前账号被禁用
                    {
                        return 0;
                    }
                }
                else //当前账号被禁用
                else //账号密码不正确或没有此账号
                {
                    return 0;
                    //密码错误次数+1
                    string addErrNumSql = $@"update SysUserInfor set PwdErrNum+=1 where UserName='{loginName}'";
                    int addErrNum = Db.Ado.ExecuteCommand(addErrNumSql);
                    return -1;
                }
            }
            else //账号密码不正确或没有此账号
            else//锁定账号
            {
                return -1;
                //账号改为停用
                string uptUserStatusSql = $@"update SysUserInfor set Status=1 where UserName='{loginName}'";
                int uptUserStatus = Db.Ado.ExecuteCommand(uptUserStatusSql);
                return -2;
            }
        }
        /// <summary>
@@ -67,12 +94,12 @@
                                        .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")
                                        .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)
                                        //.WhereIF(modUser.UserName.ToUpper() != "ADMIN", a => a.CreateUser == _userManager.UserId)
                                        .Where(a => a.IsDel == "0")
                                        .Select<UserInfoDto>((a, b, c, d) => new UserInfoDto()
                                        {
@@ -157,7 +184,7 @@
        public async Task<int> UpdateUserinfo(UserInfoDto userdto)
        {
            //映射数据模型
            SysUserInfor userlist = _mapper.Map<SysUserInfor>(userdto);
            SysUserInfor userInfo = _mapper.Map<SysUserInfor>(userdto);
            //判断用户号是否唯一
            int count = await GetUserInfoByNo(userdto.UserNo, userdto.UserName, userdto.Id);
            int i = 0;
@@ -169,9 +196,22 @@
            {
                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, s.UpdateUser, s.UpdateTime })
                //状态恢复正常,清除密码错误次数
                if (userdto.Status == "0")
                {
                    userInfo.PwdErrNum = 0;
                    i = await Db.Updateable(userInfo)
                    .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.Status, s.PwdErrNum, s.UpdateUser, s.UpdateTime })
                    .ExecuteCommandAsync();
                }
                else
                {
                    i = await Db.Updateable(userInfo)
                    .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.Status, s.UpdateUser, s.UpdateTime })
                    .ExecuteCommandAsync();
                }
                if (i <= 0)
                    throw Oops.Bah("编辑用户信息失败");
            }
@@ -195,7 +235,7 @@
        /// <param name="userId">用户id</param>
        /// <returns></returns>
        /// <exception cref="Exception">捕获异常</exception>
        public async Task<int> UptUserPassWord(string pwdNew,string pwdNewTwo, 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)