|  | @@ -19,10 +19,16 @@ using ZhonTai.Plate.Admin.Domain.Api;
 | 
											
												
													
														|  |  using ZhonTai.Plate.Admin.Domain.User;
 |  |  using ZhonTai.Plate.Admin.Domain.User;
 | 
											
												
													
														|  |  using ZhonTai.Plate.Admin.Domain;
 |  |  using ZhonTai.Plate.Admin.Domain;
 | 
											
												
													
														|  |  using ZhonTai.Plate.Admin.Service.Contracts;
 |  |  using ZhonTai.Plate.Admin.Service.Contracts;
 | 
											
												
													
														|  | 
 |  | +using ZhonTai.Tools.DynamicApi;
 | 
											
												
													
														|  | 
 |  | +using ZhonTai.Tools.DynamicApi.Attributes;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  namespace ZhonTai.Plate.Admin.Service.Permission
 |  |  namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |  {
 |  |  {
 | 
											
												
													
														|  | -    public class PermissionService : BaseService, IPermissionService
 |  | 
 | 
											
												
													
														|  | 
 |  | +    /// <summary>
 | 
											
												
													
														|  | 
 |  | +    /// 权限服务
 | 
											
												
													
														|  | 
 |  | +    /// </summary>
 | 
											
												
													
														|  | 
 |  | +    [DynamicApi(Area = "admin")]
 | 
											
												
													
														|  | 
 |  | +    public class PermissionService : BaseService, IPermissionService, IDynamicApi
 | 
											
												
													
														|  |      {
 |  |      {
 | 
											
												
													
														|  |          private readonly AppConfig _appConfig;
 |  |          private readonly AppConfig _appConfig;
 | 
											
												
													
														|  |          private readonly IPermissionRepository _permissionRepository;
 |  |          private readonly IPermissionRepository _permissionRepository;
 | 
											
										
											
												
													
														|  | @@ -69,6 +75,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 查询权限
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="id"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> GetAsync(long id)
 |  |          public async Task<IResultOutput> GetAsync(long id)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              var result = await _permissionRepository.GetAsync(id);
 |  |              var result = await _permissionRepository.GetAsync(id);
 | 
											
										
											
												
													
														|  | @@ -76,24 +87,44 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Ok(result);
 |  |              return ResultOutput.Ok(result);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 查询分组
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="id"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> GetGroupAsync(long id)
 |  |          public async Task<IResultOutput> GetGroupAsync(long id)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              var result = await _permissionRepository.GetAsync<PermissionGetGroupOutput>(id);
 |  |              var result = await _permissionRepository.GetAsync<PermissionGetGroupOutput>(id);
 | 
											
												
													
														|  |              return ResultOutput.Ok(result);
 |  |              return ResultOutput.Ok(result);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 查询菜单
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="id"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> GetMenuAsync(long id)
 |  |          public async Task<IResultOutput> GetMenuAsync(long id)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              var result = await _permissionRepository.GetAsync<PermissionGetMenuOutput>(id);
 |  |              var result = await _permissionRepository.GetAsync<PermissionGetMenuOutput>(id);
 | 
											
												
													
														|  |              return ResultOutput.Ok(result);
 |  |              return ResultOutput.Ok(result);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 查询接口
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="id"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> GetApiAsync(long id)
 |  |          public async Task<IResultOutput> GetApiAsync(long id)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              var result = await _permissionRepository.GetAsync<PermissionGetApiOutput>(id);
 |  |              var result = await _permissionRepository.GetAsync<PermissionGetApiOutput>(id);
 | 
											
												
													
														|  |              return ResultOutput.Ok(result);
 |  |              return ResultOutput.Ok(result);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 查询权限点
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="id"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> GetDotAsync(long id)
 |  |          public async Task<IResultOutput> GetDotAsync(long id)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              var output = await _permissionRepository.Select
 |  |              var output = await _permissionRepository.Select
 | 
											
										
											
												
													
														|  | @@ -104,6 +135,13 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Ok(Mapper.Map<PermissionGetDotOutput>(output));
 |  |              return ResultOutput.Ok(Mapper.Map<PermissionGetDotOutput>(output));
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 查询权限列表
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="key"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="start"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="end"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> GetListAsync(string key, DateTime? start, DateTime? end)
 |  |          public async Task<IResultOutput> GetListAsync(string key, DateTime? start, DateTime? end)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              if (end.HasValue)
 |  |              if (end.HasValue)
 | 
											
										
											
												
													
														|  | @@ -121,6 +159,72 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Ok(data);
 |  |              return ResultOutput.Ok(data);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 查询角色权限-权限列表
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  | 
 |  | +        public async Task<IResultOutput> GetPermissionList()
 | 
											
												
													
														|  | 
 |  | +        {
 | 
											
												
													
														|  | 
 |  | +            var permissions = await _permissionRepository.Select
 | 
											
												
													
														|  | 
 |  | +                .WhereIf(_appConfig.Tenant && User.TenantType == TenantType.Tenant, a =>
 | 
											
												
													
														|  | 
 |  | +                    _tenantPermissionRepository
 | 
											
												
													
														|  | 
 |  | +                    .Where(b => b.PermissionId == a.Id && b.TenantId == User.TenantId)
 | 
											
												
													
														|  | 
 |  | +                    .Any()
 | 
											
												
													
														|  | 
 |  | +                )
 | 
											
												
													
														|  | 
 |  | +                .OrderBy(a => a.ParentId)
 | 
											
												
													
														|  | 
 |  | +                .OrderBy(a => a.Sort)
 | 
											
												
													
														|  | 
 |  | +                .ToListAsync(a => new { a.Id, a.ParentId, a.Label, a.Type });
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            var apis = permissions
 | 
											
												
													
														|  | 
 |  | +                .Where(a => a.Type == PermissionTypeEnum.Dot)
 | 
											
												
													
														|  | 
 |  | +                .Select(a => new { a.Id, a.ParentId, a.Label });
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            var menus = permissions
 | 
											
												
													
														|  | 
 |  | +                .Where(a => (new[] { PermissionTypeEnum.Group, PermissionTypeEnum.Menu }).Contains(a.Type))
 | 
											
												
													
														|  | 
 |  | +                .Select(a => new
 | 
											
												
													
														|  | 
 |  | +                {
 | 
											
												
													
														|  | 
 |  | +                    a.Id,
 | 
											
												
													
														|  | 
 |  | +                    a.ParentId,
 | 
											
												
													
														|  | 
 |  | +                    a.Label,
 | 
											
												
													
														|  | 
 |  | +                    Apis = apis.Where(b => b.ParentId == a.Id).Select(b => new { b.Id, b.Label })
 | 
											
												
													
														|  | 
 |  | +                });
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            return ResultOutput.Ok(menus);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 查询角色权限列表
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="roleId"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  | 
 |  | +        public async Task<IResultOutput> GetRolePermissionList(long roleId = 0)
 | 
											
												
													
														|  | 
 |  | +        {
 | 
											
												
													
														|  | 
 |  | +            var permissionIds = await _rolePermissionRepository
 | 
											
												
													
														|  | 
 |  | +                .Select.Where(d => d.RoleId == roleId)
 | 
											
												
													
														|  | 
 |  | +                .ToListAsync(a => a.PermissionId);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            return ResultOutput.Ok(permissionIds);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 查询租户权限列表
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="tenantId"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  | 
 |  | +        public async Task<IResultOutput> GetTenantPermissionList(long tenantId)
 | 
											
												
													
														|  | 
 |  | +        {
 | 
											
												
													
														|  | 
 |  | +            var permissionIds = await _tenantPermissionRepository
 | 
											
												
													
														|  | 
 |  | +                .Select.Where(d => d.TenantId == tenantId)
 | 
											
												
													
														|  | 
 |  | +                .ToListAsync(a => a.PermissionId);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            return ResultOutput.Ok(permissionIds);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 新增分组
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="input"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> AddGroupAsync(PermissionAddGroupInput input)
 |  |          public async Task<IResultOutput> AddGroupAsync(PermissionAddGroupInput input)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              var entity = Mapper.Map<PermissionEntity>(input);
 |  |              var entity = Mapper.Map<PermissionEntity>(input);
 | 
											
										
											
												
													
														|  | @@ -129,6 +233,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Ok(id > 0);
 |  |              return ResultOutput.Ok(id > 0);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 新增菜单
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="input"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> AddMenuAsync(PermissionAddMenuInput input)
 |  |          public async Task<IResultOutput> AddMenuAsync(PermissionAddMenuInput input)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              var entity = Mapper.Map<PermissionEntity>(input);
 |  |              var entity = Mapper.Map<PermissionEntity>(input);
 | 
											
										
											
												
													
														|  | @@ -137,6 +246,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Ok(id > 0);
 |  |              return ResultOutput.Ok(id > 0);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 新增接口
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="input"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> AddApiAsync(PermissionAddApiInput input)
 |  |          public async Task<IResultOutput> AddApiAsync(PermissionAddApiInput input)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              var entity = Mapper.Map<PermissionEntity>(input);
 |  |              var entity = Mapper.Map<PermissionEntity>(input);
 | 
											
										
											
												
													
														|  | @@ -145,6 +259,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Ok(id > 0);
 |  |              return ResultOutput.Ok(id > 0);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 新增权限点
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="input"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          [Transaction]
 |  |          [Transaction]
 | 
											
												
													
														|  |          public async Task<IResultOutput> AddDotAsync(PermissionAddDotInput input)
 |  |          public async Task<IResultOutput> AddDotAsync(PermissionAddDotInput input)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
										
											
												
													
														|  | @@ -160,6 +279,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Ok(id > 0);
 |  |              return ResultOutput.Ok(id > 0);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 修改分组
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="input"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> UpdateGroupAsync(PermissionUpdateGroupInput input)
 |  |          public async Task<IResultOutput> UpdateGroupAsync(PermissionUpdateGroupInput input)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              var result = false;
 |  |              var result = false;
 | 
											
										
											
												
													
														|  | @@ -173,6 +297,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Result(result);
 |  |              return ResultOutput.Result(result);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 修改菜单
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="input"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> UpdateMenuAsync(PermissionUpdateMenuInput input)
 |  |          public async Task<IResultOutput> UpdateMenuAsync(PermissionUpdateMenuInput input)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              var result = false;
 |  |              var result = false;
 | 
											
										
											
												
													
														|  | @@ -186,6 +315,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Result(result);
 |  |              return ResultOutput.Result(result);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 修改接口
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="input"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> UpdateApiAsync(PermissionUpdateApiInput input)
 |  |          public async Task<IResultOutput> UpdateApiAsync(PermissionUpdateApiInput input)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              var result = false;
 |  |              var result = false;
 | 
											
										
											
												
													
														|  | @@ -199,6 +333,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Result(result);
 |  |              return ResultOutput.Result(result);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 修改权限点
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="input"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          [Transaction]
 |  |          [Transaction]
 | 
											
												
													
														|  |          public async Task<IResultOutput> UpdateDotAsync(PermissionUpdateDotInput input)
 |  |          public async Task<IResultOutput> UpdateDotAsync(PermissionUpdateDotInput input)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
										
											
												
													
														|  | @@ -230,6 +369,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Ok();
 |  |              return ResultOutput.Ok();
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 删除
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="id"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          [Transaction]
 |  |          [Transaction]
 | 
											
												
													
														|  |          public async Task<IResultOutput> DeleteAsync(long id)
 |  |          public async Task<IResultOutput> DeleteAsync(long id)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
										
											
												
													
														|  | @@ -251,6 +395,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Ok();
 |  |              return ResultOutput.Ok();
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 软删除
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="id"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          public async Task<IResultOutput> SoftDeleteAsync(long id)
 |  |          public async Task<IResultOutput> SoftDeleteAsync(long id)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
												
													
														|  |              //递归查询所有权限点
 |  |              //递归查询所有权限点
 | 
											
										
											
												
													
														|  | @@ -268,6 +417,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Ok();
 |  |              return ResultOutput.Ok();
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 保存角色权限
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="input"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          [Transaction]
 |  |          [Transaction]
 | 
											
												
													
														|  |          public async Task<IResultOutput> AssignAsync(PermissionAssignInput input)
 |  |          public async Task<IResultOutput> AssignAsync(PermissionAssignInput input)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
										
											
												
													
														|  | @@ -323,6 +477,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |              return ResultOutput.Ok();
 |  |              return ResultOutput.Ok();
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        /// <summary>
 | 
											
												
													
														|  | 
 |  | +        /// 保存租户权限
 | 
											
												
													
														|  | 
 |  | +        /// </summary>
 | 
											
												
													
														|  | 
 |  | +        /// <param name="input"></param>
 | 
											
												
													
														|  | 
 |  | +        /// <returns></returns>
 | 
											
												
													
														|  |          [Transaction]
 |  |          [Transaction]
 | 
											
												
													
														|  |          public async Task<IResultOutput> SaveTenantPermissionsAsync(PermissionSaveTenantPermissionsInput input)
 |  |          public async Task<IResultOutput> SaveTenantPermissionsAsync(PermissionSaveTenantPermissionsInput input)
 | 
											
												
													
														|  |          {
 |  |          {
 | 
											
										
											
												
													
														|  | @@ -370,52 +529,5 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |              return ResultOutput.Ok();
 |  |              return ResultOutput.Ok();
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -        public async Task<IResultOutput> GetPermissionList()
 |  | 
 | 
											
												
													
														|  | -        {
 |  | 
 | 
											
												
													
														|  | -            var permissions = await _permissionRepository.Select
 |  | 
 | 
											
												
													
														|  | -                .WhereIf(_appConfig.Tenant && User.TenantType == TenantType.Tenant, a =>
 |  | 
 | 
											
												
													
														|  | -                    _tenantPermissionRepository
 |  | 
 | 
											
												
													
														|  | -                    .Where(b => b.PermissionId == a.Id && b.TenantId == User.TenantId)
 |  | 
 | 
											
												
													
														|  | -                    .Any()
 |  | 
 | 
											
												
													
														|  | -                )
 |  | 
 | 
											
												
													
														|  | -                .OrderBy(a => a.ParentId)
 |  | 
 | 
											
												
													
														|  | -                .OrderBy(a => a.Sort)
 |  | 
 | 
											
												
													
														|  | -                .ToListAsync(a => new { a.Id, a.ParentId, a.Label, a.Type });
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -            var apis = permissions
 |  | 
 | 
											
												
													
														|  | -                .Where(a => a.Type == PermissionTypeEnum.Dot)
 |  | 
 | 
											
												
													
														|  | -                .Select(a => new { a.Id, a.ParentId, a.Label });
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -            var menus = permissions
 |  | 
 | 
											
												
													
														|  | -                .Where(a => (new[] { PermissionTypeEnum.Group, PermissionTypeEnum.Menu }).Contains(a.Type))
 |  | 
 | 
											
												
													
														|  | -                .Select(a => new
 |  | 
 | 
											
												
													
														|  | -                {
 |  | 
 | 
											
												
													
														|  | -                    a.Id,
 |  | 
 | 
											
												
													
														|  | -                    a.ParentId,
 |  | 
 | 
											
												
													
														|  | -                    a.Label,
 |  | 
 | 
											
												
													
														|  | -                    Apis = apis.Where(b => b.ParentId == a.Id).Select(b => new { b.Id, b.Label })
 |  | 
 | 
											
												
													
														|  | -                });
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -            return ResultOutput.Ok(menus);
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -        public async Task<IResultOutput> GetRolePermissionList(long roleId = 0)
 |  | 
 | 
											
												
													
														|  | -        {
 |  | 
 | 
											
												
													
														|  | -            var permissionIds = await _rolePermissionRepository
 |  | 
 | 
											
												
													
														|  | -                .Select.Where(d => d.RoleId == roleId)
 |  | 
 | 
											
												
													
														|  | -                .ToListAsync(a => a.PermissionId);
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -            return ResultOutput.Ok(permissionIds);
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -        public async Task<IResultOutput> GetTenantPermissionList(long tenantId)
 |  | 
 | 
											
												
													
														|  | -        {
 |  | 
 | 
											
												
													
														|  | -            var permissionIds = await _tenantPermissionRepository
 |  | 
 | 
											
												
													
														|  | -                .Select.Where(d => d.TenantId == tenantId)
 |  | 
 | 
											
												
													
														|  | -                .ToListAsync(a => a.PermissionId);
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -            return ResultOutput.Ok(permissionIds);
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  }
 |  |  }
 |