重构接口

This commit is contained in:
lzw
2021-10-29 23:23:32 +08:00
parent 9d83b24a8d
commit 0bf80f0f51
16 changed files with 508 additions and 245 deletions

View File

@@ -11,118 +11,74 @@ namespace Yi.Framework.Service
{
public partial class MenuService:BaseService<menu>, IMenuService
{
short Normal = (short)Common.Enum.DelFlagEnum.Normal;
public async Task<menu> AddChildrenMenu(int menu_id, menu _children)
{
var menu_data = await _Db.Set<menu>().Include(u => u.children).Where(u => u.id == menu_id).FirstOrDefaultAsync();
var menu_data = await _DbRead.Set<menu>().Include(u => u.children).Where(u => u.id == menu_id).FirstOrDefaultAsync();
_children.is_top = (short)Common.Enum.TopFlagEnum.Children;
menu_data.children.Add(_children);
await UpdateAsync(menu_data);
return menu_data;
}
/// <summary>
/// 这个getEntity没有关联子类怎么能得到子类呢这是一个错误的接口
/// </summary>
/// <param name="_menu"></param>
/// <returns></returns>
public async Task<List<menu>> GetChildrenByMenu(menu _menu)
public async Task<bool> AddTopMenu(menu _menu)
{
var menu_data = await GetEntity(u=>u.id==_menu.id&& u.is_delete == (short)Common.Enum.DelFlagEnum.Normal);
var childrenList = menu_data.children.ToList();
return childrenList;
_menu.is_top = (short)Common.Enum.TopFlagEnum.Children;
return await AddAsync(_menu);
}
/// <summary>
/// 不要返回一个新创的变量直接返回menu.children,只要id就不要传一个对象
/// </summary>
/// <param name="_menu"></param>
/// <returns></returns>
public async Task<List<menu>> GetChildrenMenu(menu _menu)
public async Task<menu> GetMenuInMould()
{
var menu= await _Db.Set<menu>().Include(u => u.children).Include(u=>u.mould)
.Where(u =>u.id==_menu.id&& u.is_top == (short)Common.Enum.TopFlagEnum.Children )
.FirstOrDefaultAsync();
var childrenList = menu.children.ToList();
return childrenList;
}
public async Task<List<menu>> GetMenuMould()
{
var menuList= await _Db.Set<menu>().Include(u => u.children).Include(u => u.mould)
.Where(u => u.is_delete == (short)Common.Enum.DelFlagEnum.Normal )
.ToListAsync();
return menuList;
}
/// <summary>
/// 和GetChildrenMenu方法可以合并
/// </summary>
/// <param name="_menu"></param>
/// <returns></returns>
public async Task<menu> GetMenuMouldByMenu(menu _menu)
{
var menu_data = await _Db.Set<menu>().Include(u => u.children).Include(u=>u.mould)
.Where(u=>u.id==_menu.id&& u.is_delete == (short)Common.Enum.ShowFlagEnum.Show)
.FirstOrDefaultAsync();
return menu_data;
}
public async Task<mould> GetMouldByMenu(menu _menu)
{
var menu_data =await _Db.Set<menu>().Include(u => u.mould).Where(u => u.id == _menu.id).FirstOrDefaultAsync();
return menu_data.mould;
}
/// <summary>
/// 5层迭代
/// </summary>
/// <returns></returns>
public async Task<List<menu>> GetTopMenu()
{
var menu_data= await _Db.Set<menu>().Include(u=>u.mould)
var menu_data= await _DbRead.Set<menu>().Include(u=>u.mould)
.Include(u => u.children).ThenInclude(u => u.mould)
.Include(u=>u.children).ThenInclude(u => u.children).ThenInclude(u => u.mould)
.Include(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.mould)
.Include(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.mould)
.Where(u =>u.is_delete == (short)Common.Enum.DelFlagEnum.Normal && u.is_top == (short)Common.Enum.ShowFlagEnum.Show)
.Where(u =>u.is_delete == Normal && u.is_show == (short)Common.Enum.ShowFlagEnum.Show && u.is_top == (short)Common.Enum.TopFlagEnum.Top)
.OrderByDescending(u=>u.sort)
.ToListAsync();
.FirstOrDefaultAsync();
return TopMenuBuild(menu_data);
}
public async Task<List<menu>> GetTopMenusByHttpUser(List<int> menuIds)
{
return await _DbRead.Set<menu>().Where(u => menuIds.Contains(u.id)).ToListAsync();
}
public async Task<menu> SetMouldByMenu(int id1,int id2)
{
var menu_data = await _DbRead.Set<menu>().Include(u => u.mould).Where(u => u.id == id1).FirstOrDefaultAsync();
var mould_data = await _DbRead.Set<mould>().Where(u => u.id == id1).FirstOrDefaultAsync();
menu_data.mould = mould_data;
_Db.Update(menu_data);
return menu_data;
}
/// <summary>
/// 过滤已经被删除的这个应该是别的地方有方法的不应该写到service层里面的
/// </summary>
/// <param name="menu_data"></param>
/// <returns></returns>
private List<menu> TopMenuBuild(List<menu> menu_data)
private menu TopMenuBuild(menu menu_data)
{
for(int i = menu_data.Count()-1; i >=0; i--)
for (int i = menu_data.children.Count() - 1; i >= 0; i--)
{
if(menu_data[i].is_delete == (short)Common.Enum.DelFlagEnum.Deleted)
if (menu_data.children[i].is_delete == (short)Common.Enum.DelFlagEnum.Deleted)
{
menu_data.Remove(menu_data[i]);
menu_data.children.Remove(menu_data.children[i]);
}
else if (menu_data.children[i] != null)
{
TopMenuBuild(menu_data.children[i]);
}
else if(menu_data[i].children != null)
{
menu_data[i].children= TopMenuBuild(menu_data[i].children.ToList());
}
}
return menu_data;
}
/// <summary>
/// 要关联啊menudata要关联mould而且能用find就用find
/// </summary>
/// <param name="mouldId"></param>
/// <param name="menuId"></param>
/// <returns></returns>
public async Task<bool> SetMouldByMenu(int mouldId, int menuId)
public async Task<List<menu>> GetTopMenuByUserId(int userId)
{
var menu_data = await GetEntity(u => u.id == menuId);
var mould_data = await _Db.Set<mould>().Where(u => u.id==mouldId).FirstOrDefaultAsync();
menu_data.mould = mould_data;
return await UpdateAsync(menu_data);
throw new Exception();
}
}
}