Compare commits

..

No commits in common. "1525e6df40cfa233cc861fc20f399f27d6afe99a" and "8404f5b452c3a54feeb502134ddfb19898237362" have entirely different histories.

4 changed files with 66 additions and 30 deletions

View File

@ -177,10 +177,11 @@
菜单服务
</summary>
</member>
<member name="M:langguanApi.Controllers.MenuController.List">
<member name="M:langguanApi.Controllers.MenuController.List(langguanApi.Model.reqpage)">
<summary>
获取菜单列表
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Controllers.MenuController.Add(langguanApi.Model.Entity.AddMenuDto)">
@ -1792,17 +1793,11 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Service.MenuService.GetMenuTree">
<member name="M:langguanApi.Service.MenuService.Pager(langguanApi.Model.reqpage)">
<summary>
获取菜单树
</summary>
<returns></returns>
</member>
<member name="M:langguanApi.Service.MenuService.GetChildList(System.String)">
<summary>
递归获取子菜单列表
</summary>
<param name="parentId"></param>
<param name="input"></param>
<returns></returns>
</member>
<member name="T:langguanApi.Service.OrganizedService">

View File

@ -24,11 +24,12 @@ namespace langguanApi.Controllers
/// <summary>
/// 获取菜单列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet("list")]
public async Task<IActionResult> List()
public async Task<IActionResult> List([FromQuery] reqpage input)
{
var result = await _menuService.GetMenuTree();
var result = await _menuService.Pager(input);
return Ok(result);
}
/// <summary>

View File

@ -84,29 +84,71 @@ namespace langguanApi.Service
/// <summary>
/// 获取菜单树
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<ApiResult> GetMenuTree()
public async Task<ApiResult> Pager(reqpage input)
{
//Expression<Func<Menu, bool>> exp = filter => filter.IsDelete == false;
//if (!string.IsNullOrEmpty(input.key))
//{
// exp = exp.And(filter => filter.Name.Contains(input.key));
//}
List<MenuTreeDto> dto = new List<MenuTreeDto>();
var MenuList = await GetChildList(null);
foreach (var item in MenuList)
try
{
dto.Add(new MenuTreeDto()
var MenuList = await GetChildList("0");//获取跟节点
if (MenuList.Any())
{
Id = item.Id,
Name = item.Name,
Sort = item.Sort,
ParentId = item.ParentId,
ParentName = item.ParentName,
Children = await GetChildList(item.Id)
});
foreach (var item in MenuList)
{
dto.Add(new MenuTreeDto()
{
Id = item.Id,
Name = item.Name,
Sort = item.Sort,
ParentId = item.ParentId,
ParentName = item.ParentName,
Children = await GetChildList(item.Id)
});
}
//筛选数据
if (!string.IsNullOrEmpty(input.key))
{
if (dto.Exists(p => p.Name == input.key) ||
dto.Exists(p => p.Children.Exists(c => c.Name == input.key)) ||
dto.Exists(p => p.ParentName == input.key))
{
if (dto.Exists(p => p.Name == input.key))
{
dto = dto.Where(p => p.Name == input.key).ToList();
}
else if (dto.Exists(p => p.Children.Exists(c => c.Name == input.key)))
{
dto = dto.SelectMany(p => p.Children).Where(p => p.Name == input.key).ToList();
}
else
{
dto = dto.SelectMany(p => p.Children).Where(p => p.ParentName == input.key).ToList();
}
return new ApiResult() { code = 0, data = dto, msg = "获取菜单列表" };
}
else
{
return new ApiResult() { code = 0, data = null, msg = "获取菜单列表不存在" };
}
}
}
}
return new ApiResult() { data = dto };
catch (Exception ex)
{
_logger.LogError($"获取菜单列表出现异常,请求参数:{Newtonsoft.Json.JsonConvert.SerializeObject(input)}," +
$"请求接口:'api/Menu/Pager'" +
$"异常信息:{ex.Message}," +
$"异常位置:{ex.StackTrace}"
);
return new ApiResult { code = 1, msg = "获取菜单列表失败", data = false };
}
finally
{
_logger.LogInformation($"获取菜单列表参数menu:{Newtonsoft.Json.JsonConvert.SerializeObject(input)}");
}
return new ApiResult() { code = 0, data = dto, msg = "获取菜单列表" };
}
/// <summary>
/// 递归获取子菜单列表

View File

@ -89,9 +89,7 @@ namespace langguanApi.Service
/// <returns></returns>
public async Task<ApiResult> List(int OrganizedType = 1)
{
List<OrganizedByDeviceDto> dto = new List<OrganizedByDeviceDto>();
Expression<Func<Organized, bool>> exp = filter => filter.OrganizedType == OrganizedType && filter.IsDelete == false;
var result = (await base.GetListWithExp(exp)).OrderByDescending(x => x.Order).ToList();
return new ApiResult() { code = 0, data = result };
}