From 356c47fb0ea1a642784e85c82833141d065bc4bc Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期二, 05 八月 2025 09:22:25 +0800 Subject: [PATCH] feat:动态控制器开发 --- FlexJobApi.User.Application/Resources/Queries/GetResourcesQueryHandler.cs | 2 FlexJobApi.User.Application/Roles/RoleAppService.cs | 124 FlexJobApi.Core/Utils/ResourceUtils/ResourceUtils.cs | 251 +++ FlexJobApi.Core/Utils/ResourceUtils/ResourceModel.cs | 41 FlexJobApi.Core/Models/User/Roles/Commands/SaveRoleCommand.cs | 1 FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs | 16 FlexJobApi.User.Application/Resources/ResourceAppService.cs | 66 FlexJobApi.Core/Models/User/Roles/Queries/GetRolesQuery.cs | 1 FlexJobApi.User.Application/Menus/MenuAppService.cs | 176 +- FlexJobApi.User.Application/Auths/AuthAppService.cs | 77 FlexJobApi.Core/Enums/Common/EnumErrorCodeType.cs | 5 FlexJobApi.Core/Models/User/Menus/Commands/SetMenuSwitchCommand.cs | 1 FlexJobApi.Core/Enums/Common/EnumResourceMethod.cs | 4 FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuFieldCommand.cs | 1 FlexJobApi.Core/FlexJobApi.Core.xml | 352 +++- FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuButtonCommand.cs | 1 FlexJobApi.Core/Models/User/Resources/Queries/GetResourceFieldsQuery.cs | 1 FlexJobApi.Core/Models/User/Resources/Queries/GetResourcesQuery.cs | 10 FlexJobApi.Core/Enums/Common/EnumResourceController.cs | 40 FlexJobApi.Database.Migrations/Migrations/20250804152934_UpdateResource.Designer.cs | 2159 +++++++++++++++++++++++++++++++++ FlexJobApi.User.Application/FlexJobApi.User.Application.xml | 147 -- FlexJobApi.Core/Utils/ResourceUtils/ResourceServiceAttribute.cs | 64 FlexJobApi.Core/Utils/ResourceUtils/BuildDynamicControllersHostedService.cs | 23 FlexJobApi.Database.Migrations/Migrations/20250804152934_UpdateResource.cs | 78 + FlexJobApi.Core/Entities/Common/Resource.cs | 24 FlexJobApi.Core/Enums/Common/EnumResourceService.cs | 26 FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs | 4 FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuCommand.cs | 4 FlexJobApi.Core/Models/User/Menus/Queries/GetMenuQuery.cs | 3 FlexJobApi.Application/Dictionaries/DictionaryAppService.cs | 50 FlexJobApi.Application/FlexJobApi.Application.xml | 17 FlexJobApi.Core/Models/User/Menus/Commands/DeleteMenuCommand.cs | 1 FlexJobApi.User.Application/Menus/Queries/GetMenuQueryHandler.cs | 1 /dev/null | 12 FlexJobApi.Core/FlexJobApiCoreStartup.cs | 9 FlexJobApi.User.Application/Menus/Queries/GetMenusQueryHandler.cs | 1 FlexJobApi.Core/Models/User/Menus/Queries/GetMenusQuery.cs | 1 FlexJobApi.Core/Models/User/Auths/Queries/GetAliyunOSSAcsQuery.cs | 1 FlexJobApi.Core/Models/User/Auths/Commands/PasswordLoginCommand.cs | 1 FlexJobApi.Core/Models/User/Roles/Queries/GetRoleQuery.cs | 1 FlexJobApi.Core/Models/User/Roles/Commands/DeleteRoleCommand.cs | 1 FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs | 82 FlexJobApi.Core/Models/Main/Dictionaries/Queries/GetDictionaryDatasQuery.cs | 11 43 files changed, 3,252 insertions(+), 639 deletions(-) diff --git a/FlexJobApi.Application/Dictionaries/DictionaryAppService.cs b/FlexJobApi.Application/Dictionaries/DictionaryAppService.cs index 77900de..f56d20c 100644 --- a/FlexJobApi.Application/Dictionaries/DictionaryAppService.cs +++ b/FlexJobApi.Application/Dictionaries/DictionaryAppService.cs @@ -1,27 +1,27 @@ -锘縰sing FlexJobApi.Core; -using Furion.DynamicApiController; -using MediatR; -using Microsoft.AspNetCore.Mvc; +锘�//using FlexJobApi.Core; +//using Furion.DynamicApiController; +//using MediatR; +//using Microsoft.AspNetCore.Mvc; -namespace FlexJobApi.Application -{ - /// <summary> - /// 鏁版嵁瀛楀吀 - /// </summary> - [Route("api/main/[controller]")] - public class DictionaryAppService(IMediator mediator) : IDynamicApiController - { - private readonly IMediator mediator = mediator; +//namespace FlexJobApi.Application +//{ +// /// <summary> +// /// 鏁版嵁瀛楀吀 +// /// </summary> +// [Route("api/main/[controller]")] +// public class DictionaryAppService(IMediator mediator) : IDynamicApiController +// { +// private readonly IMediator mediator = mediator; - /// <summary> - /// 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 - /// </summary> - /// <param name="query"></param> - /// <returns></returns> - [HttpPost] - public Task<GetDictionaryDatasQueryResult> GetDictionaryDatas([FromBody] GetDictionaryDatasQuery query) - { - return mediator.Send(query); - } - } -} +// /// <summary> +// /// 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 +// /// </summary> +// /// <param name="query"></param> +// /// <returns></returns> +// [HttpPost] +// public Task<PagedListQueryResult<GetDictionaryDatasQueryResultItem>> GetDictionaryDatas([FromBody] GetDictionaryDatasQuery query) +// { +// return mediator.Send(query); +// } +// } +//} diff --git a/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs b/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs index cfa4f72..006fffe 100644 --- a/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs +++ b/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs @@ -11,9 +11,9 @@ /// <summary> /// 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 /// </summary> - public class GetDictionaryDatasQueryHandler : IRequestHandler<GetDictionaryDatasQuery, GetDictionaryDatasQueryResult> + public class GetDictionaryDatasQueryHandler : IRequestHandler<GetDictionaryDatasQuery, PagedListQueryResult<GetDictionaryDatasQueryResultItem>> { - public Task<GetDictionaryDatasQueryResult> Handle(GetDictionaryDatasQuery request, CancellationToken cancellationToken) + public Task<PagedListQueryResult<GetDictionaryDatasQueryResultItem>> Handle(GetDictionaryDatasQuery request, CancellationToken cancellationToken) { throw new NotImplementedException(); } diff --git a/FlexJobApi.Application/FlexJobApi.Application.xml b/FlexJobApi.Application/FlexJobApi.Application.xml index ccec683..705ed9b 100644 --- a/FlexJobApi.Application/FlexJobApi.Application.xml +++ b/FlexJobApi.Application/FlexJobApi.Application.xml @@ -4,23 +4,6 @@ <name>FlexJobApi.Application</name> </assembly> <members> - <member name="T:FlexJobApi.Application.DictionaryAppService"> - <summary> - 鏁版嵁瀛楀吀 - </summary> - </member> - <member name="M:FlexJobApi.Application.DictionaryAppService.#ctor(MediatR.IMediator)"> - <summary> - 鏁版嵁瀛楀吀 - </summary> - </member> - <member name="M:FlexJobApi.Application.DictionaryAppService.GetDictionaryDatas(FlexJobApi.Core.GetDictionaryDatasQuery)"> - <summary> - 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 - </summary> - <param name="query"></param> - <returns></returns> - </member> <member name="T:FlexJobApi.Application.GetDictionaryDatasQueryHandler"> <summary> 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 diff --git a/FlexJobApi.Core/Entities/Common/Resource.cs b/FlexJobApi.Core/Entities/Common/Resource.cs index 01de32d..2756c99 100644 --- a/FlexJobApi.Core/Entities/Common/Resource.cs +++ b/FlexJobApi.Core/Entities/Common/Resource.cs @@ -13,10 +13,16 @@ public class Resource : CommonEntity, IDbAuditLogIgnore { /// <summary> - /// 寰湇鍔� + /// 鎺у埗鍣� /// </summary> [Required] - public string Service { get; set; } + public EnumResourceController Controller { get; set; } + + /// <summary> + /// 濮旀墭鍚嶇О + /// </summary> + [Required] + public string ActionName { get; set; } /// <summary> /// 缂栧彿 @@ -33,7 +39,7 @@ /// <summary> /// 璇锋眰鏂瑰紡 /// </summary> - public EnumWebApiMethod Method { get; set; } + public EnumResourceMethod Method { get; set; } /// <summary> /// 璺敱 @@ -48,12 +54,24 @@ public string RequestTypeName { get; set; } /// <summary> + /// 璇锋眰绫诲瀷鍏ㄥ悕 + /// </summary> + [Required] + public string RequestTypeFullName { get; set; } + + /// <summary> /// 鍝嶅簲绫诲瀷鍚嶇О /// </summary> [Required] public string ResponseTypeName { get; set; } /// <summary> + /// 鍝嶅簲绫诲瀷鍏ㄥ悕 + /// </summary> + [Required] + public string ResponseTypeFullName { get; set; } + + /// <summary> /// 鏄惁宸茶繃鏈� /// </summary> public bool IsExpired { get; set; } diff --git a/FlexJobApi.Core/Enums/Common/EnumErrorCodeType.cs b/FlexJobApi.Core/Enums/Common/EnumErrorCodeType.cs index 1b7f374..fa3d72d 100644 --- a/FlexJobApi.Core/Enums/Common/EnumErrorCodeType.cs +++ b/FlexJobApi.Core/Enums/Common/EnumErrorCodeType.cs @@ -35,5 +35,10 @@ /// </summary> [ErrorCodeItemMetadata("璇0}涓嶅彲淇敼")] s410 = 410, + /// <summary> + /// 绯荤粺寮傚父锛岃鑱旂郴绠$悊鍛� + /// </summary> + [ErrorCodeItemMetadata("绯荤粺寮傚父锛岃鑱旂郴绠$悊鍛�")] + s500 = 500, } } diff --git a/FlexJobApi.Core/Enums/Common/EnumResourceController.cs b/FlexJobApi.Core/Enums/Common/EnumResourceController.cs new file mode 100644 index 0000000..b3968dc --- /dev/null +++ b/FlexJobApi.Core/Enums/Common/EnumResourceController.cs @@ -0,0 +1,40 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + /// <summary> + /// 璧勬簮鎺у埗鍣� + /// </summary> + public enum EnumResourceController + { + /// <summary> + /// 鏁版嵁瀛楀吀 + /// </summary> + [ResourceController(Service = EnumResourceService.Main)] + Dictionary, + /// <summary> + /// 鐢ㄦ埛璁よ瘉 + /// </summary> + [ResourceController(Service = EnumResourceService.User)] + Auth, + /// <summary> + /// 鐢ㄦ埛鑿滃崟 + /// </summary> + [ResourceController(Service = EnumResourceService.User)] + Menu, + /// <summary> + /// 鐢ㄦ埛璧勬簮 + /// </summary> + [ResourceController(Service = EnumResourceService.User)] + Resource, + /// <summary> + /// 鐢ㄦ埛瑙掕壊 + /// </summary> + [ResourceController(Service = EnumResourceService.User)] + Role + } +} diff --git a/FlexJobApi.Core/Enums/Common/EnumWebApiMethod.cs b/FlexJobApi.Core/Enums/Common/EnumResourceMethod.cs similarity index 89% rename from FlexJobApi.Core/Enums/Common/EnumWebApiMethod.cs rename to FlexJobApi.Core/Enums/Common/EnumResourceMethod.cs index 896ddb9..db975c6 100644 --- a/FlexJobApi.Core/Enums/Common/EnumWebApiMethod.cs +++ b/FlexJobApi.Core/Enums/Common/EnumResourceMethod.cs @@ -7,9 +7,9 @@ namespace FlexJobApi.Core { /// <summary> - /// 鎺ュ彛璇锋眰鏂瑰紡 + /// 璧勬簮璇锋眰鏂瑰紡 /// </summary> - public enum EnumWebApiMethod + public enum EnumResourceMethod { /// <summary> /// 鏌ヨ diff --git a/FlexJobApi.Core/Enums/Common/EnumResourceService.cs b/FlexJobApi.Core/Enums/Common/EnumResourceService.cs new file mode 100644 index 0000000..f458e9a --- /dev/null +++ b/FlexJobApi.Core/Enums/Common/EnumResourceService.cs @@ -0,0 +1,26 @@ +锘縰sing Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + /// <summary> + /// 璧勬簮鏈嶅姟 + /// </summary> + public enum EnumResourceService + { + /// <summary> + /// 涓绘湇鍔� + /// </summary> + [ResourceService(ApplicationName = "FlexJobApi.Application", RouteArea = "main")] + Main, + /// <summary> + /// 鐢ㄦ埛鏈嶅姟 + /// </summary> + [ResourceService(ApplicationName = "FlexJobApi.User.Application", RouteArea = "user")] + User + } +} diff --git a/FlexJobApi.Core/Enums/Common/EnumWebApiAccess.cs b/FlexJobApi.Core/Enums/Common/EnumWebApiAccess.cs deleted file mode 100644 index cb18fd1..0000000 --- a/FlexJobApi.Core/Enums/Common/EnumWebApiAccess.cs +++ /dev/null @@ -1,16 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace FlexJobApi.Core -{ - /// <summary> - /// 鎺ュ彛閫氶亾 - /// </summary> - public enum EnumWebApiAccess - { - User = 10, - } -} diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml index db1dfaa..b331637 100644 --- a/FlexJobApi.Core/FlexJobApi.Core.xml +++ b/FlexJobApi.Core/FlexJobApi.Core.xml @@ -239,9 +239,14 @@ 璧勬簮 </summary> </member> - <member name="P:FlexJobApi.Core.Resource.Service"> + <member name="P:FlexJobApi.Core.Resource.Controller"> <summary> - 寰湇鍔� + 鎺у埗鍣� + </summary> + </member> + <member name="P:FlexJobApi.Core.Resource.ActionName"> + <summary> + 濮旀墭鍚嶇О </summary> </member> <member name="P:FlexJobApi.Core.Resource.Code"> @@ -269,9 +274,19 @@ 璇锋眰绫诲瀷鍚嶇О </summary> </member> + <member name="P:FlexJobApi.Core.Resource.RequestTypeFullName"> + <summary> + 璇锋眰绫诲瀷鍏ㄥ悕 + </summary> + </member> <member name="P:FlexJobApi.Core.Resource.ResponseTypeName"> <summary> 鍝嶅簲绫诲瀷鍚嶇О + </summary> + </member> + <member name="P:FlexJobApi.Core.Resource.ResponseTypeFullName"> + <summary> + 鍝嶅簲绫诲瀷鍏ㄥ悕 </summary> </member> <member name="P:FlexJobApi.Core.Resource.IsExpired"> @@ -1559,6 +1574,76 @@ RabbitMQ </summary> </member> + <member name="T:FlexJobApi.Core.EnumResourceController"> + <summary> + 璧勬簮鎺у埗鍣� + </summary> + </member> + <member name="F:FlexJobApi.Core.EnumResourceController.Dictionary"> + <summary> + 鏁版嵁瀛楀吀 + </summary> + </member> + <member name="F:FlexJobApi.Core.EnumResourceController.Auth"> + <summary> + 鐢ㄦ埛璁よ瘉 + </summary> + </member> + <member name="F:FlexJobApi.Core.EnumResourceController.Menu"> + <summary> + 鐢ㄦ埛鑿滃崟 + </summary> + </member> + <member name="F:FlexJobApi.Core.EnumResourceController.Resource"> + <summary> + 鐢ㄦ埛璧勬簮 + </summary> + </member> + <member name="F:FlexJobApi.Core.EnumResourceController.Role"> + <summary> + 鐢ㄦ埛瑙掕壊 + </summary> + </member> + <member name="T:FlexJobApi.Core.EnumResourceMethod"> + <summary> + 璧勬簮璇锋眰鏂瑰紡 + </summary> + </member> + <member name="F:FlexJobApi.Core.EnumResourceMethod.Get"> + <summary> + 鏌ヨ + </summary> + </member> + <member name="F:FlexJobApi.Core.EnumResourceMethod.Post"> + <summary> + 鎻愪氦 + </summary> + </member> + <member name="F:FlexJobApi.Core.EnumResourceMethod.Put"> + <summary> + 淇敼 + </summary> + </member> + <member name="F:FlexJobApi.Core.EnumResourceMethod.Delete"> + <summary> + 鍒犻櫎 + </summary> + </member> + <member name="T:FlexJobApi.Core.EnumResourceService"> + <summary> + 璧勬簮鏈嶅姟 + </summary> + </member> + <member name="F:FlexJobApi.Core.EnumResourceService.Main"> + <summary> + 涓绘湇鍔� + </summary> + </member> + <member name="F:FlexJobApi.Core.EnumResourceService.User"> + <summary> + 鐢ㄦ埛鏈嶅姟 + </summary> + </member> <member name="T:FlexJobApi.Core.EnumSmsAccess"> <summary> 鐭俊閫氶亾 @@ -1567,36 +1652,6 @@ <member name="F:FlexJobApi.Core.EnumSmsAccess.AliyunSms"> <summary> 闃块噷浜戠煭淇� - </summary> - </member> - <member name="T:FlexJobApi.Core.EnumWebApiAccess"> - <summary> - 鎺ュ彛閫氶亾 - </summary> - </member> - <member name="T:FlexJobApi.Core.EnumWebApiMethod"> - <summary> - 鎺ュ彛璇锋眰鏂瑰紡 - </summary> - </member> - <member name="F:FlexJobApi.Core.EnumWebApiMethod.Get"> - <summary> - 鏌ヨ - </summary> - </member> - <member name="F:FlexJobApi.Core.EnumWebApiMethod.Post"> - <summary> - 鎻愪氦 - </summary> - </member> - <member name="F:FlexJobApi.Core.EnumWebApiMethod.Put"> - <summary> - 淇敼 - </summary> - </member> - <member name="F:FlexJobApi.Core.EnumWebApiMethod.Delete"> - <summary> - 鍒犻櫎 </summary> </member> <member name="T:FlexJobApi.Core.EnumBillingMethod"> @@ -1922,11 +1977,6 @@ <member name="T:FlexJobApi.Core.GetDictionaryDatasQuery"> <summary> 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 - </summary> - </member> - <member name="T:FlexJobApi.Core.GetDictionaryDatasQueryResult"> - <summary> - 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃-缁撴灉 </summary> </member> <member name="T:FlexJobApi.Core.GetDictionaryDatasQueryResultItem"> @@ -2309,287 +2359,287 @@ 鏄惁缂撳瓨锛坣ull鏃朵笉鏇存柊锛� </summary> </member> - <member name="T:FlexJobApi.Core.Models.GetMenuQuery"> + <member name="T:FlexJobApi.Core.GetMenuQuery"> <summary> 鏌ヨ鑿滃崟璇︽儏 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQuery.Id"> + <member name="P:FlexJobApi.Core.GetMenuQuery.Id"> <summary> Id </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQuery.RoleId"> + <member name="P:FlexJobApi.Core.GetMenuQuery.RoleId"> <summary> 瑙掕壊Id </summary> </member> - <member name="T:FlexJobApi.Core.Models.GetMenuQueryResult"> + <member name="T:FlexJobApi.Core.GetMenuQueryResult"> <summary> 鏌ヨ鑿滃崟璇︽儏-缁撴灉 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.Id"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.Id"> <summary> Id </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.IsChecked"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.IsChecked"> <summary> 鏄惁閫夋嫨锛堢敤鎴疯鑹叉巿鏉冿級 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.UserType"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.UserType"> <summary> 鐢ㄦ埛绫诲瀷 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.ClientType"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.ClientType"> <summary> 瀹㈡埛绔被鍨� </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.ParentId"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.ParentId"> <summary> 涓婄骇Id </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.Path"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.Path"> <summary> 鑿滃崟璺緞 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.Code"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.Code"> <summary> 缂栧彿 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.Name"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.Name"> <summary> 鍚嶇О </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.Type"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.Type"> <summary> 绫诲瀷 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.VisitLevel"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.VisitLevel"> <summary> 璁块棶绾у埆 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.Icon"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.Icon"> <summary> 鍥炬爣 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.Url"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.Url"> <summary> 閾炬帴鍦板潃 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.IsDisabled"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.IsDisabled"> <summary> 鏄惁绂佺敤 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.IsCache"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.IsCache"> <summary> 鏄惁缂撳瓨 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.Sort"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.Sort"> <summary> 鎺掑簭 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.Remark"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.Remark"> <summary> 澶囨敞 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResult.Groups"> + <member name="P:FlexJobApi.Core.GetMenuQueryResult.Groups"> <summary> 鍒嗙粍 </summary> </member> - <member name="T:FlexJobApi.Core.Models.GetMenuQueryResultGroup"> + <member name="T:FlexJobApi.Core.GetMenuQueryResultGroup"> <summary> 鏌ヨ鑿滃崟璇︽儏-缁撴灉-鍒嗙粍 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultGroup.Group"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultGroup.Group"> <summary> 鍒嗙粍鍚嶇О锛堢敤浜庢寜閽�/瀛楁锛� </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultGroup.ButtonLocations"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultGroup.ButtonLocations"> <summary> 鎸夐挳浣嶇疆 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultGroup.Fields"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultGroup.Fields"> <summary> 瀛楁 </summary> </member> - <member name="T:FlexJobApi.Core.Models.GetMenuQueryResultButtonLocation"> + <member name="T:FlexJobApi.Core.GetMenuQueryResultButtonLocation"> <summary> 鏌ヨ鑿滃崟璇︽儏-缁撴灉-鎸夐挳浣嶇疆 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultButtonLocation.Location"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultButtonLocation.Location"> <summary> 浣嶇疆锛堢敤浜庢寜閽級 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultButtonLocation.Buttons"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultButtonLocation.Buttons"> <summary> 鎸夐挳 </summary> </member> - <member name="T:FlexJobApi.Core.Models.GetMenuQueryResultButton"> + <member name="T:FlexJobApi.Core.GetMenuQueryResultButton"> <summary> 鏌ヨ鑿滃崟璇︽儏-缁撴灉-鎸夐挳椤� </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultButton.Id"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultButton.Id"> <summary> Id </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultButton.IsChecked"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultButton.IsChecked"> <summary> 鏄惁閫夋嫨锛堢敤鎴疯鑹叉巿鏉冿級 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultButton.Code"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultButton.Code"> <summary> 缂栧彿 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultButton.Name"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultButton.Name"> <summary> 鍚嶇О </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultButton.Icon"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultButton.Icon"> <summary> 鍥炬爣 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultButton.Width"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultButton.Width"> <summary> 瀹藉害锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛� </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultButton.Sort"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultButton.Sort"> <summary> 鎺掑簭 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultButton.Remark"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultButton.Remark"> <summary> 澶囨敞 </summary> </member> - <member name="T:FlexJobApi.Core.Models.GetMenuQueryResultField"> + <member name="T:FlexJobApi.Core.GetMenuQueryResultField"> <summary> 鏌ヨ鑿滃崟璇︽儏-缁撴灉-瀛楁椤� </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultField.Id"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultField.Id"> <summary> Id </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultField.IsChecked"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultField.IsChecked"> <summary> 鏄惁閫夋嫨锛堢敤鎴疯鑹叉巿鏉冿級 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultField.Code"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultField.Code"> <summary> 缂栧彿 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultField.Name"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultField.Name"> <summary> 鍚嶇О </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultField.Width"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultField.Width"> <summary> 瀹藉害锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛� </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultField.Sort"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultField.Sort"> <summary> 鎺掑簭 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultField.Remark"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultField.Remark"> <summary> 澶囨敞 </summary> </member> - <member name="T:FlexJobApi.Core.Models.GetMenuQueryResultItem"> + <member name="T:FlexJobApi.Core.GetMenuQueryResultItem"> <summary> 鏌ヨ鑿滃崟璇︽儏-缁撴灉-椤� </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultItem.Id"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultItem.Id"> <summary> Id </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultItem.IsChecked"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultItem.IsChecked"> <summary> 鏄惁閫夋嫨锛堢敤鎴疯鑹叉巿鏉冿級 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultItem.Code"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultItem.Code"> <summary> 缂栧彿 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultItem.Name"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultItem.Name"> <summary> 鍚嶇О </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultItem.Type"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultItem.Type"> <summary> 绫诲瀷 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultItem.Icon"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultItem.Icon"> <summary> 鍥炬爣 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultItem.Group"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultItem.Group"> <summary> 鍒嗙粍鍚嶇О锛堢敤浜庢寜閽�/瀛楁锛� </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultItem.Location"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultItem.Location"> <summary> 浣嶇疆锛堢敤浜庢寜閽級 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultItem.Width"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultItem.Width"> <summary> 瀹藉害锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛� </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultItem.Sort"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultItem.Sort"> <summary> 鎺掑簭 </summary> </member> - <member name="P:FlexJobApi.Core.Models.GetMenuQueryResultItem.Remark"> + <member name="P:FlexJobApi.Core.GetMenuQueryResultItem.Remark"> <summary> 澶囨敞 </summary> @@ -2722,11 +2772,6 @@ <member name="T:FlexJobApi.Core.GetResourcesQuery"> <summary> 鑾峰彇璧勬簮鍒楄〃 - </summary> - </member> - <member name="P:FlexJobApi.Core.GetResourcesQuery.Service"> - <summary> - 寰湇鍔� </summary> </member> <member name="P:FlexJobApi.Core.GetResourcesQuery.Method"> @@ -3137,6 +3182,15 @@ <param name="type"></param> <returns></returns> </member> + <member name="M:FlexJobApi.Core.EnumUtils.GetDescription``1(FlexJobApi.Core.EnumModel{``0},``0)"> + <summary> + 鑾峰彇鎻忚堪 + </summary> + <typeparam name="T"></typeparam> + <param name="model"></param> + <param name="t"></param> + <returns></returns> + </member> <member name="M:FlexJobApi.Core.EnumUtils.GetEnum``1(FlexJobApi.Core.EnumModel{``0},System.String)"> <summary> 鑾峰彇鏋氫妇 @@ -3460,9 +3514,29 @@ 璺熻釜Id </summary> </member> - <member name="P:FlexJobApi.Core.ResourceModel.Service"> + <member name="P:FlexJobApi.Core.ResourceModel.ApplicationName"> <summary> - 寰湇鍔� + 搴旂敤鍚嶇О + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceModel.RouteArea"> + <summary> + 璺敱鍖哄煙 + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceModel.Controller"> + <summary> + 鎺у埗鍣� + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceModel.ControllerSummary"> + <summary> + 鎺у埗鍣ㄦ憳瑕� + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceModel.ActionName"> + <summary> + 濮旀墭鍚嶇О </summary> </member> <member name="P:FlexJobApi.Core.ResourceModel.Code"> @@ -3473,6 +3547,11 @@ <member name="P:FlexJobApi.Core.ResourceModel.Name"> <summary> 鍚嶇О + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceModel.AllowAnonymous"> + <summary> + 蹇界暐鏉冮檺 </summary> </member> <member name="P:FlexJobApi.Core.ResourceModel.Method"> @@ -3490,9 +3569,64 @@ 璇锋眰绫诲瀷鍚嶇О </summary> </member> + <member name="P:FlexJobApi.Core.ResourceModel.RequestTypeFullName"> + <summary> + 璇锋眰绫诲瀷鍏ㄥ悕 + </summary> + </member> <member name="P:FlexJobApi.Core.ResourceModel.ResponseTypeName"> <summary> 鍝嶅簲绫诲瀷鍚嶇О + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceModel.ResponseTypeFullName"> + <summary> + 鍝嶅簲绫诲瀷鍏ㄥ悕 + </summary> + </member> + <member name="T:FlexJobApi.Core.ResourceAttribute"> + <summary> + 璧勬簮鐗规�� + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceAttribute.Controllers"> + <summary> + 璧勬簮鎺у埗鍣� + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceAttribute.AllowAnonymous"> + <summary> + 蹇界暐鏉冮檺 + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceAttribute.Method"> + <summary> + 璇锋眰鏂瑰紡 + </summary> + </member> + <member name="T:FlexJobApi.Core.ResourceControllerAttribute"> + <summary> + 璧勬簮鎺у埗鍣ㄧ壒鎬� + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceControllerAttribute.Service"> + <summary> + 鏈嶅姟 + </summary> + </member> + <member name="T:FlexJobApi.Core.ResourceServiceAttribute"> + <summary> + 璧勬簮鏈嶅姟鐗规�� + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceServiceAttribute.ApplicationName"> + <summary> + 搴旂敤鍚嶇О + </summary> + </member> + <member name="P:FlexJobApi.Core.ResourceServiceAttribute.RouteArea"> + <summary> + 璺敱鍖哄煙 </summary> </member> <member name="T:FlexJobApi.Core.ResourceUtils"> @@ -3500,11 +3634,16 @@ 璧勬簮宸ュ叿 </summary> </member> - <member name="M:FlexJobApi.Core.ResourceUtils.BuildWebApis(System.Threading.CancellationToken)"> + <member name="M:FlexJobApi.Core.ResourceUtils.BuildDynamicControllersAsync"> <summary> - 鐢熸垚璧勬簮 + 鐢熸垚鍔ㄦ�佹帶鍒跺櫒 </summary> - <param name="cancellationToken"></param> + </member> + <member name="M:FlexJobApi.Core.ResourceUtils.GetCSharpFriendlyName(System.Type)"> + <summary> + 鑾峰彇C#鍙嬪ソ鍚嶇О + </summary> + <param name="type"></param> <returns></returns> </member> <member name="T:FlexJobApi.Core.StringUtils"> @@ -3618,5 +3757,10 @@ 璇0}涓嶅彲淇敼 </summary> </member> + <member name="F:FlexJobApi.User.Application.EnumErrorCodeType.s500"> + <summary> + 绯荤粺寮傚父锛岃鑱旂郴绠$悊鍛� + </summary> + </member> </members> </doc> diff --git a/FlexJobApi.Core/FlexJobApiCoreStartup.cs b/FlexJobApi.Core/FlexJobApiCoreStartup.cs index f52f125..c913fe3 100644 --- a/FlexJobApi.Core/FlexJobApiCoreStartup.cs +++ b/FlexJobApi.Core/FlexJobApiCoreStartup.cs @@ -50,6 +50,7 @@ services.AddMediatR(cfg => cfg.RegisterServicesFromAssemblies(App.Assemblies.ToArray())); services.AddHostedService<XmlDocBuildHostedService>(); + services.AddHostedService<BuildDynamicControllersHostedService>(); services.AddJwt<JwtHandler>(enableGlobalAuthorize: true); @@ -107,10 +108,10 @@ endpoints.MapControllers(); }); - lifetime.ApplicationStarted.Register(async () => - { - await ResourceUtils.BuildWebApis(); - }); + //lifetime.ApplicationStarted.Register(async () => + //{ + // await ResourceUtils.BuildDynamicControllersAsync(); + //}); } } } diff --git a/FlexJobApi.Core/Models/Main/Dictionaries/Queries/GetDictionaryDatasQuery.cs b/FlexJobApi.Core/Models/Main/Dictionaries/Queries/GetDictionaryDatasQuery.cs index 583155d..f157ece 100644 --- a/FlexJobApi.Core/Models/Main/Dictionaries/Queries/GetDictionaryDatasQuery.cs +++ b/FlexJobApi.Core/Models/Main/Dictionaries/Queries/GetDictionaryDatasQuery.cs @@ -10,16 +10,9 @@ /// <summary> /// 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 /// </summary> - public class GetDictionaryDatasQuery : PagedListQuery<GetDictionaryDatasQueryResult, GetDictionaryDatasQueryResultItem> , IRequest<GetDictionaryDatasQueryResult> + [Resource([EnumResourceController.Dictionary])] + public class GetDictionaryDatasQuery : PagedListQuery<PagedListQueryResult<GetDictionaryDatasQueryResultItem>, GetDictionaryDatasQueryResultItem> , IRequest<PagedListQueryResult<GetDictionaryDatasQueryResultItem>> { - } - - /// <summary> - /// 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃-缁撴灉 - /// </summary> - public class GetDictionaryDatasQueryResult : PagedListQueryResult<GetDictionaryDatasQueryResultItem> - { - } /// <summary> diff --git a/FlexJobApi.Core/Models/User/Auths/Commands/PasswordLoginCommand.cs b/FlexJobApi.Core/Models/User/Auths/Commands/PasswordLoginCommand.cs index abc5183..d425e82 100644 --- a/FlexJobApi.Core/Models/User/Auths/Commands/PasswordLoginCommand.cs +++ b/FlexJobApi.Core/Models/User/Auths/Commands/PasswordLoginCommand.cs @@ -12,6 +12,7 @@ /// <summary> /// 瀵嗙爜鐧诲綍 /// </summary> + [Resource([EnumResourceController.Auth], AllowAnonymous = true)] public class PasswordLoginCommand : IRequest<PasswordLoginCommandCallback> { /// <summary> diff --git a/FlexJobApi.Core/Models/User/Auths/Queries/GetAliyunOSSAcsQuery.cs b/FlexJobApi.Core/Models/User/Auths/Queries/GetAliyunOSSAcsQuery.cs index 628cc0b..6a103ca 100644 --- a/FlexJobApi.Core/Models/User/Auths/Queries/GetAliyunOSSAcsQuery.cs +++ b/FlexJobApi.Core/Models/User/Auths/Queries/GetAliyunOSSAcsQuery.cs @@ -10,6 +10,7 @@ /// <summary> /// 鑾峰彇闃块噷浜慜SS鎺堟潈淇℃伅 /// </summary> + [Resource([EnumResourceController.Auth])] public class GetAliyunOSSAcsQuery : IRequest<GetAliyunOSSAcsQueryResult> { } diff --git a/FlexJobApi.Core/Models/User/Menus/Commands/DeleteMenuCommand.cs b/FlexJobApi.Core/Models/User/Menus/Commands/DeleteMenuCommand.cs index 28ca271..13ce439 100644 --- a/FlexJobApi.Core/Models/User/Menus/Commands/DeleteMenuCommand.cs +++ b/FlexJobApi.Core/Models/User/Menus/Commands/DeleteMenuCommand.cs @@ -11,6 +11,7 @@ /// <summary> /// 鍒犻櫎鑿滃崟 /// </summary> + [Resource([EnumResourceController.Menu])] public class DeleteMenuCommand : DeleteCommand, IRequest<int> { diff --git a/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuButtonCommand.cs b/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuButtonCommand.cs index e2c8279..77bc812 100644 --- a/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuButtonCommand.cs +++ b/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuButtonCommand.cs @@ -10,6 +10,7 @@ /// <summary> /// 淇濆瓨鑿滃崟鎸夐挳 /// </summary> + [Resource([EnumResourceController.Menu])] public class SaveMenuButtonCommand : IRequest<Guid> { /// <summary> diff --git a/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuCommand.cs b/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuCommand.cs index b9fc1dc..200d8da 100644 --- a/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuCommand.cs +++ b/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuCommand.cs @@ -1,5 +1,4 @@ -锘縰sing FlexJobApi.Core.Models; -using MediatR; +锘縰sing MediatR; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -12,6 +11,7 @@ /// <summary> /// 淇濆瓨鑿滃崟 /// </summary> + [Resource([EnumResourceController.Menu])] public class SaveMenuCommand : IRequest<Guid> { public SaveMenuCommand() diff --git a/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuFieldCommand.cs b/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuFieldCommand.cs index d856536..a5d35cd 100644 --- a/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuFieldCommand.cs +++ b/FlexJobApi.Core/Models/User/Menus/Commands/SaveMenuFieldCommand.cs @@ -10,6 +10,7 @@ /// <summary> /// 淇濆瓨鑿滃崟瀛楁 /// </summary> + [Resource([EnumResourceController.Menu])] public class SaveMenuFieldCommand : IRequest<Guid> { /// <summary> diff --git a/FlexJobApi.Core/Models/User/Menus/Commands/SetMenuSwitchCommand.cs b/FlexJobApi.Core/Models/User/Menus/Commands/SetMenuSwitchCommand.cs index 404ff97..de74653 100644 --- a/FlexJobApi.Core/Models/User/Menus/Commands/SetMenuSwitchCommand.cs +++ b/FlexJobApi.Core/Models/User/Menus/Commands/SetMenuSwitchCommand.cs @@ -10,6 +10,7 @@ /// <summary> /// 璁剧疆鑿滃崟鍒囨崲淇℃伅 /// </summary> + [Resource([EnumResourceController.Menu])] public class SetMenuSwitchCommand : IRequest<int> { public SetMenuSwitchCommand() diff --git a/FlexJobApi.Core/Models/User/Menus/Queries/GetMenuQuery.cs b/FlexJobApi.Core/Models/User/Menus/Queries/GetMenuQuery.cs index 700b2da..02eb706 100644 --- a/FlexJobApi.Core/Models/User/Menus/Queries/GetMenuQuery.cs +++ b/FlexJobApi.Core/Models/User/Menus/Queries/GetMenuQuery.cs @@ -6,11 +6,12 @@ using System.Text; using System.Threading.Tasks; -namespace FlexJobApi.Core.Models +namespace FlexJobApi.Core { /// <summary> /// 鏌ヨ鑿滃崟璇︽儏 /// </summary> + [Resource([EnumResourceController.Menu])] public class GetMenuQuery : IRequest<GetMenuQueryResult> { /// <summary> diff --git a/FlexJobApi.Core/Models/User/Menus/Queries/GetMenusQuery.cs b/FlexJobApi.Core/Models/User/Menus/Queries/GetMenusQuery.cs index d7db2d6..9055eae 100644 --- a/FlexJobApi.Core/Models/User/Menus/Queries/GetMenusQuery.cs +++ b/FlexJobApi.Core/Models/User/Menus/Queries/GetMenusQuery.cs @@ -12,6 +12,7 @@ /// <summary> /// 鏌ヨ鑿滃崟鍒楄〃 /// </summary> + [Resource([EnumResourceController.Menu])] public class GetMenusQuery : IRequest<List<GetMenusQueryResultItem>> { public GetMenusQuery() diff --git a/FlexJobApi.Core/Models/User/Resources/Queries/GetResourceFieldsQuery.cs b/FlexJobApi.Core/Models/User/Resources/Queries/GetResourceFieldsQuery.cs index 6911507..f6d2917 100644 --- a/FlexJobApi.Core/Models/User/Resources/Queries/GetResourceFieldsQuery.cs +++ b/FlexJobApi.Core/Models/User/Resources/Queries/GetResourceFieldsQuery.cs @@ -10,6 +10,7 @@ /// <summary> /// 鑾峰彇璧勬簮瀛楁 /// </summary> + [Resource([EnumResourceController.Resource])] public class GetResourceFieldsQuery : IRequest<List<GetResourceFieldsQueryResultItem>> { /// <summary> diff --git a/FlexJobApi.Core/Models/User/Resources/Queries/GetResourcesQuery.cs b/FlexJobApi.Core/Models/User/Resources/Queries/GetResourcesQuery.cs index ad8c621..2e2993f 100644 --- a/FlexJobApi.Core/Models/User/Resources/Queries/GetResourcesQuery.cs +++ b/FlexJobApi.Core/Models/User/Resources/Queries/GetResourcesQuery.cs @@ -11,17 +11,13 @@ /// <summary> /// 鑾峰彇璧勬簮鍒楄〃 /// </summary> + [Resource([EnumResourceController.Resource])] public class GetResourcesQuery : IRequest<List<GetResourcesQueryResultItem>> { /// <summary> - /// 寰湇鍔� - /// </summary> - public string Service { get; set; } - - /// <summary> /// 璇锋眰鏂瑰紡 /// </summary> - public EnumWebApiMethod? Method { get; set; } + public EnumResourceMethod? Method { get; set; } /// <summary> /// 鍏抽敭瀛� @@ -67,7 +63,7 @@ /// <summary> /// 璇锋眰鏂瑰紡 /// </summary> - public EnumWebApiMethod Method { get; set; } + public EnumResourceMethod Method { get; set; } /// <summary> /// 璺敱 diff --git a/FlexJobApi.Core/Models/User/Roles/Commands/DeleteRoleCommand.cs b/FlexJobApi.Core/Models/User/Roles/Commands/DeleteRoleCommand.cs index 4aaadfa..98a987c 100644 --- a/FlexJobApi.Core/Models/User/Roles/Commands/DeleteRoleCommand.cs +++ b/FlexJobApi.Core/Models/User/Roles/Commands/DeleteRoleCommand.cs @@ -10,6 +10,7 @@ /// <summary> /// 鍒犻櫎瑙掕壊 /// </summary> + [Resource([EnumResourceController.Role])] public class DeleteRoleCommand : DeleteCommand, IRequest<int> { diff --git a/FlexJobApi.Core/Models/User/Roles/Commands/SaveRoleCommand.cs b/FlexJobApi.Core/Models/User/Roles/Commands/SaveRoleCommand.cs index 45452a1..5b498c5 100644 --- a/FlexJobApi.Core/Models/User/Roles/Commands/SaveRoleCommand.cs +++ b/FlexJobApi.Core/Models/User/Roles/Commands/SaveRoleCommand.cs @@ -10,6 +10,7 @@ /// <summary> /// 淇濆瓨瑙掕壊 /// </summary> + [Resource([EnumResourceController.Role])] public class SaveRoleCommand : IRequest<Guid> { public SaveRoleCommand() diff --git a/FlexJobApi.Core/Models/User/Roles/Queries/GetRoleQuery.cs b/FlexJobApi.Core/Models/User/Roles/Queries/GetRoleQuery.cs index bb9ba7b..3ff55a0 100644 --- a/FlexJobApi.Core/Models/User/Roles/Queries/GetRoleQuery.cs +++ b/FlexJobApi.Core/Models/User/Roles/Queries/GetRoleQuery.cs @@ -10,6 +10,7 @@ /// <summary> /// 鏌ヨ瑙掕壊璇︽儏 /// </summary> + [Resource([EnumResourceController.Role])] public class GetRoleQuery : IRequest<GetRoleQueryResult> { /// <summary> diff --git a/FlexJobApi.Core/Models/User/Roles/Queries/GetRolesQuery.cs b/FlexJobApi.Core/Models/User/Roles/Queries/GetRolesQuery.cs index 3ab3171..f46a790 100644 --- a/FlexJobApi.Core/Models/User/Roles/Queries/GetRolesQuery.cs +++ b/FlexJobApi.Core/Models/User/Roles/Queries/GetRolesQuery.cs @@ -11,6 +11,7 @@ /// <summary> /// 鏌ヨ瑙掕壊鍒嗛〉鍒楄〃 /// </summary> + [Resource([EnumResourceController.Role])] public class GetRolesQuery : PagedListQuery<PagedListQueryResult<GetRolesQueryResultItem>, GetRolesQueryResultItem>, IRequest<PagedListQueryResult<GetRolesQueryResultItem>> { /// <summary> diff --git a/FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs b/FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs index b7448be..5421781 100644 --- a/FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs +++ b/FlexJobApi.Core/Utils/EnumUtils/EnumUtils.cs @@ -67,6 +67,22 @@ } /// <summary> + /// 鑾峰彇鎻忚堪 + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="model"></param> + /// <param name="t"></param> + /// <returns></returns> + public static string GetDescription<T>(this EnumModel<T> model, T t) + where T : struct + { + return model.Items + .Where(it => it.Enum.Equals(t)) + .Select(it => it.Description) + .FirstOrDefault(); + } + + /// <summary> /// 鑾峰彇鏋氫妇 /// </summary> /// <typeparam name="T"></typeparam> diff --git a/FlexJobApi.Core/Utils/ResourceUtils/BuildDynamicControllersHostedService.cs b/FlexJobApi.Core/Utils/ResourceUtils/BuildDynamicControllersHostedService.cs new file mode 100644 index 0000000..5f46d5d --- /dev/null +++ b/FlexJobApi.Core/Utils/ResourceUtils/BuildDynamicControllersHostedService.cs @@ -0,0 +1,23 @@ +锘縰sing Microsoft.Extensions.Hosting; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + public class BuildDynamicControllersHostedService : IHostedService + { + public Task StartAsync(CancellationToken cancellationToken) + { + return ResourceUtils.BuildDynamicControllersAsync(); + } + + public Task StopAsync(CancellationToken cancellationToken) + { + return Task.CompletedTask; + } + } +} diff --git a/FlexJobApi.Core/Utils/ResourceUtils/DynamicControllerProvider.cs b/FlexJobApi.Core/Utils/ResourceUtils/DynamicControllerProvider.cs deleted file mode 100644 index 60e6d04..0000000 --- a/FlexJobApi.Core/Utils/ResourceUtils/DynamicControllerProvider.cs +++ /dev/null @@ -1,12 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace FlexJobApi.Core -{ - public class DynamicControllerProvider - { - } -} diff --git a/FlexJobApi.Core/Utils/ResourceUtils/ResourceModel.cs b/FlexJobApi.Core/Utils/ResourceUtils/ResourceModel.cs index d334aad..2c94af3 100644 --- a/FlexJobApi.Core/Utils/ResourceUtils/ResourceModel.cs +++ b/FlexJobApi.Core/Utils/ResourceUtils/ResourceModel.cs @@ -15,9 +15,29 @@ public string TraceId { get; set; } /// <summary> - /// 寰湇鍔� + /// 搴旂敤鍚嶇О /// </summary> - public string Service { get; set; } + public string ApplicationName { get; set; } + + /// <summary> + /// 璺敱鍖哄煙 + /// </summary> + public string RouteArea { get; set; } + + /// <summary> + /// 鎺у埗鍣� + /// </summary> + public EnumResourceController Controller { get; set; } + + /// <summary> + /// 鎺у埗鍣ㄦ憳瑕� + /// </summary> + public string ControllerSummary { get; set; } + + /// <summary> + /// 濮旀墭鍚嶇О + /// </summary> + public string ActionName { get; set; } /// <summary> /// 缂栧彿 @@ -30,9 +50,14 @@ public string Name { get; set; } /// <summary> + /// 蹇界暐鏉冮檺 + /// </summary> + public bool AllowAnonymous { get; set; } + + /// <summary> /// 璇锋眰鏂瑰紡 /// </summary> - public EnumWebApiMethod Method { get; set; } + public EnumResourceMethod Method { get; set; } /// <summary> /// 璺敱 @@ -45,8 +70,18 @@ public string RequestTypeName { get; set; } /// <summary> + /// 璇锋眰绫诲瀷鍏ㄥ悕 + /// </summary> + public string RequestTypeFullName { get; set; } + + /// <summary> /// 鍝嶅簲绫诲瀷鍚嶇О /// </summary> public string ResponseTypeName { get; set; } + + /// <summary> + /// 鍝嶅簲绫诲瀷鍏ㄥ悕 + /// </summary> + public string ResponseTypeFullName { get; set; } } } diff --git a/FlexJobApi.Core/Utils/ResourceUtils/ResourceServiceAttribute.cs b/FlexJobApi.Core/Utils/ResourceUtils/ResourceServiceAttribute.cs new file mode 100644 index 0000000..2578882 --- /dev/null +++ b/FlexJobApi.Core/Utils/ResourceUtils/ResourceServiceAttribute.cs @@ -0,0 +1,64 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + /// <summary> + /// 璧勬簮鐗规�� + /// </summary> + [AttributeUsage(AttributeTargets.Class)] + public class ResourceAttribute : Attribute + { + public ResourceAttribute(EnumResourceController[] controllers) + { + Controllers = controllers; + } + + /// <summary> + /// 璧勬簮鎺у埗鍣� + /// </summary> + public EnumResourceController[] Controllers { get; } + + /// <summary> + /// 蹇界暐鏉冮檺 + /// </summary> + public bool AllowAnonymous { get; set; } + + /// <summary> + /// 璇锋眰鏂瑰紡 + /// </summary> + public EnumResourceMethod? Method { get; set; } + } + + /// <summary> + /// 璧勬簮鎺у埗鍣ㄧ壒鎬� + /// </summary> + [AttributeUsage(AttributeTargets.Field)] + public class ResourceControllerAttribute : Attribute + { + /// <summary> + /// 鏈嶅姟 + /// </summary> + public EnumResourceService Service { get; set; } + } + + /// <summary> + /// 璧勬簮鏈嶅姟鐗规�� + /// </summary> + [AttributeUsage(AttributeTargets.Field)] + public class ResourceServiceAttribute : Attribute + { + /// <summary> + /// 搴旂敤鍚嶇О + /// </summary> + public string ApplicationName { get; set; } + + /// <summary> + /// 璺敱鍖哄煙 + /// </summary> + public string RouteArea { get; set; } + } +} diff --git a/FlexJobApi.Core/Utils/ResourceUtils/ResourceUtils.cs b/FlexJobApi.Core/Utils/ResourceUtils/ResourceUtils.cs index c31228c..fb77aa3 100644 --- a/FlexJobApi.Core/Utils/ResourceUtils/ResourceUtils.cs +++ b/FlexJobApi.Core/Utils/ResourceUtils/ResourceUtils.cs @@ -1,7 +1,11 @@ -锘縰sing Furion; +锘縰sing FlexJobApi.User.Application; +using Furion; using Furion.DatabaseAccessor; using Furion.DistributedIDGenerator; +using Furion.DynamicApiController; +using Furion.FriendlyException; using Mapster; +using MediatR; using Microsoft.AspNetCore.Mvc.ActionConstraints; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Routing; @@ -10,7 +14,9 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Text; +using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; @@ -22,63 +28,224 @@ public static class ResourceUtils { /// <summary> - /// 鐢熸垚璧勬簮 + /// 鐢熸垚鍔ㄦ�佹帶鍒跺櫒 /// </summary> - /// <param name="cancellationToken"></param> - /// <returns></returns> - public static async Task BuildWebApis(CancellationToken cancellationToken = default) + public static async Task BuildDynamicControllersAsync() { var traceId = App.GetTraceId() ?? IDGen.NextID().ToString(); var scopeFactory = App.GetService<IServiceScopeFactory>(); var serviceScope = scopeFactory.CreateScope(); var rep = serviceScope.ServiceProvider.GetRequiredService<IRepository<Resource>>(); - var endpointDataSource = App.GetService<EndpointDataSource>(); - var routeEndpoints = endpointDataSource.Endpoints.OfType<RouteEndpoint>(); + var provider = serviceScope.ServiceProvider.GetRequiredService<IDynamicApiRuntimeChangeProvider>(); var xmlDoc = await XmlDocUtils.GetXmlDocAsync(); - var enumWebApiMethods = await EnumUtils.GetModel<EnumWebApiMethod>(); - var webApis = await rep.AsQueryable().ToListAsync(); - foreach (var routeEndpoint in routeEndpoints) + var enumWebApiMethods = await EnumUtils.GetModel<EnumResourceMethod>(); + var resourceControllers = await EnumUtils.GetModel<EnumResourceController>(); + var requests = App.Assemblies.SelectMany(it => it.GetTypes()).Where(it => typeof(IBaseRequest).IsAssignableFrom(it)).ToList(); + var resources = await rep.AsQueryable() + .Where(it => !it.IsExpired) + .ToListAsync(); + var models = new List<ResourceModel>(); + foreach (var request in requests) { - var model = new ResourceModel(); - model.TraceId = traceId; - model.Route = "/" + routeEndpoint.RoutePattern.RawText; - var controllerActionDescriptor = routeEndpoint.Metadata.GetMetadata<ControllerActionDescriptor>(); - var methodInfo = controllerActionDescriptor.MethodInfo; - var methodInfoXmlDoc = await controllerActionDescriptor.MethodInfo.GetXmlDocMemberAsync(xmlDoc); - var controllerTypeXmlDoc = await methodInfo.DeclaringType?.GetXmlDocMemberAsync(); - model.Code = methodInfoXmlDoc.Name; - model.Service = methodInfo.Module.Name.Split(".")[1]; - model.Method = enumWebApiMethods.GetEnum((controllerActionDescriptor.ActionConstraints[0] as HttpMethodActionConstraint).HttpMethods.FirstOrDefault()); - model.Name = $"{controllerTypeXmlDoc?.Summary ?? "娌″啓娉ㄩ噴"}-{methodInfoXmlDoc?.Summary ?? "娌″啓娉ㄩ噴"}"; - model.RequestTypeName = methodInfo.GetParameters().FirstOrDefault().ParameterType.FullName; - var returnType = methodInfo.ReturnType; - if (returnType.IsGenericType && returnType.GetGenericTypeDefinition() == typeof(Task<>)) - returnType = returnType.GetGenericArguments()[0]; - if (returnType != null && returnType != typeof(Task)) - model.ResponseTypeName = methodInfo.ReturnType.FullName; + var resourceAttribute = request.GetCustomAttribute<ResourceAttribute>(); + if (resourceAttribute == null) throw Oops.Oh(EnumErrorCodeType.s404, $"璇风粰璧勬簮{request.Name}鍒嗛厤鏈嶅姟鐗规�esource"); - var webApi = webApis.FirstOrDefault(it => it.Route == model.Route && it.Method == model.Method); - if (webApi == null) + foreach (var controller in resourceAttribute.Controllers) { - webApi = new Resource(); - model.Adapt(webApi); - await rep.InsertAsync(webApi); - webApis.Add(webApi); - } - else - { - model.Adapt(webApi); - await rep.UpdateAsync(webApi); + var resourceController = controller.GetType().GetMember(controller.ToString())[0].GetCustomAttribute<ResourceControllerAttribute>(); + var resourceService = resourceController.Service.GetType().GetMember(resourceController.Service.ToString())[0].GetCustomAttribute<ResourceServiceAttribute>(); + + var model = new ResourceModel(); + model.TraceId = traceId; + model.ApplicationName = resourceService.ApplicationName; + model.RouteArea = resourceService.RouteArea; + var name = request.Name; + name = Regex.Replace(name, @"(Command|Query)$", "", RegexOptions.None); + model.ActionName = name; + model.Route = $"/api/{resourceService.RouteArea ?? "main"}/{controller}/{name}"; + var requestXmlDoc = await request.GetXmlDocMemberAsync(xmlDoc); + model.Code = requestXmlDoc.Name; + model.Controller = controller; + model.ControllerSummary = resourceControllers.GetDescription(controller); + if (controller == EnumResourceController.Role) + { + Console.WriteLine(); + } + model.Method = + request.BaseType?.IsGenericType == true && request.BaseType.GetGenericTypeDefinition() == typeof(PagedListQuery<,>) + ? EnumResourceMethod.Post + : new List<string> { "Post", "Add", "Create", "Insert", "Submit" }.Any(it => request.Name.StartsWith(it, StringComparison.OrdinalIgnoreCase)) + ? EnumResourceMethod.Post + : new List<string> { "GetAll", "GetList", "Get", "Find", "Fetch", "Query" }.Any(it => request.Name.StartsWith(it, StringComparison.OrdinalIgnoreCase)) + ? EnumResourceMethod.Get + : new List<string> { "Put", "Update ", "Set" }.Any(it => request.Name.StartsWith(it, StringComparison.OrdinalIgnoreCase)) + ? EnumResourceMethod.Put + : new List<string> { "Delete", "Remove ", "Clear" }.Any(it => request.Name.StartsWith(it, StringComparison.OrdinalIgnoreCase)) + ? EnumResourceMethod.Delete + : EnumResourceMethod.Post; + model.Name = requestXmlDoc?.Summary; + model.AllowAnonymous = resourceAttribute.AllowAnonymous; + model.RequestTypeName = request.Name; + model.RequestTypeFullName = request.FullName; + var iRequestType = request.GetInterface("IRequest`1"); + if (iRequestType != null && iRequestType.IsGenericType) + { + var responseType = iRequestType.GenericTypeArguments[0]; + model.ResponseTypeName = responseType.GetCSharpFriendlyName(); + model.ResponseTypeFullName = responseType.FullName; + } + + var resource = resources.FirstOrDefault(it => it.Route == model.Route && it.Method == model.Method); + if (resource == null) + { + resource = new Resource(); + model.Adapt(resource); + await rep.InsertAsync(resource); + resources.Add(resource); + } + else + { + model.Adapt(resource); + await rep.UpdateAsync(resource); + } + + models.Add(model); } } - var expiredWebApis = webApis.Where(it => it.TraceId != traceId).ToList(); - foreach (var webApi in expiredWebApis) + + var expiredResources = resources.Where(it => it.TraceId != traceId).ToList(); + foreach (var expiredResource in expiredResources) { - webApi.IsExpired = true; - await rep.UpdateAsync(webApi); + expiredResource.IsExpired = true; + await rep.UpdateAsync(expiredResource); + } + + var controllers = models + .GroupBy(it => new + { + it.Controller, + it.ControllerSummary, + it.ApplicationName, + it.RouteArea + }) + .Select(it => new + { + it.Key, + Actions = it.ToList() + }) + .ToList(); + foreach (var controller in controllers) + { + var code = $@" +using FlexJobApi.Core; +using Furion.DynamicApiController; +using Furion.FriendlyException; +using MediatR; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Threading.Tasks; +using System.Collections.Generic; + +namespace {controller.Key.ApplicationName} +{{ + /// <summary> + /// {controller.Key.ControllerSummary} + /// </summary> + [Route(""api/{controller.Key.RouteArea}/[controller]"")] + public class {controller.Key.Controller}AppService(IMediator mediator) : IDynamicApiController + {{ + private readonly IMediator mediator = mediator;"; + foreach (var action in controller.Actions) + { + code += $@" + + /// <summary> + /// {action.Name} + /// </summary> + /// <param name=""request""></param> + /// <returns></returns>"; + if (action.AllowAnonymous) + { + code += $@" + [AllowAnonymous]"; + } + code += $@" + [Http{action.Method}] + public Task<{action.ResponseTypeName}> {action.ActionName}({action.RequestTypeName} request) + {{ + return mediator.Send(request); + }} +"; + } + code += $@" + }} +}} +"; + var dynamicAssembly = App.CompileCSharpClassCode(code); + provider.AddAssembliesWithNotifyChanges(dynamicAssembly); } await rep.SaveNowAsync(); } + + /// <summary> + /// 鑾峰彇C#鍙嬪ソ鍚嶇О + /// </summary> + /// <param name="type"></param> + /// <returns></returns> + public static string GetCSharpFriendlyName(this Type type) + { + // 澶勭悊鍙┖绫诲瀷 + if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + Type underlyingType = Nullable.GetUnderlyingType(type)!; + return $"{GetCSharpFriendlyName(underlyingType)}?"; + } + + // 澶勭悊鍩虹绫诲瀷 + if (type.FullName.IsNotNull()) + { + var baseTypes = new Dictionary<string, string> + { + { "System.Byte", "byte" }, + { "System.SByte", "sbyte" }, + { "System.Int16", "short" }, + { "System.UInt16", "ushort" }, + { "System.Int32", "int" }, + { "System.UInt32", "uint" }, + { "System.Int64", "long" }, + { "System.UInt64", "ulong" }, + { "System.Single", "float" }, + { "System.Double", "double" }, + { "System.Decimal", "decimal" }, + { "System.Char", "char" }, + { "System.Boolean", "bool" }, + { "System.String", "string" }, + { "System.Object", "object" } + }; + if (baseTypes.TryGetValue(type.FullName, out string? friendlyName) && friendlyName.IsNotNull()) + { + return friendlyName; + } + } + + // 澶勭悊闈炴硾鍨嬬被鍨� + if (!type.IsGenericType) + { + return type.Name; + } + + // 澶勭悊娉涘瀷绫诲瀷 + string genericTypeName = type.GetGenericTypeDefinition().Name; + if (genericTypeName.Contains('`')) + genericTypeName = genericTypeName.Substring(0, genericTypeName.IndexOf('`')); + + string[] genericArgs = type.GetGenericArguments() + .Select(GetCSharpFriendlyName) + .ToArray(); + + return $"{genericTypeName}<{string.Join(", ", genericArgs)}>"; + } } } diff --git a/FlexJobApi.Database.Migrations/Migrations/20250804152934_UpdateResource.Designer.cs b/FlexJobApi.Database.Migrations/Migrations/20250804152934_UpdateResource.Designer.cs new file mode 100644 index 0000000..3138dec --- /dev/null +++ b/FlexJobApi.Database.Migrations/Migrations/20250804152934_UpdateResource.Designer.cs @@ -0,0 +1,2159 @@ +锘�// <auto-generated /> +using System; +using FlexJobApi.EntityFramework.Core; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace FlexJobApi.Database.Migrations.Migrations +{ + [DbContext(typeof(DefaultDbContext))] + [Migration("20250804152934_UpdateResource")] + partial class UpdateResource + { + /// <inheritdoc /> + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "9.0.7") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("FlexJobApi.Core.Department", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier") + .HasComment("浼佷笟Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit") + .HasComment("鏄惁绂佺敤"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍚嶇О"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("涓婄骇Id"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)") + .HasComment("閮ㄩ棬璺緞"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("ParentId"); + + b.ToTable("Department", t => + { + t.HasComment("閮ㄩ棬"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryCategory", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("缂栧彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("FieldNames") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁鍚嶏紙閫楀彿闅斿紑锛�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍚嶇О"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.ToTable("DictionaryCategory", t => + { + t.HasComment("瀛楀吀绫诲埆"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("CategoryId") + .HasColumnType("uniqueidentifier") + .HasComment("绫诲埆Id"); + + b.Property<string>("Code") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("缂栧彿"); + + b.Property<string>("Content") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鏄剧ず鍐呭"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Field1") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁1"); + + b.Property<string>("Field2") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁2"); + + b.Property<string>("Field3") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁3"); + + b.Property<string>("Field4") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁4"); + + b.Property<string>("Field5") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁5"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("涓婄骇Id"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楀吀璺緞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("CategoryId"); + + b.HasIndex("ParentId"); + + b.ToTable("DictionaryData", t => + { + t.HasComment("瀛楀吀鏁版嵁"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Enterprise", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("娉曚汉鎴栫粡鍔炰汉閾惰鍗″彿"); + + b.Property<Guid?>("BankCardImgId") + .HasColumnType("uniqueidentifier") + .HasComment("娉曚汉鎴栫粡鍔炰汉閾惰鍗$収鐗嘔d"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("EnterpriseName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("浼佷笟鍏ㄧО"); + + b.Property<int?>("EnterpriseRealMethod") + .HasColumnType("int") + .HasComment("浼佷笟璁よ瘉鏂瑰紡"); + + b.Property<string>("Identity") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)") + .HasComment("娉曚汉鎴栫粡鍔炰汉韬唤璇佸彿"); + + b.Property<Guid?>("IdentityBackImgId") + .HasColumnType("uniqueidentifier") + .HasComment("娉曚汉鎴栫粡鍔炰汉韬唤璇佸浗寰介潰Id"); + + b.Property<Guid?>("IdentityImgId") + .HasColumnType("uniqueidentifier") + .HasComment("娉曚汉鎴栫粡鍔炰汉韬唤璇佷汉鍍忛潰Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsReal") + .HasColumnType("bit") + .HasComment("鏄惁瀹炲悕"); + + b.Property<string>("LegalPerson") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("娉曚汉濮撳悕"); + + b.Property<Guid?>("LicenseImageId") + .HasColumnType("uniqueidentifier") + .HasComment("钀ヤ笟鎵х収鐓х墖Id"); + + b.Property<string>("Name") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("娉曚汉鎴栫粡鍔炰汉濮撳悕"); + + b.Property<int?>("PersonalRealMethod") + .HasColumnType("int") + .HasComment("娉曚汉鎴栫粡鍔炰汉瀹炲悕鏂瑰紡"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)") + .HasComment("娉曚汉鎴栫粡鍔炰汉鎵嬫満鍙�"); + + b.Property<bool?>("Proxy") + .HasColumnType("bit") + .HasComment("鏄惁濮旀墭缁忓姙浜�"); + + b.Property<string>("ProxyPowerAttorneyUrl") + .HasColumnType("nvarchar(max)") + .HasComment("浼佷笟鎺堟潈涔�"); + + b.Property<int?>("RealAccess") + .HasColumnType("int") + .HasComment("瀹炲悕閫氶亾"); + + b.Property<string>("SocietyCreditCode") + .IsRequired() + .HasMaxLength(18) + .HasColumnType("nvarchar(18)") + .HasComment("缁熶竴绀句細淇$敤浠g爜"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("IdentityBackImgId"); + + b.HasIndex("IdentityImgId"); + + b.HasIndex("LicenseImageId"); + + b.ToTable("Enterprise", t => + { + t.HasComment("浼佷笟"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.FileStore", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("AbsolutePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("缁濆璺緞"); + + b.Property<int>("Access") + .HasColumnType("int") + .HasComment("閫氶亾"); + + b.Property<string>("ContentType") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍐呭绫诲瀷"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Extension") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("鎵╁睍鍚�"); + + b.Property<int>("FileType") + .HasColumnType("int") + .HasComment("鏂囦欢绫诲瀷"); + + b.Property<string>("Hash") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍝堝笇"); + + b.Property<int?>("ImageHeight") + .HasColumnType("int") + .HasComment("楂樺害锛堝儚绱狅級"); + + b.Property<int?>("ImageWidth") + .HasColumnType("int") + .HasComment("瀹藉害锛堝儚绱狅級"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<long>("Length") + .HasColumnType("bigint") + .HasComment("鏂囦欢澶у皬锛堝瓧鑺傦級"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍚嶇О"); + + b.Property<string>("RelativePath") + .HasColumnType("nvarchar(max)") + .HasComment("鐩稿璺緞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.ToTable("FileStore", t => + { + t.HasComment("鏂囦欢瀛樺偍"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.FileVirtualPath", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍚嶇О"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("StoreId") + .HasColumnType("uniqueidentifier") + .HasComment("鏂囦欢瀛樺偍Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<string>("VirtualPath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("铏氭嫙璺緞"); + + b.HasKey("Id"); + + b.HasIndex("StoreId"); + + b.ToTable("FileVirtualPath", t => + { + t.HasComment("鏂囦欢铏氭嫙璺緞"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("ClientType") + .HasColumnType("int") + .HasComment("瀹㈡埛绔被鍨�"); + + b.Property<string>("Code") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("缂栧彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Group") + .HasColumnType("nvarchar(max)") + .HasComment("鍒嗙粍鍚嶇О锛堢敤浜庢寜閽�/瀛楁锛�"); + + b.Property<string>("Icon") + .HasColumnType("nvarchar(max)") + .HasComment("鍥炬爣"); + + b.Property<bool>("IsCache") + .HasColumnType("bit") + .HasComment("鏄惁缂撳瓨"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit") + .HasComment("鏄惁绂佺敤"); + + b.Property<string>("Location") + .HasColumnType("nvarchar(max)") + .HasComment("浣嶇疆锛堢敤浜庢寜閽級"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍚嶇О"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("涓婄骇Id"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)") + .HasComment("鑿滃崟璺緞"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<int>("Type") + .HasColumnType("int") + .HasComment("绫诲瀷"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<string>("Url") + .HasColumnType("nvarchar(max)") + .HasComment("閾炬帴鍦板潃"); + + b.Property<int>("UserType") + .HasColumnType("int") + .HasComment("鐢ㄦ埛绫诲瀷"); + + b.Property<int>("VisitLevel") + .HasColumnType("int") + .HasComment("璁块棶绾у埆"); + + b.Property<string>("Width") + .HasColumnType("nvarchar(max)") + .HasComment("鍒楀锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛�"); + + b.HasKey("Id"); + + b.HasIndex("ParentId"); + + b.ToTable("Menu", t => + { + t.HasComment("鑿滃崟"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Resource", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("ActionName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("濮旀墭鍚嶇О"); + + b.Property<string>("Code") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("缂栧彿"); + + b.Property<int>("Controller") + .HasColumnType("int") + .HasComment("鎺у埗鍣�"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsExpired") + .HasColumnType("bit") + .HasComment("鏄惁宸茶繃鏈�"); + + b.Property<int>("Method") + .HasColumnType("int") + .HasComment("璇锋眰鏂瑰紡"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍚嶇О"); + + b.Property<string>("RequestTypeFullName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("璇锋眰绫诲瀷鍏ㄥ悕"); + + b.Property<string>("RequestTypeName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("璇锋眰绫诲瀷鍚嶇О"); + + b.Property<string>("ResponseTypeFullName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍝嶅簲绫诲瀷鍏ㄥ悕"); + + b.Property<string>("ResponseTypeName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍝嶅簲绫诲瀷鍚嶇О"); + + b.Property<string>("Route") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("璺敱"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.ToTable("Resource", t => + { + t.HasComment("璧勬簮"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Role", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("ClientType") + .HasColumnType("int") + .HasComment("瀹㈡埛绔被鍨�"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("MinLevel") + .HasColumnType("int") + .HasComment("鏈�浣庣骇鍒�"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍚嶇О"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<int>("UserType") + .HasColumnType("int") + .HasComment("鐢ㄦ埛绫诲瀷"); + + b.HasKey("Id"); + + b.ToTable("Role", t => + { + t.HasComment("瑙掕壊"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleMenu", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("MenuId") + .HasColumnType("uniqueidentifier") + .HasComment("鑿滃崟Id"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier") + .HasComment("瑙掕壊Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("MenuId"); + + b.HasIndex("RoleId"); + + b.ToTable("RoleMenu", t => + { + t.HasComment("瑙掕壊鑿滃崟"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleResource", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<int>("DataPower") + .HasColumnType("int") + .HasComment("鏁版嵁鏉冮檺"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("ResourceId") + .HasColumnType("uniqueidentifier") + .HasComment("璧勬簮Id"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier") + .HasComment("瑙掕壊Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("ResourceId"); + + b.HasIndex("RoleId"); + + b.ToTable("RoleResource", t => + { + t.HasComment("瑙掕壊璧勬簮"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Address") + .HasColumnType("nvarchar(max)") + .HasComment("浠诲姟鍦扮偣璇︾粏鍦板潃"); + + b.Property<int>("AgeMaxLimit") + .HasColumnType("int") + .HasComment("骞撮緞鑼冨洿澶�"); + + b.Property<int>("AgeMinLimit") + .HasColumnType("int") + .HasComment("骞撮緞鑼冨洿鏈�灏�"); + + b.Property<DateTime>("BeginTime") + .HasColumnType("datetime2") + .HasComment("浠诲姟寮�濮嬫椂闂�"); + + b.Property<int>("BillingMethod") + .HasColumnType("int") + .HasComment("璁¤垂鏂瑰紡"); + + b.Property<Guid>("CityId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟鍦扮偣鎵�灞炲尯鍩烮d"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<DateTime>("EndTime") + .HasColumnType("datetime2") + .HasComment("浠诲姟缁撴潫鏃堕棿"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier") + .HasComment("浼佷笟Id"); + + b.Property<int>("GenderLimit") + .HasColumnType("int") + .HasComment("鎬у埆瑕佹眰"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("浠诲姟鍚嶇О"); + + b.Property<decimal>("ServiceFee") + .HasColumnType("decimal(18,2)") + .HasComment("鏈嶅姟璐�"); + + b.Property<int>("SettlementCycle") + .HasColumnType("int") + .HasComment("缁撶畻鏂瑰紡"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("CityId"); + + b.HasIndex("EnterpriseId"); + + b.ToTable("TaskInfo", t => + { + t.HasComment("浠诲姟淇℃伅"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("BenefitId") + .HasColumnType("uniqueidentifier") + .HasComment("绂忓埄Id"); + + b.Property<Guid>("BenefitId1") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("BenefitId"); + + b.HasIndex("BenefitId1"); + + b.ToTable("TaskInfoBenefit", t => + { + t.HasComment("浠诲姟绂忓埄"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoCredentialLimit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<Guid?>("TypeId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功绫诲瀷Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoId"); + + b.HasIndex("TypeId"); + + b.ToTable("TaskInfoCredentialLimit"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<int>("HireStatus") + .HasColumnType("int") + .HasComment("褰曠敤鐘舵��"); + + b.Property<DateTime?>("HireTime") + .HasColumnType("datetime2") + .HasComment("褰曠敤鏃堕棿"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int?>("SignContractStatus") + .HasColumnType("int") + .HasComment("绛剧害鐘舵��"); + + b.Property<DateTime?>("SignContractTime") + .HasColumnType("datetime2") + .HasComment("绛剧害鏃堕棿"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("TaskInfoUser", t => + { + t.HasComment("浠诲姟鐢ㄦ埛淇℃伅"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("AvatarId") + .HasColumnType("uniqueidentifier") + .HasComment("澶村儚Id"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("閾惰鍗″彿"); + + b.Property<Guid?>("BankCardImgId") + .HasColumnType("uniqueidentifier") + .HasComment("閾惰鍗$収鐗嘔d"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Identity") + .HasColumnType("nvarchar(max)") + .HasComment("韬唤璇佸彿"); + + b.Property<Guid?>("IdentityBackImgId") + .HasColumnType("uniqueidentifier") + .HasComment("韬唤璇佸浗寰介潰Id"); + + b.Property<Guid?>("IdentityImgId") + .HasColumnType("uniqueidentifier") + .HasComment("韬唤璇佷汉鍍忛潰Id"); + + b.Property<bool>("IsCheckPhoneNumber") + .HasColumnType("bit") + .HasComment("鏄惁宸叉牎楠屾墜鏈哄彿"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsReal") + .HasColumnType("bit") + .HasComment("鏄惁瀹炲悕"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("濮撳悕"); + + b.Property<string>("Password") + .HasColumnType("nvarchar(max)") + .HasComment("瀵嗙爜"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)") + .HasComment("鎵嬫満鍙�"); + + b.Property<int?>("RealAccess") + .HasColumnType("int") + .HasComment("瀹炲悕閫氶亾"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<string>("UserName") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("鐢ㄦ埛鍚�"); + + b.HasKey("Id"); + + b.HasIndex("AvatarId"); + + b.HasIndex("BankCardImgId"); + + b.HasIndex("IdentityBackImgId"); + + b.HasIndex("IdentityImgId"); + + b.ToTable("UserAuth", t => + { + t.HasComment("鐢ㄦ埛"); + }); + + b.HasData( + new + { + Id = new Guid("11111111-1111-1111-1111-111111111111"), + CreatedTime = new DateTimeOffset(new DateTime(2000, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 8, 0, 0, 0)), + IsCheckPhoneNumber = false, + IsDeleted = false, + IsReal = false, + Name = "绠$悊鍛�", + Password = "iEYggKrMhQ3ASUGLobra1w==:fn/DsMJUbD9FGpvBvR3moMpMPptdxzZlourPVhU479I=", + Sort = 0, + UserName = "system" + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfo", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CityId") + .HasColumnType("uniqueidentifier") + .HasComment("甯搁┗鍩庡競Id"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid?>("EducationalBackgroundId") + .HasColumnType("uniqueidentifier") + .HasComment("瀛﹀巻Id"); + + b.Property<Guid?>("EnterpriseId") + .HasColumnType("uniqueidentifier") + .HasComment("浼佷笟Id"); + + b.Property<int?>("FreeTime") + .HasColumnType("int") + .HasComment("绌洪棽鏃堕棿"); + + b.Property<int?>("Height") + .HasColumnType("int") + .HasComment("韬珮"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int?>("JobSeekingStatus") + .HasColumnType("int") + .HasComment("姹傝亴鐘舵��"); + + b.Property<int>("Level") + .HasColumnType("int") + .HasComment("绾у埆"); + + b.Property<Guid?>("PersonalIdentityId") + .HasColumnType("uniqueidentifier") + .HasComment("韬唤Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<int>("Type") + .HasColumnType("int") + .HasComment("鐢ㄦ埛绫诲瀷"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserAuthId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛Id"); + + b.Property<int?>("Weight") + .HasColumnType("int") + .HasComment("浣撻噸"); + + b.Property<string>("WorkExperience") + .HasColumnType("nvarchar(max)") + .HasComment("宸ヤ綔缁忛獙"); + + b.Property<string>("WorkSeniority") + .HasColumnType("nvarchar(max)") + .HasComment("宸ヤ綔璧勫巻"); + + b.Property<string>("WxmpOpenId") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("寰俊寮�鏀綢d"); + + b.HasKey("Id"); + + b.HasIndex("CityId"); + + b.HasIndex("EducationalBackgroundId"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("PersonalIdentityId"); + + b.HasIndex("UserAuthId"); + + b.ToTable("UserInfo", t => + { + t.HasComment("鐢ㄦ埛淇℃伅"); + }); + + b.HasData( + new + { + Id = new Guid("11111111-1111-1111-1111-111111111112"), + CreatedTime = new DateTimeOffset(new DateTime(2000, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 8, 0, 0, 0)), + IsDeleted = false, + Level = 999, + Sort = 0, + Type = 100, + UserAuthId = new Guid("11111111-1111-1111-1111-111111111111") + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoBankCard", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Bank") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("寮�鎴疯"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("閾惰鍗″彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("PhoneNumber") + .IsRequired() + .HasMaxLength(11) + .HasColumnType("nvarchar(11)") + .HasComment("閾惰棰勭暀鎵嬫満鍙�"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoBankCard", t => + { + t.HasComment("鐢ㄦ埛閾惰鍗′俊鎭�"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoCredential", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("BackImgId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功鍙嶉潰鐓х墖Id"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("璇佷功缂栧彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<DateTime>("EndDate") + .HasColumnType("datetime2") + .HasComment("缁撴潫鏃ユ湡"); + + b.Property<Guid>("ImgId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功姝i潰鐓х墖Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsForever") + .HasColumnType("bit") + .HasComment("姘镐箙璇佷功"); + + b.Property<string>("IssueUnit") + .HasColumnType("nvarchar(max)") + .HasComment("鍙戣瘉鍗曚綅"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<DateTime>("StartDate") + .HasColumnType("datetime2") + .HasComment("寮�濮嬫棩鏈�"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<Guid?>("TypeId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功绫诲瀷Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("BackImgId"); + + b.HasIndex("ImgId"); + + b.HasIndex("TypeId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoCredential", t => + { + t.HasComment("鐢ㄦ埛淇℃伅璧勬牸璇佷功"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoDepartment", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid>("DepartmentId") + .HasColumnType("uniqueidentifier") + .HasComment("閮ㄩ棬Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("DepartmentId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoDepartment", t => + { + t.HasComment("鐢ㄦ埛淇℃伅閮ㄩ棬"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoExpectJob", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("PersonalIdentityId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈熸湜宀椾綅Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("PersonalIdentityId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoExpectJob", t => + { + t.HasComment("鐢ㄦ埛淇℃伅鏈熸湜宀椾綅"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoPhoto", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid>("ImgId") + .HasColumnType("uniqueidentifier") + .HasComment("鐓х墖Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("ImgId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoPhoto", t => + { + t.HasComment("鐢ㄦ埛淇℃伅鐢熸椿鐓�"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoRole", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier") + .HasComment("瑙掕壊Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoRole", t => + { + t.HasComment("鐢ㄦ埛淇℃伅瑙掕壊"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Department", b => + { + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany("Departments") + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Department", "Parent") + .WithMany("Children") + .HasForeignKey("ParentId"); + + b.Navigation("Enterprise"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b => + { + b.HasOne("FlexJobApi.Core.DictionaryCategory", "Category") + .WithMany() + .HasForeignKey("CategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Parent") + .WithMany("Children") + .HasForeignKey("ParentId"); + + b.Navigation("Category"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Enterprise", b => + { + b.HasOne("FlexJobApi.Core.FileVirtualPath", "IdentityBackImg") + .WithMany() + .HasForeignKey("IdentityBackImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "IdentityImg") + .WithMany() + .HasForeignKey("IdentityImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "LicenseImage") + .WithMany() + .HasForeignKey("LicenseImageId"); + + b.Navigation("IdentityBackImg"); + + b.Navigation("IdentityImg"); + + b.Navigation("LicenseImage"); + }); + + modelBuilder.Entity("FlexJobApi.Core.FileVirtualPath", b => + { + b.HasOne("FlexJobApi.Core.FileStore", "Store") + .WithMany() + .HasForeignKey("StoreId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Store"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.HasOne("FlexJobApi.Core.Menu", "Parent") + .WithMany("Children") + .HasForeignKey("ParentId"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleMenu", b => + { + b.HasOne("FlexJobApi.Core.Menu", "Menu") + .WithMany() + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Role", "Role") + .WithMany("RoleMenus") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleResource", b => + { + b.HasOne("FlexJobApi.Core.Resource", "Resource") + .WithMany() + .HasForeignKey("ResourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Role", "Role") + .WithMany("RoleResources") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Resource"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "City") + .WithMany() + .HasForeignKey("CityId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany() + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("City"); + + b.Navigation("Enterprise"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b => + { + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("Benefits") + .HasForeignKey("BenefitId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Benefit") + .WithMany() + .HasForeignKey("BenefitId1") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Benefit"); + + b.Navigation("TaskInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoCredentialLimit", b => + { + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("CredentialLimits") + .HasForeignKey("TaskInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Type") + .WithMany() + .HasForeignKey("TypeId"); + + b.Navigation("TaskInfo"); + + b.Navigation("Type"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany() + .HasForeignKey("TaskInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany() + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaskInfo"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.HasOne("FlexJobApi.Core.FileVirtualPath", "Avatar") + .WithMany() + .HasForeignKey("AvatarId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "BankCardImg") + .WithMany() + .HasForeignKey("BankCardImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "IdentityBackImg") + .WithMany() + .HasForeignKey("IdentityBackImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "IdentityImg") + .WithMany() + .HasForeignKey("IdentityImgId"); + + b.Navigation("Avatar"); + + b.Navigation("BankCardImg"); + + b.Navigation("IdentityBackImg"); + + b.Navigation("IdentityImg"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfo", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "City") + .WithMany() + .HasForeignKey("CityId"); + + b.HasOne("FlexJobApi.Core.DictionaryData", "EducationalBackground") + .WithMany() + .HasForeignKey("EducationalBackgroundId"); + + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany("UserInfos") + .HasForeignKey("EnterpriseId"); + + b.HasOne("FlexJobApi.Core.DictionaryData", "PersonalIdentity") + .WithMany() + .HasForeignKey("PersonalIdentityId"); + + b.HasOne("FlexJobApi.Core.UserAuth", "UserAuth") + .WithMany("UserInfos") + .HasForeignKey("UserAuthId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("City"); + + b.Navigation("EducationalBackground"); + + b.Navigation("Enterprise"); + + b.Navigation("PersonalIdentity"); + + b.Navigation("UserAuth"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoBankCard", b => + { + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany() + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoCredential", b => + { + b.HasOne("FlexJobApi.Core.FileVirtualPath", "BackImg") + .WithMany() + .HasForeignKey("BackImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "Img") + .WithMany() + .HasForeignKey("ImgId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Type") + .WithMany() + .HasForeignKey("TypeId"); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoCredentials") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BackImg"); + + b.Navigation("Img"); + + b.Navigation("Type"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoDepartment", b => + { + b.HasOne("FlexJobApi.Core.Department", "Department") + .WithMany() + .HasForeignKey("DepartmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoDepartments") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Department"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoExpectJob", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "PersonalIdentity") + .WithMany() + .HasForeignKey("PersonalIdentityId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoExpectJobs") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PersonalIdentity"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoPhoto", b => + { + b.HasOne("FlexJobApi.Core.FileVirtualPath", "Img") + .WithMany() + .HasForeignKey("ImgId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany() + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Img"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoRole", b => + { + b.HasOne("FlexJobApi.Core.Role", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoRoles") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Role"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Department", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Enterprise", b => + { + b.Navigation("Departments"); + + b.Navigation("UserInfos"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Role", b => + { + b.Navigation("RoleMenus"); + + b.Navigation("RoleResources"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.Navigation("Benefits"); + + b.Navigation("CredentialLimits"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.Navigation("UserInfos"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfo", b => + { + b.Navigation("UserInfoCredentials"); + + b.Navigation("UserInfoDepartments"); + + b.Navigation("UserInfoExpectJobs"); + + b.Navigation("UserInfoRoles"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/FlexJobApi.Database.Migrations/Migrations/20250804152934_UpdateResource.cs b/FlexJobApi.Database.Migrations/Migrations/20250804152934_UpdateResource.cs new file mode 100644 index 0000000..fb6a961 --- /dev/null +++ b/FlexJobApi.Database.Migrations/Migrations/20250804152934_UpdateResource.cs @@ -0,0 +1,78 @@ +锘縰sing Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace FlexJobApi.Database.Migrations.Migrations +{ + /// <inheritdoc /> + public partial class UpdateResource : Migration + { + /// <inheritdoc /> + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Service", + table: "Resource"); + + migrationBuilder.AddColumn<string>( + name: "ActionName", + table: "Resource", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + comment: "濮旀墭鍚嶇О"); + + migrationBuilder.AddColumn<int>( + name: "Controller", + table: "Resource", + type: "int", + nullable: false, + defaultValue: 0, + comment: "鎺у埗鍣�"); + + migrationBuilder.AddColumn<string>( + name: "RequestTypeFullName", + table: "Resource", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + comment: "璇锋眰绫诲瀷鍏ㄥ悕"); + + migrationBuilder.AddColumn<string>( + name: "ResponseTypeFullName", + table: "Resource", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + comment: "鍝嶅簲绫诲瀷鍏ㄥ悕"); + } + + /// <inheritdoc /> + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ActionName", + table: "Resource"); + + migrationBuilder.DropColumn( + name: "Controller", + table: "Resource"); + + migrationBuilder.DropColumn( + name: "RequestTypeFullName", + table: "Resource"); + + migrationBuilder.DropColumn( + name: "ResponseTypeFullName", + table: "Resource"); + + migrationBuilder.AddColumn<string>( + name: "Service", + table: "Resource", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + comment: "寰湇鍔�"); + } + } +} diff --git a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs index f9ecf14..064da2e 100644 --- a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs +++ b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs @@ -85,7 +85,7 @@ b.HasIndex("ParentId"); - b.ToTable("Department", null, t => + b.ToTable("Department", t => { t.HasComment("閮ㄩ棬"); }); @@ -141,7 +141,7 @@ b.HasKey("Id"); - b.ToTable("DictionaryCategory", null, t => + b.ToTable("DictionaryCategory", t => { t.HasComment("瀛楀吀绫诲埆"); }); @@ -227,7 +227,7 @@ b.HasIndex("ParentId"); - b.ToTable("DictionaryData", null, t => + b.ToTable("DictionaryData", t => { t.HasComment("瀛楀吀鏁版嵁"); }); @@ -350,7 +350,7 @@ b.HasIndex("LicenseImageId"); - b.ToTable("Enterprise", null, t => + b.ToTable("Enterprise", t => { t.HasComment("浼佷笟"); }); @@ -441,7 +441,7 @@ b.HasKey("Id"); - b.ToTable("FileStore", null, t => + b.ToTable("FileStore", t => { t.HasComment("鏂囦欢瀛樺偍"); }); @@ -497,7 +497,7 @@ b.HasIndex("StoreId"); - b.ToTable("FileVirtualPath", null, t => + b.ToTable("FileVirtualPath", t => { t.HasComment("鏂囦欢铏氭嫙璺緞"); }); @@ -606,7 +606,7 @@ b.HasIndex("ParentId"); - b.ToTable("Menu", null, t => + b.ToTable("Menu", t => { t.HasComment("鑿滃崟"); }); @@ -618,10 +618,19 @@ .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); + b.Property<string>("ActionName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("濮旀墭鍚嶇О"); + b.Property<string>("Code") .IsRequired() .HasColumnType("nvarchar(max)") .HasComment("缂栧彿"); + + b.Property<int>("Controller") + .HasColumnType("int") + .HasComment("鎺у埗鍣�"); b.Property<DateTimeOffset>("CreatedTime") .HasColumnType("datetimeoffset"); @@ -647,10 +656,20 @@ .HasColumnType("nvarchar(max)") .HasComment("鍚嶇О"); + b.Property<string>("RequestTypeFullName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("璇锋眰绫诲瀷鍏ㄥ悕"); + b.Property<string>("RequestTypeName") .IsRequired() .HasColumnType("nvarchar(max)") .HasComment("璇锋眰绫诲瀷鍚嶇О"); + + b.Property<string>("ResponseTypeFullName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍝嶅簲绫诲瀷鍏ㄥ悕"); b.Property<string>("ResponseTypeName") .IsRequired() @@ -661,11 +680,6 @@ .IsRequired() .HasColumnType("nvarchar(max)") .HasComment("璺敱"); - - b.Property<string>("Service") - .IsRequired() - .HasColumnType("nvarchar(max)") - .HasComment("寰湇鍔�"); b.Property<int>("Sort") .HasColumnType("int") @@ -684,7 +698,7 @@ b.HasKey("Id"); - b.ToTable("Resource", null, t => + b.ToTable("Resource", t => { t.HasComment("璧勬簮"); }); @@ -742,7 +756,7 @@ b.HasKey("Id"); - b.ToTable("Role", null, t => + b.ToTable("Role", t => { t.HasComment("瑙掕壊"); }); @@ -794,7 +808,7 @@ b.HasIndex("RoleId"); - b.ToTable("RoleMenu", null, t => + b.ToTable("RoleMenu", t => { t.HasComment("瑙掕壊鑿滃崟"); }); @@ -850,7 +864,7 @@ b.HasIndex("RoleId"); - b.ToTable("RoleResource", null, t => + b.ToTable("RoleResource", t => { t.HasComment("瑙掕壊璧勬簮"); }); @@ -943,7 +957,7 @@ b.HasIndex("EnterpriseId"); - b.ToTable("TaskInfo", null, t => + b.ToTable("TaskInfo", t => { t.HasComment("浠诲姟淇℃伅"); }); @@ -998,7 +1012,7 @@ b.HasIndex("BenefitId1"); - b.ToTable("TaskInfoBenefit", null, t => + b.ToTable("TaskInfoBenefit", t => { t.HasComment("浠诲姟绂忓埄"); }); @@ -1050,7 +1064,7 @@ b.HasIndex("TypeId"); - b.ToTable("TaskInfoCredentialLimit", (string)null); + b.ToTable("TaskInfoCredentialLimit"); }); modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => @@ -1115,7 +1129,7 @@ b.HasIndex("UserInfoId"); - b.ToTable("TaskInfoUser", null, t => + b.ToTable("TaskInfoUser", t => { t.HasComment("浠诲姟鐢ㄦ埛淇℃伅"); }); @@ -1221,7 +1235,7 @@ b.HasIndex("IdentityImgId"); - b.ToTable("UserAuth", null, t => + b.ToTable("UserAuth", t => { t.HasComment("鐢ㄦ埛"); }); @@ -1342,7 +1356,7 @@ b.HasIndex("UserAuthId"); - b.ToTable("UserInfo", null, t => + b.ToTable("UserInfo", t => { t.HasComment("鐢ㄦ埛淇℃伅"); }); @@ -1418,7 +1432,7 @@ b.HasIndex("UserInfoId"); - b.ToTable("UserInfoBankCard", null, t => + b.ToTable("UserInfoBankCard", t => { t.HasComment("鐢ㄦ埛閾惰鍗′俊鎭�"); }); @@ -1504,7 +1518,7 @@ b.HasIndex("UserInfoId"); - b.ToTable("UserInfoCredential", null, t => + b.ToTable("UserInfoCredential", t => { t.HasComment("鐢ㄦ埛淇℃伅璧勬牸璇佷功"); }); @@ -1556,7 +1570,7 @@ b.HasIndex("UserInfoId"); - b.ToTable("UserInfoDepartment", null, t => + b.ToTable("UserInfoDepartment", t => { t.HasComment("鐢ㄦ埛淇℃伅閮ㄩ棬"); }); @@ -1608,7 +1622,7 @@ b.HasIndex("UserInfoId"); - b.ToTable("UserInfoExpectJob", null, t => + b.ToTable("UserInfoExpectJob", t => { t.HasComment("鐢ㄦ埛淇℃伅鏈熸湜宀椾綅"); }); @@ -1660,7 +1674,7 @@ b.HasIndex("UserInfoId"); - b.ToTable("UserInfoPhoto", null, t => + b.ToTable("UserInfoPhoto", t => { t.HasComment("鐢ㄦ埛淇℃伅鐢熸椿鐓�"); }); @@ -1712,7 +1726,7 @@ b.HasIndex("UserInfoId"); - b.ToTable("UserInfoRole", null, t => + b.ToTable("UserInfoRole", t => { t.HasComment("鐢ㄦ埛淇℃伅瑙掕壊"); }); @@ -1727,7 +1741,7 @@ .IsRequired(); b.HasOne("FlexJobApi.Core.Department", "Parent") - .WithMany("Childrens") + .WithMany("Children") .HasForeignKey("ParentId"); b.Navigation("Enterprise"); @@ -1744,7 +1758,7 @@ .IsRequired(); b.HasOne("FlexJobApi.Core.DictionaryData", "Parent") - .WithMany("Childrens") + .WithMany("Children") .HasForeignKey("ParentId"); b.Navigation("Category"); @@ -1787,7 +1801,7 @@ modelBuilder.Entity("FlexJobApi.Core.Menu", b => { b.HasOne("FlexJobApi.Core.Menu", "Parent") - .WithMany("Childrens") + .WithMany("Children") .HasForeignKey("ParentId"); b.Navigation("Parent"); @@ -2087,12 +2101,12 @@ modelBuilder.Entity("FlexJobApi.Core.Department", b => { - b.Navigation("Childrens"); + b.Navigation("Children"); }); modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b => { - b.Navigation("Childrens"); + b.Navigation("Children"); }); modelBuilder.Entity("FlexJobApi.Core.Enterprise", b => @@ -2104,7 +2118,7 @@ modelBuilder.Entity("FlexJobApi.Core.Menu", b => { - b.Navigation("Childrens"); + b.Navigation("Children"); }); modelBuilder.Entity("FlexJobApi.Core.Role", b => diff --git a/FlexJobApi.User.Application/Auths/AuthAppService.cs b/FlexJobApi.User.Application/Auths/AuthAppService.cs index 5eccb25..901ac1b 100644 --- a/FlexJobApi.User.Application/Auths/AuthAppService.cs +++ b/FlexJobApi.User.Application/Auths/AuthAppService.cs @@ -1,42 +1,41 @@ -锘縰sing FlexJobApi.Core; -using Furion.DynamicApiController; -using Furion.FriendlyException; -using Furion.SpecificationDocument; -using MediatR; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; +锘�//using FlexJobApi.Core; +//using Furion.DynamicApiController; +//using Furion.FriendlyException; +//using MediatR; +//using Microsoft.AspNetCore.Authorization; +//using Microsoft.AspNetCore.Mvc; -namespace FlexJobApi.User.Application -{ - /// <summary> - /// 璁よ瘉 - /// </summary> - [Route("api/user/[controller]")] - public class AuthAppService(IMediator mediator) : IDynamicApiController - { - private readonly IMediator mediator = mediator; +//namespace FlexJobApi.User.Application +//{ +// /// <summary> +// /// 璁よ瘉 +// /// </summary> +// [Route("api/user/[controller]")] +// public class AuthAppService(IMediator mediator) : IDynamicApiController +// { +// private readonly IMediator mediator = mediator; - /// <summary> - /// 鑾峰彇闃块噷浜慜SS鎺堟潈淇℃伅 - /// </summary> - /// <param name="query"></param> - /// <returns></returns> - [AllowAnonymous] - public Task<GetAliyunOSSAcsQueryResult> GetAliyunOSSAcs(GetAliyunOSSAcsQuery query) - { - return mediator.Send(query); - } +// /// <summary> +// /// 鑾峰彇闃块噷浜慜SS鎺堟潈淇℃伅 +// /// </summary> +// /// <param name="query"></param> +// /// <returns></returns> +// [AllowAnonymous] +// public Task<GetAliyunOSSAcsQueryResult> GetAliyunOSSAcs(GetAliyunOSSAcsQuery query) +// { +// return mediator.Send(query); +// } - /// <summary> - /// 瀵嗙爜鐧诲綍 - /// </summary> - /// <param name="command"></param> - /// <returns></returns> - [AllowAnonymous] - [IfException(ErrorCode = EnumUserErrorCodeType.u1000)] - public Task<PasswordLoginCommandCallback> PasswordLogin(PasswordLoginCommand command) - { - return mediator.Send(command); - } - } -} +// /// <summary> +// /// 瀵嗙爜鐧诲綍 +// /// </summary> +// /// <param name="command"></param> +// /// <returns></returns> +// [AllowAnonymous] +// [IfException(ErrorCode = EnumUserErrorCodeType.u1000)] +// public Task<PasswordLoginCommandCallback> PasswordLogin(PasswordLoginCommand command) +// { +// return mediator.Send(command); +// } +// } +//} diff --git a/FlexJobApi.User.Application/FlexJobApi.User.Application.xml b/FlexJobApi.User.Application/FlexJobApi.User.Application.xml index aca41b0..c3be773 100644 --- a/FlexJobApi.User.Application/FlexJobApi.User.Application.xml +++ b/FlexJobApi.User.Application/FlexJobApi.User.Application.xml @@ -4,30 +4,6 @@ <name>FlexJobApi.User.Application</name> </assembly> <members> - <member name="T:FlexJobApi.User.Application.AuthAppService"> - <summary> - 璁よ瘉 - </summary> - </member> - <member name="M:FlexJobApi.User.Application.AuthAppService.#ctor(MediatR.IMediator)"> - <summary> - 璁よ瘉 - </summary> - </member> - <member name="M:FlexJobApi.User.Application.AuthAppService.GetAliyunOSSAcs(FlexJobApi.Core.GetAliyunOSSAcsQuery)"> - <summary> - 鑾峰彇闃块噷浜慜SS鎺堟潈淇℃伅 - </summary> - <param name="query"></param> - <returns></returns> - </member> - <member name="M:FlexJobApi.User.Application.AuthAppService.PasswordLogin(FlexJobApi.Core.PasswordLoginCommand)"> - <summary> - 瀵嗙爜鐧诲綍 - </summary> - <param name="command"></param> - <returns></returns> - </member> <member name="T:FlexJobApi.User.Application.PasswordLoginCommandHandler"> <summary> 瀵嗙爜鐧诲綍 @@ -181,65 +157,6 @@ <member name="M:FlexJobApi.User.Application.SetMenuSwitchCommandHandler.Handle(FlexJobApi.Core.SetMenuSwitchCommand,System.Threading.CancellationToken)"> <inheritdoc/> </member> - <member name="T:FlexJobApi.User.Application.MenuAppService"> - <summary> - 鑿滃崟 - </summary> - </member> - <member name="M:FlexJobApi.User.Application.MenuAppService.#ctor(MediatR.IMediator)"> - <summary> - 鑿滃崟 - </summary> - </member> - <member name="M:FlexJobApi.User.Application.MenuAppService.GetMenus(FlexJobApi.Core.GetMenusQuery)"> - <summary> - 鏌ヨ鑿滃崟鍒楄〃 - </summary> - <param name="query"></param> - <returns></returns> - </member> - <member name="M:FlexJobApi.User.Application.MenuAppService.GetMenu(FlexJobApi.Core.Models.GetMenuQuery)"> - <summary> - 鏌ヨ鑿滃崟璇︽儏 - </summary> - <param name="query"></param> - <returns></returns> - </member> - <member name="M:FlexJobApi.User.Application.MenuAppService.SaveMenu(FlexJobApi.Core.SaveMenuCommand)"> - <summary> - 淇濆瓨鑿滃崟 - </summary> - <param name="command"></param> - <returns></returns> - </member> - <member name="M:FlexJobApi.User.Application.MenuAppService.SaveMenuButton(FlexJobApi.Core.SaveMenuButtonCommand)"> - <summary> - 淇濆瓨鑿滃崟鎸夐挳 - </summary> - <param name="command"></param> - <returns></returns> - </member> - <member name="M:FlexJobApi.User.Application.MenuAppService.SaveMenuField(FlexJobApi.Core.SaveMenuFieldCommand)"> - <summary> - 淇濆瓨鑿滃崟瀛楁 - </summary> - <param name="command"></param> - <returns></returns> - </member> - <member name="M:FlexJobApi.User.Application.MenuAppService.SetMenuSwitch(FlexJobApi.Core.SetMenuSwitchCommand)"> - <summary> - 璁剧疆鑿滃崟鍒囨崲淇℃伅 - </summary> - <param name="command"></param> - <returns></returns> - </member> - <member name="M:FlexJobApi.User.Application.MenuAppService.DeleteMenu(FlexJobApi.Core.DeleteMenuCommand)"> - <summary> - 鍒犻櫎鑿滃崟 - </summary> - <param name="command"></param> - <returns></returns> - </member> <member name="T:FlexJobApi.User.Application.Menus.Queries.GetMenuQueryHandler"> <summary> 鏌ヨ鑿滃崟璇︽儏 @@ -252,7 +169,7 @@ </summary> <param name="rep"></param> </member> - <member name="M:FlexJobApi.User.Application.Menus.Queries.GetMenuQueryHandler.Handle(FlexJobApi.Core.Models.GetMenuQuery,System.Threading.CancellationToken)"> + <member name="M:FlexJobApi.User.Application.Menus.Queries.GetMenuQueryHandler.Handle(FlexJobApi.Core.GetMenuQuery,System.Threading.CancellationToken)"> <inheritdoc/> </member> <member name="T:FlexJobApi.User.Application.GetMenusQueryHandler"> @@ -301,30 +218,6 @@ </member> <member name="M:FlexJobApi.User.Application.GetResourcesQueryHandler.Handle(FlexJobApi.Core.GetResourcesQuery,System.Threading.CancellationToken)"> <inheritdoc/> - </member> - <member name="T:FlexJobApi.User.Application.ResourceAppService"> - <summary> - 璧勬簮 - </summary> - </member> - <member name="M:FlexJobApi.User.Application.ResourceAppService.#ctor(MediatR.IMediator)"> - <summary> - 璧勬簮 - </summary> - </member> - <member name="M:FlexJobApi.User.Application.ResourceAppService.GetResources(FlexJobApi.Core.GetResourcesQuery)"> - <summary> - 鑾峰彇璧勬簮鍒楄〃 - </summary> - <param name="query"></param> - <returns></returns> - </member> - <member name="M:FlexJobApi.User.Application.ResourceAppService.GetResourceFields(FlexJobApi.Core.GetResourceFieldsQuery)"> - <summary> - 鑾峰彇璧勬簮瀛楁 - </summary> - <param name="query"></param> - <returns></returns> </member> <member name="T:FlexJobApi.User.Application.DeleteRoleCommandHandler"> <summary> @@ -379,44 +272,6 @@ </member> <member name="M:FlexJobApi.User.Application.GetRolesQueryHandler.Handle(FlexJobApi.Core.GetRolesQuery,System.Threading.CancellationToken)"> <inheritdoc/> - </member> - <member name="T:FlexJobApi.User.Application.RoleAppService"> - <summary> - 瑙掕壊 - </summary> - </member> - <member name="M:FlexJobApi.User.Application.RoleAppService.#ctor(MediatR.IMediator)"> - <summary> - 瑙掕壊 - </summary> - </member> - <member name="M:FlexJobApi.User.Application.RoleAppService.GetRoles(FlexJobApi.Core.GetRolesQuery)"> - <summary> - 鏌ヨ瑙掕壊鍒楄〃 - </summary> - <param name="query"></param> - <returns></returns> - </member> - <member name="M:FlexJobApi.User.Application.RoleAppService.GetRole(FlexJobApi.Core.GetRoleQuery)"> - <summary> - 鏌ヨ瑙掕壊璇︽儏 - </summary> - <param name="query"></param> - <returns></returns> - </member> - <member name="M:FlexJobApi.User.Application.RoleAppService.DeleteRole(FlexJobApi.Core.DeleteRoleCommand)"> - <summary> - 鍒犻櫎瑙掕壊 - </summary> - <param name="command"></param> - <returns></returns> - </member> - <member name="M:FlexJobApi.User.Application.RoleAppService.SaveRole(FlexJobApi.Core.SaveRoleCommand)"> - <summary> - 淇濆瓨瑙掕壊 - </summary> - <param name="command"></param> - <returns></returns> </member> </members> </doc> diff --git a/FlexJobApi.User.Application/Menus/MenuAppService.cs b/FlexJobApi.User.Application/Menus/MenuAppService.cs index e58bdc2..7414f82 100644 --- a/FlexJobApi.User.Application/Menus/MenuAppService.cs +++ b/FlexJobApi.User.Application/Menus/MenuAppService.cs @@ -1,100 +1,100 @@ -锘縰sing FlexJobApi.Core; -using FlexJobApi.Core.Models; -using Furion.DynamicApiController; -using MediatR; -using Microsoft.AspNetCore.Mvc; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +锘�//using FlexJobApi.Core; +//using FlexJobApi.Core.Models; +//using Furion.DynamicApiController; +//using MediatR; +//using Microsoft.AspNetCore.Mvc; +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using System.Threading.Tasks; -namespace FlexJobApi.User.Application -{ - /// <summary> - /// 鑿滃崟 - /// </summary> - [Route("api/user/[controller]")] - public class MenuAppService(IMediator mediator) : IDynamicApiController - { - private readonly IMediator mediator = mediator; +//namespace FlexJobApi.User.Application +//{ +// /// <summary> +// /// 鑿滃崟 +// /// </summary> +// [Route("api/user/[controller]")] +// public class MenuAppService(IMediator mediator) : IDynamicApiController +// { +// private readonly IMediator mediator = mediator; - #region 鏌ヨ +// #region 鏌ヨ - /// <summary> - /// 鏌ヨ鑿滃崟鍒楄〃 - /// </summary> - /// <param name="query"></param> - /// <returns></returns> - public Task<List<GetMenusQueryResultItem>> GetMenus(GetMenusQuery query) - { - return mediator.Send(query); - } +// /// <summary> +// /// 鏌ヨ鑿滃崟鍒楄〃 +// /// </summary> +// /// <param name="query"></param> +// /// <returns></returns> +// public Task<List<GetMenusQueryResultItem>> GetMenus(GetMenusQuery query) +// { +// return mediator.Send(query); +// } - /// <summary> - /// 鏌ヨ鑿滃崟璇︽儏 - /// </summary> - /// <param name="query"></param> - /// <returns></returns> - public Task<GetMenuQueryResult> GetMenu(GetMenuQuery query) - { - return mediator.Send(query); - } +// /// <summary> +// /// 鏌ヨ鑿滃崟璇︽儏 +// /// </summary> +// /// <param name="query"></param> +// /// <returns></returns> +// public Task<GetMenuQueryResult> GetMenu(GetMenuQuery query) +// { +// return mediator.Send(query); +// } - #endregion +// #endregion - #region 鍐欏叆 +// #region 鍐欏叆 - /// <summary> - /// 淇濆瓨鑿滃崟 - /// </summary> - /// <param name="command"></param> - /// <returns></returns> - public Task<Guid> SaveMenu(SaveMenuCommand command) - { - return mediator.Send(command); - } +// /// <summary> +// /// 淇濆瓨鑿滃崟 +// /// </summary> +// /// <param name="command"></param> +// /// <returns></returns> +// public Task<Guid> SaveMenu(SaveMenuCommand command) +// { +// return mediator.Send(command); +// } - /// <summary> - /// 淇濆瓨鑿滃崟鎸夐挳 - /// </summary> - /// <param name="command"></param> - /// <returns></returns> - public Task<Guid> SaveMenuButton(SaveMenuButtonCommand command) - { - return mediator.Send(command); - } +// /// <summary> +// /// 淇濆瓨鑿滃崟鎸夐挳 +// /// </summary> +// /// <param name="command"></param> +// /// <returns></returns> +// public Task<Guid> SaveMenuButton(SaveMenuButtonCommand command) +// { +// return mediator.Send(command); +// } - /// <summary> - /// 淇濆瓨鑿滃崟瀛楁 - /// </summary> - /// <param name="command"></param> - /// <returns></returns> - public Task<Guid> SaveMenuField(SaveMenuFieldCommand command) - { - return mediator.Send(command); - } +// /// <summary> +// /// 淇濆瓨鑿滃崟瀛楁 +// /// </summary> +// /// <param name="command"></param> +// /// <returns></returns> +// public Task<Guid> SaveMenuField(SaveMenuFieldCommand command) +// { +// return mediator.Send(command); +// } - /// <summary> - /// 璁剧疆鑿滃崟鍒囨崲淇℃伅 - /// </summary> - /// <param name="command"></param> - /// <returns></returns> - public Task<int> SetMenuSwitch(SetMenuSwitchCommand command) - { - return mediator.Send(command); - } +// /// <summary> +// /// 璁剧疆鑿滃崟鍒囨崲淇℃伅 +// /// </summary> +// /// <param name="command"></param> +// /// <returns></returns> +// public Task<int> SetMenuSwitch(SetMenuSwitchCommand command) +// { +// return mediator.Send(command); +// } - /// <summary> - /// 鍒犻櫎鑿滃崟 - /// </summary> - /// <param name="command"></param> - /// <returns></returns> - public Task<int> DeleteMenu(DeleteMenuCommand command) - { - return mediator.Send(command); - } +// /// <summary> +// /// 鍒犻櫎鑿滃崟 +// /// </summary> +// /// <param name="command"></param> +// /// <returns></returns> +// public Task<int> DeleteMenu(DeleteMenuCommand command) +// { +// return mediator.Send(command); +// } - #endregion - } -} +// #endregion +// } +//} diff --git a/FlexJobApi.User.Application/Menus/Queries/GetMenuQueryHandler.cs b/FlexJobApi.User.Application/Menus/Queries/GetMenuQueryHandler.cs index 6763485..90b739b 100644 --- a/FlexJobApi.User.Application/Menus/Queries/GetMenuQueryHandler.cs +++ b/FlexJobApi.User.Application/Menus/Queries/GetMenuQueryHandler.cs @@ -1,5 +1,4 @@ 锘縰sing FlexJobApi.Core; -using FlexJobApi.Core.Models; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Mapster; diff --git a/FlexJobApi.User.Application/Menus/Queries/GetMenusQueryHandler.cs b/FlexJobApi.User.Application/Menus/Queries/GetMenusQueryHandler.cs index 09ea343..c19d457 100644 --- a/FlexJobApi.User.Application/Menus/Queries/GetMenusQueryHandler.cs +++ b/FlexJobApi.User.Application/Menus/Queries/GetMenusQueryHandler.cs @@ -1,5 +1,4 @@ 锘縰sing FlexJobApi.Core; -using FlexJobApi.Core.Models; using Furion.DatabaseAccessor; using Mapster; using MediatR; diff --git a/FlexJobApi.User.Application/Resources/Queries/GetResourcesQueryHandler.cs b/FlexJobApi.User.Application/Resources/Queries/GetResourcesQueryHandler.cs index 16916ad..a18b631 100644 --- a/FlexJobApi.User.Application/Resources/Queries/GetResourcesQueryHandler.cs +++ b/FlexJobApi.User.Application/Resources/Queries/GetResourcesQueryHandler.cs @@ -27,8 +27,6 @@ var q = rep.AsQueryable().AsNoTracking() .OrderBy(it => it.Route) .Where(it => !it.IsExpired); - if (request.Service.IsNotNull()) - q = q.Where(it => it.Service == request.Service); if (request.Method.HasValue) q = q.Where(it => it.Method == request.Method); if (request.Keywords.IsNotNull()) diff --git a/FlexJobApi.User.Application/Resources/ResourceAppService.cs b/FlexJobApi.User.Application/Resources/ResourceAppService.cs index dc6a671..a84d71f 100644 --- a/FlexJobApi.User.Application/Resources/ResourceAppService.cs +++ b/FlexJobApi.User.Application/Resources/ResourceAppService.cs @@ -1,36 +1,36 @@ -锘縰sing FlexJobApi.Core; -using Furion.DynamicApiController; -using MediatR; -using Microsoft.AspNetCore.Mvc; +锘�//using FlexJobApi.Core; +//using Furion.DynamicApiController; +//using MediatR; +//using Microsoft.AspNetCore.Mvc; -namespace FlexJobApi.User.Application -{ - /// <summary> - /// 璧勬簮 - /// </summary> - [Route("api/user/[controller]")] - public class ResourceAppService(IMediator mediator) : IDynamicApiController - { - private readonly IMediator mediator = mediator; +//namespace FlexJobApi.User.Application +//{ +// /// <summary> +// /// 璧勬簮 +// /// </summary> +// [Route("api/user/[controller]")] +// public class ResourceAppService(IMediator mediator) : IDynamicApiController +// { +// private readonly IMediator mediator = mediator; - /// <summary> - /// 鑾峰彇璧勬簮鍒楄〃 - /// </summary> - /// <param name="query"></param> - /// <returns></returns> - public Task<List<GetResourcesQueryResultItem>> GetResources(GetResourcesQuery query) - { - return mediator.Send(query); - } +// /// <summary> +// /// 鑾峰彇璧勬簮鍒楄〃 +// /// </summary> +// /// <param name="query"></param> +// /// <returns></returns> +// public Task<List<GetResourcesQueryResultItem>> GetResources(GetResourcesQuery query) +// { +// return mediator.Send(query); +// } - /// <summary> - /// 鑾峰彇璧勬簮瀛楁 - /// </summary> - /// <param name="query"></param> - /// <returns></returns> - public Task<List<GetResourceFieldsQueryResultItem>> GetResourceFields(GetResourceFieldsQuery query) - { - return mediator.Send(query); - } - } -} +// /// <summary> +// /// 鑾峰彇璧勬簮瀛楁 +// /// </summary> +// /// <param name="query"></param> +// /// <returns></returns> +// public Task<List<GetResourceFieldsQueryResultItem>> GetResourceFields(GetResourceFieldsQuery query) +// { +// return mediator.Send(query); +// } +// } +//} diff --git a/FlexJobApi.User.Application/Roles/RoleAppService.cs b/FlexJobApi.User.Application/Roles/RoleAppService.cs index 0caaf22..61c49b5 100644 --- a/FlexJobApi.User.Application/Roles/RoleAppService.cs +++ b/FlexJobApi.User.Application/Roles/RoleAppService.cs @@ -1,72 +1,72 @@ -锘縰sing FlexJobApi.Core; -using Furion.DynamicApiController; -using MediatR; -using Microsoft.AspNetCore.Mvc; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using static Microsoft.EntityFrameworkCore.DbLoggerCategory; +锘�//using FlexJobApi.Core; +//using Furion.DynamicApiController; +//using MediatR; +//using Microsoft.AspNetCore.Mvc; +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using System.Threading.Tasks; +//using static Microsoft.EntityFrameworkCore.DbLoggerCategory; -namespace FlexJobApi.User.Application -{ - /// <summary> - /// 瑙掕壊 - /// </summary> - [Route("api/user/[controller]")] - public class RoleAppService(IMediator mediator) : IDynamicApiController - { - private readonly IMediator mediator = mediator; +//namespace FlexJobApi.User.Application +//{ +// /// <summary> +// /// 瑙掕壊 +// /// </summary> +// [Route("api/user/[controller]")] +// public class RoleAppService(IMediator mediator) : IDynamicApiController +// { +// private readonly IMediator mediator = mediator; - #region 鏌ヨ +// #region 鏌ヨ - /// <summary> - /// 鏌ヨ瑙掕壊鍒楄〃 - /// </summary> - /// <param name="query"></param> - /// <returns></returns> - [HttpPost] - public Task<PagedListQueryResult<GetRolesQueryResultItem>> GetRoles([FromBody] GetRolesQuery query) - { - return mediator.Send(query); - } +// /// <summary> +// /// 鏌ヨ瑙掕壊鍒楄〃 +// /// </summary> +// /// <param name="query"></param> +// /// <returns></returns> +// [HttpPost] +// public Task<PagedListQueryResult<GetRolesQueryResultItem>> GetRoles([FromBody] GetRolesQuery query) +// { +// return mediator.Send(query); +// } - /// <summary> - /// 鏌ヨ瑙掕壊璇︽儏 - /// </summary> - /// <param name="query"></param> - /// <returns></returns> - public Task<GetRoleQueryResult> GetRole(GetRoleQuery query) - { - return mediator.Send(query); - } +// /// <summary> +// /// 鏌ヨ瑙掕壊璇︽儏 +// /// </summary> +// /// <param name="query"></param> +// /// <returns></returns> +// public Task<GetRoleQueryResult> GetRole(GetRoleQuery query) +// { +// return mediator.Send(query); +// } - #endregion +// #endregion - #region 鍐欏叆 +// #region 鍐欏叆 - /// <summary> - /// 鍒犻櫎瑙掕壊 - /// </summary> - /// <param name="command"></param> - /// <returns></returns> - public Task<int> DeleteRole(DeleteRoleCommand command) - { - return mediator.Send(command); - } +// /// <summary> +// /// 鍒犻櫎瑙掕壊 +// /// </summary> +// /// <param name="command"></param> +// /// <returns></returns> +// public Task<int> DeleteRole(DeleteRoleCommand command) +// { +// return mediator.Send(command); +// } - /// <summary> - /// 淇濆瓨瑙掕壊 - /// </summary> - /// <param name="command"></param> - /// <returns></returns> - public Task<Guid> SaveRole(SaveRoleCommand command) - { - return mediator.Send(command); - } +// /// <summary> +// /// 淇濆瓨瑙掕壊 +// /// </summary> +// /// <param name="command"></param> +// /// <returns></returns> +// public Task<Guid> SaveRole(SaveRoleCommand command) +// { +// return mediator.Send(command); +// } - #endregion +// #endregion - } -} +// } +//} -- Gitblit v1.9.1