Merge branch 'master' into master_sxs_合并分支
This commit is contained in:
		
						commit
						ecacfc7d35
					
				| 
						 | 
				
			
			@ -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>
 | 
			
		||||
            更新角色菜单
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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>
 | 
			
		||||
        /// 获取角色详情
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,10 @@
 | 
			
		|||
        /// 角色描述
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public string RoleDescription { get; set; }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 菜单ID
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public IEnumerable<string> MenuIds { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// 更新角色DTO
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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>
 | 
			
		||||
        /// 更新角色菜单
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue