| 
					
				 | 
			
			
				@@ -19,10 +19,16 @@ using ZhonTai.Plate.Admin.Domain.Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using ZhonTai.Plate.Admin.Domain.User; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using ZhonTai.Plate.Admin.Domain; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using ZhonTai.Plate.Admin.Service.Contracts; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using ZhonTai.Tools.DynamicApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using ZhonTai.Tools.DynamicApi.Attributes; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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 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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var result = await _permissionRepository.GetAsync(id); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -76,24 +87,44 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 查询分组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="id"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> GetGroupAsync(long id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var result = await _permissionRepository.GetAsync<PermissionGetGroupOutput>(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 查询菜单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="id"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> GetMenuAsync(long id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var result = await _permissionRepository.GetAsync<PermissionGetMenuOutput>(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 查询接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="id"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> GetApiAsync(long id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var result = await _permissionRepository.GetAsync<PermissionGetApiOutput>(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 查询权限点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="id"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> GetDotAsync(long id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var output = await _permissionRepository.Select 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -104,6 +135,13 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (end.HasValue) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -121,6 +159,72 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var entity = Mapper.Map<PermissionEntity>(input); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -129,6 +233,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(id > 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 新增菜单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="input"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> AddMenuAsync(PermissionAddMenuInput input) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var entity = Mapper.Map<PermissionEntity>(input); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -137,6 +246,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(id > 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 新增接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="input"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> AddApiAsync(PermissionAddApiInput input) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var entity = Mapper.Map<PermissionEntity>(input); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -145,6 +259,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(id > 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 新增权限点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="input"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [Transaction] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> AddDotAsync(PermissionAddDotInput input) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -160,6 +279,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(id > 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 修改分组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="input"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> UpdateGroupAsync(PermissionUpdateGroupInput input) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var result = false; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -173,6 +297,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Result(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 修改菜单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="input"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> UpdateMenuAsync(PermissionUpdateMenuInput input) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var result = false; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -186,6 +315,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Result(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 修改接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="input"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> UpdateApiAsync(PermissionUpdateApiInput input) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var result = false; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -199,6 +333,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Result(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 修改权限点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="input"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [Transaction] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> UpdateDotAsync(PermissionUpdateDotInput input) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -230,6 +369,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="id"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [Transaction] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> DeleteAsync(long id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -251,6 +395,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 软删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="id"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> SoftDeleteAsync(long id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //递归查询所有权限点 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -268,6 +417,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 保存角色权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="input"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [Transaction] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> AssignAsync(PermissionAssignInput input) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -323,6 +477,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultOutput.Ok(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 保存租户权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="input"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [Transaction] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public async Task<IResultOutput> SaveTenantPermissionsAsync(PermissionSaveTenantPermissionsInput input) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -370,52 +529,5 @@ namespace ZhonTai.Plate.Admin.Service.Permission 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |