From 5454e326a76e695ba4a51d5994c88ef7ded76efc Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 21 八月 2025 13:24:10 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs | 3 FlexJobApi.Core/Utils/DbUtils/SaveDataCommand.cs | 2 FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs | 5 FlexJobApi.CommonServer.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs | 5 FlexJobApi.Core/Utils/DbUtils/DbUtils.cs | 6 FlexJobApi.Core/Models/UserServer/ElectronSigns/Commands/SaveContractTemplateCommand.cs | 58 FlexJobApi.UserServer.Application/UserResumes/Commands/UserResumeCommandHandler.cs | 5 FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs | 3 FlexJobApi.Core/FlexJobApi.Core.xml | 293 ++ FlexJobApi.Core/Models/ElectronSignServer/Common/ElectronSignServerResult.cs | 8 FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/CreateOrUpdateContractTemplateInput.cs | 101 FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml | 33 FlexJobApi.Database.Migrations/REDEME.MD | 2 FlexJobApi.UserServer.Application/ElectronSign/Queries/PersonalUserRealQueryHandler.cs | 52 FlexJobApi.UserServer.Application/ElectronSign/Commands/PersonalUserRealCommandHandler.cs | 8 FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseAuth.cs | 6 FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetPersonalUserRealResultQuery.cs | 119 + FlexJobApi.CommonServer.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs | 3 FlexJobApi.Database.Migrations/Migrations/20250821014449_UpdateContractTemplate.Designer.cs | 2790 ++++++++++++++++++++++++ FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/DeleteContractTemplateInput.cs | 25 FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractSupplier.cs | 26 FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractTemplateValueType.cs | 31 FlexJobApi.Database.Migrations/Migrations/20250821051718_UpdateContractTemplate0821002.Designer.cs | 2796 ++++++++++++++++++++++++ FlexJobApi.Database.Migrations/Migrations/20250821051718_UpdateContractTemplate0821002.cs | 38 FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs | 147 + FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuCommandHandler.cs | 3 FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs | 3 FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs | 5 FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetContractTemplateQuery.cs | 11 FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractTemplateValueRecorder.cs | 26 FlexJobApi.Core/Models/UserServer/ElectronSigns/Commands/SaveContractTemplateValuesCommand.cs | 84 FlexJobApi.Database.Migrations/Migrations/20250821014449_UpdateContractTemplate.cs | 39 FlexJobApi.Core/Entities/UserServer/ElectronSigns/ContractTemplate.cs | 15 FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetEnterpriseContractTemplatesQuery.cs | 3 FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs | 12 35 files changed, 6,666 insertions(+), 100 deletions(-) diff --git a/FlexJobApi.CommonServer.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs b/FlexJobApi.CommonServer.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs index 22ee32b..f293eac 100644 --- a/FlexJobApi.CommonServer.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs +++ b/FlexJobApi.CommonServer.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs @@ -42,9 +42,9 @@ /// <param name="cancellationToken"></param> /// <returns></returns> [UnitOfWork] - public Task<Guid> Handle(SaveDictionaryCategoryCommand request, CancellationToken cancellationToken) + public async Task<Guid> Handle(SaveDictionaryCategoryCommand request, CancellationToken cancellationToken) { - return request.SaveData<DictionaryCategory, SaveDictionaryCategoryCommand>( + var entity = await request.SaveData<DictionaryCategory, SaveDictionaryCategoryCommand>( null, it => it.Id != request.Id && it.Code == request.Code, (entity) => @@ -63,6 +63,7 @@ request.Adapt(entity); }, cancellationToken); + return entity.Id; } } } diff --git a/FlexJobApi.CommonServer.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs b/FlexJobApi.CommonServer.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs index 3e15749..ef562c4 100644 --- a/FlexJobApi.CommonServer.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs +++ b/FlexJobApi.CommonServer.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs @@ -54,7 +54,7 @@ ? await rep.AsQueryable().AsNoTracking() .FirstOrDefaultAsync(it => it.Id == request.ParentId) : null; - return await request.SaveData<DictionaryData, SaveDictionaryDataCommand>( + var entity = await request.SaveData<DictionaryData, SaveDictionaryDataCommand>( null, it => it.CategoryId == request.CategoryId @@ -79,6 +79,7 @@ request.Adapt(entity); }, cancellationToken); + return entity.Id; } /// <summary> diff --git a/FlexJobApi.Core/Entities/UserServer/ElectronSigns/ContractTemplate.cs b/FlexJobApi.Core/Entities/UserServer/ElectronSigns/ContractTemplate.cs index e9cfce6..ba3a9ce 100644 --- a/FlexJobApi.Core/Entities/UserServer/ElectronSigns/ContractTemplate.cs +++ b/FlexJobApi.Core/Entities/UserServer/ElectronSigns/ContractTemplate.cs @@ -40,6 +40,16 @@ public string File { get; set; } /// <summary> + /// 鍒剁増妯℃澘鐓х墖 + /// </summary> + public string TemplateEditData { get; set; } + + /// <summary> + /// 鍒剁増鍙橀噺JSON + /// </summary> + public string TemplateJsonData { get; set; } + + /// <summary> /// 涓氬姟缂栫爜 /// </summary> public string Code { get; set; } @@ -70,6 +80,11 @@ public bool IsDisabled { get; set; } /// <summary> + /// 鐢靛瓙绛惧悎鍚屾ā鏉縄d + /// </summary> + public Guid? ElectronSignContractTemplateId { get; set; } + + /// <summary> /// 鍙橀噺 /// </summary> public List<ContractTemplateValue> Values { get; set; } diff --git a/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseAuth.cs b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseAuth.cs index 8d8dfbd..b078e79 100644 --- a/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseAuth.cs +++ b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseAuth.cs @@ -107,5 +107,11 @@ /// 浼佷笟鎺堟潈涔� /// </summary> public string ProxyPowerAttorneyUrl { get; set; } + + /// <summary> + /// 鐢靛瓙绛句紒涓欼d + /// </summary> + public Guid? ElectronSignEnterpriseId { get; set; } + } } diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml index bb2c542..3f6c432 100644 --- a/FlexJobApi.Core/FlexJobApi.Core.xml +++ b/FlexJobApi.Core/FlexJobApi.Core.xml @@ -1179,6 +1179,16 @@ 妯℃澘 </summary> </member> + <member name="P:FlexJobApi.Core.ContractTemplate.TemplateEditData"> + <summary> + 鍒剁増妯℃澘鐓х墖 + </summary> + </member> + <member name="P:FlexJobApi.Core.ContractTemplate.TemplateJsonData"> + <summary> + 鍒剁増鍙橀噺JSON + </summary> + </member> <member name="P:FlexJobApi.Core.ContractTemplate.Code"> <summary> 涓氬姟缂栫爜 @@ -1207,6 +1217,11 @@ <member name="P:FlexJobApi.Core.ContractTemplate.IsDisabled"> <summary> 鏄惁宸茬鐢� + </summary> + </member> + <member name="P:FlexJobApi.Core.ContractTemplate.ElectronSignContractTemplateId"> + <summary> + 鐢靛瓙绛惧悎鍚屾ā鏉縄d </summary> </member> <member name="P:FlexJobApi.Core.ContractTemplate.Values"> @@ -1582,6 +1597,11 @@ <member name="P:FlexJobApi.Core.EnterpriseAuth.ProxyPowerAttorneyUrl"> <summary> 浼佷笟鎺堟潈涔� + </summary> + </member> + <member name="P:FlexJobApi.Core.EnterpriseAuth.ElectronSignEnterpriseId"> + <summary> + 鐢靛瓙绛句紒涓欼d </summary> </member> <member name="T:FlexJobApi.Core.EnterpriseEmployee"> @@ -4698,6 +4718,136 @@ 鍝嶅簲绫诲瀷鍏ㄥ悕 </summary> </member> + <member name="T:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateInput"> + <summary> + 鍒涘缓鎴栨洿鏂板悎鍚屾ā鏉� + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateInput.Id"> + <summary> + Id + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateInput.CustomerId"> + <summary> + 瀹㈡埛Id + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateInput.UserId"> + <summary> + 浼佷笟鐢ㄦ埛Id + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateInput.Supplier"> + <summary> + 渚涘簲鍟嗭紙10涓婁笂绛� 20鏀粯瀹濅俊浠荤锛� + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateInput.Name"> + <summary> + 妯℃澘鍚嶇О + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateInput.TemplateCode"> + <summary> + 妯℃澘缂栧彿 + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateInput.Values"> + <summary> + 妯℃澘鍙橀噺 + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateValueInput.Type"> + <summary> + 鍙橀噺绫诲瀷锛�10鏂囨湰 20绛剧讲 30鏃ユ湡锛� + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateValueInput.UserType"> + <summary> + 鐢ㄦ埛绫诲瀷锛�10浼佷笟 20涓汉锛� + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateValueInput.Recorder"> + <summary> + 鍐呭濉啓浜猴紙10鍙戜欢浜� 20绛剧讲浜猴級 + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateValueInput.Label"> + <summary> + 鍙橀噺鍚嶇О + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateValueInput.Name"> + <summary> + 鍙橀噺浠g爜 + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.CreateOrUpdateContractTemplateValueInput.Required"> + <summary> + 鏄惁蹇呭~ + </summary> + </member> + <member name="T:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.DeleteContractTemplateInput"> + <summary> + 鍒犻櫎鍚堝悓妯℃澘 + </summary> + </member> + <member name="P:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.DeleteContractTemplateInput.Ids"> + <summary> + Id + </summary> + </member> + <member name="T:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractSupplier"> + <summary> + 鐢靛瓙绛�-鍚堝悓渚涘簲鍟嗭紙10涓婁笂绛� 20鏀粯瀹濅俊浠荤锛� + </summary> + </member> + <member name="F:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractSupplier.BestSign"> + <summary> + 涓婁笂绛� + </summary> + </member> + <member name="F:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractSupplier.AlipaySign"> + <summary> + 鏀粯瀹濅俊浠荤 + </summary> + </member> + <member name="T:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractTemplateValueRecorder"> + <summary> + 鐢靛瓙绛�-妯℃澘鍙橀噺-鍐呭濉啓浜猴紙10鍙戜欢浜� 20绛剧讲浜猴級 + </summary> + </member> + <member name="F:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractTemplateValueRecorder.Creator"> + <summary> + 鍙戜欢浜� + </summary> + </member> + <member name="F:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractTemplateValueRecorder.Signer"> + <summary> + 绛剧讲浜� + </summary> + </member> + <member name="T:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractTemplateValueType"> + <summary> + 鐢靛瓙绛�-妯℃澘鍙橀噺-鍏冪礌绫诲瀷锛�10鏂囨湰 20绛剧讲 30鏃ユ湡锛� + </summary> + </member> + <member name="F:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractTemplateValueType.Text"> + <summary> + 鏂囨湰 + </summary> + </member> + <member name="F:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractTemplateValueType.Sign"> + <summary> + 绛剧讲 + </summary> + </member> + <member name="F:FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates.EnumElectronSignContractTemplateValueType.Date"> + <summary> + 鏃ユ湡 + </summary> + </member> <member name="T:FlexJobApi.Core.Models.ElectronSignServer.PersonalUserReals.EnumElectronSignPersonalRealMethod"> <summary> 鐢靛瓙绛�-瀹炲悕-璁よ瘉鏂瑰紡锛�10涓汉鎵嬫満鍙蜂笁瑕佺礌 20閾惰鍗″瑕佺礌 30鍒疯劯璁よ瘉锛� @@ -7082,47 +7232,62 @@ 妯℃澘Id </summary> </member> - <member name="P:FlexJobApi.Core.SaveContractTemplateCommand.Values"> + <member name="T:FlexJobApi.Core.SaveContractTemplateValuesCommand"> + <summary> + 鍚堝悓鍒剁増 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveContractTemplateValuesCommand.Id"> + <summary> + 妯℃澘Id + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveContractTemplateValuesCommand.TemplateJsonData"> + <summary> + 鍒剁増鍙橀噺JSON + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveContractTemplateValuesCommand.Values"> <summary> 鍙橀噺 </summary> </member> - <member name="T:FlexJobApi.Core.SaveContractTemplateCommandValue"> + <member name="T:FlexJobApi.Core.SaveContractTemplateValuesCommandItem"> <summary> 淇濆瓨鍚堝悓妯℃澘鍙橀噺 </summary> </member> - <member name="P:FlexJobApi.Core.SaveContractTemplateCommandValue.Id"> + <member name="P:FlexJobApi.Core.SaveContractTemplateValuesCommandItem.Id"> <summary> Id </summary> </member> - <member name="P:FlexJobApi.Core.SaveContractTemplateCommandValue.Type"> + <member name="P:FlexJobApi.Core.SaveContractTemplateValuesCommandItem.Type"> <summary> 鍙橀噺绫诲瀷 </summary> </member> - <member name="P:FlexJobApi.Core.SaveContractTemplateCommandValue.Recorder"> + <member name="P:FlexJobApi.Core.SaveContractTemplateValuesCommandItem.Recorder"> <summary> 鍐呭濉啓浜� </summary> </member> - <member name="P:FlexJobApi.Core.SaveContractTemplateCommandValue.UserType"> + <member name="P:FlexJobApi.Core.SaveContractTemplateValuesCommandItem.UserType"> <summary> 鐢ㄦ埛绫诲瀷 </summary> </member> - <member name="P:FlexJobApi.Core.SaveContractTemplateCommandValue.Label"> + <member name="P:FlexJobApi.Core.SaveContractTemplateValuesCommandItem.Label"> <summary> 鍙橀噺鍚嶇О </summary> </member> - <member name="P:FlexJobApi.Core.SaveContractTemplateCommandValue.Name"> + <member name="P:FlexJobApi.Core.SaveContractTemplateValuesCommandItem.Name"> <summary> 鍙橀噺浠g爜 </summary> </member> - <member name="P:FlexJobApi.Core.SaveContractTemplateCommandValue.Required"> + <member name="P:FlexJobApi.Core.SaveContractTemplateValuesCommandItem.Required"> <summary> 鏄惁蹇呭~ </summary> @@ -7236,6 +7401,16 @@ <member name="P:FlexJobApi.Core.GetContractTemplateQueryResult.File"> <summary> 妯℃澘 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetContractTemplateQueryResult.TemplateEditData"> + <summary> + 鍒剁増妯℃澘鐓х墖 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetContractTemplateQueryResult.TemplateJsonData"> + <summary> + 鍒剁増鍙橀噺JSON </summary> </member> <member name="P:FlexJobApi.Core.GetContractTemplateQueryResult.Code"> @@ -7458,6 +7633,106 @@ 鎿嶄綔浜� </summary> </member> + <member name="T:FlexJobApi.Core.GetPersonalUserRealResultQuery"> + <summary> + 鏌ヨ涓汉瀹炲悕缁撴灉 + </summary> + </member> + <member name="T:FlexJobApi.Core.GetPersonalUserRealResultQueryResult"> + <summary> + 鏌ヨ涓汉瀹炲悕缁撴灉 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResult.IsReal"> + <summary> + 鏄惁瀹炲悕 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResult.RealTime"> + <summary> + 瀹炲悕鏃堕棿 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResult.RealMethod"> + <summary> + 瀹炲悕鏂瑰紡 + </summary> + </member> + <member name="T:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth"> + <summary> + 鏌ヨ涓汉瀹炲悕缁撴灉 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.Name"> + <summary> + 濮撳悕 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.PhoneNumber"> + <summary> + 鎵嬫満鍙� + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.Identity"> + <summary> + 韬唤璇佸彿 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.IdentityImg"> + <summary> + 韬唤璇佷汉鍍忛潰 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.IdentityBackImg"> + <summary> + 韬唤璇佸浗寰介潰 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.Gender"> + <summary> + 鎬у埆 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.Birthday"> + <summary> + 鐢熸棩 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.Age"> + <summary> + 骞撮緞 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.BankCard"> + <summary> + 閾惰鍗″彿 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.BankCardImg"> + <summary> + 閾惰鍗$収鐗� + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.RealAccess"> + <summary> + 瀹炲悕閫氶亾 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.RealStatus"> + <summary> + 瀹炲悕鐘舵�� + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.RealFailMessage"> + <summary> + 瀹炲悕澶辫触娑堟伅 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalUserRealResultQueryResultAuth.FaceRealUrl"> + <summary> + 浜鸿劯瀹炲悕璁よ瘉鍦板潃 + </summary> + </member> <member name="T:FlexJobApi.Core.EditEnterpriseEmployeeCommand"> <summary> 缂栬緫鐏靛伐淇℃伅 diff --git a/FlexJobApi.Core/Models/ElectronSignServer/Common/ElectronSignServerResult.cs b/FlexJobApi.Core/Models/ElectronSignServer/Common/ElectronSignServerResult.cs index 8e866bf..6af3a64 100644 --- a/FlexJobApi.Core/Models/ElectronSignServer/Common/ElectronSignServerResult.cs +++ b/FlexJobApi.Core/Models/ElectronSignServer/Common/ElectronSignServerResult.cs @@ -8,8 +8,16 @@ { public class ElectronSignServerResult<T> { + public ElectronSignServerResultError Error { get; set; } public string Msg { get; set; } + public string Message => Msg ?? Error?.Message; public T Result { get; set; } public bool Success { get; set; } } + + public class ElectronSignServerResultError + { + public string Code { get; set; } + public string Message { get; set; } + } } diff --git a/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/CreateOrUpdateContractTemplateInput.cs b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/CreateOrUpdateContractTemplateInput.cs new file mode 100644 index 0000000..43fcce0 --- /dev/null +++ b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/CreateOrUpdateContractTemplateInput.cs @@ -0,0 +1,101 @@ +锘縰sing FlexJobApi.Core.Models.ElectronSignServer.PersonalUserReals; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates +{ + /// <summary> + /// 鍒涘缓鎴栨洿鏂板悎鍚屾ā鏉� + /// </summary> + [Resource([EnumResourceController.ElectronSignServerElectronSign], Method = EnumResourceMethod.Post, Route = "/api/ElectronSign/CreateOrUpdateContractTemplate")] + public class CreateOrUpdateContractTemplateInput + { + public CreateOrUpdateContractTemplateInput() + { + Values = new List<CreateOrUpdateContractTemplateValueInput>(); + } + + /// <summary> + /// Id + /// </summary> + public Guid? Id { get; set; } + + /// <summary> + /// 瀹㈡埛Id + /// </summary> + [DisplayName("瀹㈡埛Id")] + [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")] + public Guid CustomerId { get; set; } + + /// <summary> + /// 浼佷笟鐢ㄦ埛Id + /// </summary> + public Guid? UserId { get; set; } + + /// <summary> + /// 渚涘簲鍟嗭紙10涓婁笂绛� 20鏀粯瀹濅俊浠荤锛� + /// </summary> + [DisplayName("渚涘簲鍟�")] + [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")] + public EnumElectronSignContractSupplier Supplier { get; set; } + + /// <summary> + /// 妯℃澘鍚嶇О + /// </summary> + [DisplayName("妯℃澘鍚嶇О")] + [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")] + public string Name { get; set; } + + /// <summary> + /// 妯℃澘缂栧彿 + /// </summary> + [DisplayName("妯℃澘缂栧彿")] + [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")] + public string TemplateCode { get; set; } + + /// <summary> + /// 妯℃澘鍙橀噺 + /// </summary> + [DisplayName("妯℃澘鍙橀噺")] + [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")] + public List<CreateOrUpdateContractTemplateValueInput> Values { get; set; } + } + + public class CreateOrUpdateContractTemplateValueInput + { + /// <summary> + /// 鍙橀噺绫诲瀷锛�10鏂囨湰 20绛剧讲 30鏃ユ湡锛� + /// </summary> + public EnumElectronSignContractTemplateValueType Type { get; set; } + + /// <summary> + /// 鐢ㄦ埛绫诲瀷锛�10浼佷笟 20涓汉锛� + /// </summary> + public EnumElectronSignUserType? UserType { get; set; } + + /// <summary> + /// 鍐呭濉啓浜猴紙10鍙戜欢浜� 20绛剧讲浜猴級 + /// </summary> + public EnumElectronSignContractTemplateValueRecorder Recorder { get; set; } + + /// <summary> + /// 鍙橀噺鍚嶇О + /// </summary> + public string Label { get; set; } + + /// <summary> + /// 鍙橀噺浠g爜 + /// </summary> + public string Name { get; set; } + + /// <summary> + /// 鏄惁蹇呭~ + /// </summary> + public bool Required { get; set; } + } +} diff --git a/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/DeleteContractTemplateInput.cs b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/DeleteContractTemplateInput.cs new file mode 100644 index 0000000..db4a8cb --- /dev/null +++ b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/DeleteContractTemplateInput.cs @@ -0,0 +1,25 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates +{ + /// <summary> + /// 鍒犻櫎鍚堝悓妯℃澘 + /// </summary> + [Resource([EnumResourceController.ElectronSignServerElectronSign], Method = EnumResourceMethod.Post, Route = "/api/ElectronSign/DeleteContractTemplate")] + public class DeleteContractTemplateInput + { + public DeleteContractTemplateInput() + { + Ids = []; + } + + /// <summary> + /// Id + /// </summary> + public List<Guid> Ids { get; set; } + } +} diff --git a/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractSupplier.cs b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractSupplier.cs new file mode 100644 index 0000000..6783da0 --- /dev/null +++ b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractSupplier.cs @@ -0,0 +1,26 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates +{ + /// <summary> + /// 鐢靛瓙绛�-鍚堝悓渚涘簲鍟嗭紙10涓婁笂绛� 20鏀粯瀹濅俊浠荤锛� + /// </summary> + public enum EnumElectronSignContractSupplier + { + /// <summary> + /// 涓婁笂绛� + /// </summary> + [Description("涓婁笂绛�")] + BestSign = 10, + /// <summary> + /// 鏀粯瀹濅俊浠荤 + /// </summary> + [Description("鏀粯瀹濅俊浠荤")] + AlipaySign = 20 + } +} diff --git a/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractTemplateValueRecorder.cs b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractTemplateValueRecorder.cs new file mode 100644 index 0000000..9456bf4 --- /dev/null +++ b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractTemplateValueRecorder.cs @@ -0,0 +1,26 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates +{ + /// <summary> + /// 鐢靛瓙绛�-妯℃澘鍙橀噺-鍐呭濉啓浜猴紙10鍙戜欢浜� 20绛剧讲浜猴級 + /// </summary> + public enum EnumElectronSignContractTemplateValueRecorder + { + /// <summary> + /// 鍙戜欢浜� + /// </summary> + [Description("鍙戜欢浜�")] + Creator = 10, + /// <summary> + /// 绛剧讲浜� + /// </summary> + [Description("绛剧讲浜�")] + Signer = 20, + } +} diff --git a/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractTemplateValueType.cs b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractTemplateValueType.cs new file mode 100644 index 0000000..cf36b5e --- /dev/null +++ b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/EnumElectronSignContractTemplateValueType.cs @@ -0,0 +1,31 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates +{ + /// <summary> + /// 鐢靛瓙绛�-妯℃澘鍙橀噺-鍏冪礌绫诲瀷锛�10鏂囨湰 20绛剧讲 30鏃ユ湡锛� + /// </summary> + public enum EnumElectronSignContractTemplateValueType + { + /// <summary> + /// 鏂囨湰 + /// </summary> + [Description("鏂囨湰")] + Text = 10, + /// <summary> + /// 绛剧讲 + /// </summary> + [Description("绛剧讲")] + Sign = 20, + /// <summary> + /// 鏃ユ湡 + /// </summary> + [Description("鏃ユ湡")] + Date = 30, + } +} diff --git a/FlexJobApi.Core/Models/UserServer/ElectronSigns/Commands/SaveContractTemplateCommand.cs b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Commands/SaveContractTemplateCommand.cs index 861be8a..f4aa92e 100644 --- a/FlexJobApi.Core/Models/UserServer/ElectronSigns/Commands/SaveContractTemplateCommand.cs +++ b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Commands/SaveContractTemplateCommand.cs @@ -1,6 +1,7 @@ 锘縰sing FlexJobApi.Core.Enums.Users; using Mapster; using MediatR; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -16,11 +17,6 @@ [Resource([EnumResourceController.UserServerElectronSign])] public class SaveContractTemplateCommand : SaveDataCommand { - public SaveContractTemplateCommand() - { - Values = []; - } - /// <summary> /// 浼佷笟Id锛堣繍钀ョ淇濆瓨鏃讹級 /// </summary> @@ -39,6 +35,11 @@ public string File { get; set; } /// <summary> + /// 鍒剁増妯℃澘鐓х墖 + /// </summary> + public string TemplateEditData { get; set; } + + /// <summary> /// 涓氬姟缂栫爜 /// </summary> public string Code { get; set; } @@ -52,52 +53,5 @@ /// 妯℃澘Id /// </summary> public string TemplateId { get; set; } - - /// <summary> - /// 鍙橀噺 - /// </summary> - [AdaptIgnore] - public List<SaveContractTemplateCommandValue> Values { get; set; } - } - - /// <summary> - /// 淇濆瓨鍚堝悓妯℃澘鍙橀噺 - /// </summary> - public class SaveContractTemplateCommandValue - { - /// <summary> - /// Id - /// </summary> - public Guid? Id { get; set; } - - /// <summary> - /// 鍙橀噺绫诲瀷 - /// </summary> - public EnumContractTemplateValueType Type { get; set; } - - /// <summary> - /// 鍐呭濉啓浜� - /// </summary> - public EnumContractTemplateValueRecorder Recorder { get; set; } - - /// <summary> - /// 鐢ㄦ埛绫诲瀷 - /// </summary> - public EnumUserType? UserType { get; set; } - - /// <summary> - /// 鍙橀噺鍚嶇О - /// </summary> - public string Label { get; set; } - - /// <summary> - /// 鍙橀噺浠g爜 - /// </summary> - public string Name { get; set; } - - /// <summary> - /// 鏄惁蹇呭~ - /// </summary> - public bool Required { get; set; } } } diff --git a/FlexJobApi.Core/Models/UserServer/ElectronSigns/Commands/SaveContractTemplateValuesCommand.cs b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Commands/SaveContractTemplateValuesCommand.cs new file mode 100644 index 0000000..6a1a625 --- /dev/null +++ b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Commands/SaveContractTemplateValuesCommand.cs @@ -0,0 +1,84 @@ +锘縰sing FlexJobApi.Core.Enums.Users; +using Mapster; +using MediatR; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + /// <summary> + /// 鍚堝悓鍒剁増 + /// </summary> + [Resource([EnumResourceController.UserServerElectronSign])] + public class SaveContractTemplateValuesCommand : SaveDataCommand + { + public SaveContractTemplateValuesCommand() + { + Values = []; + } + + /// <summary> + /// 妯℃澘Id + /// </summary> + [Required] + public override Guid? Id { get; set; } + + /// <summary> + /// 鍒剁増鍙橀噺JSON + /// </summary> + public string TemplateJsonData { get; set; } + + /// <summary> + /// 鍙橀噺 + /// </summary> + [AdaptIgnore] + [Required] + public List<SaveContractTemplateValuesCommandItem> Values { get; set; } + } + + /// <summary> + /// 淇濆瓨鍚堝悓妯℃澘鍙橀噺 + /// </summary> + public class SaveContractTemplateValuesCommandItem + { + /// <summary> + /// Id + /// </summary> + public Guid? Id { get; set; } + + /// <summary> + /// 鍙橀噺绫诲瀷 + /// </summary> + public EnumContractTemplateValueType Type { get; set; } + + /// <summary> + /// 鍐呭濉啓浜� + /// </summary> + public EnumContractTemplateValueRecorder Recorder { get; set; } + + /// <summary> + /// 鐢ㄦ埛绫诲瀷 + /// </summary> + public EnumUserType? UserType { get; set; } + + /// <summary> + /// 鍙橀噺鍚嶇О + /// </summary> + public string Label { get; set; } + + /// <summary> + /// 鍙橀噺浠g爜 + /// </summary> + public string Name { get; set; } + + /// <summary> + /// 鏄惁蹇呭~ + /// </summary> + public bool Required { get; set; } + } +} diff --git a/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetContractTemplateQuery.cs b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetContractTemplateQuery.cs index 8651e1f..f423181 100644 --- a/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetContractTemplateQuery.cs +++ b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetContractTemplateQuery.cs @@ -1,6 +1,7 @@ 锘縰sing FlexJobApi.Core.Enums.Users; using Mapster; using MediatR; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -50,6 +51,16 @@ public string File { get; set; } /// <summary> + /// 鍒剁増妯℃澘鐓х墖 + /// </summary> + public string TemplateEditData { get; set; } + + /// <summary> + /// 鍒剁増鍙橀噺JSON + /// </summary> + public string TemplateJsonData { get; set; } + + /// <summary> /// 涓氬姟缂栫爜 /// </summary> public string Code { get; set; } diff --git a/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetEnterpriseContractTemplatesQuery.cs b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetEnterpriseContractTemplatesQuery.cs index 0af87f3..2515db6 100644 --- a/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetEnterpriseContractTemplatesQuery.cs +++ b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetEnterpriseContractTemplatesQuery.cs @@ -1,4 +1,5 @@ -锘縰sing System; +锘縰sing Newtonsoft.Json; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; diff --git a/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetPersonalUserRealResultQuery.cs b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetPersonalUserRealResultQuery.cs new file mode 100644 index 0000000..87e9de1 --- /dev/null +++ b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetPersonalUserRealResultQuery.cs @@ -0,0 +1,119 @@ +锘縰sing MediatR; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + /// <summary> + /// 鏌ヨ涓汉瀹炲悕缁撴灉 + /// </summary> + [Resource([EnumResourceController.UserServerElectronSign])] + public class GetPersonalUserRealResultQuery : IRequest<GetPersonalUserRealResultQueryResult> + { + + } + + /// <summary> + /// 鏌ヨ涓汉瀹炲悕缁撴灉 + /// </summary> + public class GetPersonalUserRealResultQueryResult : GetPersonalUserRealResultQueryResultAuth + { + /// <summary> + /// 鏄惁瀹炲悕 + /// </summary> + public bool IsReal { get; set; } + + /// <summary> + /// 瀹炲悕鏃堕棿 + /// </summary> + public DateTime? RealTime { get; set; } + + /// <summary> + /// 瀹炲悕鏂瑰紡 + /// </summary> + public EnumUserRealMethod? RealMethod { get; set; } + + } + + + /// <summary> + /// 鏌ヨ涓汉瀹炲悕缁撴灉 + /// </summary> + public class GetPersonalUserRealResultQueryResultAuth + { + /// <summary> + /// 濮撳悕 + /// </summary> + public string Name { get; set; } + + /// <summary> + /// 鎵嬫満鍙� + /// </summary> + public string PhoneNumber { get; set; } + + /// <summary> + /// 韬唤璇佸彿 + /// </summary> + public string Identity { get; set; } + + /// <summary> + /// 韬唤璇佷汉鍍忛潰 + /// </summary> + public string IdentityImg { get; set; } + + /// <summary> + /// 韬唤璇佸浗寰介潰 + /// </summary> + public string IdentityBackImg { get; set; } + + /// <summary> + /// 鎬у埆 + /// </summary> + public EnumUserGender? Gender { get; set; } + + /// <summary> + /// 鐢熸棩 + /// </summary> + public DateTime? Birthday { get; set; } + + /// <summary> + /// 骞撮緞 + /// </summary> + public int? Age { get; set; } + + /// <summary> + /// 閾惰鍗″彿 + /// </summary> + public string BankCard { get; set; } + + /// <summary> + /// 閾惰鍗$収鐗� + /// </summary> + public string BankCardImg { get; set; } + + /// <summary> + /// 瀹炲悕閫氶亾 + /// </summary> + public EnumRealAccess? RealAccess { get; set; } + + /// <summary> + /// 瀹炲悕鐘舵�� + /// </summary> + public EnumPersonalUserRealStatus RealStatus { get; set; } + + /// <summary> + /// 瀹炲悕澶辫触娑堟伅 + /// </summary> + public string RealFailMessage { get; set; } + + /// <summary> + /// 浜鸿劯瀹炲悕璁よ瘉鍦板潃 + /// </summary> + public string FaceRealUrl { get; set; } + } +} diff --git a/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs b/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs index 156ecab..e8e12e3 100644 --- a/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs +++ b/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs @@ -362,7 +362,7 @@ /// <param name="update"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - public static async Task<Guid> SaveData<TEntity, TRequest>( + public static async Task<TEntity> SaveData<TEntity, TRequest>( this TRequest request, Func<IQueryable<TEntity>, IQueryable<TEntity>> query = null, Expression<Func<TEntity, bool>> checkExist = null, @@ -385,7 +385,7 @@ if (update != null) update(entity); else request.Adapt(entity); await rep.UpdateAsync(entity); - return entity.Id; + return entity; } else { @@ -393,7 +393,7 @@ if (update != null) update(entity); else request.Adapt(entity); await rep.InsertAsync(entity); - return entity.Id; + return entity; } } diff --git a/FlexJobApi.Core/Utils/DbUtils/SaveDataCommand.cs b/FlexJobApi.Core/Utils/DbUtils/SaveDataCommand.cs index 03f70b2..8920b38 100644 --- a/FlexJobApi.Core/Utils/DbUtils/SaveDataCommand.cs +++ b/FlexJobApi.Core/Utils/DbUtils/SaveDataCommand.cs @@ -15,6 +15,6 @@ /// <summary> /// Id /// </summary> - public Guid? Id { get; set; } + public virtual Guid? Id { get; set; } } } diff --git a/FlexJobApi.Database.Migrations/Migrations/20250821014449_UpdateContractTemplate.Designer.cs b/FlexJobApi.Database.Migrations/Migrations/20250821014449_UpdateContractTemplate.Designer.cs new file mode 100644 index 0000000..2ffe370 --- /dev/null +++ b/FlexJobApi.Database.Migrations/Migrations/20250821014449_UpdateContractTemplate.Designer.cs @@ -0,0 +1,2790 @@ +锘�// <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("20250821014449_UpdateContractTemplate")] + partial class UpdateContractTemplate + { + /// <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.ContractTemplate", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("Access") + .HasColumnType("int"); + + b.Property<string>("Code") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTime?>("CompletedTime") + .HasColumnType("datetime2"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("ElectronSignContractTemplateId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("File") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<int>("Status") + .HasColumnType("int"); + + b.Property<string>("TemplateId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseId"); + + b.ToTable("ContractTemplate"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ContractTemplateValue", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("Label") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Name") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Recorder") + .HasColumnType("int"); + + b.Property<bool>("Required") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TemplateId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Type") + .HasColumnType("int"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("ContractTemplateValue"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Department", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("ParentId"); + + b.ToTable("Department"); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryCategory", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("FieldNames") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("DictionaryCategory"); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("CategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<string>("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("Deep") + .HasColumnType("int"); + + b.Property<string>("Field1") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Field2") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Field3") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Field4") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Field5") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("CategoryId"); + + b.HasIndex("Code") + .IsUnique(); + + b.HasIndex("ParentId"); + + b.ToTable("DictionaryData"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Enterprise", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Address") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("BankBranchName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("BankName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("CityCode") + .HasColumnType("nvarchar(128)"); + + b.Property<string>("ContactEmail") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ContactPhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<string>("Contacts") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("EnterpriseName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<string>("EnterpriseType") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("EstablishmentDate") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("IndustrialParkId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("IndustryTypeCode") + .HasColumnType("nvarchar(128)"); + + b.Property<bool>("IsCheckedBankCard") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsReal") + .HasColumnType("bit"); + + b.Property<string>("LegalIdentity") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property<string>("LegalPerson") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("LicenseImage") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("MainBusiness") + .HasColumnType("nvarchar(max)"); + + b.Property<decimal?>("MergeSignCost") + .HasColumnType("decimal(18,2)"); + + b.Property<int?>("PayAccess") + .HasColumnType("int"); + + b.Property<string>("ProvinceCode") + .HasColumnType("nvarchar(128)"); + + b.Property<int?>("RealAccess") + .HasColumnType("int"); + + b.Property<decimal?>("RealVerifyCost") + .HasColumnType("decimal(18,2)"); + + b.Property<string>("RegisteredCapital") + .HasColumnType("nvarchar(max)"); + + b.Property<decimal?>("SignCost") + .HasColumnType("decimal(18,2)"); + + b.Property<int?>("SmsAccess") + .HasColumnType("int"); + + b.Property<decimal>("SmsCost") + .HasColumnType("decimal(18,2)"); + + b.Property<string>("SocietyCreditCode") + .IsRequired() + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("CityCode"); + + b.HasIndex("IndustryTypeCode"); + + b.HasIndex("ProvinceCode"); + + b.ToTable("Enterprise"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseAuth", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("BankCardImg") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("ElectronSignEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("EnterpriseName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<int?>("EnterpriseRealMethod") + .HasColumnType("int"); + + b.Property<string>("Identity") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property<string>("IdentityBackImg") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("IdentityImg") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("LegalIdentity") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property<string>("LegalPerson") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("LicenseImage") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Name") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<int?>("PersonalRealMethod") + .HasColumnType("int"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<bool?>("Proxy") + .HasColumnType("bit"); + + b.Property<string>("ProxyPowerAttorneyUrl") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("SocietyCreditCode") + .IsRequired() + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("EnterpriseAuth"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("Age") + .HasColumnType("int"); + + b.Property<DateTime?>("Birthday") + .HasColumnType("datetime2"); + + b.Property<string>("ContactPhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<string>("ContractUrl") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("EnterpriseSignContractStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("EnterpriseSignContractTime") + .HasColumnType("datetime2"); + + b.Property<int?>("Gender") + .HasColumnType("int"); + + b.Property<string>("Identity") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("IdentityBackImg") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("IdentityImg") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("Name") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("UserSignContractStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("UserSignContractTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("UserId"); + + b.ToTable("EnterpriseEmployee"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseUserCollect", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTime?>("CollectedTime") + .HasColumnType("datetime2"); + + b.Property<DateTime?>("ContactedTime") + .HasColumnType("datetime2"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsCollected") + .HasColumnType("bit"); + + b.Property<bool>("IsContacted") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("UserId"); + + b.ToTable("EnterpriseUserCollect"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("ClientType") + .HasColumnType("int"); + + b.Property<string>("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Group") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Icon") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsCache") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit"); + + b.Property<string>("Location") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Type") + .HasColumnType("int"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Url") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("UserType") + .HasColumnType("int"); + + b.Property<int>("VisitLevel") + .HasColumnType("int"); + + b.Property<string>("Width") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ParentId"); + + b.ToTable("Menu"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Resource", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("ActionName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ActionSummary") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("AllowAnonymous") + .HasColumnType("bit"); + + b.Property<string>("ApplicationName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ControllerName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ControllerSummary") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("DynamicAssemblyName") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("FileUpload") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsExpired") + .HasColumnType("bit"); + + b.Property<int>("Method") + .HasColumnType("int"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("RequestTypeFullName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("RequestTypeName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ResponseTypeFullName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ResponseTypeName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Route") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("RouteArea") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ServiceName") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("Resource"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Role", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("ClientType") + .HasColumnType("int"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("DataPower") + .HasColumnType("int"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit"); + + b.Property<int>("MinLevel") + .HasColumnType("int"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("Role"); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleMenu", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<Guid>("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("MenuId"); + + b.HasIndex("RoleId"); + + b.ToTable("RoleMenu"); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleResource", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("DataPower") + .HasColumnType("int"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<Guid>("ResourceId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ResourceId"); + + b.HasIndex("RoleId"); + + b.ToTable("RoleResource"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ScheduleJobDetail", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("AssemblyName") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("Concurrent") + .HasColumnType("bit"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Description") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("GroupName") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IncludeAnnotations") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("JobId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("JobType") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("ScheduleJobDetail"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ScheduleJobTrigger", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Args") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("AssemblyName") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Description") + .HasColumnType("nvarchar(max)"); + + b.Property<long>("ElapsedTime") + .HasColumnType("bigint"); + + b.Property<DateTime?>("EndTime") + .HasColumnType("datetime2"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("JobId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTime?>("LastRunTime") + .HasColumnType("datetime2"); + + b.Property<long>("MaxNumberOfErrors") + .HasColumnType("bigint"); + + b.Property<long>("MaxNumberOfRuns") + .HasColumnType("bigint"); + + b.Property<DateTime?>("NextRunTime") + .HasColumnType("datetime2"); + + b.Property<long>("NumRetries") + .HasColumnType("bigint"); + + b.Property<long>("NumberOfErrors") + .HasColumnType("bigint"); + + b.Property<long>("NumberOfRuns") + .HasColumnType("bigint"); + + b.Property<bool>("ResetOnlyOnce") + .HasColumnType("bit"); + + b.Property<string>("Result") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("RetryTimeout") + .HasColumnType("int"); + + b.Property<bool>("RunOnStart") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<bool>("StartNow") + .HasColumnType("bit"); + + b.Property<DateTime?>("StartTime") + .HasColumnType("datetime2"); + + b.Property<long>("Status") + .HasColumnType("bigint"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TriggerId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TriggerType") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("ScheduleJobTrigger"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("AddressDetail") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("AddressName") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("AgeMaxLimit") + .HasColumnType("int"); + + b.Property<int>("AgeMinLimit") + .HasColumnType("int"); + + b.Property<DateTime>("BeginTime") + .HasColumnType("datetime2"); + + b.Property<int>("BillingMethod") + .HasColumnType("int"); + + b.Property<int?>("CheckReceiveStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("CheckReceiveTime") + .HasColumnType("datetime2"); + + b.Property<string>("CityCode") + .HasColumnType("nvarchar(128)"); + + b.Property<string>("Code") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTime>("EndTime") + .HasColumnType("datetime2"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("GenderLimit") + .HasColumnType("int"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<DateTime?>("LastCheckReceiveTime") + .HasColumnType("datetime2"); + + b.Property<DateTime?>("LastSubmitTime") + .HasColumnType("datetime2"); + + b.Property<decimal?>("Latitude") + .HasColumnType("decimal(18,6)"); + + b.Property<decimal?>("Longitude") + .HasColumnType("decimal(18,6)"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ProvinceCode") + .HasColumnType("nvarchar(128)"); + + b.Property<int>("RecommendStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("RecommendTime") + .HasColumnType("datetime2"); + + b.Property<int>("ReleaseStatus") + .HasColumnType("int"); + + b.Property<decimal>("ServiceFee") + .HasColumnType("decimal(18,2)"); + + b.Property<int>("SettlementCycle") + .HasColumnType("int"); + + b.Property<int?>("SettlementStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("SettlementTime") + .HasColumnType("datetime2"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<int>("Status") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("CityCode"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("ProvinceCode"); + + b.ToTable("TaskInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("BenefitCode") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("BenefitCode"); + + b.HasIndex("TaskInfoId"); + + b.ToTable("TaskInfoBenefit"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoCredentialLimit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TypeCode") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoId"); + + b.HasIndex("TypeCode"); + + b.ToTable("TaskInfoCredentialLimit"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("ArrangeStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("ArrangeTime") + .HasColumnType("datetime2"); + + b.Property<int?>("CheckReceiveStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("CheckReceiveTime") + .HasColumnType("datetime2"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("EnterpriseEmployeeId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("HireStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("HireTime") + .HasColumnType("datetime2"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<DateTime?>("LastCheckReceiveTime") + .HasColumnType("datetime2"); + + b.Property<DateTime?>("LastSubmitTime") + .HasColumnType("datetime2"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseEmployeeId"); + + b.HasIndex("TaskInfoId"); + + b.ToTable("TaskInfoUser"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("CheckReceiveStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("CheckReceiveTime") + .HasColumnType("datetime2"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTime>("Date") + .HasColumnType("datetime2"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TaskInfoUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoUserId"); + + b.ToTable("TaskInfoUserSubmit"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmitFile", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("File") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("SubmitId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("SubmitId"); + + b.ToTable("TaskInfoUserSubmitFile"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskUserCollect", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoId"); + + b.HasIndex("UserId"); + + b.ToTable("TaskUserCollect"); + }); + + modelBuilder.Entity("FlexJobApi.Core.User", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("Age") + .HasColumnType("int"); + + b.Property<string>("Avatar") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTime?>("Birthday") + .HasColumnType("datetime2"); + + b.Property<string>("CityCode") + .HasColumnType("nvarchar(128)"); + + b.Property<string>("ContactPhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("DataSource") + .HasColumnType("int"); + + b.Property<Guid?>("DataSourceId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("EducationalBackgroundCode") + .HasColumnType("nvarchar(128)"); + + b.Property<Guid?>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("FreeTime") + .HasColumnType("int"); + + b.Property<int?>("Gender") + .HasColumnType("int"); + + b.Property<int?>("Height") + .HasColumnType("int"); + + b.Property<string>("Identity") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsCheckPhoneNumber") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsReal") + .HasColumnType("bit"); + + b.Property<int?>("JobSeekingStatus") + .HasColumnType("int"); + + b.Property<int>("Level") + .HasColumnType("int"); + + b.Property<string>("Name") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("Password") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("PersonalIdentityCode") + .HasColumnType("nvarchar(128)"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<string>("ProvinceCode") + .HasColumnType("nvarchar(128)"); + + b.Property<int?>("RealMethod") + .HasColumnType("int"); + + b.Property<DateTime?>("RealTime") + .HasColumnType("datetime2"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<int>("Status") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Type") + .HasColumnType("int"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("UserName") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<int?>("Weight") + .HasColumnType("int"); + + b.Property<string>("WorkExperience") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("WorkSeniority") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("WxmpOpenId") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.HasKey("Id"); + + b.HasIndex("CityCode"); + + b.HasIndex("EducationalBackgroundCode"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("PersonalIdentityCode"); + + b.HasIndex("ProvinceCode"); + + b.ToTable("User"); + + 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, + Level = 999, + Name = "绠$悊鍛�", + Password = "iEYggKrMhQ3ASUGLobra1w==:fn/DsMJUbD9FGpvBvR3moMpMPptdxzZlourPVhU479I=", + Sort = 0, + Status = 10, + Type = 100, + UserName = "system" + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("Age") + .HasColumnType("int"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("BankCardImg") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTime?>("Birthday") + .HasColumnType("datetime2"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("ElectronSignUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("FaceRealUrl") + .HasColumnType("nvarchar(max)"); + + b.Property<int?>("Gender") + .HasColumnType("int"); + + b.Property<string>("Identity") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("IdentityBackImg") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("IdentityImg") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<int?>("RealAccess") + .HasColumnType("int"); + + b.Property<string>("RealFailMessage") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("RealStatus") + .HasColumnType("int"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("UserAuth"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserBankCard", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Bank") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("PhoneNumber") + .IsRequired() + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("UserBankCard"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserCredential", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("BackImg") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Code") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTime?>("EndDate") + .HasColumnType("datetime2"); + + b.Property<string>("Img") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsForever") + .HasColumnType("bit"); + + b.Property<string>("IssueUnit") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<DateTime?>("StartDate") + .HasColumnType("datetime2"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TypeCode") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TypeCode"); + + b.HasIndex("UserId"); + + b.ToTable("UserCredential"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserDepartment", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("DepartmentId"); + + b.HasIndex("UserId"); + + b.ToTable("UserDepartment"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserExpectJob", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("ExpectJobCode") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ExpectJobCode"); + + b.HasIndex("UserId"); + + b.ToTable("UserExpectJob"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserManageIndustrialPark", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("IndustrialParkId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("UserManageIndustrialPark"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserPhoto", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Img") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("UserPhoto"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserRole", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.HasIndex("UserId"); + + b.ToTable("UserRole"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ContractTemplate", b => + { + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany("ContractTemplates") + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Enterprise"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ContractTemplateValue", b => + { + b.HasOne("FlexJobApi.Core.ContractTemplate", "Template") + .WithMany("Values") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + 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.DictionaryData", "City") + .WithMany() + .HasForeignKey("CityCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.DictionaryData", "IndustryType") + .WithMany() + .HasForeignKey("IndustryTypeCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Province") + .WithMany() + .HasForeignKey("ProvinceCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.Navigation("City"); + + b.Navigation("IndustryType"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseAuth", b => + { + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithOne("EnterpriseAuth") + .HasForeignKey("FlexJobApi.Core.EnterpriseAuth", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Enterprise"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b => + { + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany() + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("EnterpriseEmployees") + .HasForeignKey("UserId"); + + b.Navigation("Enterprise"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseUserCollect", b => + { + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany() + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("EnterpriseUserCollects") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Enterprise"); + + b.Navigation("User"); + }); + + 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("CityCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany() + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Province") + .WithMany() + .HasForeignKey("ProvinceCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.Navigation("City"); + + b.Navigation("Enterprise"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "Benefit") + .WithMany() + .HasForeignKey("BenefitCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("Benefits") + .HasForeignKey("TaskInfoId") + .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("TypeCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("TaskInfo"); + + b.Navigation("Type"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.HasOne("FlexJobApi.Core.EnterpriseEmployee", "EnterpriseEmployee") + .WithMany("TaskInfoUsers") + .HasForeignKey("EnterpriseEmployeeId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("TaskInfoUsers") + .HasForeignKey("TaskInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EnterpriseEmployee"); + + b.Navigation("TaskInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b => + { + b.HasOne("FlexJobApi.Core.TaskInfoUser", "TaskInfoUser") + .WithMany("Submits") + .HasForeignKey("TaskInfoUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaskInfoUser"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmitFile", b => + { + b.HasOne("FlexJobApi.Core.TaskInfoUserSubmit", "Submit") + .WithMany("Files") + .HasForeignKey("SubmitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Submit"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskUserCollect", b => + { + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("TaskUserCollects") + .HasForeignKey("TaskInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaskInfo"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.User", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "City") + .WithMany() + .HasForeignKey("CityCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.DictionaryData", "EducationalBackground") + .WithMany() + .HasForeignKey("EducationalBackgroundCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany("Users") + .HasForeignKey("EnterpriseId"); + + b.HasOne("FlexJobApi.Core.DictionaryData", "PersonalIdentity") + .WithMany() + .HasForeignKey("PersonalIdentityCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Province") + .WithMany() + .HasForeignKey("ProvinceCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.Navigation("City"); + + b.Navigation("EducationalBackground"); + + b.Navigation("Enterprise"); + + b.Navigation("PersonalIdentity"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.HasOne("FlexJobApi.Core.User", "User") + .WithOne("UserAuth") + .HasForeignKey("FlexJobApi.Core.UserAuth", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserBankCard", b => + { + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("BankCards") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserCredential", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "Type") + .WithMany() + .HasForeignKey("TypeCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("UserCredentials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Type"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserDepartment", b => + { + b.HasOne("FlexJobApi.Core.Department", "Department") + .WithMany() + .HasForeignKey("DepartmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("UserDepartments") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Department"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserExpectJob", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "ExpectJob") + .WithMany() + .HasForeignKey("ExpectJobCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("UserExpectJobs") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ExpectJob"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserManageIndustrialPark", b => + { + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("UserManageIndustrialParks") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserPhoto", b => + { + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("Photos") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserRole", b => + { + b.HasOne("FlexJobApi.Core.Role", "Role") + .WithMany("UserRoles") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("UserRoles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Role"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ContractTemplate", b => + { + b.Navigation("Values"); + }); + + 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("ContractTemplates"); + + b.Navigation("Departments"); + + b.Navigation("EnterpriseAuth"); + + b.Navigation("Users"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b => + { + b.Navigation("TaskInfoUsers"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Role", b => + { + b.Navigation("RoleMenus"); + + b.Navigation("RoleResources"); + + b.Navigation("UserRoles"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.Navigation("Benefits"); + + b.Navigation("CredentialLimits"); + + b.Navigation("TaskInfoUsers"); + + b.Navigation("TaskUserCollects"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.Navigation("Submits"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b => + { + b.Navigation("Files"); + }); + + modelBuilder.Entity("FlexJobApi.Core.User", b => + { + b.Navigation("BankCards"); + + b.Navigation("EnterpriseEmployees"); + + b.Navigation("EnterpriseUserCollects"); + + b.Navigation("Photos"); + + b.Navigation("UserAuth"); + + b.Navigation("UserCredentials"); + + b.Navigation("UserDepartments"); + + b.Navigation("UserExpectJobs"); + + b.Navigation("UserManageIndustrialParks"); + + b.Navigation("UserRoles"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/FlexJobApi.Database.Migrations/Migrations/20250821014449_UpdateContractTemplate.cs b/FlexJobApi.Database.Migrations/Migrations/20250821014449_UpdateContractTemplate.cs new file mode 100644 index 0000000..a8d3d8c --- /dev/null +++ b/FlexJobApi.Database.Migrations/Migrations/20250821014449_UpdateContractTemplate.cs @@ -0,0 +1,39 @@ +锘縰sing System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace FlexJobApi.Database.Migrations.Migrations +{ + /// <inheritdoc /> + public partial class UpdateContractTemplate : Migration + { + /// <inheritdoc /> + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn<Guid>( + name: "ElectronSignEnterpriseId", + table: "EnterpriseAuth", + type: "uniqueidentifier", + nullable: true); + + migrationBuilder.AddColumn<Guid>( + name: "ElectronSignContractTemplateId", + table: "ContractTemplate", + type: "uniqueidentifier", + nullable: true); + } + + /// <inheritdoc /> + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ElectronSignEnterpriseId", + table: "EnterpriseAuth"); + + migrationBuilder.DropColumn( + name: "ElectronSignContractTemplateId", + table: "ContractTemplate"); + } + } +} diff --git a/FlexJobApi.Database.Migrations/Migrations/20250821051718_UpdateContractTemplate0821002.Designer.cs b/FlexJobApi.Database.Migrations/Migrations/20250821051718_UpdateContractTemplate0821002.Designer.cs new file mode 100644 index 0000000..0eaf096 --- /dev/null +++ b/FlexJobApi.Database.Migrations/Migrations/20250821051718_UpdateContractTemplate0821002.Designer.cs @@ -0,0 +1,2796 @@ +锘�// <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("20250821051718_UpdateContractTemplate0821002")] + partial class UpdateContractTemplate0821002 + { + /// <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.ContractTemplate", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("Access") + .HasColumnType("int"); + + b.Property<string>("Code") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTime?>("CompletedTime") + .HasColumnType("datetime2"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("ElectronSignContractTemplateId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("File") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<int>("Status") + .HasColumnType("int"); + + b.Property<string>("TemplateEditData") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TemplateId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TemplateJsonData") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseId"); + + b.ToTable("ContractTemplate"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ContractTemplateValue", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("Label") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Name") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Recorder") + .HasColumnType("int"); + + b.Property<bool>("Required") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TemplateId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Type") + .HasColumnType("int"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("TemplateId"); + + b.ToTable("ContractTemplateValue"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Department", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("ParentId"); + + b.ToTable("Department"); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryCategory", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("FieldNames") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("DictionaryCategory"); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("CategoryId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<string>("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("Deep") + .HasColumnType("int"); + + b.Property<string>("Field1") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Field2") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Field3") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Field4") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Field5") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("CategoryId"); + + b.HasIndex("Code") + .IsUnique(); + + b.HasIndex("ParentId"); + + b.ToTable("DictionaryData"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Enterprise", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Address") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("BankBranchName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("BankName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("CityCode") + .HasColumnType("nvarchar(128)"); + + b.Property<string>("ContactEmail") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ContactPhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<string>("Contacts") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("EnterpriseName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<string>("EnterpriseType") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("EstablishmentDate") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("IndustrialParkId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("IndustryTypeCode") + .HasColumnType("nvarchar(128)"); + + b.Property<bool>("IsCheckedBankCard") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsReal") + .HasColumnType("bit"); + + b.Property<string>("LegalIdentity") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property<string>("LegalPerson") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("LicenseImage") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("MainBusiness") + .HasColumnType("nvarchar(max)"); + + b.Property<decimal?>("MergeSignCost") + .HasColumnType("decimal(18,2)"); + + b.Property<int?>("PayAccess") + .HasColumnType("int"); + + b.Property<string>("ProvinceCode") + .HasColumnType("nvarchar(128)"); + + b.Property<int?>("RealAccess") + .HasColumnType("int"); + + b.Property<decimal?>("RealVerifyCost") + .HasColumnType("decimal(18,2)"); + + b.Property<string>("RegisteredCapital") + .HasColumnType("nvarchar(max)"); + + b.Property<decimal?>("SignCost") + .HasColumnType("decimal(18,2)"); + + b.Property<int?>("SmsAccess") + .HasColumnType("int"); + + b.Property<decimal>("SmsCost") + .HasColumnType("decimal(18,2)"); + + b.Property<string>("SocietyCreditCode") + .IsRequired() + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("CityCode"); + + b.HasIndex("IndustryTypeCode"); + + b.HasIndex("ProvinceCode"); + + b.ToTable("Enterprise"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseAuth", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("BankCardImg") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("ElectronSignEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("EnterpriseName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<int?>("EnterpriseRealMethod") + .HasColumnType("int"); + + b.Property<string>("Identity") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property<string>("IdentityBackImg") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("IdentityImg") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("LegalIdentity") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property<string>("LegalPerson") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("LicenseImage") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Name") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<int?>("PersonalRealMethod") + .HasColumnType("int"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<bool?>("Proxy") + .HasColumnType("bit"); + + b.Property<string>("ProxyPowerAttorneyUrl") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("SocietyCreditCode") + .IsRequired() + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("EnterpriseAuth"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("Age") + .HasColumnType("int"); + + b.Property<DateTime?>("Birthday") + .HasColumnType("datetime2"); + + b.Property<string>("ContactPhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<string>("ContractUrl") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("EnterpriseSignContractStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("EnterpriseSignContractTime") + .HasColumnType("datetime2"); + + b.Property<int?>("Gender") + .HasColumnType("int"); + + b.Property<string>("Identity") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("IdentityBackImg") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("IdentityImg") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("Name") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("UserSignContractStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("UserSignContractTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("UserId"); + + b.ToTable("EnterpriseEmployee"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseUserCollect", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTime?>("CollectedTime") + .HasColumnType("datetime2"); + + b.Property<DateTime?>("ContactedTime") + .HasColumnType("datetime2"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsCollected") + .HasColumnType("bit"); + + b.Property<bool>("IsContacted") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("UserId"); + + b.ToTable("EnterpriseUserCollect"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("ClientType") + .HasColumnType("int"); + + b.Property<string>("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Group") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Icon") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsCache") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit"); + + b.Property<string>("Location") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Type") + .HasColumnType("int"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Url") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("UserType") + .HasColumnType("int"); + + b.Property<int>("VisitLevel") + .HasColumnType("int"); + + b.Property<string>("Width") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ParentId"); + + b.ToTable("Menu"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Resource", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("ActionName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ActionSummary") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("AllowAnonymous") + .HasColumnType("bit"); + + b.Property<string>("ApplicationName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ControllerName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ControllerSummary") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("DynamicAssemblyName") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("FileUpload") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsExpired") + .HasColumnType("bit"); + + b.Property<int>("Method") + .HasColumnType("int"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("RequestTypeFullName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("RequestTypeName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ResponseTypeFullName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ResponseTypeName") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Route") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("RouteArea") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ServiceName") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("Resource"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Role", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("ClientType") + .HasColumnType("int"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("DataPower") + .HasColumnType("int"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit"); + + b.Property<int>("MinLevel") + .HasColumnType("int"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("Role"); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleMenu", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<Guid>("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("MenuId"); + + b.HasIndex("RoleId"); + + b.ToTable("RoleMenu"); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleResource", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("DataPower") + .HasColumnType("int"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<Guid>("ResourceId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ResourceId"); + + b.HasIndex("RoleId"); + + b.ToTable("RoleResource"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ScheduleJobDetail", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("AssemblyName") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("Concurrent") + .HasColumnType("bit"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Description") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("GroupName") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IncludeAnnotations") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("JobId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("JobType") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("ScheduleJobDetail"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ScheduleJobTrigger", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Args") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("AssemblyName") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Description") + .HasColumnType("nvarchar(max)"); + + b.Property<long>("ElapsedTime") + .HasColumnType("bigint"); + + b.Property<DateTime?>("EndTime") + .HasColumnType("datetime2"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("JobId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTime?>("LastRunTime") + .HasColumnType("datetime2"); + + b.Property<long>("MaxNumberOfErrors") + .HasColumnType("bigint"); + + b.Property<long>("MaxNumberOfRuns") + .HasColumnType("bigint"); + + b.Property<DateTime?>("NextRunTime") + .HasColumnType("datetime2"); + + b.Property<long>("NumRetries") + .HasColumnType("bigint"); + + b.Property<long>("NumberOfErrors") + .HasColumnType("bigint"); + + b.Property<long>("NumberOfRuns") + .HasColumnType("bigint"); + + b.Property<bool>("ResetOnlyOnce") + .HasColumnType("bit"); + + b.Property<string>("Result") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("RetryTimeout") + .HasColumnType("int"); + + b.Property<bool>("RunOnStart") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<bool>("StartNow") + .HasColumnType("bit"); + + b.Property<DateTime?>("StartTime") + .HasColumnType("datetime2"); + + b.Property<long>("Status") + .HasColumnType("bigint"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TriggerId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TriggerType") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("ScheduleJobTrigger"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("AddressDetail") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("AddressName") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("AgeMaxLimit") + .HasColumnType("int"); + + b.Property<int>("AgeMinLimit") + .HasColumnType("int"); + + b.Property<DateTime>("BeginTime") + .HasColumnType("datetime2"); + + b.Property<int>("BillingMethod") + .HasColumnType("int"); + + b.Property<int?>("CheckReceiveStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("CheckReceiveTime") + .HasColumnType("datetime2"); + + b.Property<string>("CityCode") + .HasColumnType("nvarchar(128)"); + + b.Property<string>("Code") + .HasColumnType("nvarchar(max)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTime>("EndTime") + .HasColumnType("datetime2"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("GenderLimit") + .HasColumnType("int"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<DateTime?>("LastCheckReceiveTime") + .HasColumnType("datetime2"); + + b.Property<DateTime?>("LastSubmitTime") + .HasColumnType("datetime2"); + + b.Property<decimal?>("Latitude") + .HasColumnType("decimal(18,6)"); + + b.Property<decimal?>("Longitude") + .HasColumnType("decimal(18,6)"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<string>("ProvinceCode") + .HasColumnType("nvarchar(128)"); + + b.Property<int>("RecommendStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("RecommendTime") + .HasColumnType("datetime2"); + + b.Property<int>("ReleaseStatus") + .HasColumnType("int"); + + b.Property<decimal>("ServiceFee") + .HasColumnType("decimal(18,2)"); + + b.Property<int>("SettlementCycle") + .HasColumnType("int"); + + b.Property<int?>("SettlementStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("SettlementTime") + .HasColumnType("datetime2"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<int>("Status") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("CityCode"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("ProvinceCode"); + + b.ToTable("TaskInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("BenefitCode") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("BenefitCode"); + + b.HasIndex("TaskInfoId"); + + b.ToTable("TaskInfoBenefit"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoCredentialLimit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TypeCode") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoId"); + + b.HasIndex("TypeCode"); + + b.ToTable("TaskInfoCredentialLimit"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("ArrangeStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("ArrangeTime") + .HasColumnType("datetime2"); + + b.Property<int?>("CheckReceiveStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("CheckReceiveTime") + .HasColumnType("datetime2"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("EnterpriseEmployeeId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("HireStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("HireTime") + .HasColumnType("datetime2"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<DateTime?>("LastCheckReceiveTime") + .HasColumnType("datetime2"); + + b.Property<DateTime?>("LastSubmitTime") + .HasColumnType("datetime2"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseEmployeeId"); + + b.HasIndex("TaskInfoId"); + + b.ToTable("TaskInfoUser"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("CheckReceiveStatus") + .HasColumnType("int"); + + b.Property<DateTime?>("CheckReceiveTime") + .HasColumnType("datetime2"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTime>("Date") + .HasColumnType("datetime2"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TaskInfoUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoUserId"); + + b.ToTable("TaskInfoUserSubmit"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmitFile", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("File") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("SubmitId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("SubmitId"); + + b.ToTable("TaskInfoUserSubmitFile"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskUserCollect", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoId"); + + b.HasIndex("UserId"); + + b.ToTable("TaskUserCollect"); + }); + + modelBuilder.Entity("FlexJobApi.Core.User", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("Age") + .HasColumnType("int"); + + b.Property<string>("Avatar") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTime?>("Birthday") + .HasColumnType("datetime2"); + + b.Property<string>("CityCode") + .HasColumnType("nvarchar(128)"); + + b.Property<string>("ContactPhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("DataSource") + .HasColumnType("int"); + + b.Property<Guid?>("DataSourceId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("EducationalBackgroundCode") + .HasColumnType("nvarchar(128)"); + + b.Property<Guid?>("EnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("FreeTime") + .HasColumnType("int"); + + b.Property<int?>("Gender") + .HasColumnType("int"); + + b.Property<int?>("Height") + .HasColumnType("int"); + + b.Property<string>("Identity") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsCheckPhoneNumber") + .HasColumnType("bit"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsReal") + .HasColumnType("bit"); + + b.Property<int?>("JobSeekingStatus") + .HasColumnType("int"); + + b.Property<int>("Level") + .HasColumnType("int"); + + b.Property<string>("Name") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("Password") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("PersonalIdentityCode") + .HasColumnType("nvarchar(128)"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<string>("ProvinceCode") + .HasColumnType("nvarchar(128)"); + + b.Property<int?>("RealMethod") + .HasColumnType("int"); + + b.Property<DateTime?>("RealTime") + .HasColumnType("datetime2"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<int>("Status") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Type") + .HasColumnType("int"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("UserName") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<int?>("Weight") + .HasColumnType("int"); + + b.Property<string>("WorkExperience") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("WorkSeniority") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("WxmpOpenId") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.HasKey("Id"); + + b.HasIndex("CityCode"); + + b.HasIndex("EducationalBackgroundCode"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("PersonalIdentityCode"); + + b.HasIndex("ProvinceCode"); + + b.ToTable("User"); + + 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, + Level = 999, + Name = "绠$悊鍛�", + Password = "iEYggKrMhQ3ASUGLobra1w==:fn/DsMJUbD9FGpvBvR3moMpMPptdxzZlourPVhU479I=", + Sort = 0, + Status = 10, + Type = 100, + UserName = "system" + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int?>("Age") + .HasColumnType("int"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("BankCardImg") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTime?>("Birthday") + .HasColumnType("datetime2"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("ElectronSignUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("FaceRealUrl") + .HasColumnType("nvarchar(max)"); + + b.Property<int?>("Gender") + .HasColumnType("int"); + + b.Property<string>("Identity") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("IdentityBackImg") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("IdentityImg") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<int?>("RealAccess") + .HasColumnType("int"); + + b.Property<string>("RealFailMessage") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("RealStatus") + .HasColumnType("int"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.ToTable("UserAuth"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserBankCard", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Bank") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<string>("PhoneNumber") + .IsRequired() + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("UserBankCard"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserCredential", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("BackImg") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("Code") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTime?>("EndDate") + .HasColumnType("datetime2"); + + b.Property<string>("Img") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<bool>("IsForever") + .HasColumnType("bit"); + + b.Property<string>("IssueUnit") + .HasColumnType("nvarchar(max)"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<DateTime?>("StartDate") + .HasColumnType("datetime2"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TypeCode") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TypeCode"); + + b.HasIndex("UserId"); + + b.ToTable("UserCredential"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserDepartment", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("DepartmentId"); + + b.HasIndex("UserId"); + + b.ToTable("UserDepartment"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserExpectJob", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("ExpectJobCode") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("ExpectJobCode"); + + b.HasIndex("UserId"); + + b.ToTable("UserExpectJob"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserManageIndustrialPark", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("IndustrialParkId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("UserManageIndustrialPark"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserPhoto", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Img") + .HasColumnType("nvarchar(max)"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("UserPhoto"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserRole", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CreatedEnterpriseId") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property<int>("Sort") + .HasColumnType("int"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.HasIndex("UserId"); + + b.ToTable("UserRole"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ContractTemplate", b => + { + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany("ContractTemplates") + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Enterprise"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ContractTemplateValue", b => + { + b.HasOne("FlexJobApi.Core.ContractTemplate", "Template") + .WithMany("Values") + .HasForeignKey("TemplateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Template"); + }); + + 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.DictionaryData", "City") + .WithMany() + .HasForeignKey("CityCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.DictionaryData", "IndustryType") + .WithMany() + .HasForeignKey("IndustryTypeCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Province") + .WithMany() + .HasForeignKey("ProvinceCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.Navigation("City"); + + b.Navigation("IndustryType"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseAuth", b => + { + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithOne("EnterpriseAuth") + .HasForeignKey("FlexJobApi.Core.EnterpriseAuth", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Enterprise"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b => + { + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany() + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("EnterpriseEmployees") + .HasForeignKey("UserId"); + + b.Navigation("Enterprise"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseUserCollect", b => + { + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany() + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("EnterpriseUserCollects") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Enterprise"); + + b.Navigation("User"); + }); + + 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("CityCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany() + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Province") + .WithMany() + .HasForeignKey("ProvinceCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.Navigation("City"); + + b.Navigation("Enterprise"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "Benefit") + .WithMany() + .HasForeignKey("BenefitCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("Benefits") + .HasForeignKey("TaskInfoId") + .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("TypeCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("TaskInfo"); + + b.Navigation("Type"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.HasOne("FlexJobApi.Core.EnterpriseEmployee", "EnterpriseEmployee") + .WithMany("TaskInfoUsers") + .HasForeignKey("EnterpriseEmployeeId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("TaskInfoUsers") + .HasForeignKey("TaskInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EnterpriseEmployee"); + + b.Navigation("TaskInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b => + { + b.HasOne("FlexJobApi.Core.TaskInfoUser", "TaskInfoUser") + .WithMany("Submits") + .HasForeignKey("TaskInfoUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaskInfoUser"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmitFile", b => + { + b.HasOne("FlexJobApi.Core.TaskInfoUserSubmit", "Submit") + .WithMany("Files") + .HasForeignKey("SubmitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Submit"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskUserCollect", b => + { + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("TaskUserCollects") + .HasForeignKey("TaskInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaskInfo"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.User", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "City") + .WithMany() + .HasForeignKey("CityCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.DictionaryData", "EducationalBackground") + .WithMany() + .HasForeignKey("EducationalBackgroundCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany("Users") + .HasForeignKey("EnterpriseId"); + + b.HasOne("FlexJobApi.Core.DictionaryData", "PersonalIdentity") + .WithMany() + .HasForeignKey("PersonalIdentityCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Province") + .WithMany() + .HasForeignKey("ProvinceCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict); + + b.Navigation("City"); + + b.Navigation("EducationalBackground"); + + b.Navigation("Enterprise"); + + b.Navigation("PersonalIdentity"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.HasOne("FlexJobApi.Core.User", "User") + .WithOne("UserAuth") + .HasForeignKey("FlexJobApi.Core.UserAuth", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserBankCard", b => + { + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("BankCards") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserCredential", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "Type") + .WithMany() + .HasForeignKey("TypeCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("UserCredentials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Type"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserDepartment", b => + { + b.HasOne("FlexJobApi.Core.Department", "Department") + .WithMany() + .HasForeignKey("DepartmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("UserDepartments") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Department"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserExpectJob", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "ExpectJob") + .WithMany() + .HasForeignKey("ExpectJobCode") + .HasPrincipalKey("Code") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("UserExpectJobs") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ExpectJob"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserManageIndustrialPark", b => + { + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("UserManageIndustrialParks") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserPhoto", b => + { + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("Photos") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserRole", b => + { + b.HasOne("FlexJobApi.Core.Role", "Role") + .WithMany("UserRoles") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.User", "User") + .WithMany("UserRoles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Role"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("FlexJobApi.Core.ContractTemplate", b => + { + b.Navigation("Values"); + }); + + 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("ContractTemplates"); + + b.Navigation("Departments"); + + b.Navigation("EnterpriseAuth"); + + b.Navigation("Users"); + }); + + modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b => + { + b.Navigation("TaskInfoUsers"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Role", b => + { + b.Navigation("RoleMenus"); + + b.Navigation("RoleResources"); + + b.Navigation("UserRoles"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.Navigation("Benefits"); + + b.Navigation("CredentialLimits"); + + b.Navigation("TaskInfoUsers"); + + b.Navigation("TaskUserCollects"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.Navigation("Submits"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b => + { + b.Navigation("Files"); + }); + + modelBuilder.Entity("FlexJobApi.Core.User", b => + { + b.Navigation("BankCards"); + + b.Navigation("EnterpriseEmployees"); + + b.Navigation("EnterpriseUserCollects"); + + b.Navigation("Photos"); + + b.Navigation("UserAuth"); + + b.Navigation("UserCredentials"); + + b.Navigation("UserDepartments"); + + b.Navigation("UserExpectJobs"); + + b.Navigation("UserManageIndustrialParks"); + + b.Navigation("UserRoles"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/FlexJobApi.Database.Migrations/Migrations/20250821051718_UpdateContractTemplate0821002.cs b/FlexJobApi.Database.Migrations/Migrations/20250821051718_UpdateContractTemplate0821002.cs new file mode 100644 index 0000000..c62efa0 --- /dev/null +++ b/FlexJobApi.Database.Migrations/Migrations/20250821051718_UpdateContractTemplate0821002.cs @@ -0,0 +1,38 @@ +锘縰sing Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace FlexJobApi.Database.Migrations.Migrations +{ + /// <inheritdoc /> + public partial class UpdateContractTemplate0821002 : Migration + { + /// <inheritdoc /> + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn<string>( + name: "TemplateEditData", + table: "ContractTemplate", + type: "nvarchar(max)", + nullable: true); + + migrationBuilder.AddColumn<string>( + name: "TemplateJsonData", + table: "ContractTemplate", + type: "nvarchar(max)", + nullable: true); + } + + /// <inheritdoc /> + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "TemplateEditData", + table: "ContractTemplate"); + + migrationBuilder.DropColumn( + name: "TemplateJsonData", + table: "ContractTemplate"); + } + } +} diff --git a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs index d05d4d2..a618b3c 100644 --- a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs +++ b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs @@ -46,6 +46,9 @@ b.Property<Guid?>("CreatedUserId") .HasColumnType("uniqueidentifier"); + b.Property<Guid?>("ElectronSignContractTemplateId") + .HasColumnType("uniqueidentifier"); + b.Property<Guid>("EnterpriseId") .HasColumnType("uniqueidentifier"); @@ -69,7 +72,13 @@ b.Property<int>("Status") .HasColumnType("int"); + b.Property<string>("TemplateEditData") + .HasColumnType("nvarchar(max)"); + b.Property<string>("TemplateId") + .HasColumnType("nvarchar(max)"); + + b.Property<string>("TemplateJsonData") .HasColumnType("nvarchar(max)"); b.Property<string>("TraceId") @@ -495,6 +504,9 @@ b.Property<Guid?>("CreatedUserId") .HasColumnType("uniqueidentifier"); + b.Property<Guid?>("ElectronSignEnterpriseId") + .HasColumnType("uniqueidentifier"); + b.Property<string>("EnterpriseName") .IsRequired() .HasMaxLength(128) diff --git a/FlexJobApi.Database.Migrations/REDEME.MD b/FlexJobApi.Database.Migrations/REDEME.MD index 3e2ff92..89d6077 100644 --- a/FlexJobApi.Database.Migrations/REDEME.MD +++ b/FlexJobApi.Database.Migrations/REDEME.MD @@ -1,7 +1,7 @@ -------------------------------主数据库--------------------------------------- 新增迁移文件 -dotnet ef migrations add AddContractTemplate -s "../FlexJobApi.Web.Entry" -c DefaultDbContext +dotnet ef migrations add UpdateContractTemplate -s "../FlexJobApi.Web.Entry" -c DefaultDbContext 删除迁移文件 dotnet ef migrations remove -s "../FlexJobApi.Web.Entry" -c DefaultDbContext diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs index d9ca25b..724213f 100644 --- a/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs @@ -38,7 +38,7 @@ { var logier = JwtUtils.GetCurrentLogier(); if (logier.EnterpriseId == null) throw Oops.Oh(EnumErrorCodeType.s400, "褰撳墠鐧诲綍鐢ㄦ埛蹇呴』涓轰紒涓氱敤鎴锋墠鍙互鍒涘缓浠诲姟"); - return await request.SaveData<TaskInfo, SaveTaskInfoCommand>( + var entity = await request.SaveData<TaskInfo, SaveTaskInfoCommand>( q => { q = TaskInfoRepository.GetQueryable(rep, false) @@ -72,6 +72,7 @@ .ToList(); }, cancellationToken); + return entity.Id; } /// <summary> diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs index d098fe9..5e701ff 100644 --- a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs @@ -1,4 +1,10 @@ -锘縰sing FlexJobApi.Core; +锘縰sing Azure.Core; +using FlexJobApi.Core; +using FlexJobApi.Core.Models.ElectronSignServer.Common; +using FlexJobApi.Core.Models.ElectronSignServer.ContractTemplates; +using FlexJobApi.Core.Models.ElectronSignServer.PersonalUserReals; +using FlexJobApi.Core.Models.ElectronSignServer.Users; +using Furion; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Mapster; @@ -9,6 +15,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace FlexJobApi.UserServer.Application { @@ -19,6 +26,7 @@ IRepository<ContractTemplate> rep ) : IRequestHandler<SaveContractTemplateCommand, Guid>, + IRequestHandler<SaveContractTemplateValuesCommand, Guid>, IRequestHandler<SetIsDisabledContractTemplateCommand, int> { private readonly IRepository<ContractTemplate> rep = rep; @@ -38,11 +46,45 @@ } if (request.EnterpriseId == null) throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨浼佷笟"); - return await request.SaveData<ContractTemplate, SaveContractTemplateCommand>( + var entity = await request.SaveData<ContractTemplate, SaveContractTemplateCommand>( q => q .Include(it => it.Values) .Where(it => it.EnterpriseId == request.EnterpriseId && !it.IsDisabled), it => it.EnterpriseId == request.EnterpriseId && it.Name == request.Name && !it.IsDisabled && it.Id != request.Id, + entity => + { + request.Adapt(entity); + if (request.Id == null) + { + entity.Status = EnumContractTemplateStatus.Wait; + } + else if (entity.Access.HasValue && entity.TemplateId.IsNotNull() && entity.Values.IsNotNull()) + { + entity.Status = EnumContractTemplateStatus.Completed; + entity.CompletedTime = DateTime.Now; + } + }, + cancellationToken); + + await SyncElectronSignContractTemplate(entity); + + return entity.Id; + } + + /// <summary> + /// 鍚堝悓鍒剁増 + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<Guid> Handle(SaveContractTemplateValuesCommand request, CancellationToken cancellationToken) + { + var logier = JwtUtils.GetCurrentLogier(); + var entity = await request.SaveData<ContractTemplate, SaveContractTemplateValuesCommand>( + q => q + .Include(it => it.Values) + .Where(it => !it.IsDisabled), + null, entity => { request.Adapt(entity); @@ -69,21 +111,17 @@ entity.UpdatedUserId = logier.Id; entity.UpdatedTime = DateTime.Now; } - if (entity.Access.HasValue && entity.TemplateId.IsNotNull()) + if (entity.Access.HasValue && entity.TemplateId.IsNotNull() && request.Values.IsNotNull()) { - if (entity.Status == EnumContractTemplateStatus.Wait) - { - entity.Status = EnumContractTemplateStatus.Completed; - entity.CompletedTime = DateTime.Now; - } - } - else - { - entity.Status = EnumContractTemplateStatus.Wait; - entity.CompletedTime = null; + entity.Status = EnumContractTemplateStatus.Completed; + entity.CompletedTime = DateTime.Now; } }, cancellationToken); + + await SyncElectronSignContractTemplate(entity); + + return entity.Id; } /// <summary> @@ -95,14 +133,87 @@ public async Task<int> Handle(SetIsDisabledContractTemplateCommand request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); - return await request.SetIsDisabled<ContractTemplate>(q => + var q = rep.AsQueryable(); + if (logier.Type == EnumUserType.Enterprise) { - if (logier.Type == EnumUserType.Enterprise) + q = q.Where(it => it.EnterpriseId == logier.EnterpriseId); + } + var entities = await q + .Where(it => request.Ids.Contains(it.Id) && it.IsDisabled != request.IsDisabled) + .ToListAsync(); + foreach (var entity in entities) + { + entity.IsDisabled = request.IsDisabled; + } + var ids = entities.DistinctSelect(it => it.ElectronSignContractTemplateId.HasValue, it => it.ElectronSignContractTemplateId!.Value); + if (ids.IsNotNull()) + { + var result = await new DeleteContractTemplateInput { - q = q.Where(it => it.EnterpriseId == logier.EnterpriseId); + Ids = ids + }.SendHttpAsync<DeleteContractTemplateInput, ElectronSignServerResult<object>>(EnumResourceHttpProvider.ElectronSignServerCustomer); + if (result?.Success != true) + { + throw Oops.Oh(EnumErrorCodeType.s510, result?.Message ?? "鍒犻櫎鐢靛瓙绛惧悎鍚屾ā鏉垮紓甯�"); } - return q; - }, cancellationToken); + } + return entities.Count; + } + + /// <summary> + /// 鍚屾鐢靛瓙绛惧悎鍚屾ā鏉� + /// </summary> + /// <param name="entity"></param> + /// <returns></returns> + private async Task SyncElectronSignContractTemplate(ContractTemplate entity) + { + if (entity.Status == EnumContractTemplateStatus.Completed) + { + var enterprise = await rep.Change<Enterprise>().AsQueryable() + .Include(it => it.EnterpriseAuth) + .Where(it => it.Id == entity.EnterpriseId) + .FirstOrDefaultAsync(); + if (enterprise == null) throw Oops.Oh(EnumErrorCodeType.s404, "浼佷笟"); + if (enterprise.EnterpriseAuth == null) + { + enterprise.EnterpriseAuth = new EnterpriseAuth(); + } + if (enterprise.EnterpriseAuth.ElectronSignEnterpriseId == null) + { + var resultRegOrUpdateUser = await new RegOrUpdateUserInput + { + OutUserId = enterprise.Id.ToString(), + UserType = EnumElectronSignUserType.Personal, + EnterpriseName = enterprise.EnterpriseName, + SocietyCreditCode = enterprise.SocietyCreditCode, + Name = enterprise.EnterpriseAuth?.Name, + Identity = enterprise?.EnterpriseAuth?.Identity, + Mobile = enterprise?.EnterpriseAuth?.PhoneNumber + }.SendHttpAsync<RegOrUpdateUserInput, ElectronSignServerResult<Guid?>>(EnumResourceHttpProvider.ElectronSignServerCustomer); + + if (resultRegOrUpdateUser?.Success == true) + { + enterprise!.EnterpriseAuth!.ElectronSignEnterpriseId = resultRegOrUpdateUser.Result; + } + else + { + throw Oops.Oh(EnumErrorCodeType.s510, resultRegOrUpdateUser?.Message ?? "娉ㄥ唽鐢靛瓙绛捐处鍙峰紓甯�"); + } + } + var result = await new CreateOrUpdateContractTemplateInput + { + CustomerId = App.GetConfig<Guid>("ElectronSignServer:AppId"), + UserId = enterprise.EnterpriseAuth.ElectronSignEnterpriseId, + Supplier = (EnumElectronSignContractSupplier)entity.Access!, + Name = entity.Name, + TemplateCode = entity.TemplateId, + Values = entity.Values.Adapt<List<CreateOrUpdateContractTemplateValueInput>>() + }.SendHttpAsync<CreateOrUpdateContractTemplateInput, ElectronSignServerResult<Guid>>(EnumResourceHttpProvider.ElectronSignServerCustomer); + if (result?.Success == true) + { + entity.ElectronSignContractTemplateId = result.Result; + } + } } } } diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Commands/PersonalUserRealCommandHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Commands/PersonalUserRealCommandHandler.cs index e2fd508..5d05d63 100644 --- a/FlexJobApi.UserServer.Application/ElectronSign/Commands/PersonalUserRealCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/ElectronSign/Commands/PersonalUserRealCommandHandler.cs @@ -65,7 +65,7 @@ } else { - throw Oops.Oh(EnumErrorCodeType.s510, result?.Msg ?? "娉ㄥ唽瀹炲悕璐﹀彿寮傚父"); + throw Oops.Oh(EnumErrorCodeType.s510, result?.Message ?? "娉ㄥ唽瀹炲悕璐﹀彿寮傚父"); } } var sendRealSmsResult = await new SendRealSmsInput @@ -78,7 +78,7 @@ Mobile = request.PhoneNumber }.SendHttpAsync<SendRealSmsInput, ElectronSignServerResult<object>>(EnumResourceHttpProvider.ElectronSignServerCustomer); if (sendRealSmsResult?.Success != true) - throw Oops.Oh(EnumErrorCodeType.s510, sendRealSmsResult?.Msg ?? "鍙戦�佸疄鍚嶇煭淇″紓甯�"); + throw Oops.Oh(EnumErrorCodeType.s510, sendRealSmsResult?.Message ?? "鍙戦�佸疄鍚嶇煭淇″紓甯�"); PersonalReal( EnumPersonalUserRealStatus.Checking, @@ -119,7 +119,7 @@ VCode = request.VerifyCode }.SendHttpAsync<RealPersonalInput, ElectronSignServerResult<RealPersonalOutput>>(EnumResourceHttpProvider.ElectronSignServerCustomer); if (result?.Success != true || result.Result?.Status != EnumElectronSignRealStatus.Real) - throw Oops.Oh(EnumErrorCodeType.s510, result?.Msg ?? "瀹炲悕寮傚父"); + throw Oops.Oh(EnumErrorCodeType.s510, result?.Message ?? "瀹炲悕寮傚父"); var enterpriseEmployees = await repUser.Change<EnterpriseEmployee>().AsQueryable() .Where(it => it.UserId == user.Id) @@ -174,7 +174,7 @@ IdentityBackImgUrl = request.IdentityBackImg, }.SendHttpAsync<RealPersonalInput, ElectronSignServerResult<RealPersonalOutput>>(EnumResourceHttpProvider.ElectronSignServerCustomer); if (result?.Success != true || result.Result?.Status != EnumElectronSignRealStatus.Checking) - throw Oops.Oh(EnumErrorCodeType.s510, result?.Msg ?? "瀹炲悕寮傚父"); + throw Oops.Oh(EnumErrorCodeType.s510, result?.Message ?? "瀹炲悕寮傚父"); var enterpriseEmployees = await repUser.Change<EnterpriseEmployee>().AsQueryable() .Where(it => it.UserId == user.Id) diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Queries/PersonalUserRealQueryHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Queries/PersonalUserRealQueryHandler.cs new file mode 100644 index 0000000..eeedc50 --- /dev/null +++ b/FlexJobApi.UserServer.Application/ElectronSign/Queries/PersonalUserRealQueryHandler.cs @@ -0,0 +1,52 @@ +锘縰sing FlexJobApi.Core; +using Furion.DatabaseAccessor; +using Furion.FriendlyException; +using Mapster; +using MediatR; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.UserServer.Application +{ + /// <summary> + /// 涓汉瀹炲悕鏌ヨ澶勭悊鍣� + /// </summary> + public class PersonalUserRealQueryHandler( + IRepository<User> repUser, + IRepository<UserAuth> repUserAuth + ) : + IRequestHandler<GetPersonalUserRealResultQuery, GetPersonalUserRealResultQueryResult> + { + private readonly IRepository<User> repUser = repUser; + private readonly IRepository<UserAuth> repUserAuth = repUserAuth; + + /// <summary> + /// 鏌ヨ涓汉瀹炲悕缁撴灉 + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<GetPersonalUserRealResultQueryResult> Handle(GetPersonalUserRealResultQuery request, CancellationToken cancellationToken) + { + var logier = JwtUtils.GetCurrentLogier(); + var model = await repUser.AsQueryable().AsNoTracking() + .Where(it => it.Id == logier.Id) + .ProjectToType<GetPersonalUserRealResultQueryResult>() + .FirstOrDefaultAsync(); + if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "鐢ㄦ埛"); + var modelAuth = await repUserAuth.AsQueryable().AsNoTracking() + .Where(it => it.Id == logier.Id) + .ProjectToType<GetPersonalUserRealResultQueryResultAuth>() + .FirstOrDefaultAsync(); + if (modelAuth != null) + { + modelAuth.Adapt(model); + } + return model; + } + } +} diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs index d5e01c0..71bf62f 100644 --- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs @@ -158,10 +158,10 @@ /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - public Task<Guid> Handle(EditEnterpriseEmployeeCommand request, CancellationToken cancellationToken) + public async Task<Guid> Handle(EditEnterpriseEmployeeCommand request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); - return request.SaveData<EnterpriseEmployee, EditEnterpriseEmployeeCommand>( + var entity = await request.SaveData<EnterpriseEmployee, EditEnterpriseEmployeeCommand>( q => q.Where(it => it.EnterpriseId == logier.EnterpriseId), it => it.EnterpriseId == logier.EnterpriseId && it.Id != request.Id && it.Identity == request.Identity, (entity) => @@ -187,6 +187,7 @@ request.Adapt(entity); }, cancellationToken); + return entity.Id; } } } diff --git a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml index c39615f..bedc8a9 100644 --- a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml +++ b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml @@ -174,12 +174,27 @@ <param name="cancellationToken"></param> <returns></returns> </member> + <member name="M:FlexJobApi.UserServer.Application.ContractTemplateCommandHandler.Handle(FlexJobApi.Core.SaveContractTemplateValuesCommand,System.Threading.CancellationToken)"> + <summary> + 鍚堝悓鍒剁増 + </summary> + <param name="request"></param> + <param name="cancellationToken"></param> + <returns></returns> + </member> <member name="M:FlexJobApi.UserServer.Application.ContractTemplateCommandHandler.Handle(FlexJobApi.Core.SetIsDisabledContractTemplateCommand,System.Threading.CancellationToken)"> <summary> 绂佺敤鍚堝悓妯℃澘 </summary> <param name="request"></param> <param name="cancellationToken"></param> + <returns></returns> + </member> + <member name="M:FlexJobApi.UserServer.Application.ContractTemplateCommandHandler.SyncElectronSignContractTemplate(FlexJobApi.Core.ContractTemplate)"> + <summary> + 鍚屾鐢靛瓙绛惧悎鍚屾ā鏉� + </summary> + <param name="entity"></param> <returns></returns> </member> <member name="T:FlexJobApi.UserServer.Application.ElectronSignCallbackCommandHandler"> @@ -285,6 +300,24 @@ <param name="cancellationToken"></param> <returns></returns> </member> + <member name="T:FlexJobApi.UserServer.Application.PersonalUserRealQueryHandler"> + <summary> + 涓汉瀹炲悕鏌ヨ澶勭悊鍣� + </summary> + </member> + <member name="M:FlexJobApi.UserServer.Application.PersonalUserRealQueryHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.User},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.UserAuth})"> + <summary> + 涓汉瀹炲悕鏌ヨ澶勭悊鍣� + </summary> + </member> + <member name="M:FlexJobApi.UserServer.Application.PersonalUserRealQueryHandler.Handle(FlexJobApi.Core.GetPersonalUserRealResultQuery,System.Threading.CancellationToken)"> + <summary> + 鏌ヨ涓汉瀹炲悕缁撴灉 + </summary> + <param name="request"></param> + <param name="cancellationToken"></param> + <returns></returns> + </member> <member name="T:FlexJobApi.UserServer.Application.EnterpriseEmployeesCommandHandler"> <summary> 鐏靛伐鍛戒护澶勭悊鍣� diff --git a/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs b/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs index 781df6b..55ae051 100644 --- a/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs @@ -26,7 +26,7 @@ { var parent = await rep.FirstOrDefaultAsync(it => it.Id == request.ParentId); if (parent == null) throw Oops.Oh(EnumErrorCodeType.s404, "涓婄骇鑿滃崟"); - return await request.SaveData<Menu, SaveMenuButtonCommand>( + var entity = await request.SaveData<Menu, SaveMenuButtonCommand>( null, it => it.ParentId == request.ParentId @@ -50,6 +50,7 @@ request.Adapt(entity); }, cancellationToken); + return entity.Id; } } } diff --git a/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuCommandHandler.cs b/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuCommandHandler.cs index 47f01c7..68cbf08 100644 --- a/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuCommandHandler.cs @@ -30,7 +30,7 @@ /// <inheritdoc/> public async Task<Guid> Handle(SaveMenuCommand request, CancellationToken cancellationToken) { - return await request.SaveData<Menu, SaveMenuCommand>( + var entity = await request.SaveData<Menu, SaveMenuCommand>( q => q.Include(it => it.Children), it => it.UserType == request.UserType @@ -54,6 +54,7 @@ SaveChildrens(entity, request); }, cancellationToken); + return entity.Id; } /// <summary> diff --git a/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs b/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs index 8b495bc..3a57dde 100644 --- a/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs @@ -26,7 +26,7 @@ { var parent = await rep.FirstOrDefaultAsync(it => it.Id == request.ParentId); if (parent == null) throw Oops.Oh(EnumErrorCodeType.s404, "涓婄骇鑿滃崟"); - return await request.SaveData<Menu, SaveMenuFieldCommand>( + var entity = await request.SaveData<Menu, SaveMenuFieldCommand>( null, it => it.ParentId == request.ParentId @@ -49,6 +49,7 @@ request.Adapt(entity); }, cancellationToken); + return entity.Id; } } } diff --git a/FlexJobApi.UserServer.Application/UserResumes/Commands/UserResumeCommandHandler.cs b/FlexJobApi.UserServer.Application/UserResumes/Commands/UserResumeCommandHandler.cs index 128fbbe..9e4c2a6 100644 --- a/FlexJobApi.UserServer.Application/UserResumes/Commands/UserResumeCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/UserResumes/Commands/UserResumeCommandHandler.cs @@ -65,10 +65,10 @@ /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - public Task<Guid> Handle(SaveUserResumeCredentialCommand request, CancellationToken cancellationToken) + public async Task<Guid> Handle(SaveUserResumeCredentialCommand request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); - return request.SaveData<UserCredential, SaveUserResumeCredentialCommand>( + var entity = await request.SaveData<UserCredential, SaveUserResumeCredentialCommand>( q => rep.GetPersonalQueryable(false).SelectMany(it => it.UserCredentials), update: (entity) => { @@ -79,6 +79,7 @@ } }, cancellationToken: cancellationToken); + return entity.Id; } /// <summary> diff --git a/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs b/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs index 62f87f6..ad47137 100644 --- a/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs @@ -57,6 +57,11 @@ } if (enterprise.EnterpriseAuth != null) { + enterprise.EnterpriseAuth.EnterpriseName = enterprise.EnterpriseName; + enterprise.EnterpriseAuth.SocietyCreditCode = enterprise.SocietyCreditCode; + enterprise.EnterpriseAuth.LicenseImage = enterprise.LicenseImage; + enterprise.EnterpriseAuth.LegalPerson = enterprise.LegalPerson; + enterprise.EnterpriseAuth.LegalIdentity = enterprise.LegalIdentity; enterprise.EnterpriseAuth.IdentityImg = GetOssUrl(enterprise.EnterpriseAuth.IdentityImg, request.Enterprise.EnterpriseAuth.IdentityImg); enterprise.EnterpriseAuth.IdentityBackImg = GetOssUrl(enterprise.EnterpriseAuth.IdentityBackImg, request.Enterprise.EnterpriseAuth.IdentityBackImg); enterprise.EnterpriseAuth.BankCardImg = GetOssUrl(enterprise.EnterpriseAuth.BankCardImg, request.Enterprise.EnterpriseAuth.BankCardImg); -- Gitblit v1.9.1