Merge branch 'master' into master_sxs_合并分支

This commit is contained in:
pangwenpeng 2024-05-30 09:03:23 +08:00
commit ecacfc7d35
10 changed files with 261 additions and 6 deletions

View File

@ -167,6 +167,44 @@
<param name="end"></param>
<returns></returns>
</member>
<member name="T:langguanApi.Controllers.MenuController">
<summary>
MenuController
</summary>
</member>
<member name="F:langguanApi.Controllers.MenuController._menuService">
<summary>
菜单服务
</summary>
</member>
<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)">
<summary>
添加菜单
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Controllers.MenuController.Update(langguanApi.Model.Entity.UpdateMenuDto)">
<summary>
更新菜单
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Controllers.MenuController.Remove(System.Collections.Generic.IEnumerable{System.String})">
<summary>
删除菜单
</summary>
<param name="ids"></param>
<returns></returns>
</member>
<member name="T:langguanApi.Controllers.OrganizedController">
<summary>
组织的工序
@ -805,6 +843,26 @@
父菜单ID一级菜单为null
</summary>
</member>
<member name="P:langguanApi.Model.Entity.MenuTreeDto.Name">
<summary>
菜单名称
</summary>
</member>
<member name="P:langguanApi.Model.Entity.MenuTreeDto.Url">
<summary>
菜单URL
</summary>
</member>
<member name="P:langguanApi.Model.Entity.MenuTreeDto.Sort">
<summary>
排序
</summary>
</member>
<member name="P:langguanApi.Model.Entity.MenuTreeDto.ParentId">
<summary>
父菜单ID一级菜单为null
</summary>
</member>
<member name="P:langguanApi.Model.Entity.Role.RoleName">
<summary>
角色名称
@ -825,6 +883,11 @@
角色描述
</summary>
</member>
<member name="P:langguanApi.Model.Entity.AddRoleDto.MenuIds">
<summary>
菜单ID
</summary>
</member>
<member name="T:langguanApi.Model.Entity.UpdateRoleDto">
<summary>
更新角色DTO
@ -1730,6 +1793,13 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Service.MenuService.Pager(langguanApi.Model.reqpage)">
<summary>
获取菜单树
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="T:langguanApi.Service.OrganizedService">
<summary>
OrganizedService
@ -1813,6 +1883,13 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Service.RoleMenuServie.RemoveByRoleId(System.String)">
<summary>
删除角色菜单
</summary>
<param name="roleId"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Service.RoleMenuServie.UpdateRoleMenu(langguanApi.Model.Entity.UpdateRoleMenuDTO)">
<summary>
更新角色菜单

View File

@ -0,0 +1,69 @@
using langguanApi.Model;
using langguanApi.Model.Entity;
using langguanApi.Service;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace langguanApi.Controllers
{
/// <summary>
/// MenuController
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class MenuController : ControllerBase
{
/// <summary>
/// 菜单服务
/// </summary>
private readonly MenuService _menuService;
public MenuController(MenuService menuService)
{
_menuService = menuService;
}
/// <summary>
/// 获取菜单列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet("list")]
public async Task<IActionResult> List([FromQuery] reqpage input)
{
var result = await _menuService.Pager(input);
return Ok(result);
}
/// <summary>
/// 添加菜单
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("add")]
public async Task<IActionResult> Add(AddMenuDto input)
{
var result = await _menuService.AddMenu(input);
return Ok(result);
}
/// <summary>
/// 更新菜单
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPut("update")]
public async Task<IActionResult> Update(UpdateMenuDto input)
{
var result = await _menuService.UpdateMenu(input);
return Ok(result);
}
/// <summary>
/// 删除菜单
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
[HttpDelete("remove")]
public async Task<IActionResult> Remove(IEnumerable<string> ids)
{
await _menuService.BatchRemoveAsync(ids);
return Ok(new ApiResult());
}
}
}

View File

@ -16,9 +16,11 @@ namespace langguanApi.Controllers
public class RoleController : ControllerBase
{
public readonly RoleService _roleService;
public RoleController(RoleService roleService)
private readonly RoleMenuServie _roleMenuServie;
public RoleController(RoleService roleService, RoleMenuServie roleMenuServie)
{
_roleService = roleService;
_roleMenuServie = roleMenuServie;
}
/// <summary>
/// 获取角色详情

View File

@ -45,4 +45,26 @@
{
public string Id { get; set; }
}
public class MenuTreeDto
{
public string Id { get; set; }
/// <summary>
/// 菜单名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 菜单URL
/// </summary>
public string Url { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Sort { get; set; }
/// <summary>
/// 父菜单ID一级菜单为null
/// </summary>
public string ParentId { get; set; }
public string ParentName { get; set; }
public List<MenuTreeDto> Children { get; set; }
}
}

View File

@ -21,6 +21,10 @@
/// 角色描述
/// </summary>
public string RoleDescription { get; set; }
/// <summary>
/// 菜单ID
/// </summary>
public IEnumerable<string> MenuIds { get; set; }
}
/// <summary>
/// 更新角色DTO

View File

@ -41,7 +41,7 @@ namespace langguanApi.Service
/// <returns></returns>
public async Task<object> GetPage(reqpage input)
{
Expression<Func<Alert, bool>> exp = filter => filter.DeviceMn.Contains(input.key) && filter.IsDelete == false;
Expression<Func<Alert, bool>> exp = filter => filter.IsDelete == false;
return await base.GetPager(new ReqPaing()
{
pageSize = input.pageSize,

View File

@ -1,4 +1,5 @@
using langguanApi.Extensions.AutoDI;
using langguanApi.Extensions;
using langguanApi.Extensions.AutoDI;
using langguanApi.Model;
using langguanApi.Model.Entity;
using Mapster;
@ -30,5 +31,57 @@ namespace langguanApi.Service
await base.UpdateAsync(entity.Id, entity);
return new ApiResult();
}
/// <summary>
/// 获取菜单树
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
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)
{
dto.Add(new MenuTreeDto()
{
Id = item.Id,
Name = item.Name,
Sort = item.Sort,
ParentId = item.ParentId,
ParentName = item.ParentName,
Children = await GetChildList(item.Id)
});
}
return new ApiResult() { data = dto };
//return await base.GetPager(new ReqPaing()
//{
// pageSize = input.pageSize,
// current = input.current
//}, exp);
}
/// <summary>
/// 递归获取子菜单列表
/// </summary>
/// <param name="parentId"></param>
/// <returns></returns>
public async Task<List<MenuTreeDto>> GetChildList(string parentId)
{
Expression<Func<Menu, bool>> exp = filter => filter.IsDelete == false && filter.ParentId == parentId;
var list = (await GetListWithExp(exp))
.OrderByDescending(x => x.Sort)
.ToList().Adapt<List<MenuTreeDto>>();
foreach (var item in list)
{
item.Children = await GetChildList(item.Id);
item.ParentName = (await base.GetAsync(item.ParentId))?.Name;
}
return list;
}
}
}

View File

@ -38,9 +38,16 @@ namespace langguanApi.Service
}
return new ApiResult() { code = 0 };
}
public async Task<ApiResult> DeleteRoleMenu(string roleId)
/// <summary>
/// 删除角色菜单
/// </summary>
/// <param name="roleId"></param>
/// <returns></returns>
public async Task<ApiResult> RemoveByRoleId(string roleId)
{
return null;
Expression<Func<RoleMenu, bool>> exp = filter => filter.IsDelete == false && filter.RoleId == roleId;
await base.BatchRemoveAsync(exp);
return new ApiResult() { code = 0 };
}
/// <summary>
/// 更新角色菜单

View File

@ -36,6 +36,14 @@ namespace langguanApi.Service
}
var entity = role.Adapt<Role>();
await base.CreateAsync(entity);
foreach (var item in role.MenuIds)
{
await _roleMenuServie.CreateAsync(new RoleMenu()
{
RoleId = entity.Id,
MenuId = item
});
}
return new ApiResult() { code = 0 };
}
/// <summary>
@ -78,6 +86,15 @@ namespace langguanApi.Service
{
var entity = role.Adapt<Role>();
await base.UpdateAsync(entity.Id, entity);
await _roleMenuServie.RemoveByRoleId(entity.Id);
foreach (var item in role.MenuIds)
{
await _roleMenuServie.CreateAsync(new RoleMenu()
{
MenuId = item,
RoleId = entity.Id
});
}
return new ApiResult() { code = 0 };
}
/// <summary>

View File

@ -77,7 +77,11 @@ namespace langguanApi.Service
/// <returns></returns>
public async Task<ApiResult> GetPage(reqpage input)
{
Expression<Func<UserEntity, bool>> exp = filter => filter.Username.Contains(input.key) && filter.IsDelete == false;
Expression<Func<UserEntity, bool>> exp = filter => true;
if (!string.IsNullOrEmpty(input.key))
{
exp = filter => filter.Username.Contains(input.key) || filter.Phone.Contains(input.key) || filter.Email.Contains(input.key);
}
return await base.GetPager(new ReqPaing()
{
pageSize = input.pageSize,