diff --git a/24Hour/Controllers/system/SystemControllerController.cs b/24Hour/Controllers/system/SystemControllerController.cs index 94f958b..d49bf32 100644 --- a/24Hour/Controllers/system/SystemControllerController.cs +++ b/24Hour/Controllers/system/SystemControllerController.cs @@ -1,4 +1,5 @@ using AutoMapper; +using com.sun.corba.se.spi.orbutil.fsm; using com.sun.org.apache.bcel.@internal.generic; using com.sun.xml.@internal.ws.api.model; using Elight.Entity; @@ -88,12 +89,16 @@ namespace _24Hour.Controllers.system //获取部门信息 var Departlist = await _db.Queryable().Where(q => q.IsDelete == 0).ToListAsync(); //获取角色信息 - var RoleModel = _db.Queryable().LeftJoin((o, i) => o.roleId == i.Id && o.IsDelete == 0 && i.IsDeleted == 0).Select((o, i) => new App_Sys_RoleDto { Id = o.roleId, name = i.name, userId = o.roleuserId }).ToList(); + var RoleModel = _db.Queryable() + .LeftJoin((o, i) => o.roleId == i.Id && o.IsDelete == 0 && i.IsDeleted == 0) + .Select((o, i) => new App_Sys_RoleDto { Id = o.roleId, name = i.name, userId = o.roleuserId }) + .ToList(); var list = await _db.Queryable() .WhereIF(!UserModel.name.IsNull(), q => q.name.Contains(UserModel.name)) .WhereIF(!UserModel.phone.IsNull(), q => q.phone.Contains(UserModel.phone)) .WhereIF(!UserModel.duties.IsNull(), q => q.duties.Contains(UserModel.duties)) .WhereIF(!UserModel.cardId.IsNull(), q => q.cardId.Contains(UserModel.cardId)) + .Where(q => q.IsDeleted == 0 && q.phone != "admin" && q.usertype == 0) .ToPageListAsync(UserModel.PageIndex, UserModel.PageSize, totalNumber); UserModel.RowsCount = totalNumber; @@ -332,7 +337,8 @@ namespace _24Hour.Controllers.system { try { - var model = await _db.Queryable().Where(x => x.Id == _userdata.Id && x.IsDeleted == 0).FirstAsync(); + var model = await _db.Queryable() + .FirstAsync(x => x.Id == _userdata.Id && x.IsDeleted == 0); if (model != null) { model.wechatId = string.Empty; @@ -715,7 +721,7 @@ namespace _24Hour.Controllers.system userlist.ForEach(q => { //头像地址 - q.cardIdphoto= photo; + q.cardIdphoto = photo; }); var num = await _db.Updateable(userlist).ExecuteCommandAsync(); _db.CommitTran(); @@ -785,7 +791,7 @@ namespace _24Hour.Controllers.system [HttpPost] [Route("QueryRole")] public async Task QueryRole(App_Sys_RoleInput roledata) - { + { RefAsync totalNumber = 0;//总数据 var list = await _db.Queryable() .WhereIF(roledata.name.NotNull(), q => q.name.Contains(roledata.name)) @@ -945,10 +951,10 @@ namespace _24Hour.Controllers.system await _db.Deleteable(list).ExecuteCommandAsync(); var RoleMenulist = RoleMenudata.RoleMenuIds.Split(",").ToList(); var menulist = new List(); - if (RoleMenulist.Length > 0) + if (RoleMenulist.Count > 0) { //添加角色菜单 - for (int i = 0; i < RoleMenulist.Length; i++) + for (int i = 0; i < RoleMenulist.Count; i++) { var App_Sys_RoleMenuModel = new App_Sys_RoleMenuModel() { @@ -1464,64 +1470,64 @@ namespace _24Hour.Controllers.system [HttpPost] [Route("QueryMenuTree")] public async Task QueryMenuTree(App_Sys_MenuInput Menudata) - { - var roleids = new List(); - if (_userdata.phone != "admin") - { - var userroleinfo = await _db.Queryable().FirstAsync(x => x.roleuserId == _userdata.Id); - roleids = await _db.Queryable() - .WhereIF(!userroleinfo.roleId.IsNull(), q => q.roleId == userroleinfo.roleId) - .Where(q => q.IsDelete == 0).Select(x => x.menuId).ToListAsync(); - } + { + var roleids = new List(); + if (_userdata.phone != "admin") + { + var userroleinfo = await _db.Queryable().FirstAsync(x => x.roleuserId == _userdata.Id); + roleids = await _db.Queryable() + .WhereIF(!userroleinfo.roleId.IsNull(), q => q.roleId == userroleinfo.roleId) + .Where(q => q.IsDelete == 0).Select(x => x.menuId).ToListAsync(); + } var treelist = await _db.Queryable() .WhereIF(!Menudata.name.IsNull(), q => q.name.Contains(Menudata.name)) .WhereIF(!Menudata.title.IsNull(), q => q.title.Contains(Menudata.title)) .Where(q => q.IsDelete == 0) .OrderBy(q => q.sortnum, OrderByType.Asc) .ToTreeAsync(it => it.children, it => it.pid, null); - if (_userdata.phone != "admin") - { - foreach (var item in treelist) - { - if (roleids.Contains(item.Id)) - { - if (item.children != null) - { - item.children = item.children.Where(x => roleids.Contains(x.Id)).ToList(); - } - } - else - { - if (item.children == null) - { - item.IsDelete = -1; - } - else - { - if (item.children.Any(x => roleids.Contains(x.Id))) - { - item.children = item.children.Where(x => roleids.Contains(x.Id)).ToList(); - } - else - { - item.IsDelete = -1; - } - } - } - } - treelist = treelist.Where(x => x.IsDelete != -1).ToList(); - - result.IsSucceed = true; - result.result = treelist; - return result; + if (_userdata.phone != "admin") + { + foreach (var item in treelist) + { + if (roleids.Contains(item.Id)) + { + if (item.children != null) + { + item.children = item.children.Where(x => roleids.Contains(x.Id)).ToList(); + } + } + else + { + if (item.children == null) + { + item.IsDelete = -1; + } + else + { + if (item.children.Any(x => roleids.Contains(x.Id))) + { + item.children = item.children.Where(x => roleids.Contains(x.Id)).ToList(); + } + else + { + item.IsDelete = -1; + } + } + } + } + treelist = treelist.Where(x => x.IsDelete != -1).ToList(); + + result.IsSucceed = true; + result.result = treelist; + return result; } - else - { - result.IsSucceed = true; - result.result = treelist; - return result; - } - + else + { + result.IsSucceed = true; + result.result = treelist; + return result; + } + } /// /// 菜单分页查询 @@ -1669,18 +1675,31 @@ namespace _24Hour.Controllers.system //获取父级菜单 var pidlist = await _db.Queryable().Where(q => q.IsDelete == 0 && string.IsNullOrEmpty(q.pid)).ToListAsync(); //联表查询该用户菜单 - var menulist = await _db.Queryable().Where(x => x.roleuserId == _userdata.Id) - .LeftJoin((o, cus) => o.roleId == cus.roleId) - .LeftJoin((o, cus, menu) => cus.menuId == menu.Id) - .Where((o, cus, menu) => o.IsDelete == 0 && cus.IsDelete == 0 && menu.IsDelete == 0) - .Select((o, cus, menu) => menu) - .ToListAsync(); - if (_userdata.phone == "admin") + var menulist = await Task.Run(async () => { - menulist = await _db.Queryable().Where(x => x.IsDelete == 0).ToListAsync(); - } - //通过分组父级菜单 - var datalist = menulist.OrderBy(q => q.sortnum).GroupBy(q => q.pid).Select(q => new { pid = q.Key, dalist = q.OrderBy(q => q.sortnum).ToList() }).ToList(); + if (_userdata.phone == "admin") + { + return await _db.Queryable() + .Where(x => x.IsDelete == 0) + .ToListAsync(); + } + else + { + return await _db.Queryable() + .Where(x => x.roleuserId == _userdata.Id) + .LeftJoin((o, cus) => o.roleId == cus.roleId) + .LeftJoin((o, cus, menu) => cus.menuId == menu.Id) + .Where((o, cus, menu) => o.IsDelete == 0 && cus.IsDelete == 0 && menu.IsDelete == 0) + .Select((o, cus, menu) => menu) + .ToListAsync(); + } + }); + + //通过分组父级菜单 + var datalist = menulist.OrderBy(q => q.sortnum) + .GroupBy(q => q.pid) + .Select(q => new { pid = q.Key, dalist = q.OrderBy(q => q.sortnum).ToList() }) + .ToList(); if (datalist.Count > 0) { pidlist.OrderBy(q => q.sortnum).ToList().ForEach(item => @@ -1694,6 +1713,7 @@ namespace _24Hour.Controllers.system { childrenlist.Add(new { + path = it.path, name = it.name, component = it.component, @@ -1713,9 +1733,11 @@ namespace _24Hour.Controllers.system var fjdata = datalist.Where(q => string.IsNullOrEmpty(q.pid)).FirstOrDefault()?.dalist.FirstOrDefault(q => q.Id == item.Id); if (childrenlist.Count > 0 || fjdata != null) { + //添加父级菜单 list.Add(new { + path = item.path, name = item.name, component = item.component,