sunpengfei
2025-08-19 e94d90fd7d2ec6fcb41fb6aa6fc28e3f9d39ba95
feat:开发
11个文件已添加
18个文件已修改
4221 ■■■■■ 已修改文件
FlexJobApi.CommonServer.Application/FlexJobApi.CommonServer.Application.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.CommonServer.Application/LogRecords/Commands/ResendResourceCommandHandler.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.CommonServer.Application/LogRecords/Queries/GetTraceIdLogQueryHandler.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Entities/CommonServer/LogRecords/ResourceLog.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Enums/Common/EnumResourceController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Enums/Common/EnumResourceService.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/FlexJobApi.Core.xml 360 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/CommonServer/LogRecords/Commands/ResendResourceCommand.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/CommonServer/LogRecords/Queries/GetDbAuditLogsQuery.cs 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/CommonServer/LogRecords/Queries/GetExceptionLogsQuery.cs 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/CommonServer/LogRecords/Queries/GetResourceLogsQuery.cs 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/CommonServer/LogRecords/Queries/GetTraceIdLogQuery.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/FlexJobServer/Tasks/Repositories/TaskInfoRepository.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Utils/ResourceUtils/ResourceActionFilter.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/settings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Database.Migrations/Migrations/20250819025001_UpdateTaskInfo0819.Designer.cs 2613 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Database.Migrations/Migrations/20250819025001_UpdateTaskInfo0819.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Database.Migrations/Migrations/LogDb/20250819015802_UpdateResource0819.Designer.cs 432 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Database.Migrations/Migrations/LogDb/20250819015802_UpdateResource0819.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Database.Migrations/Migrations/LogDb/LogDbContextModelSnapshot.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Database.Migrations/REDEME.MD 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Web.Entry/appsettings.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.CommonServer.Application/FlexJobApi.CommonServer.Application.xml
@@ -167,6 +167,42 @@
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="T:FlexJobApi.CommonServer.Application.ResendResourceCommandHandler">
            <summary>
            重新发送资源
            </summary>
        </member>
        <member name="M:FlexJobApi.CommonServer.Application.ResendResourceCommandHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Entities.Common.ResourceLog,FlexJobApi.Core.LogDbContextLocator},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Resource},FlexJobApi.Core.ResourceHttpUtils)">
            <summary>
            重新发送资源
            </summary>
        </member>
        <member name="M:FlexJobApi.CommonServer.Application.ResendResourceCommandHandler.Handle(FlexJobApi.Core.ResendResourceCommand,System.Threading.CancellationToken)">
            <summary>
            重新发送资源
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="T:FlexJobApi.CommonServer.Application.GetTraceIdLogQueryHandler">
            <summary>
            跟踪Id日志查询
            </summary>
        </member>
        <member name="M:FlexJobApi.CommonServer.Application.GetTraceIdLogQueryHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Entities.Common.ResourceLog,FlexJobApi.Core.LogDbContextLocator},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.ExceptionLog,FlexJobApi.Core.LogDbContextLocator},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.DbAuditLog,FlexJobApi.Core.LogDbContextLocator},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.User})">
            <summary>
            跟踪Id日志查询
            </summary>
        </member>
        <member name="M:FlexJobApi.CommonServer.Application.GetTraceIdLogQueryHandler.Handle(FlexJobApi.Core.GetTraceIdLogQuery,System.Threading.CancellationToken)">
            <summary>
            跟踪Id日志查询
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="T:FlexJobApi.CommonServer.Application.OcrCommandHandler">
            <summary>
            文字识别营业执照
FlexJobApi.CommonServer.Application/LogRecords/Commands/ResendResourceCommandHandler.cs
New file
@@ -0,0 +1,62 @@
using FlexJobApi.Core;
using FlexJobApi.Core.Entities.Common;
using Furion.DatabaseAccessor;
using Furion.FriendlyException;
using MediatR;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.CommonServer.Application
{
    /// <summary>
    /// 重新发送资源
    /// </summary>
    public class ResendResourceCommandHandler(
            IRepository<ResourceLog, LogDbContextLocator> repResourceLog,
            IRepository<Resource> repResource,
            ResourceHttpUtils resourceHttpUtils
        ) :
        IRequestHandler<ResendResourceCommand, string>
    {
        private readonly IRepository<ResourceLog, LogDbContextLocator> repResourceLog = repResourceLog;
        private readonly IRepository<Resource> repResource = repResource;
        private readonly ResourceHttpUtils resourceHttpUtils = resourceHttpUtils;
        /// <summary>
        /// 重新发送资源
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<string> Handle(ResendResourceCommand request, CancellationToken cancellationToken)
        {
            var log = await repResourceLog.AsQueryable().AsNoTracking()
                .Where(it => it.Id == request.Id)
                .Select(it => new
                {
                    it.Method,
                    it.Path,
                    it.Request,
                    it.CreatedUserId
                })
                .FirstOrDefaultAsync();
            if (log == null) throw Oops.Oh(EnumErrorCodeType.s404, "日志");
            var resource = await repResource.AsQueryable().AsNoTracking()
                .Where(it => it.Method == log.Method && it.Route == log.Path)
                .FirstOrDefaultAsync();
            var paramters = log.Request
                .JsonTo(new
                {
                    request = new object()
                })
                .request
                .ToJson();
            var result = await resourceHttpUtils.SendHttpAsync(resource, paramters);
            return result;
        }
    }
}
FlexJobApi.CommonServer.Application/LogRecords/Queries/GetTraceIdLogQueryHandler.cs
New file
@@ -0,0 +1,81 @@
using FlexJobApi.Core;
using FlexJobApi.Core.Entities.Common;
using Furion.DatabaseAccessor;
using Furion.LinqBuilder;
using Mapster;
using MediatR;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.CommonServer.Application
{
    /// <summary>
    /// 跟踪Id日志查询
    /// </summary>
    public class GetTraceIdLogQueryHandler(
            IRepository<ResourceLog, LogDbContextLocator> repResourceLog,
            IRepository<ExceptionLog, LogDbContextLocator> repExceptionLog,
            IRepository<DbAuditLog, LogDbContextLocator> repDbAuditLog,
            IRepository<User> repUser
        ) :
        IRequestHandler<GetTraceIdLogQuery, GetTraceIdLogQueryResult>
    {
        private readonly IRepository<ResourceLog, LogDbContextLocator> repResourceLog = repResourceLog;
        private readonly IRepository<ExceptionLog, LogDbContextLocator> repExceptionLog = repExceptionLog;
        private readonly IRepository<DbAuditLog, LogDbContextLocator> repDbAuditLog = repDbAuditLog;
        private readonly IRepository<User> repUser = repUser;
        /// <summary>
        /// 跟踪Id日志查询
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<GetTraceIdLogQueryResult> Handle(GetTraceIdLogQuery request, CancellationToken cancellationToken)
        {
            var result = new GetTraceIdLogQueryResult();
            result.ResourceLogs = await repResourceLog.AsQueryable().AsNoTracking()
                .Where(it => it.TraceId == request.TraceId)
                .ProjectToType<GetResourceLogsQueryResultItem>()
                .ToListAsync();
            result.ExceptionLogs = await repExceptionLog.AsQueryable().AsNoTracking()
                .Where(it => it.TraceId == request.TraceId)
                .ProjectToType<GetExceptionLogsQueryResultItem>()
                .ToListAsync();
            result.DbAuditLogs = await repDbAuditLog.AsQueryable().AsNoTracking()
                .Where(it => it.TraceId == request.TraceId)
                .ProjectToType<GetDbAuditLogsQueryResultItem>()
                .ToListAsync();
            var userIds = result.ResourceLogs.DistinctSelect(it => it.CreatedUserId.HasValue, it => it.CreatedUserId)
                .Union(result.ExceptionLogs.DistinctSelect(it => it.CreatedUserId.HasValue, it => it.CreatedUserId))
                .Union(result.DbAuditLogs.DistinctSelect(it => it.CreatedUserId.HasValue, it => it.CreatedUserId));
            if (userIds.IsNullOrEmpty())
            {
                var users = await repUser.AsQueryable().AsNoTracking()
                   .Where(it => userIds.Contains(it.Id))
                   .ProjectToType<GetResourceLogsQueryResultItemCreatedUser>()
                   .ToListAsync();
                foreach (var log in result.ResourceLogs)
                {
                    if (log.CreatedUserId.HasValue)
                        log.CreatedUser = users.FirstOrDefault(it => it.Id == log.CreatedUserId);
                }
                foreach (var log in result.ExceptionLogs)
                {
                    if (log.CreatedUserId.HasValue)
                        log.CreatedUser = users.FirstOrDefault(it => it.Id == log.CreatedUserId);
                }
                foreach (var log in result.DbAuditLogs)
                {
                    if (log.CreatedUserId.HasValue)
                        log.CreatedUser = users.FirstOrDefault(it => it.Id == log.CreatedUserId);
                }
            }
            return result;
        }
    }
}
FlexJobApi.Core/Entities/CommonServer/LogRecords/ResourceLog.cs
@@ -63,6 +63,11 @@
        public string RefererUrl { get; set; }
        /// <summary>
        /// 控制台日志
        /// </summary>
        public string ConsoleLogs { get; set; }
        /// <summary>
        /// 耗时毫秒数
        /// </summary>
        public long ElapsedMilliseconds { get; set; }
FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs
@@ -172,11 +172,21 @@
        public EnumTaskSettlementStatus? SettlementStatus { get; set; }
        /// <summary>
        /// 结算时间
        /// </summary>
        public DateTime? SettlementTime { get; set; }
        /// <summary>
        /// 推荐状态
        /// </summary>
        public EnumTaskRecommendStatus RecommendStatus { get; set; }
        /// <summary>
        /// 推荐时间
        /// </summary>
        public DateTime? RecommendTime { get; set; }
        /// <summary>
        /// 用户
        /// </summary>
        public List<TaskInfoUser> TaskInfoUsers { get; set; }
FlexJobApi.Core/Enums/Common/EnumResourceController.cs
@@ -42,6 +42,11 @@
        /// </summary>
        [ResourceController(Service = EnumResourceService.CommonServer)]
        OcrUtils,
        /// <summary>
        /// 日志记录
        /// </summary>
        [ResourceController(Service = EnumResourceService.CommonServer)]
        LogRecords,
        /// <summary>
        /// 用户认证
FlexJobApi.Core/Enums/Common/EnumResourceService.cs
@@ -15,17 +15,17 @@
        /// <summary>
        /// 灵活用工服务
        /// </summary>
        [ResourceService(ApplicationName = "FlexJobApi.FlexJobServer.Application", RouteArea = "flexjob", ServiceName = "Local_FlexJobApi")]
        [ResourceService(ApplicationName = "FlexJobApi.FlexJobServer.Application", RouteArea = "flexjob", ServiceName = "FlexJobServices")]
        FlexJobServer,
        /// <summary>
        /// 通用服务
        /// </summary>
        [ResourceService(ApplicationName = "FlexJobApi.CommonServer.Application", RouteArea = "common", ServiceName = "Local_FlexJobApi")]
        [ResourceService(ApplicationName = "FlexJobApi.CommonServer.Application", RouteArea = "common", ServiceName = "FlexJobServices")]
        CommonServer,
        /// <summary>
        /// 用户服务
        /// </summary>
        [ResourceService(ApplicationName = "FlexJobApi.UserServer.Application", RouteArea = "user", ServiceName = "Local_FlexJobApi")]
        [ResourceService(ApplicationName = "FlexJobApi.UserServer.Application", RouteArea = "user", ServiceName = "FlexJobServices")]
        UserServer
    }
}
FlexJobApi.Core/FlexJobApi.Core.xml
@@ -354,6 +354,11 @@
            来源地址
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.Entities.Common.ResourceLog.ConsoleLogs">
            <summary>
            控制台日志
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.Entities.Common.ResourceLog.ElapsedMilliseconds">
            <summary>
            耗时毫秒数
@@ -869,9 +874,19 @@
            结算状态
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.TaskInfo.SettlementTime">
            <summary>
            结算时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.TaskInfo.RecommendStatus">
            <summary>
            推荐状态
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.TaskInfo.RecommendTime">
            <summary>
            推荐时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.TaskInfo.TaskInfoUsers">
@@ -2532,6 +2547,11 @@
            文字识别
            </summary>
        </member>
        <member name="F:FlexJobApi.Core.EnumResourceController.LogRecords">
            <summary>
            日志记录
            </summary>
        </member>
        <member name="F:FlexJobApi.Core.EnumResourceController.Auth">
            <summary>
            用户认证
@@ -3841,6 +3861,341 @@
        <member name="P:FlexJobApi.Core.GetFileUrlQuery.Url">
            <summary>
            地址
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.ResendResourceCommand">
            <summary>
            重新发送资源
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.ResendResourceCommand.Id">
            <summary>
            资源日志Id
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetDbAuditLogsQuery">
            <summary>
            查询数据库审计日志分页列表
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQuery.TraceId">
            <summary>
            跟踪Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQuery.Keywords">
            <summary>
            关键字
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQuery.CreatedTimeBegin">
            <summary>
            创建时间-起始
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQuery.CreatedTimeEnd">
            <summary>
            创建时间-截止
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetDbAuditLogsQueryResult">
            <summary>
            查询数据库审计日志分页列表-结果
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetDbAuditLogsQueryResultItem">
            <summary>
            查询数据库审计日志分页列表-结果-项
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQueryResultItem.TableName">
            <summary>
            表名
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQueryResultItem.PrimaryKey">
            <summary>
            主键
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQueryResultItem.Operate">
            <summary>
            操作
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQueryResultItem.OldValues">
            <summary>
            旧值
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQueryResultItem.NewValues">
            <summary>
            新值
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQueryResultItem.CreatedUserId">
            <summary>
            操作人Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQueryResultItem.CreatedUser">
            <summary>
            操作人
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetDbAuditLogsQueryResultItem.CreatedTime">
            <summary>
            创建时间
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetExceptionLogsQuery">
            <summary>
            异常日志分页列表查询
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetExceptionLogsQuery.TraceId">
            <summary>
            跟踪Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetExceptionLogsQuery.Keywords">
            <summary>
            关键字
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetExceptionLogsQuery.CreatedTimeBegin">
            <summary>
            创建时间-起始
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetExceptionLogsQuery.CreatedTimeEnd">
            <summary>
            创建时间-截止
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetExceptionLogsQueryResult">
            <summary>
            异常日志分页列表查询-结果
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetExceptionLogsQueryResultItem">
            <summary>
            异常日志分页列表查询-结果-项
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetExceptionLogsQueryResultItem.Type">
            <summary>
            类型
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetExceptionLogsQueryResultItem.Code">
            <summary>
            代码
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetExceptionLogsQueryResultItem.Message">
            <summary>
            消息
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetExceptionLogsQueryResultItem.StackTrace">
            <summary>
            堆栈跟踪
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetExceptionLogsQueryResultItem.CreatedUserId">
            <summary>
            操作人Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetExceptionLogsQueryResultItem.CreatedUser">
            <summary>
            操作人
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetExceptionLogsQueryResultItem.CreatedTime">
            <summary>
            创建时间
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetResourceLogsQuery">
            <summary>
            资源日志分页列表查询
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQuery.TraceId">
            <summary>
            跟踪Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQuery.Keywords">
            <summary>
            关键字
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQuery.CreatedTimeBegin">
            <summary>
            创建时间-起始
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQuery.CreatedTimeEnd">
            <summary>
            创建时间-截止
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetResourceLogsQueryResult">
            <summary>
            资源日志分页列表查询-结果
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetResourceLogsQueryResultItem">
            <summary>
            资源日志分页列表查询-结果-项
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.Id">
            <summary>
            Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.Method">
            <summary>
            请求方式
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.Domain">
            <summary>
            域名
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.Path">
            <summary>
            地址
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.RequestHeaders">
            <summary>
            请求头
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.Request">
            <summary>
            请求参数
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.ResponseHeaders">
            <summary>
            请求头
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.Response">
            <summary>
            响应结果
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.IsSuccess">
            <summary>
            是否成功
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.ClientIpAddress">
            <summary>
            客户端IP地址
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.RefererUrl">
            <summary>
            来源地址
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.ConsoleLogs">
            <summary>
            控制台日志
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.ElapsedMilliseconds">
            <summary>
            耗时毫秒数
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.CreatedUserId">
            <summary>
            操作人Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.CreatedUser">
            <summary>
            操作人
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItem.CreatedTime">
            <summary>
            创建时间
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetResourceLogsQueryResultItemCreatedUser">
            <summary>
            资源日志分页列表查询-结果-项-操作人
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItemCreatedUser.Id">
            <summary>
            Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItemCreatedUser.Type">
            <summary>
            用户类型
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItemCreatedUser.Name">
            <summary>
            姓名
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItemCreatedUser.UserName">
            <summary>
            用户名
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItemCreatedUser.EnterpriseId">
            <summary>
            企业Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetResourceLogsQueryResultItemCreatedUser.EnterpriseEnterpriseName">
            <summary>
            企业全称
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetTraceIdLogQuery">
            <summary>
            跟踪Id日志查询
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetTraceIdLogQuery.TraceId">
            <summary>
            跟踪Id
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetTraceIdLogQueryResult">
            <summary>
            跟踪Id日志查询
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetTraceIdLogQueryResult.ResourceLogs">
            <summary>
            资源日志
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetTraceIdLogQueryResult.ExceptionLogs">
            <summary>
            异常日志
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetTraceIdLogQueryResult.DbAuditLogs">
            <summary>
            数据库审计日志
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetLicenseOcrCommand">
@@ -5491,6 +5846,11 @@
            推荐状态
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.RecommendTime">
            <summary>
            推荐时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.HireStatus">
            <summary>
            录用状态
FlexJobApi.Core/Models/CommonServer/LogRecords/Commands/ResendResourceCommand.cs
New file
@@ -0,0 +1,21 @@
using MediatR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 重新发送资源
    /// </summary>
    [Resource([EnumResourceController.LogRecords])]
    public class ResendResourceCommand : IRequest<string>
    {
        /// <summary>
        /// 资源日志Id
        /// </summary>
        public Guid Id { get; set; }
    }
}
FlexJobApi.Core/Models/CommonServer/LogRecords/Queries/GetDbAuditLogsQuery.cs
New file
@@ -0,0 +1,91 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 查询数据库审计日志分页列表
    /// </summary>
    [Resource([EnumResourceController.LogRecords])]
    public class GetDbAuditLogsQuery : PagedListQuery<GetDbAuditLogsQueryResult, GetDbAuditLogsQueryResultItem>
    {
        /// <summary>
        /// 跟踪Id
        /// </summary>
        public string TraceId { get; set; }
        /// <summary>
        /// 关键字
        /// </summary>
        public string Keywords { get; set; }
        /// <summary>
        /// 创建时间-起始
        /// </summary>
        public DateTime? CreatedTimeBegin { get; set; }
        /// <summary>
        /// 创建时间-截止
        /// </summary>
        public DateTime? CreatedTimeEnd { get; set; }
    }
    /// <summary>
    /// 查询数据库审计日志分页列表-结果
    /// </summary>
    public class GetDbAuditLogsQueryResult : PagedListQueryResult<GetDbAuditLogsQueryResultItem>
    {
    }
    /// <summary>
    /// 查询数据库审计日志分页列表-结果-项
    /// </summary>
    public class GetDbAuditLogsQueryResultItem
    {
        /// <summary>
        /// 表名
        /// </summary>
        public string TableName { get; set; }
        /// <summary>
        /// 主键
        /// </summary>
        public Guid PrimaryKey { get; set; }
        /// <summary>
        /// 操作
        /// </summary>
        public EnumDbAuditOperate Operate { get; set; }
        /// <summary>
        /// 旧值
        /// </summary>
        public string OldValues { get; set; }
        /// <summary>
        /// 新值
        /// </summary>
        public string NewValues { get; set; }
        /// <summary>
        /// 操作人Id
        /// </summary>
        public Guid? CreatedUserId { get; set; }
        /// <summary>
        /// 操作人
        /// </summary>
        public GetResourceLogsQueryResultItemCreatedUser CreatedUser { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTimeOffset CreatedTime { get; set; }
    }
}
FlexJobApi.Core/Models/CommonServer/LogRecords/Queries/GetExceptionLogsQuery.cs
New file
@@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 异常日志分页列表查询
    /// </summary>
    [Resource([EnumResourceController.LogRecords])]
    public class GetExceptionLogsQuery : PagedListQuery<GetExceptionLogsQueryResult, GetExceptionLogsQueryResultItem>
    {
        /// <summary>
        /// 跟踪Id
        /// </summary>
        public string TraceId { get; set; }
        /// <summary>
        /// 关键字
        /// </summary>
        public string Keywords { get; set; }
        /// <summary>
        /// 创建时间-起始
        /// </summary>
        public DateTime? CreatedTimeBegin { get; set; }
        /// <summary>
        /// 创建时间-截止
        /// </summary>
        public DateTime? CreatedTimeEnd { get; set; }
    }
    /// <summary>
    /// 异常日志分页列表查询-结果
    /// </summary>
    public class GetExceptionLogsQueryResult : PagedListQueryResult<GetExceptionLogsQueryResultItem>
    {
    }
    /// <summary>
    /// 异常日志分页列表查询-结果-项
    /// </summary>
    public class GetExceptionLogsQueryResultItem
    {
        /// <summary>
        /// 类型
        /// </summary>
        public string Type { get; set; }
        /// <summary>
        /// 代码
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// 消息
        /// </summary>
        public string Message { get; set; }
        /// <summary>
        /// 堆栈跟踪
        /// </summary>
        public string StackTrace { get; set; }
        /// <summary>
        /// 操作人Id
        /// </summary>
        public Guid? CreatedUserId { get; set; }
        /// <summary>
        /// 操作人
        /// </summary>
        public GetResourceLogsQueryResultItemCreatedUser CreatedUser { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTimeOffset CreatedTime { get; set; }
    }
}
FlexJobApi.Core/Models/CommonServer/LogRecords/Queries/GetResourceLogsQuery.cs
New file
@@ -0,0 +1,169 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 资源日志分页列表查询
    /// </summary>
    [Resource([EnumResourceController.LogRecords])]
    public class GetResourceLogsQuery : PagedListQuery<GetResourceLogsQueryResult, GetResourceLogsQueryResultItem>
    {
        /// <summary>
        /// 跟踪Id
        /// </summary>
        public string TraceId { get; set; }
        /// <summary>
        /// 关键字
        /// </summary>
        public string Keywords { get; set; }
        /// <summary>
        /// 创建时间-起始
        /// </summary>
        public DateTime? CreatedTimeBegin { get; set; }
        /// <summary>
        /// 创建时间-截止
        /// </summary>
        public DateTime? CreatedTimeEnd { get; set; }
    }
    /// <summary>
    /// 资源日志分页列表查询-结果
    /// </summary>
    public class GetResourceLogsQueryResult : PagedListQueryResult<GetResourceLogsQueryResultItem>
    {
    }
    /// <summary>
    /// 资源日志分页列表查询-结果-项
    /// </summary>
    public class GetResourceLogsQueryResultItem
    {
        /// <summary>
        /// Id
        /// </summary>
        public Guid Id { get; set; }
        /// <summary>
        /// 请求方式
        /// </summary>
        public EnumResourceMethod Method { get; set; }
        /// <summary>
        /// 域名
        /// </summary>
        public string Domain { get; set; }
        /// <summary>
        /// 地址
        /// </summary>
        public string Path { get; set; }
        /// <summary>
        /// 请求头
        /// </summary>
        public string RequestHeaders { get; set; }
        /// <summary>
        /// 请求参数
        /// </summary>
        public string Request { get; set; }
        /// <summary>
        /// 请求头
        /// </summary>
        public string ResponseHeaders { get; set; }
        /// <summary>
        /// 响应结果
        /// </summary>
        public string Response { get; set; }
        /// <summary>
        /// 是否成功
        /// </summary>
        public bool IsSuccess { get; set; }
        /// <summary>
        /// 客户端IP地址
        /// </summary>
        public string ClientIpAddress { get; set; }
        /// <summary>
        /// 来源地址
        /// </summary>
        public string RefererUrl { get; set; }
        /// <summary>
        /// 控制台日志
        /// </summary>
        public string ConsoleLogs { get; set; }
        /// <summary>
        /// 耗时毫秒数
        /// </summary>
        public long ElapsedMilliseconds { get; set; }
        /// <summary>
        /// 操作人Id
        /// </summary>
        public Guid? CreatedUserId { get; set; }
        /// <summary>
        /// 操作人
        /// </summary>
        public GetResourceLogsQueryResultItemCreatedUser CreatedUser { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTimeOffset CreatedTime { get; set; }
    }
    /// <summary>
    /// 资源日志分页列表查询-结果-项-操作人
    /// </summary>
    public class GetResourceLogsQueryResultItemCreatedUser
    {
        /// <summary>
        /// Id
        /// </summary>
        public Guid Id { get; set; }
        /// <summary>
        /// 用户类型
        /// </summary>
        public EnumUserType Type { get; set; }
        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 用户名
        /// </summary>
        public string UserName { get; set; }
        /// <summary>
        /// 企业Id
        /// </summary>
        public Guid? EnterpriseId { get; set; }
        /// <summary>
        /// 企业全称
        /// </summary>
        [JsonProperty("enterpriseName")]
        public string EnterpriseEnterpriseName { get; set; }
    }
}
FlexJobApi.Core/Models/CommonServer/LogRecords/Queries/GetTraceIdLogQuery.cs
New file
@@ -0,0 +1,49 @@
using MediatR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 跟踪Id日志查询
    /// </summary>
    [Resource([EnumResourceController.LogRecords])]
    public class GetTraceIdLogQuery : IRequest<GetTraceIdLogQueryResult>
    {
        /// <summary>
        /// 跟踪Id
        /// </summary>
        public string TraceId { get; set; }
    }
    /// <summary>
    /// 跟踪Id日志查询
    /// </summary>
    public class GetTraceIdLogQueryResult
    {
        public GetTraceIdLogQueryResult()
        {
            ResourceLogs = [];
            ExceptionLogs = [];
            DbAuditLogs = [];
        }
        /// <summary>
        /// 资源日志
        /// </summary>
        public List<GetResourceLogsQueryResultItem> ResourceLogs { get; set; }
        /// <summary>
        /// 异常日志
        /// </summary>
        public List<GetExceptionLogsQueryResultItem> ExceptionLogs { get; set; }
        /// <summary>
        /// 数据库审计日志
        /// </summary>
        public List<GetDbAuditLogsQueryResultItem> DbAuditLogs { get; set; }
    }
}
FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs
@@ -247,6 +247,11 @@
        public EnumTaskRecommendStatus RecommendStatus { get; set; }
        /// <summary>
        /// 推荐时间
        /// </summary>
        public DateTime? RecommendTime { get; set; }
        /// <summary>
        /// 录用状态
        /// </summary>
        public EnumTaskUserHireStatus? HireStatus { get; set; }
FlexJobApi.Core/Models/FlexJobServer/Tasks/Repositories/TaskInfoRepository.cs
@@ -29,7 +29,7 @@
            {
                q = q.AsNoTracking();
            }
            q = q.OrderBy(it => it.BeginTime);
            q = q.OrderByDescending(it => it.CreatedTime);
            if (logier != null && logier.Type == EnumUserType.Enterprise)
            {
                q = q.Where(it => it.EnterpriseId == logier.EnterpriseId);
FlexJobApi.Core/Utils/ResourceUtils/ResourceActionFilter.cs
@@ -11,6 +11,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Security.Claims;
using System.Text;
@@ -22,44 +23,60 @@
    {
        public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            var resourceLog = new ResourceLog();
            resourceLog.CreatedTime = DateTimeOffset.Now;
            var stopwatch = Stopwatch.StartNew();
            var serviceScopeFactory = App.GetService<IServiceScopeFactory>();
            var serviceScope = serviceScopeFactory.CreateScope();
            var rep = serviceScope.ServiceProvider.GetRequiredService<IRepository<ResourceLog, LogDbContextLocator>>();
            var logier = JwtUtils.GetCurrentLogier();
            StringWriter consoleWriter = new();
            TextWriter originalConsoleOut = Console.Out;
            resourceLog.Id = IDGen.NextID();
            resourceLog.TraceId = App.GetTraceId();
            resourceLog.Method = EnumUtils.GetEnum<EnumResourceMethod>(context.HttpContext.Request.Method);
            resourceLog.Domain = $"{context.HttpContext.Request.Scheme}://{context.HttpContext.Request.Host}";
            resourceLog.Path = context.HttpContext.Request.Path;
            resourceLog.ClientIpAddress = context.HttpContext.GetRemoteIpAddressToIPv4();
            resourceLog.CreatedUserId = logier?.Id;
            resourceLog.CreatedEnterpriseId = logier?.EnterpriseId;
            resourceLog.Request = context.ActionArguments?.ToJson();
            resourceLog.RequestHeaders = context.HttpContext.Request.Headers.ToJson();
            await rep.InsertNowAsync(resourceLog);
            //============== 这里是执行方法之后获取数据 ====================
            var actionContext = await next();
            resourceLog.UpdatedTime = DateTimeOffset.Now;
            if (actionContext.Result is JsonResult jsonResult)
            try
            {
                resourceLog.Response = jsonResult.Value.ToJson();
                Console.SetOut(consoleWriter);
                var serviceScopeFactory = App.GetService<IServiceScopeFactory>();
                var serviceScope = serviceScopeFactory.CreateScope();
                var rep = serviceScope.ServiceProvider.GetRequiredService<IRepository<ResourceLog, LogDbContextLocator>>();
                var logier = JwtUtils.GetCurrentLogier();
                var resourceLog = new ResourceLog();
                resourceLog.CreatedTime = DateTimeOffset.Now;
                resourceLog.Id = IDGen.NextID();
                resourceLog.TraceId = App.GetTraceId();
                resourceLog.Method = EnumUtils.GetEnum<EnumResourceMethod>(context.HttpContext.Request.Method);
                resourceLog.Domain = $"{context.HttpContext.Request.Scheme}://{context.HttpContext.Request.Host}";
                resourceLog.Path = context.HttpContext.Request.Path;
                resourceLog.ClientIpAddress = context.HttpContext.GetRemoteIpAddressToIPv4();
                resourceLog.CreatedUserId = logier?.Id;
                resourceLog.CreatedEnterpriseId = logier?.EnterpriseId;
                resourceLog.Request = context.ActionArguments?.ToJson();
                resourceLog.RequestHeaders = context.HttpContext.Request.Headers.ToJson();
                Console.SetOut(originalConsoleOut);
                await rep.InsertNowAsync(resourceLog);
                Console.SetOut(consoleWriter);
                //============== 这里是执行方法之后获取数据 ====================
                var actionContext = await next();
                Console.SetOut(originalConsoleOut);
                resourceLog.UpdatedTime = DateTimeOffset.Now;
                if (actionContext.Result is JsonResult jsonResult)
                {
                    resourceLog.Response = jsonResult.Value.ToJson();
                }
                resourceLog.ResponseHeaders = context.HttpContext.Response.Headers.ToJson();
                resourceLog.IsSuccess = actionContext.Exception == null;
                resourceLog.ConsoleLogs = consoleWriter.ToString();
                stopwatch.Stop();
                resourceLog.ElapsedMilliseconds = stopwatch.ElapsedMilliseconds;
                await rep.UpdateNowAsync(resourceLog);
            }
            resourceLog.ResponseHeaders = context.HttpContext.Response.Headers.ToJson();
            resourceLog.IsSuccess = actionContext.Exception == null;
            stopwatch.Stop();
            resourceLog.ElapsedMilliseconds = stopwatch.ElapsedMilliseconds;
            await rep.UpdateNowAsync(resourceLog);
            finally
            {
                Console.SetOut(originalConsoleOut); // 恢复 Console 原始输出流
                consoleWriter.Dispose(); // 释放流资源
            }
        }
    }
}
FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs
@@ -84,6 +84,9 @@
        /// <returns></returns>
        public async Task<string> GetHealthyServiceDomain(string serviceName)
        {
            var env = App.GetConfig<string>("Environment");
            serviceName = $"{env}_{serviceName}";
            var queryResult = await consulClient.Health.Service(serviceName, null, true);
            if (queryResult.StatusCode != System.Net.HttpStatusCode.OK)
                throw Oops.Oh(EnumErrorCodeType.s404, $"微服务{serviceName}");
FlexJobApi.Core/settings.json
@@ -37,7 +37,7 @@
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning",
      "Microsoft.EntityFrameworkCore": "Information"
      "Microsoft.EntityFrameworkCore": "Warning"
    },
    "File": {
      "FileName": "Logs/logs{0:yyyy}{0:MM}{0:dd}.txt",
FlexJobApi.Database.Migrations/Migrations/20250819025001_UpdateTaskInfo0819.Designer.cs
New file
@@ -0,0 +1,2613 @@
// <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("20250819025001_UpdateTaskInfo0819")]
    partial class UpdateTaskInfo0819
    {
        /// <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<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("EnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit");
                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Path")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Remark")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("EnterpriseId");
                    b.HasIndex("ParentId");
                    b.ToTable("Department");
                });
            modelBuilder.Entity("FlexJobApi.Core.DictionaryCategory", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("FieldNames")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<string>("Remark")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("DictionaryCategory");
                });
            modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("CategoryId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<string>("Content")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("Deep")
                        .HasColumnType("int");
                    b.Property<string>("Field1")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Field2")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Field3")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Field4")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Field5")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit");
                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Path")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("CategoryId");
                    b.HasIndex("Code")
                        .IsUnique();
                    b.HasIndex("ParentId");
                    b.ToTable("DictionaryData");
                });
            modelBuilder.Entity("FlexJobApi.Core.Enterprise", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Address")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("BankBranchName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("BankCard")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<string>("BankName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("CityCode")
                        .HasColumnType("nvarchar(128)");
                    b.Property<string>("ContactEmail")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("ContactPhoneNumber")
                        .HasMaxLength(11)
                        .HasColumnType("nvarchar(11)");
                    b.Property<string>("Contacts")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("EnterpriseName")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<string>("EnterpriseType")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("EstablishmentDate")
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("IndustrialParkId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("IndustryTypeCode")
                        .HasColumnType("nvarchar(128)");
                    b.Property<bool>("IsCheckedBankCard")
                        .HasColumnType("bit");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<bool>("IsReal")
                        .HasColumnType("bit");
                    b.Property<string>("LegalIdentity")
                        .HasMaxLength(18)
                        .HasColumnType("nvarchar(18)");
                    b.Property<string>("LegalPerson")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<string>("LicenseImage")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("MainBusiness")
                        .HasColumnType("nvarchar(max)");
                    b.Property<decimal?>("MergeSignCost")
                        .HasColumnType("decimal(18,2)");
                    b.Property<int?>("PayAccess")
                        .HasColumnType("int");
                    b.Property<string>("ProvinceCode")
                        .HasColumnType("nvarchar(128)");
                    b.Property<int?>("RealAccess")
                        .HasColumnType("int");
                    b.Property<decimal?>("RealVerifyCost")
                        .HasColumnType("decimal(18,2)");
                    b.Property<string>("RegisteredCapital")
                        .HasColumnType("nvarchar(max)");
                    b.Property<decimal?>("SignCost")
                        .HasColumnType("decimal(18,2)");
                    b.Property<int?>("SmsAccess")
                        .HasColumnType("int");
                    b.Property<decimal>("SmsCost")
                        .HasColumnType("decimal(18,2)");
                    b.Property<string>("SocietyCreditCode")
                        .IsRequired()
                        .HasMaxLength(18)
                        .HasColumnType("nvarchar(18)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("CityCode");
                    b.HasIndex("IndustryTypeCode");
                    b.HasIndex("ProvinceCode");
                    b.ToTable("Enterprise");
                });
            modelBuilder.Entity("FlexJobApi.Core.EnterpriseAuth", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("BankCard")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<string>("BankCardImg")
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("EnterpriseName")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<int?>("EnterpriseRealMethod")
                        .HasColumnType("int");
                    b.Property<string>("Identity")
                        .HasMaxLength(18)
                        .HasColumnType("nvarchar(18)");
                    b.Property<string>("IdentityBackImg")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("IdentityImg")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<string>("LegalIdentity")
                        .HasMaxLength(18)
                        .HasColumnType("nvarchar(18)");
                    b.Property<string>("LegalPerson")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<string>("LicenseImage")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Name")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<int?>("PersonalRealMethod")
                        .HasColumnType("int");
                    b.Property<string>("PhoneNumber")
                        .HasMaxLength(11)
                        .HasColumnType("nvarchar(11)");
                    b.Property<bool?>("Proxy")
                        .HasColumnType("bit");
                    b.Property<string>("ProxyPowerAttorneyUrl")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("SocietyCreditCode")
                        .IsRequired()
                        .HasMaxLength(18)
                        .HasColumnType("nvarchar(18)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("EnterpriseAuth");
                });
            modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<int?>("Age")
                        .HasColumnType("int");
                    b.Property<DateTime?>("Birthday")
                        .HasColumnType("datetime2");
                    b.Property<string>("ContactPhoneNumber")
                        .HasMaxLength(11)
                        .HasColumnType("nvarchar(11)");
                    b.Property<string>("ContractUrl")
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("EnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int?>("EnterpriseSignContractStatus")
                        .HasColumnType("int");
                    b.Property<DateTime?>("EnterpriseSignContractTime")
                        .HasColumnType("datetime2");
                    b.Property<int?>("Gender")
                        .HasColumnType("int");
                    b.Property<string>("Identity")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("IdentityBackImg")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("IdentityImg")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<string>("Name")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("UserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int?>("UserSignContractStatus")
                        .HasColumnType("int");
                    b.Property<DateTime?>("UserSignContractTime")
                        .HasColumnType("datetime2");
                    b.HasKey("Id");
                    b.HasIndex("EnterpriseId");
                    b.HasIndex("UserId");
                    b.ToTable("EnterpriseEmployee");
                });
            modelBuilder.Entity("FlexJobApi.Core.EnterpriseUserCollect", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTime?>("CollectedTime")
                        .HasColumnType("datetime2");
                    b.Property<DateTime?>("ContactedTime")
                        .HasColumnType("datetime2");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("EnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsCollected")
                        .HasColumnType("bit");
                    b.Property<bool>("IsContacted")
                        .HasColumnType("bit");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("EnterpriseId");
                    b.HasIndex("UserId");
                    b.ToTable("EnterpriseUserCollect");
                });
            modelBuilder.Entity("FlexJobApi.Core.Menu", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("ClientType")
                        .HasColumnType("int");
                    b.Property<string>("Code")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Group")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Icon")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IsCache")
                        .HasColumnType("bit");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit");
                    b.Property<string>("Location")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Path")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Remark")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Type")
                        .HasColumnType("int");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Url")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("UserType")
                        .HasColumnType("int");
                    b.Property<int>("VisitLevel")
                        .HasColumnType("int");
                    b.Property<string>("Width")
                        .HasColumnType("nvarchar(max)");
                    b.HasKey("Id");
                    b.HasIndex("ParentId");
                    b.ToTable("Menu");
                });
            modelBuilder.Entity("FlexJobApi.Core.Resource", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("ActionName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("ActionSummary")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("AllowAnonymous")
                        .HasColumnType("bit");
                    b.Property<string>("ApplicationName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Code")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Controller")
                        .HasColumnType("int");
                    b.Property<string>("ControllerSummary")
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("DynamicAssemblyName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("FileUpload")
                        .HasColumnType("bit");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<bool>("IsExpired")
                        .HasColumnType("bit");
                    b.Property<int>("Method")
                        .HasColumnType("int");
                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("RequestTypeFullName")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("RequestTypeName")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("ResponseTypeFullName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("ResponseTypeName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Route")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("RouteArea")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Service")
                        .HasColumnType("int");
                    b.Property<string>("ServiceName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("Resource");
                });
            modelBuilder.Entity("FlexJobApi.Core.Role", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("ClientType")
                        .HasColumnType("int");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("DataPower")
                        .HasColumnType("int");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit");
                    b.Property<int>("MinLevel")
                        .HasColumnType("int");
                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<string>("Remark")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("UserType")
                        .HasColumnType("int");
                    b.HasKey("Id");
                    b.ToTable("Role");
                });
            modelBuilder.Entity("FlexJobApi.Core.RoleMenu", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<Guid>("MenuId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("RoleId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("MenuId");
                    b.HasIndex("RoleId");
                    b.ToTable("RoleMenu");
                });
            modelBuilder.Entity("FlexJobApi.Core.RoleResource", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("DataPower")
                        .HasColumnType("int");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<Guid>("ResourceId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("RoleId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("ResourceId");
                    b.HasIndex("RoleId");
                    b.ToTable("RoleResource");
                });
            modelBuilder.Entity("FlexJobApi.Core.ScheduleJobDetail", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("AssemblyName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("Concurrent")
                        .HasColumnType("bit");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Description")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("GroupName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IncludeAnnotations")
                        .HasColumnType("bit");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<string>("JobId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("JobType")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Properties")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("ScheduleJobDetail");
                });
            modelBuilder.Entity("FlexJobApi.Core.ScheduleJobTrigger", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Args")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("AssemblyName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Description")
                        .HasColumnType("nvarchar(max)");
                    b.Property<long>("ElapsedTime")
                        .HasColumnType("bigint");
                    b.Property<DateTime?>("EndTime")
                        .HasColumnType("datetime2");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<string>("JobId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTime?>("LastRunTime")
                        .HasColumnType("datetime2");
                    b.Property<long>("MaxNumberOfErrors")
                        .HasColumnType("bigint");
                    b.Property<long>("MaxNumberOfRuns")
                        .HasColumnType("bigint");
                    b.Property<DateTime?>("NextRunTime")
                        .HasColumnType("datetime2");
                    b.Property<long>("NumRetries")
                        .HasColumnType("bigint");
                    b.Property<long>("NumberOfErrors")
                        .HasColumnType("bigint");
                    b.Property<long>("NumberOfRuns")
                        .HasColumnType("bigint");
                    b.Property<bool>("ResetOnlyOnce")
                        .HasColumnType("bit");
                    b.Property<string>("Result")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("RetryTimeout")
                        .HasColumnType("int");
                    b.Property<bool>("RunOnStart")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<bool>("StartNow")
                        .HasColumnType("bit");
                    b.Property<DateTime?>("StartTime")
                        .HasColumnType("datetime2");
                    b.Property<long>("Status")
                        .HasColumnType("bigint");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("TriggerId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("TriggerType")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("ScheduleJobTrigger");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("AddressDetail")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("AddressName")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("AgeMaxLimit")
                        .HasColumnType("int");
                    b.Property<int>("AgeMinLimit")
                        .HasColumnType("int");
                    b.Property<DateTime>("BeginTime")
                        .HasColumnType("datetime2");
                    b.Property<int>("BillingMethod")
                        .HasColumnType("int");
                    b.Property<int?>("CheckReceiveStatus")
                        .HasColumnType("int");
                    b.Property<DateTime?>("CheckReceiveTime")
                        .HasColumnType("datetime2");
                    b.Property<string>("CityCode")
                        .HasColumnType("nvarchar(128)");
                    b.Property<string>("Code")
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTime>("EndTime")
                        .HasColumnType("datetime2");
                    b.Property<Guid>("EnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("GenderLimit")
                        .HasColumnType("int");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<DateTime?>("LastCheckReceiveTime")
                        .HasColumnType("datetime2");
                    b.Property<DateTime?>("LastSubmitTime")
                        .HasColumnType("datetime2");
                    b.Property<decimal?>("Latitude")
                        .HasColumnType("decimal(18,6)");
                    b.Property<decimal?>("Longitude")
                        .HasColumnType("decimal(18,6)");
                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("ProvinceCode")
                        .HasColumnType("nvarchar(128)");
                    b.Property<int>("RecommendStatus")
                        .HasColumnType("int");
                    b.Property<DateTime?>("RecommendTime")
                        .HasColumnType("datetime2");
                    b.Property<int>("ReleaseStatus")
                        .HasColumnType("int");
                    b.Property<decimal>("ServiceFee")
                        .HasColumnType("decimal(18,2)");
                    b.Property<int>("SettlementCycle")
                        .HasColumnType("int");
                    b.Property<int?>("SettlementStatus")
                        .HasColumnType("int");
                    b.Property<DateTime?>("SettlementTime")
                        .HasColumnType("datetime2");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<int>("Status")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("CityCode");
                    b.HasIndex("EnterpriseId");
                    b.HasIndex("ProvinceCode");
                    b.ToTable("TaskInfo");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("BenefitCode")
                        .IsRequired()
                        .HasColumnType("nvarchar(128)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<Guid>("TaskInfoId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("BenefitCode");
                    b.HasIndex("TaskInfoId");
                    b.ToTable("TaskInfoBenefit");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoCredentialLimit", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<Guid>("TaskInfoId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("TypeCode")
                        .IsRequired()
                        .HasColumnType("nvarchar(128)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("TaskInfoId");
                    b.HasIndex("TypeCode");
                    b.ToTable("TaskInfoCredentialLimit");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<int?>("ArrangeStatus")
                        .HasColumnType("int");
                    b.Property<DateTime?>("ArrangeTime")
                        .HasColumnType("datetime2");
                    b.Property<int?>("CheckReceiveStatus")
                        .HasColumnType("int");
                    b.Property<DateTime?>("CheckReceiveTime")
                        .HasColumnType("datetime2");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("EnterpriseEmployeeId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("HireStatus")
                        .HasColumnType("int");
                    b.Property<DateTime?>("HireTime")
                        .HasColumnType("datetime2");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<DateTime?>("LastCheckReceiveTime")
                        .HasColumnType("datetime2");
                    b.Property<DateTime?>("LastSubmitTime")
                        .HasColumnType("datetime2");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<Guid>("TaskInfoId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("EnterpriseEmployeeId");
                    b.HasIndex("TaskInfoId");
                    b.ToTable("TaskInfoUser");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("CheckReceiveStatus")
                        .HasColumnType("int");
                    b.Property<DateTime?>("CheckReceiveTime")
                        .HasColumnType("datetime2");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTime>("Date")
                        .HasColumnType("datetime2");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<Guid>("TaskInfoUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("TaskInfoUserId");
                    b.ToTable("TaskInfoUserSubmit");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmitFile", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("File")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<Guid>("SubmitId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("SubmitId");
                    b.ToTable("TaskInfoUserSubmitFile");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskUserCollect", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<Guid>("TaskInfoId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("TaskInfoId");
                    b.HasIndex("UserId");
                    b.ToTable("TaskUserCollect");
                });
            modelBuilder.Entity("FlexJobApi.Core.User", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<int?>("Age")
                        .HasColumnType("int");
                    b.Property<string>("Avatar")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTime?>("Birthday")
                        .HasColumnType("datetime2");
                    b.Property<string>("CityCode")
                        .HasColumnType("nvarchar(128)");
                    b.Property<string>("ContactPhoneNumber")
                        .HasMaxLength(11)
                        .HasColumnType("nvarchar(11)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int?>("DataSource")
                        .HasColumnType("int");
                    b.Property<Guid?>("DataSourceId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("EducationalBackgroundCode")
                        .HasColumnType("nvarchar(128)");
                    b.Property<Guid?>("EnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int?>("FreeTime")
                        .HasColumnType("int");
                    b.Property<int?>("Gender")
                        .HasColumnType("int");
                    b.Property<int?>("Height")
                        .HasColumnType("int");
                    b.Property<string>("Identity")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IsCheckPhoneNumber")
                        .HasColumnType("bit");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<bool>("IsReal")
                        .HasColumnType("bit");
                    b.Property<int?>("JobSeekingStatus")
                        .HasColumnType("int");
                    b.Property<int>("Level")
                        .HasColumnType("int");
                    b.Property<string>("Name")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<string>("Password")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("PersonalIdentityCode")
                        .HasColumnType("nvarchar(128)");
                    b.Property<string>("PhoneNumber")
                        .HasMaxLength(11)
                        .HasColumnType("nvarchar(11)");
                    b.Property<string>("ProvinceCode")
                        .HasColumnType("nvarchar(128)");
                    b.Property<int?>("RealAccess")
                        .HasColumnType("int");
                    b.Property<int?>("RealMethod")
                        .HasColumnType("int");
                    b.Property<DateTime?>("RealTime")
                        .HasColumnType("datetime2");
                    b.Property<string>("Remark")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<int>("Status")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Type")
                        .HasColumnType("int");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("UserName")
                        .IsRequired()
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<int?>("Weight")
                        .HasColumnType("int");
                    b.Property<string>("WorkExperience")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("WorkSeniority")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("WxmpOpenId")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.HasKey("Id");
                    b.HasIndex("CityCode");
                    b.HasIndex("EducationalBackgroundCode");
                    b.HasIndex("EnterpriseId");
                    b.HasIndex("PersonalIdentityCode");
                    b.HasIndex("ProvinceCode");
                    b.ToTable("User");
                    b.HasData(
                        new
                        {
                            Id = new Guid("11111111-1111-1111-1111-111111111111"),
                            CreatedTime = new DateTimeOffset(new DateTime(2000, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 8, 0, 0, 0)),
                            IsCheckPhoneNumber = false,
                            IsDeleted = false,
                            IsReal = false,
                            Level = 999,
                            Name = "管理员",
                            Password = "iEYggKrMhQ3ASUGLobra1w==:fn/DsMJUbD9FGpvBvR3moMpMPptdxzZlourPVhU479I=",
                            Sort = 0,
                            Status = 10,
                            Type = 100,
                            UserName = "system"
                        });
                });
            modelBuilder.Entity("FlexJobApi.Core.UserAuth", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("BankCard")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<string>("BankCardImg")
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Identity")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("IdentityBackImg")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("IdentityImg")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<string>("PhoneNumber")
                        .HasMaxLength(11)
                        .HasColumnType("nvarchar(11)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("UserAuth");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserBankCard", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Bank")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<string>("PhoneNumber")
                        .IsRequired()
                        .HasMaxLength(11)
                        .HasColumnType("nvarchar(11)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("UserId");
                    b.ToTable("UserBankCard");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserCredential", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("BackImg")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Code")
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTime?>("EndDate")
                        .HasColumnType("datetime2");
                    b.Property<string>("Img")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<bool>("IsForever")
                        .HasColumnType("bit");
                    b.Property<string>("IssueUnit")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<DateTime?>("StartDate")
                        .HasColumnType("datetime2");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("TypeCode")
                        .IsRequired()
                        .HasColumnType("nvarchar(128)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("TypeCode");
                    b.HasIndex("UserId");
                    b.ToTable("UserCredential");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserDepartment", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("DepartmentId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("DepartmentId");
                    b.HasIndex("UserId");
                    b.ToTable("UserDepartment");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserExpectJob", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("ExpectJobCode")
                        .IsRequired()
                        .HasColumnType("nvarchar(128)");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("ExpectJobCode");
                    b.HasIndex("UserId");
                    b.ToTable("UserExpectJob");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserManageIndustrialPark", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("IndustrialParkId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("UserId");
                    b.ToTable("UserManageIndustrialPark");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserPhoto", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Img")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("UserId");
                    b.ToTable("UserPhoto");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserRole", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<Guid>("RoleId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.HasIndex("RoleId");
                    b.HasIndex("UserId");
                    b.ToTable("UserRole");
                });
            modelBuilder.Entity("FlexJobApi.Core.Department", b =>
                {
                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
                        .WithMany("Departments")
                        .HasForeignKey("EnterpriseId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.Department", "Parent")
                        .WithMany("Children")
                        .HasForeignKey("ParentId");
                    b.Navigation("Enterprise");
                    b.Navigation("Parent");
                });
            modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b =>
                {
                    b.HasOne("FlexJobApi.Core.DictionaryCategory", "Category")
                        .WithMany()
                        .HasForeignKey("CategoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.DictionaryData", "Parent")
                        .WithMany("Children")
                        .HasForeignKey("ParentId");
                    b.Navigation("Category");
                    b.Navigation("Parent");
                });
            modelBuilder.Entity("FlexJobApi.Core.Enterprise", b =>
                {
                    b.HasOne("FlexJobApi.Core.DictionaryData", "City")
                        .WithMany()
                        .HasForeignKey("CityCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict);
                    b.HasOne("FlexJobApi.Core.DictionaryData", "IndustryType")
                        .WithMany()
                        .HasForeignKey("IndustryTypeCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict);
                    b.HasOne("FlexJobApi.Core.DictionaryData", "Province")
                        .WithMany()
                        .HasForeignKey("ProvinceCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict);
                    b.Navigation("City");
                    b.Navigation("IndustryType");
                    b.Navigation("Province");
                });
            modelBuilder.Entity("FlexJobApi.Core.EnterpriseAuth", b =>
                {
                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
                        .WithOne("EnterpriseAuth")
                        .HasForeignKey("FlexJobApi.Core.EnterpriseAuth", "Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("Enterprise");
                });
            modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b =>
                {
                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
                        .WithMany()
                        .HasForeignKey("EnterpriseId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.User", "User")
                        .WithMany("EnterpriseEmployees")
                        .HasForeignKey("UserId");
                    b.Navigation("Enterprise");
                    b.Navigation("User");
                });
            modelBuilder.Entity("FlexJobApi.Core.EnterpriseUserCollect", b =>
                {
                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
                        .WithMany()
                        .HasForeignKey("EnterpriseId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.User", "User")
                        .WithMany("EnterpriseUserCollects")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("Enterprise");
                    b.Navigation("User");
                });
            modelBuilder.Entity("FlexJobApi.Core.Menu", b =>
                {
                    b.HasOne("FlexJobApi.Core.Menu", "Parent")
                        .WithMany("Children")
                        .HasForeignKey("ParentId");
                    b.Navigation("Parent");
                });
            modelBuilder.Entity("FlexJobApi.Core.RoleMenu", b =>
                {
                    b.HasOne("FlexJobApi.Core.Menu", "Menu")
                        .WithMany()
                        .HasForeignKey("MenuId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.Role", "Role")
                        .WithMany("RoleMenus")
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("Menu");
                    b.Navigation("Role");
                });
            modelBuilder.Entity("FlexJobApi.Core.RoleResource", b =>
                {
                    b.HasOne("FlexJobApi.Core.Resource", "Resource")
                        .WithMany()
                        .HasForeignKey("ResourceId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.Role", "Role")
                        .WithMany("RoleResources")
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("Resource");
                    b.Navigation("Role");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b =>
                {
                    b.HasOne("FlexJobApi.Core.DictionaryData", "City")
                        .WithMany()
                        .HasForeignKey("CityCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict);
                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
                        .WithMany()
                        .HasForeignKey("EnterpriseId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.DictionaryData", "Province")
                        .WithMany()
                        .HasForeignKey("ProvinceCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict);
                    b.Navigation("City");
                    b.Navigation("Enterprise");
                    b.Navigation("Province");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b =>
                {
                    b.HasOne("FlexJobApi.Core.DictionaryData", "Benefit")
                        .WithMany()
                        .HasForeignKey("BenefitCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo")
                        .WithMany("Benefits")
                        .HasForeignKey("TaskInfoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("Benefit");
                    b.Navigation("TaskInfo");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoCredentialLimit", b =>
                {
                    b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo")
                        .WithMany("CredentialLimits")
                        .HasForeignKey("TaskInfoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.DictionaryData", "Type")
                        .WithMany()
                        .HasForeignKey("TypeCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();
                    b.Navigation("TaskInfo");
                    b.Navigation("Type");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b =>
                {
                    b.HasOne("FlexJobApi.Core.EnterpriseEmployee", "EnterpriseEmployee")
                        .WithMany("TaskInfoUsers")
                        .HasForeignKey("EnterpriseEmployeeId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo")
                        .WithMany("TaskInfoUsers")
                        .HasForeignKey("TaskInfoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("EnterpriseEmployee");
                    b.Navigation("TaskInfo");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b =>
                {
                    b.HasOne("FlexJobApi.Core.TaskInfoUser", "TaskInfoUser")
                        .WithMany("Submits")
                        .HasForeignKey("TaskInfoUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("TaskInfoUser");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmitFile", b =>
                {
                    b.HasOne("FlexJobApi.Core.TaskInfoUserSubmit", "Submit")
                        .WithMany("Files")
                        .HasForeignKey("SubmitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("Submit");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskUserCollect", b =>
                {
                    b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo")
                        .WithMany("TaskUserCollects")
                        .HasForeignKey("TaskInfoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("TaskInfo");
                    b.Navigation("User");
                });
            modelBuilder.Entity("FlexJobApi.Core.User", b =>
                {
                    b.HasOne("FlexJobApi.Core.DictionaryData", "City")
                        .WithMany()
                        .HasForeignKey("CityCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict);
                    b.HasOne("FlexJobApi.Core.DictionaryData", "EducationalBackground")
                        .WithMany()
                        .HasForeignKey("EducationalBackgroundCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict);
                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
                        .WithMany("Users")
                        .HasForeignKey("EnterpriseId");
                    b.HasOne("FlexJobApi.Core.DictionaryData", "PersonalIdentity")
                        .WithMany()
                        .HasForeignKey("PersonalIdentityCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict);
                    b.HasOne("FlexJobApi.Core.DictionaryData", "Province")
                        .WithMany()
                        .HasForeignKey("ProvinceCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict);
                    b.Navigation("City");
                    b.Navigation("EducationalBackground");
                    b.Navigation("Enterprise");
                    b.Navigation("PersonalIdentity");
                    b.Navigation("Province");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserAuth", b =>
                {
                    b.HasOne("FlexJobApi.Core.User", "User")
                        .WithOne("UserAuth")
                        .HasForeignKey("FlexJobApi.Core.UserAuth", "Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("User");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserBankCard", b =>
                {
                    b.HasOne("FlexJobApi.Core.User", "User")
                        .WithMany("BankCards")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("User");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserCredential", b =>
                {
                    b.HasOne("FlexJobApi.Core.DictionaryData", "Type")
                        .WithMany()
                        .HasForeignKey("TypeCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.User", "User")
                        .WithMany("UserCredentials")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("Type");
                    b.Navigation("User");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserDepartment", b =>
                {
                    b.HasOne("FlexJobApi.Core.Department", "Department")
                        .WithMany()
                        .HasForeignKey("DepartmentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.User", "User")
                        .WithMany("UserDepartments")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("Department");
                    b.Navigation("User");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserExpectJob", b =>
                {
                    b.HasOne("FlexJobApi.Core.DictionaryData", "ExpectJob")
                        .WithMany()
                        .HasForeignKey("ExpectJobCode")
                        .HasPrincipalKey("Code")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.User", "User")
                        .WithMany("UserExpectJobs")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("ExpectJob");
                    b.Navigation("User");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserManageIndustrialPark", b =>
                {
                    b.HasOne("FlexJobApi.Core.User", "User")
                        .WithMany("UserManageIndustrialParks")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("User");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserPhoto", b =>
                {
                    b.HasOne("FlexJobApi.Core.User", "User")
                        .WithMany("Photos")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("User");
                });
            modelBuilder.Entity("FlexJobApi.Core.UserRole", b =>
                {
                    b.HasOne("FlexJobApi.Core.Role", "Role")
                        .WithMany("UserRoles")
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.HasOne("FlexJobApi.Core.User", "User")
                        .WithMany("UserRoles")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                    b.Navigation("Role");
                    b.Navigation("User");
                });
            modelBuilder.Entity("FlexJobApi.Core.Department", b =>
                {
                    b.Navigation("Children");
                });
            modelBuilder.Entity("FlexJobApi.Core.DictionaryData", b =>
                {
                    b.Navigation("Children");
                });
            modelBuilder.Entity("FlexJobApi.Core.Enterprise", b =>
                {
                    b.Navigation("Departments");
                    b.Navigation("EnterpriseAuth");
                    b.Navigation("Users");
                });
            modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b =>
                {
                    b.Navigation("TaskInfoUsers");
                });
            modelBuilder.Entity("FlexJobApi.Core.Menu", b =>
                {
                    b.Navigation("Children");
                });
            modelBuilder.Entity("FlexJobApi.Core.Role", b =>
                {
                    b.Navigation("RoleMenus");
                    b.Navigation("RoleResources");
                    b.Navigation("UserRoles");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b =>
                {
                    b.Navigation("Benefits");
                    b.Navigation("CredentialLimits");
                    b.Navigation("TaskInfoUsers");
                    b.Navigation("TaskUserCollects");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b =>
                {
                    b.Navigation("Submits");
                });
            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b =>
                {
                    b.Navigation("Files");
                });
            modelBuilder.Entity("FlexJobApi.Core.User", b =>
                {
                    b.Navigation("BankCards");
                    b.Navigation("EnterpriseEmployees");
                    b.Navigation("EnterpriseUserCollects");
                    b.Navigation("Photos");
                    b.Navigation("UserAuth");
                    b.Navigation("UserCredentials");
                    b.Navigation("UserDepartments");
                    b.Navigation("UserExpectJobs");
                    b.Navigation("UserManageIndustrialParks");
                    b.Navigation("UserRoles");
                });
#pragma warning restore 612, 618
        }
    }
}
FlexJobApi.Database.Migrations/Migrations/20250819025001_UpdateTaskInfo0819.cs
New file
@@ -0,0 +1,39 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace FlexJobApi.Database.Migrations.Migrations
{
    /// <inheritdoc />
    public partial class UpdateTaskInfo0819 : Migration
    {
        /// <inheritdoc />
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.AddColumn<DateTime>(
                name: "RecommendTime",
                table: "TaskInfo",
                type: "datetime2",
                nullable: true);
            migrationBuilder.AddColumn<DateTime>(
                name: "SettlementTime",
                table: "TaskInfo",
                type: "datetime2",
                nullable: true);
        }
        /// <inheritdoc />
        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropColumn(
                name: "RecommendTime",
                table: "TaskInfo");
            migrationBuilder.DropColumn(
                name: "SettlementTime",
                table: "TaskInfo");
        }
    }
}
FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs
@@ -1163,6 +1163,9 @@
                    b.Property<int>("RecommendStatus")
                        .HasColumnType("int");
                    b.Property<DateTime?>("RecommendTime")
                        .HasColumnType("datetime2");
                    b.Property<int>("ReleaseStatus")
                        .HasColumnType("int");
@@ -1175,6 +1178,9 @@
                    b.Property<int?>("SettlementStatus")
                        .HasColumnType("int");
                    b.Property<DateTime?>("SettlementTime")
                        .HasColumnType("datetime2");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
FlexJobApi.Database.Migrations/Migrations/LogDb/20250819015802_UpdateResource0819.Designer.cs
New file
@@ -0,0 +1,432 @@
// <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.LogDb
{
    [DbContext(typeof(LogDbContext))]
    [Migration("20250819015802_UpdateResource0819")]
    partial class UpdateResource0819
    {
        /// <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.ConsoleLog", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("Access")
                        .HasColumnType("int");
                    b.Property<string>("ClientIpAddress")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<string>("Content")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Level")
                        .HasColumnType("int");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("StackTrace")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Url")
                        .HasColumnType("nvarchar(max)");
                    b.HasKey("Id");
                    b.ToTable("ConsoleLog");
                });
            modelBuilder.Entity("FlexJobApi.Core.DbAuditLog", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<string>("NewValues")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("OldValues")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Operate")
                        .HasColumnType("int");
                    b.Property<Guid>("PrimaryKey")
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TableName")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("DbAuditLog");
                });
            modelBuilder.Entity("FlexJobApi.Core.Entities.Common.ResourceLog", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("ClientIpAddress")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("ConsoleLogs")
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Domain")
                        .HasColumnType("nvarchar(max)");
                    b.Property<long>("ElapsedMilliseconds")
                        .HasColumnType("bigint");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<bool>("IsSuccess")
                        .HasColumnType("bit");
                    b.Property<int>("Method")
                        .HasColumnType("int");
                    b.Property<string>("Path")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("RefererUrl")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Request")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("RequestHeaders")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Response")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("ResponseHeaders")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("ResourceLog");
                });
            modelBuilder.Entity("FlexJobApi.Core.ExceptionLog", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Code")
                        .HasMaxLength(32)
                        .HasColumnType("nvarchar(32)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<string>("Message")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("StackTrace")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("Type")
                        .HasMaxLength(256)
                        .HasColumnType("nvarchar(256)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("ExceptionLog");
                });
            modelBuilder.Entity("FlexJobApi.Core.QueueLog", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("Access")
                        .HasColumnType("int");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<string>("Data")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");
                    b.Property<long>("ElapsedMilliseconds")
                        .HasColumnType("bigint");
                    b.Property<string>("EventId")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<bool>("IsConsumOnce")
                        .HasColumnType("bit");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("QueueLog");
                });
            modelBuilder.Entity("FlexJobApi.Core.ScheduleJobTriggerTimeline", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<long>("ElapsedTime")
                        .HasColumnType("bigint");
                    b.Property<string>("Exception")
                        .HasColumnType("nvarchar(max)");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<string>("JobId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTime?>("LastRunTime")
                        .HasColumnType("datetime2");
                    b.Property<int>("Mode")
                        .HasColumnType("int");
                    b.Property<DateTime?>("NextRunTime")
                        .HasColumnType("datetime2");
                    b.Property<long>("NumberOfRuns")
                        .HasColumnType("bigint");
                    b.Property<string>("Result")
                        .HasColumnType("nvarchar(max)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<long>("Status")
                        .HasColumnType("bigint");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("TriggerId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("ScheduleJobTriggerTimeline");
                });
            modelBuilder.Entity("FlexJobApi.Core.SmsLog", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");
                    b.Property<int>("Access")
                        .HasColumnType("int");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTimeOffset>("CreatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("CreatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.Property<DateTime?>("Expiry")
                        .HasColumnType("datetime2");
                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");
                    b.Property<bool>("IsUsed")
                        .HasColumnType("bit");
                    b.Property<string>("PhoneNumber")
                        .IsRequired()
                        .HasMaxLength(11)
                        .HasColumnType("nvarchar(11)");
                    b.Property<int>("Sort")
                        .HasColumnType("int");
                    b.Property<string>("TemplateCode")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("nvarchar(128)");
                    b.Property<string>("TemplateParam")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("TraceId")
                        .HasColumnType("nvarchar(max)");
                    b.Property<DateTimeOffset?>("UpdatedTime")
                        .HasColumnType("datetimeoffset");
                    b.Property<Guid?>("UpdatedUserId")
                        .HasColumnType("uniqueidentifier");
                    b.HasKey("Id");
                    b.ToTable("SmsLog");
                });
#pragma warning restore 612, 618
        }
    }
}
FlexJobApi.Database.Migrations/Migrations/LogDb/20250819015802_UpdateResource0819.cs
New file
@@ -0,0 +1,28 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace FlexJobApi.Database.Migrations.Migrations.LogDb
{
    /// <inheritdoc />
    public partial class UpdateResource0819 : Migration
    {
        /// <inheritdoc />
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.AddColumn<string>(
                name: "ConsoleLogs",
                table: "ResourceLog",
                type: "nvarchar(max)",
                nullable: true);
        }
        /// <inheritdoc />
        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropColumn(
                name: "ConsoleLogs",
                table: "ResourceLog");
        }
    }
}
FlexJobApi.Database.Migrations/Migrations/LogDb/LogDbContextModelSnapshot.cs
@@ -138,6 +138,9 @@
                    b.Property<string>("ClientIpAddress")
                        .HasColumnType("nvarchar(max)");
                    b.Property<string>("ConsoleLogs")
                        .HasColumnType("nvarchar(max)");
                    b.Property<Guid?>("CreatedEnterpriseId")
                        .HasColumnType("uniqueidentifier");
FlexJobApi.Database.Migrations/REDEME.MD
@@ -1,7 +1,7 @@
-------------------------------主数据库---------------------------------------
新增迁移文件
dotnet ef migrations add UpdateUser0818 -s "../FlexJobApi.Web.Entry" -c DefaultDbContext
dotnet ef migrations add UpdateTaskInfo0819 -s "../FlexJobApi.Web.Entry" -c DefaultDbContext
删除迁移文件
dotnet ef migrations remove -s "../FlexJobApi.Web.Entry" -c DefaultDbContext
@@ -12,7 +12,7 @@
-------------------------------日志数据库---------------------------------------
新增迁移文件
dotnet ef migrations add UpdateResource0813 -s "../FlexJobApi.Web.Entry" -c LogDbContext
dotnet ef migrations add UpdateResource0819 -s "../FlexJobApi.Web.Entry" -c LogDbContext
删除迁移文件
dotnet ef migrations remove -s "../FlexJobApi.Web.Entry" -c LogDbContext
FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs
@@ -102,13 +102,20 @@
        public async Task<int> Handle(SetTaskInfoRecommendStatusCommand request, CancellationToken cancellationToken)
        {
            var entities = await TaskInfoRepository.GetQueryable(rep, false)
                .Where(it => request.Ids.Contains(it.Id))
                .Where(it => request.Ids.Contains(it.Id) && it.RecommendStatus != request.RecommendStatus)
                .ToListAsync();
            foreach (var entity in entities)
            if (entities.IsNotNull())
            {
                entity.RecommendStatus = request.RecommendStatus;
                foreach (var entity in entities)
                {
                    entity.RecommendStatus = request.RecommendStatus;
                    if (entity.RecommendStatus == EnumTaskRecommendStatus.Yes)
                    {
                        entity.RecommendTime = DateTime.Now;
                    }
                }
                await rep.UpdateAsync(entities);
            }
            await rep.UpdateAsync(entities);
            return entities.Count;
        }
FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
@@ -210,13 +210,15 @@
                        CheckReceiveStatus = t.CheckReceiveStatus,
                        CreatedTime = t.CreatedTime,
                        RecommendStatus = t.RecommendStatus,
                        RecommendTime = t.RecommendTime,
                        SettlementStatus = t.SettlementStatus,
                        HireStatus = logier != null && logier.Type == EnumUserType.Personal
                            ? t.TaskInfoUsers
                                .Where(tu => tu.EnterpriseEmployee.UserId == logier.Id)
                                .Select(tu => tu.HireStatus as EnumTaskUserHireStatus?)
                                .FirstOrDefault()
                            : null
                            : null,
                    };
            var result = await request.PageModel.GetPagedListAsync<GetTaskInfosQueryResult, GetTaskInfosQueryResultItem>(s, cancellationToken);
            result.ObjectData = count;
FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
@@ -51,6 +51,7 @@
        /// <returns></returns>
        public async Task<GetUserResumesQueryResult> Handle(GetUserResumesQuery request, CancellationToken cancellationToken)
        {
            Console.WriteLine(111);
            var logier = JwtUtils.GetCurrentLogier();
            var q = rep.AsQueryable().AsNoTracking()
                .Where(it => it.Type == EnumUserType.Personal);
FlexJobApi.Web.Entry/appsettings.json
@@ -1,5 +1,6 @@
{
  "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
  "Environment": "Local",
  "ConnectionStrings": {
    "FlexJobApi": "Server=120.26.58.240; Database=Dev_FlexJobApi; User=bole;Password=Bole1472589;Encrypt=false;",
    "FlexJobApiLog": "Server=120.26.58.240; Database=Dev_FlexJobApiLog; User=bole;Password=Bole1472589;Encrypt=false;",