0
0
Преглед на файлове

新增swagger api性能分析器MiniProfiler
ZhonTai.Tools工具库增加缓存功能
更新和调整项目

zhontai преди 3 години
родител
ревизия
b6f3177a8b
променени са 89 файла, в които са добавени 6830 реда и са изтрити 708 реда
  1. 2 0
      src/hosts/ZhonTai.Plate.Admin.Host/Configs/appconfig.json
  2. 1 1
      src/hosts/ZhonTai.Plate.Admin.Host/Configs/dbconfig.json
  3. 3 0
      src/hosts/ZhonTai.Plate.Admin.Host/ZhonTai.Plate.Admin.Host.csproj
  4. 2 0
      src/hosts/ZhonTai.Plate.Admin.Host/wwwroot/swagger/mini-profiler.js
  5. 13 0
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Domain/Base/IdleBusExtesions.cs
  6. 2 2
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Domain/Base/TransactionAsyncInterceptor.cs
  7. 2 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Domain/ZhonTai.Plate.Admin.Domain.csproj
  8. 1209 0
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Domain/ZhonTai.Plate.Admin.Domain.xml
  9. 1 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi.Shared/Attributes/ValidateInputAttribute.cs
  10. 30 14
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi.Shared/BaseStartup.cs
  11. 13 0
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi.Shared/Db/DBServiceCollectionExtensions.cs
  12. 1 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi.Shared/Filters/ControllerExceptionFilter.cs
  13. 1 1
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi.Shared/Logs/LogHandler.cs
  14. 10 10
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/ApiController.cs
  15. 27 34
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/AuthController.cs
  16. 3 3
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/CacheController.cs
  17. 7 7
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/DictionaryController.cs
  18. 7 7
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/DictionaryTypeController.cs
  19. 16 16
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/DocumentController.cs
  20. 2 2
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/LoginLogController.cs
  21. 2 2
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/OprationLogController.cs
  22. 20 20
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/PermissionController.cs
  23. 7 7
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/RoleController.cs
  24. 8 8
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/TenantController.cs
  25. 14 14
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/UserController.cs
  26. 10 10
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/ViewController.cs
  27. 4 0
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/ZhonTai.Plate.Admin.HttpApi.csproj
  28. 760 0
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/ZhonTai.Plate.Admin.HttpApi.xml
  29. 9 9
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Api/IApiService.cs
  30. 3 5
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Auth/IAuthService.cs
  31. 0 11
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Auth/Input/AuthLoginInput.cs
  32. 2 2
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Base/BaseService.cs
  33. 3 3
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Base/CacheKey.cs
  34. 2 2
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Cache/ICacheService.cs
  35. 7 7
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Dictionary/IDictionaryService.cs
  36. 7 7
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/DictionaryType/IDictionaryTypeService.cs
  37. 16 16
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Document/IDocumentService.cs
  38. 2 2
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/LoginLog/ILoginLogService.cs
  39. 2 2
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/OprationLog/IOprationLogService.cs
  40. 21 21
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Permission/IPermissionService.cs
  41. 7 7
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Role/IRoleService.cs
  42. 7 7
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Tenant/ITenantService.cs
  43. 12 12
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/User/IUserService.cs
  44. 9 9
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/View/IViewService.cs
  45. 4 0
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/ZhonTai.Plate.Admin.Service.Contracts.csproj
  46. 1805 0
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/ZhonTai.Plate.Admin.Service.Contracts.xml
  47. 20 20
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Api/ApiService.cs
  48. 17 61
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Auth/AuthService.cs
  49. 5 5
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Cache/CacheService.cs
  50. 16 16
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Dictionary/DictionaryService.cs
  51. 16 16
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/DictionaryType/DictionaryTypeService.cs
  52. 32 32
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Document/DocumentService.cs
  53. 4 4
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/LoginLog/LoginLogService.cs
  54. 4 4
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/OprationLog/OprationLogService.cs
  55. 47 47
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Permission/PermissionService.cs
  56. 16 16
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Role/RoleService.cs
  57. 16 16
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Tenant/TenantService.cs
  58. 31 31
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/User/UserService.cs
  59. 20 20
      src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/View/ViewService.cs
  60. 1 1
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Domain/ZhonTai.Plate.Personnel.Domain.csproj
  61. 378 0
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Domain/ZhonTai.Plate.Personnel.Domain.xml
  62. 7 7
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.HttpApi/Controllers/EmployeeController.cs
  63. 5 5
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.HttpApi/Controllers/OrganizationController.cs
  64. 7 7
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.HttpApi/Controllers/PositionController.cs
  65. 4 0
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.HttpApi/ZhonTai.Plate.Personnel.HttpApi.csproj
  66. 147 0
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.HttpApi/ZhonTai.Plate.Personnel.HttpApi.xml
  67. 8 8
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service.Contracts/Employee/IEmployeeService.cs
  68. 6 6
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service.Contracts/Organization/IOrganizationService.cs
  69. 7 7
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service.Contracts/Position/IPositionService.cs
  70. 4 0
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service.Contracts/ZhonTai.Plate.Personnel.Service.Contracts.csproj
  71. 318 0
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service.Contracts/ZhonTai.Plate.Personnel.Service.Contracts.xml
  72. 17 17
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service/Employee/EmployeeService.cs
  73. 14 14
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service/Organization/OrganizationService.cs
  74. 16 16
      src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service/Position/PositionService.cs
  75. 5 0
      src/shared/ZhonTai.Common/Configs/AppConfig.cs
  76. 4 4
      src/shared/ZhonTai.Common/Domain/Dto/IResultOutput.cs
  77. 2 2
      src/shared/ZhonTai.Common/Domain/Dto/OptionDto.cs
  78. 15 15
      src/shared/ZhonTai.Common/Domain/Dto/ResultOutput.cs
  79. 4 4
      src/shared/ZhonTai.Common/Extensions/EnumExtension.cs
  80. 2 2
      src/shared/ZhonTai.Common/Helpers/UploadHelper.cs
  81. 1 1
      src/shared/ZhonTai.Common/ZhonTai.Common.csproj
  82. 1492 0
      src/shared/ZhonTai.Common/ZhonTai.Common.xml
  83. 1 1
      src/shared/ZhonTai.Tools/Cache/ICacheTool.cs
  84. 2 2
      src/shared/ZhonTai.Tools/Cache/MemoryCacheTool.cs
  85. 1 1
      src/shared/ZhonTai.Tools/Cache/RedisCacheTool.cs
  86. 5 0
      src/shared/ZhonTai.Tools/Captcha/Dto/CaptchaInput.cs
  87. 2 2
      src/shared/ZhonTai.Tools/Captcha/ICaptchaTool.cs
  88. 6 6
      src/shared/ZhonTai.Tools/Captcha/SlideJigsawCaptchaTool.cs
  89. 10 9
      src/tests/ZhonTai.Plate.Admin.Tests/BaseControllerTest.cs

+ 2 - 0
src/hosts/ZhonTai.Plate.Admin.Host/Configs/appconfig.json

@@ -7,6 +7,8 @@
   "Tenant": true,
   //Swagger文档
   "swagger": false,
+  //MiniProfiler性能分析器
+  "MiniProfiler": true,
   //统一认证授权服务器
   "IdentityServer": {
     //启用

+ 1 - 1
src/hosts/ZhonTai.Plate.Admin.Host/Configs/dbconfig.json

@@ -2,7 +2,7 @@
   //监听所有操作
   "monitorCommand": false,
   //监听Curd操作
-  "curd": false,
+  "curd": true,
 
   //建库
   "createDb": false,

+ 3 - 0
src/hosts/ZhonTai.Plate.Admin.Host/ZhonTai.Plate.Admin.Host.csproj

@@ -114,6 +114,9 @@
     <Content Update="wwwroot\captcha\jigsaw\templates\6.png">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
+    <Content Update="wwwroot\swagger\mini-profiler.js">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
   </ItemGroup>
 
   <ProjectExtensions><VisualStudio><UserProperties properties_4launchsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>

+ 2 - 0
src/hosts/ZhonTai.Plate.Admin.Host/wwwroot/swagger/mini-profiler.js

@@ -0,0 +1,2 @@
+//在路由中调试获取新版脚本 var script = MiniProfiler.Current.RenderIncludes(Request.HttpContext);
+document.write('<script async="async" id="mini-profiler" src="/mini-profiler-resources/includes.min.js?v=4.2.22+4563a9e1ab" data-version="4.2.22+4563a9e1ab" data-path="/mini-profiler-resources/" data-current-id="b52d5815-fc78-41c6-8f38-a33e90ac4953" data-ids="51c1c869-985e-4ea1-ab29-7750aac03794,6f413e79-82cb-45cf-8b65-e69af5941bf5,da78c978-de69-437c-a68a-2a60295226f2,480eb18f-13bb-4282-bc64-5b4acc6462c5,b0cc70a4-14db-4124-8871-f24244c6c426,f48b4686-e988-4344-b837-9213ac7fbd9d,b52d5815-fc78-41c6-8f38-a33e90ac4953" data-position="Left" data-scheme="Light" data-authorized="true" data-max-traces="15" data-toggle-shortcut="Alt + P" data-trivial-milliseconds="2.0" data-ignored-duplicate-execute-types="Open, OpenAsync, Close, CloseAsync"></script>');

+ 13 - 0
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Domain/Base/IdleBusExtesions.cs

@@ -7,6 +7,7 @@ using System;
 using ZhonTai.Plate.Admin.Domain.Tenant.Dtos;
 using ZhonTai.Plate.Admin.Domain.Tenant;
 using ZhonTai.Plate.Admin.Domain.Dual;
+using StackExchange.Profiling;
 
 namespace ZhonTai.Plate.Admin.Domain
 {
@@ -52,6 +53,18 @@ namespace ZhonTai.Plate.Admin.Domain
             {
                 fsql.Aop.CurdBefore += (s, e) =>
                 {
+                    if (appConfig.MiniProfiler)
+                    {
+                        MiniProfiler.Current.CustomTiming("CurdBefore", e.Sql);
+                    }
+                    Console.WriteLine($"{e.Sql}\r\n");
+                };
+                fsql.Aop.CurdAfter += (s, e) =>
+                {
+                    if (appConfig.MiniProfiler)
+                    {
+                        MiniProfiler.Current.CustomTiming("CurdAfter", $"{e.ElapsedMilliseconds}");
+                    }
                     Console.WriteLine($"{e.Sql}\r\n");
                 };
             }

+ 2 - 2
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Domain/Base/TransactionAsyncInterceptor.cs

@@ -67,7 +67,7 @@ namespace ZhonTai.Plate.Admin.Domain
                 {
                     invocation.Proceed();
                     result = await (Task<TResult>)invocation.ReturnValue;
-                    if (result is IResponseOutput res && !res.Success)
+                    if (result is IResultOutput res && !res.Success)
                     {
                         _unitOfWork.Rollback();
                     }
@@ -106,7 +106,7 @@ namespace ZhonTai.Plate.Admin.Domain
                 {
                     invocation.Proceed();
                     var result = invocation.ReturnValue;
-                    if (result is IResponseOutput res && !res.Success)
+                    if (result is IResultOutput res && !res.Success)
                     {
                         _unitOfWork.Rollback();
                     }

+ 2 - 1
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Domain/ZhonTai.Plate.Admin.Domain.csproj

@@ -15,13 +15,14 @@
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <DocumentationFile></DocumentationFile>
+    <DocumentationFile>F:\zhontai\Admin\src\plates\ZhonTai.Plate.Admin\ZhonTai.Plate.Admin.Domain\ZhonTai.Plate.Admin.Domain.xml</DocumentationFile>
     <NoWarn>1701;1702;1591</NoWarn>
   </PropertyGroup>
 	
     <ItemGroup>
 	    <PackageReference Include="Castle.Core.AsyncInterceptor" Version="2.0.0" />
 	    <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="5.0.0" />
+		<PackageReference Include="MiniProfiler.AspNetCore.Mvc" Version="4.2.22" />
     </ItemGroup>
 	
   <ItemGroup>

+ 1209 - 0
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Domain/ZhonTai.Plate.Admin.Domain.xml

@@ -0,0 +1,1209 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ZhonTai.Plate.Admin.Domain</name>
+    </assembly>
+    <members>
+        <member name="T:ZhonTai.Plate.Admin.Domain.LogAbstract">
+            <summary>
+            日志
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.LogAbstract.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.LogAbstract.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.LogAbstract.IP">
+            <summary>
+            IP
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.LogAbstract.Browser">
+            <summary>
+            浏览器
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.LogAbstract.Os">
+            <summary>
+            操作系统
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.LogAbstract.Device">
+            <summary>
+            设备
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.LogAbstract.BrowserInfo">
+            <summary>
+            浏览器信息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.LogAbstract.ElapsedMilliseconds">
+            <summary>
+            耗时(毫秒)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.LogAbstract.Status">
+            <summary>
+            操作状态
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.LogAbstract.Msg">
+            <summary>
+            操作消息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.LogAbstract.Result">
+            <summary>
+            操作结果
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.Api.ApiEntity">
+            <summary>
+            接口管理
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.ApiEntity.ParentId">
+            <summary>
+            所属模块
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.ApiEntity.Name">
+            <summary>
+            接口命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.ApiEntity.Label">
+            <summary>
+            接口名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.ApiEntity.Path">
+            <summary>
+            接口地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.ApiEntity.HttpMethods">
+            <summary>
+            接口提交方法
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.ApiEntity.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.ApiEntity.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.ApiEntity.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.Dtos.ApiDataOutput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.Dtos.ApiDataOutput.Id">
+            <summary>
+            接口Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.Dtos.ApiDataOutput.ParentId">
+            <summary>
+            父级Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.Dtos.ApiDataOutput.Name">
+            <summary>
+            接口命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.Dtos.ApiDataOutput.Label">
+            <summary>
+            接口名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.Dtos.ApiDataOutput.Path">
+            <summary>
+            接口地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.Dtos.ApiDataOutput.HttpMethods">
+            <summary>
+            接口提交方法
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.Dtos.ApiDataOutput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.Dtos.ApiDataOutput.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Api.Dtos.ApiDataOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.AppLog.AppLogEntity">
+            <summary>
+            应用程序日志
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.AppLog.AppLogEntity.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Admin.Domain.DbHelper.TimeOffset">
+            <summary>
+            偏移时间
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.DbHelper.CreateDatabaseAsync(ZhonTai.Common.Configs.DbConfig)">
+            <summary>
+            创建数据库
+            </summary>
+            <param name="dbConfig"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.DbHelper.GetEntityTypes">
+            <summary>
+            获得指定程序集表实体
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.DbHelper.ConfigEntity(IFreeSql,ZhonTai.Common.Configs.AppConfig)">
+            <summary>
+            配置实体
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.DbHelper.AuditValue(FreeSql.Aop.AuditValueEventArgs,System.TimeSpan,ZhonTai.Common.Auth.IUser)">
+            <summary>
+            审计数据
+            </summary>
+            <param name="e"></param>
+            <param name="timeOffset"></param>
+            <param name="user"></param>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.DbHelper.SyncStructure(IFreeSql,System.String,ZhonTai.Common.Configs.DbConfig,ZhonTai.Common.Configs.AppConfig)">
+            <summary>
+            同步结构
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.DbHelper.SyncDataAuditValue(System.Object,FreeSql.Aop.AuditValueEventArgs)">
+            <summary>
+            同步数据审计方法
+            </summary>
+            <param name="s"></param>
+            <param name="e"></param>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.DbHelper.SyncDataAsync(IFreeSql,ZhonTai.Common.Configs.DbConfig,ZhonTai.Common.Configs.AppConfig)">
+            <summary>
+            同步数据
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.DbHelper.GenerateDataAsync(IFreeSql,ZhonTai.Common.Configs.AppConfig)">
+            <summary>
+            生成数据
+            </summary>
+            <param name="db"></param>
+            <param name="appConfig"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.IdleBusExtesions.CreateFreeSql(ZhonTai.Common.Auth.IUser,ZhonTai.Common.Configs.AppConfig,ZhonTai.Common.Configs.DbConfig,ZhonTai.Plate.Admin.Domain.Tenant.Dtos.CreateFreeSqlTenantDto)">
+            <summary>
+            创建FreeSql实例
+            </summary>
+            <param name="user"></param>
+            <param name="appConfig"></param>
+            <param name="dbConfig"></param>
+            <param name="tenant"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.IdleBusExtesions.GetFreeSql(IdleBus{IFreeSql},System.IServiceProvider)">
+            <summary>
+            获得FreeSql实例
+            </summary>
+            <param name="ib"></param>
+            <param name="serviceProvider"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.IdleBusExtesions.GetTenantFreeSql(IdleBus{IFreeSql},System.IServiceProvider,System.Nullable{System.Int64})">
+            <summary>
+            获得租户FreeSql实例
+            </summary>
+            <param name="ib"></param>
+            <param name="serviceProvider"></param>
+            <param name="tenantId"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.TransactionAsyncInterceptor.InterceptSynchronous(Castle.DynamicProxy.IInvocation)">
+            <summary>
+            拦截同步执行的方法
+            </summary>
+            <param name="invocation"></param>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Domain.TransactionAsyncInterceptor.InterceptAsynchronous(Castle.DynamicProxy.IInvocation)">
+            <summary>
+            拦截返回结果为Task的方法
+            </summary>
+            <param name="invocation"></param>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ZhonTai.Plate.Admin.Domain.TransactionAsyncInterceptor.InterceptAsynchronous``1(Castle.DynamicProxy.IInvocation)" -->
+        <member name="T:ZhonTai.Plate.Admin.Domain.DictionaryType.DictionaryTypeEntity">
+            <summary>
+            数据字典类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.DictionaryTypeEntity.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.DictionaryTypeEntity.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.DictionaryTypeEntity.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.DictionaryTypeEntity.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.DictionaryTypeEntity.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.DictionaryTypeEntity.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.DictionaryType.Dtos.DictionaryTypeDataOutput">
+            <summary>
+            数据字典类型导出
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.Dtos.DictionaryTypeDataOutput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.Dtos.DictionaryTypeDataOutput.Id">
+            <summary>
+            字典类型Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.Dtos.DictionaryTypeDataOutput.Name">
+            <summary>
+            字典名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.Dtos.DictionaryTypeDataOutput.Code">
+            <summary>
+            字典编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.Dtos.DictionaryTypeDataOutput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.Dtos.DictionaryTypeDataOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DictionaryType.Dtos.DictionaryTypeDataOutput.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.Dictionary.DictionaryEntity">
+            <summary>
+            数据字典
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.DictionaryEntity.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.DictionaryEntity.DictionaryTypeId">
+            <summary>
+            字典类型Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.DictionaryEntity.DictionaryType">
+            <summary>
+            字典类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.DictionaryEntity.Name">
+            <summary>
+            字典名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.DictionaryEntity.Code">
+            <summary>
+            字典编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.DictionaryEntity.Value">
+            <summary>
+            字典值
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.DictionaryEntity.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.DictionaryEntity.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.DictionaryEntity.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.Dictionary.Dtos.DictionaryDataOutput">
+            <summary>
+            数据字典导出
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.Dtos.DictionaryDataOutput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.Dtos.DictionaryDataOutput.Id">
+            <summary>
+            字典Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.Dtos.DictionaryDataOutput.DictionaryTypeId">
+            <summary>
+            字典类型Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.Dtos.DictionaryDataOutput.Name">
+            <summary>
+            字典名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.Dtos.DictionaryDataOutput.Code">
+            <summary>
+            字典编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.Dtos.DictionaryDataOutput.Value">
+            <summary>
+            字典值
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.Dtos.DictionaryDataOutput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.Dtos.DictionaryDataOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dictionary.Dtos.DictionaryDataOutput.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.DocumentImage.DocumentImageEntity">
+            <summary>
+            文档图片
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DocumentImage.DocumentImageEntity.DocumentId">
+            <summary>
+            文档Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.DocumentImage.DocumentImageEntity.Url">
+            <summary>
+            请求路径
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity">
+            <summary>
+            文档
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity.Label">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity.Type">
+            <summary>
+            类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity.Name">
+            <summary>
+            命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity.Content">
+            <summary>
+            内容
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity.Html">
+            <summary>
+            Html
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity.Opened">
+            <summary>
+            打开组
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Document.DocumentEntity.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.Document.DocumentTypeEnum">
+            <summary>
+            文档类型
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Admin.Domain.Document.DocumentTypeEnum.Group">
+            <summary>
+            分组
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Admin.Domain.Document.DocumentTypeEnum.Markdown">
+            <summary>
+            Markdown文档
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.Dual.DualEntity">
+            <summary>
+            系统表,用于查询系统函数
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Dual.DualEntity.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.LoginLog.LoginLogEntity">
+            <summary>
+            操作日志
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.OprationLog.OprationLogEntity">
+            <summary>
+            操作日志
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.OprationLog.OprationLogEntity.ApiLabel">
+            <summary>
+            接口名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.OprationLog.OprationLogEntity.ApiPath">
+            <summary>
+            接口地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.OprationLog.OprationLogEntity.ApiMethod">
+            <summary>
+            接口提交方法
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.OprationLog.OprationLogEntity.Params">
+            <summary>
+            操作参数
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.PermissionApi.PermissionApiEntity">
+            <summary>
+            权限接口
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.PermissionApi.PermissionApiEntity.PermissionId">
+            <summary>
+            权限Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.PermissionApi.PermissionApiEntity.Permission">
+            <summary>
+            权限
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.PermissionApi.PermissionApiEntity.ApiId">
+            <summary>
+            接口Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.PermissionApi.PermissionApiEntity.Api">
+            <summary>
+            接口
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Id">
+            <summary>
+            权限Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Label">
+            <summary>
+            权限名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Code">
+            <summary>
+            权限编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Type">
+            <summary>
+            权限类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.ViewId">
+            <summary>
+            视图
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Path">
+            <summary>
+            访问地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Icon">
+            <summary>
+            图标
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.ApiPath">
+            <summary>
+            接口路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Closable">
+            <summary>
+            可关闭
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Opened">
+            <summary>
+            组打开
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.NewWindow">
+            <summary>
+            打开新窗口
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.External">
+            <summary>
+            链接外显
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Hidden">
+            <summary>
+            隐藏
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.Dtos.PermissionDataOutput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity">
+            <summary>
+            权限
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.Label">
+            <summary>
+            权限名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.Code">
+            <summary>
+            权限编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.Type">
+            <summary>
+            权限类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.ViewId">
+            <summary>
+            视图
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.Path">
+            <summary>
+            菜单访问地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.Icon">
+            <summary>
+            图标
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.Hidden">
+            <summary>
+            隐藏
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.Closable">
+            <summary>
+            可关闭
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.Opened">
+            <summary>
+            打开组
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.NewWindow">
+            <summary>
+            打开新窗口
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.External">
+            <summary>
+            链接外显
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Permission.PermissionEntity.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.Permission.PermissionTypeEnum">
+            <summary>
+            权限类型
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Admin.Domain.Permission.PermissionTypeEnum.Group">
+            <summary>
+            分组
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Admin.Domain.Permission.PermissionTypeEnum.Menu">
+            <summary>
+            菜单
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Admin.Domain.Permission.PermissionTypeEnum.Dot">
+            <summary>
+            权限点
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.RolePermission.RolePermissionEntity">
+            <summary>
+            角色权限
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.RolePermission.RolePermissionEntity.RoleId">
+            <summary>
+            角色Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.RolePermission.RolePermissionEntity.PermissionId">
+            <summary>
+            权限Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.RolePermission.RolePermissionEntity.Role">
+            <summary>
+            角色
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.RolePermission.RolePermissionEntity.Permission">
+            <summary>
+            权限
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.Role.Dtos.RoleDataOutput">
+            <summary>
+            角色导出
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.Dtos.RoleDataOutput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.Dtos.RoleDataOutput.Id">
+            <summary>
+            用户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.Dtos.RoleDataOutput.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.Dtos.RoleDataOutput.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.Dtos.RoleDataOutput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.Dtos.RoleDataOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.Dtos.RoleDataOutput.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.Role.RoleEntity">
+            <summary>
+            角色
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.RoleEntity.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.RoleEntity.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.RoleEntity.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.RoleEntity.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.RoleEntity.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Role.RoleEntity.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.TenantPermission.TenantPermissionEntity">
+            <summary>
+            租户权限
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.TenantPermission.TenantPermissionEntity.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.TenantPermission.TenantPermissionEntity.PermissionId">
+            <summary>
+            权限Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.TenantPermission.TenantPermissionEntity.Tenant">
+            <summary>
+            租户
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.TenantPermission.TenantPermissionEntity.Permission">
+            <summary>
+            权限
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.Dtos.CreateFreeSqlTenantDto.DbType">
+            <summary>
+            数据库
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.Dtos.CreateFreeSqlTenantDto.ConnectionString">
+            <summary>
+            连接字符串
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.Dtos.CreateFreeSqlTenantDto.IdleTime">
+            <summary>
+            空闲时间(分)
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity">
+            <summary>
+            租户
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.Name">
+            <summary>
+            企业名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.RealName">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.Phone">
+            <summary>
+            手机号码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.Email">
+            <summary>
+            邮箱地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.UserId">
+            <summary>
+            授权用户
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.RoleId">
+            <summary>
+            授权角色
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.TenantType">
+            <summary>
+            租户类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.DataIsolationType">
+            <summary>
+            数据隔离类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.DbType">
+            <summary>
+            数据库
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.ConnectionString">
+            <summary>
+            连接字符串
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.IdleTime">
+            <summary>
+            空闲时间(分)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.UserRole.UserRoleEntity">
+            <summary>
+            用户角色
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.UserRole.UserRoleEntity.UserId">
+            <summary>
+            用户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.UserRole.UserRoleEntity.RoleId">
+            <summary>
+            角色Id
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.User.Dtos.UserDataOutput">
+            <summary>
+            用户导出
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.Dtos.UserDataOutput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.Dtos.UserDataOutput.Id">
+            <summary>
+            用户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.Dtos.UserDataOutput.UserName">
+            <summary>
+            账号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.Dtos.UserDataOutput.Password">
+            <summary>
+            密码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.Dtos.UserDataOutput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.Dtos.UserDataOutput.Avatar">
+            <summary>
+            头像
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.Dtos.UserDataOutput.Status">
+            <summary>
+            状态
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.Dtos.UserDataOutput.Remark">
+            <summary>
+            备注
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.User.UserEntity">
+            <summary>
+            用户
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.UserEntity.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.UserEntity.UserName">
+            <summary>
+            账号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.UserEntity.Password">
+            <summary>
+            密码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.UserEntity.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.UserEntity.Avatar">
+            <summary>
+            头像
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.UserEntity.Status">
+            <summary>
+            状态
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.User.UserEntity.Remark">
+            <summary>
+            备注
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.Dtos.ViewDataOutput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.Dtos.ViewDataOutput.Id">
+            <summary>
+            视图Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.Dtos.ViewDataOutput.ParentId">
+            <summary>
+            视图父级
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.Dtos.ViewDataOutput.Name">
+            <summary>
+            视图命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.Dtos.ViewDataOutput.Label">
+            <summary>
+            视图名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.Dtos.ViewDataOutput.Path">
+            <summary>
+            视图路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.Dtos.ViewDataOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.Dtos.ViewDataOutput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Domain.View.ViewEntity">
+            <summary>
+            视图管理
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.ViewEntity.ParentId">
+            <summary>
+            所属节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.ViewEntity.Name">
+            <summary>
+            视图命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.ViewEntity.Label">
+            <summary>
+            视图名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.ViewEntity.Path">
+            <summary>
+            视图路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.ViewEntity.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.ViewEntity.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.ViewEntity.Cache">
+            <summary>
+            缓存
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Domain.View.ViewEntity.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="M:FreeSqlDbContextExtensions.GetRepositoryBase``2(IFreeSql,System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})">
+            <summary>
+            返回默认仓库类
+            </summary>
+            <typeparam name="TEntity"></typeparam>
+            <typeparam name="TKey"></typeparam>
+            <param name="that"></param>
+            <param name="filter">数据过滤 + 验证</param>
+            <returns></returns>
+        </member>
+        <member name="M:FreeSqlDbContextExtensions.GetRepositoryBase``1(IFreeSql,System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})">
+            <summary>
+            返回默认仓库类,适用联合主键的仓储类
+            </summary>
+            <typeparam name="TEntity"></typeparam>
+            <param name="that"></param>
+            <param name="filter">数据过滤 + 验证</param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>

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

@@ -34,7 +34,7 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared.Attributes
                    })
                    .Aggregate((x, y) => x + "|" + y);
                     logger.LogError(errors);
-                    context.Result = new JsonResult(ResponseOutput.NotOk(errors));
+                    context.Result = new JsonResult(ResultOutput.NotOk(errors));
                 }
                 catch
                 {

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

@@ -38,6 +38,8 @@ using ZhonTai.Plate.Admin.HttpApi.Shared.Filters;
 using ZhonTai.Plate.Admin.HttpApi.Shared.Logs;
 using ZhonTai.Plate.Admin.HttpApi.Shared.RegisterModules;
 using MapsterMapper;
+using StackExchange.Profiling;
+using System.IO;
 
 namespace ZhonTai.Plate.Admin.HttpApi.Shared
 {
@@ -227,17 +229,13 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared
                     options.ResolveConflictingActions(apiDescription => apiDescription.First());
                     options.CustomSchemaIds(x => x.FullName);
 
-                    //var xmlPath = Path.Combine(basePath, "ZhonTai.Plate.Admin.Host.xml");
-                    //options.IncludeXmlComments(xmlPath, true);
-
-                    //var xmlCommonPath = Path.Combine(basePath, "ZhonTai.Common.xml");
-                    //options.IncludeXmlComments(xmlCommonPath, true);
-
-                    //var xmlModelPath = Path.Combine(basePath, "ZhonTai.Plate.Admin.Domain.xml");
-                    //options.IncludeXmlComments(xmlModelPath);
-
-                    //var xmlServicesPath = Path.Combine(basePath, "ZhonTai.Plate.Admin.Service.xml");
-                    //options.IncludeXmlComments(xmlServicesPath);
+                    options.IncludeXmlComments(Path.Combine(basePath, "ZhonTai.Common.xml"));
+                    options.IncludeXmlComments(Path.Combine(basePath, "ZhonTai.Plate.Admin.Domain.xml"));
+                    options.IncludeXmlComments(Path.Combine(basePath, "ZhonTai.Plate.Admin.Service.Contracts.xml"));
+                    options.IncludeXmlComments(Path.Combine(basePath, "ZhonTai.Plate.Admin.HttpApi.xml"));
+                    options.IncludeXmlComments(Path.Combine(basePath, "ZhonTai.Plate.Personnel.Domain.xml"));
+                    options.IncludeXmlComments(Path.Combine(basePath, "ZhonTai.Plate.Personnel.Service.Contracts.xml"));
+                    options.IncludeXmlComments(Path.Combine(basePath, "ZhonTai.Plate.Personnel.HttpApi.xml"));
 
                     #region 添加设置Token的按钮
 
@@ -356,12 +354,12 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared
             {
                 var csredis = new CSRedis.CSRedisClient(cacheConfig.Redis.ConnectionString);
                 RedisHelper.Initialization(csredis);
-                services.AddSingleton<ICache, RedisCache>();
+                services.AddSingleton<ICacheTool, RedisCacheTool>();
             }
             else
             {
                 services.AddMemoryCache();
-                services.AddSingleton<ICache, MemoryCache>();
+                services.AddSingleton<ICacheTool, MemoryCacheTool>();
             }
 
             #endregion 缓存
@@ -377,6 +375,12 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared
 
             //阻止NLog接收状态消息
             services.Configure<ConsoleLifetimeOptions>(opts => opts.SuppressStatusMessages = true);
+
+            //性能分析
+            if (_appConfig.MiniProfiler)
+            {
+                services.AddMiniProfiler();
+            }
         }
 
         public virtual void ConfigureContainer(ContainerBuilder builder)
@@ -415,10 +419,18 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared
                 app.UseIpRateLimiting();
             }
 
+            //性能分析
+            if (_appConfig.MiniProfiler)
+            {
+                app.UseMiniProfiler();
+            }
+
             //异常
             app.UseExceptionHandler("/Error");
 
             //静态文件
+            app.UseDefaultFiles();
+            app.UseStaticFiles();
             app.UseUploadConfig();
 
             //路由
@@ -442,7 +454,6 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared
             #endregion app配置
 
             #region Swagger Api文档
-
             if (_env.IsDevelopment() || _appConfig.Swagger)
             {
                 app.UseSwagger();
@@ -455,6 +466,10 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared
                     c.RoutePrefix = "";//直接根目录访问,如果是IIS发布可以注释该语句,并打开launchSettings.launchUrl
                     c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.None);//折叠Api
                     //c.DefaultModelsExpandDepth(-1);//不显示Models
+                    if (_appConfig.MiniProfiler)
+                    {
+                        c.InjectJavascript("/swagger/mini-profiler.js?v=4.2.22");
+                    }
                 });
             }
 
@@ -465,6 +480,7 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared
             //var ei = new LogEventInfo(LogLevel.Error, "", "错误信息");
             //ei.Properties["id"] = YitIdHelper.NextId();
             //log.Log(ei);
+
         }
     }
 }

+ 13 - 0
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi.Shared/Db/DBServiceCollectionExtensions.cs

@@ -10,6 +10,7 @@ using ZhonTai.Common.Dbs;
 using ZhonTai.Common.Helpers;
 using ZhonTai.Plate.Admin.Domain;
 using ZhonTai.Plate.Admin.Domain.Dual;
+using StackExchange.Profiling;
 
 namespace ZhonTai.Plate.Admin.HttpApi.Shared.Db
 {
@@ -103,6 +104,18 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared.Db
             {
                 fsql.Aop.CurdBefore += (s, e) =>
                 {
+                    if (appConfig.MiniProfiler)
+                    {
+                        MiniProfiler.Current.CustomTiming("CurdBefore", e.Sql);
+                    }
+                    Console.WriteLine($"{e.Sql}\r\n");
+                };
+                fsql.Aop.CurdAfter += (s, e) =>
+                {
+                    if (appConfig.MiniProfiler)
+                    {
+                        MiniProfiler.Current.CustomTiming("CurdAfter", $"{e.ElapsedMilliseconds}");
+                    }
                     Console.WriteLine($"{e.Sql}\r\n");
                 };
             }

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

@@ -38,7 +38,7 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared.Filters
                 }
 
                 _logger.LogError(context.Exception, "");
-                var data = ResponseOutput.NotOk(message);
+                var data = ResultOutput.NotOk(message);
                 context.Result = new InternalServerErrorResult(data);
             }
 

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

@@ -54,7 +54,7 @@ namespace ZhonTai.Plate.Admin.HttpApi.Shared.Logs
                     ElapsedMilliseconds = sw.ElapsedMilliseconds
                 };
 
-                if (actionExecutedContext.Result is ObjectResult result && result.Value is IResponseOutput res)
+                if (actionExecutedContext.Result is ObjectResult result && result.Value is IResultOutput res)
                 {
                     input.Status = res.Success;
                     input.Msg = res.Msg;

+ 10 - 10
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/ApiController.cs

@@ -25,7 +25,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> Get(long id)
+        public async Task<IResultOutput> Get(long id)
         {
             return await _apiService.GetAsync(id);
         }
@@ -36,9 +36,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="key"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetList(string key)
+        public async Task<IResultOutput> GetList(string key)
         {
-            return await _apiService.ListAsync(key);
+            return await _apiService.GetListAsync(key);
         }
 
         /// <summary>
@@ -47,9 +47,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="model">分页模型</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> GetPage(PageInput<ApiEntity> model)
+        public async Task<IResultOutput> GetPage(PageInput<ApiEntity> model)
         {
-            return await _apiService.PageAsync(model);
+            return await _apiService.GetPageAsync(model);
         }
 
         /// <summary>
@@ -58,7 +58,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Add(ApiAddInput input)
+        public async Task<IResultOutput> Add(ApiAddInput input)
         {
             return await _apiService.AddAsync(input);
         }
@@ -69,7 +69,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> Update(ApiUpdateInput input)
+        public async Task<IResultOutput> Update(ApiUpdateInput input)
         {
             return await _apiService.UpdateAsync(input);
         }
@@ -80,7 +80,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _apiService.SoftDeleteAsync(id);
         }
@@ -91,7 +91,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="ids"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
+        public async Task<IResultOutput> BatchSoftDelete(long[] ids)
         {
             return await _apiService.BatchSoftDeleteAsync(ids);
         }
@@ -104,7 +104,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Sync(ApiSyncInput input)
+        public async Task<IResultOutput> Sync(ApiSyncInput input)
         {
             return await _apiService.SyncAsync(input);
         }

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

@@ -20,6 +20,8 @@ using ZhonTai.Plate.Admin.Service.LoginLog;
 using ZhonTai.Plate.Admin.Service.LoginLog.Input;
 using ZhonTai.Plate.Admin.Service.User;
 using ZhonTai.Tools.Captcha;
+using ZhonTai.Plate.Admin.Service.Contracts;
+using StackExchange.Profiling;
 
 namespace ZhonTai.Plate.Admin.HttpApi
 {
@@ -32,14 +34,14 @@ namespace ZhonTai.Plate.Admin.HttpApi
         private readonly IAuthService _authService;
         private readonly IUserService _userService;
         private readonly ILoginLogService _loginLogService;
-        private readonly ICaptcha _captcha;
+        private readonly ICaptchaTool _captcha;
 
         public AuthController(
             IUserToken userToken,
             IAuthService authService,
             IUserService userService,
             ILoginLogService loginLogService,
-            ICaptcha captcha
+            ICaptchaTool captcha
         )
         {
             _userToken = userToken;
@@ -54,18 +56,18 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// </summary>
         /// <param name="output"></param>
         /// <returns></returns>
-        private IResponseOutput GetToken(ResponseOutput<AuthLoginOutput> output)
+        private IResultOutput GetToken(ResultOutput<AuthLoginOutput> output)
         {
             if (!output.Success)
             {
-                return ResponseOutput.NotOk(output.Msg);
+                return ResultOutput.NotOk(output.Msg);
             }
 
             var user = output.Data;
 
             if (user == null)
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var token = _userToken.Create(new[]
@@ -78,20 +80,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
                 new Claim(ClaimAttributes.DataIsolationType, user.DataIsolationType.ToString())
             });
 
-            return ResponseOutput.Ok(new { token });
-        }
-
-        /// <summary>
-        /// 获取验证码
-        /// </summary>
-        /// <param name="lastKey">上次验证码键</param>
-        /// <returns></returns>
-        [HttpGet]
-        [AllowAnonymous]
-        [NoOprationLog]
-        public async Task<IResponseOutput> GetVerifyCode(string lastKey)
-        {
-            return await _authService.GetVerifyCodeAsync(lastKey);
+            return ResultOutput.Ok(new { token });
         }
 
         /// <summary>
@@ -102,10 +91,13 @@ namespace ZhonTai.Plate.Admin.HttpApi
         [AllowAnonymous]
         [NoOprationLog]
         [EnableCors(AdminConsts.AllowAnyPolicyName)]
-        public async Task<IResponseOutput> GetCaptcha()
+        public async Task<IResultOutput> GetCaptcha()
         {
-            var data = await _captcha.GetAsync();
-            return ResponseOutput.Ok(data);
+            using (MiniProfiler.Current.Step("获取滑块验证"))
+            {
+                var data = await _captcha.GetAsync(CacheKey.CaptchaKey);
+                return ResultOutput.Ok(data);
+            }
         }
 
         /// <summary>
@@ -116,10 +108,11 @@ namespace ZhonTai.Plate.Admin.HttpApi
         [AllowAnonymous]
         [NoOprationLog]
         [EnableCors(AdminConsts.AllowAnyPolicyName)]
-        public async Task<IResponseOutput> CheckCaptcha([FromQuery] CaptchaInput input)
+        public async Task<IResultOutput> CheckCaptcha([FromQuery] CaptchaInput input)
         {
+            input.CaptchaKey = CacheKey.CaptchaKey;
             var result = await _captcha.CheckAsync(input);
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
         /// <summary>
@@ -129,7 +122,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         [HttpGet]
         [AllowAnonymous]
         [NoOprationLog]
-        public async Task<IResponseOutput> GetPassWordEncryptKey()
+        public async Task<IResultOutput> GetPassWordEncryptKey()
         {
             return await _authService.GetPassWordEncryptKeyAsync();
         }
@@ -140,7 +133,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <returns></returns>
         [HttpGet]
         [Login]
-        public async Task<IResponseOutput> GetUserInfo()
+        public async Task<IResultOutput> GetUserInfo()
         {
             return await _authService.GetUserInfoAsync();
         }
@@ -154,7 +147,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         [HttpPost]
         [AllowAnonymous]
         [NoOprationLog]
-        public async Task<IResponseOutput> Login(AuthLoginInput input)
+        public async Task<IResultOutput> Login(AuthLoginInput input)
         {
             var sw = new Stopwatch();
             sw.Start();
@@ -171,10 +164,10 @@ namespace ZhonTai.Plate.Admin.HttpApi
                 Msg = res.Msg
             };
 
-            ResponseOutput<AuthLoginOutput> output = null;
+            ResultOutput<AuthLoginOutput> output = null;
             if (res.Success)
             {
-                output = (res as ResponseOutput<AuthLoginOutput>);
+                output = (res as ResultOutput<AuthLoginOutput>);
                 var user = output.Data;
                 loginLogAddInput.CreatedUserId = user.Id;
                 loginLogAddInput.NickName = user.NickName;
@@ -201,29 +194,29 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <returns></returns>
         [HttpGet]
         [AllowAnonymous]
-        public async Task<IResponseOutput> Refresh([BindRequired] string token)
+        public async Task<IResultOutput> Refresh([BindRequired] string token)
         {
             var userClaims = _userToken.Decode(token);
             if (userClaims == null || userClaims.Length == 0)
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var refreshExpires = userClaims.FirstOrDefault(a => a.Type == ClaimAttributes.RefreshExpires)?.Value;
             if (refreshExpires.IsNull())
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             if (refreshExpires.ToLong() <= DateTime.Now.ToTimestamp())
             {
-                return ResponseOutput.NotOk("登录信息已过期");
+                return ResultOutput.NotOk("登录信息已过期");
             }
 
             var userId = userClaims.FirstOrDefault(a => a.Type == ClaimAttributes.UserId)?.Value;
             if (userId.IsNull())
             {
-                return ResponseOutput.NotOk("登录信息已失效");
+                return ResultOutput.NotOk("登录信息已失效");
             }
             var output = await _userService.GetLoginUserAsync(userId.ToLong());
 

+ 3 - 3
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/CacheController.cs

@@ -22,9 +22,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        public IResponseOutput List()
+        public IResultOutput List()
         {
-            return _cacheService.List();
+            return _cacheService.GetList();
         }
 
         /// <summary>
@@ -33,7 +33,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="cacheKey"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> Clear(string cacheKey)
+        public async Task<IResultOutput> Clear(string cacheKey)
         {
             return await _cacheService.ClearAsync(cacheKey);
         }

+ 7 - 7
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/DictionaryController.cs

@@ -25,7 +25,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> Get(long id)
+        public async Task<IResultOutput> Get(long id)
         {
             return await _dictionaryService.GetAsync(id);
         }
@@ -36,9 +36,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> GetPage(PageInput<DictionaryEntity> model)
+        public async Task<IResultOutput> GetPage(PageInput<DictionaryEntity> model)
         {
-            return await _dictionaryService.PageAsync(model);
+            return await _dictionaryService.GetPageAsync(model);
         }
 
         /// <summary>
@@ -47,7 +47,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Add(DictionaryAddInput input)
+        public async Task<IResultOutput> Add(DictionaryAddInput input)
         {
             return await _dictionaryService.AddAsync(input);
         }
@@ -58,7 +58,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> Update(DictionaryUpdateInput input)
+        public async Task<IResultOutput> Update(DictionaryUpdateInput input)
         {
             return await _dictionaryService.UpdateAsync(input);
         }
@@ -69,7 +69,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _dictionaryService.SoftDeleteAsync(id);
         }
@@ -80,7 +80,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="ids"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
+        public async Task<IResultOutput> BatchSoftDelete(long[] ids)
         {
             return await _dictionaryService.BatchSoftDeleteAsync(ids);
         }

+ 7 - 7
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/DictionaryTypeController.cs

@@ -25,7 +25,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> Get(long id)
+        public async Task<IResultOutput> Get(long id)
         {
             return await _DictionaryTypeService.GetAsync(id);
         }
@@ -36,9 +36,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> GetPage(PageInput<DictionaryTypeEntity> model)
+        public async Task<IResultOutput> GetPage(PageInput<DictionaryTypeEntity> model)
         {
-            return await _DictionaryTypeService.PageAsync(model);
+            return await _DictionaryTypeService.GetPageAsync(model);
         }
 
         /// <summary>
@@ -47,7 +47,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Add(DictionaryTypeAddInput input)
+        public async Task<IResultOutput> Add(DictionaryTypeAddInput input)
         {
             return await _DictionaryTypeService.AddAsync(input);
         }
@@ -58,7 +58,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> Update(DictionaryTypeUpdateInput input)
+        public async Task<IResultOutput> Update(DictionaryTypeUpdateInput input)
         {
             return await _DictionaryTypeService.UpdateAsync(input);
         }
@@ -69,7 +69,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _DictionaryTypeService.SoftDeleteAsync(id);
         }
@@ -80,7 +80,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="ids"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
+        public async Task<IResultOutput> BatchSoftDelete(long[] ids)
         {
             return await _DictionaryTypeService.BatchSoftDeleteAsync(ids);
         }

+ 16 - 16
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/DocumentController.cs

@@ -38,7 +38,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="end"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetList(string key, DateTime? start, DateTime? end)
+        public async Task<IResultOutput> GetList(string key, DateTime? start, DateTime? end)
         {
             return await _documentService.GetListAsync(key, start, end);
         }
@@ -49,7 +49,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetImageList(long id)
+        public async Task<IResultOutput> GetImageList(long id)
         {
             return await _documentService.GetImageListAsync(id);
         }
@@ -60,7 +60,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetGroup(long id)
+        public async Task<IResultOutput> GetGroup(long id)
         {
             return await _documentService.GetGroupAsync(id);
         }
@@ -71,7 +71,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetMenu(long id)
+        public async Task<IResultOutput> GetMenu(long id)
         {
             return await _documentService.GetMenuAsync(id);
         }
@@ -82,7 +82,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetContent(long id)
+        public async Task<IResultOutput> GetContent(long id)
         {
             return await _documentService.GetContentAsync(id);
         }
@@ -92,7 +92,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetPlainList()
+        public async Task<IResultOutput> GetPlainList()
         {
             return await _documentService.GetPlainListAsync();
         }
@@ -103,7 +103,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> AddGroup(DocumentAddGroupInput input)
+        public async Task<IResultOutput> AddGroup(DocumentAddGroupInput input)
         {
             return await _documentService.AddGroupAsync(input);
         }
@@ -114,7 +114,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> AddMenu(DocumentAddMenuInput input)
+        public async Task<IResultOutput> AddMenu(DocumentAddMenuInput input)
         {
             return await _documentService.AddMenuAsync(input);
         }
@@ -125,7 +125,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> UpdateGroup(DocumentUpdateGroupInput input)
+        public async Task<IResultOutput> UpdateGroup(DocumentUpdateGroupInput input)
         {
             return await _documentService.UpdateGroupAsync(input);
         }
@@ -136,7 +136,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> UpdateMenu(DocumentUpdateMenuInput input)
+        public async Task<IResultOutput> UpdateMenu(DocumentUpdateMenuInput input)
         {
             return await _documentService.UpdateMenuAsync(input);
         }
@@ -147,7 +147,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> UpdateContent(DocumentUpdateContentInput input)
+        public async Task<IResultOutput> UpdateContent(DocumentUpdateContentInput input)
         {
             return await _documentService.UpdateContentAsync(input);
         }
@@ -158,7 +158,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _documentService.SoftDeleteAsync(id);
         }
@@ -170,7 +170,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="url"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> DeleteImage(long documentId, string url)
+        public async Task<IResultOutput> DeleteImage(long documentId, string url)
         {
             return await _documentService.DeleteImageAsync(documentId, url);
         }
@@ -181,7 +181,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> UploadImage([FromForm] DocumentUploadImageInput input)
+        public async Task<IResultOutput> UploadImage([FromForm] DocumentUploadImageInput input)
         {
             var config = _uploadConfig.Document;
             var res = await _uploadHelper.UploadAsync(input.File, config, new { input.Id });
@@ -196,11 +196,11 @@ namespace ZhonTai.Plate.Admin.HttpApi
                 });
                 if (r.Success)
                 {
-                    return ResponseOutput.Ok(res.Data.FileRequestPath);
+                    return ResultOutput.Ok(res.Data.FileRequestPath);
                 }
             }
 
-            return ResponseOutput.NotOk("上传失败!");
+            return ResultOutput.NotOk("上传失败!");
         }
     }
 }

+ 2 - 2
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/LoginLogController.cs

@@ -24,9 +24,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> GetPage(PageInput<LoginLogEntity> model)
+        public async Task<IResultOutput> GetPage(PageInput<LoginLogEntity> model)
         {
-            return await _loginLogService.PageAsync(model);
+            return await _loginLogService.GetPageAsync(model);
         }
     }
 }

+ 2 - 2
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/OprationLogController.cs

@@ -24,9 +24,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> GetPage(PageInput<OprationLogEntity> model)
+        public async Task<IResultOutput> GetPage(PageInput<OprationLogEntity> model)
         {
-            return await _oprationLogService.PageAsync(model);
+            return await _oprationLogService.GetPageAsync(model);
         }
     }
 }

+ 20 - 20
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/PermissionController.cs

@@ -27,7 +27,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="end"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetList(string key, DateTime? start, DateTime? end)
+        public async Task<IResultOutput> GetList(string key, DateTime? start, DateTime? end)
         {
             return await _permissionService.GetListAsync(key, start, end);
         }
@@ -38,7 +38,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetGroup(long id)
+        public async Task<IResultOutput> GetGroup(long id)
         {
             return await _permissionService.GetGroupAsync(id);
         }
@@ -49,7 +49,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetMenu(long id)
+        public async Task<IResultOutput> GetMenu(long id)
         {
             return await _permissionService.GetMenuAsync(id);
         }
@@ -60,7 +60,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetApi(long id)
+        public async Task<IResultOutput> GetApi(long id)
         {
             return await _permissionService.GetApiAsync(id);
         }
@@ -71,7 +71,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetDot(long id)
+        public async Task<IResultOutput> GetDot(long id)
         {
             return await _permissionService.GetDotAsync(id);
         }
@@ -81,7 +81,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetPermissionList()
+        public async Task<IResultOutput> GetPermissionList()
         {
             return await _permissionService.GetPermissionList();
         }
@@ -92,7 +92,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="roleId"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetRolePermissionList(long roleId = 0)
+        public async Task<IResultOutput> GetRolePermissionList(long roleId = 0)
         {
             return await _permissionService.GetRolePermissionList(roleId);
         }
@@ -103,7 +103,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="tenantId"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetTenantPermissionList(long tenantId = 0)
+        public async Task<IResultOutput> GetTenantPermissionList(long tenantId = 0)
         {
             return await _permissionService.GetTenantPermissionList(tenantId);
         }
@@ -114,7 +114,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> AddGroup(PermissionAddGroupInput input)
+        public async Task<IResultOutput> AddGroup(PermissionAddGroupInput input)
         {
             return await _permissionService.AddGroupAsync(input);
         }
@@ -125,7 +125,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> AddMenu(PermissionAddMenuInput input)
+        public async Task<IResultOutput> AddMenu(PermissionAddMenuInput input)
         {
             return await _permissionService.AddMenuAsync(input);
         }
@@ -136,7 +136,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> AddApi(PermissionAddApiInput input)
+        public async Task<IResultOutput> AddApi(PermissionAddApiInput input)
         {
             return await _permissionService.AddApiAsync(input);
         }
@@ -147,7 +147,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> AddDot(PermissionAddDotInput input)
+        public async Task<IResultOutput> AddDot(PermissionAddDotInput input)
         {
             return await _permissionService.AddDotAsync(input);
         }
@@ -158,7 +158,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> UpdateGroup(PermissionUpdateGroupInput input)
+        public async Task<IResultOutput> UpdateGroup(PermissionUpdateGroupInput input)
         {
             return await _permissionService.UpdateGroupAsync(input);
         }
@@ -169,7 +169,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> UpdateMenu(PermissionUpdateMenuInput input)
+        public async Task<IResultOutput> UpdateMenu(PermissionUpdateMenuInput input)
         {
             return await _permissionService.UpdateMenuAsync(input);
         }
@@ -180,7 +180,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> UpdateApi(PermissionUpdateApiInput input)
+        public async Task<IResultOutput> UpdateApi(PermissionUpdateApiInput input)
         {
             return await _permissionService.UpdateApiAsync(input);
         }
@@ -191,7 +191,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> UpdateDot(PermissionUpdateDotInput input)
+        public async Task<IResultOutput> UpdateDot(PermissionUpdateDotInput input)
         {
             return await _permissionService.UpdateDotAsync(input);
         }
@@ -202,7 +202,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _permissionService.SoftDeleteAsync(id);
         }
@@ -213,7 +213,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> Delete(long id)
+        public async Task<IResultOutput> Delete(long id)
         {
             return await _permissionService.DeleteAsync(id);
         }
@@ -224,7 +224,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Assign(PermissionAssignInput input)
+        public async Task<IResultOutput> Assign(PermissionAssignInput input)
         {
             return await _permissionService.AssignAsync(input);
         }
@@ -235,7 +235,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> SaveTenantPermissions(PermissionSaveTenantPermissionsInput input)
+        public async Task<IResultOutput> SaveTenantPermissions(PermissionSaveTenantPermissionsInput input)
         {
             return await _permissionService.SaveTenantPermissionsAsync(input);
         }

+ 7 - 7
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/RoleController.cs

@@ -25,7 +25,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> Get(long id)
+        public async Task<IResultOutput> Get(long id)
         {
             return await _roleService.GetAsync(id);
         }
@@ -36,9 +36,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> GetPage(PageInput<RoleEntity> model)
+        public async Task<IResultOutput> GetPage(PageInput<RoleEntity> model)
         {
-            return await _roleService.PageAsync(model);
+            return await _roleService.GetPageAsync(model);
         }
 
         /// <summary>
@@ -47,7 +47,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Add(RoleAddInput input)
+        public async Task<IResultOutput> Add(RoleAddInput input)
         {
             return await _roleService.AddAsync(input);
         }
@@ -58,7 +58,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> Update(RoleUpdateInput input)
+        public async Task<IResultOutput> Update(RoleUpdateInput input)
         {
             return await _roleService.UpdateAsync(input);
         }
@@ -69,7 +69,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _roleService.SoftDeleteAsync(id);
         }
@@ -80,7 +80,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="ids"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
+        public async Task<IResultOutput> BatchSoftDelete(long[] ids)
         {
             return await _roleService.BatchSoftDeleteAsync(ids);
         }

+ 8 - 8
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/TenantController.cs

@@ -25,7 +25,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> Get(long id)
+        public async Task<IResultOutput> Get(long id)
         {
             return await _tenantServices.GetAsync(id);
         }
@@ -36,9 +36,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> GetPage(PageInput<TenantEntity> model)
+        public async Task<IResultOutput> GetPage(PageInput<TenantEntity> model)
         {
-            return await _tenantServices.PageAsync(model);
+            return await _tenantServices.GetPageAsync(model);
         }
 
         /// <summary>
@@ -47,7 +47,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Add(TenantAddInput input)
+        public async Task<IResultOutput> Add(TenantAddInput input)
         {
             return await _tenantServices.AddAsync(input);
         }
@@ -58,7 +58,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> Update(TenantUpdateInput input)
+        public async Task<IResultOutput> Update(TenantUpdateInput input)
         {
             return await _tenantServices.UpdateAsync(input);
         }
@@ -69,7 +69,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> Delete(long id)
+        public async Task<IResultOutput> Delete(long id)
         {
             return await _tenantServices.DeleteAsync(id);
         }
@@ -80,7 +80,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _tenantServices.SoftDeleteAsync(id);
         }
@@ -91,7 +91,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="ids"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
+        public async Task<IResultOutput> BatchSoftDelete(long[] ids)
         {
             return await _tenantServices.BatchSoftDeleteAsync(ids);
         }

+ 14 - 14
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/UserController.cs

@@ -41,7 +41,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetBasic()
+        public async Task<IResultOutput> GetBasic()
         {
             return await _userService.GetBasicAsync();
         }
@@ -52,7 +52,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> Get(long id)
+        public async Task<IResultOutput> Get(long id)
         {
             return await _userService.GetAsync(id);
         }
@@ -63,7 +63,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetSelect()
+        public async Task<IResultOutput> GetSelect()
         {
             return await _userService.GetSelectAsync();
         }
@@ -75,9 +75,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <returns></returns>
         [HttpPost]
         //[ResponseCache(Duration = 60)]
-        public async Task<IResponseOutput> GetPage(PageInput<UserEntity> input)
+        public async Task<IResultOutput> GetPage(PageInput<UserEntity> input)
         {
-            return await _userService.PageAsync(input);
+            return await _userService.GetPageAsync(input);
         }
 
         /// <summary>
@@ -86,7 +86,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Add(UserAddInput input)
+        public async Task<IResultOutput> Add(UserAddInput input)
         {
             return await _userService.AddAsync(input);
         }
@@ -97,7 +97,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> Update(UserUpdateInput input)
+        public async Task<IResultOutput> Update(UserUpdateInput input)
         {
             return await _userService.UpdateAsync(input);
         }
@@ -108,7 +108,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _userService.SoftDeleteAsync(id);
         }
@@ -119,7 +119,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="ids"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
+        public async Task<IResultOutput> BatchSoftDelete(long[] ids)
         {
             return await _userService.BatchSoftDeleteAsync(ids);
         }
@@ -130,7 +130,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> ChangePassword(UserChangePasswordInput input)
+        public async Task<IResultOutput> ChangePassword(UserChangePasswordInput input)
         {
             return await _userService.ChangePasswordAsync(input);
         }
@@ -141,7 +141,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> UpdateBasic(UserUpdateBasicInput input)
+        public async Task<IResultOutput> UpdateBasic(UserUpdateBasicInput input)
         {
             return await _userService.UpdateBasicAsync(input);
         }
@@ -153,16 +153,16 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <returns></returns>
         [HttpPost]
         [Login]
-        public async Task<IResponseOutput> AvatarUpload([FromForm] IFormFile file)
+        public async Task<IResultOutput> AvatarUpload([FromForm] IFormFile file)
         {
             var config = _uploadConfig.Avatar;
             var res = await _uploadHelper.UploadAsync(file, config, new { _user.Id });
             if (res.Success)
             {
-                return ResponseOutput.Ok(res.Data.FileRelativePath);
+                return ResultOutput.Ok(res.Data.FileRelativePath);
             }
 
-            return ResponseOutput.NotOk(res.Msg ?? "上传失败!");
+            return ResultOutput.NotOk(res.Msg ?? "上传失败!");
         }
     }
 }

+ 10 - 10
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/Controllers/ViewController.cs

@@ -25,7 +25,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> Get(long id)
+        public async Task<IResultOutput> Get(long id)
         {
             return await _viewService.GetAsync(id);
         }
@@ -36,9 +36,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="key"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> GetList(string key)
+        public async Task<IResultOutput> GetList(string key)
         {
-            return await _viewService.ListAsync(key);
+            return await _viewService.GetListAsync(key);
         }
 
         /// <summary>
@@ -47,9 +47,9 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="model">分页模型</param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> GetPage(PageInput<ViewEntity> model)
+        public async Task<IResultOutput> GetPage(PageInput<ViewEntity> model)
         {
-            return await _viewService.PageAsync(model);
+            return await _viewService.GetPageAsync(model);
         }
 
         /// <summary>
@@ -58,7 +58,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Add(ViewAddInput input)
+        public async Task<IResultOutput> Add(ViewAddInput input)
         {
             return await _viewService.AddAsync(input);
         }
@@ -69,7 +69,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> Update(ViewUpdateInput input)
+        public async Task<IResultOutput> Update(ViewUpdateInput input)
         {
             return await _viewService.UpdateAsync(input);
         }
@@ -80,7 +80,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _viewService.SoftDeleteAsync(id);
         }
@@ -91,7 +91,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="ids"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
+        public async Task<IResultOutput> BatchSoftDelete(long[] ids)
         {
             return await _viewService.BatchSoftDeleteAsync(ids);
         }
@@ -104,7 +104,7 @@ namespace ZhonTai.Plate.Admin.HttpApi
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Sync(ViewSyncInput input)
+        public async Task<IResultOutput> Sync(ViewSyncInput input)
         {
             return await _viewService.SyncAsync(input);
         }

+ 4 - 0
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/ZhonTai.Plate.Admin.HttpApi.csproj

@@ -4,6 +4,10 @@
     <TargetFramework>net5.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
+    <DocumentationFile>F:\zhontai\Admin\src\plates\ZhonTai.Plate.Admin\ZhonTai.Plate.Admin.HttpApi\ZhonTai.Plate.Admin.HttpApi.xml</DocumentationFile>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\ZhonTai.Plate.Admin.HttpApi.Shared\ZhonTai.Plate.Admin.HttpApi.Shared.csproj" />
   </ItemGroup>

+ 760 - 0
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.HttpApi/ZhonTai.Plate.Admin.HttpApi.xml

@@ -0,0 +1,760 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ZhonTai.Plate.Admin.HttpApi</name>
+    </assembly>
+    <members>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.ApiController">
+            <summary>
+            接口管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ApiController.Get(System.Int64)">
+            <summary>
+            查询单条接口
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ApiController.GetList(System.String)">
+            <summary>
+            查询全部接口
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ApiController.GetPage(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Admin.Domain.Api.ApiEntity})">
+            <summary>
+            查询分页接口
+            </summary>
+            <param name="model">分页模型</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ApiController.Add(ZhonTai.Plate.Admin.Service.Api.Input.ApiAddInput)">
+            <summary>
+            新增接口
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ApiController.Update(ZhonTai.Plate.Admin.Service.Api.Input.ApiUpdateInput)">
+            <summary>
+            修改接口
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ApiController.SoftDelete(System.Int64)">
+            <summary>
+            删除接口
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ApiController.BatchSoftDelete(System.Int64[])">
+            <summary>
+            批量删除接口
+            </summary>
+            <param name="ids"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ApiController.Sync(ZhonTai.Plate.Admin.Service.Api.Input.ApiSyncInput)">
+            <summary>
+            同步接口
+            支持新增和修改接口
+            根据接口是否存在自动禁用和启用api
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.AreaController">
+            <summary>
+            域控制器
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.AuthController">
+            <summary>
+            授权管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.AuthController.GetToken(ZhonTai.Common.Domain.Dto.ResultOutput{ZhonTai.Plate.Admin.Service.Auth.Output.AuthLoginOutput})">
+            <summary>
+            获得token
+            </summary>
+            <param name="output"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.AuthController.GetCaptcha">
+            <summary>
+            获取验证数据
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.AuthController.CheckCaptcha(ZhonTai.Tools.Captcha.CaptchaInput)">
+            <summary>
+            检查验证数据
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.AuthController.GetPassWordEncryptKey">
+            <summary>
+            获取密钥
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.AuthController.GetUserInfo">
+            <summary>
+            查询用户信息
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.AuthController.Login(ZhonTai.Plate.Admin.Service.Auth.Input.AuthLoginInput)">
+            <summary>
+            用户登录
+            根据登录信息生成Token
+            </summary>
+            <param name="input">登录信息</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.AuthController.Refresh(System.String)">
+            <summary>
+            刷新Token
+            以旧换新
+            </summary>
+            <param name="token"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.CacheController">
+            <summary>
+            缓存管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.CacheController.List">
+            <summary>
+            获取缓存列表
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.CacheController.Clear(System.String)">
+            <summary>
+            清除缓存
+            </summary>
+            <param name="cacheKey"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.DictionaryController">
+            <summary>
+            数据字典
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryController.Get(System.Int64)">
+            <summary>
+            查询单条数据字典
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryController.GetPage(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Admin.Domain.Dictionary.DictionaryEntity})">
+            <summary>
+            查询分页数据字典
+            </summary>
+            <param name="model"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryController.Add(ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryAddInput)">
+            <summary>
+            新增数据字典
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryController.Update(ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryUpdateInput)">
+            <summary>
+            修改数据字典
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryController.SoftDelete(System.Int64)">
+            <summary>
+            删除数据字典
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryController.BatchSoftDelete(System.Int64[])">
+            <summary>
+            批量删除数据字典
+            </summary>
+            <param name="ids"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.DictionaryTypeController">
+            <summary>
+            数据字典类型
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryTypeController.Get(System.Int64)">
+            <summary>
+            查询单条数据字典类型
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryTypeController.GetPage(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Admin.Domain.DictionaryType.DictionaryTypeEntity})">
+            <summary>
+            查询分页数据字典类型
+            </summary>
+            <param name="model"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryTypeController.Add(ZhonTai.Plate.Admin.Service.DictionaryType.Input.DictionaryTypeAddInput)">
+            <summary>
+            新增数据字典类型
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryTypeController.Update(ZhonTai.Plate.Admin.Service.DictionaryType.Input.DictionaryTypeUpdateInput)">
+            <summary>
+            修改数据字典类型
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryTypeController.SoftDelete(System.Int64)">
+            <summary>
+            删除数据字典类型
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DictionaryTypeController.BatchSoftDelete(System.Int64[])">
+            <summary>
+            批量删除数据字典类型
+            </summary>
+            <param name="ids"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.DocumentController">
+            <summary>
+            文档管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.GetList(System.String,System.Nullable{System.DateTime},System.Nullable{System.DateTime})">
+            <summary>
+            查询文档列表
+            </summary>
+            <param name="key"></param>
+            <param name="start"></param>
+            <param name="end"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.GetImageList(System.Int64)">
+            <summary>
+            查询文档图片列表
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.GetGroup(System.Int64)">
+            <summary>
+            查询单条分组
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.GetMenu(System.Int64)">
+            <summary>
+            查询单条菜单
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.GetContent(System.Int64)">
+            <summary>
+            查询单条文档内容
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.GetPlainList">
+            <summary>
+            查询精简文档列表
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.AddGroup(ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddGroupInput)">
+            <summary>
+            新增分组
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.AddMenu(ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddMenuInput)">
+            <summary>
+            新增菜单
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.UpdateGroup(ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateGroupInput)">
+            <summary>
+            修改分组
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.UpdateMenu(ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateMenuInput)">
+            <summary>
+            修改菜单
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.UpdateContent(ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateContentInput)">
+            <summary>
+            修改文档内容
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.SoftDelete(System.Int64)">
+            <summary>
+            删除文档
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.DeleteImage(System.Int64,System.String)">
+            <summary>
+            删除图片
+            </summary>
+            <param name="documentId"></param>
+            <param name="url"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.DocumentController.UploadImage(ZhonTai.Plate.Admin.Service.Document.Input.DocumentUploadImageInput)">
+            <summary>
+            上传文档图片
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.LoginLogController">
+            <summary>
+            登录日志管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.LoginLogController.GetPage(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Admin.Domain.LoginLog.LoginLogEntity})">
+            <summary>
+            查询分页登录日志
+            </summary>
+            <param name="model"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.OprationLogController">
+            <summary>
+            操作日志管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.OprationLogController.GetPage(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Admin.Domain.OprationLog.OprationLogEntity})">
+            <summary>
+            查询分页操作日志
+            </summary>
+            <param name="model"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.PermissionController">
+            <summary>
+            权限管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.GetList(System.String,System.Nullable{System.DateTime},System.Nullable{System.DateTime})">
+            <summary>
+            查询权限列表
+            </summary>
+            <param name="key"></param>
+            <param name="start"></param>
+            <param name="end"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.GetGroup(System.Int64)">
+            <summary>
+            查询单条分组
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.GetMenu(System.Int64)">
+            <summary>
+            查询单条菜单
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.GetApi(System.Int64)">
+            <summary>
+            查询单条接口
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.GetDot(System.Int64)">
+            <summary>
+            查询单条权限点
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.GetPermissionList">
+            <summary>
+            查询角色权限-权限列表
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.GetRolePermissionList(System.Int64)">
+            <summary>
+            查询角色权限
+            </summary>
+            <param name="roleId"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.GetTenantPermissionList(System.Int64)">
+            <summary>
+            查询租户权限
+            </summary>
+            <param name="tenantId"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.AddGroup(ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddGroupInput)">
+            <summary>
+            新增分组
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.AddMenu(ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput)">
+            <summary>
+            新增菜单
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.AddApi(ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddApiInput)">
+            <summary>
+            新增接口
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.AddDot(ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddDotInput)">
+            <summary>
+            新增权限点
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.UpdateGroup(ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateGroupInput)">
+            <summary>
+            修改分组
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.UpdateMenu(ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateMenuInput)">
+            <summary>
+            修改菜单
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.UpdateApi(ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateApiInput)">
+            <summary>
+            修改接口
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.UpdateDot(ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateDotInput)">
+            <summary>
+            修改权限点
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.SoftDelete(System.Int64)">
+            <summary>
+            删除权限
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.Delete(System.Int64)">
+            <summary>
+            彻底删除权限
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.Assign(ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAssignInput)">
+            <summary>
+            保存角色权限
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.PermissionController.SaveTenantPermissions(ZhonTai.Plate.Admin.Service.Permission.Input.PermissionSaveTenantPermissionsInput)">
+            <summary>
+            保存租户权限
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.RoleController">
+            <summary>
+            角色管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.RoleController.Get(System.Int64)">
+            <summary>
+            查询单条角色
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.RoleController.GetPage(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Admin.Domain.Role.RoleEntity})">
+            <summary>
+            查询分页角色
+            </summary>
+            <param name="model"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.RoleController.Add(ZhonTai.Plate.Admin.Service.Role.Input.RoleAddInput)">
+            <summary>
+            新增角色
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.RoleController.Update(ZhonTai.Plate.Admin.Service.Role.Input.RoleUpdateInput)">
+            <summary>
+            修改角色
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.RoleController.SoftDelete(System.Int64)">
+            <summary>
+            删除角色
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.RoleController.BatchSoftDelete(System.Int64[])">
+            <summary>
+            批量删除角色
+            </summary>
+            <param name="ids"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.TenantController">
+            <summary>
+            租户管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.TenantController.Get(System.Int64)">
+            <summary>
+            查询单条租户
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.TenantController.GetPage(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Admin.Domain.Tenant.TenantEntity})">
+            <summary>
+            查询分页租户
+            </summary>
+            <param name="model"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.TenantController.Add(ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput)">
+            <summary>
+            新增租户
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.TenantController.Update(ZhonTai.Plate.Admin.Service.Tenant.Input.TenantUpdateInput)">
+            <summary>
+            修改租户
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.TenantController.Delete(System.Int64)">
+            <summary>
+            彻底删除租户
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.TenantController.SoftDelete(System.Int64)">
+            <summary>
+            删除租户
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.TenantController.BatchSoftDelete(System.Int64[])">
+            <summary>
+            批量删除租户
+            </summary>
+            <param name="ids"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.UserController">
+            <summary>
+            用户管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.UserController.GetBasic">
+            <summary>
+            查询用户基本信息
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.UserController.Get(System.Int64)">
+            <summary>
+            查询单条用户
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.UserController.GetSelect">
+            <summary>
+            查询下拉数据
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.UserController.GetPage(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Admin.Domain.User.UserEntity})">
+            <summary>
+            查询分页用户
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.UserController.Add(ZhonTai.Plate.Admin.Service.User.Input.UserAddInput)">
+            <summary>
+            新增用户
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.UserController.Update(ZhonTai.Plate.Admin.Service.User.Input.UserUpdateInput)">
+            <summary>
+            修改用户
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.UserController.SoftDelete(System.Int64)">
+            <summary>
+            删除用户
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.UserController.BatchSoftDelete(System.Int64[])">
+            <summary>
+            批量删除用户
+            </summary>
+            <param name="ids"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.UserController.ChangePassword(ZhonTai.Plate.Admin.Service.User.Input.UserChangePasswordInput)">
+            <summary>
+            更新用户密码
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.UserController.UpdateBasic(ZhonTai.Plate.Admin.Service.User.Input.UserUpdateBasicInput)">
+            <summary>
+            更新用户基本信息
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.UserController.AvatarUpload(Microsoft.AspNetCore.Http.IFormFile)">
+            <summary>
+            上传头像
+            </summary>
+            <param name="file"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.HttpApi.ViewController">
+            <summary>
+            视图管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ViewController.Get(System.Int64)">
+            <summary>
+            查询单条视图
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ViewController.GetList(System.String)">
+            <summary>
+            查询全部视图
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ViewController.GetPage(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Admin.Domain.View.ViewEntity})">
+            <summary>
+            查询分页视图
+            </summary>
+            <param name="model">分页模型</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ViewController.Add(ZhonTai.Plate.Admin.Service.View.Input.ViewAddInput)">
+            <summary>
+            新增视图
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ViewController.Update(ZhonTai.Plate.Admin.Service.View.Input.ViewUpdateInput)">
+            <summary>
+            修改视图
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ViewController.SoftDelete(System.Int64)">
+            <summary>
+            删除视图
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ViewController.BatchSoftDelete(System.Int64[])">
+            <summary>
+            批量删除视图
+            </summary>
+            <param name="ids"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.HttpApi.ViewController.Sync(ZhonTai.Plate.Admin.Service.View.Input.ViewSyncInput)">
+            <summary>
+            同步视图
+            支持新增和修改视图
+            根据视图是否存在自动禁用和启用视图
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>

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

@@ -15,62 +15,62 @@ namespace ZhonTai.Plate.Admin.Service.Api
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        Task<IResponseOutput> GetAsync(long id);
+        Task<IResultOutput> GetAsync(long id);
 
         /// <summary>
         /// 获得列表
         /// </summary>
         /// <param name="key"></param>
         /// <returns></returns>
-        Task<IResponseOutput> ListAsync(string key);
+        Task<IResultOutput> GetListAsync(string key);
 
         /// <summary>
         /// 获得分页
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        Task<IResponseOutput> PageAsync(PageInput<ApiEntity> model);
+        Task<IResultOutput> GetPageAsync(PageInput<ApiEntity> model);
 
         /// <summary>
         /// 添加
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        Task<IResponseOutput> AddAsync(ApiAddInput input);
+        Task<IResultOutput> AddAsync(ApiAddInput input);
 
         /// <summary>
         /// 修改
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        Task<IResponseOutput> UpdateAsync(ApiUpdateInput input);
+        Task<IResultOutput> UpdateAsync(ApiUpdateInput input);
 
         /// <summary>
         /// 删除
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
         /// <summary>
         /// 软删除
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
 
         /// <summary>
         /// 批量软删除
         /// </summary>
         /// <param name="ids"></param>
         /// <returns></returns>
-        Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids);
+        Task<IResultOutput> BatchSoftDeleteAsync(long[] ids);
 
         /// <summary>
         /// 同步
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        Task<IResponseOutput> SyncAsync(ApiSyncInput input);
+        Task<IResultOutput> SyncAsync(ApiSyncInput input);
     }
 }

+ 3 - 5
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Auth/IAuthService.cs

@@ -9,12 +9,10 @@ namespace ZhonTai.Plate.Admin.Service.Auth
     /// </summary>
     public interface IAuthService
     {
-        Task<IResponseOutput> LoginAsync(AuthLoginInput input);
+        Task<IResultOutput> LoginAsync(AuthLoginInput input);
 
-        Task<IResponseOutput> GetUserInfoAsync();
+        Task<IResultOutput> GetUserInfoAsync();
 
-        Task<IResponseOutput> GetVerifyCodeAsync(string lastKey);
-
-        Task<IResponseOutput> GetPassWordEncryptKeyAsync();
+        Task<IResultOutput> GetPassWordEncryptKeyAsync();
     }
 }

+ 0 - 11
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Auth/Input/AuthLoginInput.cs

@@ -25,17 +25,6 @@ namespace ZhonTai.Plate.Admin.Service.Auth.Input
         /// </summary>
         public string PasswordKey { get; set; }
 
-        /// <summary>
-        /// 验证码
-        /// </summary>
-        //[Required(ErrorMessage = "验证码不能为空!")]
-        public string VerifyCode { get; set; }
-
-        /// <summary>
-        /// 验证码键
-        /// </summary>
-        public string VerifyCodeKey { get; set; }
-
         /// <summary>
         /// 验证数据
         /// </summary>

+ 2 - 2
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Base/BaseService.cs

@@ -14,7 +14,7 @@ namespace ZhonTai.Plate.Admin.Service
     {
         protected readonly object ServiceProviderLock = new object();
         protected IDictionary<Type, object> CachedServices = new Dictionary<Type, object>();
-        private ICache _cache;
+        private ICacheTool _cache;
         private ILoggerFactory _loggerFactory;
         private IMapper _mapper;
         private IUser _user;
@@ -22,7 +22,7 @@ namespace ZhonTai.Plate.Admin.Service
         /// <summary>
         /// 缓存
         /// </summary>
-        public ICache Cache => LazyGetRequiredService(ref _cache);
+        public ICacheTool Cache => LazyGetRequiredService(ref _cache);
 
         /// <summary>
         /// 日志工厂

+ 3 - 3
src/shared/ZhonTai.Tools/Cache/CacheKey.cs → src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Base/CacheKey.cs

@@ -1,6 +1,6 @@
 using System.ComponentModel;
 
-namespace ZhonTai.Tools.Cache
+namespace ZhonTai.Plate.Admin.Service.Contracts
 {
     /// <summary>
     /// 缓存键
@@ -8,10 +8,10 @@ namespace ZhonTai.Tools.Cache
     public static partial class CacheKey
     {
         /// <summary>
-        /// 验证码 admin:verify:code:guid
+        /// 验证码 admin:captcha:guid
         /// </summary>
         [Description("验证码")]
-        public const string VerifyCodeKey = "admin:verify:code:{0}";
+        public const string CaptchaKey = "admin:captcha:{0}";
 
         /// <summary>
         /// 密码加密 admin:password:encrypt:guid

+ 2 - 2
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Cache/ICacheService.cs

@@ -12,13 +12,13 @@ namespace ZhonTai.Plate.Admin.Service.Cache
         /// »º´æÁбí
         /// </summary>
         /// <returns></returns>
-        IResponseOutput List();
+        IResultOutput GetList();
 
         /// <summary>
         /// Çå³ý»º´æ
         /// </summary>
         /// <param name="cacheKey"></param>
         /// <returns></returns>
-        Task<IResponseOutput> ClearAsync(string cacheKey);
+        Task<IResultOutput> ClearAsync(string cacheKey);
     }
 }

+ 7 - 7
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Dictionary/IDictionaryService.cs

@@ -7,18 +7,18 @@ namespace ZhonTai.Plate.Admin.Service.Dictionary
 {
     public partial interface IDictionaryService
     {
-        Task<IResponseOutput> GetAsync(long id);
+        Task<IResultOutput> GetAsync(long id);
 
-        Task<IResponseOutput> PageAsync(PageInput<DictionaryEntity> model);
+        Task<IResultOutput> GetPageAsync(PageInput<DictionaryEntity> model);
 
-        Task<IResponseOutput> AddAsync(DictionaryAddInput input);
+        Task<IResultOutput> AddAsync(DictionaryAddInput input);
 
-        Task<IResponseOutput> UpdateAsync(DictionaryUpdateInput input);
+        Task<IResultOutput> UpdateAsync(DictionaryUpdateInput input);
 
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
 
-        Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids);
+        Task<IResultOutput> BatchSoftDeleteAsync(long[] ids);
     }
 }

+ 7 - 7
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/DictionaryType/IDictionaryTypeService.cs

@@ -7,18 +7,18 @@ namespace ZhonTai.Plate.Admin.Service.DictionaryType
 {
     public partial interface IDictionaryTypeService
     {
-        Task<IResponseOutput> GetAsync(long id);
+        Task<IResultOutput> GetAsync(long id);
 
-        Task<IResponseOutput> PageAsync(PageInput<DictionaryTypeEntity> model);
+        Task<IResultOutput> GetPageAsync(PageInput<DictionaryTypeEntity> model);
 
-        Task<IResponseOutput> AddAsync(DictionaryTypeAddInput input);
+        Task<IResultOutput> AddAsync(DictionaryTypeAddInput input);
 
-        Task<IResponseOutput> UpdateAsync(DictionaryTypeUpdateInput input);
+        Task<IResultOutput> UpdateAsync(DictionaryTypeUpdateInput input);
 
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
 
-        Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids);
+        Task<IResultOutput> BatchSoftDeleteAsync(long[] ids);
     }
 }

+ 16 - 16
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Document/IDocumentService.cs

@@ -7,36 +7,36 @@ namespace ZhonTai.Plate.Admin.Service.Document
 {
     public partial interface IDocumentService
     {
-        Task<IResponseOutput> GetAsync(long id);
+        Task<IResultOutput> GetAsync(long id);
 
-        Task<IResponseOutput> GetImageListAsync(long id);
+        Task<IResultOutput> GetImageListAsync(long id);
 
-        Task<IResponseOutput> GetGroupAsync(long id);
+        Task<IResultOutput> GetGroupAsync(long id);
 
-        Task<IResponseOutput> GetMenuAsync(long id);
+        Task<IResultOutput> GetMenuAsync(long id);
 
-        Task<IResponseOutput> GetContentAsync(long id);
+        Task<IResultOutput> GetContentAsync(long id);
 
-        Task<IResponseOutput> GetPlainListAsync();
+        Task<IResultOutput> GetPlainListAsync();
 
-        Task<IResponseOutput> GetListAsync(string key, DateTime? start, DateTime? end);
+        Task<IResultOutput> GetListAsync(string key, DateTime? start, DateTime? end);
 
-        Task<IResponseOutput> AddGroupAsync(DocumentAddGroupInput input);
+        Task<IResultOutput> AddGroupAsync(DocumentAddGroupInput input);
 
-        Task<IResponseOutput> AddMenuAsync(DocumentAddMenuInput input);
+        Task<IResultOutput> AddMenuAsync(DocumentAddMenuInput input);
 
-        Task<IResponseOutput> AddImageAsync(DocumentAddImageInput input);
+        Task<IResultOutput> AddImageAsync(DocumentAddImageInput input);
 
-        Task<IResponseOutput> UpdateGroupAsync(DocumentUpdateGroupInput input);
+        Task<IResultOutput> UpdateGroupAsync(DocumentUpdateGroupInput input);
 
-        Task<IResponseOutput> UpdateMenuAsync(DocumentUpdateMenuInput input);
+        Task<IResultOutput> UpdateMenuAsync(DocumentUpdateMenuInput input);
 
-        Task<IResponseOutput> UpdateContentAsync(DocumentUpdateContentInput input);
+        Task<IResultOutput> UpdateContentAsync(DocumentUpdateContentInput input);
 
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
-        Task<IResponseOutput> DeleteImageAsync(long documentId, string url);
+        Task<IResultOutput> DeleteImageAsync(long documentId, string url);
 
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
     }
 }

+ 2 - 2
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/LoginLog/ILoginLogService.cs

@@ -7,8 +7,8 @@ namespace ZhonTai.Plate.Admin.Service.LoginLog
 {
     public interface ILoginLogService
     {
-        Task<IResponseOutput> PageAsync(PageInput<LoginLogEntity> input);
+        Task<IResultOutput> GetPageAsync(PageInput<LoginLogEntity> input);
 
-        Task<IResponseOutput<long>> AddAsync(LoginLogAddInput input);
+        Task<IResultOutput<long>> AddAsync(LoginLogAddInput input);
     }
 }

+ 2 - 2
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/OprationLog/IOprationLogService.cs

@@ -7,8 +7,8 @@ namespace ZhonTai.Plate.Admin.Service.OprationLog
 {
     public interface IOprationLogService
     {
-        Task<IResponseOutput> PageAsync(PageInput<OprationLogEntity> input);
+        Task<IResultOutput> GetPageAsync(PageInput<OprationLogEntity> input);
 
-        Task<IResponseOutput> AddAsync(OprationLogAddInput input);
+        Task<IResultOutput> AddAsync(OprationLogAddInput input);
     }
 }

+ 21 - 21
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Permission/IPermissionService.cs

@@ -7,47 +7,47 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 {
     public partial interface IPermissionService
     {
-        Task<IResponseOutput> GetAsync(long id);
+        Task<IResultOutput> GetAsync(long id);
 
-        Task<IResponseOutput> GetGroupAsync(long id);
+        Task<IResultOutput> GetGroupAsync(long id);
 
-        Task<IResponseOutput> GetMenuAsync(long id);
+        Task<IResultOutput> GetMenuAsync(long id);
 
-        Task<IResponseOutput> GetApiAsync(long id);
+        Task<IResultOutput> GetApiAsync(long id);
 
-        Task<IResponseOutput> GetDotAsync(long id);
+        Task<IResultOutput> GetDotAsync(long id);
 
-        Task<IResponseOutput> GetPermissionList();
+        Task<IResultOutput> GetPermissionList();
 
-        Task<IResponseOutput> GetRolePermissionList(long roleId);
+        Task<IResultOutput> GetRolePermissionList(long roleId);
 
 
-        Task<IResponseOutput> GetTenantPermissionList(long tenantId);
+        Task<IResultOutput> GetTenantPermissionList(long tenantId);
 
-        Task<IResponseOutput> GetListAsync(string key, DateTime? start, DateTime? end);
+        Task<IResultOutput> GetListAsync(string key, DateTime? start, DateTime? end);
 
-        Task<IResponseOutput> AddGroupAsync(PermissionAddGroupInput input);
+        Task<IResultOutput> AddGroupAsync(PermissionAddGroupInput input);
 
-        Task<IResponseOutput> AddMenuAsync(PermissionAddMenuInput input);
+        Task<IResultOutput> AddMenuAsync(PermissionAddMenuInput input);
 
-        Task<IResponseOutput> AddApiAsync(PermissionAddApiInput input);
+        Task<IResultOutput> AddApiAsync(PermissionAddApiInput input);
 
-        Task<IResponseOutput> AddDotAsync(PermissionAddDotInput input);
+        Task<IResultOutput> AddDotAsync(PermissionAddDotInput input);
 
-        Task<IResponseOutput> UpdateGroupAsync(PermissionUpdateGroupInput input);
+        Task<IResultOutput> UpdateGroupAsync(PermissionUpdateGroupInput input);
 
-        Task<IResponseOutput> UpdateMenuAsync(PermissionUpdateMenuInput input);
+        Task<IResultOutput> UpdateMenuAsync(PermissionUpdateMenuInput input);
 
-        Task<IResponseOutput> UpdateApiAsync(PermissionUpdateApiInput input);
+        Task<IResultOutput> UpdateApiAsync(PermissionUpdateApiInput input);
 
-        Task<IResponseOutput> UpdateDotAsync(PermissionUpdateDotInput input);
+        Task<IResultOutput> UpdateDotAsync(PermissionUpdateDotInput input);
 
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
 
-        Task<IResponseOutput> AssignAsync(PermissionAssignInput input);
+        Task<IResultOutput> AssignAsync(PermissionAssignInput input);
 
-        Task<IResponseOutput> SaveTenantPermissionsAsync(PermissionSaveTenantPermissionsInput input);
+        Task<IResultOutput> SaveTenantPermissionsAsync(PermissionSaveTenantPermissionsInput input);
     }
 }

+ 7 - 7
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Role/IRoleService.cs

@@ -7,18 +7,18 @@ namespace ZhonTai.Plate.Admin.Service.Role
 {
     public interface IRoleService
     {
-        Task<IResponseOutput> GetAsync(long id);
+        Task<IResultOutput> GetAsync(long id);
 
-        Task<IResponseOutput> PageAsync(PageInput<RoleEntity> input);
+        Task<IResultOutput> GetPageAsync(PageInput<RoleEntity> input);
 
-        Task<IResponseOutput> AddAsync(RoleAddInput input);
+        Task<IResultOutput> AddAsync(RoleAddInput input);
 
-        Task<IResponseOutput> UpdateAsync(RoleUpdateInput input);
+        Task<IResultOutput> UpdateAsync(RoleUpdateInput input);
 
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
 
-        Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids);
+        Task<IResultOutput> BatchSoftDeleteAsync(long[] ids);
     }
 }

+ 7 - 7
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/Tenant/ITenantService.cs

@@ -7,18 +7,18 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
 {
     public interface ITenantService
     {
-        Task<IResponseOutput> GetAsync(long id);
+        Task<IResultOutput> GetAsync(long id);
 
-        Task<IResponseOutput> PageAsync(PageInput<TenantEntity> input);
+        Task<IResultOutput> GetPageAsync(PageInput<TenantEntity> input);
 
-        Task<IResponseOutput> AddAsync(TenantAddInput input);
+        Task<IResultOutput> AddAsync(TenantAddInput input);
 
-        Task<IResponseOutput> UpdateAsync(TenantUpdateInput input);
+        Task<IResultOutput> UpdateAsync(TenantUpdateInput input);
 
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
 
-        Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids);
+        Task<IResultOutput> BatchSoftDeleteAsync(long[] ids);
     }
 }

+ 12 - 12
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/User/IUserService.cs

@@ -13,29 +13,29 @@ namespace ZhonTai.Plate.Admin.Service.User
     /// </summary>
     public interface IUserService
     {
-        Task<ResponseOutput<AuthLoginOutput>> GetLoginUserAsync(long id);
+        Task<ResultOutput<AuthLoginOutput>> GetLoginUserAsync(long id);
 
-        Task<IResponseOutput> GetAsync(long id);
+        Task<IResultOutput> GetAsync(long id);
 
-        Task<IResponseOutput> GetSelectAsync();
+        Task<IResultOutput> GetSelectAsync();
 
-        Task<IResponseOutput> PageAsync(PageInput<UserEntity> input);
+        Task<IResultOutput> GetPageAsync(PageInput<UserEntity> input);
 
-        Task<IResponseOutput> AddAsync(UserAddInput input);
+        Task<IResultOutput> AddAsync(UserAddInput input);
 
-        Task<IResponseOutput> UpdateAsync(UserUpdateInput input);
+        Task<IResultOutput> UpdateAsync(UserUpdateInput input);
 
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
 
-        Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids);
+        Task<IResultOutput> BatchSoftDeleteAsync(long[] ids);
 
-        Task<IResponseOutput> ChangePasswordAsync(UserChangePasswordInput input);
+        Task<IResultOutput> ChangePasswordAsync(UserChangePasswordInput input);
 
-        Task<IResponseOutput> UpdateBasicAsync(UserUpdateBasicInput input);
+        Task<IResultOutput> UpdateBasicAsync(UserUpdateBasicInput input);
 
-        Task<IResponseOutput> GetBasicAsync();
+        Task<IResultOutput> GetBasicAsync();
 
         Task<IList<UserPermissionsOutput>> GetPermissionsAsync();
     }

+ 9 - 9
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/View/IViewService.cs

@@ -16,22 +16,22 @@ namespace ZhonTai.Plate.Admin.Service.View
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        Task<IResponseOutput> GetAsync(long id);
+        Task<IResultOutput> GetAsync(long id);
 
-        Task<IResponseOutput> ListAsync(string key);
+        Task<IResultOutput> GetListAsync(string key);
 
-        Task<IResponseOutput> PageAsync(PageInput<ViewEntity> model);
+        Task<IResultOutput> GetPageAsync(PageInput<ViewEntity> model);
 
-        Task<IResponseOutput> AddAsync(ViewAddInput input);
+        Task<IResultOutput> AddAsync(ViewAddInput input);
 
-        Task<IResponseOutput> UpdateAsync(ViewUpdateInput input);
+        Task<IResultOutput> UpdateAsync(ViewUpdateInput input);
 
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
 
-        Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids);
+        Task<IResultOutput> BatchSoftDeleteAsync(long[] ids);
 
-        Task<IResponseOutput> SyncAsync(ViewSyncInput input);
+        Task<IResultOutput> SyncAsync(ViewSyncInput input);
     }
 }

+ 4 - 0
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/ZhonTai.Plate.Admin.Service.Contracts.csproj

@@ -5,6 +5,10 @@
     <RootNamespace>ZhonTai.Plate.Admin.Service</RootNamespace>
   </PropertyGroup>
 
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
+    <DocumentationFile>F:\zhontai\Admin\src\plates\ZhonTai.Plate.Admin\ZhonTai.Plate.Admin.Service.Contracts\ZhonTai.Plate.Admin.Service.Contracts.xml</DocumentationFile>
+  </PropertyGroup>
+
 	<ItemGroup>
 		<PackageReference Include="Mapster" Version="7.2.0" />
 	</ItemGroup>

+ 1805 - 0
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service.Contracts/ZhonTai.Plate.Admin.Service.Contracts.xml

@@ -0,0 +1,1805 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ZhonTai.Plate.Admin.Service.Contracts</name>
+    </assembly>
+    <members>
+        <member name="T:ZhonTai.Plate.Admin.Service.Api.IApiService">
+            <summary>
+            接口服务
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.Api.IApiService.GetAsync(System.Int64)">
+            <summary>
+            获得一条记录
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.Api.IApiService.GetListAsync(System.String)">
+            <summary>
+            获得列表
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.Api.IApiService.GetPageAsync(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Admin.Domain.Api.ApiEntity})">
+            <summary>
+            获得分页
+            </summary>
+            <param name="model"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.Api.IApiService.AddAsync(ZhonTai.Plate.Admin.Service.Api.Input.ApiAddInput)">
+            <summary>
+            添加
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.Api.IApiService.UpdateAsync(ZhonTai.Plate.Admin.Service.Api.Input.ApiUpdateInput)">
+            <summary>
+            修改
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.Api.IApiService.DeleteAsync(System.Int64)">
+            <summary>
+            删除
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.Api.IApiService.SoftDeleteAsync(System.Int64)">
+            <summary>
+            软删除
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.Api.IApiService.BatchSoftDeleteAsync(System.Int64[])">
+            <summary>
+            批量软删除
+            </summary>
+            <param name="ids"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.Api.IApiService.SyncAsync(ZhonTai.Plate.Admin.Service.Api.Input.ApiSyncInput)">
+            <summary>
+            同步
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Api.Input.ApiAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiAddInput.ParentId">
+            <summary>
+            所属模块
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiAddInput.Label">
+            <summary>
+            接口名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiAddInput.Path">
+            <summary>
+            接口地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiAddInput.HttpMethods">
+            <summary>
+            接口提交方法
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiAddInput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiAddInput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Api.Input.ApiSyncDto">
+            <summary>
+            接口同步Dto
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiSyncDto.Label">
+            <summary>
+            接口名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiSyncDto.Path">
+            <summary>
+            接口地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiSyncDto.ParentPath">
+            <summary>
+            父级路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiSyncDto.HttpMethods">
+            <summary>
+            接口提交方法
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Api.Input.ApiSyncInput">
+            <summary>
+            接口同步
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Api.Input.ApiUpdateInput">
+            <summary>
+            修改
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiUpdateInput.Id">
+            <summary>
+            接口Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Input.ApiUpdateInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Output.ApiListOutput.Id">
+            <summary>
+            接口Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Output.ApiListOutput.ParentId">
+            <summary>
+            接口父级
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Output.ApiListOutput.Name">
+            <summary>
+            接口命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Output.ApiListOutput.Label">
+            <summary>
+            接口名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Output.ApiListOutput.Path">
+            <summary>
+            接口地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Output.ApiListOutput.HttpMethods">
+            <summary>
+            接口提交方法
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Output.ApiListOutput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Api.Output.ApiListOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Auth.IAuthService">
+            <summary>
+            权限服务
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Auth.Input.AuthLoginInput">
+            <summary>
+            登录信息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Input.AuthLoginInput.UserName">
+            <summary>
+            账号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Input.AuthLoginInput.Password">
+            <summary>
+            密码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Input.AuthLoginInput.PasswordKey">
+            <summary>
+            密码键
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Input.AuthLoginInput.Captcha">
+            <summary>
+            验证数据
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthGetVerifyCodeOutput.Key">
+            <summary>
+            缓存键
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthGetVerifyCodeOutput.Img">
+            <summary>
+            图片
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthLoginOutput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthLoginOutput.UserName">
+            <summary>
+            账号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthLoginOutput.NickName">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthLoginOutput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthLoginOutput.TenantType">
+            <summary>
+            租户类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthLoginOutput.DataIsolationType">
+            <summary>
+            数据隔离
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserInfoOutput.User">
+            <summary>
+            用户个人信息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserInfoOutput.Menus">
+            <summary>
+            用户菜单
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserInfoOutput.Permissions">
+            <summary>
+            用户权限点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserMenuDto.Id">
+            <summary>
+            权限Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserMenuDto.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserMenuDto.Path">
+            <summary>
+            访问地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserMenuDto.ViewPath">
+            <summary>
+            视图地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserMenuDto.Label">
+            <summary>
+            权限名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserMenuDto.Icon">
+            <summary>
+            图标
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserMenuDto.Opened">
+            <summary>
+            打开
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserMenuDto.Closable">
+            <summary>
+            可关闭
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserMenuDto.Hidden">
+            <summary>
+            隐藏
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserMenuDto.NewWindow">
+            <summary>
+            打开新窗口
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserMenuDto.External">
+            <summary>
+            链接外显
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserProfileDto.UserName">
+            <summary>
+            账号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserProfileDto.NickName">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Auth.Output.AuthUserProfileDto.Avatar">
+            <summary>
+            头像
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.BaseService.Cache">
+            <summary>
+            缓存
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.BaseService.LoggerFactory">
+            <summary>
+            日志工厂
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.BaseService.Mapper">
+            <summary>
+            映射
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.BaseService.User">
+            <summary>
+            用户信息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.BaseService.Logger">
+            <summary>
+            日志
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.BaseService.LazyGetRequiredService``1">
+            <summary>
+            获得懒加载服务
+            </summary>
+            <typeparam name="TService">服务接口</typeparam>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.BaseService.LazyGetRequiredService(System.Type)">
+            <summary>
+            根据服务类型获得懒加载服务
+            </summary>
+            <param name="serviceType">服务类型</param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Contracts.CacheKey">
+            <summary>
+            缓存键
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Admin.Service.Contracts.CacheKey.CaptchaKey">
+            <summary>
+            验证码 admin:captcha:guid
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Admin.Service.Contracts.CacheKey.PassWordEncryptKey">
+            <summary>
+            密码加密 admin:password:encrypt:guid
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Admin.Service.Contracts.CacheKey.UserPermissions">
+            <summary>
+            用户权限 admin:user:permissions:用户主键
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Admin.Service.Contracts.CacheKey.UserInfo">
+            <summary>
+            用户信息 admin:user:info:用户主键
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Admin.Service.Contracts.CacheKey.TenantInfo">
+            <summary>
+            租户信息 admin:tenant:info:租户主键
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Cache.ICacheService">
+            <summary>
+            缓存服务
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.Cache.ICacheService.GetList">
+            <summary>
+            缓存列表
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.Cache.ICacheService.ClearAsync(System.String)">
+            <summary>
+            清除缓存
+            </summary>
+            <param name="cacheKey"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.DictionaryType.Input.DictionaryTypeAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.DictionaryType.Input.DictionaryTypeAddInput.Name">
+            <summary>
+            字典名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.DictionaryType.Input.DictionaryTypeAddInput.Code">
+            <summary>
+            字典编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.DictionaryType.Input.DictionaryTypeAddInput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.DictionaryType.Input.DictionaryTypeAddInput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.DictionaryType.Input.DictionaryTypeUpdateInput">
+            <summary>
+            修改
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.DictionaryType.Input.DictionaryTypeUpdateInput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.DictionaryType.Input.DictionaryTypeUpdateInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.DictionaryType.Output.DictionaryTypeListOutput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.DictionaryType.Output.DictionaryTypeListOutput.Name">
+            <summary>
+            字典名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.DictionaryType.Output.DictionaryTypeListOutput.Code">
+            <summary>
+            字典编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.DictionaryType.Output.DictionaryTypeListOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryAddInput.DictionaryTypeId">
+            <summary>
+            字典类型Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryAddInput.Name">
+            <summary>
+            字典名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryAddInput.Code">
+            <summary>
+            字典编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryAddInput.Value">
+            <summary>
+            字典值
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryAddInput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryAddInput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryUpdateInput">
+            <summary>
+            修改
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryUpdateInput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Input.DictionaryUpdateInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Output.DictionaryListOutput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Output.DictionaryListOutput.Name">
+            <summary>
+            字典名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Output.DictionaryListOutput.Code">
+            <summary>
+            字典编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Output.DictionaryListOutput.Value">
+            <summary>
+            字典值
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Dictionary.Output.DictionaryListOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddGroupInput.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddGroupInput.Type">
+            <summary>
+            类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddGroupInput.Label">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddGroupInput.Name">
+            <summary>
+            命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddGroupInput.Opened">
+            <summary>
+            打开
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddImageInput.DocumentId">
+            <summary>
+            用户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddImageInput.Url">
+            <summary>
+            请求路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddMenuInput.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddMenuInput.Type">
+            <summary>
+            类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddMenuInput.Name">
+            <summary>
+            命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddMenuInput.Label">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentAddMenuInput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateContentInput.Id">
+            <summary>
+            编号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateContentInput.Label">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateContentInput.Content">
+            <summary>
+            内容
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateContentInput.Html">
+            <summary>
+            Html
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateContentInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateGroupInput.Id">
+            <summary>
+            编号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateGroupInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateMenuInput.Id">
+            <summary>
+            编号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentUpdateMenuInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentUploadImageInput.File">
+            <summary>
+            上传文件
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Input.DocumentUploadImageInput.Id">
+            <summary>
+            文档编号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Output.DocumentGetContentOutput.Id">
+            <summary>
+            编号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Output.DocumentGetContentOutput.Label">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Output.DocumentGetContentOutput.Content">
+            <summary>
+            内容
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Output.DocumentGetContentOutput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Output.DocumentListOutput.Id">
+            <summary>
+            编号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Output.DocumentListOutput.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Output.DocumentListOutput.Label">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Output.DocumentListOutput.Type">
+            <summary>
+            类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Output.DocumentListOutput.Name">
+            <summary>
+            命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Output.DocumentListOutput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Document.Output.DocumentListOutput.Opened">
+            <summary>
+            组打开
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.IP">
+            <summary>
+            IP
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.Browser">
+            <summary>
+            浏览器
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.Os">
+            <summary>
+            操作系统
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.Device">
+            <summary>
+            设备
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.BrowserInfo">
+            <summary>
+            浏览器信息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.ElapsedMilliseconds">
+            <summary>
+            耗时(毫秒)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.Status">
+            <summary>
+            操作状态
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.Msg">
+            <summary>
+            操作消息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.Result">
+            <summary>
+            操作结果
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.CreatedUserId">
+            <summary>
+            创建者Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Input.LoginLogAddInput.CreatedUserName">
+            <summary>
+            创建者
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Output.LoginLogListOutput.Id">
+            <summary>
+            编号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Output.LoginLogListOutput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Output.LoginLogListOutput.CreatedUserName">
+            <summary>
+            创建者
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Output.LoginLogListOutput.IP">
+            <summary>
+            IP
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Output.LoginLogListOutput.Browser">
+            <summary>
+            浏览器
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Output.LoginLogListOutput.Os">
+            <summary>
+            操作系统
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Output.LoginLogListOutput.Device">
+            <summary>
+            设备
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Output.LoginLogListOutput.ElapsedMilliseconds">
+            <summary>
+            耗时(毫秒)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Output.LoginLogListOutput.Status">
+            <summary>
+            操作状态
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Output.LoginLogListOutput.Msg">
+            <summary>
+            操作消息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.LoginLog.Output.LoginLogListOutput.CreatedTime">
+            <summary>
+            创建时间
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.ApiLabel">
+            <summary>
+            接口名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.ApiPath">
+            <summary>
+            接口地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.ApiMethod">
+            <summary>
+            接口提交方法
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.IP">
+            <summary>
+            IP
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.Browser">
+            <summary>
+            浏览器
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.Os">
+            <summary>
+            操作系统
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.Device">
+            <summary>
+            设备
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.BrowserInfo">
+            <summary>
+            浏览器信息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.ElapsedMilliseconds">
+            <summary>
+            耗时(毫秒)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.Status">
+            <summary>
+            操作状态
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.Msg">
+            <summary>
+            操作消息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.Params">
+            <summary>
+            操作参数
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Input.OprationLogAddInput.Result">
+            <summary>
+            操作结果
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.Id">
+            <summary>
+            编号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.CreatedUserName">
+            <summary>
+            创建者
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.ApiLabel">
+            <summary>
+            接口名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.ApiPath">
+            <summary>
+            接口地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.ApiMethod">
+            <summary>
+            接口提交方法
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.IP">
+            <summary>
+            IP
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.Browser">
+            <summary>
+            浏览器
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.Os">
+            <summary>
+            操作系统
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.Device">
+            <summary>
+            设备
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.ElapsedMilliseconds">
+            <summary>
+            耗时(毫秒)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.Status">
+            <summary>
+            操作状态
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.Msg">
+            <summary>
+            操作消息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.OprationLog.Output.OprationLogListOutput.CreatedTime">
+            <summary>
+            创建时间
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddApiInput.Type">
+            <summary>
+            权限类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddApiInput.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddApiInput.ApiId">
+            <summary>
+            接口
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddApiInput.Label">
+            <summary>
+            权限名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddApiInput.Code">
+            <summary>
+            权限编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddApiInput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddApiInput.Hidden">
+            <summary>
+            隐藏
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddApiInput.Icon">
+            <summary>
+            图标
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddDotInput.Type">
+            <summary>
+            权限类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddDotInput.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddDotInput.ApiIds">
+            <summary>
+            关联接口
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddDotInput.Label">
+            <summary>
+            权限名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddDotInput.Code">
+            <summary>
+            权限编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddDotInput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddDotInput.Icon">
+            <summary>
+            图标
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddGroupInput.Type">
+            <summary>
+            权限类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddGroupInput.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddGroupInput.Label">
+            <summary>
+            权限名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddGroupInput.Hidden">
+            <summary>
+            隐藏
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddGroupInput.Icon">
+            <summary>
+            图标
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddGroupInput.Opened">
+            <summary>
+            打开
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput.Type">
+            <summary>
+            权限类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput.ViewId">
+            <summary>
+            视图
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput.Path">
+            <summary>
+            访问地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput.Label">
+            <summary>
+            权限名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput.Hidden">
+            <summary>
+            隐藏
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput.Icon">
+            <summary>
+            图标
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput.Closable">
+            <summary>
+            可关闭
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput.NewWindow">
+            <summary>
+            打开新窗口
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionAddMenuInput.External">
+            <summary>
+            链接外显
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateApiInput.Id">
+            <summary>
+            权限Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateApiInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateDotInput.Id">
+            <summary>
+            权限Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateDotInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateGroupInput.Id">
+            <summary>
+            权限Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateGroupInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateMenuInput.Id">
+            <summary>
+            权限Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Input.PermissionUpdateMenuInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Output.PermissionListOutput.Id">
+            <summary>
+            权限Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Output.PermissionListOutput.ParentId">
+            <summary>
+            父级节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Output.PermissionListOutput.Label">
+            <summary>
+            权限名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Output.PermissionListOutput.Type">
+            <summary>
+            权限类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Output.PermissionListOutput.Path">
+            <summary>
+            访问地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Output.PermissionListOutput.ApiPaths">
+            <summary>
+            接口路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Output.PermissionListOutput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Output.PermissionListOutput.Icon">
+            <summary>
+            图标
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Output.PermissionListOutput.Opened">
+            <summary>
+            组打开
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Output.PermissionListOutput.Hidden">
+            <summary>
+            隐藏
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Permission.Output.PermissionListOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Admin.Permission.MapConfig">
+            <summary>
+            映射配置
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Role.Input.RoleAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Input.RoleAddInput.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Input.RoleAddInput.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Input.RoleAddInput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Input.RoleAddInput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Role.Input.RoleUpdateInput">
+            <summary>
+            修改
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Input.RoleUpdateInput.Id">
+            <summary>
+            接口Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Input.RoleUpdateInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Output.RoleListOutput.Id">
+            <summary>
+            主键
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Output.RoleListOutput.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Output.RoleListOutput.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Output.RoleListOutput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Output.RoleListOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Role.Output.RoleListOutput.CreatedTime">
+            <summary>
+            创建时间
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput.Name">
+            <summary>
+            企业名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput.RealName">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput.Phone">
+            <summary>
+            手机号码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput.Email">
+            <summary>
+            邮箱地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput.DataIsolationType">
+            <summary>
+            数据隔离类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput.DbType">
+            <summary>
+            数据库
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput.ConnectionString">
+            <summary>
+            连接字符串
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput.IdleTime">
+            <summary>
+            空闲时间(分)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantAddInput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantUpdateInput">
+            <summary>
+            修改
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantUpdateInput.Id">
+            <summary>
+            接口Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Input.TenantUpdateInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.Id">
+            <summary>
+            主键
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.UserId">
+            <summary>
+            授权用户
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.RoleId">
+            <summary>
+            授权角色
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.Code">
+            <summary>
+            企业编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.Name">
+            <summary>
+            企业名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.RealName">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.Phone">
+            <summary>
+            手机号码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.Email">
+            <summary>
+            邮箱地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.DataIsolationType">
+            <summary>
+            数据隔离类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.DataIsolationTypeName">
+            <summary>
+            数据隔离类型名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.DbType">
+            <summary>
+            数据库
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.DbTypeName">
+            <summary>
+            数据库名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.ConnectionString">
+            <summary>
+            连接字符串
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.IdleTime">
+            <summary>
+            空闲时间(分)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.Tenant.Output.TenantListOutput.CreatedTime">
+            <summary>
+            创建时间
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.User.Input.UserAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserAddInput.UserName">
+            <summary>
+            账号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserAddInput.Password">
+            <summary>
+            密码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserAddInput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserAddInput.Status">
+            <summary>
+            状态
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserAddInput.Remark">
+            <summary>
+            备注
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserAddInput.RoleIds">
+            <summary>
+            角色
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.User.Input.UserChangePasswordInput">
+            <summary>
+            修改密码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserChangePasswordInput.OldPassword">
+            <summary>
+            旧密码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserChangePasswordInput.NewPassword">
+            <summary>
+            新密码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserChangePasswordInput.ConfirmPassword">
+            <summary>
+            确认新密码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserChangePasswordInput.Password">
+            <summary>
+            密码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserChangePasswordInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateBasicInput">
+            <summary>
+            更新基本信息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateBasicInput.Avatar">
+            <summary>
+            头像
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateBasicInput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateBasicInput.Remark">
+            <summary>
+            备注
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateBasicInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateInput">
+            <summary>
+            修改
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateInput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateInput.UserName">
+            <summary>
+            账号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateInput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateInput.Status">
+            <summary>
+            状态
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateInput.Remark">
+            <summary>
+            备注
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateInput.RoleIds">
+            <summary>
+            角色
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Input.UserUpdateInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.User.IUserService">
+            <summary>
+            用户服务
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Output.UserListOutput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Output.UserListOutput.UserName">
+            <summary>
+            账号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Output.UserListOutput.Name">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Output.UserListOutput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Output.UserListOutput.Status">
+            <summary>
+            状态
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Output.UserListOutput.RoleNames">
+            <summary>
+            角色
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Output.UserListOutput.Remark">
+            <summary>
+            备注
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.User.Output.UserListOutput.CreatedTime">
+            <summary>
+            创建时间
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.User.MapConfig">
+            <summary>
+            映射配置
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.View.Input.ViewAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewAddInput.ParentId">
+            <summary>
+            所属节点
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewAddInput.Name">
+            <summary>
+            视图命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewAddInput.Label">
+            <summary>
+            视图名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewAddInput.Path">
+            <summary>
+            视图路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewAddInput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewAddInput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewSyncDto.Name">
+            <summary>
+            视图命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewSyncDto.Path">
+            <summary>
+            地址
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewSyncDto.Label">
+            <summary>
+            视图名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewSyncDto.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewSyncDto.Cache">
+            <summary>
+            缓存
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.View.Input.ViewUpdateInput">
+            <summary>
+            修改
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewUpdateInput.Id">
+            <summary>
+            视图Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Input.ViewUpdateInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Admin.Service.View.IViewService">
+            <summary>
+            视图服务
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Admin.Service.View.IViewService.GetAsync(System.Int64)">
+            <summary>
+            获得一条记录
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Output.ViewListOutput.Id">
+            <summary>
+            视图Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Output.ViewListOutput.ParentId">
+            <summary>
+            视图父级
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Output.ViewListOutput.Name">
+            <summary>
+            视图命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Output.ViewListOutput.Label">
+            <summary>
+            视图名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Output.ViewListOutput.Path">
+            <summary>
+            视图路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Output.ViewListOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Admin.Service.View.Output.ViewListOutput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+    </members>
+</doc>

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

@@ -18,22 +18,22 @@ namespace ZhonTai.Plate.Admin.Service.Api
             _apiRepository = moduleRepository;
         }
 
-        public async Task<IResponseOutput> GetAsync(long id)
+        public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _apiRepository.GetAsync<ApiGetOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> ListAsync(string key)
+        public async Task<IResultOutput> GetListAsync(string key)
         {
             var data = await _apiRepository
                 .WhereIf(key.NotNull(), a => a.Path.Contains(key) || a.Label.Contains(key))
                 .ToListAsync<ApiListOutput>();
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> PageAsync(PageInput<ApiEntity> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<ApiEntity> input)
         {
             var key = input.Filter?.Label;
 
@@ -50,36 +50,36 @@ namespace ZhonTai.Plate.Admin.Service.Api
                 Total = total
             };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> AddAsync(ApiAddInput input)
+        public async Task<IResultOutput> AddAsync(ApiAddInput input)
         {
             var entity = Mapper.Map<ApiEntity>(input);
             var id = (await _apiRepository.InsertAsync(entity)).Id;
 
-            return ResponseOutput.Result(id > 0);
+            return ResultOutput.Result(id > 0);
         }
 
-        public async Task<IResponseOutput> UpdateAsync(ApiUpdateInput input)
+        public async Task<IResultOutput> UpdateAsync(ApiUpdateInput input)
         {
             if (!(input?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var entity = await _apiRepository.GetAsync(input.Id);
             if (!(entity?.Id > 0))
             {
-                return ResponseOutput.NotOk("接口不存在!");
+                return ResultOutput.NotOk("接口不存在!");
             }
 
             Mapper.Map(input, entity);
             await _apiRepository.UpdateAsync(entity);
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
             if (id > 0)
@@ -87,24 +87,24 @@ namespace ZhonTai.Plate.Admin.Service.Api
                 result = (await _apiRepository.DeleteAsync(m => m.Id == id)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _apiRepository.SoftDeleteAsync(id);
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids)
+        public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             var result = await _apiRepository.SoftDeleteAsync(ids);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
         [Transaction]
-        public async Task<IResponseOutput> SyncAsync(ApiSyncInput input)
+        public async Task<IResultOutput> SyncAsync(ApiSyncInput input)
         {
             //查询所有api
             var apis = await _apiRepository.Select.ToListAsync();
@@ -211,7 +211,7 @@ namespace ZhonTai.Plate.Admin.Service.Api
             .UpdateColumns(a => new { a.ParentId, a.Label, a.HttpMethods, a.Description, a.Enabled })
             .ExecuteAffrowsAsync();
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
     }
 }

+ 17 - 61
src/plates/ZhonTai.Plate.Admin/ZhonTai.Plate.Admin.Service/Auth/AuthService.cs

@@ -1,7 +1,6 @@
 using System;
 using System.Linq;
 using System.Threading.Tasks;
-using ZhonTai.Tools.Cache;
 using ZhonTai.Common.Configs;
 using ZhonTai.Common.Helpers;
 using ZhonTai.Common.Domain.Dto;
@@ -12,6 +11,7 @@ using ZhonTai.Plate.Admin.Domain.Tenant;
 using ZhonTai.Plate.Admin.Service.Auth.Output;
 using ZhonTai.Plate.Admin.Domain.RolePermission;
 using ZhonTai.Plate.Admin.Domain.UserRole;
+using ZhonTai.Plate.Admin.Service.Contracts;
 using ZhonTai.Plate.Admin.Service.Auth.Input;
 
 namespace ZhonTai.Plate.Admin.Service.Auth
@@ -21,28 +21,25 @@ namespace ZhonTai.Plate.Admin.Service.Auth
         private readonly AppConfig _appConfig;
         private readonly IPermissionRepository _permissionRepository;
         private readonly IUserRepository _userRepository;
-        private readonly VerifyCodeHelper _verifyCodeHelper;
         private readonly ITenantRepository _tenantRepository;
-        private readonly ICaptcha _captcha;
+        private readonly ICaptchaTool _captchaTool;
 
         public AuthService(
             AppConfig appConfig,
-            VerifyCodeHelper verifyCodeHelper,
             IUserRepository userRepository,
             IPermissionRepository permissionRepository,
             ITenantRepository tenantRepository,
-            ICaptcha captcha
+            ICaptchaTool captchaTool
         )
         {
             _appConfig = appConfig;
-            _verifyCodeHelper = verifyCodeHelper;
             _userRepository = userRepository;
             _permissionRepository = permissionRepository;
             _tenantRepository = tenantRepository;
-            _captcha = captcha;
+            _captchaTool = captchaTool;
         }
 
-        public async Task<IResponseOutput> GetPassWordEncryptKeyAsync()
+        public async Task<IResultOutput> GetPassWordEncryptKeyAsync()
         {
             //写入Redis
             var guid = Guid.NewGuid().ToString("N");
@@ -51,14 +48,14 @@ namespace ZhonTai.Plate.Admin.Service.Auth
             await Cache.SetAsync(key, encyptKey, TimeSpan.FromMinutes(5));
             var data = new { key = guid, encyptKey };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> GetUserInfoAsync()
+        public async Task<IResultOutput> GetUserInfoAsync()
         {
             if (!(User?.Id > 0))
             {
-                return ResponseOutput.NotOk("未登录!");
+                return ResultOutput.NotOk("未登录!");
             }
 
             var authUserInfoOutput = new AuthUserInfoOutput { };
@@ -89,60 +86,20 @@ namespace ZhonTai.Plate.Admin.Service.Auth
                 )
                 .ToListAsync(a => a.Code);
 
-            return ResponseOutput.Ok(authUserInfoOutput);
+            return ResultOutput.Ok(authUserInfoOutput);
         }
 
-        public async Task<IResponseOutput> GetVerifyCodeAsync(string lastKey)
-        {
-            var img = _verifyCodeHelper.GetBase64String(out string code);
-
-            //删除上次缓存的验证码
-            if (lastKey.NotNull())
-            {
-                await Cache.DelAsync(lastKey);
-            }
-
-            //写入Redis
-            var guid = Guid.NewGuid().ToString("N");
-            var key = string.Format(CacheKey.VerifyCodeKey, guid);
-            await Cache.SetAsync(key, code, TimeSpan.FromMinutes(5));
-
-            var data = new AuthGetVerifyCodeOutput { Key = guid, Img = img };
-            return ResponseOutput.Ok(data);
-        }
-
-        public async Task<IResponseOutput> LoginAsync(AuthLoginInput input)
+        public async Task<IResultOutput> LoginAsync(AuthLoginInput input)
         {
             #region 验证码校验
 
             if (_appConfig.VarifyCode.Enable)
             {
-                /*
-                var verifyCodeKey = string.Format(CacheKey.VerifyCodeKey, input.VerifyCodeKey);
-                var exists = await Cache.ExistsAsync(verifyCodeKey);
-                if (exists)
-                {
-                    var verifyCode = await Cache.GetAsync(verifyCodeKey);
-                    if (string.IsNullOrEmpty(verifyCode))
-                    {
-                        return ResponseOutput.NotOk("验证码已过期!", 1);
-                    }
-                    if (verifyCode.ToLower() != input.VerifyCode.ToLower())
-                    {
-                        return ResponseOutput.NotOk("验证码输入有误!", 2);
-                    }
-                    await Cache.DelAsync(verifyCodeKey);
-                }
-                else
-                {
-                    return ResponseOutput.NotOk("验证码已过期!", 1);
-                }
-                */
                 input.Captcha.DeleteCache = true;
-                var isOk = await _captcha.CheckAsync(input.Captcha);
+                var isOk = await _captchaTool.CheckAsync(input.Captcha);
                 if (!isOk)
                 {
-                    return ResponseOutput.NotOk("安全验证不通过,请重新登录!");
+                    return ResultOutput.NotOk("安全验证不通过,请重新登录!");
                 }
             }
 
@@ -151,11 +108,10 @@ namespace ZhonTai.Plate.Admin.Service.Auth
             UserEntity user = null;
 
             user = await _userRepository.Select.DisableGlobalFilter("Tenant").Where(a => a.UserName == input.UserName).ToOneAsync();
-            //user = (await _userRepository.GetAsync(a => a.UserName == input.UserName));
 
             if (!(user?.Id > 0))
             {
-                return ResponseOutput.NotOk("账号输入有误!", 3);
+                return ResultOutput.NotOk("账号输入有误!", 3);
             }
 
             #region 解密
@@ -169,14 +125,14 @@ namespace ZhonTai.Plate.Admin.Service.Auth
                     var secretKey = await Cache.GetAsync(passwordEncryptKey);
                     if (secretKey.IsNull())
                     {
-                        return ResponseOutput.NotOk("解密失败!", 1);
+                        return ResultOutput.NotOk("解密失败!", 1);
                     }
                     input.Password = DesEncrypt.Decrypt(input.Password, secretKey);
                     await Cache.DelAsync(passwordEncryptKey);
                 }
                 else
                 {
-                    return ResponseOutput.NotOk("解密失败!", 1);
+                    return ResultOutput.NotOk("解密失败!", 1);
                 }
             }
 
@@ -185,7 +141,7 @@ namespace ZhonTai.Plate.Admin.Service.Auth
             var password = MD5Encrypt.Encrypt32(input.Password);
             if (user.Password != password)
             {
-                return ResponseOutput.NotOk("密码输入有误!", 4);
+                return ResultOutput.NotOk("密码输入有误!", 4);
             }
 
             var authLoginOutput = Mapper.Map<AuthLoginOutput>(user);
@@ -197,7 +153,7 @@ namespace ZhonTai.Plate.Admin.Service.Auth
                 authLoginOutput.DataIsolationType = tenant.DataIsolationType;
             }
 
-            return ResponseOutput.Ok(authLoginOutput);
+            return ResultOutput.Ok(authLoginOutput);
         }
     }
 }

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

@@ -4,8 +4,8 @@ using System.ComponentModel;
 using System.Linq;
 using System.Reflection;
 using System.Threading.Tasks;
-using ZhonTai.Tools.Cache;
 using ZhonTai.Common.Domain.Dto;
+using ZhonTai.Plate.Admin.Service.Contracts;
 
 namespace ZhonTai.Plate.Admin.Service.Cache
 {
@@ -15,7 +15,7 @@ namespace ZhonTai.Plate.Admin.Service.Cache
         {
         }
 
-        public IResponseOutput List()
+        public IResultOutput GetList()
         {
             var list = new List<object>();
             var cacheKey = typeof(CacheKey);
@@ -32,14 +32,14 @@ namespace ZhonTai.Plate.Admin.Service.Cache
                 });
             }
 
-            return ResponseOutput.Ok(list);
+            return ResultOutput.Ok(list);
         }
 
-        public async Task<IResponseOutput> ClearAsync(string cacheKey)
+        public async Task<IResultOutput> ClearAsync(string cacheKey)
         {
             Logger.LogWarning($"{User.Id}.{User.Name}清除缓存[{cacheKey}]");
             await Cache.DelByPatternAsync(cacheKey);
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
     }
 }

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

@@ -15,13 +15,13 @@ namespace ZhonTai.Plate.Admin.Service.Dictionary
             _dictionaryRepository = dictionaryRepository;
         }
 
-        public async Task<IResponseOutput> GetAsync(long id)
+        public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _dictionaryRepository.GetAsync<DictionaryGetOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> PageAsync(PageInput<DictionaryEntity> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<DictionaryEntity> input)
         {
             var key = input.Filter?.Name;
             var dictionaryTypeId = input.Filter?.DictionaryTypeId;
@@ -39,35 +39,35 @@ namespace ZhonTai.Plate.Admin.Service.Dictionary
                 Total = total
             };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> AddAsync(DictionaryAddInput input)
+        public async Task<IResultOutput> AddAsync(DictionaryAddInput input)
         {
             var dictionary = Mapper.Map<DictionaryEntity>(input);
             var id = (await _dictionaryRepository.InsertAsync(dictionary)).Id;
-            return ResponseOutput.Result(id > 0);
+            return ResultOutput.Result(id > 0);
         }
 
-        public async Task<IResponseOutput> UpdateAsync(DictionaryUpdateInput input)
+        public async Task<IResultOutput> UpdateAsync(DictionaryUpdateInput input)
         {
             if (!(input?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var entity = await _dictionaryRepository.GetAsync(input.Id);
             if (!(entity?.Id > 0))
             {
-                return ResponseOutput.NotOk("数据字典不存在!");
+                return ResultOutput.NotOk("数据字典不存在!");
             }
 
             Mapper.Map(input, entity);
             await _dictionaryRepository.UpdateAsync(entity);
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
             if (id > 0)
@@ -75,21 +75,21 @@ namespace ZhonTai.Plate.Admin.Service.Dictionary
                 result = (await _dictionaryRepository.DeleteAsync(m => m.Id == id)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _dictionaryRepository.SoftDeleteAsync(id);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids)
+        public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             var result = await _dictionaryRepository.SoftDeleteAsync(ids);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
     }
 }

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

@@ -19,13 +19,13 @@ namespace ZhonTai.Plate.Admin.Service.DictionaryType
             _dictionaryRepository = dictionaryRepository;
         }
 
-        public async Task<IResponseOutput> GetAsync(long id)
+        public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _DictionaryTypeRepository.GetAsync<DictionaryTypeGetOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> PageAsync(PageInput<DictionaryTypeEntity> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<DictionaryTypeEntity> input)
         {
             var key = input.Filter?.Name;
 
@@ -42,36 +42,36 @@ namespace ZhonTai.Plate.Admin.Service.DictionaryType
                 Total = total
             };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> AddAsync(DictionaryTypeAddInput input)
+        public async Task<IResultOutput> AddAsync(DictionaryTypeAddInput input)
         {
             var DictionaryType = Mapper.Map<DictionaryTypeEntity>(input);
             var id = (await _DictionaryTypeRepository.InsertAsync(DictionaryType)).Id;
-            return ResponseOutput.Result(id > 0);
+            return ResultOutput.Result(id > 0);
         }
 
-        public async Task<IResponseOutput> UpdateAsync(DictionaryTypeUpdateInput input)
+        public async Task<IResultOutput> UpdateAsync(DictionaryTypeUpdateInput input)
         {
             if (!(input?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var entity = await _DictionaryTypeRepository.GetAsync(input.Id);
             if (!(entity?.Id > 0))
             {
-                return ResponseOutput.NotOk("数据字典不存在!");
+                return ResultOutput.NotOk("数据字典不存在!");
             }
 
             Mapper.Map(input, entity);
             await _DictionaryTypeRepository.UpdateAsync(entity);
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
         [Transaction]
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             //删除字典数据
             await _dictionaryRepository.DeleteAsync(a => a.DictionaryTypeId == id);
@@ -79,25 +79,25 @@ namespace ZhonTai.Plate.Admin.Service.DictionaryType
             //删除字典类型
             await _DictionaryTypeRepository.DeleteAsync(a => a.Id == id);
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
         [Transaction]
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             await _dictionaryRepository.SoftDeleteAsync(a => a.DictionaryTypeId == id);
             await _DictionaryTypeRepository.SoftDeleteAsync(id);
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
         [Transaction]
-        public async Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids)
+        public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             await _dictionaryRepository.SoftDeleteAsync(a => ids.Contains(a.DictionaryTypeId));
             await _DictionaryTypeRepository.SoftDeleteAsync(ids);
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
     }
 }

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

@@ -23,32 +23,32 @@ namespace ZhonTai.Plate.Admin.Service.Document
             _documentImageRepository = documentImageRepository;
         }
 
-        public async Task<IResponseOutput> GetAsync(long id)
+        public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _documentRepository.GetAsync(id);
 
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> GetGroupAsync(long id)
+        public async Task<IResultOutput> GetGroupAsync(long id)
         {
             var result = await _documentRepository.GetAsync<DocumentGetGroupOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> GetMenuAsync(long id)
+        public async Task<IResultOutput> GetMenuAsync(long id)
         {
             var result = await _documentRepository.GetAsync<DocumentGetMenuOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> GetContentAsync(long id)
+        public async Task<IResultOutput> GetContentAsync(long id)
         {
             var result = await _documentRepository.GetAsync<DocumentGetContentOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> GetListAsync(string key, DateTime? start, DateTime? end)
+        public async Task<IResultOutput> GetListAsync(string key, DateTime? start, DateTime? end)
         {
             if (end.HasValue)
             {
@@ -62,44 +62,44 @@ namespace ZhonTai.Plate.Admin.Service.Document
                 .OrderBy(a => a.Sort)
                 .ToListAsync<DocumentListOutput>();
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> GetImageListAsync(long id)
+        public async Task<IResultOutput> GetImageListAsync(long id)
         {
             var result = await _documentImageRepository.Select
                 .Where(a => a.DocumentId == id)
                 .OrderByDescending(a => a.Id)
                 .ToListAsync(a => a.Url);
 
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> AddGroupAsync(DocumentAddGroupInput input)
+        public async Task<IResultOutput> AddGroupAsync(DocumentAddGroupInput input)
         {
             var entity = Mapper.Map<DocumentEntity>(input);
             var id = (await _documentRepository.InsertAsync(entity)).Id;
 
-            return ResponseOutput.Result(id > 0);
+            return ResultOutput.Result(id > 0);
         }
 
-        public async Task<IResponseOutput> AddMenuAsync(DocumentAddMenuInput input)
+        public async Task<IResultOutput> AddMenuAsync(DocumentAddMenuInput input)
         {
             var entity = Mapper.Map<DocumentEntity>(input);
             var id = (await _documentRepository.InsertAsync(entity)).Id;
 
-            return ResponseOutput.Result(id > 0);
+            return ResultOutput.Result(id > 0);
         }
 
-        public async Task<IResponseOutput> AddImageAsync(DocumentAddImageInput input)
+        public async Task<IResultOutput> AddImageAsync(DocumentAddImageInput input)
         {
             var entity = Mapper.Map<DocumentImageEntity>(input);
             var id = (await _documentImageRepository.InsertAsync(entity)).Id;
 
-            return ResponseOutput.Result(id > 0);
+            return ResultOutput.Result(id > 0);
         }
 
-        public async Task<IResponseOutput> UpdateGroupAsync(DocumentUpdateGroupInput input)
+        public async Task<IResultOutput> UpdateGroupAsync(DocumentUpdateGroupInput input)
         {
             var result = false;
             if (input != null && input.Id > 0)
@@ -109,10 +109,10 @@ namespace ZhonTai.Plate.Admin.Service.Document
                 result = (await _documentRepository.UpdateAsync(entity)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> UpdateMenuAsync(DocumentUpdateMenuInput input)
+        public async Task<IResultOutput> UpdateMenuAsync(DocumentUpdateMenuInput input)
         {
             var result = false;
             if (input != null && input.Id > 0)
@@ -122,10 +122,10 @@ namespace ZhonTai.Plate.Admin.Service.Document
                 result = (await _documentRepository.UpdateAsync(entity)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> UpdateContentAsync(DocumentUpdateContentInput input)
+        public async Task<IResultOutput> UpdateContentAsync(DocumentUpdateContentInput input)
         {
             var result = false;
             if (input != null && input.Id > 0)
@@ -135,10 +135,10 @@ namespace ZhonTai.Plate.Admin.Service.Document
                 result = (await _documentRepository.UpdateAsync(entity)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
             if (id > 0)
@@ -146,10 +146,10 @@ namespace ZhonTai.Plate.Admin.Service.Document
                 result = (await _documentRepository.DeleteAsync(m => m.Id == id)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> DeleteImageAsync(long documentId, string url)
+        public async Task<IResultOutput> DeleteImageAsync(long documentId, string url)
         {
             var result = false;
             if (documentId > 0 && url.NotNull())
@@ -157,16 +157,16 @@ namespace ZhonTai.Plate.Admin.Service.Document
                 result = (await _documentImageRepository.DeleteAsync(m => m.DocumentId == documentId && m.Url == url)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _documentRepository.SoftDeleteAsync(id);
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> GetPlainListAsync()
+        public async Task<IResultOutput> GetPlainListAsync()
         {
             var documents = await _documentRepository.Select
                 .OrderBy(a => a.ParentId)
@@ -184,7 +184,7 @@ namespace ZhonTai.Plate.Admin.Service.Document
                     a.Opened
                 });
 
-            return ResponseOutput.Ok(menus);
+            return ResultOutput.Ok(menus);
         }
     }
 }

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

@@ -22,7 +22,7 @@ namespace ZhonTai.Plate.Admin.Service.LoginLog
             _loginLogRepository = loginLogRepository;
         }
 
-        public async Task<IResponseOutput> PageAsync(PageInput<LoginLogEntity> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<LoginLogEntity> input)
         {
             var userName = input.Filter?.CreatedUserName;
 
@@ -39,12 +39,12 @@ namespace ZhonTai.Plate.Admin.Service.LoginLog
                 Total = total
             };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput<long>> AddAsync(LoginLogAddInput input)
+        public async Task<IResultOutput<long>> AddAsync(LoginLogAddInput input)
         {
-            var res = new ResponseOutput<long>();
+            var res = new ResultOutput<long>();
 
             input.IP = IPHelper.GetIP(_context?.HttpContext?.Request);
 

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

@@ -22,7 +22,7 @@ namespace ZhonTai.Plate.Admin.Service.OprationLog
             _oprationLogRepository = oprationLogRepository;
         }
 
-        public async Task<IResponseOutput> PageAsync(PageInput<OprationLogEntity> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<OprationLogEntity> input)
         {
             var userName = input.Filter?.CreatedUserName;
 
@@ -39,10 +39,10 @@ namespace ZhonTai.Plate.Admin.Service.OprationLog
                 Total = total
             };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> AddAsync(OprationLogAddInput input)
+        public async Task<IResultOutput> AddAsync(OprationLogAddInput input)
         {
             string ua = _context.HttpContext.Request.Headers["User-Agent"];
             var client = UAParser.Parser.GetDefault().Parse(ua);
@@ -59,7 +59,7 @@ namespace ZhonTai.Plate.Admin.Service.OprationLog
             var entity = Mapper.Map<OprationLogEntity>(input);
             var id = (await _oprationLogRepository.InsertAsync(entity)).Id;
 
-            return ResponseOutput.Result(id > 0);
+            return ResultOutput.Result(id > 0);
         }
     }
 }

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

@@ -5,13 +5,12 @@ using System.Threading.Tasks;
 using Microsoft.Extensions.DependencyInjection;
 using ZhonTai.Common.Attributes;
 using ZhonTai.Common.Domain.Entities;
-using ZhonTai.Tools.Cache;
 using ZhonTai.Common.Configs;
 using ZhonTai.Common.Domain.Dto;
+using ZhonTai.Common.Domain.Repositories;
 using ZhonTai.Plate.Admin.Service.Permission.Input;
 using ZhonTai.Plate.Admin.Service.Permission.Output;
 using ZhonTai.Plate.Admin.Domain.Permission;
-using ZhonTai.Common.Domain.Repositories;
 using ZhonTai.Plate.Admin.Domain.RolePermission;
 using ZhonTai.Plate.Admin.Domain.TenantPermission;
 using ZhonTai.Plate.Admin.Domain.UserRole;
@@ -20,6 +19,7 @@ using ZhonTai.Plate.Admin.Domain.Role;
 using ZhonTai.Plate.Admin.Domain.Api;
 using ZhonTai.Plate.Admin.Domain.User;
 using ZhonTai.Plate.Admin.Domain;
+using ZhonTai.Plate.Admin.Service.Contracts;
 
 namespace ZhonTai.Plate.Admin.Service.Permission
 {
@@ -70,32 +70,32 @@ namespace ZhonTai.Plate.Admin.Service.Permission
             }
         }
 
-        public async Task<IResponseOutput> GetAsync(long id)
+        public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _permissionRepository.GetAsync(id);
 
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> GetGroupAsync(long id)
+        public async Task<IResultOutput> GetGroupAsync(long id)
         {
             var result = await _permissionRepository.GetAsync<PermissionGetGroupOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> GetMenuAsync(long id)
+        public async Task<IResultOutput> GetMenuAsync(long id)
         {
             var result = await _permissionRepository.GetAsync<PermissionGetMenuOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> GetApiAsync(long id)
+        public async Task<IResultOutput> GetApiAsync(long id)
         {
             var result = await _permissionRepository.GetAsync<PermissionGetApiOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> GetDotAsync(long id)
+        public async Task<IResultOutput> GetDotAsync(long id)
         {
             var entity = await _permissionRepository.Select
             .WhereDynamic(id)
@@ -104,10 +104,10 @@ namespace ZhonTai.Plate.Admin.Service.Permission
 
             var output = Mapper.Map<PermissionGetDotOutput>(entity);
 
-            return ResponseOutput.Ok(output);
+            return ResultOutput.Ok(output);
         }
 
-        public async Task<IResponseOutput> GetListAsync(string key, DateTime? start, DateTime? end)
+        public async Task<IResultOutput> GetListAsync(string key, DateTime? start, DateTime? end)
         {
             if (end.HasValue)
             {
@@ -121,35 +121,35 @@ namespace ZhonTai.Plate.Admin.Service.Permission
                 .OrderBy(a => a.Sort)
                 .ToListAsync(a=> new PermissionListOutput { ApiPaths = string.Join(";", _permissionApiRepository.Where(b=>b.PermissionId == a.Id).ToList(b => b.Api.Path)) });
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> AddGroupAsync(PermissionAddGroupInput input)
+        public async Task<IResultOutput> AddGroupAsync(PermissionAddGroupInput input)
         {
             var entity = Mapper.Map<PermissionEntity>(input);
             var id = (await _permissionRepository.InsertAsync(entity)).Id;
 
-            return ResponseOutput.Ok(id > 0);
+            return ResultOutput.Ok(id > 0);
         }
 
-        public async Task<IResponseOutput> AddMenuAsync(PermissionAddMenuInput input)
+        public async Task<IResultOutput> AddMenuAsync(PermissionAddMenuInput input)
         {
             var entity = Mapper.Map<PermissionEntity>(input);
             var id = (await _permissionRepository.InsertAsync(entity)).Id;
 
-            return ResponseOutput.Ok(id > 0);
+            return ResultOutput.Ok(id > 0);
         }
 
-        public async Task<IResponseOutput> AddApiAsync(PermissionAddApiInput input)
+        public async Task<IResultOutput> AddApiAsync(PermissionAddApiInput input)
         {
             var entity = Mapper.Map<PermissionEntity>(input);
             var id = (await _permissionRepository.InsertAsync(entity)).Id;
 
-            return ResponseOutput.Ok(id > 0);
+            return ResultOutput.Ok(id > 0);
         }
 
         [Transaction]
-        public async Task<IResponseOutput> AddDotAsync(PermissionAddDotInput input)
+        public async Task<IResultOutput> AddDotAsync(PermissionAddDotInput input)
         {
             var entity = Mapper.Map<PermissionEntity>(input);
             var id = (await _permissionRepository.InsertAsync(entity)).Id;
@@ -160,10 +160,10 @@ namespace ZhonTai.Plate.Admin.Service.Permission
                 await _permissionApiRepository.InsertAsync(permissionApis);
             }
 
-            return ResponseOutput.Ok(id > 0);
+            return ResultOutput.Ok(id > 0);
         }
 
-        public async Task<IResponseOutput> UpdateGroupAsync(PermissionUpdateGroupInput input)
+        public async Task<IResultOutput> UpdateGroupAsync(PermissionUpdateGroupInput input)
         {
             var result = false;
             if (input != null && input.Id > 0)
@@ -173,10 +173,10 @@ namespace ZhonTai.Plate.Admin.Service.Permission
                 result = (await _permissionRepository.UpdateAsync(entity)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> UpdateMenuAsync(PermissionUpdateMenuInput input)
+        public async Task<IResultOutput> UpdateMenuAsync(PermissionUpdateMenuInput input)
         {
             var result = false;
             if (input != null && input.Id > 0)
@@ -186,10 +186,10 @@ namespace ZhonTai.Plate.Admin.Service.Permission
                 result = (await _permissionRepository.UpdateAsync(entity)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> UpdateApiAsync(PermissionUpdateApiInput input)
+        public async Task<IResultOutput> UpdateApiAsync(PermissionUpdateApiInput input)
         {
             var result = false;
             if (input != null && input.Id > 0)
@@ -199,21 +199,21 @@ namespace ZhonTai.Plate.Admin.Service.Permission
                 result = (await _permissionRepository.UpdateAsync(entity)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
         [Transaction]
-        public async Task<IResponseOutput> UpdateDotAsync(PermissionUpdateDotInput input)
+        public async Task<IResultOutput> UpdateDotAsync(PermissionUpdateDotInput input)
         {
             if (!(input?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var entity = await _permissionRepository.GetAsync(input.Id);
             if (!(entity?.Id > 0))
             {
-                return ResponseOutput.NotOk("权限点不存在!");
+                return ResultOutput.NotOk("权限点不存在!");
             }
 
             Mapper.Map(input, entity);
@@ -230,11 +230,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
             //清除用户权限缓存
             await ClearUserPermissionsAsync(new List<long> { entity.Id });
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
         [Transaction]
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             //递归查询所有权限点
             var ids = _permissionRepository.Select
@@ -251,10 +251,10 @@ namespace ZhonTai.Plate.Admin.Service.Permission
             //清除用户权限缓存
             await ClearUserPermissionsAsync(ids);
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             //递归查询所有权限点
             var ids = _permissionRepository.Select
@@ -268,17 +268,17 @@ namespace ZhonTai.Plate.Admin.Service.Permission
             //清除用户权限缓存
             await ClearUserPermissionsAsync(ids);
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
         [Transaction]
-        public async Task<IResponseOutput> AssignAsync(PermissionAssignInput input)
+        public async Task<IResultOutput> AssignAsync(PermissionAssignInput input)
         {
             //分配权限的时候判断角色是否存在
             var exists = await _roleRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(input.RoleId).AnyAsync();
             if (!exists)
             {
-                return ResponseOutput.NotOk("该角色不存在或已被删除!");
+                return ResultOutput.NotOk("该角色不存在或已被删除!");
             }
 
             //查询角色权限
@@ -323,11 +323,11 @@ namespace ZhonTai.Plate.Admin.Service.Permission
                 await Cache.DelAsync(string.Format(CacheKey.UserPermissions, userId));
             }
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
         [Transaction]
-        public async Task<IResponseOutput> SaveTenantPermissionsAsync(PermissionSaveTenantPermissionsInput input)
+        public async Task<IResultOutput> SaveTenantPermissionsAsync(PermissionSaveTenantPermissionsInput input)
         {
             //获得租户db
             var ib = ServiceProvider.GetRequiredService<IdleBus<IFreeSql>>();
@@ -371,10 +371,10 @@ namespace ZhonTai.Plate.Admin.Service.Permission
                 }
             }
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> GetPermissionList()
+        public async Task<IResultOutput> GetPermissionList()
         {
             var permissions = await _permissionRepository.Select
                 .WhereIf(_appConfig.Tenant && User.TenantType == TenantType.Tenant, a =>
@@ -400,25 +400,25 @@ namespace ZhonTai.Plate.Admin.Service.Permission
                     Apis = apis.Where(b => b.ParentId == a.Id).Select(b => new { b.Id, b.Label })
                 });
 
-            return ResponseOutput.Ok(menus);
+            return ResultOutput.Ok(menus);
         }
 
-        public async Task<IResponseOutput> GetRolePermissionList(long roleId = 0)
+        public async Task<IResultOutput> GetRolePermissionList(long roleId = 0)
         {
             var permissionIds = await _rolePermissionRepository
                 .Select.Where(d => d.RoleId == roleId)
                 .ToListAsync(a => a.PermissionId);
 
-            return ResponseOutput.Ok(permissionIds);
+            return ResultOutput.Ok(permissionIds);
         }
 
-        public async Task<IResponseOutput> GetTenantPermissionList(long tenantId)
+        public async Task<IResultOutput> GetTenantPermissionList(long tenantId)
         {
             var permissionIds = await _tenantPermissionRepository
                 .Select.Where(d => d.TenantId == tenantId)
                 .ToListAsync(a => a.PermissionId);
 
-            return ResponseOutput.Ok(permissionIds);
+            return ResultOutput.Ok(permissionIds);
         }
     }
 }

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

@@ -23,13 +23,13 @@ namespace ZhonTai.Plate.Admin.Service.Role
             _rolePermissionRepository = rolePermissionRepository;
         }
 
-        public async Task<IResponseOutput> GetAsync(long id)
+        public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _roleRepository.GetAsync<RoleGetOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> PageAsync(PageInput<RoleEntity> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<RoleEntity> input)
         {
             var key = input.Filter?.Name;
 
@@ -46,36 +46,36 @@ namespace ZhonTai.Plate.Admin.Service.Role
                 Total = total
             };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> AddAsync(RoleAddInput input)
+        public async Task<IResultOutput> AddAsync(RoleAddInput input)
         {
             var entity = Mapper.Map<RoleEntity>(input);
             var id = (await _roleRepository.InsertAsync(entity)).Id;
 
-            return ResponseOutput.Result(id > 0);
+            return ResultOutput.Result(id > 0);
         }
 
-        public async Task<IResponseOutput> UpdateAsync(RoleUpdateInput input)
+        public async Task<IResultOutput> UpdateAsync(RoleUpdateInput input)
         {
             if (!(input?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var entity = await _roleRepository.GetAsync(input.Id);
             if (!(entity?.Id > 0))
             {
-                return ResponseOutput.NotOk("角色不存在!");
+                return ResultOutput.NotOk("角色不存在!");
             }
 
             Mapper.Map(input, entity);
             await _roleRepository.UpdateAsync(entity);
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
             if (id > 0)
@@ -83,23 +83,23 @@ namespace ZhonTai.Plate.Admin.Service.Role
                 result = (await _roleRepository.DeleteAsync(m => m.Id == id)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _roleRepository.SoftDeleteAsync(id);
             await _rolePermissionRepository.DeleteAsync(a => a.RoleId == id);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids)
+        public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             var result = await _roleRepository.SoftDeleteAsync(ids);
             await _rolePermissionRepository.DeleteAsync(a => ids.Contains(a.RoleId));
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
     }
 }

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

@@ -37,13 +37,13 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
             _rolePermissionRepository = rolePermissionRepository;
         }
 
-        public async Task<IResponseOutput> GetAsync(long id)
+        public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _tenantRepository.GetAsync<TenantGetOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> PageAsync(PageInput<TenantEntity> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<TenantEntity> input)
         {
             var key = input.Filter?.Name;
 
@@ -60,11 +60,11 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
                 Total = total
             };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
         [Transaction]
-        public async Task<IResponseOutput> AddAsync(TenantAddInput input)
+        public async Task<IResultOutput> AddAsync(TenantAddInput input)
         {
             var entity = Mapper.Map<TenantEntity>(input);
             var tenant = await _tenantRepository.InsertAsync(entity);
@@ -89,29 +89,29 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
             tenant.RoleId = role.Id;
             await _tenantRepository.UpdateAsync(tenant);
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> UpdateAsync(TenantUpdateInput input)
+        public async Task<IResultOutput> UpdateAsync(TenantUpdateInput input)
         {
             if (!(input?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var entity = await _tenantRepository.GetAsync(input.Id);
             if (!(entity?.Id > 0))
             {
-                return ResponseOutput.NotOk("租户不存在!");
+                return ResultOutput.NotOk("租户不存在!");
             }
 
             Mapper.Map(input, entity);
             await _tenantRepository.UpdateAsync(entity);
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
         [Transaction]
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             //删除角色权限
             await _rolePermissionRepository.Where(a => a.Role.TenantId == id).DisableGlobalFilter("Tenant").ToDelete().ExecuteAffrowsAsync();
@@ -128,11 +128,11 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
             //删除租户
             await _tenantRepository.DeleteAsync(id);
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
         [Transaction]
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             //删除用户
             await _userRepository.SoftDeleteAsync(a => a.TenantId == id, "Tenant");
@@ -143,11 +143,11 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
             //删除租户
             var result = await _tenantRepository.SoftDeleteAsync(id);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
         [Transaction]
-        public async Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids)
+        public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             //删除用户
             await _userRepository.SoftDeleteAsync(a => ids.Contains(a.TenantId.Value), "Tenant");
@@ -158,7 +158,7 @@ namespace ZhonTai.Plate.Admin.Service.Tenant
             //删除租户
             var result = await _tenantRepository.SoftDeleteAsync(ids);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
     }
 }

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

@@ -2,7 +2,6 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
 using ZhonTai.Common.Attributes;
-using ZhonTai.Tools.Cache;
 using ZhonTai.Common.Configs;
 using ZhonTai.Common.Domain.Repositories;
 using ZhonTai.Common.Helpers;
@@ -14,6 +13,7 @@ using ZhonTai.Plate.Admin.Domain.RolePermission;
 using ZhonTai.Plate.Admin.Domain.Tenant;
 using ZhonTai.Plate.Admin.Domain.User;
 using ZhonTai.Plate.Admin.Domain.UserRole;
+using ZhonTai.Plate.Admin.Service.Contracts;
 using ZhonTai.Plate.Admin.Service.Auth.Output;
 using ZhonTai.Plate.Admin.Service.User.Input;
 using ZhonTai.Plate.Admin.Service.User.Output;
@@ -48,9 +48,9 @@ namespace ZhonTai.Plate.Admin.Service.User
             _apiRepository = apiRepository;
         }
 
-        public async Task<ResponseOutput<AuthLoginOutput>> GetLoginUserAsync(long id)
+        public async Task<ResultOutput<AuthLoginOutput>> GetLoginUserAsync(long id)
         {
-            var output = new ResponseOutput<AuthLoginOutput>();
+            var output = new ResultOutput<AuthLoginOutput>();
             var entityDto = await _userRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(id).ToOneAsync<AuthLoginOutput>();
             if (_appConfig.Tenant && entityDto?.TenantId.Value > 0)
             {
@@ -64,7 +64,7 @@ namespace ZhonTai.Plate.Admin.Service.User
             return output.Ok(entityDto);
         }
 
-        public async Task<IResponseOutput> GetAsync(long id)
+        public async Task<IResultOutput> GetAsync(long id)
         {
             var entity = await _userRepository.Select
             .WhereDynamic(id)
@@ -75,25 +75,25 @@ namespace ZhonTai.Plate.Admin.Service.User
 
             var roles = await _roleRepository.Select.ToListAsync(a => new { a.Id, a.Name });
 
-            return ResponseOutput.Ok(new { Form = entityDto, Select = new { roles } });
+            return ResultOutput.Ok(new { Form = entityDto, Select = new { roles } });
         }
 
-        public async Task<IResponseOutput> GetSelectAsync()
+        public async Task<IResultOutput> GetSelectAsync()
         {
             var roles = await _roleRepository.Select.ToListAsync(a => new { a.Id, a.Name });
 
-            return ResponseOutput.Ok(new { Select = new { roles } });
+            return ResultOutput.Ok(new { Select = new { roles } });
         }
 
-        public async Task<IResponseOutput> GetBasicAsync()
+        public async Task<IResultOutput> GetBasicAsync()
         {
             if (!(User?.Id > 0))
             {
-                return ResponseOutput.NotOk("未登录!");
+                return ResultOutput.NotOk("未登录!");
             }
 
             var data = await _userRepository.GetAsync<UserUpdateBasicInput>(User.Id);
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
         public async Task<IList<UserPermissionsOutput>> GetPermissionsAsync()
@@ -111,7 +111,7 @@ namespace ZhonTai.Plate.Admin.Service.User
             return result;
         }
 
-        public async Task<IResponseOutput> PageAsync(PageInput<UserEntity> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<UserEntity> input)
         {
             var list = await _userRepository.Select
             .WhereDynamicFilter(input.DynamicFilter)
@@ -127,11 +127,11 @@ namespace ZhonTai.Plate.Admin.Service.User
                 Total = total
             };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
         [Transaction]
-        public async Task<IResponseOutput> AddAsync(UserAddInput input)
+        public async Task<IResultOutput> AddAsync(UserAddInput input)
         {
             if (input.Password.IsNull())
             {
@@ -145,7 +145,7 @@ namespace ZhonTai.Plate.Admin.Service.User
 
             if (!(user?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             if (input.RoleIds != null && input.RoleIds.Any())
@@ -154,21 +154,21 @@ namespace ZhonTai.Plate.Admin.Service.User
                 await _userRoleRepository.InsertAsync(roles);
             }
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
         [Transaction]
-        public async Task<IResponseOutput> UpdateAsync(UserUpdateInput input)
+        public async Task<IResultOutput> UpdateAsync(UserUpdateInput input)
         {
             if (!(input?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var user = await _userRepository.GetAsync(input.Id);
             if (!(user?.Id > 0))
             {
-                return ResponseOutput.NotOk("用户不存在!");
+                return ResultOutput.NotOk("用户不存在!");
             }
 
             Mapper.Map(input, user);
@@ -182,10 +182,10 @@ namespace ZhonTai.Plate.Admin.Service.User
                 await _userRoleRepository.InsertAsync(roles);
             }
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> UpdateBasicAsync(UserUpdateBasicInput input)
+        public async Task<IResultOutput> UpdateBasicAsync(UserUpdateBasicInput input)
         {
             var entity = await _userRepository.GetAsync(input.Id);
             entity = Mapper.Map(input, entity);
@@ -194,21 +194,21 @@ namespace ZhonTai.Plate.Admin.Service.User
             //清除用户缓存
             await Cache.DelAsync(string.Format(CacheKey.UserInfo, input.Id));
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> ChangePasswordAsync(UserChangePasswordInput input)
+        public async Task<IResultOutput> ChangePasswordAsync(UserChangePasswordInput input)
         {
             if (input.ConfirmPassword != input.NewPassword)
             {
-                return ResponseOutput.NotOk("新密码和确认密码不一致!");
+                return ResultOutput.NotOk("新密码和确认密码不一致!");
             }
 
             var entity = await _userRepository.GetAsync(input.Id);
             var oldPassword = MD5Encrypt.Encrypt32(input.OldPassword);
             if (oldPassword != entity.Password)
             {
-                return ResponseOutput.NotOk("旧密码不正确!");
+                return ResultOutput.NotOk("旧密码不正确!");
             }
 
             input.Password = MD5Encrypt.Encrypt32(input.NewPassword);
@@ -216,10 +216,10 @@ namespace ZhonTai.Plate.Admin.Service.User
             entity = Mapper.Map(input, entity);
             var result = (await _userRepository.UpdateAsync(entity)) > 0;
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
             if (id > 0)
@@ -227,25 +227,25 @@ namespace ZhonTai.Plate.Admin.Service.User
                 result = (await _userRepository.DeleteAsync(m => m.Id == id)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
         [Transaction]
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _userRepository.SoftDeleteAsync(id);
             await _userRoleRepository.DeleteAsync(a => a.UserId == id);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
         [Transaction]
-        public async Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids)
+        public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             var result = await _userRepository.SoftDeleteAsync(ids);
             await _userRoleRepository.DeleteAsync(a => ids.Contains(a.UserId));
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
     }
 }

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

@@ -18,13 +18,13 @@ namespace ZhonTai.Plate.Admin.Service.View
             _viewRepository = moduleRepository;
         }
 
-        public async Task<IResponseOutput> GetAsync(long id)
+        public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _viewRepository.GetAsync<ViewGetOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> ListAsync(string key)
+        public async Task<IResultOutput> GetListAsync(string key)
         {
             var data = await _viewRepository
                 .WhereIf(key.NotNull(), a => a.Path.Contains(key) || a.Label.Contains(key))
@@ -32,10 +32,10 @@ namespace ZhonTai.Plate.Admin.Service.View
                 .OrderBy(a => a.Sort)
                 .ToListAsync<ViewListOutput>();
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> PageAsync(PageInput<ViewEntity> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<ViewEntity> input)
         {
             var key = input.Filter?.Label;
 
@@ -53,36 +53,36 @@ namespace ZhonTai.Plate.Admin.Service.View
                 Total = total
             };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> AddAsync(ViewAddInput input)
+        public async Task<IResultOutput> AddAsync(ViewAddInput input)
         {
             var entity = Mapper.Map<ViewEntity>(input);
             var id = (await _viewRepository.InsertAsync(entity)).Id;
 
-            return ResponseOutput.Result(id > 0);
+            return ResultOutput.Result(id > 0);
         }
 
-        public async Task<IResponseOutput> UpdateAsync(ViewUpdateInput input)
+        public async Task<IResultOutput> UpdateAsync(ViewUpdateInput input)
         {
             if (!(input?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var entity = await _viewRepository.GetAsync(input.Id);
             if (!(entity?.Id > 0))
             {
-                return ResponseOutput.NotOk("视图不存在!");
+                return ResultOutput.NotOk("视图不存在!");
             }
 
             Mapper.Map(input, entity);
             await _viewRepository.UpdateAsync(entity);
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
             if (id > 0)
@@ -90,25 +90,25 @@ namespace ZhonTai.Plate.Admin.Service.View
                 result = (await _viewRepository.DeleteAsync(m => m.Id == id)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _viewRepository.SoftDeleteAsync(id);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids)
+        public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             var result = await _viewRepository.SoftDeleteAsync(ids);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
         [Transaction]
-        public async Task<IResponseOutput> SyncAsync(ViewSyncInput input)
+        public async Task<IResultOutput> SyncAsync(ViewSyncInput input)
         {
             //查询所有视图
             var views = await _viewRepository.Select.ToListAsync();
@@ -182,7 +182,7 @@ namespace ZhonTai.Plate.Admin.Service.View
             }
             
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
     }
 }

+ 1 - 1
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Domain/ZhonTai.Plate.Personnel.Domain.csproj

@@ -15,7 +15,7 @@
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <DocumentationFile></DocumentationFile>
+    <DocumentationFile>F:\zhontai\Admin\src\plates\ZhonTai.Plate.Personal\ZhonTai.Plate.Personnel.Domain\ZhonTai.Plate.Personnel.Domain.xml</DocumentationFile>
     <NoWarn>1701;1702;1591</NoWarn>
   </PropertyGroup>
 

+ 378 - 0
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Domain/ZhonTai.Plate.Personnel.Domain.xml

@@ -0,0 +1,378 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ZhonTai.Plate.Personnel.Domain</name>
+    </assembly>
+    <members>
+        <member name="T:ZhonTai.Plate.Personnel.Domain.EmployeeOrganizationEntity">
+            <summary>
+            员工附属部门
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.EmployeeOrganizationEntity.EmployeeId">
+            <summary>
+            员工Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.EmployeeOrganizationEntity.Employee">
+            <summary>
+            员工
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.EmployeeOrganizationEntity.OrganizationId">
+            <summary>
+            部门Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.EmployeeOrganizationEntity.Organization">
+            <summary>
+            部门
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity">
+            <summary>
+            员工
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.UserId">
+            <summary>
+            用户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.Name">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.Sex">
+            <summary>
+            性别
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.Code">
+            <summary>
+            工号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.OrganizationId">
+            <summary>
+            主属部门Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.PrimaryEmployeeId">
+            <summary>
+            主管Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.PrimaryEmployee">
+            <summary>
+            主管
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.PositionId">
+            <summary>
+            职位Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.Phone">
+            <summary>
+            手机号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.Email">
+            <summary>
+            邮箱
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity.EntryTime">
+            <summary>
+            入职时间
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput">
+            <summary>
+            员工数据导出
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.Id">
+            <summary>
+            员工Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.UserId">
+            <summary>
+            用户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.Name">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.Sex">
+            <summary>
+            性别
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.Code">
+            <summary>
+            工号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.OrganizationId">
+            <summary>
+            主属部门Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.PrimaryEmployeeId">
+            <summary>
+            主管Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.PositionId">
+            <summary>
+            职位Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.Phone">
+            <summary>
+            手机号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.Email">
+            <summary>
+            邮箱
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Employee.Output.EmployeeDataOutput.HireDate">
+            <summary>
+            入职时间
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Domain.Employee.SexEnum">
+            <summary>
+            性别
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Personnel.Domain.Employee.SexEnum.Unknown">
+            <summary>
+            未知
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Personnel.Domain.Employee.SexEnum.Male">
+            <summary>
+            男
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Plate.Personnel.Domain.Employee.SexEnum.Female">
+            <summary>
+            女
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity">
+            <summary>
+            组织架构
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity.ParentId">
+            <summary>
+            父级
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity.Value">
+            <summary>
+            值
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity.PrimaryEmployeeId">
+            <summary>
+            主管Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity.PrimaryEmployee">
+            <summary>
+            主管
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity.EmployeeCount">
+            <summary>
+            员工人数
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.OrganizationEntity.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Domain.Organization.Output.OrganizationDataOutput">
+            <summary>
+            组织机构导出
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.Output.OrganizationDataOutput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.Output.OrganizationDataOutput.Id">
+            <summary>
+            组织机构Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.Output.OrganizationDataOutput.ParentId">
+            <summary>
+            上级组织机构
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.Output.OrganizationDataOutput.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.Output.OrganizationDataOutput.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.Output.OrganizationDataOutput.Value">
+            <summary>
+            值
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.Output.OrganizationDataOutput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.Output.OrganizationDataOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Organization.Output.OrganizationDataOutput.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Domain.Position.Output.PositionDataOutput">
+            <summary>
+            岗位导出
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.Output.PositionDataOutput.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.Output.PositionDataOutput.Id">
+            <summary>
+            用户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.Output.PositionDataOutput.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.Output.PositionDataOutput.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.Output.PositionDataOutput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.Output.PositionDataOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.Output.PositionDataOutput.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Domain.Position.PositionEntity">
+            <summary>
+            职位
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.PositionEntity.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.PositionEntity.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.PositionEntity.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.PositionEntity.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.PositionEntity.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Domain.Position.PositionEntity.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
+    </members>
+</doc>

+ 7 - 7
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.HttpApi/Controllers/EmployeeController.cs

@@ -26,7 +26,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> Get([BindRequired] long id)
+        public async Task<IResultOutput> Get([BindRequired] long id)
         {
             return await _employeeService.GetAsync(id);
         }
@@ -38,9 +38,9 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <returns></returns>
         [HttpPost]
         //[ResponseCache(Duration = 60)]
-        public async Task<IResponseOutput> GetPage(PageInput<EmployeeEntity> input)
+        public async Task<IResultOutput> GetPage(PageInput<EmployeeEntity> input)
         {
-            return await _employeeService.PageAsync(input);
+            return await _employeeService.GetPageAsync(input);
         }
 
         /// <summary>
@@ -49,7 +49,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Add(EmployeeAddInput input)
+        public async Task<IResultOutput> Add(EmployeeAddInput input)
         {
             return await _employeeService.AddAsync(input);
         }
@@ -60,7 +60,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> Update(EmployeeUpdateInput input)
+        public async Task<IResultOutput> Update(EmployeeUpdateInput input)
         {
             return await _employeeService.UpdateAsync(input);
         }
@@ -71,7 +71,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _employeeService.SoftDeleteAsync(id);
         }
@@ -82,7 +82,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="ids"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
+        public async Task<IResultOutput> BatchSoftDelete(long[] ids)
         {
             return await _employeeService.BatchSoftDeleteAsync(ids);
         }

+ 5 - 5
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.HttpApi/Controllers/OrganizationController.cs

@@ -24,7 +24,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> Get(long id)
+        public async Task<IResultOutput> Get(long id)
         {
             return await _organizationService.GetAsync(id);
         }
@@ -35,7 +35,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="key"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> GetList(string key)
+        public async Task<IResultOutput> GetList(string key)
         {
             return await _organizationService.GetListAsync(key);
         }
@@ -46,7 +46,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Add(OrganizationAddInput input)
+        public async Task<IResultOutput> Add(OrganizationAddInput input)
         {
             return await _organizationService.AddAsync(input);
         }
@@ -57,7 +57,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> Update(OrganizationUpdateInput input)
+        public async Task<IResultOutput> Update(OrganizationUpdateInput input)
         {
             return await _organizationService.UpdateAsync(input);
         }
@@ -68,7 +68,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _organizationService.SoftDeleteAsync(id);
         }

+ 7 - 7
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.HttpApi/Controllers/PositionController.cs

@@ -25,7 +25,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpGet]
-        public async Task<IResponseOutput> Get(long id)
+        public async Task<IResultOutput> Get(long id)
         {
             return await _positionService.GetAsync(id);
         }
@@ -36,9 +36,9 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> GetPage(PageInput<PositionEntity> model)
+        public async Task<IResultOutput> GetPage(PageInput<PositionEntity> model)
         {
-            return await _positionService.PageAsync(model);
+            return await _positionService.GetPageAsync(model);
         }
 
         /// <summary>
@@ -47,7 +47,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResponseOutput> Add(PositionAddInput input)
+        public async Task<IResultOutput> Add(PositionAddInput input)
         {
             return await _positionService.AddAsync(input);
         }
@@ -58,7 +58,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> Update(PositionUpdateInput input)
+        public async Task<IResultOutput> Update(PositionUpdateInput input)
         {
             return await _positionService.UpdateAsync(input);
         }
@@ -69,7 +69,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="id"></param>
         /// <returns></returns>
         [HttpDelete]
-        public async Task<IResponseOutput> SoftDelete(long id)
+        public async Task<IResultOutput> SoftDelete(long id)
         {
             return await _positionService.SoftDeleteAsync(id);
         }
@@ -80,7 +80,7 @@ namespace ZhonTai.Plate.Personnel.HttpApi.Controllers
         /// <param name="ids"></param>
         /// <returns></returns>
         [HttpPut]
-        public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
+        public async Task<IResultOutput> BatchSoftDelete(long[] ids)
         {
             return await _positionService.BatchSoftDeleteAsync(ids);
         }

+ 4 - 0
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.HttpApi/ZhonTai.Plate.Personnel.HttpApi.csproj

@@ -4,6 +4,10 @@
     <TargetFramework>net5.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
+    <DocumentationFile>F:\zhontai\Admin\src\plates\ZhonTai.Plate.Personal\ZhonTai.Plate.Personnel.HttpApi\ZhonTai.Plate.Personnel.HttpApi.xml</DocumentationFile>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\..\ZhonTai.Plate.Admin\ZhonTai.Plate.Admin.HttpApi.Shared\ZhonTai.Plate.Admin.HttpApi.Shared.csproj" />
     <ProjectReference Include="..\ZhonTai.Plate.Personnel.Service.Contracts\ZhonTai.Plate.Personnel.Service.Contracts.csproj" />

+ 147 - 0
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.HttpApi/ZhonTai.Plate.Personnel.HttpApi.xml

@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ZhonTai.Plate.Personnel.HttpApi</name>
+    </assembly>
+    <members>
+        <member name="T:ZhonTai.Plate.Personnel.HttpApi.Controllers.AreaController">
+            <summary>
+            域控制器
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.HttpApi.Controllers.EmployeeController">
+            <summary>
+            员工管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.EmployeeController.Get(System.Int64)">
+            <summary>
+            查询单条员工
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.EmployeeController.GetPage(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Personnel.Domain.Employee.EmployeeEntity})">
+            <summary>
+            查询分页员工
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.EmployeeController.Add(ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput)">
+            <summary>
+            新增员工
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.EmployeeController.Update(ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeUpdateInput)">
+            <summary>
+            修改员工
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.EmployeeController.SoftDelete(System.Int64)">
+            <summary>
+            删除员工
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.EmployeeController.BatchSoftDelete(System.Int64[])">
+            <summary>
+            批量删除员工
+            </summary>
+            <param name="ids"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.HttpApi.Controllers.OrganizationController">
+            <summary>
+            组织架构
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.OrganizationController.Get(System.Int64)">
+            <summary>
+            查询单条组织架构
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.OrganizationController.GetList(System.String)">
+            <summary>
+            查询组织架构列表
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.OrganizationController.Add(ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationAddInput)">
+            <summary>
+            新增组织架构
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.OrganizationController.Update(ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationUpdateInput)">
+            <summary>
+            修改组织架构
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.OrganizationController.SoftDelete(System.Int64)">
+            <summary>
+            删除组织架构
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.HttpApi.Controllers.PositionController">
+            <summary>
+            职位管理
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.PositionController.Get(System.Int64)">
+            <summary>
+            查询单条职位
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.PositionController.GetPage(ZhonTai.Common.Domain.Dto.PageInput{ZhonTai.Plate.Personnel.Domain.Position.PositionEntity})">
+            <summary>
+            查询分页职位
+            </summary>
+            <param name="model"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.PositionController.Add(ZhonTai.Plate.Personnel.Service.Position.Input.PositionAddInput)">
+            <summary>
+            新增职位
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.PositionController.Update(ZhonTai.Plate.Personnel.Service.Position.Input.PositionUpdateInput)">
+            <summary>
+            修改职位
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.PositionController.SoftDelete(System.Int64)">
+            <summary>
+            删除职位
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Plate.Personnel.HttpApi.Controllers.PositionController.BatchSoftDelete(System.Int64[])">
+            <summary>
+            批量删除职位
+            </summary>
+            <param name="ids"></param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>

+ 8 - 8
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service.Contracts/Employee/IEmployeeService.cs

@@ -1,7 +1,7 @@
+using System.Threading.Tasks;
 using ZhonTai.Common.Domain.Dto;
 using ZhonTai.Plate.Personnel.Service.Employee.Input;
 using ZhonTai.Plate.Personnel.Service.Employee.Output;
-using System.Threading.Tasks;
 using ZhonTai.Plate.Personnel.Domain.Employee;
 
 namespace ZhonTai.Plate.Personnel.Service.Employee
@@ -11,18 +11,18 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
     /// </summary>
     public interface IEmployeeService
     {
-        Task<ResponseOutput<EmployeeGetOutput>> GetAsync(long id);
+        Task<ResultOutput<EmployeeGetOutput>> GetAsync(long id);
 
-        Task<IResponseOutput> PageAsync(PageInput<EmployeeEntity> input);
+        Task<IResultOutput> GetPageAsync(PageInput<EmployeeEntity> input);
 
-        Task<IResponseOutput> AddAsync(EmployeeAddInput input);
+        Task<IResultOutput> AddAsync(EmployeeAddInput input);
 
-        Task<IResponseOutput> UpdateAsync(EmployeeUpdateInput input);
+        Task<IResultOutput> UpdateAsync(EmployeeUpdateInput input);
 
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
 
-        Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids);
+        Task<IResultOutput> BatchSoftDeleteAsync(long[] ids);
     }
 }

+ 6 - 6
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service.Contracts/Organization/IOrganizationService.cs

@@ -6,16 +6,16 @@ namespace ZhonTai.Plate.Personnel.Service.Organization
 {
     public partial interface IOrganizationService
     {
-        Task<IResponseOutput> GetAsync(long id);
+        Task<IResultOutput> GetAsync(long id);
 
-        Task<IResponseOutput> GetListAsync(string key);
+        Task<IResultOutput> GetListAsync(string key);
 
-        Task<IResponseOutput> AddAsync(OrganizationAddInput input);
+        Task<IResultOutput> AddAsync(OrganizationAddInput input);
 
-        Task<IResponseOutput> UpdateAsync(OrganizationUpdateInput input);
+        Task<IResultOutput> UpdateAsync(OrganizationUpdateInput input);
 
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
     }
 }

+ 7 - 7
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service.Contracts/Position/IPositionService.cs

@@ -7,18 +7,18 @@ namespace ZhonTai.Plate.Personnel.Service.Position
 {
     public interface IPositionService
     {
-        Task<IResponseOutput> GetAsync(long id);
+        Task<IResultOutput> GetAsync(long id);
 
-        Task<IResponseOutput> PageAsync(PageInput<PositionEntity> input);
+        Task<IResultOutput> GetPageAsync(PageInput<PositionEntity> input);
 
-        Task<IResponseOutput> AddAsync(PositionAddInput input);
+        Task<IResultOutput> AddAsync(PositionAddInput input);
 
-        Task<IResponseOutput> UpdateAsync(PositionUpdateInput input);
+        Task<IResultOutput> UpdateAsync(PositionUpdateInput input);
 
-        Task<IResponseOutput> DeleteAsync(long id);
+        Task<IResultOutput> DeleteAsync(long id);
 
-        Task<IResponseOutput> SoftDeleteAsync(long id);
+        Task<IResultOutput> SoftDeleteAsync(long id);
 
-        Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids);
+        Task<IResultOutput> BatchSoftDeleteAsync(long[] ids);
     }
 }

+ 4 - 0
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service.Contracts/ZhonTai.Plate.Personnel.Service.Contracts.csproj

@@ -5,6 +5,10 @@
     <RootNamespace>ZhonTai.Plate.Personnel.Service</RootNamespace>
   </PropertyGroup>
 
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
+    <DocumentationFile>F:\zhontai\Admin\src\plates\ZhonTai.Plate.Personal\ZhonTai.Plate.Personnel.Service.Contracts\ZhonTai.Plate.Personnel.Service.Contracts.xml</DocumentationFile>
+  </PropertyGroup>
+
     <ItemGroup>
 	    <PackageReference Include="Mapster" Version="7.2.0" />
     </ItemGroup>

+ 318 - 0
src/plates/ZhonTai.Plate.Personal/ZhonTai.Plate.Personnel.Service.Contracts/ZhonTai.Plate.Personnel.Service.Contracts.xml

@@ -0,0 +1,318 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ZhonTai.Plate.Personnel.Service.Contracts</name>
+    </assembly>
+    <members>
+        <member name="T:ZhonTai.Plate.Personnel.Service.Employee.IEmployeeService">
+            <summary>
+            员工服务
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput.UserId">
+            <summary>
+            用户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput.Name">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput.Sex">
+            <summary>
+            性别
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput.Code">
+            <summary>
+            工号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput.OrganizationId">
+            <summary>
+            主属部门Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput.OrganizationIds">
+            <summary>
+            附属部门
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput.PositionId">
+            <summary>
+            职位Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput.Phone">
+            <summary>
+            手机号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput.Email">
+            <summary>
+            邮箱
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeAddInput.EntryTime">
+            <summary>
+            入职时间
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeUpdateInput">
+            <summary>
+            修改
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeUpdateInput.Id">
+            <summary>
+            编号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Input.EmployeeUpdateInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Output.EmployeeGetOutput.OrganizationName">
+            <summary>
+            主属部门
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Output.EmployeeGetOutput.OrganizationNames">
+            <summary>
+            附属部门
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Output.EmployeeGetOutput.PositionName">
+            <summary>
+            职位
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Output.EmployeeListOutput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Output.EmployeeListOutput.Name">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Output.EmployeeListOutput.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Output.EmployeeListOutput.UserName">
+            <summary>
+            账号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Output.EmployeeListOutput.OrganizationName">
+            <summary>
+            主属部门
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Output.EmployeeListOutput.OrganizationNames">
+            <summary>
+            附属部门
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Output.EmployeeListOutput.PositionName">
+            <summary>
+            职位
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Employee.Output.EmployeeListOutput.Phone">
+            <summary>
+            手机号
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Service.Employee.MapConfig">
+            <summary>
+            映射配置
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationAddInput.ParentId">
+            <summary>
+            父级
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationAddInput.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationAddInput.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationAddInput.Value">
+            <summary>
+            值
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationAddInput.PrimaryUserId">
+            <summary>
+            主管
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationAddInput.EmployeeCount">
+            <summary>
+            员工人数
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationAddInput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationAddInput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationUpdateInput">
+            <summary>
+            修改
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationUpdateInput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Input.OrganizationUpdateInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Output.OrganizationListOutput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Output.OrganizationListOutput.ParentId">
+            <summary>
+            父级
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Output.OrganizationListOutput.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Output.OrganizationListOutput.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Output.OrganizationListOutput.Value">
+            <summary>
+            值
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Output.OrganizationListOutput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Output.OrganizationListOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Organization.Output.OrganizationListOutput.CreatedTime">
+            <summary>
+            创建时间
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Service.Position.Input.PositionAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Input.PositionAddInput.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Input.PositionAddInput.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Input.PositionAddInput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Input.PositionAddInput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Plate.Personnel.Service.Position.Input.PositionUpdateInput">
+            <summary>
+            修改
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Input.PositionUpdateInput.Id">
+            <summary>
+            编号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Input.PositionUpdateInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Output.PositionListOutput.Id">
+            <summary>
+            主键
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Output.PositionListOutput.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Output.PositionListOutput.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Output.PositionListOutput.Description">
+            <summary>
+            说明
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Output.PositionListOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Plate.Personnel.Service.Position.Output.PositionListOutput.CreatedTime">
+            <summary>
+            创建时间
+            </summary>
+        </member>
+    </members>
+</doc>

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

@@ -29,9 +29,9 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
             _employeeOrganizationRepository = employeeOrganizationRepository;
         }
 
-        public async Task<ResponseOutput<EmployeeGetOutput>> GetAsync(long id)
+        public async Task<ResultOutput<EmployeeGetOutput>> GetAsync(long id)
         {
-            var res = new ResponseOutput<EmployeeGetOutput>();
+            var res = new ResultOutput<EmployeeGetOutput>();
 
             var dto = await _employeeRepository.Select
             .WhereDynamic(id)
@@ -45,7 +45,7 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
             return res.Ok(dto);
         }
 
-        public async Task<IResponseOutput> PageAsync(PageInput<EmployeeEntity> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<EmployeeEntity> input)
         {
             var list = await _employeeRepository.Select
             .WhereDynamicFilter(input.DynamicFilter)
@@ -65,18 +65,18 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
                 Total = total
             };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
         [Transaction]
-        public async Task<IResponseOutput> AddAsync(EmployeeAddInput input)
+        public async Task<IResultOutput> AddAsync(EmployeeAddInput input)
         {
             var entity = Mapper.Map<EmployeeEntity>(input);
             var employeeId = (await _employeeRepository.InsertAsync(entity))?.Id;
 
             if (!(employeeId > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             //附属部门
@@ -86,21 +86,21 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
                 await _employeeOrganizationRepository.InsertAsync(organizations);
             }
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
         [Transaction]
-        public async Task<IResponseOutput> UpdateAsync(EmployeeUpdateInput input)
+        public async Task<IResultOutput> UpdateAsync(EmployeeUpdateInput input)
         {
             if (!(input?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var employee = await _employeeRepository.GetAsync(input.Id);
             if (!(employee?.Id > 0))
             {
-                return ResponseOutput.NotOk("用户不存在!");
+                return ResultOutput.NotOk("用户不存在!");
             }
 
             Mapper.Map(input, employee);
@@ -115,11 +115,11 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
                 await _employeeOrganizationRepository.InsertAsync(organizations);
             }
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
         [Transaction]
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             //删除员工附属部门
             await _employeeOrganizationRepository.DeleteAsync(a => a.EmployeeId == id);
@@ -127,21 +127,21 @@ namespace ZhonTai.Plate.Personnel.Service.Employee
             //删除员工
             await _employeeRepository.DeleteAsync(m => m.Id == id);
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             await _employeeRepository.SoftDeleteAsync(id);
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids)
+        public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             await _employeeRepository.SoftDeleteAsync(ids);
 
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
     }
 }

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

@@ -16,13 +16,13 @@ namespace ZhonTai.Plate.Personnel.Service.Organization
             _organizationRepository = organizationRepository;
         }
 
-        public async Task<IResponseOutput> GetAsync(long id)
+        public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _organizationRepository.GetAsync<OrganizationGetOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> GetListAsync(string key)
+        public async Task<IResultOutput> GetListAsync(string key)
         {
             var data = await _organizationRepository
                 .WhereIf(key.NotNull(), a => a.Name.Contains(key) || a.Code.Contains(key))
@@ -30,46 +30,46 @@ namespace ZhonTai.Plate.Personnel.Service.Organization
                 .OrderBy(a => a.Sort)
                 .ToListAsync<OrganizationListOutput>();
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> AddAsync(OrganizationAddInput input)
+        public async Task<IResultOutput> AddAsync(OrganizationAddInput input)
         {
             var dictionary = Mapper.Map<OrganizationEntity>(input);
             var id = (await _organizationRepository.InsertAsync(dictionary)).Id;
-            return ResponseOutput.Result(id > 0);
+            return ResultOutput.Result(id > 0);
         }
 
-        public async Task<IResponseOutput> UpdateAsync(OrganizationUpdateInput input)
+        public async Task<IResultOutput> UpdateAsync(OrganizationUpdateInput input)
         {
             if (!(input?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var entity = await _organizationRepository.GetAsync(input.Id);
             if (!(entity?.Id > 0))
             {
-                return ResponseOutput.NotOk("数据字典不存在!");
+                return ResultOutput.NotOk("数据字典不存在!");
             }
 
             Mapper.Map(input, entity);
             await _organizationRepository.UpdateAsync(entity);
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = await _organizationRepository.DeleteRecursiveAsync(a => a.Id == id);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _organizationRepository.SoftDeleteRecursiveAsync(a => a.Id == id);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
     }
 }

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

@@ -18,13 +18,13 @@ namespace ZhonTai.Plate.Personnel.Service.Position
             _positionRepository = positionRepository;
         }
 
-        public async Task<IResponseOutput> GetAsync(long id)
+        public async Task<IResultOutput> GetAsync(long id)
         {
             var result = await _positionRepository.GetAsync<PositionGetOutput>(id);
-            return ResponseOutput.Ok(result);
+            return ResultOutput.Ok(result);
         }
 
-        public async Task<IResponseOutput> PageAsync(PageInput<PositionEntity> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<PositionEntity> input)
         {
             var key = input.Filter?.Name;
 
@@ -41,36 +41,36 @@ namespace ZhonTai.Plate.Personnel.Service.Position
                 Total = total
             };
 
-            return ResponseOutput.Ok(data);
+            return ResultOutput.Ok(data);
         }
 
-        public async Task<IResponseOutput> AddAsync(PositionAddInput input)
+        public async Task<IResultOutput> AddAsync(PositionAddInput input)
         {
             var entity = Mapper.Map<PositionEntity>(input);
             var id = (await _positionRepository.InsertAsync(entity)).Id;
 
-            return ResponseOutput.Result(id > 0);
+            return ResultOutput.Result(id > 0);
         }
 
-        public async Task<IResponseOutput> UpdateAsync(PositionUpdateInput input)
+        public async Task<IResultOutput> UpdateAsync(PositionUpdateInput input)
         {
             if (!(input?.Id > 0))
             {
-                return ResponseOutput.NotOk();
+                return ResultOutput.NotOk();
             }
 
             var entity = await _positionRepository.GetAsync(input.Id);
             if (!(entity?.Id > 0))
             {
-                return ResponseOutput.NotOk("职位不存在!");
+                return ResultOutput.NotOk("职位不存在!");
             }
 
             Mapper.Map(input, entity);
             await _positionRepository.UpdateAsync(entity);
-            return ResponseOutput.Ok();
+            return ResultOutput.Ok();
         }
 
-        public async Task<IResponseOutput> DeleteAsync(long id)
+        public async Task<IResultOutput> DeleteAsync(long id)
         {
             var result = false;
             if (id > 0)
@@ -78,21 +78,21 @@ namespace ZhonTai.Plate.Personnel.Service.Position
                 result = (await _positionRepository.DeleteAsync(m => m.Id == id)) > 0;
             }
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        public async Task<IResultOutput> SoftDeleteAsync(long id)
         {
             var result = await _positionRepository.SoftDeleteAsync(id);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
 
-        public async Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids)
+        public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
         {
             var result = await _positionRepository.SoftDeleteAsync(ids);
 
-            return ResponseOutput.Result(result);
+            return ResultOutput.Result(result);
         }
     }
 }

+ 5 - 0
src/shared/ZhonTai.Common/Configs/AppConfig.cs

@@ -25,6 +25,11 @@
         /// </summary>
         public bool Swagger { get; set; } = false;
 
+        /// <summary>
+        /// MiniProfiler性能分析器
+        /// </summary>
+        public bool MiniProfiler { get; set; } = false;
+
         /// <summary>
         /// 统一认证授权服务器
         /// </summary>

+ 4 - 4
src/shared/ZhonTai.Common/Domain/Dto/IResponseOutput.cs → src/shared/ZhonTai.Common/Domain/Dto/IResultOutput.cs

@@ -3,9 +3,9 @@
 namespace ZhonTai.Common.Domain.Dto
 {
     /// <summary>
-    /// 响应数据输出接口
+    /// 结果输出接口
     /// </summary>
-    public interface IResponseOutput
+    public interface IResultOutput
     {
         /// <summary>
         /// 是否成功
@@ -20,10 +20,10 @@ namespace ZhonTai.Common.Domain.Dto
     }
 
     /// <summary>
-    /// 响应数据输出泛型接口
+    /// 泛型结果输出接口
     /// </summary>
     /// <typeparam name="T"></typeparam>
-    public interface IResponseOutput<T> : IResponseOutput
+    public interface IResultOutput<T> : IResultOutput
     {
         /// <summary>
         /// 返回数据

+ 2 - 2
src/shared/ZhonTai.Common/Domain/Dto/OptionOutput.cs → src/shared/ZhonTai.Common/Domain/Dto/OptionDto.cs

@@ -1,9 +1,9 @@
 namespace ZhonTai.Common.Domain.Dto
 {
     /// <summary>
-    /// 下拉选项输出
+    /// 下拉选项
     /// </summary>
-    public class OptionOutput
+    public class OptionDto
     {
         /// <summary>
         /// 名称

+ 15 - 15
src/shared/ZhonTai.Common/Domain/Dto/ResponseOutput.cs → src/shared/ZhonTai.Common/Domain/Dto/ResultOutput.cs

@@ -3,9 +3,9 @@
 namespace ZhonTai.Common.Domain.Dto
 {
     /// <summary>
-    /// 响应数据输出
+    /// 结果输出
     /// </summary>
-    public class ResponseOutput<T> : IResponseOutput<T>
+    public class ResultOutput<T> : IResultOutput<T>
     {
         /// <summary>
         /// 是否成功标记
@@ -33,7 +33,7 @@ namespace ZhonTai.Common.Domain.Dto
         /// </summary>
         /// <param name="data">数据</param>
         /// <param name="msg">消息</param>
-        public ResponseOutput<T> Ok(T data, string msg = null)
+        public ResultOutput<T> Ok(T data, string msg = null)
         {
             Success = true;
             Data = data;
@@ -48,7 +48,7 @@ namespace ZhonTai.Common.Domain.Dto
         /// <param name="msg">消息</param>
         /// <param name="data">数据</param>
         /// <returns></returns>
-        public ResponseOutput<T> NotOk(string msg = null, T data = default(T))
+        public ResultOutput<T> NotOk(string msg = null, T data = default(T))
         {
             Success = false;
             Msg = msg;
@@ -59,9 +59,9 @@ namespace ZhonTai.Common.Domain.Dto
     }
 
     /// <summary>
-    /// 响应数据静态输出
+    /// 静态结果输出
     /// </summary>
-    public static partial class ResponseOutput
+    public static partial class ResultOutput
     {
         /// <summary>
         /// 成功
@@ -69,16 +69,16 @@ namespace ZhonTai.Common.Domain.Dto
         /// <param name="data">数据</param>
         /// <param name="msg">消息</param>
         /// <returns></returns>
-        public static IResponseOutput Ok<T>(T data = default(T), string msg = null)
+        public static IResultOutput Ok<T>(T data = default(T), string msg = null)
         {
-            return new ResponseOutput<T>().Ok(data, msg);
+            return new ResultOutput<T>().Ok(data, msg);
         }
 
         /// <summary>
         /// 成功
         /// </summary>
         /// <returns></returns>
-        public static IResponseOutput Ok()
+        public static IResultOutput Ok()
         {
             return Ok<string>();
         }
@@ -89,9 +89,9 @@ namespace ZhonTai.Common.Domain.Dto
         /// <param name="msg">消息</param>
         /// <param name="data">数据</param>
         /// <returns></returns>
-        public static IResponseOutput NotOk<T>(string msg = null, T data = default(T))
+        public static IResultOutput NotOk<T>(string msg = null, T data = default(T))
         {
-            return new ResponseOutput<T>().NotOk(msg, data);
+            return new ResultOutput<T>().NotOk(msg, data);
         }
 
         /// <summary>
@@ -99,9 +99,9 @@ namespace ZhonTai.Common.Domain.Dto
         /// </summary>
         /// <param name="msg">消息</param>
         /// <returns></returns>
-        public static IResponseOutput NotOk(string msg = null)
+        public static IResultOutput NotOk(string msg = null)
         {
-            return new ResponseOutput<string>().NotOk(msg);
+            return new ResultOutput<string>().NotOk(msg);
         }
 
         /// <summary>
@@ -109,7 +109,7 @@ namespace ZhonTai.Common.Domain.Dto
         /// </summary>
         /// <param name="success"></param>
         /// <returns></returns>
-        public static IResponseOutput Result<T>(bool success)
+        public static IResultOutput Result<T>(bool success)
         {
             return success ? Ok<T>() : NotOk<T>();
         }
@@ -119,7 +119,7 @@ namespace ZhonTai.Common.Domain.Dto
         /// </summary>
         /// <param name="success"></param>
         /// <returns></returns>
-        public static IResponseOutput Result(bool success)
+        public static IResultOutput Result(bool success)
         {
             return success ? Ok() : NotOk();
         }

+ 4 - 4
src/shared/ZhonTai.Common/Extensions/EnumExtension.cs

@@ -21,7 +21,7 @@ namespace ZhonTai.Common.Extensions
             return Convert.ToInt64(item);
         }
 
-        public static List<OptionOutput> ToList(this Enum value, bool ignoreNull = false)
+        public static List<OptionDto> ToList(this Enum value, bool ignoreNull = false)
         {
             var enumType = value.GetType();
 
@@ -29,14 +29,14 @@ namespace ZhonTai.Common.Extensions
                 return null;
 
             return Enum.GetValues(enumType).Cast<Enum>()
-                .Where(m => !ignoreNull || !m.ToString().Equals("Null")).Select(x => new OptionOutput
+                .Where(m => !ignoreNull || !m.ToString().Equals("Null")).Select(x => new OptionDto
                 {
                     Label = x.ToDescription(),
                     Value = x
                 }).ToList();
         }
 
-        public static List<OptionOutput> ToList<T>(bool ignoreNull = false)
+        public static List<OptionDto> ToList<T>(bool ignoreNull = false)
         {
             var enumType = typeof(T);
 
@@ -44,7 +44,7 @@ namespace ZhonTai.Common.Extensions
                 return null;
 
             return Enum.GetValues(enumType).Cast<Enum>()
-                 .Where(m => !ignoreNull || !m.ToString().Equals("Null")).Select(x => new OptionOutput
+                 .Where(m => !ignoreNull || !m.ToString().Equals("Null")).Select(x => new OptionDto
                  {
                      Label = x.ToDescription(),
                      Value = x

+ 2 - 2
src/shared/ZhonTai.Common/Helpers/UploadHelper.cs

@@ -26,9 +26,9 @@ namespace ZhonTai.Common.Helpers
         /// <param name="args"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public async Task<IResponseOutput<FileInfo>> UploadAsync(IFormFile file, FileUploadConfig config, object args, CancellationToken cancellationToken = default)
+        public async Task<IResultOutput<FileInfo>> UploadAsync(IFormFile file, FileUploadConfig config, object args, CancellationToken cancellationToken = default)
         {
-            var res = new ResponseOutput<FileInfo>();
+            var res = new ResultOutput<FileInfo>();
 
             if (file == null || file.Length < 1)
             {

+ 1 - 1
src/shared/ZhonTai.Common/ZhonTai.Common.csproj

@@ -15,7 +15,7 @@
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <DocumentationFile></DocumentationFile>
+    <DocumentationFile>F:\zhontai\Admin\src\shared\ZhonTai.Common\ZhonTai.Common.xml</DocumentationFile>
     <NoWarn>1701;1702;1591</NoWarn>
     <OutputPath></OutputPath>
   </PropertyGroup>

+ 1492 - 0
src/shared/ZhonTai.Common/ZhonTai.Common.xml

@@ -0,0 +1,1492 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ZhonTai.Common</name>
+    </assembly>
+    <members>
+        <member name="T:ZhonTai.Common.Attributes.SingleInstanceAttribute">
+            <summary>
+            单例注入
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Attributes.TransactionAttribute">
+            <summary>
+            启用事物
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Attributes.TransactionAttribute.Propagation">
+            <summary>
+            事务传播方式
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Attributes.TransactionAttribute.IsolationLevel">
+            <summary>
+            事务隔离级别
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Auth.ClaimAttributes">
+            <summary>
+            Claim属性
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Auth.ClaimAttributes.UserId">
+            <summary>
+            用户Id
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Auth.ClaimAttributes.IdentityServerUserId">
+            <summary>
+            认证授权用户Id
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Auth.ClaimAttributes.UserName">
+            <summary>
+            用户名
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Auth.ClaimAttributes.UserNickName">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Auth.ClaimAttributes.RefreshExpires">
+            <summary>
+            刷新有效期
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Auth.ClaimAttributes.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Auth.ClaimAttributes.TenantType">
+            <summary>
+            租户类型
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Auth.ClaimAttributes.DataIsolationType">
+            <summary>
+            数据隔离
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Auth.IUser">
+            <summary>
+            用户信息接口
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.IUser.Id">
+            <summary>
+            主键
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.IUser.Name">
+            <summary>
+            用户名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.IUser.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.IUser.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.IUser.TenantType">
+            <summary>
+            租户类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.IUser.DataIsolationType">
+            <summary>
+            数据隔离
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Auth.User">
+            <summary>
+            用户信息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.User.Id">
+            <summary>
+            用户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.User.Name">
+            <summary>
+            用户名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.User.NickName">
+            <summary>
+            昵称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.User.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.User.TenantType">
+            <summary>
+            租户类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.User.DataIsolationType">
+            <summary>
+            数据隔离
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Auth.UserIdentiyServer">
+            <summary>
+            用户信息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Auth.UserIdentiyServer.Id">
+            <summary>
+            用户Id
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Configs.AppConfig">
+            <summary>
+            应用配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.AppConfig.Urls">
+            <summary>
+            Api地址,默认 http://*:8000
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.AppConfig.CorUrls">
+            <summary>
+            跨域地址,默认 http://*:9000
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.AppConfig.Tenant">
+            <summary>
+            租户类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.AppConfig.Swagger">
+            <summary>
+            Swagger文档
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.AppConfig.MiniProfiler">
+            <summary>
+            MiniProfiler性能分析器
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.AppConfig.IdentityServer">
+            <summary>
+            统一认证授权服务器
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.AppConfig.Aop">
+            <summary>
+            Aop配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.AppConfig.Log">
+            <summary>
+            日志配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.AppConfig.RateLimit">
+            <summary>
+            限流
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.AppConfig.VarifyCode">
+            <summary>
+            验证码配置
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Configs.IdentityServer">
+            <summary>
+            统一认证授权服务器配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.IdentityServer.Enable">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.IdentityServer.Url">
+            <summary>
+            地址
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Configs.AopConfig">
+            <summary>
+            Aop配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.AopConfig.Transaction">
+            <summary>
+            事物
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Configs.LogConfig">
+            <summary>
+            日志配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.LogConfig.Operation">
+            <summary>
+            操作日志
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Configs.VarifyCodeConfig">
+            <summary>
+            验证码配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.VarifyCodeConfig.Enable">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.VarifyCodeConfig.Fonts">
+            <summary>
+            操作日志
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Configs.MultiDb">
+            <summary>
+            多数据库
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.MultiDb.Name">
+            <summary>
+            数据库命名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.MultiDb.Type">
+            <summary>
+            数据库类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.MultiDb.ConnectionString">
+            <summary>
+            数据库字符串
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Configs.DbConfig">
+            <summary>
+            数据库配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.Type">
+            <summary>
+            数据库类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.ConnectionString">
+            <summary>
+            数据库字符串
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.IdleTime">
+            <summary>
+            空闲时间(分)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.GenerateData">
+            <summary>
+            生成数据
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.SyncStructure">
+            <summary>
+            同步结构
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.SyncData">
+            <summary>
+            同步数据
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.CreateDb">
+            <summary>
+            建库
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.CreateDbConnectionString">
+            <summary>
+            建库连接字符串
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.CreateDbSql">
+            <summary>
+            建库脚本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.MonitorCommand">
+            <summary>
+            监听所有操作
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.Curd">
+            <summary>
+            监听Curd操作
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.DbConfig.Dbs">
+            <summary>
+            多数据库
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Configs.JwtConfig">
+            <summary>
+            Jwt配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.JwtConfig.Issuer">
+            <summary>
+            发行者
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.JwtConfig.Audience">
+            <summary>
+            订阅者
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.JwtConfig.SecurityKey">
+            <summary>
+            密钥
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.JwtConfig.Expires">
+            <summary>
+            有效期(分钟)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.JwtConfig.RefreshExpires">
+            <summary>
+            刷新有效期(分钟)
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Configs.UploadConfig">
+            <summary>
+            上传配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.UploadConfig.Avatar">
+            <summary>
+            头像上传配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.UploadConfig.Document">
+            <summary>
+            文档图片上传配置
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Configs.FileUploadConfig">
+            <summary>
+            文件上传配置
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.FileUploadConfig.UploadPath">
+            <summary>
+            上传路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.FileUploadConfig.RequestPath">
+            <summary>
+            请求路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.FileUploadConfig.Format">
+            <summary>
+            路径格式
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.FileUploadConfig.DateTimeFormat">
+            <summary>
+            路径日期格式
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.FileUploadConfig.MaxSize">
+            <summary>
+            文件大小 10M = 10 * 1024 * 1024
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.FileUploadConfig.Limit">
+            <summary>
+            最大允许上传个数 -1不限制
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Configs.FileUploadConfig.ContentType">
+            <summary>
+            文件格式
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Consts.AdminConsts.TenantName">
+            <summary>
+            默认租户
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Consts.AdminConsts.AllowAnyPolicyName">
+            <summary>
+            允许所有源访问策略
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Dbs.MySqlDb">
+            <summary>
+            多数据库命名
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Db.IGenerateData">
+            <summary>
+            生成数据接口
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Db.ISyncData">
+            <summary>
+            同步数据接口
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Db.SyncData.CheckIdentity``1">
+            <summary>
+            检查实体属性是否为自增长
+            </summary>
+            <typeparam name="T"></typeparam>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Db.SyncData.InitDataAsync``1(IFreeSql,FreeSql.IUnitOfWork,System.Data.Common.DbTransaction,``0[],ZhonTai.Common.Configs.DbConfig)">
+            <summary>
+            初始化数据表数据
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="db"></param>
+            <param name="unitOfWork"></param>
+            <param name="tran"></param>
+            <param name="data"></param>
+            <param name="dbConfig"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Dto.IResultOutput">
+            <summary>
+            结果输出接口
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.IResultOutput.Success">
+            <summary>
+            是否成功
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.IResultOutput.Msg">
+            <summary>
+            消息
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Dto.IResultOutput`1">
+            <summary>
+            泛型结果输出接口
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.IResultOutput`1.Data">
+            <summary>
+            返回数据
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Dto.OptionDto">
+            <summary>
+            下拉选项
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.OptionDto.Label">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.OptionDto.Value">
+            <summary>
+            值
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Dto.PageInput`1">
+            <summary>
+            分页信息输入
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.PageInput`1.CurrentPage">
+            <summary>
+            当前页标
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.PageInput`1.PageSize">
+            <summary>
+            每页大小
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.PageInput`1.Filter">
+            <summary>
+            查询条件
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.PageInput`1.DynamicFilter">
+            <summary>
+            高级查询条件
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Dto.PageOutput`1">
+            <summary>
+            分页信息输出
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.PageOutput`1.Total">
+            <summary>
+            数据总数
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.PageOutput`1.List">
+            <summary>
+            数据
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Dto.ResultOutput`1">
+            <summary>
+            结果输出
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.ResultOutput`1.Success">
+            <summary>
+            是否成功标记
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.ResultOutput`1.Code">
+            <summary>
+            状态码
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.ResultOutput`1.Msg">
+            <summary>
+            消息
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Dto.ResultOutput`1.Data">
+            <summary>
+            数据
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Dto.ResultOutput`1.Ok(`0,System.String)">
+            <summary>
+            成功
+            </summary>
+            <param name="data">数据</param>
+            <param name="msg">消息</param>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Dto.ResultOutput`1.NotOk(System.String,`0)">
+            <summary>
+            失败
+            </summary>
+            <param name="msg">消息</param>
+            <param name="data">数据</param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Dto.ResultOutput">
+            <summary>
+            静态结果输出
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Dto.ResultOutput.Ok``1(``0,System.String)">
+            <summary>
+            成功
+            </summary>
+            <param name="data">数据</param>
+            <param name="msg">消息</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Dto.ResultOutput.Ok">
+            <summary>
+            成功
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Dto.ResultOutput.NotOk``1(System.String,``0)">
+            <summary>
+            失败
+            </summary>
+            <param name="msg">消息</param>
+            <param name="data">数据</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Dto.ResultOutput.NotOk(System.String)">
+            <summary>
+            失败
+            </summary>
+            <param name="msg">消息</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Dto.ResultOutput.Result``1(System.Boolean)">
+            <summary>
+            根据布尔值返回结果
+            </summary>
+            <param name="success"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Dto.ResultOutput.Result(System.Boolean)">
+            <summary>
+            根据布尔值返回结果
+            </summary>
+            <param name="success"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Entities.DataIsolationType">
+            <summary>
+            数据隔离类型
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Domain.Entities.DataIsolationType.OwnDb">
+            <summary>
+            独立数据库
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Domain.Entities.DataIsolationType.OwnDt">
+            <summary>
+            独立数据表
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Domain.Entities.DataIsolationType.Schema">
+            <summary>
+            共享数据库,独立架构
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Domain.Entities.DataIsolationType.Share">
+            <summary>
+            共享数据库
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.IEntity`1.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.Entity`1.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Entities.EntityAdd`1">
+            <summary>
+            实体创建
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityAdd`1.CreatedUserId">
+            <summary>
+            创建者Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityAdd`1.CreatedUserName">
+            <summary>
+            创建者
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityAdd`1.CreatedTime">
+            <summary>
+            创建时间
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Entities.EntityFull`1">
+            <summary>
+            实体完整类
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityFull`1.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityFull`1.IsDeleted">
+            <summary>
+            是否删除
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityFull`1.CreatedUserId">
+            <summary>
+            创建者Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityFull`1.CreatedUserName">
+            <summary>
+            创建者
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityFull`1.CreatedTime">
+            <summary>
+            创建时间
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityFull`1.ModifiedUserId">
+            <summary>
+            修改者Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityFull`1.ModifiedUserName">
+            <summary>
+            修改者
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityFull`1.ModifiedTime">
+            <summary>
+            修改时间
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Entities.EntityFull">
+            <summary>
+            实体完整类
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Entities.EntitySoftDelete`1">
+            <summary>
+            实体软删除
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntitySoftDelete`1.IsDeleted">
+            <summary>
+            是否删除
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Entities.EntityUpdate`1">
+            <summary>
+            实体修改
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityUpdate`1.ModifiedUserId">
+            <summary>
+            修改者Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityUpdate`1.ModifiedUserName">
+            <summary>
+            修改者
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityUpdate`1.ModifiedTime">
+            <summary>
+            修改时间
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Entities.EntityVersion`1">
+            <summary>
+            实体版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.EntityVersion`1.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.IEntitySoftDelete.IsDeleted">
+            <summary>
+            是否删除
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.IEntityVersion.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Domain.Entities.ITenant.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Domain.Entities.TenantType">
+            <summary>
+            租户类型
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Domain.Entities.TenantType.Platform">
+            <summary>
+            平台
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Domain.Entities.TenantType.Tenant">
+            <summary>
+            租户
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Repositories.IRepositoryBase`2.GetAsync``1(`1)">
+            <summary>
+            获得Dto
+            </summary>
+            <typeparam name="TDto"></typeparam>
+            <param name="id">主键</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Repositories.IRepositoryBase`2.GetAsync``1(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
+            <summary>
+            根据条件获取Dto
+            </summary>
+            <param name="exp"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Repositories.IRepositoryBase`2.GetAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
+            <summary>
+            根据条件获取实体
+            </summary>
+            <param name="exp"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Repositories.IRepositoryBase`2.SoftDeleteAsync(`1)">
+            <summary>
+            软删除
+            </summary>
+            <param name="id">主键</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Repositories.IRepositoryBase`2.SoftDeleteAsync(`1[])">
+            <summary>
+            批量软删除
+            </summary>
+            <param name="ids">主键数组</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Repositories.IRepositoryBase`2.SoftDeleteAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.String[])">
+            <summary>
+            软删除
+            </summary>
+            <param name="disableGlobalFilterNames">禁用全局过滤器名</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Repositories.IRepositoryBase`2.DeleteRecursiveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.String[])">
+            <summary>
+            递归删除
+            </summary>
+            <param name="exp"></param>
+            <param name="disableGlobalFilterNames">禁用全局过滤器名</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Domain.Repositories.IRepositoryBase`2.SoftDeleteRecursiveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.String[])">
+            <summary>
+            递归软删除
+            </summary>
+            <param name="exp"></param>
+            <param name="disableGlobalFilterNames">禁用全局过滤器名</param>
+            <returns></returns>
+        </member>
+        <member name="F:ZhonTai.Common.Extensions.DateTimeExtension.TimestampStart">
+            <summary>
+            时间戳起始日期
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Extensions.DateTimeExtension.ToTimestamp(System.DateTime,System.Boolean)">
+            <summary>
+            转换为时间戳
+            </summary>
+            <param name="dateTime"></param>
+            <param name="milliseconds">是否使用毫秒</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Extensions.DateTimeExtension.GetWeekName(System.DateTime)">
+            <summary>
+            获取周几
+            </summary>
+            <param name="datetime"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Extensions.GuidExtension.IsNull(System.Guid)">
+            <summary>
+            判断Guid是否为空
+            </summary>
+            <param name="s"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Extensions.GuidExtension.NotNull(System.Guid)">
+            <summary>
+            判断Guid是否不为空
+            </summary>
+            <param name="s"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Extensions.ListExtension.ToTree``1(System.Collections.Generic.List{``0},System.Func{``0,``0,System.Boolean},System.Func{``0,``0,System.Boolean},System.Action{``0,System.Collections.Generic.IEnumerable{``0}},``0)">
+            <summary>
+            将列表转换为树形结构
+            </summary>
+            <typeparam name="T">类型</typeparam>
+            <param name="list">数据</param>
+            <param name="rootWhere">根条件</param>
+            <param name="childsWhere">节点条件</param>
+            <param name="addChilds">添加子节点</param>
+            <param name="entity"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Common.Extensions.UtilConvertExtension">
+            <summary>
+            数据类型转换
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Extensions.UtilConvertExtension.ToDouble(System.Object,System.Nullable{System.Int32})">
+            <summary>
+            转换成Double/Single
+            </summary>
+            <param name="s"></param>
+            <param name="digits">小数位数</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Extensions.UtilConvertExtension.ToHex(System.Byte[],System.Boolean)">
+            <summary>
+            转换为16进制
+            </summary>
+            <param name="bytes"></param>
+            <param name="lowerCase">是否小写</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Extensions.UtilConvertExtension.HexToBytes(System.String)">
+            <summary>
+            16进制转字节数组
+            </summary>
+            <param name="s"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Extensions.UtilConvertExtension.ToBase64(System.Byte[])">
+            <summary>
+            转换为Base64
+            </summary>
+            <param name="bytes"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Common.Files.FileInfo">
+            <summary>
+            文件信息
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Files.FileInfo.#ctor(System.String,System.Int64)">
+            <summary>
+            初始化文件信息
+            </summary>
+            <param name="fileName">文件名称</param>
+            <param name="size">大小</param>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileInfo.UploadPath">
+            <summary>
+            上传路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileInfo.RequestPath">
+            <summary>
+            请求路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileInfo.RelativePath">
+            <summary>
+            相对路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileInfo.FileName">
+            <summary>
+            文件名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileInfo.SaveName">
+            <summary>
+            保存名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileInfo.Size">
+            <summary>
+            文件大小
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileInfo.Extension">
+            <summary>
+            扩展名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileInfo.FileDirectory">
+            <summary>
+            文件目录
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileInfo.FileRequestPath">
+            <summary>
+            文件请求路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileInfo.FileRelativePath">
+            <summary>
+            文件相对路径
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileInfo.FilePath">
+            <summary>
+            文件路径
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Files.FileSize">
+            <summary>
+            文件大小
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Files.FileSize.#ctor(System.Int64,ZhonTai.Common.Files.FileSizeUnit)">
+            <summary>
+            初始化文件大小
+            </summary>
+            <param name="size">文件大小</param>
+            <param name="unit">文件大小单位</param>
+        </member>
+        <member name="P:ZhonTai.Common.Files.FileSize.Size">
+            <summary>
+            文件字节长度
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Files.FileSize.GetSize">
+            <summary>
+            获取文件大小,单位:字节
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Files.FileSize.GetSizeByK">
+            <summary>
+            获取文件大小,单位:K
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Files.FileSize.GetSizeByM">
+            <summary>
+            获取文件大小,单位:M
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Files.FileSize.GetSizeByG">
+            <summary>
+            获取文件大小,单位:G
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Files.FileSize.ToString">
+            <summary>
+            输出描述
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Files.FileSizeUnit">
+            <summary>
+            文件大小单位
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Files.FileSizeUnit.Byte">
+            <summary>
+            字节
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Files.FileSizeUnit.K">
+            <summary>
+            K字节
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Files.FileSizeUnit.M">
+            <summary>
+            M字节
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Common.Files.FileSizeUnit.G">
+            <summary>
+            G字节
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Common.Helpers.ConfigHelper">
+            <summary>
+            配置帮助类
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.ConfigHelper.Load(System.String,System.String,System.Boolean,System.Boolean)">
+            <summary>
+            加载配置文件
+            </summary>
+            <param name="fileName">文件名称</param>
+            <param name="environmentName">环境名称</param>
+            <param name="optional">可选</param>
+            <param name="reloadOnChange">自动更新</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.ConfigHelper.Get``1(System.String,System.String,System.Boolean,System.Boolean)">
+            <summary>
+            获得配置信息
+            </summary>
+            <typeparam name="T">配置信息</typeparam>
+            <param name="fileName">文件名称</param>
+            <param name="environmentName">环境名称</param>
+            <param name="optional">可选</param>
+            <param name="reloadOnChange">自动更新</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.ConfigHelper.Bind(System.String,System.Object,System.String,System.Boolean,System.Boolean)">
+            <summary>
+            绑定实例配置信息
+            </summary>
+            <param name="fileName">文件名称</param>
+            <param name="instance">实例配置</param>
+            <param name="environmentName">环境名称</param>
+            <param name="optional">可选</param>
+            <param name="reloadOnChange">自动更新</param>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.ConsoleHelper.WriteErrorLine(System.String,System.ConsoleColor)">
+            <summary>
+            打印错误信息
+            </summary>
+            <param name="str">待打印的字符串</param>
+            <param name="color">想要打印的颜色</param>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.ConsoleHelper.WriteWarningLine(System.String,System.ConsoleColor)">
+            <summary>
+            打印警告信息
+            </summary>
+            <param name="str">待打印的字符串</param>
+            <param name="color">想要打印的颜色</param>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.ConsoleHelper.WriteInfoLine(System.String,System.ConsoleColor)">
+            <summary>
+            打印正常信息
+            </summary>
+            <param name="str">待打印的字符串</param>
+            <param name="color">想要打印的颜色</param>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.ConsoleHelper.WriteSuccessLine(System.String,System.ConsoleColor)">
+            <summary>
+            打印成功的信息
+            </summary>
+            <param name="str">待打印的字符串</param>
+            <param name="color">想要打印的颜色</param>
+        </member>
+        <member name="T:ZhonTai.Common.Helpers.DesEncrypt">
+            <summary>
+            Des加解密
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.DesEncrypt.Encrypt(System.String,System.String)">
+            <summary>
+            DES+Base64加密
+            <para>采用ECB、PKCS7</para>
+            </summary>
+            <param name="encryptString">加密字符串</param>
+            <param name="key">秘钥</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.DesEncrypt.Decrypt(System.String,System.String)">
+            <summary>
+            DES+Base64解密
+            <para>采用ECB、PKCS7</para>
+            </summary>
+            <param name="decryptString">解密字符串</param>
+            <param name="key">秘钥</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.DesEncrypt.Encrypt4Hex(System.String,System.String,System.Boolean)">
+            <summary>
+            DES+16进制加密
+            <para>采用ECB、PKCS7</para>
+            </summary>
+            <param name="encryptString">加密字符串</param>
+            <param name="key">秘钥</param>
+            <param name="lowerCase">是否小写</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.DesEncrypt.Decrypt4Hex(System.String,System.String)">
+            <summary>
+            DES+16进制解密
+            <para>采用ECB、PKCS7</para>
+            </summary>
+            <param name="decryptString">解密字符串</param>
+            <param name="key">秘钥</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.DesEncrypt.Encrypt(System.String,System.String,System.Boolean,System.Boolean)">
+            <summary>
+            DES加密
+            </summary>
+            <param name="encryptString"></param>
+            <param name="key"></param>
+            <param name="hex"></param>
+            <param name="lowerCase"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.DesEncrypt.Decrypt(System.String,System.String,System.Boolean)">
+            <summary>
+            DES解密
+            </summary>
+            <param name="decryptString"></param>
+            <param name="key"></param>
+            <param name="hex"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.FileHelper.WriteFile(System.String,System.String)">
+            <summary>
+            写文件
+            </summary>
+            <param name="Path">文件路径</param>
+            <param name="Strings">文件内容</param>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.FileHelper.WriteFile(System.String,System.String,System.Text.Encoding)">
+            <summary>
+            写文件
+            </summary>
+            <param name="Path">文件路径</param>
+            <param name="Strings">文件内容</param>
+            <param name="encode">编码格式</param>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.FileHelper.ReadFile(System.String)">
+            <summary>
+            读文件
+            </summary>
+            <param name="Path">文件路径</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.FileHelper.ReadFile(System.String,System.Text.Encoding)">
+            <summary>
+            读文件
+            </summary>
+            <param name="Path">文件路径</param>
+            <param name="encode">编码格式</param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Common.Helpers.HtmlHelper">
+            <summary>
+            Html操作相关类
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Helpers.HtmlHelper.CookieContainer">
+            <summary>
+            Cookie
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Common.Helpers.HtmlHelper.Encoding">
+            <summary>
+            语言
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.GetHtml(System.String,System.String,System.Boolean,System.Net.CookieContainer)">
+            <summary>
+            获取HTML
+            </summary>
+            <param name="url">地址</param>
+            <param name="postData">post 提交的字符串</param>
+            <param name="isPost">是否是post</param>
+            <param name="cookieContainer">CookieContainer</param>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.GetHtml(System.String,System.Net.CookieContainer)">
+            <summary>
+            获取HTML
+            </summary>
+            <param name="url">地址</param>
+            <param name="cookieContainer">CookieContainer</param>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.GetStream(System.String,System.Net.CookieContainer)">
+            <summary>
+            获取字符流
+            </summary>
+            <param name="url">地址</param>
+            <param name="cookieContainer">cookieContainer</param>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.NoHTML(System.String)">
+            <summary>
+            清除HTML标记
+            </summary>
+            <param name="Htmlstring"></param>
+            <returns>已经去除后的文字</returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.DelHtmlCode(System.String)">
+            <summary>
+            删除文本中带的HTML标记
+            </summary>
+            <param name="InString">输入要删除带HTML的字符串</param>
+            <returns>返回处理过的字符串</returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.GetHref(System.String)">
+            <summary>
+            获取页面的链接正则
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.GetImgSrc(System.String,System.String)">
+            <summary>
+            匹配页面的图片地址
+            </summary>
+            <param name="HtmlCode"></param>
+            <param name="imgHttp">要补充的http://路径信息</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.GetImg(System.String,System.String)">
+            <summary>
+            匹配<img src="" />中的图片路径实际链接
+            </summary>
+            <param name="ImgString"><img src="" />字符串</param>
+            <param name="imgHttp"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.Get_Http(System.String)">
+            <summary>
+            以GET方式抓取远程页面内容
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.Post_Http(System.String,System.String,System.String)">
+            <summary>
+            以POST方式抓取远程页面内容
+            </summary>
+            <param name="url"></param>
+            <param name="postData">参数列表</param>
+            <param name="encodeType"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.ZipHtml(System.String)">
+            <summary>
+            压缩HTML输出
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.HtmlHelper.DelHtml(System.String,System.String)">
+            <summary>
+            过滤指定HTML标签
+            </summary>
+            <param name="s_TextStr">要过滤的字符</param>
+            <param name="html_Str">a img p div</param>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.IPHelper.IsIP(System.String)">
+            <summary>
+            是否为ip
+            </summary>
+            <param name="ip"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.IPHelper.GetIP(Microsoft.AspNetCore.Http.HttpRequest)">
+            <summary>
+            获得IP地址
+            </summary>
+            <param name="request"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Common.Helpers.MD5Encrypt">
+            <summary>
+            MD5加密
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.MD5Encrypt.Encrypt16(System.String)">
+            <summary>
+            16位MD5加密
+            </summary>
+            <param name="password"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.MD5Encrypt.Encrypt32(System.String)">
+            <summary>
+            32位MD5加密
+            </summary>
+            <param name="password"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.MD5Encrypt.Encrypt64(System.String)">
+            <summary>
+            64位MD5加密
+            </summary>
+            <param name="password"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Common.Helpers.StringHelper">
+            <summary>
+            字符串帮助类
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.StringHelper.GenerateRandom(System.Int32)">
+            <summary>
+            生成随机字符串,默认32位
+            </summary>
+            <param name="length">随机数长度</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.StringHelper.GenerateRandomNumber(System.Int32)">
+            <summary>
+            生成随机字符串,只包含数字
+            </summary>
+            <param name="length"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.UnicodeHelper.StringToUnicode(System.String)">
+            <summary>
+            字符串转Unicode码
+            </summary>
+            <returns>The to unicode.</returns>
+            <param name="value">Value.</param>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.UnicodeHelper.UnicodeToString(System.String)">
+            <summary>
+            Unicode转字符串
+            </summary>
+            <returns>The to string.</returns>
+            <param name="unicode">Unicode.</param>
+        </member>
+        <member name="T:ZhonTai.Common.Helpers.UploadHelper">
+            <summary>
+            文件上传帮助类
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.UploadHelper.UploadAsync(Microsoft.AspNetCore.Http.IFormFile,ZhonTai.Common.Configs.FileUploadConfig,System.Object,System.Threading.CancellationToken)">
+            <summary>
+            上传单文件
+            </summary>
+            <param name="file"></param>
+            <param name="config"></param>
+            <param name="args"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Common.Helpers.UploadHelper.SaveAsync(Microsoft.AspNetCore.Http.IFormFile,System.String,System.Threading.CancellationToken)">
+            <summary>
+            保存文件
+            </summary>
+            <param name="file"></param>
+            <param name="filePath"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.StringExtension.IsNull(System.String)">
+            <summary>
+            判断字符串是否为Null、空
+            </summary>
+            <param name="s"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.StringExtension.NotNull(System.String)">
+            <summary>
+            判断字符串是否不为Null、空
+            </summary>
+            <param name="s"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.StringExtension.EqualsIgnoreCase(System.String,System.String)">
+            <summary>
+            与字符串进行比较,忽略大小写
+            </summary>
+            <param name="s"></param>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.StringExtension.FirstCharToLower(System.String)">
+            <summary>
+            首字母转小写
+            </summary>
+            <param name="s"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.StringExtension.FirstCharToUpper(System.String)">
+            <summary>
+            首字母转大写
+            </summary>
+            <param name="s"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.StringExtension.ToBase64(System.String)">
+            <summary>
+            转为Base64,UTF-8格式
+            </summary>
+            <param name="s"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.StringExtension.ToBase64(System.String,System.Text.Encoding)">
+            <summary>
+            转为Base64
+            </summary>
+            <param name="s"></param>
+            <param name="encoding">编码</param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>

+ 1 - 1
src/shared/ZhonTai.Tools/Cache/ICache.cs → src/shared/ZhonTai.Tools/Cache/ICacheTool.cs

@@ -6,7 +6,7 @@ namespace ZhonTai.Tools.Cache
     /// <summary>
     /// 缓存接口
     /// </summary>
-    public interface ICache
+    public interface ICacheTool
     {
         /// <summary>
         /// 用于在 key 存在时删除 key

+ 2 - 2
src/shared/ZhonTai.Tools/Cache/MemoryCache.cs → src/shared/ZhonTai.Tools/Cache/MemoryCacheTool.cs

@@ -13,11 +13,11 @@ namespace ZhonTai.Tools.Cache
     /// <summary>
     /// 内存缓存
     /// </summary>
-    public class MemoryCache : ICache
+    public class MemoryCacheTool : ICacheTool
     {
         private readonly IMemoryCache _memoryCache;
 
-        public MemoryCache(IMemoryCache memoryCache)
+        public MemoryCacheTool(IMemoryCache memoryCache)
         {
             _memoryCache = memoryCache;
         }

+ 1 - 1
src/shared/ZhonTai.Tools/Cache/RedisCache.cs → src/shared/ZhonTai.Tools/Cache/RedisCacheTool.cs

@@ -7,7 +7,7 @@ namespace ZhonTai.Tools.Cache
     /// <summary>
     /// Redis缓存
     /// </summary>
-    public class RedisCache : ICache
+    public class RedisCacheTool : ICacheTool
     {
         public long Del(params string[] key)
         {

+ 5 - 0
src/shared/ZhonTai.Tools/Captcha/Dto/CaptchaInput.cs

@@ -7,6 +7,11 @@
         /// </summary>
         public string Token { get; set; }
 
+        /// <summary>
+        /// 缓存键
+        /// </summary>
+        public string CaptchaKey { get; set; }
+
         /// <summary>
         /// 删除缓存
         /// </summary>

+ 2 - 2
src/shared/ZhonTai.Tools/Captcha/ICaptcha.cs → src/shared/ZhonTai.Tools/Captcha/ICaptchaTool.cs

@@ -6,13 +6,13 @@ namespace ZhonTai.Tools.Captcha
     /// <summary>
     /// 验证接口
     /// </summary>
-    public interface ICaptcha
+    public interface ICaptchaTool
     {
         /// <summary>
         /// 获得验证数据
         /// </summary>
         /// <returns></returns>
-        Task<CaptchaOutput> GetAsync();
+        Task<CaptchaOutput> GetAsync(string captchaKey);
 
         /// <summary>
         /// 检查验证数据

+ 6 - 6
src/shared/ZhonTai.Tools/Captcha/SlideJigsawCaptcha.cs → src/shared/ZhonTai.Tools/Captcha/SlideJigsawCaptchaTool.cs

@@ -20,11 +20,11 @@ namespace ZhonTai.Tools.Captcha
     /// 滑块拼图验证
     /// </summary>
     [SingleInstance]
-    public class SlideJigsawCaptcha : ICaptcha
+    public class SlideJigsawCaptchaTool : ICaptchaTool
     {
-        private readonly ICache _cache;
+        private readonly ICacheTool _cache;
 
-        public SlideJigsawCaptcha(ICache cache)
+        public SlideJigsawCaptchaTool(ICacheTool cache)
         {
             _cache = cache;
         }
@@ -366,7 +366,7 @@ namespace ZhonTai.Tools.Captcha
         /// 获得验证数据
         /// </summary>
         /// <returns>JObject</returns>
-        public async Task<CaptchaOutput> GetAsync()
+        public async Task<CaptchaOutput> GetAsync(string captchaKey)
         {
             //获取网络图片
             //var client = new HttpClient();
@@ -417,7 +417,7 @@ namespace ZhonTai.Tools.Captcha
                 }
             };
 
-            var key = string.Format(CacheKey.VerifyCodeKey, token);
+            var key = string.Format(captchaKey, token);
             await _cache.SetAsync(key, point.X);
 
             return captchaData;
@@ -434,7 +434,7 @@ namespace ZhonTai.Tools.Captcha
             {
                 return false;
             }
-            var key = string.Format(CacheKey.VerifyCodeKey, input.Token);
+            var key = string.Format(input.CaptchaKey, input.Token);
             if (await _cache.ExistsAsync(key))
             {
                 try

+ 10 - 9
src/tests/ZhonTai.Plate.Admin.Tests/BaseControllerTest.cs

@@ -10,21 +10,22 @@ using Newtonsoft.Json.Linq;
 using Xunit;
 using ZhonTai.Common.Configs;
 using ZhonTai.Tools.Captcha;
-using ZhonTai.Plate.Admin.Service.Auth.Input;
 using ZhonTai.Tools.Cache;
+using ZhonTai.Plate.Admin.Service.Auth.Input;
+using ZhonTai.Plate.Admin.Service.Contracts;
 
 namespace ZhonTai.Plate.Admin.Tests
 {
     public class BaseControllerTest : BaseTest
     {
-        private readonly ICache _cache;
-        private readonly ICaptcha _captcha;
+        private readonly ICacheTool _cache;
+        private readonly ICaptchaTool _captcha;
         private readonly AppConfig _appConfig;
 
         protected BaseControllerTest()
         {
-            _cache = GetService<ICache>();
-            _captcha = GetService<ICaptcha>();
+            _cache = GetService<ICacheTool>();
+            _captcha = GetService<ICaptchaTool>();
             _appConfig = GetService<AppConfig>();
         }
 
@@ -115,14 +116,14 @@ namespace ZhonTai.Plate.Admin.Tests
 
             if (input == null && _appConfig.VarifyCode.Enable)
             {
-                var res = await _captcha.GetAsync();
-                var verifyCodeKey = string.Format(CacheKey.VerifyCodeKey, res.Token);
-                var verifyCode = await _cache.GetAsync(verifyCodeKey);
+                var res = await _captcha.GetAsync(CacheKey.CaptchaKey);
+                var captchaKey = string.Format(CacheKey.CaptchaKey, res.Token);
+                var captchaData = await _cache.GetAsync(captchaKey);
                 input = new AuthLoginInput()
                 {
                     UserName = "admin",
                     Password = "111111",
-                    Captcha = new CaptchaInput { Token = res.Token, Data = JsonConvert.SerializeObject(new { X = verifyCode }) }
+                    Captcha = new CaptchaInput { CaptchaKey = CacheKey.CaptchaKey, Token = res.Token, Data = JsonConvert.SerializeObject(new { X = captchaData }) }
                 };
             }