From 0c4b61d3db011bc921f1b00c8e1bfb0367947b30 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期一, 04 八月 2025 17:00:58 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/ApiFlexJob --- FlexJobApi.User.Application/FlexJobApi.User.Application.xml | 38 FlexJobApi.Core/settings.json | 3 FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.Designer.cs | 2145 ++++++++++++++++++++++++++++++++++++++++++++++++++++ FlexJobApi.User.Application/Resources/Queries/GetResourceFieldsQueryHandler.cs | 2 FlexJobApi.User.Application/Roles/RoleAppService.cs | 71 + FlexJobApi.User.Application/Resources/ResourceAppService.cs | 4 FlexJobApi.Application/Dictionaries/DictionaryAppService.cs | 2 FlexJobApi.User.Application/Menus/MenuAppService.cs | 4 FlexJobApi.User.Application/Auths/AuthAppService.cs | 2 FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs | 2 FlexJobApi.User.Application/Roles/Commands/SaveRoleCommandHandler.cs | 31 FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs | 17 FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.cs | 121 ++ 13 files changed, 2,425 insertions(+), 17 deletions(-) diff --git a/FlexJobApi.Application/Dictionaries/DictionaryAppService.cs b/FlexJobApi.Application/Dictionaries/DictionaryAppService.cs index 0660235..2e6f38b 100644 --- a/FlexJobApi.Application/Dictionaries/DictionaryAppService.cs +++ b/FlexJobApi.Application/Dictionaries/DictionaryAppService.cs @@ -18,7 +18,7 @@ /// </summary> /// <param name="query"></param> /// <returns></returns> - public Task<GetDictionaryDatasQueryResult> GetDictionaryDatas([FromQuery] GetDictionaryDatasQuery query) + public Task<GetDictionaryDatasQueryResult> GetDictionaryDatas(GetDictionaryDatasQuery query) { return mediator.Send(query); } diff --git a/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs b/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs index ba6ae8b..bc1ef72 100644 --- a/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs +++ b/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs @@ -49,7 +49,7 @@ GetResult( metadata.StatusCode, data: metadata.Data, - errorCode: metadata.ErrorCode.ToString(), + errorCode: metadata.ErrorCode?.ToString() ?? "s500", errors: metadata.Errors) , UnifyContext.GetSerializerSettings(context)); } diff --git a/FlexJobApi.Core/settings.json b/FlexJobApi.Core/settings.json index 0a56a9d..5813776 100644 --- a/FlexJobApi.Core/settings.json +++ b/FlexJobApi.Core/settings.json @@ -17,7 +17,8 @@ "DynamicApiControllerSettings": { "LowercaseRoute": false, "KeepName": true, - "AsLowerCamelCase": true + "AsLowerCamelCase": true, + "ModelToQuery": true }, "CorsAccessorSettings": { "WithExposedHeaders": [ diff --git a/FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.Designer.cs b/FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.Designer.cs new file mode 100644 index 0000000..eea9759 --- /dev/null +++ b/FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.Designer.cs @@ -0,0 +1,2145 @@ +锘�// <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("20250804084910_UpdateRole")] + partial class UpdateRole + { + /// <inheritdoc /> + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "9.0.7") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("FlexJobApi.Core.Department", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier") + .HasComment("浼佷笟Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit") + .HasComment("鏄惁绂佺敤"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍚嶇О"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("涓婄骇Id"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)") + .HasComment("閮ㄩ棬璺緞"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("ParentId"); + + b.ToTable("Department", t => + { + t.HasComment("閮ㄩ棬"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryCategory", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("缂栧彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("FieldNames") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁鍚嶏紙閫楀彿闅斿紑锛�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍚嶇О"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.ToTable("DictionaryCategory", t => + { + t.HasComment("瀛楀吀绫诲埆"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("CategoryId") + .HasColumnType("uniqueidentifier") + .HasComment("绫诲埆Id"); + + b.Property<string>("Code") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("缂栧彿"); + + b.Property<string>("Content") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鏄剧ず鍐呭"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Field1") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁1"); + + b.Property<string>("Field2") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁2"); + + b.Property<string>("Field3") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁3"); + + b.Property<string>("Field4") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁4"); + + b.Property<string>("Field5") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楁5"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("涓婄骇Id"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)") + .HasComment("瀛楀吀璺緞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("CategoryId"); + + b.HasIndex("ParentId"); + + b.ToTable("DictionaryData", t => + { + t.HasComment("瀛楀吀鏁版嵁"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Enterprise", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("娉曚汉鎴栫粡鍔炰汉閾惰鍗″彿"); + + b.Property<Guid?>("BankCardImgId") + .HasColumnType("uniqueidentifier") + .HasComment("娉曚汉鎴栫粡鍔炰汉閾惰鍗$収鐗嘔d"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("EnterpriseName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("浼佷笟鍏ㄧО"); + + b.Property<int?>("EnterpriseRealMethod") + .HasColumnType("int") + .HasComment("浼佷笟璁よ瘉鏂瑰紡"); + + b.Property<string>("Identity") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)") + .HasComment("娉曚汉鎴栫粡鍔炰汉韬唤璇佸彿"); + + b.Property<Guid?>("IdentityBackImgId") + .HasColumnType("uniqueidentifier") + .HasComment("娉曚汉鎴栫粡鍔炰汉韬唤璇佸浗寰介潰Id"); + + b.Property<Guid?>("IdentityImgId") + .HasColumnType("uniqueidentifier") + .HasComment("娉曚汉鎴栫粡鍔炰汉韬唤璇佷汉鍍忛潰Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsReal") + .HasColumnType("bit") + .HasComment("鏄惁瀹炲悕"); + + b.Property<string>("LegalPerson") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("娉曚汉濮撳悕"); + + b.Property<Guid?>("LicenseImageId") + .HasColumnType("uniqueidentifier") + .HasComment("钀ヤ笟鎵х収鐓х墖Id"); + + b.Property<string>("Name") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("娉曚汉鎴栫粡鍔炰汉濮撳悕"); + + b.Property<int?>("PersonalRealMethod") + .HasColumnType("int") + .HasComment("娉曚汉鎴栫粡鍔炰汉瀹炲悕鏂瑰紡"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)") + .HasComment("娉曚汉鎴栫粡鍔炰汉鎵嬫満鍙�"); + + b.Property<bool?>("Proxy") + .HasColumnType("bit") + .HasComment("鏄惁濮旀墭缁忓姙浜�"); + + b.Property<string>("ProxyPowerAttorneyUrl") + .HasColumnType("nvarchar(max)") + .HasComment("浼佷笟鎺堟潈涔�"); + + b.Property<int?>("RealAccess") + .HasColumnType("int") + .HasComment("瀹炲悕閫氶亾"); + + b.Property<string>("SocietyCreditCode") + .IsRequired() + .HasMaxLength(18) + .HasColumnType("nvarchar(18)") + .HasComment("缁熶竴绀句細淇$敤浠g爜"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("IdentityBackImgId"); + + b.HasIndex("IdentityImgId"); + + b.HasIndex("LicenseImageId"); + + b.ToTable("Enterprise", t => + { + t.HasComment("浼佷笟"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.FileStore", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("AbsolutePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("缁濆璺緞"); + + b.Property<int>("Access") + .HasColumnType("int") + .HasComment("閫氶亾"); + + b.Property<string>("ContentType") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍐呭绫诲瀷"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Extension") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("鎵╁睍鍚�"); + + b.Property<int>("FileType") + .HasColumnType("int") + .HasComment("鏂囦欢绫诲瀷"); + + b.Property<string>("Hash") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍝堝笇"); + + b.Property<int?>("ImageHeight") + .HasColumnType("int") + .HasComment("楂樺害锛堝儚绱狅級"); + + b.Property<int?>("ImageWidth") + .HasColumnType("int") + .HasComment("瀹藉害锛堝儚绱狅級"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<long>("Length") + .HasColumnType("bigint") + .HasComment("鏂囦欢澶у皬锛堝瓧鑺傦級"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍚嶇О"); + + b.Property<string>("RelativePath") + .HasColumnType("nvarchar(max)") + .HasComment("鐩稿璺緞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.ToTable("FileStore", t => + { + t.HasComment("鏂囦欢瀛樺偍"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.FileVirtualPath", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("鍚嶇О"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("StoreId") + .HasColumnType("uniqueidentifier") + .HasComment("鏂囦欢瀛樺偍Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<string>("VirtualPath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("铏氭嫙璺緞"); + + b.HasKey("Id"); + + b.HasIndex("StoreId"); + + b.ToTable("FileVirtualPath", t => + { + t.HasComment("鏂囦欢铏氭嫙璺緞"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("ClientType") + .HasColumnType("int") + .HasComment("瀹㈡埛绔被鍨�"); + + b.Property<string>("Code") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("缂栧彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Group") + .HasColumnType("nvarchar(max)") + .HasComment("鍒嗙粍鍚嶇О锛堢敤浜庢寜閽�/瀛楁锛�"); + + b.Property<string>("Icon") + .HasColumnType("nvarchar(max)") + .HasComment("鍥炬爣"); + + b.Property<bool>("IsCache") + .HasColumnType("bit") + .HasComment("鏄惁缂撳瓨"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsDisabled") + .HasColumnType("bit") + .HasComment("鏄惁绂佺敤"); + + b.Property<string>("Location") + .HasColumnType("nvarchar(max)") + .HasComment("浣嶇疆锛堢敤浜庢寜閽級"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍚嶇О"); + + b.Property<Guid?>("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("涓婄骇Id"); + + b.Property<string>("Path") + .HasColumnType("nvarchar(max)") + .HasComment("鑿滃崟璺緞"); + + b.Property<string>("Remark") + .HasColumnType("nvarchar(max)") + .HasComment("澶囨敞"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<int>("Type") + .HasColumnType("int") + .HasComment("绫诲瀷"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<string>("Url") + .HasColumnType("nvarchar(max)") + .HasComment("閾炬帴鍦板潃"); + + b.Property<int>("UserType") + .HasColumnType("int") + .HasComment("鐢ㄦ埛绫诲瀷"); + + b.Property<int>("VisitLevel") + .HasColumnType("int") + .HasComment("璁块棶绾у埆"); + + b.Property<string>("Width") + .HasColumnType("nvarchar(max)") + .HasComment("鍒楀锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛�"); + + b.HasKey("Id"); + + b.HasIndex("ParentId"); + + b.ToTable("Menu", t => + { + t.HasComment("鑿滃崟"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Resource", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Code") + .IsRequired() + .HasColumnType("nvarchar(max)") + .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>("RequestTypeName") + .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<string>("Service") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("寰湇鍔�"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.ToTable("Resource", t => + { + t.HasComment("璧勬簮"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Role", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<int>("ClientType") + .HasColumnType("int") + .HasComment("瀹㈡埛绔被鍨�"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("MinLevel") + .HasColumnType("int") + .HasComment("鏈�浣庣骇鍒�"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("鍚嶇О"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<int>("UserType") + .HasColumnType("int") + .HasComment("鐢ㄦ埛绫诲瀷"); + + b.HasKey("Id"); + + b.ToTable("Role", t => + { + t.HasComment("瑙掕壊"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleMenu", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("MenuId") + .HasColumnType("uniqueidentifier") + .HasComment("鑿滃崟Id"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier") + .HasComment("瑙掕壊Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("MenuId"); + + b.HasIndex("RoleId"); + + b.ToTable("RoleMenu", t => + { + t.HasComment("瑙掕壊鑿滃崟"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleResource", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<int>("DataPower") + .HasColumnType("int") + .HasComment("鏁版嵁鏉冮檺"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("ResourceId") + .HasColumnType("uniqueidentifier") + .HasComment("璧勬簮Id"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier") + .HasComment("瑙掕壊Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("ResourceId"); + + b.HasIndex("RoleId"); + + b.ToTable("RoleResource", t => + { + t.HasComment("瑙掕壊璧勬簮"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Address") + .HasColumnType("nvarchar(max)") + .HasComment("浠诲姟鍦扮偣璇︾粏鍦板潃"); + + b.Property<int>("AgeMaxLimit") + .HasColumnType("int") + .HasComment("骞撮緞鑼冨洿澶�"); + + b.Property<int>("AgeMinLimit") + .HasColumnType("int") + .HasComment("骞撮緞鑼冨洿鏈�灏�"); + + b.Property<DateTime>("BeginTime") + .HasColumnType("datetime2") + .HasComment("浠诲姟寮�濮嬫椂闂�"); + + b.Property<int>("BillingMethod") + .HasColumnType("int") + .HasComment("璁¤垂鏂瑰紡"); + + b.Property<Guid>("CityId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟鍦扮偣鎵�灞炲尯鍩烮d"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<DateTime>("EndTime") + .HasColumnType("datetime2") + .HasComment("浠诲姟缁撴潫鏃堕棿"); + + b.Property<Guid>("EnterpriseId") + .HasColumnType("uniqueidentifier") + .HasComment("浼佷笟Id"); + + b.Property<int>("GenderLimit") + .HasColumnType("int") + .HasComment("鎬у埆瑕佹眰"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("浠诲姟鍚嶇О"); + + b.Property<decimal>("ServiceFee") + .HasColumnType("decimal(18,2)") + .HasComment("鏈嶅姟璐�"); + + b.Property<int>("SettlementCycle") + .HasColumnType("int") + .HasComment("缁撶畻鏂瑰紡"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("CityId"); + + b.HasIndex("EnterpriseId"); + + b.ToTable("TaskInfo", t => + { + t.HasComment("浠诲姟淇℃伅"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid>("BenefitId") + .HasColumnType("uniqueidentifier") + .HasComment("绂忓埄Id"); + + b.Property<Guid>("BenefitId1") + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("BenefitId"); + + b.HasIndex("BenefitId1"); + + b.ToTable("TaskInfoBenefit", t => + { + t.HasComment("浠诲姟绂忓埄"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoCredentialLimit", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<Guid?>("TypeId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功绫诲瀷Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoId"); + + b.HasIndex("TypeId"); + + b.ToTable("TaskInfoCredentialLimit"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<int>("HireStatus") + .HasColumnType("int") + .HasComment("褰曠敤鐘舵��"); + + b.Property<DateTime?>("HireTime") + .HasColumnType("datetime2") + .HasComment("褰曠敤鏃堕棿"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int?>("SignContractStatus") + .HasColumnType("int") + .HasComment("绛剧害鐘舵��"); + + b.Property<DateTime?>("SignContractTime") + .HasColumnType("datetime2") + .HasComment("绛剧害鏃堕棿"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<Guid>("TaskInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("浠诲姟Id"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("TaskInfoId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("TaskInfoUser", t => + { + t.HasComment("浠诲姟鐢ㄦ埛淇℃伅"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("AvatarId") + .HasColumnType("uniqueidentifier") + .HasComment("澶村儚Id"); + + b.Property<string>("BankCard") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("閾惰鍗″彿"); + + b.Property<Guid?>("BankCardImgId") + .HasColumnType("uniqueidentifier") + .HasComment("閾惰鍗$収鐗嘔d"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<string>("Identity") + .HasColumnType("nvarchar(max)") + .HasComment("韬唤璇佸彿"); + + b.Property<Guid?>("IdentityBackImgId") + .HasColumnType("uniqueidentifier") + .HasComment("韬唤璇佸浗寰介潰Id"); + + b.Property<Guid?>("IdentityImgId") + .HasColumnType("uniqueidentifier") + .HasComment("韬唤璇佷汉鍍忛潰Id"); + + b.Property<bool>("IsCheckPhoneNumber") + .HasColumnType("bit") + .HasComment("鏄惁宸叉牎楠屾墜鏈哄彿"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsReal") + .HasColumnType("bit") + .HasComment("鏄惁瀹炲悕"); + + b.Property<string>("Name") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("濮撳悕"); + + b.Property<string>("Password") + .HasColumnType("nvarchar(max)") + .HasComment("瀵嗙爜"); + + b.Property<string>("PhoneNumber") + .HasMaxLength(11) + .HasColumnType("nvarchar(11)") + .HasComment("鎵嬫満鍙�"); + + b.Property<int?>("RealAccess") + .HasColumnType("int") + .HasComment("瀹炲悕閫氶亾"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<string>("UserName") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("鐢ㄦ埛鍚�"); + + b.HasKey("Id"); + + b.HasIndex("AvatarId"); + + b.HasIndex("BankCardImgId"); + + b.HasIndex("IdentityBackImgId"); + + b.HasIndex("IdentityImgId"); + + b.ToTable("UserAuth", t => + { + t.HasComment("鐢ㄦ埛"); + }); + + b.HasData( + new + { + Id = new Guid("11111111-1111-1111-1111-111111111111"), + CreatedTime = new DateTimeOffset(new DateTime(2000, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 8, 0, 0, 0)), + IsCheckPhoneNumber = false, + IsDeleted = false, + IsReal = false, + Name = "绠$悊鍛�", + Password = "iEYggKrMhQ3ASUGLobra1w==:fn/DsMJUbD9FGpvBvR3moMpMPptdxzZlourPVhU479I=", + Sort = 0, + UserName = "system" + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfo", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("CityId") + .HasColumnType("uniqueidentifier") + .HasComment("甯搁┗鍩庡競Id"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid?>("EducationalBackgroundId") + .HasColumnType("uniqueidentifier") + .HasComment("瀛﹀巻Id"); + + b.Property<Guid?>("EnterpriseId") + .HasColumnType("uniqueidentifier") + .HasComment("浼佷笟Id"); + + b.Property<int?>("FreeTime") + .HasColumnType("int") + .HasComment("绌洪棽鏃堕棿"); + + b.Property<int?>("Height") + .HasColumnType("int") + .HasComment("韬珮"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int?>("JobSeekingStatus") + .HasColumnType("int") + .HasComment("姹傝亴鐘舵��"); + + b.Property<int>("Level") + .HasColumnType("int") + .HasComment("绾у埆"); + + b.Property<Guid?>("PersonalIdentityId") + .HasColumnType("uniqueidentifier") + .HasComment("韬唤Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<int>("Type") + .HasColumnType("int") + .HasComment("鐢ㄦ埛绫诲瀷"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserAuthId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛Id"); + + b.Property<int?>("Weight") + .HasColumnType("int") + .HasComment("浣撻噸"); + + b.Property<string>("WorkExperience") + .HasColumnType("nvarchar(max)") + .HasComment("宸ヤ綔缁忛獙"); + + b.Property<string>("WorkSeniority") + .HasColumnType("nvarchar(max)") + .HasComment("宸ヤ綔璧勫巻"); + + b.Property<string>("WxmpOpenId") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("寰俊寮�鏀綢d"); + + b.HasKey("Id"); + + b.HasIndex("CityId"); + + b.HasIndex("EducationalBackgroundId"); + + b.HasIndex("EnterpriseId"); + + b.HasIndex("PersonalIdentityId"); + + b.HasIndex("UserAuthId"); + + b.ToTable("UserInfo", t => + { + t.HasComment("鐢ㄦ埛淇℃伅"); + }); + + b.HasData( + new + { + Id = new Guid("11111111-1111-1111-1111-111111111112"), + CreatedTime = new DateTimeOffset(new DateTime(2000, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 8, 0, 0, 0)), + IsDeleted = false, + Level = 999, + Sort = 0, + Type = 100, + UserAuthId = new Guid("11111111-1111-1111-1111-111111111111") + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoBankCard", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<string>("Bank") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("寮�鎴疯"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)") + .HasComment("閾惰鍗″彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<string>("PhoneNumber") + .IsRequired() + .HasMaxLength(11) + .HasColumnType("nvarchar(11)") + .HasComment("閾惰棰勭暀鎵嬫満鍙�"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoBankCard", t => + { + t.HasComment("鐢ㄦ埛閾惰鍗′俊鎭�"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoCredential", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<Guid?>("BackImgId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功鍙嶉潰鐓х墖Id"); + + b.Property<string>("Code") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasComment("璇佷功缂栧彿"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<DateTime>("EndDate") + .HasColumnType("datetime2") + .HasComment("缁撴潫鏃ユ湡"); + + b.Property<Guid>("ImgId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功姝i潰鐓х墖Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<bool>("IsForever") + .HasColumnType("bit") + .HasComment("姘镐箙璇佷功"); + + b.Property<string>("IssueUnit") + .HasColumnType("nvarchar(max)") + .HasComment("鍙戣瘉鍗曚綅"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<DateTime>("StartDate") + .HasColumnType("datetime2") + .HasComment("寮�濮嬫棩鏈�"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<Guid?>("TypeId") + .HasColumnType("uniqueidentifier") + .HasComment("璇佷功绫诲瀷Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("BackImgId"); + + b.HasIndex("ImgId"); + + b.HasIndex("TypeId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoCredential", t => + { + t.HasComment("鐢ㄦ埛淇℃伅璧勬牸璇佷功"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoDepartment", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid>("DepartmentId") + .HasColumnType("uniqueidentifier") + .HasComment("閮ㄩ棬Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("DepartmentId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoDepartment", t => + { + t.HasComment("鐢ㄦ埛淇℃伅閮ㄩ棬"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoExpectJob", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("PersonalIdentityId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈熸湜宀椾綅Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("PersonalIdentityId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoExpectJob", t => + { + t.HasComment("鐢ㄦ埛淇℃伅鏈熸湜宀椾綅"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoPhoto", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<Guid>("ImgId") + .HasColumnType("uniqueidentifier") + .HasComment("鐓х墖Id"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("ImgId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoPhoto", t => + { + t.HasComment("鐢ㄦ埛淇℃伅鐢熸椿鐓�"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoRole", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property<DateTimeOffset>("CreatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("CreatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鍒涘缓鎿嶄綔浜�"); + + b.Property<bool>("IsDeleted") + .HasColumnType("bit") + .HasComment("鏄惁鍒犻櫎"); + + b.Property<Guid>("RoleId") + .HasColumnType("uniqueidentifier") + .HasComment("瑙掕壊Id"); + + b.Property<int>("Sort") + .HasColumnType("int") + .HasComment("鎺掑簭"); + + b.Property<string>("TraceId") + .HasColumnType("nvarchar(max)") + .HasComment("璺熻釜Id"); + + b.Property<DateTimeOffset?>("UpdatedTime") + .HasColumnType("datetimeoffset"); + + b.Property<Guid?>("UpdatedUserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鏈�鍚庢洿鏂版搷浣滀汉"); + + b.Property<Guid>("UserInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("鐢ㄦ埛淇℃伅Id"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.HasIndex("UserInfoId"); + + b.ToTable("UserInfoRole", t => + { + t.HasComment("鐢ㄦ埛淇℃伅瑙掕壊"); + }); + }); + + modelBuilder.Entity("FlexJobApi.Core.Department", b => + { + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany("Departments") + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Department", "Parent") + .WithMany("Childrens") + .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("Childrens") + .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("Childrens") + .HasForeignKey("ParentId"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleMenu", b => + { + b.HasOne("FlexJobApi.Core.Menu", "Menu") + .WithMany() + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Role", "Role") + .WithMany("RoleMenus") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("FlexJobApi.Core.RoleResource", b => + { + b.HasOne("FlexJobApi.Core.Resource", "Resource") + .WithMany() + .HasForeignKey("ResourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Role", "Role") + .WithMany("RoleResources") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Resource"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "City") + .WithMany() + .HasForeignKey("CityId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany() + .HasForeignKey("EnterpriseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("City"); + + b.Navigation("Enterprise"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b => + { + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("Benefits") + .HasForeignKey("BenefitId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Benefit") + .WithMany() + .HasForeignKey("BenefitId1") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Benefit"); + + b.Navigation("TaskInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoCredentialLimit", b => + { + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany("CredentialLimits") + .HasForeignKey("TaskInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Type") + .WithMany() + .HasForeignKey("TypeId"); + + b.Navigation("TaskInfo"); + + b.Navigation("Type"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b => + { + b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo") + .WithMany() + .HasForeignKey("TaskInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany() + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaskInfo"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.HasOne("FlexJobApi.Core.FileVirtualPath", "Avatar") + .WithMany() + .HasForeignKey("AvatarId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "BankCardImg") + .WithMany() + .HasForeignKey("BankCardImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "IdentityBackImg") + .WithMany() + .HasForeignKey("IdentityBackImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "IdentityImg") + .WithMany() + .HasForeignKey("IdentityImgId"); + + b.Navigation("Avatar"); + + b.Navigation("BankCardImg"); + + b.Navigation("IdentityBackImg"); + + b.Navigation("IdentityImg"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfo", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "City") + .WithMany() + .HasForeignKey("CityId"); + + b.HasOne("FlexJobApi.Core.DictionaryData", "EducationalBackground") + .WithMany() + .HasForeignKey("EducationalBackgroundId"); + + b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise") + .WithMany("UserInfos") + .HasForeignKey("EnterpriseId"); + + b.HasOne("FlexJobApi.Core.DictionaryData", "PersonalIdentity") + .WithMany() + .HasForeignKey("PersonalIdentityId"); + + b.HasOne("FlexJobApi.Core.UserAuth", "UserAuth") + .WithMany("UserInfos") + .HasForeignKey("UserAuthId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("City"); + + b.Navigation("EducationalBackground"); + + b.Navigation("Enterprise"); + + b.Navigation("PersonalIdentity"); + + b.Navigation("UserAuth"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoBankCard", b => + { + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany() + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoCredential", b => + { + b.HasOne("FlexJobApi.Core.FileVirtualPath", "BackImg") + .WithMany() + .HasForeignKey("BackImgId"); + + b.HasOne("FlexJobApi.Core.FileVirtualPath", "Img") + .WithMany() + .HasForeignKey("ImgId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.DictionaryData", "Type") + .WithMany() + .HasForeignKey("TypeId"); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoCredentials") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BackImg"); + + b.Navigation("Img"); + + b.Navigation("Type"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoDepartment", b => + { + b.HasOne("FlexJobApi.Core.Department", "Department") + .WithMany() + .HasForeignKey("DepartmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoDepartments") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Department"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoExpectJob", b => + { + b.HasOne("FlexJobApi.Core.DictionaryData", "PersonalIdentity") + .WithMany() + .HasForeignKey("PersonalIdentityId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoExpectJobs") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PersonalIdentity"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoPhoto", b => + { + b.HasOne("FlexJobApi.Core.FileVirtualPath", "Img") + .WithMany() + .HasForeignKey("ImgId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany() + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Img"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfoRole", b => + { + b.HasOne("FlexJobApi.Core.Role", "Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FlexJobApi.Core.UserInfo", "UserInfo") + .WithMany("UserInfoRoles") + .HasForeignKey("UserInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Role"); + + b.Navigation("UserInfo"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Department", b => + { + b.Navigation("Childrens"); + }); + + modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b => + { + b.Navigation("Childrens"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Enterprise", b => + { + b.Navigation("Departments"); + + b.Navigation("UserInfos"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Menu", b => + { + b.Navigation("Childrens"); + }); + + modelBuilder.Entity("FlexJobApi.Core.Role", b => + { + b.Navigation("RoleMenus"); + + b.Navigation("RoleResources"); + }); + + modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b => + { + b.Navigation("Benefits"); + + b.Navigation("CredentialLimits"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserAuth", b => + { + b.Navigation("UserInfos"); + }); + + modelBuilder.Entity("FlexJobApi.Core.UserInfo", b => + { + b.Navigation("UserInfoCredentials"); + + b.Navigation("UserInfoDepartments"); + + b.Navigation("UserInfoExpectJobs"); + + b.Navigation("UserInfoRoles"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.cs b/FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.cs new file mode 100644 index 0000000..288e011 --- /dev/null +++ b/FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.cs @@ -0,0 +1,121 @@ +锘縰sing System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace FlexJobApi.Database.Migrations.Migrations +{ + /// <inheritdoc /> + public partial class UpdateRole : Migration + { + /// <inheritdoc /> + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_RoleResource_Menu_MenuId", + table: "RoleResource"); + + migrationBuilder.DropIndex( + name: "IX_RoleResource_MenuId", + table: "RoleResource"); + + migrationBuilder.DropColumn( + name: "MenuId", + table: "RoleResource"); + + migrationBuilder.AlterColumn<int>( + name: "DataPower", + table: "RoleResource", + type: "int", + nullable: false, + defaultValue: 0, + comment: "鏁版嵁鏉冮檺", + oldClrType: typeof(int), + oldType: "int", + oldNullable: true, + oldComment: "鏁版嵁鏉冮檺"); + + migrationBuilder.AddColumn<Guid>( + name: "ResourceId", + table: "RoleResource", + type: "uniqueidentifier", + nullable: false, + defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), + comment: "璧勬簮Id"); + + migrationBuilder.UpdateData( + table: "UserAuth", + keyColumn: "Id", + keyValue: new Guid("11111111-1111-1111-1111-111111111111"), + columns: new[] { "Password", "UserName" }, + values: new object[] { "iEYggKrMhQ3ASUGLobra1w==:fn/DsMJUbD9FGpvBvR3moMpMPptdxzZlourPVhU479I=", "system" }); + + migrationBuilder.CreateIndex( + name: "IX_RoleResource_ResourceId", + table: "RoleResource", + column: "ResourceId"); + + migrationBuilder.AddForeignKey( + name: "FK_RoleResource_Resource_ResourceId", + table: "RoleResource", + column: "ResourceId", + principalTable: "Resource", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + + /// <inheritdoc /> + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_RoleResource_Resource_ResourceId", + table: "RoleResource"); + + migrationBuilder.DropIndex( + name: "IX_RoleResource_ResourceId", + table: "RoleResource"); + + migrationBuilder.DropColumn( + name: "ResourceId", + table: "RoleResource"); + + migrationBuilder.AlterColumn<int>( + name: "DataPower", + table: "RoleResource", + type: "int", + nullable: true, + comment: "鏁版嵁鏉冮檺", + oldClrType: typeof(int), + oldType: "int", + oldComment: "鏁版嵁鏉冮檺"); + + migrationBuilder.AddColumn<Guid>( + name: "MenuId", + table: "RoleResource", + type: "uniqueidentifier", + nullable: false, + defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), + comment: "鑿滃崟Id"); + + migrationBuilder.UpdateData( + table: "UserAuth", + keyColumn: "Id", + keyValue: new Guid("11111111-1111-1111-1111-111111111111"), + columns: new[] { "Password", "UserName" }, + values: new object[] { null, "admin" }); + + migrationBuilder.CreateIndex( + name: "IX_RoleResource_MenuId", + table: "RoleResource", + column: "MenuId"); + + migrationBuilder.AddForeignKey( + name: "FK_RoleResource_Menu_MenuId", + table: "RoleResource", + column: "MenuId", + principalTable: "Menu", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + } +} diff --git a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs index c866ce6..8ec9cca 100644 --- a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs +++ b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs @@ -813,7 +813,7 @@ .HasColumnType("uniqueidentifier") .HasComment("鍒涘缓鎿嶄綔浜�"); - b.Property<int?>("DataPower") + b.Property<int>("DataPower") .HasColumnType("int") .HasComment("鏁版嵁鏉冮檺"); @@ -821,9 +821,9 @@ .HasColumnType("bit") .HasComment("鏄惁鍒犻櫎"); - b.Property<Guid>("MenuId") + b.Property<Guid>("ResourceId") .HasColumnType("uniqueidentifier") - .HasComment("鑿滃崟Id"); + .HasComment("璧勬簮Id"); b.Property<Guid>("RoleId") .HasColumnType("uniqueidentifier") @@ -846,7 +846,7 @@ b.HasKey("Id"); - b.HasIndex("MenuId"); + b.HasIndex("ResourceId"); b.HasIndex("RoleId"); @@ -1235,8 +1235,9 @@ IsDeleted = false, IsReal = false, Name = "绠$悊鍛�", + Password = "iEYggKrMhQ3ASUGLobra1w==:fn/DsMJUbD9FGpvBvR3moMpMPptdxzZlourPVhU479I=", Sort = 0, - UserName = "admin" + UserName = "system" }); }); @@ -1813,9 +1814,9 @@ modelBuilder.Entity("FlexJobApi.Core.RoleResource", b => { - b.HasOne("FlexJobApi.Core.Menu", "Menu") + b.HasOne("FlexJobApi.Core.Resource", "Resource") .WithMany() - .HasForeignKey("MenuId") + .HasForeignKey("ResourceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); @@ -1825,7 +1826,7 @@ .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("Menu"); + b.Navigation("Resource"); b.Navigation("Role"); }); diff --git a/FlexJobApi.User.Application/Auths/AuthAppService.cs b/FlexJobApi.User.Application/Auths/AuthAppService.cs index f5764ff..5eccb25 100644 --- a/FlexJobApi.User.Application/Auths/AuthAppService.cs +++ b/FlexJobApi.User.Application/Auths/AuthAppService.cs @@ -22,7 +22,7 @@ /// <param name="query"></param> /// <returns></returns> [AllowAnonymous] - public Task<GetAliyunOSSAcsQueryResult> GetAliyunOSSAcs([FromQuery] GetAliyunOSSAcsQuery query) + public Task<GetAliyunOSSAcsQueryResult> GetAliyunOSSAcs(GetAliyunOSSAcsQuery query) { return mediator.Send(query); } diff --git a/FlexJobApi.User.Application/FlexJobApi.User.Application.xml b/FlexJobApi.User.Application/FlexJobApi.User.Application.xml index 0978003..c12e7f6 100644 --- a/FlexJobApi.User.Application/FlexJobApi.User.Application.xml +++ b/FlexJobApi.User.Application/FlexJobApi.User.Application.xml @@ -305,5 +305,43 @@ <member name="M:FlexJobApi.User.Application.GetRolesQueryHandler.Handle(FlexJobApi.Core.GetRolesQuery,System.Threading.CancellationToken)"> <inheritdoc/> </member> + <member name="T:FlexJobApi.User.Application.RoleAppService"> + <summary> + 瑙掕壊 + </summary> + </member> + <member name="M:FlexJobApi.User.Application.RoleAppService.#ctor(MediatR.IMediator)"> + <summary> + 瑙掕壊 + </summary> + </member> + <member name="M:FlexJobApi.User.Application.RoleAppService.GetRoles(FlexJobApi.Core.GetRolesQuery)"> + <summary> + 鏌ヨ瑙掕壊鍒楄〃 + </summary> + <param name="query"></param> + <returns></returns> + </member> + <member name="M:FlexJobApi.User.Application.RoleAppService.GetRole(FlexJobApi.Core.GetRoleQuery)"> + <summary> + 鏌ヨ瑙掕壊璇︽儏 + </summary> + <param name="query"></param> + <returns></returns> + </member> + <member name="M:FlexJobApi.User.Application.RoleAppService.DeleteRole(FlexJobApi.Core.DeleteRoleCommand)"> + <summary> + 鍒犻櫎瑙掕壊 + </summary> + <param name="command"></param> + <returns></returns> + </member> + <member name="M:FlexJobApi.User.Application.RoleAppService.SaveRole(FlexJobApi.Core.SaveRoleCommand)"> + <summary> + 淇濆瓨瑙掕壊 + </summary> + <param name="command"></param> + <returns></returns> + </member> </members> </doc> diff --git a/FlexJobApi.User.Application/Menus/MenuAppService.cs b/FlexJobApi.User.Application/Menus/MenuAppService.cs index 01fe257..e425eb6 100644 --- a/FlexJobApi.User.Application/Menus/MenuAppService.cs +++ b/FlexJobApi.User.Application/Menus/MenuAppService.cs @@ -26,7 +26,7 @@ /// </summary> /// <param name="query"></param> /// <returns></returns> - public Task<List<GetMenusQueryResultItem>> GetMenus([FromQuery] GetMenusQuery query) + public Task<List<GetMenusQueryResultItem>> GetMenus(GetMenusQuery query) { return mediator.Send(query); } @@ -36,7 +36,7 @@ /// </summary> /// <param name="query"></param> /// <returns></returns> - public Task<GetMenuQueryResult> GetMenu([FromQuery] GetMenuQuery query) + public Task<GetMenuQueryResult> GetMenu(GetMenuQuery query) { return mediator.Send(query); } diff --git a/FlexJobApi.User.Application/Resources/Queries/GetResourceFieldsQueryHandler.cs b/FlexJobApi.User.Application/Resources/Queries/GetResourceFieldsQueryHandler.cs index b22e8e5..c2c5001 100644 --- a/FlexJobApi.User.Application/Resources/Queries/GetResourceFieldsQueryHandler.cs +++ b/FlexJobApi.User.Application/Resources/Queries/GetResourceFieldsQueryHandler.cs @@ -45,7 +45,7 @@ && requestType.BaseType.GetGenericTypeDefinition() == typeof(PagedListQuery<,>)) { var pagedListItemType = requestType.BaseType.GenericTypeArguments[1]; - return await GetFields(requestType, xmlDoc, []); + return await GetFields(pagedListItemType, xmlDoc, []); } else if (requestType.Name.EndsWith("Command")) { diff --git a/FlexJobApi.User.Application/Resources/ResourceAppService.cs b/FlexJobApi.User.Application/Resources/ResourceAppService.cs index 8737eb6..dc6a671 100644 --- a/FlexJobApi.User.Application/Resources/ResourceAppService.cs +++ b/FlexJobApi.User.Application/Resources/ResourceAppService.cs @@ -18,7 +18,7 @@ /// </summary> /// <param name="query"></param> /// <returns></returns> - public Task<List<GetResourcesQueryResultItem>> GetResources([FromQuery] GetResourcesQuery query) + public Task<List<GetResourcesQueryResultItem>> GetResources(GetResourcesQuery query) { return mediator.Send(query); } @@ -28,7 +28,7 @@ /// </summary> /// <param name="query"></param> /// <returns></returns> - public Task<List<GetResourceFieldsQueryResultItem>> GetResourceFields([FromQuery] GetResourceFieldsQuery query) + public Task<List<GetResourceFieldsQueryResultItem>> GetResourceFields(GetResourceFieldsQuery query) { return mediator.Send(query); } diff --git a/FlexJobApi.User.Application/Roles/Commands/SaveRoleCommandHandler.cs b/FlexJobApi.User.Application/Roles/Commands/SaveRoleCommandHandler.cs index 781349f..5d952ac 100644 --- a/FlexJobApi.User.Application/Roles/Commands/SaveRoleCommandHandler.cs +++ b/FlexJobApi.User.Application/Roles/Commands/SaveRoleCommandHandler.cs @@ -32,6 +32,37 @@ .FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken); if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "瑙掕壊"); request.Adapt(entity); + entity.RoleMenus = entity.RoleMenus.Where(it => request.MenuIds.Contains(it.MenuId)).ToList(); + foreach (var menuId in request.MenuIds) + { + var entityRoleMenu = entity.RoleMenus.FirstOrDefault(it => it.MenuId == menuId); + if (entityRoleMenu == null) + { + entityRoleMenu = new RoleMenu + { + MenuId = menuId + }; + entity.RoleMenus.Add(entityRoleMenu); + } + } + entity.RoleResources = entity.RoleResources.Where(it => request.Resources.Any(r => r.ResourceId == it.ResourceId)).ToList(); + foreach (var roleResource in entity.RoleResources) + { + var entityRoleResource = entity.RoleResources.FirstOrDefault(it => it.ResourceId == roleResource.ResourceId); + if (entityRoleResource == null) + { + entityRoleResource = new RoleResource + { + ResourceId = roleResource.ResourceId, + DataPower = roleResource.DataPower + }; + entity.RoleResources.Add(roleResource); + } + else + { + entityRoleResource.DataPower = roleResource.DataPower; + } + } await rep.UpdateAsync(entity); return entity.Id; } diff --git a/FlexJobApi.User.Application/Roles/RoleAppService.cs b/FlexJobApi.User.Application/Roles/RoleAppService.cs new file mode 100644 index 0000000..7161fb8 --- /dev/null +++ b/FlexJobApi.User.Application/Roles/RoleAppService.cs @@ -0,0 +1,71 @@ +锘縰sing FlexJobApi.Core; +using Furion.DynamicApiController; +using MediatR; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; + +namespace FlexJobApi.User.Application +{ + /// <summary> + /// 瑙掕壊 + /// </summary> + [Route("api/user/[controller]")] + public class RoleAppService(IMediator mediator) : IDynamicApiController + { + private readonly IMediator mediator = mediator; + + #region 鏌ヨ + + /// <summary> + /// 鏌ヨ瑙掕壊鍒楄〃 + /// </summary> + /// <param name="query"></param> + /// <returns></returns> + public Task<PagedListQueryResult<GetRolesQueryResultItem>> GetRoles(GetRolesQuery query) + { + return mediator.Send(query); + } + + /// <summary> + /// 鏌ヨ瑙掕壊璇︽儏 + /// </summary> + /// <param name="query"></param> + /// <returns></returns> + public Task<GetRoleQueryResult> GetRole(GetRoleQuery query) + { + return mediator.Send(query); + } + + #endregion + + #region 鍐欏叆 + + /// <summary> + /// 鍒犻櫎瑙掕壊 + /// </summary> + /// <param name="command"></param> + /// <returns></returns> + public Task<int> DeleteRole(DeleteRoleCommand command) + { + return mediator.Send(command); + } + + /// <summary> + /// 淇濆瓨瑙掕壊 + /// </summary> + /// <param name="command"></param> + /// <returns></returns> + public Task<Guid> SaveRole(SaveRoleCommand command) + { + return mediator.Send(command); + } + + #endregion + + } +} -- Gitblit v1.9.1