From 3bd0644b62742cbabbb465f0fb4652807d2e2256 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 12 八月 2025 13:31:51 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs                                    |   60 
 FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumesQuery.cs                    |   41 
 FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs               |   56 
 FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.csproj                |    4 
 FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml                   |   26 
 FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/ApplyTaskCommandHandler.cs              |  116 +
 FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs |   77 +
 FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs                      |    9 
 FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployee.cs                           |  118 +
 FlexJobApi.Database.Migrations/Migrations/20250812053139_UpdateUser0812002.Designer.cs          | 2307 ++++++++++++++++++++++++++++++++++++
 FlexJobApi.Database.Migrations/Migrations/20250812053139_UpdateUser0812002.cs                   |  222 +++
 FlexJobApi.Core/FlexJobApi.Core.xml                                                             |  385 +++--
 FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs    |  147 ++
 FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml                         |   18 
 FlexJobApi.Database.Migrations/REDEME.MD                                                        |    2 
 FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs                 |   10 
 FlexJobApi.Core/Enums/Common/EnumResourceController.cs                                          |    7 
 FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs                         |    6 
 FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfosQuery.cs                    |   15 
 FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs                      |  153 +
 FlexJobApi.Core/FlexJobApi.Core.csproj                                                          |    1 
 FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumeQuery.cs                     |   51 
 22 files changed, 3,467 insertions(+), 364 deletions(-)

diff --git a/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs b/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs
index 2599559..862134a 100644
--- a/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs
+++ b/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs
@@ -1,4 +1,7 @@
-锘縰sing System;
+锘縰sing Furion.DatabaseAccessor;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -9,7 +12,7 @@
     /// <summary>
     /// 浠诲姟闆囦剑淇℃伅
     /// </summary>
-    public class TaskInfoUser : CommonEntity
+    public class TaskInfoUser : CommonEntity, IEntityTypeBuilder<TaskInfoUser>
     {
         /// <summary>
         /// 浠诲姟Id
@@ -22,49 +25,14 @@
         public TaskInfo TaskInfo { get; set; }
 
         /// <summary>
-        /// 鐢ㄦ埛淇℃伅Id
+        /// 鐏靛伐Id
         /// </summary>
-        public Guid UserId { get; set; }
+        public Guid EnterpriseEmployeeId { get; set; }
 
         /// <summary>
-        /// 鐢ㄦ埛淇℃伅
+        /// 鐏靛伐
         /// </summary>
-        public User User { get; set; }
-
-        /// <summary>
-        /// 褰曠敤鐘舵��
-        /// </summary>
-        public EnumTaskUserHireStatus HireStatus { get; set; }
-
-        /// <summary>
-        /// 褰曠敤鏃堕棿
-        /// </summary>
-        public DateTime? HireTime { get; set; }
-
-        /// <summary>
-        /// 鐏靛伐绛剧害鐘舵��
-        /// </summary>
-        public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; }
-
-        /// <summary>
-        /// 鐏靛伐绛剧害鏃堕棿
-        /// </summary>
-        public DateTime? UserSignContractTime { get; set; }
-
-        /// <summary>
-        /// 浼佷笟绛剧害鐘舵��
-        /// </summary>
-        public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; }
-
-        /// <summary>
-        /// 浼佷笟绛剧害鏃堕棿
-        /// </summary>
-        public DateTime? EnterpriseSignContractTime { get; set; }
-
-        /// <summary>
-        /// 鐢靛瓙鍚堝悓
-        /// </summary>
-        public string ContractUrl { get; set; }
+        public EnterpriseEmployee EnterpriseEmployee { get; set; }
 
         /// <summary>
         /// 瀹夋帓鐘舵��
@@ -75,5 +43,15 @@
         /// 瀹夋帓鐘舵��
         /// </summary>
         public DateTime? ArrangeTime { get; set; }
+
+        public void Configure(EntityTypeBuilder<TaskInfoUser> entityBuilder, DbContext dbContext, Type dbContextLocator)
+        {
+            entityBuilder
+                .HasOne(it => it.EnterpriseEmployee)
+                .WithMany(it => it.TaskInfoUsers)
+                .HasForeignKey(it => it.EnterpriseEmployeeId)
+                .IsRequired()
+                .OnDelete(DeleteBehavior.Restrict);
+        }
     }
 }
diff --git a/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployee.cs b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployee.cs
new file mode 100644
index 0000000..5103c0d
--- /dev/null
+++ b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployee.cs
@@ -0,0 +1,118 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鐏靛伐
+    /// </summary>
+    public class EnterpriseEmployee : CommonEntity
+    {
+        public EnterpriseEmployee()
+        {
+            TaskInfoUsers = [];
+        }
+
+        /// <summary>
+        /// 浼佷笟Id
+        /// </summary>
+        public Guid EnterpriseId { get; set; }
+
+        /// <summary>
+        /// 浼佷笟
+        /// </summary>
+        public Enterprise Enterprise { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛淇℃伅Id
+        /// </summary>
+        public Guid? UserId { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛淇℃伅
+        /// </summary>
+        public User User { get; set; }
+
+        /// <summary>
+        /// 濮撳悕
+        /// </summary>
+        [MaxLength(32)]
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 韬唤璇佸彿
+        /// </summary>
+        public string Identity { get; set; }
+
+        /// <summary>
+        /// 鎵嬫満鍙�
+        /// </summary>
+        /// <remarks>鐧诲綍鎵嬫満鍙�</remarks>
+        [MaxLength(11)]
+        public string PhoneNumber { get; set; }
+
+        /// <summary>
+        /// 鎬у埆
+        /// </summary>
+        public EnumUserGender? Gender { get; set; }
+
+        /// <summary>
+        /// 骞撮緞
+        /// </summary>
+        public int? Age { get; set; }
+
+        /// <summary>
+        /// 韬唤璇佷汉鍍忛潰
+        /// </summary>
+        public string IdentityImg { get; set; }
+
+        /// <summary>
+        /// 韬唤璇佸浗寰介潰
+        /// </summary>
+        public string IdentityBackImg { get; set; }
+
+        /// <summary>
+        /// 褰曠敤鐘舵��
+        /// </summary>
+        public EnumTaskUserHireStatus HireStatus { get; set; }
+
+        /// <summary>
+        /// 褰曠敤鏃堕棿
+        /// </summary>
+        public DateTime? HireTime { get; set; }
+
+        /// <summary>
+        /// 鐏靛伐绛剧害鐘舵��
+        /// </summary>
+        public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; }
+
+        /// <summary>
+        /// 鐏靛伐绛剧害鏃堕棿
+        /// </summary>
+        public DateTime? UserSignContractTime { get; set; }
+
+        /// <summary>
+        /// 浼佷笟绛剧害鐘舵��
+        /// </summary>
+        public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; }
+
+        /// <summary>
+        /// 浼佷笟绛剧害鏃堕棿
+        /// </summary>
+        public DateTime? EnterpriseSignContractTime { get; set; }
+
+        /// <summary>
+        /// 鐢靛瓙鍚堝悓
+        /// </summary>
+        public string ContractUrl { get; set; }
+
+        /// <summary>
+        /// 浠诲姟闆囦剑淇℃伅
+        /// </summary>
+        public List<TaskInfoUser> TaskInfoUsers { get; set; }
+    }
+}
diff --git a/FlexJobApi.Core/Enums/Common/EnumResourceController.cs b/FlexJobApi.Core/Enums/Common/EnumResourceController.cs
index ca3f486..d75c707 100644
--- a/FlexJobApi.Core/Enums/Common/EnumResourceController.cs
+++ b/FlexJobApi.Core/Enums/Common/EnumResourceController.cs
@@ -61,6 +61,11 @@
         /// 浼佷笟淇℃伅
         /// </summary>
         [ResourceController(Service = EnumResourceService.UserServer)]
-        Enterprise
+        Enterprise,
+        /// <summary>
+        /// 鐏靛伐淇℃伅
+        /// </summary>
+        [ResourceController(Service = EnumResourceService.UserServer)]
+        EnterpriseEmployee
     }
 }
diff --git a/FlexJobApi.Core/FlexJobApi.Core.csproj b/FlexJobApi.Core/FlexJobApi.Core.csproj
index 7b5646b..4ef29dc 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.csproj
+++ b/FlexJobApi.Core/FlexJobApi.Core.csproj
@@ -38,6 +38,7 @@
 	<ItemGroup>
 	  <Folder Include="Models\CommonServer\Schedules\Queries\" />
 	  <Folder Include="Models\FlexJobServer\TaskUsers\Queries\" />
+	  <Folder Include="Models\FlexJobServer\TaskUsers\Repositories\" />
 	</ItemGroup>
 
 </Project>
diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml
index 80abc8a..48bc88f 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.xml
+++ b/FlexJobApi.Core/FlexJobApi.Core.xml
@@ -919,49 +919,14 @@
             浠诲姟
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.TaskInfoUser.UserId">
+        <member name="P:FlexJobApi.Core.TaskInfoUser.EnterpriseEmployeeId">
             <summary>
-            鐢ㄦ埛淇℃伅Id
+            鐏靛伐Id
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.TaskInfoUser.User">
+        <member name="P:FlexJobApi.Core.TaskInfoUser.EnterpriseEmployee">
             <summary>
-            鐢ㄦ埛淇℃伅
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.TaskInfoUser.HireStatus">
-            <summary>
-            褰曠敤鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.TaskInfoUser.HireTime">
-            <summary>
-            褰曠敤鏃堕棿
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.TaskInfoUser.UserSignContractStatus">
-            <summary>
-            鐏靛伐绛剧害鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.TaskInfoUser.UserSignContractTime">
-            <summary>
-            鐏靛伐绛剧害鏃堕棿
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.TaskInfoUser.EnterpriseSignContractStatus">
-            <summary>
-            浼佷笟绛剧害鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.TaskInfoUser.EnterpriseSignContractTime">
-            <summary>
-            浼佷笟绛剧害鏃堕棿
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.TaskInfoUser.ContractUrl">
-            <summary>
-            鐢靛瓙鍚堝悓
+            鐏靛伐
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.TaskInfoUser.ArrangeStatus">
@@ -1342,6 +1307,107 @@
         <member name="P:FlexJobApi.Core.EnterpriseAuth.ProxyPowerAttorneyUrl">
             <summary>
             浼佷笟鎺堟潈涔�
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.EnterpriseEmployee">
+            <summary>
+            鐏靛伐
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.EnterpriseId">
+            <summary>
+            浼佷笟Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.Enterprise">
+            <summary>
+            浼佷笟
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.UserId">
+            <summary>
+            鐢ㄦ埛淇℃伅Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.User">
+            <summary>
+            鐢ㄦ埛淇℃伅
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.Name">
+            <summary>
+            濮撳悕
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.Identity">
+            <summary>
+            韬唤璇佸彿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.PhoneNumber">
+            <summary>
+            鎵嬫満鍙�
+            </summary>
+            <remarks>鐧诲綍鎵嬫満鍙�</remarks>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.Gender">
+            <summary>
+            鎬у埆
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.Age">
+            <summary>
+            骞撮緞
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.IdentityImg">
+            <summary>
+            韬唤璇佷汉鍍忛潰
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.IdentityBackImg">
+            <summary>
+            韬唤璇佸浗寰介潰
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.HireStatus">
+            <summary>
+            褰曠敤鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.HireTime">
+            <summary>
+            褰曠敤鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.UserSignContractStatus">
+            <summary>
+            鐏靛伐绛剧害鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.UserSignContractTime">
+            <summary>
+            鐏靛伐绛剧害鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.EnterpriseSignContractStatus">
+            <summary>
+            浼佷笟绛剧害鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.EnterpriseSignContractTime">
+            <summary>
+            浼佷笟绛剧害鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.ContractUrl">
+            <summary>
+            鐢靛瓙鍚堝悓
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.TaskInfoUsers">
+            <summary>
+            浠诲姟闆囦剑淇℃伅
             </summary>
         </member>
         <member name="T:FlexJobApi.Core.Menu">
@@ -2254,6 +2320,11 @@
         <member name="F:FlexJobApi.Core.EnumResourceController.Enterprise">
             <summary>
             浼佷笟淇℃伅
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumResourceController.EnterpriseEmployee">
+            <summary>
+            鐏靛伐淇℃伅
             </summary>
         </member>
         <member name="T:FlexJobApi.Core.EnumResourceMethod">
@@ -4376,6 +4447,137 @@
             鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鑿滃崟
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.GetEnterpriseEmployeesQuery">
+            <summary>
+            鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQuery.Keywords">
+            <summary>
+            鍏抽敭瀛楋紙濮撳悕/鎵嬫満/韬唤璇佸彿锛�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQuery.CreatedTimeStart">
+            <summary>
+            鐧昏鏃堕棿-鏈�鏃╂椂闂�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQuery.CreatedTimeEnd">
+            <summary>
+            鐧昏鏃堕棿-鏈�鏅氭椂闂�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQuery.SignContractTimeStart">
+            <summary>
+            绛剧害鏃堕棿-鏈�鏃╂椂闂�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQuery.SignContractTimeEnd">
+            <summary>
+            绛剧害鏃堕棿-鏈�鏅氭椂闂�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQuery.HireStatus">
+            <summary>
+            褰曠敤鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQuery.IsReal">
+            <summary>
+            鏄惁瀹炲悕
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQuery.UserSignContractStatus">
+            <summary>
+            鐏靛伐绛剧害鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQuery.EnterpriseSignContractStatus">
+            <summary>
+            浼佷笟绛剧害鐘舵��
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.GetEnterpriseEmployeesQueryResult">
+            <summary>
+            鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁-缁撴灉
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem">
+            <summary>
+            鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁-缁撴灉-椤�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.Id">
+            <summary>
+            鐏靛伐Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.Name">
+            <summary>
+            濮撳悕
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.Identity">
+            <summary>
+            韬唤璇佸彿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.Gender">
+            <summary>
+            鎬у埆
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.Age">
+            <summary>
+            骞撮緞
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.PhoneNumber">
+            <summary>
+            鎵嬫満鍙�
+            </summary>
+            <remarks>鐧诲綍鎵嬫満鍙�</remarks>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.HireStatus">
+            <summary>
+            褰曠敤鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.UserIsReal">
+            <summary>
+            瀹炲悕鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.UserSignContractStatus">
+            <summary>
+            鐏靛伐绛剧害鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.HireTime">
+            <summary>
+            褰曠敤鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.UserRealTime">
+            <summary>
+            瀹炲悕鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.UserSignContractTime">
+            <summary>
+            绛剧害鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.EnterpriseSignContractStatus">
+            <summary>
+            浼佷笟绛剧害鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.EnterpriseSignContractTime">
+            <summary>
+            浼佷笟绛剧害鏃堕棿
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.SaveEnterpriseCommand">
             <summary>
             淇濆瓨浼佷笟
@@ -5817,11 +6019,6 @@
             </summary>
             <remarks>鑱旂郴鐢佃瘽</remarks>
         </member>
-        <member name="P:FlexJobApi.Core.SaveUserResumePersonalCommand.Identity">
-            <summary>
-            韬唤璇佸彿
-            </summary>
-        </member>
         <member name="P:FlexJobApi.Core.SaveUserResumePersonalCommand.PersonalIdentityCode">
             <summary>
             韬唤缂栧彿
@@ -6048,11 +6245,6 @@
             </summary>
             <remarks>鑱旂郴鐢佃瘽</remarks>
         </member>
-        <member name="P:FlexJobApi.Core.GetUserResumePersonalQueryResult.Identity">
-            <summary>
-            韬唤璇佸彿
-            </summary>
-        </member>
         <member name="P:FlexJobApi.Core.GetUserResumePersonalQueryResult.PersonalIdentityCode">
             <summary>
             韬唤缂栧彿
@@ -6252,56 +6444,6 @@
         <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.TaskInfoUsers">
             <summary>
             缁忓巻
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.CreatedTime">
-            <summary>
-            鎶ュ悕鏃堕棿
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.HireStatus">
-            <summary>
-            褰曠敤鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.HireTime">
-            <summary>
-            褰曠敤鏃堕棿
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.ArrangeStatus">
-            <summary>
-            瀹夋帓鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.ArrangeTime">
-            <summary>
-            瀹夋帓鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.UserSignContractStatus">
-            <summary>
-            鐏靛伐绛剧害鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.UserSignContractTime">
-            <summary>
-            鐏靛伐绛剧害鏃堕棿
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.EnterpriseSignContractStatus">
-            <summary>
-            浼佷笟绛剧害鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.EnterpriseSignContractTime">
-            <summary>
-            浼佷笟绛剧害鏃堕棿
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumeQueryResult.ContractUrl">
-            <summary>
-            鐢靛瓙鍚堝悓
             </summary>
         </member>
         <member name="T:FlexJobApi.Core.GetUserResumeQueryResultExpectJob">
@@ -6565,46 +6707,6 @@
             宸ヤ綔缁忛獙
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.HireStatus">
-            <summary>
-            褰曠敤鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.HireTime">
-            <summary>
-            褰曠敤鏃堕棿
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.ArrangeStatus">
-            <summary>
-            瀹夋帓鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.ArrangeTime">
-            <summary>
-            瀹夋帓鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.UserSignContractStatus">
-            <summary>
-            鐏靛伐绛剧害鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.UserSignContractTime">
-            <summary>
-            鐏靛伐绛剧害鏃堕棿
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.EnterpriseSignContractStatus">
-            <summary>
-            浼佷笟绛剧害鐘舵��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.GetUserResumesQueryResultItem.EnterpriseSignContractTime">
-            <summary>
-            浼佷笟绛剧害鏃堕棿
-            </summary>
-        </member>
         <member name="T:FlexJobApi.Core.GetUserResumeWorkExperienceQuery">
             <summary>
             鏌ヨ鐢ㄦ埛绠�鍘�-宸ヤ綔缁忛獙
@@ -6770,6 +6872,11 @@
             宸插彇娑�
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.GetPersonalUserInfosQuery">
+            <summary>
+            鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.GetUserInfoRolesQuery">
             <summary>
             鏌ヨ鐢ㄦ埛瑙掕壊鍒楄〃
diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs
new file mode 100644
index 0000000..b719bc1
--- /dev/null
+++ b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs
@@ -0,0 +1,147 @@
+锘縰sing 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.EnterpriseEmployee])]
+    public class GetEnterpriseEmployeesQuery : PagedListQuery<GetEnterpriseEmployeesQueryResult, GetEnterpriseEmployeesQueryResultItem>
+    {
+        /// <summary>
+        /// 鍏抽敭瀛楋紙濮撳悕/鎵嬫満/韬唤璇佸彿锛�
+        /// </summary>
+        public string Keywords { get; set; }
+
+        /// <summary>
+        /// 鐧昏鏃堕棿-鏈�鏃╂椂闂�
+        /// </summary>
+        public DateTimeOffset? CreatedTimeStart { get; set; }
+
+        /// <summary>
+        /// 鐧昏鏃堕棿-鏈�鏅氭椂闂�
+        /// </summary>
+        public DateTimeOffset? CreatedTimeEnd { get; set; }
+
+        /// <summary>
+        /// 绛剧害鏃堕棿-鏈�鏃╂椂闂�
+        /// </summary>
+        public DateTime? SignContractTimeStart { get; set; }
+
+        /// <summary>
+        /// 绛剧害鏃堕棿-鏈�鏅氭椂闂�
+        /// </summary>
+        public DateTime? SignContractTimeEnd { get; set; }
+
+        /// <summary>
+        /// 褰曠敤鐘舵��
+        /// </summary>
+        public EnumTaskUserHireStatus? HireStatus { get; set; }
+
+        /// <summary>
+        /// 鏄惁瀹炲悕
+        /// </summary>
+        public bool? IsReal { get; set; }
+
+        /// <summary>
+        /// 鐏靛伐绛剧害鐘舵��
+        /// </summary>
+        public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; }
+
+        /// <summary>
+        /// 浼佷笟绛剧害鐘舵��
+        /// </summary>
+        public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; }
+    }
+
+    /// <summary>
+    /// 鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁-缁撴灉
+    /// </summary>
+    public class GetEnterpriseEmployeesQueryResult : PagedListQueryResult<GetEnterpriseEmployeesQueryResultItem>
+    {
+
+    }
+
+    /// <summary>
+    /// 鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁-缁撴灉-椤�
+    /// </summary>
+    public class GetEnterpriseEmployeesQueryResultItem
+    {
+        /// <summary>
+        /// 鐏靛伐Id
+        /// </summary>
+        public Guid Id { get; set; }
+
+        /// <summary>
+        /// 濮撳悕
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 韬唤璇佸彿
+        /// </summary>
+        public string Identity { get; set; }
+
+        /// <summary>
+        /// 鎬у埆
+        /// </summary>
+        public EnumUserGender? Gender { get; set; }
+
+        /// <summary>
+        /// 骞撮緞
+        /// </summary>
+        public int? Age { get; set; }
+
+        /// <summary>
+        /// 鎵嬫満鍙�
+        /// </summary>
+        /// <remarks>鐧诲綍鎵嬫満鍙�</remarks>
+        public string PhoneNumber { get; set; }
+
+        /// <summary>
+        /// 褰曠敤鐘舵��
+        /// </summary>
+        public EnumTaskUserHireStatus HireStatus { get; set; }
+
+        /// <summary>
+        /// 瀹炲悕鐘舵��
+        /// </summary>
+        public bool? UserIsReal { get; set; }
+
+        /// <summary>
+        /// 鐏靛伐绛剧害鐘舵��
+        /// </summary>
+        public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; }
+
+        /// <summary>
+        /// 褰曠敤鏃堕棿
+        /// </summary>
+        public DateTime? HireTime { get; set; }
+
+        /// <summary>
+        /// 瀹炲悕鏃堕棿
+        /// </summary>
+        public DateTime? UserRealTime { get; set; }
+
+        /// <summary>
+        /// 绛剧害鏃堕棿
+        /// </summary>
+        public DateTime? UserSignContractTime { get; set; }
+
+        /// <summary>
+        /// 浼佷笟绛剧害鐘舵��
+        /// </summary>
+        public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; }
+
+        /// <summary>
+        /// 浼佷笟绛剧害鏃堕棿
+        /// </summary>
+        public DateTime? EnterpriseSignContractTime { get; set; }
+
+    }
+}
diff --git a/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumeQuery.cs b/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumeQuery.cs
index e74306a..a52e72e 100644
--- a/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumeQuery.cs
+++ b/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumeQuery.cs
@@ -185,57 +185,6 @@
         /// 缁忓巻
         /// </summary>
         public List<GetUserResumeQueryResultExperience> TaskInfoUsers { get; set; }
-
-        /// <summary>
-        /// 鎶ュ悕鏃堕棿
-        /// </summary>
-        public DateTimeOffset? CreatedTime { get; set; }
-
-        /// <summary>
-        /// 褰曠敤鐘舵��
-        /// </summary>
-        public EnumTaskUserHireStatus? HireStatus { get; set; }
-
-        /// <summary>
-        /// 褰曠敤鏃堕棿
-        /// </summary>
-        public DateTime? HireTime { get; set; }
-
-        /// <summary>
-        /// 瀹夋帓鐘舵��
-        /// </summary>
-        public EnumTaskUserArrangeStatus? ArrangeStatus { get; set; }
-
-        /// <summary>
-        /// 瀹夋帓鐘舵��
-        /// </summary>
-        public DateTime? ArrangeTime { get; set; }
-
-        /// <summary>
-        /// 鐏靛伐绛剧害鐘舵��
-        /// </summary>
-        public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; }
-
-        /// <summary>
-        /// 鐏靛伐绛剧害鏃堕棿
-        /// </summary>
-        public DateTime? UserSignContractTime { get; set; }
-
-        /// <summary>
-        /// 浼佷笟绛剧害鐘舵��
-        /// </summary>
-        public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; }
-
-        /// <summary>
-        /// 浼佷笟绛剧害鏃堕棿
-        /// </summary>
-        public DateTime? EnterpriseSignContractTime { get; set; }
-
-        /// <summary>
-        /// 鐢靛瓙鍚堝悓
-        /// </summary>
-        public string ContractUrl { get; set; }
-
     }
 
     /// <summary>
diff --git a/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumesQuery.cs b/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumesQuery.cs
index d75ff77..c0c7c58 100644
--- a/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumesQuery.cs
+++ b/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumesQuery.cs
@@ -150,46 +150,5 @@
         /// 宸ヤ綔缁忛獙
         /// </summary>
         public string WorkExperience { get; set; }
-
-        /// <summary>
-        /// 褰曠敤鐘舵��
-        /// </summary>
-        public EnumTaskUserHireStatus? HireStatus { get; set; }
-
-        /// <summary>
-        /// 褰曠敤鏃堕棿
-        /// </summary>
-        public DateTime? HireTime { get; set; }
-
-        /// <summary>
-        /// 瀹夋帓鐘舵��
-        /// </summary>
-        public EnumTaskUserArrangeStatus? ArrangeStatus { get; set; }
-
-        /// <summary>
-        /// 瀹夋帓鐘舵��
-        /// </summary>
-        public DateTime? ArrangeTime { get; set; }
-
-        /// <summary>
-        /// 鐏靛伐绛剧害鐘舵��
-        /// </summary>
-        public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; }
-
-        /// <summary>
-        /// 鐏靛伐绛剧害鏃堕棿
-        /// </summary>
-        public DateTime? UserSignContractTime { get; set; }
-
-        /// <summary>
-        /// 浼佷笟绛剧害鐘舵��
-        /// </summary>
-        public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; }
-
-        /// <summary>
-        /// 浼佷笟绛剧害鏃堕棿
-        /// </summary>
-        public DateTime? EnterpriseSignContractTime { get; set; }
-
     }
 }
diff --git a/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfosQuery.cs b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfosQuery.cs
new file mode 100644
index 0000000..96e2dd7
--- /dev/null
+++ b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfosQuery.cs
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁
+    /// </summary>
+    public class GetPersonalUserInfosQuery:PagedList
+    {
+    }
+}
diff --git a/FlexJobApi.Database.Migrations/Migrations/20250812053139_UpdateUser0812002.Designer.cs b/FlexJobApi.Database.Migrations/Migrations/20250812053139_UpdateUser0812002.Designer.cs
new file mode 100644
index 0000000..ecaae9a
--- /dev/null
+++ b/FlexJobApi.Database.Migrations/Migrations/20250812053139_UpdateUser0812002.Designer.cs
@@ -0,0 +1,2307 @@
+锘�// <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("20250812053139_UpdateUser0812002")]
+    partial class UpdateUser0812002
+    {
+        /// <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>("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>("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<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<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<int>("HireStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("HireTime")
+                        .HasColumnType("datetime2");
+
+                    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<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.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.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>("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<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<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<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<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<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("EnterpriseEmployeeId")
+                        .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("EnterpriseEmployeeId");
+
+                    b.HasIndex("TaskInfoId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("TaskInfoUser");
+                });
+
+            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<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.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.UserTaskCollect", 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("UserTaskCollect");
+                });
+
+            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()
+                        .HasForeignKey("UserId");
+
+                    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.HasOne("FlexJobApi.Core.User", null)
+                        .WithMany("TaskInfoUsers")
+                        .HasForeignKey("UserId");
+
+                    b.Navigation("EnterpriseEmployee");
+
+                    b.Navigation("TaskInfo");
+                });
+
+            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.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.UserTaskCollect", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo")
+                        .WithMany()
+                        .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.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");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.User", b =>
+                {
+                    b.Navigation("BankCards");
+
+                    b.Navigation("Photos");
+
+                    b.Navigation("TaskInfoUsers");
+
+                    b.Navigation("UserAuth");
+
+                    b.Navigation("UserCredentials");
+
+                    b.Navigation("UserDepartments");
+
+                    b.Navigation("UserExpectJobs");
+
+                    b.Navigation("UserRoles");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/FlexJobApi.Database.Migrations/Migrations/20250812053139_UpdateUser0812002.cs b/FlexJobApi.Database.Migrations/Migrations/20250812053139_UpdateUser0812002.cs
new file mode 100644
index 0000000..fad2979
--- /dev/null
+++ b/FlexJobApi.Database.Migrations/Migrations/20250812053139_UpdateUser0812002.cs
@@ -0,0 +1,222 @@
+锘縰sing System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace FlexJobApi.Database.Migrations.Migrations
+{
+    /// <inheritdoc />
+    public partial class UpdateUser0812002 : Migration
+    {
+        /// <inheritdoc />
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropForeignKey(
+                name: "FK_TaskInfoUser_User_UserId",
+                table: "TaskInfoUser");
+
+            migrationBuilder.DropColumn(
+                name: "ContractUrl",
+                table: "TaskInfoUser");
+
+            migrationBuilder.DropColumn(
+                name: "EnterpriseSignContractStatus",
+                table: "TaskInfoUser");
+
+            migrationBuilder.DropColumn(
+                name: "EnterpriseSignContractTime",
+                table: "TaskInfoUser");
+
+            migrationBuilder.DropColumn(
+                name: "HireStatus",
+                table: "TaskInfoUser");
+
+            migrationBuilder.DropColumn(
+                name: "HireTime",
+                table: "TaskInfoUser");
+
+            migrationBuilder.DropColumn(
+                name: "UserSignContractStatus",
+                table: "TaskInfoUser");
+
+            migrationBuilder.DropColumn(
+                name: "UserSignContractTime",
+                table: "TaskInfoUser");
+
+            migrationBuilder.AlterColumn<Guid>(
+                name: "UserId",
+                table: "TaskInfoUser",
+                type: "uniqueidentifier",
+                nullable: true,
+                oldClrType: typeof(Guid),
+                oldType: "uniqueidentifier");
+
+            migrationBuilder.AddColumn<Guid>(
+                name: "EnterpriseEmployeeId",
+                table: "TaskInfoUser",
+                type: "uniqueidentifier",
+                nullable: false,
+                defaultValue: new Guid("00000000-0000-0000-0000-000000000000"));
+
+            migrationBuilder.CreateTable(
+                name: "EnterpriseEmployee",
+                columns: table => new
+                {
+                    Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
+                    EnterpriseId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
+                    UserId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
+                    Name = table.Column<string>(type: "nvarchar(32)", maxLength: 32, nullable: true),
+                    Identity = table.Column<string>(type: "nvarchar(max)", nullable: true),
+                    PhoneNumber = table.Column<string>(type: "nvarchar(11)", maxLength: 11, nullable: true),
+                    Gender = table.Column<int>(type: "int", nullable: true),
+                    Age = table.Column<int>(type: "int", nullable: true),
+                    IdentityImg = table.Column<string>(type: "nvarchar(max)", nullable: true),
+                    IdentityBackImg = table.Column<string>(type: "nvarchar(max)", nullable: true),
+                    HireStatus = table.Column<int>(type: "int", nullable: false),
+                    HireTime = table.Column<DateTime>(type: "datetime2", nullable: true),
+                    UserSignContractStatus = table.Column<int>(type: "int", nullable: true),
+                    UserSignContractTime = table.Column<DateTime>(type: "datetime2", nullable: true),
+                    EnterpriseSignContractStatus = table.Column<int>(type: "int", nullable: true),
+                    EnterpriseSignContractTime = table.Column<DateTime>(type: "datetime2", nullable: true),
+                    ContractUrl = table.Column<string>(type: "nvarchar(max)", nullable: true),
+                    CreatedTime = table.Column<DateTimeOffset>(type: "datetimeoffset", nullable: false),
+                    UpdatedTime = table.Column<DateTimeOffset>(type: "datetimeoffset", nullable: true),
+                    Sort = table.Column<int>(type: "int", nullable: false),
+                    TraceId = table.Column<string>(type: "nvarchar(max)", nullable: true),
+                    CreatedUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
+                    CreatedEnterpriseId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
+                    UpdatedUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
+                    IsDeleted = table.Column<bool>(type: "bit", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_EnterpriseEmployee", x => x.Id);
+                    table.ForeignKey(
+                        name: "FK_EnterpriseEmployee_Enterprise_EnterpriseId",
+                        column: x => x.EnterpriseId,
+                        principalTable: "Enterprise",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                    table.ForeignKey(
+                        name: "FK_EnterpriseEmployee_User_UserId",
+                        column: x => x.UserId,
+                        principalTable: "User",
+                        principalColumn: "Id");
+                });
+
+            migrationBuilder.CreateIndex(
+                name: "IX_TaskInfoUser_EnterpriseEmployeeId",
+                table: "TaskInfoUser",
+                column: "EnterpriseEmployeeId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_EnterpriseEmployee_EnterpriseId",
+                table: "EnterpriseEmployee",
+                column: "EnterpriseId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_EnterpriseEmployee_UserId",
+                table: "EnterpriseEmployee",
+                column: "UserId");
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_TaskInfoUser_EnterpriseEmployee_EnterpriseEmployeeId",
+                table: "TaskInfoUser",
+                column: "EnterpriseEmployeeId",
+                principalTable: "EnterpriseEmployee",
+                principalColumn: "Id",
+                onDelete: ReferentialAction.Restrict);
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_TaskInfoUser_User_UserId",
+                table: "TaskInfoUser",
+                column: "UserId",
+                principalTable: "User",
+                principalColumn: "Id");
+        }
+
+        /// <inheritdoc />
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropForeignKey(
+                name: "FK_TaskInfoUser_EnterpriseEmployee_EnterpriseEmployeeId",
+                table: "TaskInfoUser");
+
+            migrationBuilder.DropForeignKey(
+                name: "FK_TaskInfoUser_User_UserId",
+                table: "TaskInfoUser");
+
+            migrationBuilder.DropTable(
+                name: "EnterpriseEmployee");
+
+            migrationBuilder.DropIndex(
+                name: "IX_TaskInfoUser_EnterpriseEmployeeId",
+                table: "TaskInfoUser");
+
+            migrationBuilder.DropColumn(
+                name: "EnterpriseEmployeeId",
+                table: "TaskInfoUser");
+
+            migrationBuilder.AlterColumn<Guid>(
+                name: "UserId",
+                table: "TaskInfoUser",
+                type: "uniqueidentifier",
+                nullable: false,
+                defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
+                oldClrType: typeof(Guid),
+                oldType: "uniqueidentifier",
+                oldNullable: true);
+
+            migrationBuilder.AddColumn<string>(
+                name: "ContractUrl",
+                table: "TaskInfoUser",
+                type: "nvarchar(max)",
+                nullable: true);
+
+            migrationBuilder.AddColumn<int>(
+                name: "EnterpriseSignContractStatus",
+                table: "TaskInfoUser",
+                type: "int",
+                nullable: true);
+
+            migrationBuilder.AddColumn<DateTime>(
+                name: "EnterpriseSignContractTime",
+                table: "TaskInfoUser",
+                type: "datetime2",
+                nullable: true);
+
+            migrationBuilder.AddColumn<int>(
+                name: "HireStatus",
+                table: "TaskInfoUser",
+                type: "int",
+                nullable: false,
+                defaultValue: 0);
+
+            migrationBuilder.AddColumn<DateTime>(
+                name: "HireTime",
+                table: "TaskInfoUser",
+                type: "datetime2",
+                nullable: true);
+
+            migrationBuilder.AddColumn<int>(
+                name: "UserSignContractStatus",
+                table: "TaskInfoUser",
+                type: "int",
+                nullable: true);
+
+            migrationBuilder.AddColumn<DateTime>(
+                name: "UserSignContractTime",
+                table: "TaskInfoUser",
+                type: "datetime2",
+                nullable: true);
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_TaskInfoUser_User_UserId",
+                table: "TaskInfoUser",
+                column: "UserId",
+                principalTable: "User",
+                principalColumn: "Id",
+                onDelete: ReferentialAction.Cascade);
+        }
+    }
+}
diff --git a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs
index 70cab4d..c7f8b2b 100644
--- a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs
+++ b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs
@@ -427,6 +427,95 @@
                     b.ToTable("EnterpriseAuth");
                 });
 
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int?>("Age")
+                        .HasColumnType("int");
+
+                    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<int>("HireStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("HireTime")
+                        .HasColumnType("datetime2");
+
+                    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<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.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.Menu", b =>
                 {
                     b.Property<Guid>("Id")
@@ -1135,9 +1224,6 @@
                     b.Property<DateTime?>("ArrangeTime")
                         .HasColumnType("datetime2");
 
-                    b.Property<string>("ContractUrl")
-                        .HasColumnType("nvarchar(max)");
-
                     b.Property<Guid?>("CreatedEnterpriseId")
                         .HasColumnType("uniqueidentifier");
 
@@ -1147,17 +1233,8 @@
                     b.Property<Guid?>("CreatedUserId")
                         .HasColumnType("uniqueidentifier");
 
-                    b.Property<int?>("EnterpriseSignContractStatus")
-                        .HasColumnType("int");
-
-                    b.Property<DateTime?>("EnterpriseSignContractTime")
-                        .HasColumnType("datetime2");
-
-                    b.Property<int>("HireStatus")
-                        .HasColumnType("int");
-
-                    b.Property<DateTime?>("HireTime")
-                        .HasColumnType("datetime2");
+                    b.Property<Guid>("EnterpriseEmployeeId")
+                        .HasColumnType("uniqueidentifier");
 
                     b.Property<bool>("IsDeleted")
                         .HasColumnType("bit");
@@ -1177,16 +1254,12 @@
                     b.Property<Guid?>("UpdatedUserId")
                         .HasColumnType("uniqueidentifier");
 
-                    b.Property<Guid>("UserId")
+                    b.Property<Guid?>("UserId")
                         .HasColumnType("uniqueidentifier");
 
-                    b.Property<int?>("UserSignContractStatus")
-                        .HasColumnType("int");
-
-                    b.Property<DateTime?>("UserSignContractTime")
-                        .HasColumnType("datetime2");
-
                     b.HasKey("Id");
+
+                    b.HasIndex("EnterpriseEmployeeId");
 
                     b.HasIndex("TaskInfoId");
 
@@ -1835,6 +1908,23 @@
                     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()
+                        .HasForeignKey("UserId");
+
+                    b.Navigation("Enterprise");
+
+                    b.Navigation("User");
+                });
+
             modelBuilder.Entity("FlexJobApi.Core.Menu", b =>
                 {
                     b.HasOne("FlexJobApi.Core.Menu", "Parent")
@@ -1951,21 +2041,25 @@
 
             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.HasOne("FlexJobApi.Core.User", "User")
+                    b.HasOne("FlexJobApi.Core.User", null)
                         .WithMany("TaskInfoUsers")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
+                        .HasForeignKey("UserId");
+
+                    b.Navigation("EnterpriseEmployee");
 
                     b.Navigation("TaskInfo");
-
-                    b.Navigation("User");
                 });
 
             modelBuilder.Entity("FlexJobApi.Core.User", b =>
@@ -2158,6 +2252,11 @@
                     b.Navigation("Users");
                 });
 
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b =>
+                {
+                    b.Navigation("TaskInfoUsers");
+                });
+
             modelBuilder.Entity("FlexJobApi.Core.Menu", b =>
                 {
                     b.Navigation("Children");
diff --git a/FlexJobApi.Database.Migrations/REDEME.MD b/FlexJobApi.Database.Migrations/REDEME.MD
index 592cc08..78eab90 100644
--- a/FlexJobApi.Database.Migrations/REDEME.MD
+++ b/FlexJobApi.Database.Migrations/REDEME.MD
@@ -1,7 +1,7 @@
 -------------------------------主数据库---------------------------------------
 
 新增迁移文件
-dotnet ef migrations add UpdateUser0812 -s "../FlexJobApi.Web.Entry" -c DefaultDbContext
+dotnet ef migrations add UpdateUser0812002 -s "../FlexJobApi.Web.Entry" -c DefaultDbContext
 
 删除迁移文件
 dotnet ef migrations remove -s "../FlexJobApi.Web.Entry" -c DefaultDbContext
diff --git a/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.csproj b/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.csproj
index 92ae12a..f16b9d8 100644
--- a/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.csproj
+++ b/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.csproj
@@ -15,4 +15,8 @@
 		<ProjectReference Include="..\FlexJobApi.Core\FlexJobApi.Core.csproj" />
 	</ItemGroup>
 
+	<ItemGroup>
+	  <Folder Include="TaskUsers\Queries\" />
+	</ItemGroup>
+
 </Project>
diff --git a/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml b/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml
index 57c3cb0..56ed4c2 100644
--- a/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml
+++ b/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml
@@ -73,6 +73,24 @@
             <param name="cancellationToken"></param>
             <returns></returns>
         </member>
+        <member name="T:FlexJobApi.FlexJobServer.Application.ApplyTaskCommandHandler">
+            <summary>
+            鎶ュ悕浠诲姟
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.FlexJobServer.Application.ApplyTaskCommandHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfoUser},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.User},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfo},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseEmployee})">
+            <summary>
+            鎶ュ悕浠诲姟
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.FlexJobServer.Application.ApplyTaskCommandHandler.Handle(FlexJobApi.Core.ApplyTaskCommand,System.Threading.CancellationToken)">
+            <summary>
+            鎶ュ悕浠诲姟
+            </summary>
+            <param name="request"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
         <member name="T:FlexJobApi.FlexJobServer.Application.TaskUserCommandHandler">
             <summary>
             浠诲姟闆囦剑鍛戒护澶勭悊鍣�
@@ -86,14 +104,6 @@
         <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserCommandHandler.Handle(FlexJobApi.Core.CollectTaskCommand,System.Threading.CancellationToken)">
             <summary>
             鏀惰棌浠诲姟
-            </summary>
-            <param name="request"></param>
-            <param name="cancellationToken"></param>
-            <returns></returns>
-        </member>
-        <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserCommandHandler.Handle(FlexJobApi.Core.ApplyTaskCommand,System.Threading.CancellationToken)">
-            <summary>
-            鎶ュ悕浠诲姟
             </summary>
             <param name="request"></param>
             <param name="cancellationToken"></param>
diff --git a/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/ApplyTaskCommandHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/ApplyTaskCommandHandler.cs
new file mode 100644
index 0000000..2b2e5c3
--- /dev/null
+++ b/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/ApplyTaskCommandHandler.cs
@@ -0,0 +1,116 @@
+锘縰sing FlexJobApi.Core;
+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.FlexJobServer.Application
+{
+    /// <summary>
+    /// 鎶ュ悕浠诲姟
+    /// </summary>
+    public class ApplyTaskCommandHandler(
+            IRepository<TaskInfoUser> repTaskInfoUser,
+            IRepository<User> repUser,
+            IRepository<TaskInfo> repTaskInfo,
+            IRepository<EnterpriseEmployee> repEnterpriseEmployee
+        ) :
+        IRequestHandler<ApplyTaskCommand, int>
+
+    {
+        private readonly IRepository<TaskInfoUser> repTaskInfoUser = repTaskInfoUser;
+        private readonly IRepository<User> repUser = repUser;
+        private readonly IRepository<TaskInfo> repTaskInfo = repTaskInfo;
+        private readonly IRepository<EnterpriseEmployee> repEnterpriseEmployee = repEnterpriseEmployee;
+
+        /// <summary>
+        /// 鎶ュ悕浠诲姟
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<int> Handle(ApplyTaskCommand request, CancellationToken cancellationToken)
+        {
+            var logier = JwtUtils.GetCurrentLogier();
+            var applyTaskIds = await repTaskInfoUser.AsQueryable().AsNoTracking()
+                .Include(it => it.TaskInfo)
+                .Where(it => request.Ids.Contains(it.TaskInfoId) && it.EnterpriseEmployee.UserId == logier.Id)
+                .Select(it => it.TaskInfoId)
+                .ToListAsync(cancellationToken);
+            var taskIds = request.Ids.Where(it => !applyTaskIds.Contains(it)).ToList();
+            if (taskIds.IsNotNull())
+            {
+                var user = await repUser.AsQueryable().AsNoTracking()
+                    .Include(it => it.UserAuth)
+                    .Where(it => it.Id == logier.Id)
+                    .Select(it => new
+                    {
+                        it.Name,
+                        it.Identity,
+                        it.ContactPhoneNumber,
+                        it.Gender,
+                        it.Age,
+                        it.UserAuth.IdentityImg,
+                        it.UserAuth.IdentityBackImg
+                    })
+                    .FirstOrDefaultAsync(cancellationToken);
+                if (user == null) throw Oops.Oh(EnumErrorCodeType.s404, "璇ヨ处鍙�");
+                var tasks = await repTaskInfo.AsQueryable().AsNoTracking()
+                    .Where(it => taskIds.Contains(it.Id))
+                    .Select(it => new
+                    {
+                        it.Id,
+                        it.EnterpriseId
+                    })
+                    .ToListAsync(cancellationToken);
+                var enterpriseIds = tasks.DistinctSelect(it => it.EnterpriseId);
+                var employees = await repEnterpriseEmployee.AsQueryable()
+                    .Where(it =>
+                        enterpriseIds.Contains(it.EnterpriseId)
+                        && (it.UserId == logier.Id
+                        || it.Name == user.Name
+                        && it.Identity == user.Identity))
+                    .ToListAsync();
+                foreach (var taskId in taskIds)
+                {
+                    var task = tasks.FirstOrDefault(it => it.Id == taskId);
+                    if (task == null) throw Oops.Oh(EnumErrorCodeType.s404, "璇ヤ换鍔�");
+                    var employee = employees.FirstOrDefault(it => it.EnterpriseId == task.EnterpriseId && it.UserId == logier.Id);
+                    if (employee == null)
+                    {
+                        employee = employees.FirstOrDefault(it => it.EnterpriseId == task.EnterpriseId && it.Name == user.Name && it.Identity == user.Name);
+                    }
+                    if (employee == null)
+                    {
+                        employee = new EnterpriseEmployee
+                        {
+                            EnterpriseId = task.EnterpriseId,
+                            UserId = logier.Id,
+                            Name = user.Name,
+                            Identity = user.Identity,
+                            PhoneNumber = user.ContactPhoneNumber,
+                            Gender = user.Gender,
+                            Age = user.Age,
+                            IdentityImg = user.IdentityImg,
+                            IdentityBackImg = user.IdentityBackImg,
+                            HireStatus = EnumTaskUserHireStatus.Wait,
+                        };
+                        await repEnterpriseEmployee.InsertAsync(employee);
+                    }
+                    var entity = new TaskInfoUser
+                    {
+                        TaskInfoId = taskId,
+                        EnterpriseEmployeeId = employee.Id,
+                    };
+                    await repTaskInfoUser.InsertAsync(entity);
+                }
+            }
+            return taskIds.Count;
+        }
+    }
+}
diff --git a/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs
index 6e8a1e9..3bda8d9 100644
--- a/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/TaskUsers/Commands/TaskUserCommandHandler.cs
@@ -1,5 +1,6 @@
 锘縰sing FlexJobApi.Core;
 using Furion.DatabaseAccessor;
+using Furion.FriendlyException;
 using MediatR;
 using Microsoft.EntityFrameworkCore;
 using System;
@@ -18,7 +19,6 @@
             IRepository<UserTaskCollect> repUserTaskCollect
         ) :
         IRequestHandler<CollectTaskCommand, int>,
-        IRequestHandler<ApplyTaskCommand, int>,
         IRequestHandler<SetTaskUserHireCommand, int>
     {
         private readonly IRepository<TaskInfoUser> rep = rep;
@@ -58,33 +58,6 @@
         }
 
         /// <summary>
-        /// 鎶ュ悕浠诲姟
-        /// </summary>
-        /// <param name="request"></param>
-        /// <param name="cancellationToken"></param>
-        /// <returns></returns>
-        public async Task<int> Handle(ApplyTaskCommand request, CancellationToken cancellationToken)
-        {
-            var logier = JwtUtils.GetCurrentLogier();
-            var applyIds = await rep.AsQueryable().AsNoTracking()
-                .Where(it => request.Ids.Contains(it.TaskInfoId) && it.UserId == logier.Id)
-                .Select(it => it.TaskInfoId)
-                .ToListAsync(cancellationToken);
-            var addIds = request.Ids.Where(it => !applyIds.Contains(it)).ToList();
-            foreach (var addId in addIds)
-            {
-                var entity = new TaskInfoUser
-                {
-                    TaskInfoId = addId,
-                    UserId = logier.Id,
-                    HireStatus = EnumTaskUserHireStatus.Wait
-                };
-                await rep.InsertAsync(entity);
-            }
-            return addIds.Count;
-        }
-
-        /// <summary>
         /// 浠诲姟褰曠敤
         /// </summary>
         /// <param name="request"></param>
@@ -94,24 +67,27 @@
         {
             var logier = JwtUtils.GetCurrentLogier();
             var entities = await rep.AsQueryable()
-                .Where(it => 
-                    it.TaskInfo.EnterpriseId == logier.Id 
-                    && it.TaskInfoId == request.Id 
-                    && request.UserIds.Contains(it.UserId)
-                    && it.HireStatus != request.HireStatus)
+                .Include(it => it.EnterpriseEmployee)
+                .Where(it =>
+                    it.TaskInfo.EnterpriseId == logier.Id
+                    && it.TaskInfoId == request.Id
+                    && it.EnterpriseEmployee.UserId.HasValue
+                    && request.UserIds.Contains(it.EnterpriseEmployee.UserId.Value)
+                    && it.EnterpriseEmployee.HireStatus != request.HireStatus)
                 .ToListAsync(cancellationToken);
             if (entities.IsNotNull())
             {
                 foreach (var entity in entities)
                 {
-                    entity.HireStatus = request.HireStatus;
-                    if (entity.HireStatus == EnumTaskUserHireStatus.Pass)
+                    entity.EnterpriseEmployee.HireStatus = request.HireStatus;
+                    if (entity.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass)
                     {
-                        entity.HireTime = DateTime.Now;
-                        entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass;
-                        entity.UserSignContractTime = DateTime.Now;
-                        entity.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass;
-                        entity.EnterpriseSignContractTime = DateTime.Now;
+                        entity.EnterpriseEmployee.HireTime = DateTime.Now;
+                        entity.EnterpriseEmployee.UserSignContractStatus = EnumTaskUserSignContractStatus.Pass;
+                        entity.EnterpriseEmployee.UserSignContractTime = DateTime.Now;
+                        entity.EnterpriseEmployee.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Pass;
+                        entity.EnterpriseEmployee.EnterpriseSignContractTime = DateTime.Now;
+
                         entity.ArrangeStatus = EnumTaskUserArrangeStatus.Wait;
                     }
                 }
diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
index 5b1b297..471d00c 100644
--- a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
@@ -46,8 +46,9 @@
             if (logier != null && logier.Type == EnumUserType.Personal)
             {
                 model.HireStatus = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking()
-                    .Where(it => it.TaskInfoId == model.Id && it.UserId == logier.Id)
-                    .Select(it => it.HireStatus)
+                    .Include(it => it.EnterpriseEmployee)
+                    .Where(it => it.TaskInfoId == model.Id && it.EnterpriseEmployee.UserId == logier.Id)
+                    .Select(it => it.EnterpriseEmployee.HireStatus)
                     .FirstOrDefaultAsync();
             }
             return model;
@@ -93,7 +94,7 @@
             }
             if (request.HireStatus.IsNotNull() && logier.Type == EnumUserType.Personal)
             {
-                q = q.Where(it => it.TaskInfoUsers.Any(u => u.UserId == logier.Id && request.HireStatus.Contains(u.HireStatus)));
+                q = q.Where(it => it.TaskInfoUsers.Any(u => request.HireStatus.Contains(u.EnterpriseEmployee.HireStatus)));
             }
 
             var count = new GetTaskInfosQueryResultObjectData
@@ -158,7 +159,7 @@
                         RecommendStatus = t.RecommendStatus,
                         SettlementStatus = t.SettlementStatus,
                         HireStatus = logier != null
-                            ? t.TaskInfoUsers.Where(it => it.UserId == logier.Id).Select(u => u.HireStatus).FirstOrDefault()
+                            ? t.TaskInfoUsers.Where(it => it.EnterpriseEmployee.UserId == logier.Id).Select(u => u.EnterpriseEmployee.HireStatus).FirstOrDefault()
                             : null
                     };
             var result = await request.PageModel.GetPagedListAsync<GetTaskInfosQueryResult, GetTaskInfosQueryResultItem>(s, cancellationToken);
diff --git a/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs b/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs
index 7685bd3..47fa3c8 100644
--- a/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs
@@ -269,10 +269,10 @@
             var model = await rep.GetPersonalQueryable(true)
                 .GetDetail<User, GetPersonalLoginInfoQueryResult>(cancellationToken);
             var taskUserQueryable = rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking()
-                .Where(it => it.UserId == model.Id);
+                .Where(it => it.EnterpriseEmployee.UserId == model.Id);
             model.TaskCount = await taskUserQueryable.CountAsync();
-            model.HirePassTaskCount = await taskUserQueryable.CountAsync(it => it.HireStatus == EnumTaskUserHireStatus.Pass);
-            model.HireRefuseTaskCount = await taskUserQueryable.CountAsync(it => it.HireStatus == EnumTaskUserHireStatus.Refuse);
+            model.HirePassTaskCount = await taskUserQueryable.CountAsync(it => it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass);
+            model.HireRefuseTaskCount = await taskUserQueryable.CountAsync(it => it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Refuse);
             return model;
         }
 
diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
new file mode 100644
index 0000000..d559f19
--- /dev/null
+++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
@@ -0,0 +1,77 @@
+锘縰sing FlexJobApi.Core;
+using Furion.DatabaseAccessor;
+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.UserServer.Application
+{
+    /// <summary>
+    /// 鐏靛伐鏌ヨ澶勭悊鍣�
+    /// </summary>
+    public class EnterpriseEmployeeQueryHandler(
+            IRepository<EnterpriseEmployee> rep
+        ) :
+        IRequestHandler<GetEnterpriseEmployeesQuery, GetEnterpriseEmployeesQueryResult>
+    {
+        private readonly IRepository<EnterpriseEmployee> rep = rep;
+
+        /// <summary>
+        /// 鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<GetEnterpriseEmployeesQueryResult> Handle(GetEnterpriseEmployeesQuery request, CancellationToken cancellationToken)
+        {
+            var logier = JwtUtils.GetCurrentLogier();
+            var q = rep.AsQueryable().AsNoTracking()
+                .OrderBy(it => it.CreatedTime)
+                .Where(it => it.EnterpriseId == logier.Id);
+            if (request.Keywords.IsNotNull())
+            {
+                q = q.Where(it =>
+                    it.Name.Contains(request.Keywords)
+                    || it.PhoneNumber.Contains(request.Keywords)
+                    || it.Identity.Contains(request.Keywords));
+            }
+            if (request.CreatedTimeStart.HasValue && request.CreatedTimeEnd.HasValue)
+            {
+                q = q.Where(it =>
+                    it.CreatedTime >= request.CreatedTimeStart.Value
+                    && it.CreatedTime <= request.CreatedTimeEnd.Value);
+            }
+            if (request.SignContractTimeStart.HasValue && request.SignContractTimeEnd.HasValue)
+            {
+                q = q.Where(it =>
+                    it.UserSignContractTime >= request.SignContractTimeStart.Value
+                    && it.UserSignContractTime <= request.SignContractTimeEnd.Value
+                    || it.EnterpriseSignContractTime >= request.SignContractTimeStart.Value
+                    && it.EnterpriseSignContractTime <= request.SignContractTimeEnd.Value);
+            }
+            if (request.HireStatus.HasValue)
+            {
+                q = q.Where(it => it.HireStatus == request.HireStatus);
+            }
+            if (request.IsReal.HasValue)
+            {
+                q = q.Where(it => (it.UserId.HasValue && it.User.IsReal) == request.IsReal.Value);
+            }
+            if (request.UserSignContractStatus.HasValue)
+            {
+                q = q.Where(it => it.UserSignContractStatus == request.UserSignContractStatus);
+            }
+            if (request.EnterpriseSignContractStatus.HasValue)
+            {
+                q = q.Where(it => it.EnterpriseSignContractStatus == request.EnterpriseSignContractStatus);
+            }
+            var s = q.ProjectToType<GetEnterpriseEmployeesQueryResultItem>();
+            return await request.PageModel.GetPagedListAsync<GetEnterpriseEmployeesQueryResult, GetEnterpriseEmployeesQueryResultItem>(s, cancellationToken);
+        }
+    }
+}
diff --git a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
index 93ce8b7..2d2a8c8 100644
--- a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
+++ b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
@@ -148,6 +148,24 @@
             <param name="all"></param>
             <param name="roleMenuIds"></param>
         </member>
+        <member name="T:FlexJobApi.UserServer.Application.EnterpriseEmployeeQueryHandler">
+            <summary>
+            鐏靛伐鏌ヨ澶勭悊鍣�
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.UserServer.Application.EnterpriseEmployeeQueryHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseEmployee})">
+            <summary>
+            鐏靛伐鏌ヨ澶勭悊鍣�
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.UserServer.Application.EnterpriseEmployeeQueryHandler.Handle(FlexJobApi.Core.GetEnterpriseEmployeesQuery,System.Threading.CancellationToken)">
+            <summary>
+            鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁
+            </summary>
+            <param name="request"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
         <member name="T:FlexJobApi.UserServer.Application.EnterpriseCommandHandler">
             <summary>
             浼佷笟鍛戒护澶勭悊鍣�
diff --git a/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs b/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
index ecc3042..ab0941d 100644
--- a/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
@@ -85,15 +85,9 @@
                 PersonalIdentityContent = it.PersonalIdentity.Content,
                 EducationalBackgroundCode = it.EducationalBackgroundCode,
                 EducationalBackgroundContent = it.EducationalBackground.Content,
-                TaskCount = it.TaskInfoUsers.Count(tu => tu.HireStatus == EnumTaskUserHireStatus.Pass),
+                TaskCount = it.TaskInfoUsers.Count(tu => tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass),
                 WorkSeniority = it.WorkSeniority,
                 WorkExperience = it.WorkExperience,
-                HireStatus = request.TaskInfoId.HasValue
-                    ? it.TaskInfoUsers.Where(it => it.TaskInfoId == request.TaskInfoId).Select(it => it.HireStatus as EnumTaskUserHireStatus?).FirstOrDefault()
-                    : null,
-                ArrangeStatus = request.TaskInfoId.HasValue
-                    ? it.TaskInfoUsers.Where(it => it.TaskInfoId == request.TaskInfoId).Select(it => it.ArrangeStatus).FirstOrDefault()
-                    : null,
             });
             var result = await request.PageModel.GetPagedListAsync<GetUserResumesQueryResult, GetUserResumesQueryResultItem>(s, cancellationToken);
             return result;
@@ -118,7 +112,7 @@
                  .GetDetail<User, GetUserResumeQueryResult>(cancellationToken);
             model.TaskInfoUsers = model.TaskInfoUsers.Where(it => it.SignContractTime.HasValue).ToList();
             model.TaskCount = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking()
-                .Where(it => it.UserId == model.Id && it.HireStatus == EnumTaskUserHireStatus.Pass)
+                .Where(it => it.EnterpriseEmployee.UserId == model.Id && it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass)
                 .CountAsync();
             if (model.CityCode.IsNotNull())
             {

--
Gitblit v1.9.1