From 59833ddbf47ed028462e1b089b46bf7c6f7518e3 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期二, 05 八月 2025 18:31:38 +0800 Subject: [PATCH] feat:字典开发 --- FlexJobApi.Database.Migrations/Migrations/20250805102905_UpdateDictionaryData0805002.cs | 30 FlexJobApi.Core/Models/Main/Dictionaries/Commands/SaveDictionaryDataCommand.cs | 74 + FlexJobApi.Application/Dictionaries/Commands/SaveDictionaryCategoryCommandHandler.cs | 5 FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs | 30 FlexJobApi.Application/Dictionaries/Commands/SaveDictionaryDataCommandHandler.cs | 26 FlexJobApi.Application/FlexJobApi.Application.xml | 20 FlexJobApi.Core/Utils/DbUtils/DbUtils.cs | 7 FlexJobApi.Application/Dictionaries/Commands/SetDictionaryDataIsDisabledCommandHandler.cs | 34 FlexJobApi.Core/Entities/Common/DictionaryData.cs | 5 FlexJobApi.Database.Migrations/Migrations/20250805102905_UpdateDictionaryData0805002.Designer.cs | 2200 ++++++++++++++++++++++++++++++++++++++++++++++++ FlexJobApi.Core/FlexJobApi.Core.xml | 153 +++ FlexJobApi.Core/Models/Main/Dictionaries/Commands/SetDictionaryDataIsDisabledCommand.cs | 31 FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs | 4 FlexJobApi.Core/Models/Main/Dictionaries/Queries/GetDictionaryDatasQuery.cs | 70 + 14 files changed, 2,679 insertions(+), 10 deletions(-) diff --git a/FlexJobApi.Application/Dictionaries/Commands/SaveDictionaryCategoryCommandHandler.cs b/FlexJobApi.Application/Dictionaries/Commands/SaveDictionaryCategoryCommandHandler.cs index bda9ef5..2e85eb0 100644 --- a/FlexJobApi.Application/Dictionaries/Commands/SaveDictionaryCategoryCommandHandler.cs +++ b/FlexJobApi.Application/Dictionaries/Commands/SaveDictionaryCategoryCommandHandler.cs @@ -1,5 +1,6 @@ 锘縰sing FlexJobApi.Core; using MediatR; +using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; @@ -15,7 +16,9 @@ { public Task<Guid> Handle(SaveDictionaryCategoryCommand request, CancellationToken cancellationToken) { - return request.SaveData<DictionaryCategory, SaveDictionaryCategoryCommand>(); + return request.SaveData<DictionaryCategory, SaveDictionaryCategoryCommand>( + (q, e, r) => q.Any(it => it.Id != request.Id && it.Code == request.Code), + cancellationToken); } } } diff --git a/FlexJobApi.Application/Dictionaries/Commands/SaveDictionaryDataCommandHandler.cs b/FlexJobApi.Application/Dictionaries/Commands/SaveDictionaryDataCommandHandler.cs new file mode 100644 index 0000000..6fc0fe4 --- /dev/null +++ b/FlexJobApi.Application/Dictionaries/Commands/SaveDictionaryDataCommandHandler.cs @@ -0,0 +1,26 @@ +锘縰sing FlexJobApi.Core; +using MediatR; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Application +{ + /// <summary> + /// 淇濆瓨瀛楀吀鏁版嵁 + /// </summary> + public class SaveDictionaryDataCommandHandler : IRequestHandler<SaveDictionaryDataCommand, Guid> + { + public Task<Guid> Handle(SaveDictionaryDataCommand request, CancellationToken cancellationToken) + { + return request.SaveData<DictionaryData, SaveDictionaryDataCommand>( + (q, e, r) => q.Any(it => + it.CategoryId == request.CategoryId + && it.ParentId == request.ParentId + && it.Code == request.Code + && it.Content == request.Content), cancellationToken); + } + } +} diff --git a/FlexJobApi.Application/Dictionaries/Commands/SetDictionaryDataIsDisabledCommandHandler.cs b/FlexJobApi.Application/Dictionaries/Commands/SetDictionaryDataIsDisabledCommandHandler.cs new file mode 100644 index 0000000..56b9506 --- /dev/null +++ b/FlexJobApi.Application/Dictionaries/Commands/SetDictionaryDataIsDisabledCommandHandler.cs @@ -0,0 +1,34 @@ +锘縰sing FlexJobApi.Core; +using Furion.DatabaseAccessor; +using MediatR; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Application +{ + /// <summary> + /// 璁剧疆瀛楀吀鏁版嵁鏄惁绂佺敤 + /// </summary> + public class SetDictionaryDataIsDisabledCommandHandler( + IRepository<DictionaryData> rep + ) : IRequestHandler<SetDictionaryDataIsDisabledCommand, int> + { + private readonly IRepository<DictionaryData> rep = rep; + + public async Task<int> Handle(SetDictionaryDataIsDisabledCommand request, CancellationToken cancellationToken) + { + var entities = await rep.AsQueryable() + .Where(it => request.Ids.Contains(it.Id) && it.IsDisabled != request.IsDisabled) + .ToListAsync(); + foreach (var entity in entities) + { + entity.IsDisabled = request.IsDisabled; + } + return entities.Count; + } + } +} diff --git a/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs b/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs index 006fffe..0d0b8ca 100644 --- a/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs +++ b/FlexJobApi.Application/Dictionaries/Queries/GetDictionaryDatasQueryHandler.cs @@ -1,5 +1,8 @@ 锘縰sing FlexJobApi.Core; +using Furion.DatabaseAccessor; +using Mapster; using MediatR; +using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; @@ -11,11 +14,32 @@ /// <summary> /// 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 /// </summary> - public class GetDictionaryDatasQueryHandler : IRequestHandler<GetDictionaryDatasQuery, PagedListQueryResult<GetDictionaryDatasQueryResultItem>> + public class GetDictionaryDatasQueryHandler( + IRepository<DictionaryData> rep + ) : IRequestHandler<GetDictionaryDatasQuery, PagedListQueryResult<GetDictionaryDatasQueryResultItem>> { - public Task<PagedListQueryResult<GetDictionaryDatasQueryResultItem>> Handle(GetDictionaryDatasQuery request, CancellationToken cancellationToken) + private readonly IRepository<DictionaryData> rep = rep; + + public async Task<PagedListQueryResult<GetDictionaryDatasQueryResultItem>> Handle(GetDictionaryDatasQuery request, CancellationToken cancellationToken) { - throw new NotImplementedException(); + var q = rep.AsQueryable().AsNoTracking() + .OrderBy(it => it.Sort).ThenByDescending(it => it.CreatedTime) + .Where(it => it.CategoryId == request.CategoryId); + if (request.Keywords.IsNotNull()) + { + q = q.Where(it => + it.Code.Contains(request.Keywords) + || it.Content.Contains(request.Keywords) + || it.Field1.Contains(request.Keywords) + || it.Field2.Contains(request.Keywords) + || it.Field3.Contains(request.Keywords) + || it.Field4.Contains(request.Keywords) + || it.Field5.Contains(request.Keywords)); + } + var result = await q + .ProjectToType<GetDictionaryDatasQueryResultItem>() + .ToPagedListAsync(request.PageModel, cancellationToken); + return result; } } } diff --git a/FlexJobApi.Application/FlexJobApi.Application.xml b/FlexJobApi.Application/FlexJobApi.Application.xml index b9fd602..f671789 100644 --- a/FlexJobApi.Application/FlexJobApi.Application.xml +++ b/FlexJobApi.Application/FlexJobApi.Application.xml @@ -14,6 +14,21 @@ 淇濆瓨瀛楀吀绫诲埆 </summary> </member> + <member name="T:FlexJobApi.Application.SaveDictionaryDataCommandHandler"> + <summary> + 淇濆瓨瀛楀吀鏁版嵁 + </summary> + </member> + <member name="T:FlexJobApi.Application.SetDictionaryDataIsDisabledCommandHandler"> + <summary> + 璁剧疆瀛楀吀鏁版嵁鏄惁绂佺敤 + </summary> + </member> + <member name="M:FlexJobApi.Application.SetDictionaryDataIsDisabledCommandHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.DictionaryData})"> + <summary> + 璁剧疆瀛楀吀鏁版嵁鏄惁绂佺敤 + </summary> + </member> <member name="T:FlexJobApi.Application.GetDictionaryCategoriesQueryHandler"> <summary> 鏌ヨ瀛楀吀绫诲埆鍒嗛〉鍒楄〃鏁版嵁 @@ -29,5 +44,10 @@ 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 </summary> </member> + <member name="M:FlexJobApi.Application.GetDictionaryDatasQueryHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.DictionaryData})"> + <summary> + 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 + </summary> + </member> </members> </doc> diff --git a/FlexJobApi.Core/Entities/Common/DictionaryData.cs b/FlexJobApi.Core/Entities/Common/DictionaryData.cs index a7583f9..1e3bb31 100644 --- a/FlexJobApi.Core/Entities/Common/DictionaryData.cs +++ b/FlexJobApi.Core/Entities/Common/DictionaryData.cs @@ -87,6 +87,11 @@ /// </summary> public string Field5 { get; set; } + /// <summary> + /// 鏄惁绂佺敤 + /// </summary> + public bool IsDisabled { get; set; } + public void Configure(EntityTypeBuilder<DictionaryData> entityBuilder, DbContext dbContext, Type dbContextLocator) { entityBuilder diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml index 66d9bb0..f941017 100644 --- a/FlexJobApi.Core/FlexJobApi.Core.xml +++ b/FlexJobApi.Core/FlexJobApi.Core.xml @@ -154,6 +154,11 @@ 瀛楁5 </summary> </member> + <member name="P:FlexJobApi.Core.DictionaryData.IsDisabled"> + <summary> + 鏄惁绂佺敤 + </summary> + </member> <member name="T:FlexJobApi.Core.FileStore"> <summary> 鏂囦欢瀛樺偍 @@ -2104,6 +2109,81 @@ 鎺掑簭 </summary> </member> + <member name="T:FlexJobApi.Core.SaveDictionaryDataCommand"> + <summary> + 淇濆瓨瀛楀吀鏁版嵁 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveDictionaryDataCommand.CategoryId"> + <summary> + 绫诲埆Id + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveDictionaryDataCommand.ParentId"> + <summary> + 涓婄骇Id + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveDictionaryDataCommand.Code"> + <summary> + 缂栧彿 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveDictionaryDataCommand.Content"> + <summary> + 鏄剧ず鍐呭 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveDictionaryDataCommand.Field1"> + <summary> + 瀛楁1 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveDictionaryDataCommand.Field2"> + <summary> + 瀛楁2 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveDictionaryDataCommand.Field3"> + <summary> + 瀛楁3 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveDictionaryDataCommand.Field4"> + <summary> + 瀛楁4 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveDictionaryDataCommand.Field5"> + <summary> + 瀛楁5 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveDictionaryDataCommand.Sort"> + <summary> + 鎺掑簭 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveDictionaryDataCommand.IsDisabled"> + <summary> + 鏄惁绂佺敤 + </summary> + </member> + <member name="T:FlexJobApi.Core.SetDictionaryDataIsDisabledCommand"> + <summary> + 璁剧疆瀛楀吀鏁版嵁鏄惁绂佺敤 + </summary> + </member> + <member name="P:FlexJobApi.Core.SetDictionaryDataIsDisabledCommand.Ids"> + <summary> + Id + </summary> + </member> + <member name="P:FlexJobApi.Core.SetDictionaryDataIsDisabledCommand.IsDisabled"> + <summary> + 鏄惁绂佺敤 + </summary> + </member> <member name="T:FlexJobApi.Core.GetDictionaryCategoriesQuery"> <summary> 鏌ヨ瀛楀吀绫诲埆鍒嗛〉鍒楄〃鏁版嵁 @@ -2144,9 +2224,79 @@ 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃 </summary> </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQuery.CategoryId"> + <summary> + 绫诲埆Id + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQuery.Keywords"> + <summary> + 鍏抽敭瀛� + </summary> + </member> <member name="T:FlexJobApi.Core.GetDictionaryDatasQueryResultItem"> <summary> 鑾峰彇瀛楀吀鏁版嵁鍒嗛〉鍒楄〃-缁撴灉-琛屾暟鎹� + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.Id"> + <summary> + Id + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.CategoryId"> + <summary> + 绫诲埆Id + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.ParentId"> + <summary> + 涓婄骇Id + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.Code"> + <summary> + 缂栧彿 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.Content"> + <summary> + 鏄剧ず鍐呭 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.Field1"> + <summary> + 瀛楁1 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.Field2"> + <summary> + 瀛楁2 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.Field3"> + <summary> + 瀛楁3 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.Field4"> + <summary> + 瀛楁4 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.Field5"> + <summary> + 瀛楁5 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.Sort"> + <summary> + 鎺掑簭 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.IsDisabled"> + <summary> + 鏄惁绂佺敤 </summary> </member> <member name="T:FlexJobApi.Core.PasswordLoginCommand"> @@ -3605,13 +3755,12 @@ <param name="cancellationToken"></param> <returns></returns> </member> - <member name="M:FlexJobApi.Core.DbUtils.SaveData``2(``1,System.Func{``0,``1,System.Boolean},System.Threading.CancellationToken)"> + <member name="M:FlexJobApi.Core.DbUtils.SaveData``2(``1,System.Func{System.Linq.IQueryable{``0},``0,``1,System.Boolean},System.Threading.CancellationToken)"> <summary> 淇濆瓨鏁版嵁 </summary> <typeparam name="TEntity"></typeparam> <typeparam name="TRequest"></typeparam> - <param name="rep"></param> <param name="request"></param> <param name="checkExist"></param> <param name="cancellationToken"></param> diff --git a/FlexJobApi.Core/Models/Main/Dictionaries/Commands/SaveDictionaryDataCommand.cs b/FlexJobApi.Core/Models/Main/Dictionaries/Commands/SaveDictionaryDataCommand.cs new file mode 100644 index 0000000..55c42d1 --- /dev/null +++ b/FlexJobApi.Core/Models/Main/Dictionaries/Commands/SaveDictionaryDataCommand.cs @@ -0,0 +1,74 @@ +锘縰sing MediatR; +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.Dictionary])] + public class SaveDictionaryDataCommand : SaveDataCommand, IRequest<Guid> + { + /// <summary> + /// 绫诲埆Id + /// </summary> + public Guid CategoryId { get; set; } + + /// <summary> + /// 涓婄骇Id + /// </summary> + public Guid? ParentId { get; set; } + + /// <summary> + /// 缂栧彿 + /// </summary> + [MaxLength(128)] + public string Code { get; set; } + + /// <summary> + /// 鏄剧ず鍐呭 + /// </summary> + [Required] + public string Content { get; set; } + + /// <summary> + /// 瀛楁1 + /// </summary> + public string Field1 { get; set; } + + /// <summary> + /// 瀛楁2 + /// </summary> + public string Field2 { get; set; } + + /// <summary> + /// 瀛楁3 + /// </summary> + public string Field3 { get; set; } + + /// <summary> + /// 瀛楁4 + /// </summary> + public string Field4 { get; set; } + + /// <summary> + /// 瀛楁5 + /// </summary> + public string Field5 { get; set; } + + /// <summary> + /// 鎺掑簭 + /// </summary> + public int Sort { get; set; } + + /// <summary> + /// 鏄惁绂佺敤 + /// </summary> + public bool IsDisabled { get; set; } + } +} diff --git a/FlexJobApi.Core/Models/Main/Dictionaries/Commands/SetDictionaryDataIsDisabledCommand.cs b/FlexJobApi.Core/Models/Main/Dictionaries/Commands/SetDictionaryDataIsDisabledCommand.cs new file mode 100644 index 0000000..37cf0d2 --- /dev/null +++ b/FlexJobApi.Core/Models/Main/Dictionaries/Commands/SetDictionaryDataIsDisabledCommand.cs @@ -0,0 +1,31 @@ +锘縰sing MediatR; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + /// <summary> + /// 璁剧疆瀛楀吀鏁版嵁鏄惁绂佺敤 + /// </summary> + [Resource([EnumResourceController.Dictionary])] + public class SetDictionaryDataIsDisabledCommand : IRequest<int> + { + public SetDictionaryDataIsDisabledCommand() + { + Ids = []; + } + + /// <summary> + /// Id + /// </summary> + public List<Guid> Ids { get; set; } + + /// <summary> + /// 鏄惁绂佺敤 + /// </summary> + public bool IsDisabled { get; set; } + } +} diff --git a/FlexJobApi.Core/Models/Main/Dictionaries/Queries/GetDictionaryDatasQuery.cs b/FlexJobApi.Core/Models/Main/Dictionaries/Queries/GetDictionaryDatasQuery.cs index f157ece..0f82192 100644 --- a/FlexJobApi.Core/Models/Main/Dictionaries/Queries/GetDictionaryDatasQuery.cs +++ b/FlexJobApi.Core/Models/Main/Dictionaries/Queries/GetDictionaryDatasQuery.cs @@ -1,6 +1,7 @@ 锘縰sing MediatR; using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -13,6 +14,15 @@ [Resource([EnumResourceController.Dictionary])] public class GetDictionaryDatasQuery : PagedListQuery<PagedListQueryResult<GetDictionaryDatasQueryResultItem>, GetDictionaryDatasQueryResultItem> , IRequest<PagedListQueryResult<GetDictionaryDatasQueryResultItem>> { + /// <summary> + /// 绫诲埆Id + /// </summary> + public Guid CategoryId { get; set; } + + /// <summary> + /// 鍏抽敭瀛� + /// </summary> + public string Keywords { get; set; } } /// <summary> @@ -20,6 +30,66 @@ /// </summary> public class GetDictionaryDatasQueryResultItem { + /// <summary> + /// Id + /// </summary> + public Guid Id { get; set; } + /// <summary> + /// 绫诲埆Id + /// </summary> + public Guid CategoryId { get; set; } + + /// <summary> + /// 涓婄骇Id + /// </summary> + public Guid? ParentId { get; set; } + + /// <summary> + /// 缂栧彿 + /// </summary> + [MaxLength(128)] + public string Code { get; set; } + + /// <summary> + /// 鏄剧ず鍐呭 + /// </summary> + [Required] + public string Content { get; set; } + + /// <summary> + /// 瀛楁1 + /// </summary> + public string Field1 { get; set; } + + /// <summary> + /// 瀛楁2 + /// </summary> + public string Field2 { get; set; } + + /// <summary> + /// 瀛楁3 + /// </summary> + public string Field3 { get; set; } + + /// <summary> + /// 瀛楁4 + /// </summary> + public string Field4 { get; set; } + + /// <summary> + /// 瀛楁5 + /// </summary> + public string Field5 { get; set; } + + /// <summary> + /// 鎺掑簭 + /// </summary> + public int Sort { get; set; } + + /// <summary> + /// 鏄惁绂佺敤 + /// </summary> + public bool IsDisabled { get; set; } } } diff --git a/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs b/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs index a1465c0..ecaf344 100644 --- a/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs +++ b/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs @@ -51,12 +51,11 @@ /// </summary> /// <typeparam name="TEntity"></typeparam> /// <typeparam name="TRequest"></typeparam> - /// <param name="rep"></param> /// <param name="request"></param> /// <param name="checkExist"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - public static async Task<Guid> SaveData<TEntity, TRequest>(this TRequest request, Func<TEntity, TRequest, bool> checkExist = null, CancellationToken cancellationToken = default) + public static async Task<Guid> SaveData<TEntity, TRequest>(this TRequest request, Func<IQueryable<TEntity>, TEntity, TRequest, bool> checkExist = null, CancellationToken cancellationToken = default) where TEntity : CommonEntity, new() where TRequest : SaveDataCommand, new() { @@ -67,7 +66,7 @@ { var entity = await rep.AsQueryable().FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken); if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, $"璇summary ?? "淇℃伅"}"); - if (checkExist != null && checkExist(entity, request)) throw Oops.Oh(EnumErrorCodeType.s405, $"璇summary ?? "淇℃伅"}"); + if (checkExist != null && checkExist(rep.AsQueryable().AsNoTracking(), entity, request)) throw Oops.Oh(EnumErrorCodeType.s405, $"璇summary ?? "淇℃伅"}"); request.Adapt(entity); await rep.UpdateAsync(entity); return entity.Id; @@ -75,7 +74,7 @@ else { var entity = new TEntity(); - if (checkExist != null && checkExist(entity, request)) throw Oops.Oh(EnumErrorCodeType.s405, $"璇summary ?? "淇℃伅"}"); + if (checkExist != null && checkExist(rep.AsQueryable().AsNoTracking(), entity, request)) throw Oops.Oh(EnumErrorCodeType.s405, $"璇summary ?? "淇℃伅"}"); request.Adapt(entity); await rep.InsertAsync(entity); return entity.Id; diff --git a/FlexJobApi.Database.Migrations/Migrations/20250805102905_UpdateDictionaryData0805002.Designer.cs b/FlexJobApi.Database.Migrations/Migrations/20250805102905_UpdateDictionaryData0805002.Designer.cs new file mode 100644 index 0000000..8379a5a --- /dev/null +++ b/FlexJobApi.Database.Migrations/Migrations/20250805102905_UpdateDictionaryData0805002.Designer.cs @@ -0,0 +1,2200 @@ +锘�// <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("20250805102905_UpdateDictionaryData0805002")] + partial class UpdateDictionaryData0805002 + { + /// <inheritdoc /> + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "9.0.7") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("FlexJobApi.Core.Department", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier") + .HasComment("浼佷笟Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit") + .HasComment("鏄惁绂佺敤"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍚嶇О"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("涓婄骇Id"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)") + .HasComment("閮ㄩ棬璺緞"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("ParentId"); + + b.ToTable("Department", t => + { + t.HasComment("閮ㄩ棬"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryCategory", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("缂栧彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("FieldNames") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁鍚嶏紙閫楀彿闅斿紑锛�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍚嶇О"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.ToTable("DictionaryCategory", t => + { + t.HasComment("瀛楀吀绫诲埆"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("CategoryId") + .HasColumnType("uniqueidentifier") + .HasComment("绫诲埆Id"); + + b.Property<string>("Code") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("缂栧彿"); + + b.Property<string>("Content") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鏄剧ず鍐呭"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Field1") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁1"); + + b.Property<string>("Field2") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁2"); + + b.Property<string>("Field3") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁3"); + + b.Property<string>("Field4") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁4"); + + b.Property<string>("Field5") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁5"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit") + .HasComment("鏄惁绂佺敤"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("涓婄骇Id"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楀吀璺緞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("CategoryId"); + + b.HasIndex("ParentId"); + + b.ToTable("DictionaryData", t => + { + t.HasComment("瀛楀吀鏁版嵁"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Enterprise", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("娉曚汉鎴栫粡鍔炰汉閾惰鍗″彿"); + + b.Property<Guid?>("BankCardImgId") + .HasColumnType("uniqueidentifier") + .HasComment("娉曚汉鎴栫粡鍔炰汉閾惰鍗$収鐗嘔d"); + + b.Property<string>("ContactNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)") + .HasComment("鑱旂郴鐢佃瘽"); + + b.Property<string>("Contacts") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("鑱旂郴浜�"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("EnterpriseName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("浼佷笟鍏ㄧО"); + + b.Property<int?>("EnterpriseRealMethod") + .HasColumnType("int") + .HasComment("浼佷笟璁よ瘉鏂瑰紡"); + + b.Property<string>("Identity") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)") + .HasComment("娉曚汉鎴栫粡鍔炰汉韬唤璇佸彿"); + + b.Property<Guid?>("IdentityBackImgId") + .HasColumnType("uniqueidentifier") + .HasComment("娉曚汉鎴栫粡鍔炰汉韬唤璇佸浗寰介潰Id"); + + b.Property<Guid?>("IdentityImgId") + .HasColumnType("uniqueidentifier") + .HasComment("娉曚汉鎴栫粡鍔炰汉韬唤璇佷汉鍍忛潰Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsReal") + .HasColumnType("bit") + .HasComment("鏄惁瀹炲悕"); + + b.Property<string>("LegalPerson") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("娉曚汉濮撳悕"); + + b.Property<Guid?>("LicenseImageId") + .HasColumnType("uniqueidentifier") + .HasComment("钀ヤ笟鎵х収鐓х墖Id"); + + b.Property<string>("Name") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("娉曚汉鎴栫粡鍔炰汉濮撳悕"); + + b.Property<int?>("PersonalRealMethod") + .HasColumnType("int") + .HasComment("娉曚汉鎴栫粡鍔炰汉瀹炲悕鏂瑰紡"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)") + .HasComment("娉曚汉鎴栫粡鍔炰汉鎵嬫満鍙�"); + + b.Property<bool?>("Proxy") + .HasColumnType("bit") + .HasComment("鏄惁濮旀墭缁忓姙浜�"); + + b.Property<string>("ProxyPowerAttorneyUrl") + .HasColumnType("nvarchar(max)") + .HasComment("浼佷笟鎺堟潈涔�"); + + b.Property<int?>("RealAccess") + .HasColumnType("int") + .HasComment("瀹炲悕閫氶亾"); + + b.Property<string>("SocietyCreditCode") + .IsRequired() + .HasMaxLength(18) + .HasColumnType("nvarchar(18)") + .HasComment("缁熶竴绀句細淇$敤浠g爜"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("IdentityBackImgId"); + + b.HasIndex("IdentityImgId"); + + b.HasIndex("LicenseImageId"); + + b.ToTable("Enterprise", t => + { + t.HasComment("浼佷笟"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.FileStore", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("AbsolutePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("缁濆璺緞"); + + b.Property<int>("Access") + .HasColumnType("int") + .HasComment("閫氶亾"); + + b.Property<string>("ContentType") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍐呭绫诲瀷"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Extension") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("鎵╁睍鍚�"); + + b.Property<int>("FileType") + .HasColumnType("int") + .HasComment("鏂囦欢绫诲瀷"); + + b.Property<string>("Hash") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍝堝笇"); + + b.Property<int?>("ImageHeight") + .HasColumnType("int") + .HasComment("楂樺害锛堝儚绱狅級"); + + b.Property<int?>("ImageWidth") + .HasColumnType("int") + .HasComment("瀹藉害锛堝儚绱狅級"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<long>("Length") + .HasColumnType("bigint") + .HasComment("鏂囦欢澶у皬锛堝瓧鑺傦級"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍚嶇О"); + + b.Property<string>("RelativePath") + .HasColumnType("nvarchar(max)") + .HasComment("鐩稿璺緞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.ToTable("FileStore", t => + { + t.HasComment("鏂囦欢瀛樺偍"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.FileVirtualPath", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍚嶇О"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("StoreId") + .HasColumnType("uniqueidentifier") + .HasComment("鏂囦欢瀛樺偍Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<string>("VirtualPath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("铏氭嫙璺緞"); + + b.HasKey("Id"); + + b.HasIndex("StoreId"); + + b.ToTable("FileVirtualPath", t => + { + t.HasComment("鏂囦欢铏氭嫙璺緞"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("ClientType") + .HasColumnType("int") + .HasComment("瀹㈡埛绔被鍨�"); + + b.Property<string>("Code") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("缂栧彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Group") + .HasColumnType("nvarchar(max)") + .HasComment("鍒嗙粍鍚嶇О锛堢敤浜庢寜閽�/瀛楁锛�"); + + b.Property<string>("Icon") + .HasColumnType("nvarchar(max)") + .HasComment("鍥炬爣"); + + b.Property<bool>("IsCache") + .HasColumnType("bit") + .HasComment("鏄惁缂撳瓨"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit") + .HasComment("鏄惁绂佺敤"); + + b.Property<string>("Location") + .HasColumnType("nvarchar(max)") + .HasComment("浣嶇疆锛堢敤浜庢寜閽級"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍚嶇О"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("涓婄骇Id"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)") + .HasComment("鑿滃崟璺緞"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<int>("Type") + .HasColumnType("int") + .HasComment("绫诲瀷"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<string>("Url") + .HasColumnType("nvarchar(max)") + .HasComment("閾炬帴鍦板潃"); + + b.Property<int>("UserType") + .HasColumnType("int") + .HasComment("鐢ㄦ埛绫诲瀷"); + + b.Property<int>("VisitLevel") + .HasColumnType("int") + .HasComment("璁块棶绾у埆"); + + b.Property<string>("Width") + .HasColumnType("nvarchar(max)") + .HasComment("鍒楀锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛�"); + + b.HasKey("Id"); + + b.HasIndex("ParentId"); + + b.ToTable("Menu", t => + { + t.HasComment("鑿滃崟"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Resource", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("ActionName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("濮旀墭鍚嶇О"); + + b.Property<string>("Code") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("缂栧彿"); + + b.Property<int>("Controller") + .HasColumnType("int") + .HasComment("鎺у埗鍣�"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsExpired") + .HasColumnType("bit") + .HasComment("鏄惁宸茶繃鏈�"); + + b.Property<int>("Method") + .HasColumnType("int") + .HasComment("璇锋眰鏂瑰紡"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍚嶇О"); + + b.Property<string>("RequestTypeFullName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("璇锋眰绫诲瀷鍏ㄥ悕"); + + b.Property<string>("RequestTypeName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("璇锋眰绫诲瀷鍚嶇О"); + + b.Property<string>("ResponseTypeFullName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍝嶅簲绫诲瀷鍏ㄥ悕"); + + b.Property<string>("ResponseTypeName") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍝嶅簲绫诲瀷鍚嶇О"); + + b.Property<string>("Route") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("璺敱"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.ToTable("Resource", t => + { + t.HasComment("璧勬簮"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Role", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("ClientType") + .HasColumnType("int") + .HasComment("瀹㈡埛绔被鍨�"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<int>("DataPower") + .HasColumnType("int") + .HasComment("鏁版嵁鏉冮檺"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit") + .HasComment("鏄惁绂佺敤"); + + b.Property<int>("MinLevel") + .HasColumnType("int") + .HasComment("鏈�浣庣骇鍒�"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍚嶇О"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<int>("UserType") + .HasColumnType("int") + .HasComment("鐢ㄦ埛绫诲瀷"); + + b.HasKey("Id"); + + b.ToTable("Role", t => + { + t.HasComment("瑙掕壊"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleMenu", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("MenuId") + .HasColumnType("uniqueidentifier") + .HasComment("鑿滃崟Id"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier") + .HasComment("瑙掕壊Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("MenuId"); + + b.HasIndex("RoleId"); + + b.ToTable("RoleMenu", t => + { + t.HasComment("瑙掕壊鑿滃崟"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleResource", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<int>("DataPower") + .HasColumnType("int") + .HasComment("鏁版嵁鏉冮檺"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("ResourceId") + .HasColumnType("uniqueidentifier") + .HasComment("璧勬簮Id"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier") + .HasComment("瑙掕壊Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("ResourceId"); + + b.HasIndex("RoleId"); + + b.ToTable("RoleResource", t => + { + t.HasComment("瑙掕壊璧勬簮"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Address") + .HasColumnType("nvarchar(max)") + .HasComment("浠诲姟鍦扮偣璇︾粏鍦板潃"); + + b.Property<int>("AgeMaxLimit") + .HasColumnType("int") + .HasComment("骞撮緞鑼冨洿澶�"); + + b.Property<int>("AgeMinLimit") + .HasColumnType("int") + .HasComment("骞撮緞鑼冨洿鏈�灏�"); + + b.Property<DateTime>("BeginTime") + .HasColumnType("datetime2") + .HasComment("浠诲姟寮�濮嬫椂闂�"); + + b.Property<int>("BillingMethod") + .HasColumnType("int") + .HasComment("璁¤垂鏂瑰紡"); + + b.Property<Guid>("CityId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟鍦扮偣鎵�灞炲尯鍩烮d"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<DateTime>("EndTime") + .HasColumnType("datetime2") + .HasComment("浠诲姟缁撴潫鏃堕棿"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier") + .HasComment("浼佷笟Id"); + + b.Property<int>("GenderLimit") + .HasColumnType("int") + .HasComment("鎬у埆瑕佹眰"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("浠诲姟鍚嶇О"); + + b.Property<decimal>("ServiceFee") + .HasColumnType("decimal(18,2)") + .HasComment("鏈嶅姟璐�"); + + b.Property<int>("SettlementCycle") + .HasColumnType("int") + .HasComment("缁撶畻鏂瑰紡"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("CityId"); + + b.HasIndex("EnterpriseId"); + + b.ToTable("TaskInfo", t => + { + t.HasComment("浠诲姟淇℃伅"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("BenefitId") + .HasColumnType("uniqueidentifier") + .HasComment("绂忓埄Id"); + + b.Property<Guid>("BenefitId1") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("BenefitId"); + + b.HasIndex("BenefitId1"); + + b.ToTable("TaskInfoBenefit", t => + { + t.HasComment("浠诲姟绂忓埄"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoCredentialLimit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<Guid?>("TypeId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功绫诲瀷Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoId"); + + b.HasIndex("TypeId"); + + b.ToTable("TaskInfoCredentialLimit"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<int>("HireStatus") + .HasColumnType("int") + .HasComment("褰曠敤鐘舵��"); + + b.Property<DateTime?>("HireTime") + .HasColumnType("datetime2") + .HasComment("褰曠敤鏃堕棿"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int?>("SignContractStatus") + .HasColumnType("int") + .HasComment("绛剧害鐘舵��"); + + b.Property<DateTime?>("SignContractTime") + .HasColumnType("datetime2") + .HasComment("绛剧害鏃堕棿"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("TaskInfoUser", t => + { + t.HasComment("浠诲姟鐢ㄦ埛淇℃伅"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("AvatarId") + .HasColumnType("uniqueidentifier") + .HasComment("澶村儚Id"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("閾惰鍗″彿"); + + b.Property<Guid?>("BankCardImgId") + .HasColumnType("uniqueidentifier") + .HasComment("閾惰鍗$収鐗嘔d"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Identity") + .HasColumnType("nvarchar(max)") + .HasComment("韬唤璇佸彿"); + + b.Property<Guid?>("IdentityBackImgId") + .HasColumnType("uniqueidentifier") + .HasComment("韬唤璇佸浗寰介潰Id"); + + b.Property<Guid?>("IdentityImgId") + .HasColumnType("uniqueidentifier") + .HasComment("韬唤璇佷汉鍍忛潰Id"); + + b.Property<bool>("IsCheckPhoneNumber") + .HasColumnType("bit") + .HasComment("鏄惁宸叉牎楠屾墜鏈哄彿"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsReal") + .HasColumnType("bit") + .HasComment("鏄惁瀹炲悕"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("濮撳悕"); + + b.Property<string>("Password") + .HasColumnType("nvarchar(max)") + .HasComment("瀵嗙爜"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)") + .HasComment("鎵嬫満鍙�"); + + b.Property<int?>("RealAccess") + .HasColumnType("int") + .HasComment("瀹炲悕閫氶亾"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<string>("UserName") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("鐢ㄦ埛鍚�"); + + b.HasKey("Id"); + + b.HasIndex("AvatarId"); + + b.HasIndex("BankCardImgId"); + + b.HasIndex("IdentityBackImgId"); + + b.HasIndex("IdentityImgId"); + + b.ToTable("UserAuth", t => + { + t.HasComment("鐢ㄦ埛"); + }); + + b.HasData( + new + { + Id = new Guid("11111111-1111-1111-1111-111111111111"), + CreatedTime = new DateTimeOffset(new DateTime(2000, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 8, 0, 0, 0)), + IsCheckPhoneNumber = false, + IsDeleted = false, + IsReal = false, + Name = "绠$悊鍛�", + Password = "iEYggKrMhQ3ASUGLobra1w==:fn/DsMJUbD9FGpvBvR3moMpMPptdxzZlourPVhU479I=", + Sort = 0, + UserName = "system" + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfo", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CityId") + .HasColumnType("uniqueidentifier") + .HasComment("甯搁┗鍩庡競Id"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid?>("EducationalBackgroundId") + .HasColumnType("uniqueidentifier") + .HasComment("瀛﹀巻Id"); + + b.Property<Guid?>("EnterpriseId") + .HasColumnType("uniqueidentifier") + .HasComment("浼佷笟Id"); + + b.Property<int?>("FreeTime") + .HasColumnType("int") + .HasComment("绌洪棽鏃堕棿"); + + b.Property<int?>("Height") + .HasColumnType("int") + .HasComment("韬珮"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int?>("JobSeekingStatus") + .HasColumnType("int") + .HasComment("姹傝亴鐘舵��"); + + b.Property<int>("Level") + .HasColumnType("int") + .HasComment("绾у埆"); + + b.Property<Guid?>("PersonalIdentityId") + .HasColumnType("uniqueidentifier") + .HasComment("韬唤Id"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<int>("Status") + .HasColumnType("int") + .HasComment("鐘舵��"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<int>("Type") + .HasColumnType("int") + .HasComment("鐢ㄦ埛绫诲瀷"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserAuthId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛Id"); + + b.Property<int?>("Weight") + .HasColumnType("int") + .HasComment("浣撻噸"); + + b.Property<string>("WorkExperience") + .HasColumnType("nvarchar(max)") + .HasComment("宸ヤ綔缁忛獙"); + + b.Property<string>("WorkSeniority") + .HasColumnType("nvarchar(max)") + .HasComment("宸ヤ綔璧勫巻"); + + b.Property<string>("WxmpOpenId") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("寰俊寮�鏀綢d"); + + b.HasKey("Id"); + + b.HasIndex("CityId"); + + b.HasIndex("EducationalBackgroundId"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("PersonalIdentityId"); + + b.HasIndex("UserAuthId"); + + b.ToTable("UserInfo", t => + { + t.HasComment("鐢ㄦ埛淇℃伅"); + }); + + b.HasData( + new + { + Id = new Guid("11111111-1111-1111-1111-111111111112"), + CreatedTime = new DateTimeOffset(new DateTime(2000, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 8, 0, 0, 0)), + IsDeleted = false, + Level = 999, + Sort = 0, + Status = 0, + Type = 100, + UserAuthId = new Guid("11111111-1111-1111-1111-111111111111") + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoBankCard", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Bank") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("寮�鎴疯"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("閾惰鍗″彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("PhoneNumber") + .IsRequired() + .HasMaxLength(11) + .HasColumnType("nvarchar(11)") + .HasComment("閾惰棰勭暀鎵嬫満鍙�"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoBankCard", t => + { + t.HasComment("鐢ㄦ埛閾惰鍗′俊鎭�"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoCredential", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("BackImgId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功鍙嶉潰鐓х墖Id"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("璇佷功缂栧彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<DateTime>("EndDate") + .HasColumnType("datetime2") + .HasComment("缁撴潫鏃ユ湡"); + + b.Property<Guid>("ImgId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功姝i潰鐓х墖Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsForever") + .HasColumnType("bit") + .HasComment("姘镐箙璇佷功"); + + b.Property<string>("IssueUnit") + .HasColumnType("nvarchar(max)") + .HasComment("鍙戣瘉鍗曚綅"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<DateTime>("StartDate") + .HasColumnType("datetime2") + .HasComment("寮�濮嬫棩鏈�"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<Guid?>("TypeId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功绫诲瀷Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("BackImgId"); + + b.HasIndex("ImgId"); + + b.HasIndex("TypeId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoCredential", t => + { + t.HasComment("鐢ㄦ埛淇℃伅璧勬牸璇佷功"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoDepartment", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid>("DepartmentId") + .HasColumnType("uniqueidentifier") + .HasComment("閮ㄩ棬Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("DepartmentId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoDepartment", t => + { + t.HasComment("鐢ㄦ埛淇℃伅閮ㄩ棬"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoExpectJob", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("PersonalIdentityId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈熸湜宀椾綅Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("PersonalIdentityId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoExpectJob", t => + { + t.HasComment("鐢ㄦ埛淇℃伅鏈熸湜宀椾綅"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoPhoto", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid>("ImgId") + .HasColumnType("uniqueidentifier") + .HasComment("鐓х墖Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("ImgId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoPhoto", t => + { + t.HasComment("鐢ㄦ埛淇℃伅鐢熸椿鐓�"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoRole", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier") + .HasComment("瑙掕壊Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoRole", t => + { + t.HasComment("鐢ㄦ埛淇℃伅瑙掕壊"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Department", b => + { + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany("Departments") + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Department", "Parent") + .WithMany("Children") + .HasForeignKey("ParentId"); + + b.Navigation("Enterprise"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b => + { + b.HasOne("FlexJobApi.Core.DictionaryCategory", "Category") + .WithMany() + .HasForeignKey("CategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Parent") + .WithMany("Children") + .HasForeignKey("ParentId"); + + b.Navigation("Category"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Enterprise", b => + { + b.HasOne("FlexJobApi.Core.FileVirtualPath", "IdentityBackImg") + .WithMany() + .HasForeignKey("IdentityBackImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "IdentityImg") + .WithMany() + .HasForeignKey("IdentityImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "LicenseImage") + .WithMany() + .HasForeignKey("LicenseImageId"); + + b.Navigation("IdentityBackImg"); + + b.Navigation("IdentityImg"); + + b.Navigation("LicenseImage"); + }); + + modelBuilder.Entity("FlexJobApi.Core.FileVirtualPath", b => + { + b.HasOne("FlexJobApi.Core.FileStore", "Store") + .WithMany() + .HasForeignKey("StoreId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Store"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.HasOne("FlexJobApi.Core.Menu", "Parent") + .WithMany("Children") + .HasForeignKey("ParentId"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleMenu", b => + { + b.HasOne("FlexJobApi.Core.Menu", "Menu") + .WithMany() + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Role", "Role") + .WithMany("RoleMenus") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleResource", b => + { + b.HasOne("FlexJobApi.Core.Resource", "Resource") + .WithMany() + .HasForeignKey("ResourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Role", "Role") + .WithMany("RoleResources") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Resource"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "City") + .WithMany() + .HasForeignKey("CityId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany() + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("City"); + + b.Navigation("Enterprise"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b => + { + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("Benefits") + .HasForeignKey("BenefitId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Benefit") + .WithMany() + .HasForeignKey("BenefitId1") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Benefit"); + + b.Navigation("TaskInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoCredentialLimit", b => + { + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("CredentialLimits") + .HasForeignKey("TaskInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Type") + .WithMany() + .HasForeignKey("TypeId"); + + b.Navigation("TaskInfo"); + + b.Navigation("Type"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany() + .HasForeignKey("TaskInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany() + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaskInfo"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.HasOne("FlexJobApi.Core.FileVirtualPath", "Avatar") + .WithMany() + .HasForeignKey("AvatarId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "BankCardImg") + .WithMany() + .HasForeignKey("BankCardImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "IdentityBackImg") + .WithMany() + .HasForeignKey("IdentityBackImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "IdentityImg") + .WithMany() + .HasForeignKey("IdentityImgId"); + + b.Navigation("Avatar"); + + b.Navigation("BankCardImg"); + + b.Navigation("IdentityBackImg"); + + b.Navigation("IdentityImg"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfo", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "City") + .WithMany() + .HasForeignKey("CityId"); + + b.HasOne("FlexJobApi.Core.DictionaryData", "EducationalBackground") + .WithMany() + .HasForeignKey("EducationalBackgroundId"); + + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany("UserInfos") + .HasForeignKey("EnterpriseId"); + + b.HasOne("FlexJobApi.Core.DictionaryData", "PersonalIdentity") + .WithMany() + .HasForeignKey("PersonalIdentityId"); + + b.HasOne("FlexJobApi.Core.UserAuth", "UserAuth") + .WithMany("UserInfos") + .HasForeignKey("UserAuthId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("City"); + + b.Navigation("EducationalBackground"); + + b.Navigation("Enterprise"); + + b.Navigation("PersonalIdentity"); + + b.Navigation("UserAuth"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoBankCard", b => + { + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany() + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoCredential", b => + { + b.HasOne("FlexJobApi.Core.FileVirtualPath", "BackImg") + .WithMany() + .HasForeignKey("BackImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "Img") + .WithMany() + .HasForeignKey("ImgId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Type") + .WithMany() + .HasForeignKey("TypeId"); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoCredentials") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BackImg"); + + b.Navigation("Img"); + + b.Navigation("Type"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoDepartment", b => + { + b.HasOne("FlexJobApi.Core.Department", "Department") + .WithMany() + .HasForeignKey("DepartmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoDepartments") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Department"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoExpectJob", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "PersonalIdentity") + .WithMany() + .HasForeignKey("PersonalIdentityId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoExpectJobs") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PersonalIdentity"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoPhoto", b => + { + b.HasOne("FlexJobApi.Core.FileVirtualPath", "Img") + .WithMany() + .HasForeignKey("ImgId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany() + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Img"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoRole", b => + { + b.HasOne("FlexJobApi.Core.Role", "Role") + .WithMany("UserInfoRoles") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoRoles") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Role"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Department", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Enterprise", b => + { + b.Navigation("Departments"); + + b.Navigation("UserInfos"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Role", b => + { + b.Navigation("RoleMenus"); + + b.Navigation("RoleResources"); + + b.Navigation("UserInfoRoles"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.Navigation("Benefits"); + + b.Navigation("CredentialLimits"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.Navigation("UserInfos"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfo", b => + { + b.Navigation("UserInfoCredentials"); + + b.Navigation("UserInfoDepartments"); + + b.Navigation("UserInfoExpectJobs"); + + b.Navigation("UserInfoRoles"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/FlexJobApi.Database.Migrations/Migrations/20250805102905_UpdateDictionaryData0805002.cs b/FlexJobApi.Database.Migrations/Migrations/20250805102905_UpdateDictionaryData0805002.cs new file mode 100644 index 0000000..2b19a09 --- /dev/null +++ b/FlexJobApi.Database.Migrations/Migrations/20250805102905_UpdateDictionaryData0805002.cs @@ -0,0 +1,30 @@ +锘縰sing Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace FlexJobApi.Database.Migrations.Migrations +{ + /// <inheritdoc /> + public partial class UpdateDictionaryData0805002 : Migration + { + /// <inheritdoc /> + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn<bool>( + name: "IsDisabled", + table: "DictionaryData", + type: "bit", + nullable: false, + defaultValue: false, + comment: "鏄惁绂佺敤"); + } + + /// <inheritdoc /> + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "IsDisabled", + table: "DictionaryData"); + } + } +} diff --git a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs index e20265a..18c4892 100644 --- a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs +++ b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs @@ -202,6 +202,10 @@ .HasColumnType("bit") .HasComment("鏄惁鍒犻櫎"); + b.Property<bool>("IsDisabled") + .HasColumnType("bit") + .HasComment("鏄惁绂佺敤"); + b.Property<Guid?>("ParentId") .HasColumnType("uniqueidentifier") .HasComment("涓婄骇Id"); -- Gitblit v1.9.1