/// <summary> /// 更新密码 /// </summary> /// <param name="user"></param> /// <returns></returns> public async Task <string> UpdatePwd(UpdatePwdVm user) { if (user == null) { return(Tip.BadRequest); } if (string.IsNullOrEmpty(user.Pwd) || string.IsNullOrEmpty(user.OldPwd)) { return(Tip.BadRequest); } var currentUser = await Entity.FirstOrDefaultAsync(r => r.Eid.Equals(user.Eid)); if (currentUser == null) { return("用户不存在"); } var pwd = CodingUtils.MD5(user.OldPwd); if (!currentUser.Pwd.Equals(pwd)) { return("旧密码错误"); } var newPwd = CodingUtils.MD5(user.Pwd); var rt = this.Entity.Where(r => r.Eid.Equals(user.Eid)).Set(r => r.DataChangeLastTime, DateTime.Now).Set(r => r.Pwd, newPwd).Update() > 0; return(!rt ? Tip.UpdateError : string.Empty); }
/// <summary> /// 手动添加用户 /// </summary> /// <returns></returns> public async Task <Tuple <bool, string> > UserAdd(SystemUsers info, Token user) { if (info == null || string.IsNullOrEmpty(info.UserName) || info.RoleTid < 1) { return(new Tuple <bool, string>(false, Tip.BadRequest)); } info.Eid = info.Eid.ToLower(); var existItem = await Entity.FirstOrDefaultAsync(r => r.Eid.Equals(info.Eid)); if (existItem != null) { return(new Tuple <bool, string>(false, "该员工已存在")); } var role = await this.Entitys.SystemRole.FirstOrDefaultAsync(r => r.Tid.Equals(info.RoleTid)); if (role == null) { return(new Tuple <bool, string>(false, Tip.RoleNotExist)); } //获取创建者角色的包括父级的名称列表 var createRoleList = new List <long>(); GetRoleName(role, createRoleList); createRoleList.Reverse(); createRoleList = createRoleList.Distinct().ToList(); info.IsActive = true; info.Pwd = !string.IsNullOrEmpty(info.Pwd) ? info.Pwd : info.Eid; info.Pwd = CodingUtils.MD5(info.Pwd); info.MenuRights = role.MenuRights; info.DataChangeLastTime = DateTime.Now; info.CreateRoleName = "," + string.Join(",", createRoleList) + ","; info.CreateUser = user.Eid; var inertResult = DB.Insert(info) > 0; if (!inertResult) { return(new Tuple <bool, string>(false, Tip.SystemError)); } return(new Tuple <bool, string>(true, string.Empty)); }
/// <summary> /// 登录 /// </summary> /// <param name="info"></param> /// <returns></returns> public async Task <Tuple <bool, string> > LogOn(LogOnVM info) { try { if (info == null || string.IsNullOrEmpty(info.eid) || string.IsNullOrEmpty(info.pwd)) { return(new Tuple <bool, string>(false, Tip.BadRequest)); } var existUser = await this.Entity.FirstOrDefaultAsync(r => r.IsActive && r.Eid.Equals(info.eid)); if (existUser == null) { return(new Tuple <bool, string>(false, "该账号不存在,请联系系统管理员!")); } var pwd = CodingUtils.MD5(info.pwd); if (!existUser.Pwd.Equals(pwd)) { return(new Tuple <bool, string>(false, "密码错误!")); } var systemUserAndRole = await(from u in this.Entity from ro in this.Entitys.SystemRole.Where(r => r.Tid.Equals(u.RoleTid)).DefaultIfEmpty() where u.Eid.Equals(info.eid) select new { user = u, role = ro }).FirstOrDefaultAsync(); var systemUser = systemUserAndRole?.user; if (systemUser == null) { return(new Tuple <bool, string>(false, "该账号不存在,请联系系统管理员!")); } if (!systemUser.IsActive) { return(new Tuple <bool, string>(false, "该账号已被禁用,请联系系统管理员!")); } var role = systemUserAndRole.role ?? new SystemRole(); var loginIp = WebUtils.GetClientIP(); var userAgent = WebUtils.GetUserAgent(); var eid = info.eid.ToLower(); //更新 var updateQuery = this.Entity.Where(r => r.Eid.Equals(eid)) .Set(r => r.LoginIp, loginIp) .Set(r => r.LastLoginTime, DateTime.Now) .Set(r => r.UserAgent, userAgent); //如果role不存在 也就是没有角色 menurights却有值 if (string.IsNullOrEmpty(role.RoleName) && !string.IsNullOrEmpty(systemUser.MenuRights)) { updateQuery = updateQuery.Set(r => r.MenuRights, string.Empty); } var updateResult = await updateQuery.UpdateAsync() > 0; if (!updateResult) { return(new Tuple <bool, string>(false, "用户信息更新出错!")); } WriteLoginCookie(new Token { Code = systemUser.UserName, Eid = eid, MenuRights = systemUser.MenuRights, RoleTid = role.Tid, RoleName = role.RoleName, }); return(new Tuple <bool, string>(true, null)); } catch (Exception ex) { //LogHelper.Warn("login", ex); return(new Tuple <bool, string>(false, "登录出错")); } }