2025-08-19 | sunpengfei | ![]() |
2025-08-19 | sunpengfei | ![]() |
2025-08-19 | sunpengfei | ![]() |
2025-08-19 | sunpengfei | ![]() |
2025-08-19 | sunpengfei | ![]() |
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,22 @@ /// <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")] UserServer [ResourceService(ApplicationName = "FlexJobApi.UserServer.Application", RouteArea = "user", ServiceName = "FlexJobServices")] UserServer, /// <summary> /// 人力资源服务 /// </summary> [ResourceService(ServiceName = "HumanResourcesServices")] HumanResourcesServer } } 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> 用户认证 @@ -2620,6 +2640,11 @@ <member name="F:FlexJobApi.Core.EnumResourceService.UserServer"> <summary> 用户服务 </summary> </member> <member name="F:FlexJobApi.Core.EnumResourceService.HumanResourcesServer"> <summary> 人力资源服务 </summary> </member> <member name="T:FlexJobApi.Core.EnumSmsAccess"> @@ -3841,6 +3866,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"> @@ -5381,6 +5741,16 @@ 任务单号 </summary> </member> <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.EnterpriseName"> <summary> 企业全称 </summary> </member> <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.UserName"> <summary> 用户名 </summary> </member> <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.BillingMethod"> <summary> 结算周期 @@ -5489,6 +5859,11 @@ <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.RecommendStatus"> <summary> 推荐状态 </summary> </member> <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.RecommendTime"> <summary> 推荐时间 </summary> </member> <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.HireStatus"> @@ -5830,6 +6205,81 @@ <member name="P:FlexJobApi.Core.GetTaskUsersQueryResultItem.HireStatus"> <summary> 录用状态 </summary> </member> <member name="T:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignPersonalRealMethod"> <summary> 电子签-实名-认证方式(10个人手机号三要素 20银行卡多要素 30刷脸认证) </summary> </member> <member name="F:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignPersonalRealMethod.Identity3"> <summary> 个人手机号三要素 </summary> </member> <member name="F:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignPersonalRealMethod.Identity4"> <summary> 银行卡多要素 </summary> </member> <member name="F:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignPersonalRealMethod.Face"> <summary> 刷脸认证 </summary> </member> <member name="T:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignUserType"> <summary> 电子签-用户类型(10企业 20个人) </summary> </member> <member name="F:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignUserType.Company"> <summary> 企业 </summary> </member> <member name="F:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignUserType.Personal"> <summary> 个人 </summary> </member> <member name="T:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput"> <summary> 发送实名短信 </summary> </member> <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.UserType"> <summary> 用户类型(10企业 20个人) </summary> </member> <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.OutUserId"> <summary> 对外企业/个人Id </summary> </member> <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.RealMethod"> <summary> 个人认证方式(10个人手机号三要素 20银行卡多要素 30刷脸认证) </summary> </member> <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.Name"> <summary> 姓名 </summary> </member> <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.Identity"> <summary> 证件号码 </summary> </member> <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.Mobile"> <summary> 手机号码 </summary> </member> <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.BankCard"> <summary> 银行卡号 </summary> </member> <member name="T:FlexJobApi.Core.BindWxmpUserInfoCommand"> @@ -8639,6 +9089,46 @@ 工作经验 </summary> </member> <member name="T:FlexJobApi.Core.PersonalUserIdentity3RealCommand"> <summary> 个人三要素实名认证 </summary> </member> <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.Name"> <summary> 姓名 </summary> </member> <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.PhoneNumber"> <summary> 手机号 </summary> </member> <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.Identity"> <summary> 身份证号 </summary> </member> <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.IdentityImg"> <summary> 身份证人像面 </summary> </member> <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.IdentityBackImg"> <summary> 身份证国徽面 </summary> </member> <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.VerifyCode"> <summary> 验证码 </summary> </member> <member name="T:FlexJobApi.Core.SendPersonalUserIdentity3RealSmsCommand"> <summary> 发送个人三要素实名短信 </summary> </member> <member name="T:FlexJobApi.Core.SetUserInfoRolesCommand"> <summary> 设置用户信息角色 FlexJobApi.Core/Jobs/CalcTaskSatusByDateJob.cs
@@ -31,6 +31,7 @@ { entity.ReleaseStatus = EnumTaskReleaseStatus.Stopped; } await rep.UpdateNowAsync(entities); } } } FlexJobApi.Core/Jobs/CalcUserAgeByIdCardJob.cs
@@ -24,10 +24,17 @@ var enities = await rep.AsQueryable() .Where(it => it.Type == EnumUserType.Personal && it.Identity != null && it.Identity != "") .ToListAsync(stoppingToken); foreach (var entity in enities) if (enities.IsNotNull()) { var age = entity.Identity.GetAge(); entity.Age = age; foreach (var entity in enities) { var age = entity.Identity.GetAge(); if (age.HasValue) { entity.Age = age; } } await rep.UpdateNowAsync(enities); } } } 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/CommonServer/OcrUtils/Commands/GetLicenseOcrCommand.cs
FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs
@@ -137,6 +137,16 @@ public string Code { get; set; } /// <summary> /// 企业全称 /// </summary> public string EnterpriseName { get; set; } /// <summary> /// 用户名 /// </summary> public string UserName { get; set; } /// <summary> /// 结算周期 /// </summary> public EnumBillingMethod BillingMethod { get; set; } @@ -247,6 +257,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/Models/HumanResourcesServer/ElectronSign/EnumElectronSignPersonalRealMethod.cs
New file @@ -0,0 +1,31 @@ using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign { /// <summary> /// 电子签-实名-认证方式(10个人手机号三要素 20银行卡多要素 30刷脸认证) /// </summary> public enum EnumElectronSignPersonalRealMethod { /// <summary> /// 个人手机号三要素 /// </summary> [Description("个人手机号三要素")] Identity3 = 10, /// <summary> /// 银行卡多要素 /// </summary> [Description("银行卡多要素")] Identity4 = 20, /// <summary> /// 刷脸认证 /// </summary> [Description("刷脸认证")] Face = 30 } } FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignUserType.cs
New file @@ -0,0 +1,26 @@ using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign { /// <summary> /// 电子签-用户类型(10企业 20个人) /// </summary> public enum EnumElectronSignUserType { /// <summary> /// 企业 /// </summary> [Description("企业")] Company = 10, /// <summary> /// 个人 /// </summary> [Description("个人")] Personal = 20 } } FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/SendRealSmsInput.cs
New file @@ -0,0 +1,63 @@ using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign { /// <summary> /// 发送实名短信 /// </summary> public class SendRealSmsInput { /// <summary> /// 用户类型(10企业 20个人) /// </summary> [DisplayName("用户类型")] [Required(ErrorMessage = "{0}不能为空")] public EnumElectronSignUserType UserType { get; set; } /// <summary> /// 对外企业/个人Id /// </summary> [DisplayName("外部企业Id")] [Required(ErrorMessage = "{0}不能为空")] public string OutUserId { get; set; } /// <summary> /// 个人认证方式(10个人手机号三要素 20银行卡多要素 30刷脸认证) /// </summary> [DisplayName("个人认证方式")] [Required(ErrorMessage = "{0}不能为空")] public EnumElectronSignPersonalRealMethod RealMethod { get; set; } /// <summary> /// 姓名 /// </summary> [DisplayName("姓名")] [Required(ErrorMessage = "{0}不能为空")] public string Name { get; set; } /// <summary> /// 证件号码 /// </summary> [DisplayName("证件号码")] [Required(ErrorMessage = "{0}不能为空")] public string Identity { get; set; } /// <summary> /// 手机号码 /// </summary> [DisplayName("手机号码")] [Required(ErrorMessage = "{0}不能为空")] public string Mobile { get; set; } /// <summary> /// 银行卡号 /// </summary> public string BankCard { get; set; } } } FlexJobApi.Core/Models/UserServer/Users/Commands/PersonalUserIdentity3RealCommand.cs
New file @@ -0,0 +1,56 @@ using MediatR; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// 个人三要素实名认证 /// </summary> [Resource([EnumResourceController.User])] public class PersonalUserIdentity3RealCommand : IRequest<Guid> { /// <summary> /// 姓名 /// </summary> [Required] [MaxLength(32)] public string Name { get; set; } /// <summary> /// 手机号 /// </summary> [Required] [DataValidation(EnumValidationTypes.ValidPhoneNumber)] public string PhoneNumber { get; set; } /// <summary> /// 身份证号 /// </summary> [Required] [DataValidation(EnumValidationTypes.ValiIdentity)] public string Identity { get; set; } /// <summary> /// 身份证人像面 /// </summary> [Required] public string IdentityImg { get; set; } /// <summary> /// 身份证国徽面 /// </summary> [Required] public string IdentityBackImg { get; set; } /// <summary> /// 验证码 /// </summary> [Required] public string VerifyCode { get; set; } } } FlexJobApi.Core/Models/UserServer/Users/Commands/SendPersonalUserIdentity3RealSmsCommand.cs
New file @@ -0,0 +1,17 @@ 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.User])] public class SendPersonalUserIdentity3RealSmsCommand : IRequest<Guid> { } } 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(); //try //{ // Console.SetOut(consoleWriter); await rep.InsertNowAsync(resourceLog); var serviceScopeFactory = App.GetService<IServiceScopeFactory>(); var serviceScope = serviceScopeFactory.CreateScope(); var rep = serviceScope.ServiceProvider.GetRequiredService<IRepository<ResourceLog, LogDbContextLocator>>(); var logier = JwtUtils.GetCurrentLogier(); //============== 这里是执行方法之后获取数据 ==================== var actionContext = await next(); 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(); 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; //Console.SetOut(originalConsoleOut); await rep.InsertNowAsync(resourceLog); //Console.SetOut(consoleWriter); stopwatch.Stop(); resourceLog.ElapsedMilliseconds = stopwatch.ElapsedMilliseconds; //============== 这里是执行方法之后获取数据 ==================== var actionContext = await next(); //Console.SetOut(originalConsoleOut); await rep.UpdateNowAsync(resourceLog); 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); //} //finally //{ // Console.SetOut(originalConsoleOut); // 恢复 Console 原始输出流 // consoleWriter.Dispose(); // 释放流资源 //} } } } FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs
@@ -6,7 +6,9 @@ using Microsoft.Extensions.Caching.Distributed; using System; using System.Collections.Generic; using System.ComponentModel.Design; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; @@ -71,6 +73,21 @@ return response; } public async Task<string> SendHttpAsync(EnumResourceService service, HttpMethod method, string route, string request, IResourceHttpProvider provider = null) { var serviceName = service.GetCustomAttribute<EnumResourceService, ResourceServiceAttribute>().ServiceName; var url = await GetUrl(serviceName, route); var builder = HttpRequestBuilder.Create(method, url); if (method == HttpMethod.Get) builder = builder.WithQueryParameters(request); else builder = builder.SetJsonContent(request); provider = provider ?? new DefaultResourceHttpProvider(); builder = provider.AddAuthentication(builder); var response = await provider.SendAsStringAsync(httpRemoteService, builder); return response; } public async Task<string> GetUrl(string serviceName, string route) { var domain = await GetHealthyServiceDomain(serviceName); @@ -84,6 +101,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.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/TaskUsers/Commands/ApplyTaskCommandHandler.cs
@@ -65,7 +65,8 @@ .Select(it => new { it.Id, it.EnterpriseId it.EnterpriseId, it.ReleaseStatus }) .ToListAsync(cancellationToken); var enterpriseIds = tasks.DistinctSelect(it => it.EnterpriseId); @@ -80,6 +81,8 @@ { var task = tasks.FirstOrDefault(it => it.Id == taskId); if (task == null) throw Oops.Oh(EnumErrorCodeType.s404, "任务"); if (task.ReleaseStatus == EnumTaskReleaseStatus.Stopped) throw Oops.Oh(EnumErrorCodeType.s510, "任务已停止"); var employee = employees.FirstOrDefault(it => it.EnterpriseId == task.EnterpriseId && it.UserId == logier.Id); if (employee == null) { 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
@@ -180,6 +180,8 @@ Id = t.Id, Name = t.Name, Code = t.Code, EnterpriseName = t.Enterprise.EnterpriseName, UserName = t.Enterprise.Users.Where(u => u.Id == t.CreatedUserId).Select(u => u.UserName).FirstOrDefault(), BillingMethod = t.BillingMethod, ServiceFee = t.ServiceFee, SettlementCycle = t.SettlementCycle, @@ -210,13 +212,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/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
@@ -164,11 +164,11 @@ return request.SaveData<EnterpriseEmployee, EditEnterpriseEmployeeCommand>( q => q.Where(it => it.EnterpriseId == logier.EnterpriseId), it => it.EnterpriseId == logier.EnterpriseId && it.Id != request.Id && it.Identity == request.Identity, async (entity) => (entity) => { if (request.Id.HasValue && entity.UserId.HasValue) { var user = await repUser.AsQueryable().FirstOrDefaultAsync(it => it.Id == entity.UserId.Value); var user = repUser.AsQueryable().FirstOrDefault(it => it.Id == entity.UserId.Value); if (user!.IsReal == true) { throw Oops.Oh(EnumErrorCodeType.s510, "已实名无法修改信息"); @@ -181,7 +181,7 @@ user.Birthday = request.Identity.GetBirthday(); user.Gender = request.Gender; user.Age = request.Age; await repUser.UpdateAsync(user); repUser.Update(user); } } request.Adapt(entity); 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.UserServer.Application/Users/Commands/PersonalUserRealCommandHandler.cs
New file @@ -0,0 +1,29 @@ using FlexJobApi.Core; using FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign; using MediatR; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.UserServer.Application { public class PersonalUserRealCommandHandler( ResourceHttpUtils resourceHttpUtils ) : IRequestHandler<SendPersonalUserIdentity3RealSmsCommand, Guid> { private readonly ResourceHttpUtils resourceHttpUtils = resourceHttpUtils; public async Task<Guid> Handle(SendPersonalUserIdentity3RealSmsCommand request, CancellationToken cancellationToken) { await resourceHttpUtils.SendHttpAsync(EnumResourceService.HumanResourcesServer, HttpMethod.Post, "/api/ElectronSign/SendRealSms", new SendRealSmsInput { }.ToJson()); throw new Exception(); } } } 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;",