diff --git a/Yi.Framework/Yi.Framework.Service/MenuService.cs b/Yi.Framework/Yi.Framework.Service/MenuService.cs index 7f0ccbe1..eb0572ed 100644 --- a/Yi.Framework/Yi.Framework.Service/MenuService.cs +++ b/Yi.Framework/Yi.Framework.Service/MenuService.cs @@ -20,18 +20,6 @@ namespace Yi.Framework.Service return menu_data; } - public async Task DelListByUpdateAsync(List _ids) - { - var menuList = await GetEntitiesAsync(u=>_ids.Contains(u.id)); - menuList.ToList().ForEach(u => u.is_delete = (short)Common.Enum.DelFlagEnum.Deleted); - return await UpdateListAsync(menuList); - } - - public async Task> GetAllEntitiesTrueAsync() - { - return await GetEntitiesAsync(u=> u.is_delete == (short)Common.Enum.DelFlagEnum.Normal); - } - public async Task> GetChildrenByMenu(menu _menu) { var menu_data = await GetEntity(u=>u.id==_menu.id&& u.is_delete == (short)Common.Enum.DelFlagEnum.Normal); diff --git a/Yi.Framework/Yi.Framework.Service/MouldService.cs b/Yi.Framework/Yi.Framework.Service/MouldService.cs index ec2ff045..c46a9bf4 100644 --- a/Yi.Framework/Yi.Framework.Service/MouldService.cs +++ b/Yi.Framework/Yi.Framework.Service/MouldService.cs @@ -11,21 +11,8 @@ namespace Yi.Framework.Service { public partial class MouldService:BaseService, IMouldService { - public async Task DelListByUpdateAsync(List _ids) - { - var mouldList =await GetEntitiesAsync(u => _ids.Contains(u.id)); - mouldList.ToList().ForEach(u => u.is_delete = (short)Common.Enum.DelFlagEnum.Deleted); - return await UpdateListAsync(mouldList); - } - - public async Task> GetAllEntitiesTrueAsync() - { - return await GetEntitiesAsync(u => u.is_delete == (short)Common.Enum.DelFlagEnum.Normal); - } - public async Task GetMenuByMould(mould _mould) { - var menu_data = await _Db.Set().Include(u => u.mould) .Where(u => u.mould == _mould && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync(); return menu_data; diff --git a/Yi.Framework/Yi.Framework.Service/RoleService.cs b/Yi.Framework/Yi.Framework.Service/RoleService.cs index 57ed3393..3ab86e21 100644 --- a/Yi.Framework/Yi.Framework.Service/RoleService.cs +++ b/Yi.Framework/Yi.Framework.Service/RoleService.cs @@ -11,17 +11,6 @@ namespace Yi.Framework.Service { public partial class RoleService:BaseService, IRoleService { - public async Task DelListByUpdateAsync(List _ids) - { - var userList = await GetEntitiesAsync(u=>_ids.Contains(u.id)); - userList.ToList().ForEach(u => u.is_delete =(short)Common.Enum.DelFlagEnum.Deleted); - return await UpdateListAsync(userList); - } - public async Task> GetAllEntitiesTrueAsync() - { - return await GetEntitiesAsync(u => u.is_delete == (short)Common.Enum.DelFlagEnum.Normal); - } - public async Task> GetMenusByRole(role _role) { var role_data =await _Db.Set().Include(u => u.menus) diff --git a/Yi.Framework/Yi.Framework.Service/T4Service.cs b/Yi.Framework/Yi.Framework.Service/T4Service.cs index 65210424..ba836d59 100644 --- a/Yi.Framework/Yi.Framework.Service/T4Service.cs +++ b/Yi.Framework/Yi.Framework.Service/T4Service.cs @@ -13,20 +13,72 @@ namespace Yi.Framework.Service public partial class MenuService:BaseService,IMenuService { public MenuService(DbContext Db):base(Db){ } + + public async Task DelListByUpdateAsync(List _ids) + { + var menuList = await GetEntitiesAsync(u=>_ids.Contains(u.id)); + menuList.ToList().ForEach(u => u.is_delete = (short)Common.Enum.DelFlagEnum.Deleted); + return await UpdateListAsync(menuList); + } + + public async Task> GetAllEntitiesTrueAsync() + { + return await GetEntitiesAsync(u=> u.is_delete == (short)Common.Enum.DelFlagEnum.Normal); + } + } public partial class MouldService:BaseService,IMouldService { public MouldService(DbContext Db):base(Db){ } + + public async Task DelListByUpdateAsync(List _ids) + { + var mouldList = await GetEntitiesAsync(u=>_ids.Contains(u.id)); + mouldList.ToList().ForEach(u => u.is_delete = (short)Common.Enum.DelFlagEnum.Deleted); + return await UpdateListAsync(mouldList); + } + + public async Task> GetAllEntitiesTrueAsync() + { + return await GetEntitiesAsync(u=> u.is_delete == (short)Common.Enum.DelFlagEnum.Normal); + } + } public partial class RoleService:BaseService,IRoleService { public RoleService(DbContext Db):base(Db){ } + + public async Task DelListByUpdateAsync(List _ids) + { + var roleList = await GetEntitiesAsync(u=>_ids.Contains(u.id)); + roleList.ToList().ForEach(u => u.is_delete = (short)Common.Enum.DelFlagEnum.Deleted); + return await UpdateListAsync(roleList); + } + + public async Task> GetAllEntitiesTrueAsync() + { + return await GetEntitiesAsync(u=> u.is_delete == (short)Common.Enum.DelFlagEnum.Normal); + } + } public partial class UserService:BaseService,IUserService { public UserService(DbContext Db):base(Db){ } + + public async Task DelListByUpdateAsync(List _ids) + { + var userList = await GetEntitiesAsync(u=>_ids.Contains(u.id)); + userList.ToList().ForEach(u => u.is_delete = (short)Common.Enum.DelFlagEnum.Deleted); + return await UpdateListAsync(userList); + } + + public async Task> GetAllEntitiesTrueAsync() + { + return await GetEntitiesAsync(u=> u.is_delete == (short)Common.Enum.DelFlagEnum.Normal); + } + } } diff --git a/Yi.Framework/Yi.Framework.Service/T4Service.tt b/Yi.Framework/Yi.Framework.Service/T4Service.tt index 7cb13a84..6353b6f7 100644 --- a/Yi.Framework/Yi.Framework.Service/T4Service.tt +++ b/Yi.Framework/Yi.Framework.Service/T4Service.tt @@ -39,6 +39,19 @@ namespace Yi.Framework.Service public partial class <#= fn #>Service:BaseService<<#= k #>>,I<#= fn #>Service { public <#= fn #>Service(DbContext Db):base(Db){ } + + public async Task DelListByUpdateAsync(List _ids) + { + var <#= k #>List = await GetEntitiesAsync(u=>_ids.Contains(u.id)); + <#= k #>List.ToList().ForEach(u => u.is_delete = (short)Common.Enum.DelFlagEnum.Deleted); + return await UpdateListAsync(<#= k #>List); + } + + public async Task>> GetAllEntitiesTrueAsync() + { + return await GetEntitiesAsync(u=> u.is_delete == (short)Common.Enum.DelFlagEnum.Normal); + } + } <# } #> } diff --git a/Yi.Framework/Yi.Framework.Service/UserService.cs b/Yi.Framework/Yi.Framework.Service/UserService.cs index e1f05067..0d63eb85 100644 --- a/Yi.Framework/Yi.Framework.Service/UserService.cs +++ b/Yi.Framework/Yi.Framework.Service/UserService.cs @@ -11,41 +11,33 @@ using Yi.Framework.Model.Models; namespace Yi.Framework.Service { - public partial class UserService: BaseService,IUserService + public partial class UserService : BaseService, IUserService { private IRoleService _roleService; - public UserService(DbContext Db, IRoleService roleService) :base(Db) + public UserService(DbContext Db, IRoleService roleService) : base(Db) { _roleService = roleService; } - public async Task DelListByUpdateAsync(List _ids) - { - var userList = await GetEntitiesAsync(u => _ids.Contains(u.id)); - userList.ToList().ForEach(u => u.is_delete = (short)Common.Enum.DelFlagEnum.Deleted); - return await UpdateListAsync(userList); - } public async Task EmailIsExsit(string emailAddress) { - var userList=await GetAllEntitiesTrueAsync(); - var is_email= userList.Where(u=>u.email==emailAddress).FirstOrDefault(); + var userList = await GetAllEntitiesTrueAsync(); + var is_email = userList.Where(u => u.email == emailAddress).FirstOrDefault(); if (is_email == null) { return true; } - return false; - } - - public async Task> GetAllEntitiesTrueAsync() - { - return await GetEntitiesAsync(u => u.is_delete == (short)Common.Enum.DelFlagEnum.Normal); + return false; } + /// + /// 大优化,直接传用户id即可 + /// + /// + /// public async Task> GetMenusByUser(user _user) { - var user_data= await _Db.Set().Include(u => u.roles).ThenInclude(u=>u.menus).ThenInclude(u=>u.mould) - .Where(u=>u.id==_user.id&& u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync(); - var role_data =await GetRolesByUser(user_data); + var role_data = await GetRolesByUser(_user); var menuList = new List(); role_data.ForEach(u => { @@ -53,91 +45,117 @@ namespace Yi.Framework.Service menuList = menuList.Concat(menu_data.GetAwaiter().GetResult()).ToList(); }); menuList.ForEach(u => u.roles = null); - return menuList; } + /// + /// 大优化只用id即可,这个方法和GetMenusByUser几乎没有任何区别 + /// + /// + /// public async Task> GetMouldByUser(user _user) - { - var user_data = await GetEntity(u => u.id == _user.id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal); - var menu = await GetMenusByUser(user_data); - var mouldList = menu.Select(u=>u.mould).ToList(); + { + var menu = await GetMenusByUser(_user); + var mouldList = menu.Select(u => u.mould).ToList(); return mouldList; } + public async Task> GetRolesByUser(user _user) { - var user_data = await _Db.Set().Include(u=>u.roles) + var user_data = await _Db.Set().Include(u => u.roles) .Where(u => u.id == _user.id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync(); - var roleList = user_data.roles.Where(u=> u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToList(); + var roleList = user_data.roles.Where(u => u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToList(); roleList.ForEach(u => u.users = null); return roleList; } public async Task Login(user _user) { - var user_data =await _Db.Set().Include(u=>u.roles).Where(u => u.username == _user.username&&u.password==_user.password&& - u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync(); - + var user_data = await _Db.Set().Include(u => u.roles).Where(u => u.username == _user.username && u.password == _user.password && + u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync(); return user_data; - } public async Task Register(user _user) { - var user_data =await GetEntity(u => u.username == _user.username); + var user_data = await GetEntity(u => u.username == _user.username); if (user_data != null) { return false; } - return await AddAsync(_user); + return await AddAsync(_user); } + /// + /// 优化,如果是传的id,或者是传一个对象,不是要返回全部信息,那么可知直接认为该id一定存在 + /// + /// + /// + /// public async Task SetRolesByUser(List roleIds, List userIds) { - var user_data =await _Db.Set().Include(u=>u.roles).Where(u =>userIds.Contains(u.id) &&u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToListAsync(); + var user_data = await _Db.Set().Include(u => u.roles).Where(u => userIds.Contains(u.id) ).ToListAsync(); if (user_data == null) { return false; - } - var roleList =await _Db.Set().Where(u => roleIds.Contains(u.id) && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToListAsync(); - foreach(var item in user_data) + } + var roleList = await _Db.Set().Where(u => roleIds.Contains(u.id)).ToListAsync(); + foreach (var item in user_data) { item.roles = roleList; } - return await UpdateListAsync(user_data); } - public async Task > GetMenuByUser(user _user) + + /// + /// 有可简化的GetUserById + /// + /// + /// + public async Task> GetMenuByUser(user _user) { - var user_data = await _Db.Set().Include(u => u.roles).ThenInclude(u => u.menus) - .Where(u => u.id == _user.id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync(); - List menu_data = new (); + var user_data = await _Db.Set().Include(u => u.roles).ThenInclude(u => u.menus).Where(u => u.id == _user.id ).FirstOrDefaultAsync(); + List menu_data = new(); foreach (var role in user_data.roles) { var menu = role.menus.ToList(); - menu.ForEach(u=>u.roles=null); - menu_data = menu_data.Concat(menu).ToList(); - } + menu.ForEach(u => u.roles = null); + menu_data = menu_data.Concat(menu).ToList(); + } return menu_data; } + + public async Task GetUserInfoById(int user_id) { - var user_data=await GetUserById(user_id); + var user_data = await GetUserById(user_id); user_data.roles.ToList().ForEach(u => u.users = null); return user_data; } + + /// + /// 这个方法可以被超级多个其他方法利用,这个是重要的 + /// + /// + /// public async Task GetUserById(int user_id) { var user_data = await _Db.Set().Include(u => u.roles) .Where(u => u.id == user_id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync(); return user_data; } + + /// + /// 有可简化的GetUserById + /// + /// + /// public async Task> GetMenuById(int user_id) { var user_data = await _Db.Set().Include(u => u.roles).Where(u => u.id == user_id).FirstOrDefaultAsync(); List menu_data = new(); - + foreach (var role in user_data.roles) { var menu = await _roleService.GetMenusByRole(role); @@ -154,14 +172,20 @@ namespace Yi.Framework.Service List endMenu = new List(); foreach (var item in topMenu) { - var p= await _Db.Set().Where(u=>u.id==item.id).Include(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ToListAsync(); + var p = await _Db.Set().Where(u => u.id == item.id).Include(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ToListAsync(); endMenu = endMenu.Union(p).ToList(); } return TopMenuBuild2(TopMenuBuild(endMenu, allMenuIds)); } - private List TopMenuBuild(List menu_data,List allMenuIds) + /// + /// 这种就命名的话,改成MenuIconAndShowBuild + /// + /// + /// + /// + private List TopMenuBuild(List menu_data, List allMenuIds) { for (int i = menu_data.Count() - 1; i >= 0; i--) @@ -172,7 +196,7 @@ namespace Yi.Framework.Service menu_data[i].icon = "Yi"; } - if (!allMenuIds.Contains(menu_data[i].id) || menu_data[i].is_delete == (short)Common.Enum.DelFlagEnum.Deleted|| menu_data[i].is_show == (short)Common.Enum.ShowFlagEnum.NoShow) + if (!allMenuIds.Contains(menu_data[i].id) || menu_data[i].is_delete == (short)Common.Enum.DelFlagEnum.Deleted || menu_data[i].is_show == (short)Common.Enum.ShowFlagEnum.NoShow) { menu_data.Remove(menu_data[i]); } @@ -184,6 +208,11 @@ namespace Yi.Framework.Service return menu_data; } + /// + /// 这种就命名的话,改成MenuChildrenBuild + /// + /// + /// private List TopMenuBuild2(List menu_data) { @@ -203,22 +232,21 @@ namespace Yi.Framework.Service - public async Task> GetMenuByUserId(string router,int userId,List menuIds) + public async Task> GetMenuByUserId(string router, int userId, List menuIds) { - var user_data= await _Db.Set().Include(u => u.roles).ThenInclude(u => u.menus).ThenInclude(u => u.children) - .ThenInclude(u => u.mould).Where(u => u.id==userId).FirstOrDefaultAsync(); - var roleList= user_data.roles.ToList(); - roleList.ForEach(u => u.users = null); - List menu_data =new(); - foreach(var item in roleList) + var user_data = await _Db.Set().Include(u => u.roles).ThenInclude(u => u.menus).ThenInclude(u => u.children) + .ThenInclude(u => u.mould).Where(u => u.id == userId).FirstOrDefaultAsync(); + var roleList = user_data.roles.ToList(); + roleList.ForEach(u => u.users = null); + List menu_data = new(); + foreach (var item in roleList) { item.menus.ToList().ForEach(u => u.roles = null); var menuData = item.menus.Where(u => u.router.ToUpper() == router.ToUpper()).FirstOrDefault(); - menu_data= menuData.children?.Where(u => menuIds.Contains(u.id)&& u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToList(); + menu_data = menuData.children?.Where(u => menuIds.Contains(u.id) && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToList(); if (menu_data != null) { break; } } - - return menu_data; + return menu_data; } } }