Parcourir la source

所有admin和人事服务增加动态api

zhontai il y a 3 ans
Parent
commit
8fc68a6176
23 fichiers modifiés avec 827 ajouts et 166 suppressions
  1. 1 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi.Shared/BaseStartup.cs
  2. 1 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/AuthController.cs
  3. 1 52
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Api/IApiService.cs
  4. 1 4
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Auth/IAuthService.cs
  5. 1 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Base/IBaseService.cs
  6. 54 2
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Api/ApiService.cs
  7. 22 3
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Auth/AuthService.cs
  8. 16 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Cache/CacheService.cs
  9. 42 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Dictionary/DictionaryService.cs
  10. 42 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/DictionaryType/DictionaryTypeService.cs
  11. 89 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Document/DocumentService.cs
  12. 17 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/LoginLog/LoginLogService.cs
  13. 17 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/OprationLog/OprationLogService.cs
  14. 160 48
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Permission/PermissionService.cs
  15. 42 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Role/RoleService.cs
  16. 42 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Tenant/TenantService.cs
  17. 98 33
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/User/UserService.cs
  18. 53 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/View/ViewService.cs
  19. 39 1
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service/Employee/EmployeeService.cs
  20. 37 1
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service/Organization/OrganizationService.cs
  21. 43 1
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service/Position/PositionService.cs
  22. 2 2
      src/shared/ZhonTai.Tools/Captcha/Dto/PointModel.cs
  23. 7 7
      src/shared/ZhonTai.Tools/Captcha/SlideJigsawCaptchaTool.cs

+ 1 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi.Shared/BaseStartup.cs

@@ -330,7 +330,7 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared
                     options.Filters.Add<ControllerLogFilter>();
                 }
                 //禁止去除ActionAsync后缀
-                options.SuppressAsyncSuffixInActionNames = false;
+                //options.SuppressAsyncSuffixInActionNames = false;
             })
             //.AddFluentValidation(config =>
             //{

+ 1 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/AuthController.cs

@@ -122,7 +122,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         [NoOprationLog]
         public async Task<IResultOutput> GetPassWordEncryptKey()
         {
-            return await _authService.GetPassWordEncryptKeyAsync();
+            return await _authService.GetPasswordEncryptKeyAsync();
         }
 
         /// <summary>

+ 1 - 52
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Api/IApiService.cs

@@ -2,78 +2,27 @@ using ZhonTai.Common.Domain.Dto;
 using System.Threading.Tasks;
 using ZhonTai.Plate.Admin.Service.Api.Dto;
 using ZhonTai.Plate.Admin.Domain.Api.Dto;
-using ZhonTai.Tools.DynamicApi;
-using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.Api
 {
-    /// <summary>
-    /// 接口服务
-    /// </summary>
-    [DynamicApi(Area = "admin")]
-    public interface IApiService: IDynamicApi
+    public interface IApiService
     {
-        /// <summary>
-        /// 获得一条记录
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
         Task<IResultOutput> GetAsync(long id);
 
-        /// <summary>
-        /// 获得列表
-        /// </summary>
-        /// <param name="key"></param>
-        /// <returns></returns>
         Task<IResultOutput> GetListAsync(string key);
 
-        /// <summary>
-        /// 获得分页
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
         Task<IResultOutput> GetPageAsync(PageInput<ApiGetPageDto> input);
 
-        /// <summary>
-        /// 添加
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
         Task<IResultOutput> AddAsync(ApiAddInput input);
 
-        /// <summary>
-        /// 修改
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
         Task<IResultOutput> UpdateAsync(ApiUpdateInput input);
 
-        /// <summary>
-        /// 删除
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
         Task<IResultOutput> DeleteAsync(long id);
 
-        /// <summary>
-        /// 软删除
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
         Task<IResultOutput> SoftDeleteAsync(long id);
 
-        /// <summary>
-        /// 批量软删除
-        /// </summary>
-        /// <param name="ids"></param>
-        /// <returns></returns>
         Task<IResultOutput> BatchSoftDeleteAsync(long[] ids);
 
-        /// <summary>
-        /// 同步
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
         Task<IResultOutput> SyncAsync(ApiSyncInput input);
     }
 }

+ 1 - 4
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Auth/IAuthService.cs

@@ -4,15 +4,12 @@ using ZhonTai.Plate.Admin.Service.Auth.Dto;
 
 namespace ZhonTai.Plate.Admin.Service.Auth
 {
-    /// <summary>
-    /// ȨÏÞ·þÎñ
-    /// </summary>
     public interface IAuthService
     {
         Task<IResultOutput> LoginAsync(AuthLoginInput input);
 
         Task<IResultOutput> GetUserInfoAsync();
 
-        Task<IResultOutput> GetPassWordEncryptKeyAsync();
+        Task<IResultOutput> GetPasswordEncryptKeyAsync();
     }
 }

+ 1 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Base/IBaseService.cs

@@ -1,6 +1,6 @@
 namespace ZhonTai.Plate.Admin.Service
 {
-    public abstract class IBaseService
+    public interface IBaseService
     {
         
     }

+ 54 - 2
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Api/ApiService.cs

@@ -1,16 +1,22 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
 using ZhonTai.Common.Attributes;
 using ZhonTai.Common.Domain.Dto;
 using ZhonTai.Plate.Admin.Domain.Api;
 using ZhonTai.Plate.Admin.Service.Api.Dto;
 using ZhonTai.Plate.Admin.Domain.Api.Dto;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.Api
 {
-    
-    public class ApiService : BaseService, IApiService
+    /// <summary>
+    /// 接口服务
+    /// </summary>
+    [DynamicApi(Area = "admin")]
+    public class ApiService : BaseService, IApiService, IDynamicApi
     {
         private readonly IApiRepository _apiRepository;
 
@@ -19,12 +25,22 @@ namespace ZhonTai.Plate.Admin.Service.Api
             _apiRepository = moduleRepository;
         }
 
+        /// <summary>
+        /// 查询接口
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _apiRepository.GetAsync<ApiGetOutput>(id);
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 查询列表
+        /// </summary>
+        /// <param name="key"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetListAsync(string key)
         {
             var data = await _apiRepository
@@ -34,6 +50,11 @@ namespace ZhonTai.Plate.Admin.Service.Api
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 查询分页
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetPageAsync(PageInput<ApiGetPageDto> input)
         {
             var key = input.Filter?.Label;
@@ -55,6 +76,11 @@ namespace ZhonTai.Plate.Admin.Service.Api
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 添加
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> AddAsync(ApiAddInput input)
         {
             var entity = Mapper.Map<ApiEntity>(input);
@@ -63,6 +89,11 @@ namespace ZhonTai.Plate.Admin.Service.Api
             return ResultOutput.Result(id > 0);
         }
 
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateAsync(ApiUpdateInput input)
         {
             if (!(input?.Id > 0))
@@ -81,6 +112,11 @@ namespace ZhonTai.Plate.Admin.Service.Api
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
@@ -92,12 +128,23 @@ namespace ZhonTai.Plate.Admin.Service.Api
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 软删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpDelete]
         public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _apiRepository.SoftDeleteAsync(id);
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 批量软删除
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             var result = await _apiRepository.SoftDeleteAsync(ids);
@@ -105,6 +152,11 @@ namespace ZhonTai.Plate.Admin.Service.Api
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 同步
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> SyncAsync(ApiSyncInput input)
         {

+ 22 - 3
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Auth/AuthService.cs

@@ -4,7 +4,6 @@ using System.Threading.Tasks;
 using ZhonTai.Common.Configs;
 using ZhonTai.Common.Helpers;
 using ZhonTai.Common.Domain.Dto;
-using ZhonTai.Tools.Captcha;
 using ZhonTai.Plate.Admin.Domain.Permission;
 using ZhonTai.Plate.Admin.Domain.User;
 using ZhonTai.Plate.Admin.Domain.Tenant;
@@ -12,10 +11,17 @@ using ZhonTai.Plate.Admin.Service.Auth.Dto;
 using ZhonTai.Plate.Admin.Domain.RolePermission;
 using ZhonTai.Plate.Admin.Domain.UserRole;
 using ZhonTai.Plate.Admin.Service.Contracts;
+using ZhonTai.Tools.Captcha;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.Auth
 {
-    public class AuthService : BaseService, IAuthService
+    /// <summary>
+    /// 权限服务
+    /// </summary>
+    [DynamicApi(Area = "admin")]
+    public class AuthService : BaseService, IAuthService, IDynamicApi
     {
         private readonly AppConfig _appConfig;
         private readonly IPermissionRepository _permissionRepository;
@@ -38,7 +44,11 @@ namespace ZhonTai.Plate.Admin.Service.Auth
             _captchaTool = captchaTool;
         }
 
-        public async Task<IResultOutput> GetPassWordEncryptKeyAsync()
+        /// <summary>
+        /// 查询密钥
+        /// </summary>
+        /// <returns></returns>
+        public async Task<IResultOutput> GetPasswordEncryptKeyAsync()
         {
             //写入Redis
             var guid = Guid.NewGuid().ToString("N");
@@ -50,6 +60,10 @@ namespace ZhonTai.Plate.Admin.Service.Auth
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 查询用户信息
+        /// </summary>
+        /// <returns></returns>
         public async Task<IResultOutput> GetUserInfoAsync()
         {
             if (!(User?.Id > 0))
@@ -88,6 +102,11 @@ namespace ZhonTai.Plate.Admin.Service.Auth
             return ResultOutput.Ok(authUserInfoOutput);
         }
 
+        /// <summary>
+        /// 登录
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> LoginAsync(AuthLoginInput input)
         {
             #region 验证码校验

+ 16 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Cache/CacheService.cs

@@ -6,15 +6,25 @@ using System.Reflection;
 using System.Threading.Tasks;
 using ZhonTai.Common.Domain.Dto;
 using ZhonTai.Plate.Admin.Service.Contracts;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.Cache
 {
-    public class CacheService : BaseService, ICacheService
+    /// <summary>
+    /// 缓存服务
+    /// </summary>
+    [DynamicApi(Area = "admin")]
+    public class CacheService : BaseService, ICacheService, IDynamicApi
     {
         public CacheService()
         {
         }
 
+        /// <summary>
+        /// 查询列表
+        /// </summary>
+        /// <returns></returns>
         public IResultOutput GetList()
         {
             var list = new List<object>();
@@ -35,6 +45,11 @@ namespace ZhonTai.Plate.Admin.Service.Cache
             return ResultOutput.Ok(list);
         }
 
+        /// <summary>
+        /// 清除缓存
+        /// </summary>
+        /// <param name="cacheKey">缓存键</param>
+        /// <returns></returns>
         public async Task<IResultOutput> ClearAsync(string cacheKey)
         {
             Logger.LogWarning($"{User.Id}.{User.Name}清除缓存[{cacheKey}]");

+ 42 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Dictionary/DictionaryService.cs

@@ -3,10 +3,16 @@ using ZhonTai.Common.Domain.Dto;
 using ZhonTai.Plate.Admin.Domain.Dictionary;
 using ZhonTai.Plate.Admin.Service.Dictionary.Dto;
 using ZhonTai.Plate.Admin.Domain.Dictionary.Dto;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.Dictionary
 {
-    public class DictionaryService : BaseService, IDictionaryService
+    /// <summary>
+    /// 数据字典服务
+    /// </summary>
+    [DynamicApi(Area = "admin")]
+    public class DictionaryService : BaseService, IDictionaryService, IDynamicApi
     {
         private readonly IDictionaryRepository _dictionaryRepository;
 
@@ -15,12 +21,22 @@ namespace ZhonTai.Plate.Admin.Service.Dictionary
             _dictionaryRepository = dictionaryRepository;
         }
 
+        /// <summary>
+        /// 查询数据字典
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _dictionaryRepository.GetAsync<DictionaryGetOutput>(id);
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 查询分页
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetPageAsync(PageInput<DictionaryGetPageDto> input)
         {
             var key = input.Filter?.Name;
@@ -43,6 +59,11 @@ namespace ZhonTai.Plate.Admin.Service.Dictionary
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> AddAsync(DictionaryAddInput input)
         {
             var dictionary = Mapper.Map<DictionaryEntity>(input);
@@ -50,6 +71,11 @@ namespace ZhonTai.Plate.Admin.Service.Dictionary
             return ResultOutput.Result(id > 0);
         }
 
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateAsync(DictionaryUpdateInput input)
         {
             if (!(input?.Id > 0))
@@ -68,6 +94,11 @@ namespace ZhonTai.Plate.Admin.Service.Dictionary
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
@@ -79,6 +110,11 @@ namespace ZhonTai.Plate.Admin.Service.Dictionary
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 软删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _dictionaryRepository.SoftDeleteAsync(id);
@@ -86,6 +122,11 @@ namespace ZhonTai.Plate.Admin.Service.Dictionary
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 批量软删除
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             var result = await _dictionaryRepository.SoftDeleteAsync(ids);

+ 42 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/DictionaryType/DictionaryTypeService.cs

@@ -6,10 +6,16 @@ using ZhonTai.Plate.Admin.Service.DictionaryType.Dto;
 using ZhonTai.Plate.Admin.Domain.DictionaryType;
 using ZhonTai.Plate.Admin.Domain.Dictionary;
 using ZhonTai.Plate.Admin.Domain.DictionaryType.Dto;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.DictionaryType
 {
-    public class DictionaryTypeService : BaseService, IDictionaryTypeService
+    /// <summary>
+    /// 字典类型服务
+    /// </summary>
+    [DynamicApi(Area = "admin")]
+    public class DictionaryTypeService : BaseService, IDictionaryTypeService, IDynamicApi
     {
         private readonly IDictionaryTypeRepository _DictionaryTypeRepository;
         private readonly IDictionaryRepository _dictionaryRepository;
@@ -19,12 +25,22 @@ namespace ZhonTai.Plate.Admin.Service.DictionaryType
             _dictionaryRepository = dictionaryRepository;
         }
 
+        /// <summary>
+        /// 查询字典类型
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _DictionaryTypeRepository.GetAsync<DictionaryTypeGetOutput>(id);
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 查询分页
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetPageAsync(PageInput<DictionaryTypeGetPageDto> input)
         {
             var key = input.Filter?.Name;
@@ -46,6 +62,11 @@ namespace ZhonTai.Plate.Admin.Service.DictionaryType
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> AddAsync(DictionaryTypeAddInput input)
         {
             var DictionaryType = Mapper.Map<DictionaryTypeEntity>(input);
@@ -53,6 +74,11 @@ namespace ZhonTai.Plate.Admin.Service.DictionaryType
             return ResultOutput.Result(id > 0);
         }
 
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateAsync(DictionaryTypeUpdateInput input)
         {
             if (!(input?.Id > 0))
@@ -71,6 +97,11 @@ namespace ZhonTai.Plate.Admin.Service.DictionaryType
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> DeleteAsync(long id)
         {
@@ -83,6 +114,11 @@ namespace ZhonTai.Plate.Admin.Service.DictionaryType
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 软删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
@@ -92,6 +128,11 @@ namespace ZhonTai.Plate.Admin.Service.DictionaryType
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 批量软删除
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {

+ 89 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Document/DocumentService.cs

@@ -5,10 +5,16 @@ using ZhonTai.Common.Domain.Dto;
 using ZhonTai.Plate.Admin.Domain.Document;
 using ZhonTai.Plate.Admin.Domain.DocumentImage;
 using ZhonTai.Plate.Admin.Service.Document.Dto;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.Document
 {
-    public class DocumentService : BaseService, IDocumentService
+    /// <summary>
+    /// 文档服务
+    /// </summary>
+    [DynamicApi(Area = "admin")]
+    public class DocumentService : BaseService, IDocumentService, IDynamicApi
     {
         private readonly IDocumentRepository _documentRepository;
         private readonly IDocumentImageRepository _documentImageRepository;
@@ -22,6 +28,11 @@ namespace ZhonTai.Plate.Admin.Service.Document
             _documentImageRepository = documentImageRepository;
         }
 
+        /// <summary>
+        /// 查询文档
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _documentRepository.GetAsync(id);
@@ -29,24 +40,46 @@ namespace ZhonTai.Plate.Admin.Service.Document
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 查询分组
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetGroupAsync(long id)
         {
             var result = await _documentRepository.GetAsync<DocumentGetGroupOutput>(id);
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 查询菜单
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetMenuAsync(long id)
         {
             var result = await _documentRepository.GetAsync<DocumentGetMenuOutput>(id);
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 查询文档内容
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetContentAsync(long id)
         {
             var result = await _documentRepository.GetAsync<DocumentGetContentOutput>(id);
             return ResultOutput.Ok(result);
         }
 
+        /// <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)
@@ -64,6 +97,11 @@ namespace ZhonTai.Plate.Admin.Service.Document
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 查询图片列表
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetImageListAsync(long id)
         {
             var result = await _documentImageRepository.Select
@@ -74,6 +112,11 @@ namespace ZhonTai.Plate.Admin.Service.Document
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 新增分组
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> AddGroupAsync(DocumentAddGroupInput input)
         {
             var entity = Mapper.Map<DocumentEntity>(input);
@@ -82,6 +125,11 @@ namespace ZhonTai.Plate.Admin.Service.Document
             return ResultOutput.Result(id > 0);
         }
 
+        /// <summary>
+        /// 新增菜单
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> AddMenuAsync(DocumentAddMenuInput input)
         {
             var entity = Mapper.Map<DocumentEntity>(input);
@@ -90,6 +138,11 @@ namespace ZhonTai.Plate.Admin.Service.Document
             return ResultOutput.Result(id > 0);
         }
 
+        /// <summary>
+        /// 新增图片
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> AddImageAsync(DocumentAddImageInput input)
         {
             var entity = Mapper.Map<DocumentImageEntity>(input);
@@ -98,6 +151,11 @@ namespace ZhonTai.Plate.Admin.Service.Document
             return ResultOutput.Result(id > 0);
         }
 
+        /// <summary>
+        /// 修改分组
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateGroupAsync(DocumentUpdateGroupInput input)
         {
             var result = false;
@@ -111,6 +169,11 @@ namespace ZhonTai.Plate.Admin.Service.Document
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 修改菜单
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateMenuAsync(DocumentUpdateMenuInput input)
         {
             var result = false;
@@ -124,6 +187,11 @@ namespace ZhonTai.Plate.Admin.Service.Document
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 修改文档内容
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateContentAsync(DocumentUpdateContentInput input)
         {
             var result = false;
@@ -137,6 +205,11 @@ namespace ZhonTai.Plate.Admin.Service.Document
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
@@ -148,6 +221,12 @@ namespace ZhonTai.Plate.Admin.Service.Document
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 删除图片
+        /// </summary>
+        /// <param name="documentId"></param>
+        /// <param name="url"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> DeleteImageAsync(long documentId, string url)
         {
             var result = false;
@@ -159,12 +238,21 @@ namespace ZhonTai.Plate.Admin.Service.Document
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 软删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _documentRepository.SoftDeleteAsync(id);
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 查询精简文档列表
+        /// </summary>
+        /// <returns></returns>
         public async Task<IResultOutput> GetPlainListAsync()
         {
             var documents = await _documentRepository.Select

+ 17 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/LoginLog/LoginLogService.cs

@@ -5,10 +5,16 @@ using ZhonTai.Common.Domain.Dto;
 using ZhonTai.Plate.Admin.Domain.LoginLog;
 using ZhonTai.Plate.Admin.Service.LoginLog.Dto;
 using ZhonTai.Plate.Admin.Domain;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.LoginLog
 {
-    public class LoginLogService : BaseService, ILoginLogService
+    /// <summary>
+    /// 登录日志服务
+    /// </summary>
+    [DynamicApi(Area = "admin")]
+    public class LoginLogService : BaseService, ILoginLogService, IDynamicApi
     {
         private readonly IHttpContextAccessor _context;
         private readonly ILoginLogRepository _loginLogRepository;
@@ -22,6 +28,11 @@ namespace ZhonTai.Plate.Admin.Service.LoginLog
             _loginLogRepository = loginLogRepository;
         }
 
+        /// <summary>
+        /// 查询分页
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetPageAsync(PageInput<LogGetPageDto> input)
         {
             var userName = input.Filter?.CreatedUserName;
@@ -43,6 +54,11 @@ namespace ZhonTai.Plate.Admin.Service.LoginLog
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput<long>> AddAsync(LoginLogAddInput input)
         {
             var res = new ResultOutput<long>();

+ 17 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/OprationLog/OprationLogService.cs

@@ -5,10 +5,16 @@ using ZhonTai.Common.Domain.Dto;
 using ZhonTai.Plate.Admin.Service.OprationLog.Dto;
 using ZhonTai.Plate.Admin.Domain.OprationLog;
 using ZhonTai.Plate.Admin.Domain;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.OprationLog
 {
-    public class OprationLogService : BaseService, IOprationLogService
+    /// <summary>
+    /// 操作日志服务
+    /// </summary>
+    [DynamicApi(Area = "admin")]
+    public class OprationLogService : BaseService, IOprationLogService, IDynamicApi
     {
         private readonly IHttpContextAccessor _context;
         private readonly IOprationLogRepository _oprationLogRepository;
@@ -22,6 +28,11 @@ namespace ZhonTai.Plate.Admin.Service.OprationLog
             _oprationLogRepository = oprationLogRepository;
         }
 
+        /// <summary>
+        /// 查询分页
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetPageAsync(PageInput<LogGetPageDto> input)
         {
             var userName = input.Filter?.CreatedUserName;
@@ -43,6 +54,11 @@ namespace ZhonTai.Plate.Admin.Service.OprationLog
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> AddAsync(OprationLogAddInput input)
         {
             string ua = _context.HttpContext.Request.Headers["User-Agent"];

+ 160 - 48
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Permission/PermissionService.cs

@@ -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);
-        }
     }
 }

+ 42 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Role/RoleService.cs

@@ -6,10 +6,16 @@ using ZhonTai.Plate.Admin.Domain.Role;
 using ZhonTai.Plate.Admin.Domain.RolePermission;
 using ZhonTai.Plate.Admin.Service.Role.Dto;
 using ZhonTai.Plate.Admin.Domain.Role.Dto;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.Role
 {
-    public class RoleService : BaseService, IRoleService
+    /// <summary>
+    /// 角色服务
+    /// </summary>
+    [DynamicApi(Area = "admin")]
+    public class RoleService : BaseService, IRoleService, IDynamicApi
     {
         private readonly IRoleRepository _roleRepository;
         private readonly IRepositoryBase<RolePermissionEntity> _rolePermissionRepository;
@@ -23,12 +29,22 @@ namespace ZhonTai.Plate.Admin.Service.Role
             _rolePermissionRepository = rolePermissionRepository;
         }
 
+        /// <summary>
+        /// 查询角色
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _roleRepository.GetAsync<RoleGetOutput>(id);
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 查询分页
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetPageAsync(PageInput<RoleGetPageDto> input)
         {
             var key = input.Filter?.Name;
@@ -50,6 +66,11 @@ namespace ZhonTai.Plate.Admin.Service.Role
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> AddAsync(RoleAddInput input)
         {
             var entity = Mapper.Map<RoleEntity>(input);
@@ -58,6 +79,11 @@ namespace ZhonTai.Plate.Admin.Service.Role
             return ResultOutput.Result(id > 0);
         }
 
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateAsync(RoleUpdateInput input)
         {
             if (!(input?.Id > 0))
@@ -76,6 +102,11 @@ namespace ZhonTai.Plate.Admin.Service.Role
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
@@ -87,6 +118,11 @@ namespace ZhonTai.Plate.Admin.Service.Role
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 软删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _roleRepository.SoftDeleteAsync(id);
@@ -95,6 +131,11 @@ namespace ZhonTai.Plate.Admin.Service.Role
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 批量软删除
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             var result = await _roleRepository.SoftDeleteAsync(ids);

+ 42 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Tenant/TenantService.cs

@@ -11,10 +11,16 @@ using ZhonTai.Plate.Admin.Domain.User;
 using ZhonTai.Plate.Admin.Domain.UserRole;
 using ZhonTai.Plate.Admin.Service.Tenant.Dto;
 using ZhonTai.Plate.Admin.Domain.Tenant.Dto;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.Tenant
 {
-    public class TenantService : BaseService, ITenantService
+    /// <summary>
+    /// 租户服务
+    /// </summary>
+    [DynamicApi(Area = "admin")]
+    public class TenantService : BaseService, ITenantService, IDynamicApi
     {
         private readonly ITenantRepository _tenantRepository;
         private readonly IRoleRepository _roleRepository;
@@ -37,12 +43,22 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
             _rolePermissionRepository = rolePermissionRepository;
         }
 
+        /// <summary>
+        /// 查询租户
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _tenantRepository.GetAsync<TenantGetOutput>(id);
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 查询分页
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetPageAsync(PageInput<TenantGetPageDto> input)
         {
             var key = input.Filter?.Name;
@@ -64,6 +80,11 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> AddAsync(TenantAddInput input)
         {
@@ -93,6 +114,11 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateAsync(TenantUpdateInput input)
         {
             if (!(input?.Id > 0))
@@ -111,6 +137,11 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> DeleteAsync(long id)
         {
@@ -132,6 +163,11 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 软删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
@@ -147,6 +183,11 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 批量软删除
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {

+ 98 - 33
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/User/UserService.cs

@@ -16,13 +16,16 @@ using ZhonTai.Plate.Admin.Domain.UserRole;
 using ZhonTai.Plate.Admin.Service.Contracts;
 using ZhonTai.Plate.Admin.Service.Auth.Dto;
 using ZhonTai.Plate.Admin.Service.User.Dto;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.User
 {
     /// <summary>
     /// 用户服务
     /// </summary>
-    public class UserService : BaseService, IUserService
+    [DynamicApi(Area = "admin")]
+    public class UserService : BaseService, IUserService, IDynamicApi
     {
         private readonly AppConfig _appConfig;
         private readonly IUserRepository _userRepository;
@@ -47,6 +50,52 @@ namespace ZhonTai.Plate.Admin.Service.User
             _apiRepository = apiRepository;
         }
 
+        /// <summary>
+        /// 查询用户
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public async Task<IResultOutput> GetAsync(long id)
+        {
+            var entity = await _userRepository.Select
+            .WhereDynamic(id)
+            .IncludeMany(a => a.Roles.Select(b => new RoleEntity { Id = b.Id }))
+            .ToOneAsync();
+
+            var roles = await _roleRepository.Select.ToListAsync(a => new { a.Id, a.Name });
+
+            return ResultOutput.Ok(new { Form = Mapper.Map<UserGetOutput>(entity), Select = new { roles } });
+        }
+
+        /// <summary>
+        /// 查询分页
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task<IResultOutput> GetPageAsync(PageInput input)
+        {
+            var list = await _userRepository.Select
+            .WhereDynamicFilter(input.DynamicFilter)
+            .Count(out var total)
+            .OrderByDescending(true, a => a.Id)
+            .IncludeMany(a => a.Roles.Select(b => new RoleEntity { Name = b.Name }))
+            .Page(input.CurrentPage, input.PageSize)
+            .ToListAsync();
+
+            var data = new PageOutput<UserListOutput>()
+            {
+                List = Mapper.Map<List<UserListOutput>>(list),
+                Total = total
+            };
+
+            return ResultOutput.Ok(data);
+        }
+
+        /// <summary>
+        /// 查询登录用户信息
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<ResultOutput<AuthLoginOutput>> GetLoginUserAsync(long id)
         {
             var output = new ResultOutput<AuthLoginOutput>();
@@ -54,7 +103,7 @@ namespace ZhonTai.Plate.Admin.Service.User
             if (_appConfig.Tenant && entityDto?.TenantId.Value > 0)
             {
                 var tenant = await _tenantRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(entityDto.TenantId).ToOneAsync(a => new { a.TenantType, a.DataIsolationType });
-                if(null != tenant)
+                if (null != tenant)
                 {
                     entityDto.TenantType = tenant.TenantType;
                     entityDto.DataIsolationType = tenant.DataIsolationType;
@@ -63,18 +112,10 @@ namespace ZhonTai.Plate.Admin.Service.User
             return output.Ok(entityDto);
         }
 
-        public async Task<IResultOutput> GetAsync(long id)
-        {
-            var entity = await _userRepository.Select
-            .WhereDynamic(id)
-            .IncludeMany(a => a.Roles.Select(b => new RoleEntity { Id = b.Id }))
-            .ToOneAsync();
-
-            var roles = await _roleRepository.Select.ToListAsync(a => new { a.Id, a.Name });
-
-            return ResultOutput.Ok(new { Form = Mapper.Map<UserGetOutput>(entity), Select = new { roles } });
-        }
-
+        /// <summary>
+        /// 查询表单下拉数据
+        /// </summary>
+        /// <returns></returns>
         public async Task<IResultOutput> GetSelectAsync()
         {
             var roles = await _roleRepository.Select.ToListAsync(a => new { a.Id, a.Name });
@@ -82,6 +123,10 @@ namespace ZhonTai.Plate.Admin.Service.User
             return ResultOutput.Ok(new { Select = new { roles } });
         }
 
+        /// <summary>
+        /// 查询用户基本信息
+        /// </summary>
+        /// <returns></returns>
         public async Task<IResultOutput> GetBasicAsync()
         {
             if (!(User?.Id > 0))
@@ -93,6 +138,10 @@ namespace ZhonTai.Plate.Admin.Service.User
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 查询用户权限信息
+        /// </summary>
+        /// <returns></returns>
         public async Task<IList<UserPermissionsOutput>> GetPermissionsAsync()
         {
             var key = string.Format(CacheKey.UserPermissions, User.Id);
@@ -108,25 +157,11 @@ namespace ZhonTai.Plate.Admin.Service.User
             return result;
         }
 
-        public async Task<IResultOutput> GetPageAsync(PageInput input)
-        {
-            var list = await _userRepository.Select
-            .WhereDynamicFilter(input.DynamicFilter)
-            .Count(out var total)
-            .OrderByDescending(true, a => a.Id)
-            .IncludeMany(a => a.Roles.Select(b => new RoleEntity { Name = b.Name }))
-            .Page(input.CurrentPage, input.PageSize)
-            .ToListAsync();
-
-            var data = new PageOutput<UserListOutput>()
-            {
-                List = Mapper.Map<List<UserListOutput>>(list),
-                Total = total
-            };
-
-            return ResultOutput.Ok(data);
-        }
-
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> AddAsync(UserAddInput input)
         {
@@ -154,6 +189,11 @@ namespace ZhonTai.Plate.Admin.Service.User
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> UpdateAsync(UserUpdateInput input)
         {
@@ -182,6 +222,11 @@ namespace ZhonTai.Plate.Admin.Service.User
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 更新基本信息
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateBasicAsync(UserUpdateBasicInput input)
         {
             var entity = await _userRepository.GetAsync(input.Id);
@@ -194,6 +239,11 @@ namespace ZhonTai.Plate.Admin.Service.User
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 修改密码
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> ChangePasswordAsync(UserChangePasswordInput input)
         {
             if (input.ConfirmPassword != input.NewPassword)
@@ -216,6 +266,11 @@ namespace ZhonTai.Plate.Admin.Service.User
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
@@ -227,6 +282,11 @@ namespace ZhonTai.Plate.Admin.Service.User
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 软删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
@@ -236,6 +296,11 @@ namespace ZhonTai.Plate.Admin.Service.User
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 批量软删除
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {

+ 53 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/View/ViewService.cs

@@ -6,10 +6,16 @@ using ZhonTai.Common.Domain.Dto;
 using ZhonTai.Plate.Admin.Domain.View;
 using ZhonTai.Plate.Admin.Domain.View.Dto;
 using ZhonTai.Plate.Admin.Service.View.Dto;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Admin.Service.View
 {
-    public class ViewService : BaseService, IViewService
+    /// <summary>
+    /// 视图服务
+    /// </summary>
+    [DynamicApi(Area = "admin")]
+    public class ViewService : BaseService, IViewService, IDynamicApi
     {
         private readonly IViewRepository _viewRepository;
 
@@ -18,12 +24,22 @@ namespace ZhonTai.Plate.Admin.Service.View
             _viewRepository = moduleRepository;
         }
 
+        /// <summary>
+        /// 查询视图
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _viewRepository.GetAsync<ViewGetOutput>(id);
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 查询列表
+        /// </summary>
+        /// <param name="key"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetListAsync(string key)
         {
             var data = await _viewRepository
@@ -35,6 +51,11 @@ namespace ZhonTai.Plate.Admin.Service.View
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 查询分页
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetPageAsync(PageInput<ViewGetPageDto> input)
         {
             var key = input.Filter?.Label;
@@ -57,6 +78,11 @@ namespace ZhonTai.Plate.Admin.Service.View
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> AddAsync(ViewAddInput input)
         {
             var entity = Mapper.Map<ViewEntity>(input);
@@ -65,6 +91,11 @@ namespace ZhonTai.Plate.Admin.Service.View
             return ResultOutput.Result(id > 0);
         }
 
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateAsync(ViewUpdateInput input)
         {
             if (!(input?.Id > 0))
@@ -83,6 +114,11 @@ namespace ZhonTai.Plate.Admin.Service.View
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
@@ -94,6 +130,11 @@ namespace ZhonTai.Plate.Admin.Service.View
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 软删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _viewRepository.SoftDeleteAsync(id);
@@ -101,6 +142,12 @@ namespace ZhonTai.Plate.Admin.Service.View
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 批量软删除
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+
         public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             var result = await _viewRepository.SoftDeleteAsync(ids);
@@ -108,6 +155,11 @@ namespace ZhonTai.Plate.Admin.Service.View
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 同步
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> SyncAsync(ViewSyncInput input)
         {

+ 39 - 1
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service/Employee/EmployeeService.cs

@@ -9,13 +9,16 @@ using ZhonTai.Plate.Admin.Service;
 using ZhonTai.Common.Domain.Repositories;
 using ZhonTai.Plate.Personnel.Domain.Employee;
 using ZhonTai.Plate.Personnel.Domain.Organization;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Personnel.Service.Employee
 {
     /// <summary>
     /// 员工服务
     /// </summary>
-    public class EmployeeService : BaseService, IEmployeeService
+    [DynamicApi(Area = "personnel")]
+    public class EmployeeService : BaseService, IEmployeeService, IDynamicApi
     {
         private readonly IEmployeeRepository _employeeRepository;
         private readonly IRepositoryBase<EmployeeOrganizationEntity> _employeeOrganizationRepository;
@@ -29,6 +32,11 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
             _employeeOrganizationRepository = employeeOrganizationRepository;
         }
 
+        /// <summary>
+        /// 查询员工
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<ResultOutput<EmployeeGetOutput>> GetAsync(long id)
         {
             var res = new ResultOutput<EmployeeGetOutput>();
@@ -45,6 +53,11 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
             return res.Ok(dto);
         }
 
+        /// <summary>
+        /// 查询分页
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetPageAsync(PageInput input)
         {
             var list = await _employeeRepository.Select
@@ -68,6 +81,11 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> AddAsync(EmployeeAddInput input)
         {
@@ -93,6 +111,11 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> UpdateAsync(EmployeeUpdateInput input)
         {
@@ -126,6 +149,11 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         [Transaction]
         public async Task<IResultOutput> DeleteAsync(long id)
         {
@@ -138,6 +166,11 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 软删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             await _employeeRepository.SoftDeleteAsync(id);
@@ -145,6 +178,11 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 批量软删除
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             await _employeeRepository.SoftDeleteAsync(ids);

+ 37 - 1
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service/Organization/OrganizationService.cs

@@ -4,10 +4,16 @@ using ZhonTai.Plate.Personnel.Service.Organization.Output;
 using System.Threading.Tasks;
 using ZhonTai.Plate.Admin.Service;
 using ZhonTai.Plate.Personnel.Domain.Organization;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Personnel.Service.Organization
 {
-    public class OrganizationService : BaseService, IOrganizationService
+    /// <summary>
+    /// 部门服务
+    /// </summary>
+    [DynamicApi(Area = "personnel")]
+    public class OrganizationService : BaseService, IOrganizationService, IDynamicApi
     {
         private readonly IOrganizationRepository _organizationRepository;
 
@@ -16,12 +22,22 @@ namespace ZhonTai.Plate.Personnel.Service.Organization
             _organizationRepository = organizationRepository;
         }
 
+        /// <summary>
+        /// 查询部门
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _organizationRepository.GetAsync<OrganizationGetOutput>(id);
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 查询列表
+        /// </summary>
+        /// <param name="key"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetListAsync(string key)
         {
             var data = await _organizationRepository
@@ -33,6 +49,11 @@ namespace ZhonTai.Plate.Personnel.Service.Organization
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> AddAsync(OrganizationAddInput input)
         {
             var dictionary = Mapper.Map<OrganizationEntity>(input);
@@ -40,6 +61,11 @@ namespace ZhonTai.Plate.Personnel.Service.Organization
             return ResultOutput.Result(id > 0);
         }
 
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateAsync(OrganizationUpdateInput input)
         {
             if (!(input?.Id > 0))
@@ -58,6 +84,11 @@ namespace ZhonTai.Plate.Personnel.Service.Organization
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = await _organizationRepository.DeleteRecursiveAsync(a => a.Id == id);
@@ -65,6 +96,11 @@ namespace ZhonTai.Plate.Personnel.Service.Organization
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 批量软删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _organizationRepository.SoftDeleteRecursiveAsync(a => a.Id == id);

+ 43 - 1
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service/Position/PositionService.cs

@@ -5,10 +5,16 @@ using System.Threading.Tasks;
 using ZhonTai.Plate.Admin.Service;
 using ZhonTai.Plate.Personnel.Domain.Position;
 using ZhonTai.Plate.Personnel.Domain.Position.Dto;
+using ZhonTai.Tools.DynamicApi;
+using ZhonTai.Tools.DynamicApi.Attributes;
 
 namespace ZhonTai.Plate.Personnel.Service.Position
 {
-    public class PositionService : BaseService, IPositionService
+    /// <summary>
+    /// 职位服务
+    /// </summary>
+    [DynamicApi(Area = "personnel")]
+    public class PositionService : BaseService, IPositionService, IDynamicApi
     {
         private readonly IPositionRepository _positionRepository;
 
@@ -19,12 +25,22 @@ namespace ZhonTai.Plate.Personnel.Service.Position
             _positionRepository = positionRepository;
         }
 
+        /// <summary>
+        /// 查询职位
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _positionRepository.GetAsync<PositionGetOutput>(id);
             return ResultOutput.Ok(result);
         }
 
+        /// <summary>
+        /// 查询分页
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> GetPageAsync(PageInput<PositionGetPageDto> input)
         {
             var key = input.Filter?.Name;
@@ -45,6 +61,11 @@ namespace ZhonTai.Plate.Personnel.Service.Position
             return ResultOutput.Ok(data);
         }
 
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> AddAsync(PositionAddInput input)
         {
             var entity = Mapper.Map<PositionEntity>(input);
@@ -53,6 +74,11 @@ namespace ZhonTai.Plate.Personnel.Service.Position
             return ResultOutput.Result(id > 0);
         }
 
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> UpdateAsync(PositionUpdateInput input)
         {
             if (!(input?.Id > 0))
@@ -71,6 +97,11 @@ namespace ZhonTai.Plate.Personnel.Service.Position
             return ResultOutput.Ok();
         }
 
+        /// <summary>
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
@@ -82,6 +113,12 @@ namespace ZhonTai.Plate.Personnel.Service.Position
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 软删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+
         public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _positionRepository.SoftDeleteAsync(id);
@@ -89,6 +126,11 @@ namespace ZhonTai.Plate.Personnel.Service.Position
             return ResultOutput.Result(result);
         }
 
+        /// <summary>
+        /// 批量软删除
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
         public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             var result = await _positionRepository.SoftDeleteAsync(ids);

+ 2 - 2
src/shared/ZhonTai.Tools/Captcha/Dto/PointDto.cs → src/shared/ZhonTai.Tools/Captcha/Dto/PointModel.cs

@@ -1,6 +1,6 @@
 namespace ZhonTai.Tools.Captcha
 {
-    public class PointDto
+    public class PointModel
     {
         /// <summary>
         /// x坐标
@@ -12,7 +12,7 @@
         /// </summary>
         public int Y { get; set; }
 
-        public PointDto(int x, int y)
+        public PointModel(int x, int y)
         {
             X = x;
             Y = y;

+ 7 - 7
src/shared/ZhonTai.Tools/Captcha/SlideJigsawCaptchaTool.cs

@@ -295,7 +295,7 @@ namespace ZhonTai.Tools.Captcha
         /// <param name="templateWidth"></param>
         /// <param name="templateHeight"></param>
         /// <returns></returns>
-        private PointDto GeneratePoint(int originalWidth, int originalHeight, int templateWidth, int templateHeight)
+        private PointModel GeneratePoint(int originalWidth, int originalHeight, int templateWidth, int templateHeight)
         {
             Random random = new Random();
             int widthDifference = originalWidth - templateWidth;
@@ -320,7 +320,7 @@ namespace ZhonTai.Tools.Captcha
                 y = random.Next(originalHeight - templateHeight - 5) + 5;
             }
 
-            return new PointDto(x, y);
+            return new PointModel(x, y);
         }
 
         /// <summary>
@@ -333,7 +333,7 @@ namespace ZhonTai.Tools.Captcha
         /// <param name="blockX"></param>
         /// <param name="blockY"></param>
         /// <returns></returns>
-        private PointDto GenerateInterferencePoint(int originalWidth, int originalHeight, int templateWidth, int templateHeight, int blockX, int blockY)
+        private PointModel GenerateInterferencePoint(int originalWidth, int originalHeight, int templateWidth, int templateHeight, int blockX, int blockY)
         {
             int x;
             if (originalWidth - blockX - 5 > templateWidth * 2)
@@ -359,7 +359,7 @@ namespace ZhonTai.Tools.Captcha
                 y = GetRandomInt(5, blockY - templateHeight - 5);
             }
 
-            return new PointDto(x, y);
+            return new PointModel(x, y);
         }
 
         /// <summary>
@@ -391,7 +391,7 @@ namespace ZhonTai.Tools.Captcha
             int templateHeight = templateImage.Height;
 
             //随机生成拼图坐标
-            PointDto point = GeneratePoint(baseWidth, baseHeight, templateWidth, templateHeight);
+            PointModel point = GeneratePoint(baseWidth, baseHeight, templateWidth, templateHeight);
             int x = point.X;
             int y = point.Y;
 
@@ -399,7 +399,7 @@ namespace ZhonTai.Tools.Captcha
             string blockImageBase64 = "data:image/png;base64," + ImgToBase64String(CutByTemplate(baseImage, templateImage, x, y));
 
             //生成干扰图
-            PointDto interferencePoint = GenerateInterferencePoint(baseWidth, baseHeight, templateWidth, templateHeight, x, y);
+            PointModel interferencePoint = GenerateInterferencePoint(baseWidth, baseHeight, templateWidth, templateHeight, x, y);
             InterferenceByTemplate(baseImage, templateImage, interferencePoint.X, interferencePoint.Y);
 
             string baseImageBase64 = "data:image/png;base64," + ImgToBase64String(baseImage);
@@ -439,7 +439,7 @@ namespace ZhonTai.Tools.Captcha
             {
                 try
                 {
-                    var point = JsonConvert.DeserializeObject<PointDto>(input.Data);
+                    var point = JsonConvert.DeserializeObject<PointModel>(input.Data);
                     var x = await _cache.GetAsync<int>(key);
                     if (Math.Abs(x - point.X) < 5)
                     {