public List <Menu> GetMenuListByRole(int id) { PeAdmin admin = _peAdminRepository.FindById(id); List <Menu> menuList = new List <Menu>(); if ((admin?.adminCode ?? "").Trim().ToUpper() == "SuperAdmin".ToUpper()) { menuList = _menuRepository.FindAll().OrderBy(x => x.sortIndex).ToList(); } else if (id == 0 || (admin?.adminCode ?? "").Trim().ToUpper() == "Admin".ToUpper()) { menuList = _menuRepository.FindAll().Where(x => x.state == 1).OrderBy(x => x.sortIndex).ToList(); } else { menuList = (from r in _peRoleRepository.FindListByClause(x => x.id == admin.adminType) join s in _menuRoleRepository.FindAll() on r.id equals s.roleId join m in _menuRepository.FindAll().Where(x => x.state == 1) on s.menuId equals m.id select m).OrderBy(x => x.sortIndex).ToList(); } return(AddChildN(0, menuList)); }
public async Task <IActionResult> Login([FromBody] encryData pData) { try { PeAdmin admin = await Task.Factory.StartNew(() => _peAdminService.FindByClause(x => (x.adminCode ?? "").ToUpper() == pData.data.code.ToUpper())); if (admin == null) { result.success = false; result.returnMsg = "不存在该管理员"; return(Ok(result)); } if (admin.adminPwd.ToUpper() != SecurityHelper.ToMD5((pData.data.password ?? "").Trim()).Substring(8, 16).ToUpper()) { result.success = false; result.returnMsg = "密码不正确"; return(Ok(result)); } if (admin.state == 0) { result.success = false; result.returnMsg = "当前账号已被停用,请联系管理员"; return(Ok(result)); } var client = new HttpClient(); var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest { Address = Appsettings.GetSectionValue("AppSettings:IdSHttpsUrl") + "/connect/token", ClientId = "clientanduser", ClientSecret = "secret", UserName = "******", Password = "******", Scope = "api1" }); if (tokenResponse.IsError) { throw new Exception(tokenResponse.Error); } admin.token = tokenResponse.AccessToken; //记录登录时间 admin.loginDate = DateTime.Now; _peAdminService.Update(admin); //清空密码返回 admin.adminPwd = null; admin.menudata = _menuService.GetMenuListByRole(admin.id); result.returnData = admin; return(Ok(result)); } catch (Exception e) { log.Error(e.Message); result.success = false; result.returnMsg = "登录失败,请稍后重试"; return(Ok(result)); } }