public async Task <MessageModel <SysUserVM> > GetInfoByToken(string token) { var data = MessageModel <SysUserVM> .Fail(); if (!string.IsNullOrEmpty(token)) { var tokenModel = JwtHelper.SerializeJwt(token); //if (tokenModel != null && tokenModel.Uid > 0) if (tokenModel != null && !string.IsNullOrWhiteSpace(tokenModel.Uid)) { var sysUserInfo = await _sysUserServices.QueryById(tokenModel.Uid); if (sysUserInfo != null) { //转换 //将数据转化为T var source = new Source <SysUser> { Value = sysUserInfo }; var t = _mapper.Map <Destination <SysUserVM> >(source); data = MessageModel <SysUserVM> .Success(t.Value); return(data); } } } return(data); }
/// <summary> /// 获取角色对应菜单的权限 /// </summary> /// <param name="roleId">角色ID</param> /// <returns></returns> public async Task <MessageModel <List <SysRoleMenuPowerGVM> > > GetRoleMenuPowerG(string roleId) { if (string.IsNullOrWhiteSpace(roleId)) { return(MessageModel <List <SysRoleMenuPowerGVM> > .Fail("未传入角色ID")); } //查询角色是否存在 var sysRole = await _sysRoleRepository.QueryById(roleId); if (sysRole != null && sysRole.Status == 1) { //查询角色对应菜单的权限组 var sysRoleMenuPowerGs = await _dal.Query(m => m.RoleID == roleId && m.Status == 1); //将 SysRoleMenuPowerG 转为 sysRoleMenuPowerGVM var source = new Source <List <SysRoleMenuPowerGroup> > { Value = sysRoleMenuPowerGs }; var t = _mapper.Map <Destination <List <SysRoleMenuPowerGVM> > >(source); var returnSysRoleMenuPowerGroupVM = t.Value; return(MessageModel <List <SysRoleMenuPowerGVM> > .Success(returnSysRoleMenuPowerGroupVM)); } else { return(MessageModel <List <SysRoleMenuPowerGVM> > .Fail("菜单已不存在")); } }
public async Task <MessageModel <WeChatApiDto> > GetToken(string publicAccount) { var config = await this.QueryById(publicAccount); if (config == null) { MessageModel <string> .Success($"公众号{publicAccount}未维护至系统"); //还没过期,直接返回 } if (config.tokenExpiration > DateTime.Now) { //再次判断token在微信服务器是否正确 var wechatIP = await WeChatHelper.GetWechatIP(config.token); if (wechatIP.errcode == 0) { MessageModel <WeChatApiDto> .Success("", new WeChatApiDto { access_token = config.token });//还没过期,直接返回 } } //过期了,重新获取 var data = await WeChatHelper.GetToken(config.appid, config.appsecret); if (data.errcode.Equals(0)) { config.token = data.access_token; config.tokenExpiration = DateTime.Now.AddSeconds(data.expires_in); await this.Update(config); return(MessageModel <WeChatApiDto> .Success("", data)); } else { return(MessageModel <WeChatApiDto> .Fail($"\r\n获取Token失败\r\n错误代码:{data.errcode}\r\n错误信息:{data.errmsg}")); } }
public override async Task <MessageModel <bool> > DeleteOne(string ID) { MessageModel <bool> messageModel = MessageModel <bool> .Fail(); //删除前验证 //base.DelOnExecute = async (TestOrder modelExecute) => //{ // //查询是否有该角色 // List<TestOrder> testOrders = await _dal.Query(x => x.ID.Equals(modelExecute.ID) && x.Status == Model.StatusE.Live); // if (testOrders != null && testOrders.Count > 0) // { // } // else // { // return MessageModel<bool>.Fail("不存在该订单"); // } // ////查询是否有用户有该对应的角色 // //List<TestOrder> sysUsers = await _sysUserRepository.Query(x => x.Status == Model.StatusE.Live && x.RoleId == modelExecute.RoleID); // //if (sysUsers != null && sysUsers.Count > 0) // //{ // // return MessageModel<bool>.Fail("有用户是该角色"); // //} // return MessageModel<bool>.Success(); //}; return(await base.DeleteOne(ID)); }
public override async Task <MessageModel <bool> > DeleteOne(string ID) { MessageModel <bool> messageModel = MessageModel <bool> .Fail(); //删除前验证 base.DelOnExecute = async(SysRole modelExecute) => { //查询是否有该角色 List <SysRole> sysRoles = await _dal.Query(x => x.RoleID.Equals(modelExecute.RoleID) && x.Status == 1); if (sysRoles != null && sysRoles.Count > 0) { } else { return(MessageModel <bool> .Fail("不存在该角色")); } //查询是否有用户有该对应的角色 List <SysUser> sysUsers = await _sysUserRepository.Query(x => x.Status == 1 && x.RoleId == modelExecute.RoleID); if (sysUsers != null && sysUsers.Count > 0) { return(MessageModel <bool> .Fail("有用户是该角色")); } return(MessageModel <bool> .Success()); }; return(await base.DeleteOne(ID)); }
public override void OnActionExecuting(ActionExecutingContext context) { //判断权限 // if (context.HttpContext.User.Identity.IsAuthenticated) //{ //var roleType = int.Parse(context.HttpContext.User.Claims.First(c => c.Type == "roleType").Value); ////不是管理人员 //if (roleType <= 0 || roleType >= 4) //{ // context.Result = new JsonResult(new Result(214)); //} //校验数据 if (context.ModelState.IsValid == false) { var result = MessageModel <bool> .Fail(context.ModelState.GetAllErrMsgStr(","), ResponseEnum.ServerRequestError); //result.message = actionContext.ModelState.GetAllErrMsgStr(","); //actionContext.Response = new HttpResponseMessage { Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.GetEncoding("UTF-8"), "application/json") }; //context.Result = new HttpResponseMessage { Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.GetEncoding("UTF-8"), "application/json") }; context.Result = new JsonResult(result); } //} //else // context.Result = new JsonResult(new Result(214)); }
public async Task <MessageModel> Login(string Name, string pass) { var model = await _userver.GetModelAsync(m => m.Name.Equals(Name)); if (model == null) { return(MessageModel.Fail(ref _msg, "没有找到用户!")); } if (model.pwd != MD5Helper.MD5Encrypt32(pass)) { return(MessageModel.Fail(ref _msg, "用户密码输入错误!")); } var rolem = await _roleserver.GetModelAsync(a => a.userId == model.Id); if (rolem != null) { TokenModelJwt tokenModel = new TokenModelJwt { Name = model.Name, Uid = model.Id, Role = rolem.RoleName }; _msg.Response = JwtHelper.IssueJwt(tokenModel); } return(MessageModel.Ok(ref _msg, "请求成功!")); }
/// <summary> /// 获取用户的菜单 /// </summary> /// <param name="uid"></param> /// <returns></returns> public async Task <MessageModel <SysMenuTreeVM> > GetUserMenuTree(string uid) { //判断当前用户 var sysUser = await _sysUserRepository.QueryById(uid); if (sysUser == null) { return(MessageModel <SysMenuTreeVM> .Fail("不存在该用户")); } //查找对应用户的 //先用全部凑合 return(await GetMenuTree()); }
public async Task <MessageModel <SysMenuTreeVM> > GetUserMenuTree(string token) { var data = MessageModel <SysMenuTreeVM> .Fail(); if (!string.IsNullOrEmpty(token)) { var tokenModel = JwtHelper.SerializeJwt(token); if (tokenModel != null && !string.IsNullOrWhiteSpace(tokenModel.Uid)) { return(await _sysMenuServices.GetUserMenuTree(tokenModel.Uid)); } } return(data); }
public override async Task <MessageModel <bool> > AddOne(TestOrderDetail saveModel) { MessageModel <int> messageModel = MessageModel <int> .Fail(); //新增前验证 //base.AddOnExecute = async (TestOrder save) => //{ // List<TestOrder> testOrders = await _dal.Query(x => x.OrderNo.Equals(save.OrderNo)); // if (testOrders != null && testOrders.Count > 0) // { // return MessageModel<int>.Fail("已经存在该订单"); // } // return MessageModel<int>.Success(); //}; return(await base.AddOne(saveModel)); }
public override async Task <MessageModel <bool> > AddOne(TestOrder saveModel) { MessageModel <int> messageModel = MessageModel <int> .Fail(); //新增前验证 base.AddOnExecute = async(TestOrder save) => { List <TestOrder> testOrders = await _dal.Query(x => x.OrderNo.Equals(save.OrderNo)); if (testOrders != null && testOrders.Count > 0) { return(MessageModel <bool> .Fail(false, "已经存在该订单")); } return(MessageModel <bool> .Success(true)); }; return(await base.AddOne(saveModel)); }
public override async Task <MessageModel <bool> > AddOne(SysRole saveModel) { MessageModel <int> messageModel = MessageModel <int> .Fail(); //新增前验证 base.AddOnExecute = async(SysRole save) => { List <SysRole> sysRoles = await _dal.Query(x => x.RoleID.Equals(save.RoleID)); if (sysRoles != null && sysRoles.Count > 0) { return(MessageModel <bool> .Fail(false, "已经存在该角色")); } return(MessageModel <bool> .Success(true)); }; return(await base.AddOne(saveModel)); }
public override async Task <MessageModel <bool> > AddOne(SysMenu saveModel) { MessageModel <int> messageModel = MessageModel <int> .Fail(); //新增前验证 base.AddOnExecute = async(SysMenu save) => { //List<SysMenu> sysMenus = await _dal.Query(x => x.MenuId.Equals(save.MenuId) && x.ParentId.Equals(save.ParentId) ); List <SysMenu> sysMenus = await _dal.Query(x => x.MenuId.Equals(save.MenuId)); if (sysMenus != null && sysMenus.Count > 0) { return(MessageModel <bool> .Fail(false, "已经存在该菜单")); } return(MessageModel <bool> .Success(true)); }; return(await base.AddOne(saveModel)); }
public override async Task <MessageModel <bool> > DeleteOne(string ID) { MessageModel <bool> messageModel = MessageModel <bool> .Fail(); //删除前验证 //base.DelOnExecute = async (TestOrderDetail modelExecute) => //{ // //查询是否有该角色 // List<TestOrderDetail> testOrders = await _dal.Query(x => x.ID.Equals(modelExecute.ID) && x.Status == Model.StatusE.Live); // if (testOrders != null && testOrders.Count > 0) // { // } // else // { // return MessageModel<bool>.Fail("不存在该订单详情"); // } // return MessageModel<bool>.Success(); //}; return(await base.DeleteOne(ID)); }
/// <summary> /// 获取菜单权限 待优化代码 /// </summary> /// <param name="menuId"></param> /// <returns></returns> public async Task <MessageModel <List <SysMenuPowerGroupVM> > > GetMenuPowerGroups(string menuId) { if (string.IsNullOrWhiteSpace(menuId)) { return(MessageModel <List <SysMenuPowerGroupVM> > .Fail("未传入菜单ID")); } //查询菜单是否存在 var sysMenu = await _sysMenuRepository.QueryById(menuId); if (sysMenu != null && sysMenu.Status != 2) { //查询菜单的权限组 var sysMenuPowerGroups = await _dal.Query(d => d.SysMenuID == menuId && d.Status == 1); //var resultR=from sysMenuPowersG in sysMenuPowerGroups.sys var arrayPowerGroups = sysMenuPowerGroups.Select(s => s.SysPowerGroupID).ToArray(); var sysPowers = await _sysPowerRepository.Query(d => (arrayPowerGroups).Contains(d.SysPowerGroupID) && d.Status == 1); var returnMenuPowerGroupsVM = new List <SysMenuPowerGroupVM>(); foreach (var item in sysMenuPowerGroups) { //var sysMenuPowerGroupVM = new SysMenuPowerGroupVM(); var sysMenuPowerGroupVM = new SysMenuPowerGroupVM() { ID = item.ID, Status = item.Status, CreateID = item.CreateID, CreateTime = item.CreateTime, Creator = item.Creator, SysMenuID = item.SysMenuID, SysPowerGroupID = item.SysPowerGroupID }; //mapper 有错误,我也不知道为啥 //try //{ // var source = new Source<SysMenuPowerGroup> { Value = item }; // var destination = _mapper.Map<Destination<SysMenuPowerGroupVM>>(source); // sysMenuPowerGroupVM = destination.Value; //} //catch (Exception ex) //{ // throw; //} //sysMenuPowerGroupVM.SysMenu = sysMenu; sysMenuPowerGroupVM.SysPowers = sysPowers.Where(d => d.SysPowerGroupID == item.SysPowerGroupID).ToList(); sysMenuPowerGroupVM.SysPowerGroup = await _sysPowerGroupRepository.QueryById(item.SysPowerGroupID); returnMenuPowerGroupsVM.Add(sysMenuPowerGroupVM); } return(MessageModel <List <SysMenuPowerGroupVM> > .Success(returnMenuPowerGroupsVM)); } return(MessageModel <List <SysMenuPowerGroupVM> > .Fail("菜单已不存在")); }
/// <summary> /// 更新角色对应菜单权限 /// </summary> /// <param name="sysRoleMenuPowerGVMs"></param> /// <returns></returns> public async Task <MessageModel <bool> > UpdateRoleMenuPowerGs(List <SysRoleMenuPowerGVM> sysRoleMenuPowerGVMs) { var roleID = sysRoleMenuPowerGVMs?.FirstOrDefault().RoleID;//找到对应的角色 #region //条件判断 (先不考虑用抽象方法方法) var sysRole = await _sysRoleRepository.QueryById(roleID); if (sysRole == null || sysRole.Status == 2) { return(MessageModel <bool> .Fail("角色已不存在")); } #endregion #region //数据准备 //因为后台数据库的数据都需要新增人 sysRoleMenuPowerGVMs.ForEach(d => { d.ID = Guid.NewGuid().ToString(); d.CreateID = _httpUser.ID; d.CreateTime = DateTime.Now; d.Creator = _httpUser.Name; }); #endregion #region //开启事务 //Action 是封装一个方法,该方法不具有参数且不返回值。 https://docs.microsoft.com/zh-cn/dotnet/api/system.action?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev16.query%3FappId%3DDev16IDEF1%26l%3DZH-CN%26k%3Dk(System.Action);k(DevLang-csharp)%26rd%3Dtrue&view=netframework-4.8 //Func<TResult> 委托 封装一个不具有参数但却返回 TResult 参数指定的类型值的方法。 var tranResult = _dal.UseTran(async() => { //查询到之前的角色 权限数据 var sysRoleMenuPowerGs = await _dal.Query(m => m.RoleID == roleID && m.Status == 1); //删除之前对应的角色的权限数据 await _dal.DeleteByIds(sysRoleMenuPowerGs.Select(d => d.ID).ToArray()); //将 sysRoleMenuPowerGVM 转为 SysRoleMenuPowerG var source = new Source <List <SysRoleMenuPowerGVM> > { Value = sysRoleMenuPowerGVMs }; var t = _mapper.Map <Destination <List <SysRoleMenuPowerGroup> > >(source); var sysRoleMenuPowerGroupsU = t.Value; //新增对应的角色的菜单权限组 try { await _dal.Add(sysRoleMenuPowerGroupsU); } catch (Exception ex) { Console.WriteLine(ex); throw; } }); #endregion if (tranResult) { return(MessageModel <bool> .Success(true, "更新成功")); } return(MessageModel <bool> .Fail("事务出错,请重试")); }
/// <summary> /// 更新菜单权限 /// </summary> /// <param name="sysMenuPowerGVMs"></param> /// <returns></returns> public async Task <MessageModel <bool> > UpdateMenuPowerGroups(List <SysMenuPowerGroupVM> sysMenuPowerGVMs) { var menuID = sysMenuPowerGVMs?.FirstOrDefault().SysMenuID; //判断对应的菜单是否存在 var sysMenu = await _sysMenuRepository.QueryById(menuID); if (sysMenu == null || sysMenu.Status == 2) { return(MessageModel <bool> .Fail("菜单已不存在")); } //因为后台数据库的数据都需要新增人 sysMenuPowerGVMs.ForEach(d => { d.ID = Guid.NewGuid().ToString(); d.CreateID = _httpUser.ID; d.CreateTime = DateTime.Now; d.Creator = _httpUser.Name; d.SysPowerGroup.CreateID = _httpUser.ID; d.SysPowerGroup.CreateTime = DateTime.Now; d.SysPowerGroup.Creator = _httpUser.Name; d.SysPowers.ForEach(p => { p.CreateID = _httpUser.ID; p.CreateTime = DateTime.Now; p.Creator = _httpUser.Name; }); }); //开启事务 var tranResult = _dal.UseTran(async() => //var tranResult = _dal.UseCatchTran(async () => { //查找到对应的菜单-权限组 var sysMenuPowerGroups = await _dal.Query(m => m.SysMenuID == sysMenu.ID && m.Status == 1); //删除对应菜单的权限组 (menuPowerGroup) await _dal.DeleteByIds(sysMenuPowerGroups.Select(d => d.ID).ToArray()); //查询权限组(powerGroup) 且删除 await _sysPowerGroupRepository.DeleteByIds(sysMenuPowerGroups.Select(d => d.SysPowerGroupID).ToArray()); //查询对应的权限组对应的权限 且删除 var ss = sysMenuPowerGroups.Select(d => d.SysPowerGroupID).ToArray(); //var p = await _sysPowerRepository.Query( // m => (sysMenuPowerGroups.Select(d => d.SysPowerGroupID)).Contains(m.SysPowerGroupID) // && m.Status == StatusE.Live); //var psd = new string[] { "9285fad0-8c45-2a05-80da-7ed0ab14c61b", "9122b35e-5f55-14f7-e333-ae2099d416a3" }; // var p = await _sysPowerRepository.Query( // m => "9285fad0-8c45-2a05-80da-7ed0ab14c61b".Contains(m.SysPowerGroupID) // && m.Status == StatusE.Live); // var ppp = await _sysPowerRepository.Query( // m => ps.Contains(m.SysPowerGroupID) // && m.Status == StatusE.Live); var ps = sysMenuPowerGroups.Select(d => d.SysPowerGroupID).ToArray(); await _sysPowerRepository.DeleteByIds((await _sysPowerRepository.Query( m => ps.Contains(m.SysPowerGroupID) && m.Status == 1) ) .Select(d => d.ID).ToArray()); //await _sysPowerRepository.DeleteByIds((await _sysPowerRepository.Query( // m => (sysMenuPowerGroups.Select(d=>d.SysPowerGroupID).ToArray()).Contains( m.SysPowerGroupID ) // && m.Status == StatusE.Live) // ) // .Select(d => d.ID).ToArray()); //将 SysMenuPowerGroupVM 转为 SysMenuPowerGroup //将数据转化为T var source = new Source <List <SysMenuPowerGroupVM> > { Value = sysMenuPowerGVMs }; var t = _mapper.Map <Destination <List <SysMenuPowerGroup> > >(source); var sysMenuPowerGroupsU = t.Value; //新增对应的权限组 await _dal.Add(sysMenuPowerGroupsU); //新增权限组 await _sysPowerGroupRepository.Add(sysMenuPowerGVMs.Select(d => d.SysPowerGroup).ToList()); //组合所有的权限 var sysPowers = new List <SysPower>(); foreach (var item in sysMenuPowerGVMs) { //sysPowers.Add(item.SysPowers); sysPowers = sysPowers.Union(item.SysPowers).ToList(); } //新增权限组对应的权限 try { await _sysPowerRepository.Add(sysPowers); } catch (Exception ex) { throw; } }); if (tranResult) { return(MessageModel <bool> .Success(true, "更新成功")); } return(MessageModel <bool> .Fail("事务出错,请重试")); }