sunpengfei
2025-08-04 723bfd806486bb870f0003f2cfbf61476a4e70f6
pref:资源接口
3个文件已添加
11个文件已修改
2444 ■■■■■ 已修改文件
FlexJobApi.Application/Dictionaries/DictionaryAppService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/FlexJobApi.Core.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/settings.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.Designer.cs 2145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.cs 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/Auths/AuthAppService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/FlexJobApi.User.Application.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/Menus/MenuAppService.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/Resources/Queries/GetResourceFieldsQueryHandler.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/Resources/ResourceAppService.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/Roles/Commands/SaveRoleCommandHandler.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.User.Application/Roles/RoleAppService.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
        }
FlexJobApi.Core/FlexJobApi.Core.xml
@@ -3050,7 +3050,7 @@
            执行成功
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.FriendlyResult`1.Errors">
        <member name="P:FlexJobApi.Core.FriendlyResult`1.Msg">
            <summary>
            错误信息
            </summary>
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));
        }
FlexJobApi.Core/settings.json
@@ -17,7 +17,8 @@
  "DynamicApiControllerSettings": {
    "LowercaseRoute": false,
    "KeepName": true,
    "AsLowerCamelCase": true
    "AsLowerCamelCase": true,
    "ModelToQuery": true
  },
  "CorsAccessorSettings": {
    "WithExposedHeaders": [
FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.Designer.cs
New file
@@ -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("法人或经办人银行卡照片Id");
                    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("统一社会信用代码");
                    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("任务地点所属区域Id");
                    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("银行卡照片Id");
                    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("微信开放Id");
                    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("证书正面照片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
        }
    }
}
FlexJobApi.Database.Migrations/Migrations/20250804084910_UpdateRole.cs
New file
@@ -0,0 +1,121 @@
using 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);
        }
    }
}
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");
                });
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);
        }
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>
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);
        }
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"))
            {
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);
        }
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;
            }
FlexJobApi.User.Application/Roles/RoleAppService.cs
New file
@@ -0,0 +1,71 @@
using FlexJobApi.Core;
using Furion.DynamicApiController;
using MediatR;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
namespace FlexJobApi.User.Application
{
    /// <summary>
    /// 角色
    /// </summary>
    [Route("api/user/[controller]")]
    public class RoleAppService(IMediator mediator) : IDynamicApiController
    {
        private readonly IMediator mediator = mediator;
        #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
    }
}