From 8f87da840cc16936e77402cf229237023098382b Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 09 九月 2025 13:32:15 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs                                         |    5 
 FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs          |   10 
 FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs                                             |   10 
 FlexJobApi.Core/Enums/Users/EnumWalletTransactionStatus.cs                                           |    4 
 FlexJobApi.Core/Enums/Users/EnumUserWalletTransactionType.cs                                         |   23 
 FlexJobApi.Core/Entities/UserServer/Users/UserWallet.cs                                              |   30 
 FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs                        |    1 
 FlexJobApi.Core/Jobs/CompleteTaskSettlementT1Job.cs                                                  |  390 +++-
 FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserTransactionsQuery.cs                  |   93 +
 FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs       |   92 
 FlexJobApi.Database.Migrations/Migrations/20250909053124_UpdateUserWalletTransaction0909.Designer.cs | 3696 ++++++++++++++++++++++++++++++++++++++++
 FlexJobApi.Database.Migrations/Migrations/20250909053124_UpdateUserWalletTransaction0909.cs          |  152 +
 /dev/null                                                                                            |   31 
 FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserTransactionsQueryHandler.cs           |   84 
 FlexJobApi.Core/Jobs/RefreshEnterpriseWalletTransactionStatusJob.cs                                  |   14 
 FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserTransactionQuery.cs                   |   80 
 FlexJobApi.Core/FlexJobApi.Core.xml                                                                  |  511 ++++
 FlexJobApi.Core/Entities/UserServer/Users/UserWalletTransaction.cs                                   |  140 +
 FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml                              |   34 
 FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs                                  |    5 
 FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWalletTransaction.cs                       |   32 
 FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/GetEnterpriseWalletTransactionQuery.cs   |    2 
 FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs                           |   45 
 23 files changed, 5,193 insertions(+), 291 deletions(-)

diff --git a/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs b/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs
index 9269de7..fdb8b9a 100644
--- a/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs
+++ b/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs
@@ -207,6 +207,16 @@
         public int SettlementUserCount { get; set; }
 
         /// <summary>
+        /// 缁撶畻鎿嶄綔浜篒d
+        /// </summary>
+        public Guid? SettlementOperatorUserId { get; set; }
+
+        /// <summary>
+        /// 缁撶畻鎿嶄綔浜�
+        /// </summary>
+        public User SettlementOperatorUser { get; set; }
+
+        /// <summary>
         /// 缁撶畻寮�濮嬫椂闂�
         /// </summary>
         public DateTime? SettlementStartTime { get; set; }
diff --git a/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs b/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs
index 0d8d0ec..32fa284 100644
--- a/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs
+++ b/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs
@@ -123,6 +123,11 @@
         /// 缁撶畻澶囨敞
         /// </summary>
         public string SettlementRemark { get; set; }
+        
+        /// <summary>
+        /// 瀹為檯閲戦
+        /// </summary>
+        public decimal ActualAmount { get; set; }
 
         /// <summary>
         /// 鎻愪氦
diff --git a/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs
index aaa535d..b71012a 100644
--- a/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs
+++ b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs
@@ -45,6 +45,11 @@
         public decimal Balance { get; set; }
 
         /// <summary>
+        /// 鍐荤粨浣欓
+        /// </summary>
+        public decimal FreezeBalance { get; set; }
+
+        /// <summary>
         /// 鍗忚浜у搧鐮侊紝鍟嗘埛鍜屾敮浠樺疂绛剧害鏃剁‘瀹氾紝涓嶅悓涓氬姟鍦烘櫙瀵瑰簲涓嶅悓鐨勭绾︿骇鍝佺爜銆�
         /// </summary>
         public string PersonalProductCode { get; set; }
diff --git a/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWalletTransaction.cs b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWalletTransaction.cs
index 2eb09a6..2e9e162 100644
--- a/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWalletTransaction.cs
+++ b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWalletTransaction.cs
@@ -53,6 +53,36 @@
         public decimal Balance { get; set; }
 
         /// <summary>
+        /// 鏀舵敮鍚庝綑棰�
+        /// </summary>
+        public decimal AfterBalance { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔浜虹敤鎴稩d
+        /// </summary>
+        public Guid? OperatorUserId { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔浜虹敤鎴�
+        /// </summary>
+        public User OperatorUser { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔鏃堕棿
+        /// </summary>
+        public DateTime? OperatorTime { get; set; }
+
+        /// <summary>
+        /// 鏀舵浜虹敤鎴稩d
+        /// </summary>
+        public Guid? ReceiveUserId { get; set; }
+
+        /// <summary>
+        /// 鏀舵浜虹敤鎴�
+        /// </summary>
+        public User ReceiveUser { get; set; }
+
+        /// <summary>
         /// 鏀舵浜哄鍚�
         /// </summary>
         public string ReceiveName { get; set; }
@@ -130,7 +160,7 @@
         /// <summary>
         /// 鐘舵��
         /// </summary>
-        public EnumEnterpriseWalletTransactionStatus TransactionStatus { get; set; }
+        public EnumWalletTransactionStatus TransactionStatus { get; set; }
 
         #region 杞处鑷虫敮浠樺疂
 
diff --git a/FlexJobApi.Core/Entities/UserServer/Users/UserWallet.cs b/FlexJobApi.Core/Entities/UserServer/Users/UserWallet.cs
new file mode 100644
index 0000000..4e4c60d
--- /dev/null
+++ b/FlexJobApi.Core/Entities/UserServer/Users/UserWallet.cs
@@ -0,0 +1,30 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鐢ㄦ埛閽卞寘
+    /// </summary>
+    public class UserWallet : CommonEntity
+    {
+        /// <summary>
+        /// 鐢ㄦ埛淇℃伅Id
+        /// </summary>
+        public Guid UserId { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛淇℃伅
+        /// </summary>
+        public User User { get; set; }
+
+        /// <summary>
+        /// 浣欓
+        /// </summary>
+        public decimal Balance { get; set; }
+
+    }
+}
diff --git a/FlexJobApi.Core/Entities/UserServer/Users/UserWalletTransaction.cs b/FlexJobApi.Core/Entities/UserServer/Users/UserWalletTransaction.cs
new file mode 100644
index 0000000..63c3ed2
--- /dev/null
+++ b/FlexJobApi.Core/Entities/UserServer/Users/UserWalletTransaction.cs
@@ -0,0 +1,140 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鐢ㄦ埛閽卞寘鏀舵敮鏄庣粏
+    /// </summary>
+    public class UserWalletTransaction : CommonEntity
+    {
+        /// <summary>
+        /// 閽卞寘Id
+        /// </summary>
+        public Guid WalletId { get; set; }
+
+        /// <summary>
+        /// 閽卞寘
+        /// </summary>
+        public UserWallet Wallet { get; set; }
+
+        /// <summary>
+        /// 绫诲瀷
+        /// </summary>
+        public EnumUserWalletTransactionType Type { get; set; }
+
+        /// <summary>
+        /// 璁㈠崟鍙�
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 鏍囬
+        /// </summary>
+        public string Title { get; set; }
+
+        /// <summary>
+        /// 閲戦
+        /// </summary>
+        public decimal Amount { get; set; }
+
+        /// <summary>
+        /// 瀹為檯閲戦
+        /// </summary>
+        public decimal ActualAmount { get; set; }
+
+        /// <summary>
+        /// 鏈嶅姟璐�
+        /// </summary>
+        public decimal ServiceFee { get; set; }
+
+        /// <summary>
+        /// 浣欓
+        /// </summary>
+        public decimal Balance { get; set; }
+
+        /// <summary>
+        /// 鏀舵敮鍚庝綑棰�
+        /// </summary>
+        public decimal AfterBalance { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鐢ㄦ埛Id
+        /// </summary>
+        public Guid? TaskUserId { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鐢ㄦ埛
+        /// </summary>
+        public TaskInfoUser TaskUser { get; set; }
+
+        /// <summary>
+        /// 浼佷笟鍚嶇О
+        /// </summary>
+        public string EnterpriseName { get; set; }
+
+        /// <summary>
+        /// 缁撶畻鏃ユ湡
+        /// </summary>
+        public DateTime? SettlementTime { get; set; }
+
+        /// <summary>
+        /// 缁撶畻閲戦
+        /// </summary>
+        public decimal? SettlementAmount { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔浜虹敤鎴稩d
+        /// </summary>
+        public Guid? OperatorUserId { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔浜虹敤鎴�
+        /// </summary>
+        public User OperatorUser { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔鏃堕棿
+        /// </summary>
+        public DateTime? OperatorTime { get; set; }
+
+        /// <summary>
+        /// 鏀舵浜哄鍚�
+        /// </summary>
+        public string ReceiveName { get; set; }
+
+        /// <summary>
+        /// 鏀舵璐︽埛
+        /// </summary>
+        public string ReceiveAccount { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 璁㈠崟鏀粯鏃堕棿
+        /// </summary>
+        public DateTime? TransDate { get; set; }
+
+        /// <summary>
+        /// 浼佷笟閽卞寘鏀舵敮Id
+        /// </summary>
+        public Guid? EnterpriseWalletTransactionId { get; set; }
+
+        /// <summary>
+        /// 浼佷笟閽卞寘鏀舵敮
+        /// </summary>
+        public EnterpriseWalletTransaction EnterpriseWalletTransaction { get; set; }
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        public EnumWalletTransactionStatus TransactionStatus { get; set; }
+
+    }
+}
diff --git a/FlexJobApi.Core/Enums/Users/EnumUserWalletTransactionType.cs b/FlexJobApi.Core/Enums/Users/EnumUserWalletTransactionType.cs
new file mode 100644
index 0000000..142e0ac
--- /dev/null
+++ b/FlexJobApi.Core/Enums/Users/EnumUserWalletTransactionType.cs
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鐢ㄦ埛閽卞寘鏀舵敮绫诲瀷
+    /// </summary>
+    public enum EnumUserWalletTransactionType
+    {
+        /// <summary>
+        /// 鏀跺叆
+        /// </summary>
+        Income = 10,
+        /// <summary>
+        /// 鎻愮幇
+        /// </summary>
+        Withdraw = 20
+    }
+}
diff --git a/FlexJobApi.Core/Enums/Users/EnumEnterpriseWalletTransactionStatus.cs b/FlexJobApi.Core/Enums/Users/EnumWalletTransactionStatus.cs
similarity index 89%
rename from FlexJobApi.Core/Enums/Users/EnumEnterpriseWalletTransactionStatus.cs
rename to FlexJobApi.Core/Enums/Users/EnumWalletTransactionStatus.cs
index 84abf3b..7945338 100644
--- a/FlexJobApi.Core/Enums/Users/EnumEnterpriseWalletTransactionStatus.cs
+++ b/FlexJobApi.Core/Enums/Users/EnumWalletTransactionStatus.cs
@@ -7,9 +7,9 @@
 namespace FlexJobApi.Core
 {
     /// <summary>
-    /// 浼佷笟閽卞寘浜ゆ槗鐘舵��
+    /// 閽卞寘浜ゆ槗鐘舵��
     /// </summary>
-    public enum EnumEnterpriseWalletTransactionStatus
+    public enum EnumWalletTransactionStatus
     {
         /// <summary>
         /// 寰呮彁浜�
diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml
index 2ef5396..022b215 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.xml
+++ b/FlexJobApi.Core/FlexJobApi.Core.xml
@@ -949,6 +949,16 @@
             缁撶畻浜烘暟
             </summary>
         </member>
+        <member name="P:FlexJobApi.Core.TaskInfo.SettlementOperatorUserId">
+            <summary>
+            缁撶畻鎿嶄綔浜篒d
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.TaskInfo.SettlementOperatorUser">
+            <summary>
+            缁撶畻鎿嶄綔浜�
+            </summary>
+        </member>
         <member name="P:FlexJobApi.Core.TaskInfo.SettlementStartTime">
             <summary>
             缁撶畻寮�濮嬫椂闂�
@@ -1137,6 +1147,11 @@
         <member name="P:FlexJobApi.Core.TaskInfoUser.SettlementRemark">
             <summary>
             缁撶畻澶囨敞
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.TaskInfoUser.ActualAmount">
+            <summary>
+            瀹為檯閲戦
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.TaskInfoUser.Submits">
@@ -2090,6 +2105,11 @@
             浣欓
             </summary>
         </member>
+        <member name="P:FlexJobApi.Core.EnterpriseWallet.FreezeBalance">
+            <summary>
+            鍐荤粨浣欓
+            </summary>
+        </member>
         <member name="P:FlexJobApi.Core.EnterpriseWallet.PersonalProductCode">
             <summary>
             鍗忚浜у搧鐮侊紝鍟嗘埛鍜屾敮浠樺疂绛剧害鏃剁‘瀹氾紝涓嶅悓涓氬姟鍦烘櫙瀵瑰簲涓嶅悓鐨勭绾︿骇鍝佺爜銆�
@@ -2398,6 +2418,36 @@
         <member name="P:FlexJobApi.Core.EnterpriseWalletTransaction.Balance">
             <summary>
             浣欓
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseWalletTransaction.AfterBalance">
+            <summary>
+            鏀舵敮鍚庝綑棰�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseWalletTransaction.OperatorUserId">
+            <summary>
+            鎿嶄綔浜虹敤鎴稩d
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseWalletTransaction.OperatorUser">
+            <summary>
+            鎿嶄綔浜虹敤鎴�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseWalletTransaction.OperatorTime">
+            <summary>
+            鎿嶄綔鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseWalletTransaction.ReceiveUserId">
+            <summary>
+            鏀舵浜虹敤鎴稩d
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseWalletTransaction.ReceiveUser">
+            <summary>
+            鏀舵浜虹敤鎴�
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.EnterpriseWalletTransaction.ReceiveName">
@@ -3260,6 +3310,156 @@
         <member name="P:FlexJobApi.Core.UserManageIndustrialPark.IndustrialParkId">
             <summary>
             鍥尯Id
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.UserWallet">
+            <summary>
+            鐢ㄦ埛閽卞寘
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWallet.UserId">
+            <summary>
+            鐢ㄦ埛淇℃伅Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWallet.User">
+            <summary>
+            鐢ㄦ埛淇℃伅
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWallet.Balance">
+            <summary>
+            浣欓
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.UserWalletTransaction">
+            <summary>
+            鐢ㄦ埛閽卞寘鏀舵敮鏄庣粏
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.WalletId">
+            <summary>
+            閽卞寘Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.Wallet">
+            <summary>
+            閽卞寘
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.Type">
+            <summary>
+            绫诲瀷
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.Code">
+            <summary>
+            璁㈠崟鍙�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.Title">
+            <summary>
+            鏍囬
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.Amount">
+            <summary>
+            閲戦
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.ActualAmount">
+            <summary>
+            瀹為檯閲戦
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.ServiceFee">
+            <summary>
+            鏈嶅姟璐�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.Balance">
+            <summary>
+            浣欓
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.AfterBalance">
+            <summary>
+            鏀舵敮鍚庝綑棰�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.TaskUserId">
+            <summary>
+            浠诲姟鐢ㄦ埛Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.TaskUser">
+            <summary>
+            浠诲姟鐢ㄦ埛
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.EnterpriseName">
+            <summary>
+            浼佷笟鍚嶇О
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.SettlementTime">
+            <summary>
+            缁撶畻鏃ユ湡
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.SettlementAmount">
+            <summary>
+            缁撶畻閲戦
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.OperatorUserId">
+            <summary>
+            鎿嶄綔浜虹敤鎴稩d
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.OperatorUser">
+            <summary>
+            鎿嶄綔浜虹敤鎴�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.OperatorTime">
+            <summary>
+            鎿嶄綔鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.ReceiveName">
+            <summary>
+            鏀舵浜哄鍚�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.ReceiveAccount">
+            <summary>
+            鏀舵璐︽埛
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.Remark">
+            <summary>
+            澶囨敞
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.TransDate">
+            <summary>
+            璁㈠崟鏀粯鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.EnterpriseWalletTransactionId">
+            <summary>
+            浼佷笟閽卞寘鏀舵敮Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.EnterpriseWalletTransaction">
+            <summary>
+            浼佷笟閽卞寘鏀舵敮
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserWalletTransaction.TransactionStatus">
+            <summary>
+            鐘舵��
             </summary>
         </member>
         <member name="T:FlexJobApi.Core.EnumCodeUrlScene">
@@ -4284,41 +4484,6 @@
             缁堟
             </summary>
         </member>
-        <member name="T:FlexJobApi.Core.EnumEnterpriseWalletTransactionStatus">
-            <summary>
-            浼佷笟閽卞寘浜ゆ槗鐘舵��
-            </summary>
-        </member>
-        <member name="F:FlexJobApi.Core.EnumEnterpriseWalletTransactionStatus.WaitSubmit">
-            <summary>
-            寰呮彁浜�
-            </summary>
-        </member>
-        <member name="F:FlexJobApi.Core.EnumEnterpriseWalletTransactionStatus.WaitPay">
-            <summary>
-            寰呮敮浠�
-            </summary>
-        </member>
-        <member name="F:FlexJobApi.Core.EnumEnterpriseWalletTransactionStatus.Dealing">
-            <summary>
-            澶勭悊涓�
-            </summary>
-        </member>
-        <member name="F:FlexJobApi.Core.EnumEnterpriseWalletTransactionStatus.Success">
-            <summary>
-            鎴愬姛
-            </summary>
-        </member>
-        <member name="F:FlexJobApi.Core.EnumEnterpriseWalletTransactionStatus.Refund">
-            <summary>
-            閫�绁�
-            </summary>
-        </member>
-        <member name="F:FlexJobApi.Core.EnumEnterpriseWalletTransactionStatus.Fail">
-            <summary>
-            澶辫触
-            </summary>
-        </member>
         <member name="T:FlexJobApi.Core.EnumEnterpriseWalletTransactionType">
             <summary>
             浼佷笟閽卞寘浜ゆ槗绫诲瀷
@@ -4609,6 +4774,56 @@
             杩愯惀
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.EnumUserWalletTransactionType">
+            <summary>
+            鐢ㄦ埛閽卞寘鏀舵敮绫诲瀷
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumUserWalletTransactionType.Income">
+            <summary>
+            鏀跺叆
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumUserWalletTransactionType.Withdraw">
+            <summary>
+            鎻愮幇
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.EnumWalletTransactionStatus">
+            <summary>
+            閽卞寘浜ゆ槗鐘舵��
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumWalletTransactionStatus.WaitSubmit">
+            <summary>
+            寰呮彁浜�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumWalletTransactionStatus.WaitPay">
+            <summary>
+            寰呮敮浠�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumWalletTransactionStatus.Dealing">
+            <summary>
+            澶勭悊涓�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumWalletTransactionStatus.Success">
+            <summary>
+            鎴愬姛
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumWalletTransactionStatus.Refund">
+            <summary>
+            閫�绁�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumWalletTransactionStatus.Fail">
+            <summary>
+            澶辫触
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.IIsDisabled">
             <summary>
             鏄惁宸茬鐢�
@@ -4680,10 +4895,74 @@
             瀹屾垚浠诲姟缁撶畻T+1
             </summary>
         </member>
-        <member name="M:FlexJobApi.Core.CompleteTaskSettlementT1Job.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfo},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfoUser},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseWallet},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseWalletTransaction},FlexJobApi.Core.AlipayUtils)">
+        <member name="M:FlexJobApi.Core.CompleteTaskSettlementT1Job.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfo},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfoUser},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseWallet},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseWalletTransaction},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.UserWallet},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.UserWalletTransaction},FlexJobApi.Core.AlipayUtils)">
             <summary>
             瀹屾垚浠诲姟缁撶畻T+1
             </summary>
+        </member>
+        <member name="M:FlexJobApi.Core.CompleteTaskSettlementT1Job.UpdateUserWalletTransactionWithdraw(FlexJobApi.Core.UserWallet,FlexJobApi.Core.UserWalletTransaction,FlexJobApi.Core.EnterpriseWalletTransaction)">
+            <summary>
+            鏇存柊鐢ㄦ埛閽卞寘鎻愮幇璁板綍
+            </summary>
+            <param name="wallet"></param>
+            <param name="withdraw"></param>
+            <param name="transfer"></param>
+            <returns></returns>
+        </member>
+        <member name="M:FlexJobApi.Core.CompleteTaskSettlementT1Job.AddUserWalletTransactionWithdraw(FlexJobApi.Core.UserWallet,FlexJobApi.Core.TaskInfo,FlexJobApi.Core.TaskInfoUser)">
+            <summary>
+            娣诲姞鐢ㄦ埛閽卞寘鎻愮幇璁板綍
+            </summary>
+            <param name="wallet"></param>
+            <param name="task"></param>
+            <param name="user"></param>
+            <returns></returns>
+        </member>
+        <member name="M:FlexJobApi.Core.CompleteTaskSettlementT1Job.AddUserWalletTransactionIncome(System.Collections.Generic.List{FlexJobApi.Core.UserWallet},FlexJobApi.Core.TaskInfo,FlexJobApi.Core.TaskInfoUser)">
+            <summary>
+            娣诲姞鐢ㄦ埛閽卞寘鏀跺叆璁板綍
+            </summary>
+            <param name="wallets"></param>
+            <param name="task"></param>
+            <param name="user"></param>
+            <returns></returns>
+        </member>
+        <member name="M:FlexJobApi.Core.CompleteTaskSettlementT1Job.AddEnterpriseWalletTransactionTransfer(FlexJobApi.Core.EnterpriseWallet,FlexJobApi.Core.TaskInfo,FlexJobApi.Core.TaskInfoUser)">
+            <summary>
+            娣诲姞浼佷笟閽卞寘杞处璁板綍
+            </summary>
+            <param name="wallet"></param>
+            <param name="task"></param>
+            <param name="user"></param>
+            <returns></returns>
+        </member>
+        <member name="M:FlexJobApi.Core.CompleteTaskSettlementT1Job.GetUserWallets(System.Collections.Generic.List{System.Guid})">
+            <summary>
+            鏌ヨ鐢ㄦ埛閽卞寘
+            </summary>
+            <param name="userIds"></param>
+            <returns></returns>
+        </member>
+        <member name="M:FlexJobApi.Core.CompleteTaskSettlementT1Job.GetEnterpriseWallets(System.Collections.Generic.List{System.Guid})">
+            <summary>
+            鏌ヨ浼佷笟閽卞寘
+            </summary>
+            <param name="enterpriseIds"></param>
+            <returns></returns>
+        </member>
+        <member name="M:FlexJobApi.Core.CompleteTaskSettlementT1Job.GetTaskUsers(System.Collections.Generic.List{System.Guid})">
+            <summary>
+            鏌ヨ浠诲姟鐢ㄦ埛
+            </summary>
+            <param name="taskIds"></param>
+            <returns></returns>
+        </member>
+        <member name="M:FlexJobApi.Core.CompleteTaskSettlementT1Job.GetTasks(System.String)">
+            <summary>
+            鏌ヨ浠诲姟
+            </summary>
+            <param name="env"></param>
+            <returns></returns>
         </member>
         <member name="T:FlexJobApi.Core.SaveCodeUrlCommand">
             <summary>
@@ -10930,26 +11209,6 @@
             鏀粯鍦板潃
             </summary>
         </member>
-        <member name="T:FlexJobApi.Core.TransferEnterpriseWalletCommand">
-            <summary>
-            浼佷笟閽卞寘杞处
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.TransferEnterpriseWalletCommand.Access">
-            <summary>
-            閫氶亾
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.TransferEnterpriseWalletCommand.Amount">
-            <summary>
-            閲戦
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.TransferEnterpriseWalletCommand.Remark">
-            <summary>
-            鍏呭�煎娉�
-            </summary>
-        </member>
         <member name="T:FlexJobApi.Core.GetEnterpriseWalletExpandindirectOrderQuery">
             <summary>
             鏌ヨ鏀粯瀹濊祫閲戜簩绾у晢鎴稫YB浠h繘浠跺崟璇︽儏
@@ -13812,6 +14071,146 @@
             鏈�杩戠绾︽椂闂�
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.GetPersonalUserTransactionQuery">
+            <summary>
+            鏌ヨ涓汉鐢ㄦ埛鏀舵敮鏄庣粏璇︽儏
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQuery.Id">
+            <summary>
+            鏀舵敮Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQueryResult.Id">
+            <summary>
+            鏀舵敮Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQueryResult.Type">
+            <summary>
+            绫诲瀷
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQueryResult.Code">
+            <summary>
+            璁㈠崟鍙�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQueryResult.EnterpriseName">
+            <summary>
+            浼佷笟鍚嶇О
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQueryResult.SettlementTime">
+            <summary>
+            缁撶畻鏃ユ湡
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQueryResult.SettlementAmount">
+            <summary>
+            缁撶畻閲戦
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQueryResult.Amount">
+            <summary>
+            瀹炲彂閲戦/鎻愮幇閲戦
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQueryResult.ReceiveName">
+            <summary>
+            鏀舵浜哄鍚�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQueryResult.ReceiveAccount">
+            <summary>
+            鏀舵璐︽埛
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQueryResult.ServiceFee">
+            <summary>
+            鏈嶅姟璐�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionQueryResult.ActualAmount">
+            <summary>
+            瀹為檯鍒拌处
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.GetPersonalUserTransactionsQuery">
+            <summary>
+            鏌ヨ涓汉鐢ㄦ埛鏀舵敮鏄庣粏鍒嗛〉鍒楄〃鏁版嵁
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionsQuery.CreatedTimeStart">
+            <summary>
+            鍒涘缓鏃堕棿-璧峰
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionsQuery.CreatedTimeEnd">
+            <summary>
+            鍒涘缓鏃堕棿-鎴
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionsQuery.Type">
+            <summary>
+            绫诲瀷
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.GetPersonalUserTransactionsQueryResult">
+            <summary>
+            鏌ヨC绔汉鍛樺垎椤靛垪琛ㄦ暟鎹�-缁撴灉
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionsQueryResult.ObjectData">
+            <summary>
+            缁熻
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.GetPersonalUserTransactionsQueryResultObjectData">
+            <summary>
+            鏌ヨC绔汉鍛樺垎椤靛垪琛ㄦ暟鎹�-缁撴灉
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionsQueryResultObjectData.SumIncome">
+            <summary>
+            鎬绘敹鍏�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionsQueryResultObjectData.SumWithdraw">
+            <summary>
+            鎬绘彁鐜�
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.GetPersonalUserTransactionsQueryResultItem">
+            <summary>
+            鏌ヨC绔汉鍛樺垎椤靛垪琛ㄦ暟鎹�-缁撴灉-椤�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionsQueryResultItem.Id">
+            <summary>
+            鏀舵敮Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionsQueryResultItem.Title">
+            <summary>
+            鏍囬
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionsQueryResultItem.CreatedTime">
+            <summary>
+            鍒涘缓鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionsQueryResultItem.Amount">
+            <summary>
+            閲戦
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserTransactionsQueryResultItem.Balance">
+            <summary>
+            浣欓
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.GetUserInfoRolesQuery">
             <summary>
             鏌ヨ鐢ㄦ埛瑙掕壊鍒楄〃
diff --git a/FlexJobApi.Core/Jobs/CompleteTaskSettlementT1Job.cs b/FlexJobApi.Core/Jobs/CompleteTaskSettlementT1Job.cs
index fcd0102..2c9c5a5 100644
--- a/FlexJobApi.Core/Jobs/CompleteTaskSettlementT1Job.cs
+++ b/FlexJobApi.Core/Jobs/CompleteTaskSettlementT1Job.cs
@@ -1,10 +1,12 @@
 锘縰sing Aop.Api.Domain;
+using Azure;
 using Furion;
 using Furion.DatabaseAccessor;
 using Furion.DistributedIDGenerator;
 using Furion.FriendlyException;
 using Furion.Schedule;
 using Microsoft.EntityFrameworkCore;
+using StackExchange.Redis;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -23,12 +25,16 @@
             IRepository<TaskInfoUser> repTaskInfoUser,
             IRepository<EnterpriseWallet> repEnterpriseWallet,
             IRepository<EnterpriseWalletTransaction> repEnterpriseWalletTransaction,
+            IRepository<UserWallet> repUserWallet,
+            IRepository<UserWalletTransaction> repUserWalletTransaction,
             AlipayUtils alipayUtils
         ) : IJob
     {
         private readonly IRepository<TaskInfo> rep = rep;
         private readonly IRepository<TaskInfoUser> repTaskInfoUser = repTaskInfoUser;
         private readonly IRepository<EnterpriseWallet> repEnterpriseWallet = repEnterpriseWallet;
+        private readonly IRepository<UserWallet> repUserWallet = repUserWallet;
+        private readonly IRepository<UserWalletTransaction> repUserWalletTransaction = repUserWalletTransaction;
         private readonly AlipayUtils alipayUtils = alipayUtils;
 
         [UnitOfWork(false)]
@@ -37,39 +43,19 @@
             var env = App.GetConfig<string>("Environment");
             if (env != "Local")
             {
-                var now = DateTime.Now;
-                var q = rep.AsQueryable()
-                    .Where(it => it.SettlementStatus == EnumTaskSettlementStatus.InProcess);
-                var minTime = env == "Test"
-                    ? now.AddMinutes(-5)
-                    : now.AddDays(-1);
-                q = q.Where(it => it.SettlementStartTime.HasValue && it.SettlementStartTime < minTime);
-                var tasks = await q.ToListAsync();
+                var tasks = await GetTasks(env);
                 var enterpriseIds = tasks.DistinctSelect(it => it.EnterpriseId);
                 var taskIds = tasks.DistinctSelect(it => it.Id);
-                var taskUsers = await repTaskInfoUser
-                    .Where(it => taskIds.Contains(it.TaskInfoId) && it.SettlementStatus == EnumTaskSettlementStatus.InProcess)
-                    .ToListAsync();
-                var wallets = await repEnterpriseWallet.AsQueryable()
-                    .Where(it => enterpriseIds.Contains(it.EnterpriseId) && it.Access == EnumEnterpriseWalletAccess.Alipay)
-                    .ToListAsync();
-                foreach (var wallet in wallets)
-                {
-                    var response = alipayUtils.FundAccountbookQuery(new AlipayFundAccountbookQueryModel
-                    {
-                        AccountBookId = wallet.AccountBookId,
-                        SceneCode = "SATF_FUND_BOOK",
-                        MerchantUserId = wallet.Code,
-                    });
-                    if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg);
-                    wallet.Balance = response.AvailableAmount.ToDecimal() ?? 0;
-                    await repEnterpriseWallet.UpdateNowAsync(wallet);
-                }
+                var taskUsers = await GetTaskUsers(taskIds);
+                var userIds = taskUsers.DistinctSelect(it => it.EnterpriseEmployee.UserId.Value);
+                var userWallets = await GetUserWallets(userIds);
+                var enterpriseWallets = await GetEnterpriseWallets(enterpriseIds);
                 if (tasks.IsNotNull())
                 {
                     foreach (var task in tasks)
                     {
-                        var wallet = wallets.FirstOrDefault(it => it.EnterpriseId == task.EnterpriseId);
+                        var enterpriseWallet = enterpriseWallets.FirstOrDefault(it => it.EnterpriseId == task.EnterpriseId);
+
                         task.SettlementStatus = EnumTaskSettlementStatus.Completed;
                         task.SettlementTime = DateTime.Now;
                         await rep.UpdateNowAsync(task);
@@ -81,79 +67,286 @@
                             user.SettlementTime = DateTime.Now;
                             await repTaskInfoUser.UpdateNowAsync(user);
 
-                            var order = new EnterpriseWalletTransaction();
-                            order.Type = EnumEnterpriseWalletTransactionType.Recharge;
-                            order.WalletId = wallet.Id;
-                            order.TaskUserId = user.Id;
-                            order.Amount = user.ActualSettlementAmount ?? 0;
-                            order.Remark = user.SettlementRemark;
-                            order.ProductCode = "SINGLE_TRANSFER_NO_PWD";
-                            order.BizScene = "ENTRUST_TRANSFER";
-                            order.TransactionStatus = EnumEnterpriseWalletTransactionStatus.WaitSubmit;
-                            order.Balance = wallet.Balance;
-                            order.ReceiveName = user.ReceiveName;
-                            order.ReceiveAccount = user.ReceiveAccount;
-                            await SetCode(order);
-                            await repEnterpriseWalletTransaction.InsertNowAsync(order);
+                            var userWallet = await AddUserWalletTransactionIncome(userWallets, task, user);
 
-                            var response = alipayUtils.FundTransUniTransfer(new AlipayFundTransUniTransferModel
-                            {
-                                OutBizNo = order.Code,
-                                TransAmount = order.Amount.ToString(),
-                                ProductCode = order.ProductCode,
-                                BizScene = order.BizScene,
-                                PayeeInfo = new Participant
-                                {
-                                    IdentityType = "ALIPAY_LOGON_ID",
-                                    Identity = order.ReceiveAccount,
-                                    Name = order.ReceiveName,
-                                },
-                                PayerInfo = new Participant
-                                {
-                                    IdentityType = "ACCOUNT_BOOK_ID",
-                                    Identity = wallet.AccountBookId,
-                                    ExtInfo = new
-                                    {
-                                        agreement_no = wallet.AgreementNo,
-                                    }.ToJson(),
-                                },
-                                OrderTitle = order.Remark,
-                                Remark = order.Remark,
-                                BusinessParams = new
-                                {
-                                    withdraw_timeliness = "T0"
-                                }.ToJson()
-                            }, "/api/user/enterpriseWallet/alipayFundTransOrderChangedNotify");
-                            if (response.IsError)
-                            {
-                                order.ErrorCode = response.Code;
-                                order.FailReason = response.SubMsg ?? response.Msg;
-                                await repEnterpriseWalletTransaction.UpdateNowAsync(order);
-                            }
-                            else
-                            {
-                                order.OrderId = response.OrderId;
-                                order.PayFundOrderId = response.PayFundOrderId;
-                                order.SettleSerialNo = response.SettleSerialNo;
-                                order.TransDate = response.TransDate.ToDateTime();
-                                order.Link = response.Link;
-                                order.Status = response.Status;
-                                order.SubStatus = response.SubStatus;
-                                order.TransactionStatus = response.Status == "SUCCESS"
-                                    ? EnumEnterpriseWalletTransactionStatus.Success
-                                    : response.Status == "DEALING"
-                                    ? EnumEnterpriseWalletTransactionStatus.Dealing
-                                    : response.Status == "REFUND"
-                                    ? EnumEnterpriseWalletTransactionStatus.Refund
-                                    : EnumEnterpriseWalletTransactionStatus.Fail;
-                                await repEnterpriseWalletTransaction.UpdateNowAsync(order);
-                            }
+                            var withdraw = await AddUserWalletTransactionWithdraw(userWallet, task, user);
+
+                            var transfer = await AddEnterpriseWalletTransactionTransfer(enterpriseWallet, task, user);
+
+                            await UpdateUserWalletTransactionWithdraw(userWallet, withdraw, transfer);
                         }
                     }
                 }
             }
         }
 
+        /// <summary>
+        /// 鏇存柊鐢ㄦ埛閽卞寘鎻愮幇璁板綍
+        /// </summary>
+        /// <param name="wallet"></param>
+        /// <param name="withdraw"></param>
+        /// <param name="transfer"></param>
+        /// <returns></returns>
+        private async Task UpdateUserWalletTransactionWithdraw(UserWallet wallet, UserWalletTransaction withdraw, EnterpriseWalletTransaction transfer)
+        {
+            withdraw.EnterpriseWalletTransactionId = transfer.Id;
+            withdraw.TransactionStatus = transfer.TransactionStatus;
+            withdraw.TransDate = transfer.TransDate;
+            if (withdraw.TransactionStatus == EnumWalletTransactionStatus.Success)
+            {
+                withdraw.ActualAmount = withdraw.Amount;
+            }
+            else
+            {
+                withdraw.ActualAmount = 0;
+
+                var order = new UserWalletTransaction();
+                order.WalletId = wallet.Id;
+                order.Type = EnumUserWalletTransactionType.Income;
+                order.OperatorUserId = withdraw.OperatorUserId;
+                order.OperatorTime = withdraw.OperatorTime;
+                order.Title = $"鏀跺叆-鎻愮幇澶辫触閫�娆�";
+                order.Amount = withdraw.Amount;
+                order.ActualAmount = order.Amount;
+                order.Balance = wallet.Balance;
+                order.AfterBalance = wallet.Balance + order.Amount;
+                order.TransDate = DateTime.Now;
+                order.TransactionStatus = EnumWalletTransactionStatus.Success;
+                await SetCode(order);
+                await repUserWalletTransaction.InsertNowAsync(order);
+
+                wallet.Balance = order.AfterBalance;
+                await repUserWallet.UpdateNowAsync(wallet);
+            }
+        }
+
+        /// <summary>
+        /// 娣诲姞鐢ㄦ埛閽卞寘鎻愮幇璁板綍
+        /// </summary>
+        /// <param name="wallet"></param>
+        /// <param name="task"></param>
+        /// <param name="user"></param>
+        /// <returns></returns>
+        private async Task<UserWalletTransaction> AddUserWalletTransactionWithdraw(UserWallet wallet, TaskInfo task, TaskInfoUser user)
+        {
+            wallet.Balance -= user.ActualSettlementAmount ?? 0;
+            await repUserWallet.UpdateNowAsync(wallet);
+
+            var order = new UserWalletTransaction();
+            order.WalletId = wallet.Id;
+            order.Type = EnumUserWalletTransactionType.Withdraw;
+            order.OperatorUserId = task.SettlementOperatorUserId;
+            order.OperatorTime = task.SettlementStartTime;
+            order.Title = $"鎻愮幇-鏀粯瀹濇彁鐜�";
+            order.Amount = user.ActualSettlementAmount ?? 0;
+            order.Balance = wallet.Balance;
+            order.AfterBalance = wallet.Balance - order.Amount;
+            order.ReceiveName = user.ReceiveName;
+            order.ReceiveAccount = user.ReceiveAccount;
+            order.TransDate = DateTime.Now;
+            order.TransactionStatus = EnumWalletTransactionStatus.Dealing;
+            await SetCode(order);
+            await repUserWalletTransaction.InsertNowAsync(order);
+            return order;
+        }
+
+        /// <summary>
+        /// 娣诲姞鐢ㄦ埛閽卞寘鏀跺叆璁板綍
+        /// </summary>
+        /// <param name="wallets"></param>
+        /// <param name="task"></param>
+        /// <param name="user"></param>
+        /// <returns></returns>
+        private async Task<UserWallet> AddUserWalletTransactionIncome(List<UserWallet> wallets, TaskInfo task, TaskInfoUser user)
+        {
+            var wallet = wallets.FirstOrDefault(it => it.UserId == user.EnterpriseEmployee.UserId);
+            if (wallet == null)
+            {
+                wallet = new UserWallet();
+                wallet.UserId = user.EnterpriseEmployee.UserId.Value;
+                await repUserWallet.InsertNowAsync(wallet);
+            }
+            var order = new UserWalletTransaction();
+            order.WalletId = wallet.Id;
+            order.Type = EnumUserWalletTransactionType.Income;
+            order.TaskUserId = user.Id;
+            order.EnterpriseName = task.Enterprise.EnterpriseName;
+            order.SettlementTime = user.SettlementTime;
+            order.SettlementAmount = user.SettlementAmount;
+            order.OperatorUserId = task.SettlementOperatorUserId;
+            order.OperatorTime = task.SettlementStartTime;
+            order.Title = $"鏀跺叆-{order.EnterpriseName}";
+            order.Amount = user.ActualSettlementAmount ?? 0;
+            order.ActualAmount = order.Amount;
+            order.Balance = wallet.Balance;
+            order.AfterBalance = wallet.Balance + order.Amount;
+            order.TransDate = DateTime.Now;
+            order.TransactionStatus = EnumWalletTransactionStatus.Success;
+            await SetCode(order);
+            await repUserWalletTransaction.InsertNowAsync(order);
+
+            wallet.Balance = order.AfterBalance;
+            await repUserWallet.UpdateNowAsync(wallet);
+
+            return wallet;
+        }
+
+        /// <summary>
+        /// 娣诲姞浼佷笟閽卞寘杞处璁板綍
+        /// </summary>
+        /// <param name="wallet"></param>
+        /// <param name="task"></param>
+        /// <param name="user"></param>
+        /// <returns></returns>
+        private async Task<EnterpriseWalletTransaction> AddEnterpriseWalletTransactionTransfer(EnterpriseWallet wallet, TaskInfo task, TaskInfoUser user)
+        {
+            var order = new EnterpriseWalletTransaction();
+            order.Type = EnumEnterpriseWalletTransactionType.Transfer;
+            order.WalletId = wallet.Id;
+            order.TaskUserId = user.Id;
+            order.Amount = user.ActualSettlementAmount ?? 0;
+            order.Remark = user.SettlementRemark;
+            order.ProductCode = "SINGLE_TRANSFER_NO_PWD";
+            order.BizScene = "ENTRUST_TRANSFER";
+            order.TransactionStatus = EnumWalletTransactionStatus.WaitSubmit;
+            order.Balance = wallet.Balance;
+            order.AfterBalance = wallet.Balance - order.Amount;
+            order.OperatorUserId = task.SettlementOperatorUserId;
+            order.OperatorTime = task.SettlementStartTime;
+            order.ReceiveUserId = user.EnterpriseEmployee.UserId;
+            order.ReceiveName = user.ReceiveName;
+            order.ReceiveAccount = user.ReceiveAccount;
+            await SetCode(order);
+            await repEnterpriseWalletTransaction.InsertNowAsync(order);
+
+            var response = alipayUtils.FundTransUniTransfer(new AlipayFundTransUniTransferModel
+            {
+                OutBizNo = order.Code,
+                TransAmount = order.Amount.ToString(),
+                ProductCode = order.ProductCode,
+                BizScene = order.BizScene,
+                PayeeInfo = new Participant
+                {
+                    IdentityType = "ALIPAY_LOGON_ID",
+                    Identity = order.ReceiveAccount,
+                    Name = order.ReceiveName,
+                },
+                PayerInfo = new Participant
+                {
+                    IdentityType = "ACCOUNT_BOOK_ID",
+                    Identity = wallet.AccountBookId,
+                    ExtInfo = new
+                    {
+                        agreement_no = wallet.AgreementNo,
+                    }.ToJson(),
+                },
+                OrderTitle = order.Remark,
+                Remark = order.Remark,
+                BusinessParams = new
+                {
+                    withdraw_timeliness = "T0"
+                }.ToJson()
+            }, "/api/user/enterpriseWallet/alipayFundTransOrderChangedNotify");
+            if (response.IsError)
+            {
+                order.ErrorCode = response.Code;
+                order.FailReason = response.SubMsg ?? response.Msg;
+                await repEnterpriseWalletTransaction.UpdateNowAsync(order);
+            }
+            else
+            {
+                order.OrderId = response.OrderId;
+                order.PayFundOrderId = response.PayFundOrderId;
+                order.SettleSerialNo = response.SettleSerialNo;
+                order.TransDate = response.TransDate.ToDateTime();
+                order.Link = response.Link;
+                order.Status = response.Status;
+                order.SubStatus = response.SubStatus;
+                order.TransactionStatus = response.Status == "SUCCESS"
+                    ? EnumWalletTransactionStatus.Success
+                    : response.Status == "DEALING"
+                    ? EnumWalletTransactionStatus.Dealing
+                    : response.Status == "REFUND"
+                    ? EnumWalletTransactionStatus.Refund
+                    : EnumWalletTransactionStatus.Fail;
+                await repEnterpriseWalletTransaction.UpdateNowAsync(order);
+            }
+            return order;
+        }
+
+        /// <summary>
+        /// 鏌ヨ鐢ㄦ埛閽卞寘
+        /// </summary>
+        /// <param name="userIds"></param>
+        /// <returns></returns>
+        private async Task<List<UserWallet>> GetUserWallets(List<Guid> userIds)
+        {
+            var wallets = await repUserWallet.AsQueryable().AsNoTracking()
+                .Where(it => userIds.Contains(it.UserId))
+                .ToListAsync();
+            return wallets;
+        }
+
+        /// <summary>
+        /// 鏌ヨ浼佷笟閽卞寘
+        /// </summary>
+        /// <param name="enterpriseIds"></param>
+        /// <returns></returns>
+        private async Task<List<EnterpriseWallet>> GetEnterpriseWallets(List<Guid> enterpriseIds)
+        {
+            var wallets = await repEnterpriseWallet.AsQueryable()
+                .Where(it => enterpriseIds.Contains(it.EnterpriseId) && it.Access == EnumEnterpriseWalletAccess.Alipay)
+                .ToListAsync();
+            foreach (var wallet in wallets)
+            {
+                var response = alipayUtils.FundAccountbookQuery(new AlipayFundAccountbookQueryModel
+                {
+                    AccountBookId = wallet.AccountBookId,
+                    SceneCode = "SATF_FUND_BOOK",
+                    MerchantUserId = wallet.Code,
+                });
+                if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg);
+                wallet.Balance = response.AvailableAmount.ToDecimal() ?? 0;
+                await repEnterpriseWallet.UpdateNowAsync(wallet);
+            }
+            return wallets;
+        }
+
+        /// <summary>
+        /// 鏌ヨ浠诲姟鐢ㄦ埛
+        /// </summary>
+        /// <param name="taskIds"></param>
+        /// <returns></returns>
+        private async Task<List<TaskInfoUser>> GetTaskUsers(List<Guid> taskIds)
+        {
+            var taskUsers = await repTaskInfoUser
+                .Include(it => it.EnterpriseEmployee)
+                .Where(it =>
+                    taskIds.Contains(it.TaskInfoId)
+                    && it.SettlementStatus == EnumTaskSettlementStatus.InProcess)
+                .ToListAsync();
+            return taskUsers;
+        }
+
+        /// <summary>
+        /// 鏌ヨ浠诲姟
+        /// </summary>
+        /// <param name="env"></param>
+        /// <returns></returns>
+        private async Task<List<TaskInfo>> GetTasks(string env)
+        {
+            var now = DateTime.Now;
+            var q = rep.AsQueryable()
+                .Include(it => it.Enterprise)
+                .Where(it => it.SettlementStatus == EnumTaskSettlementStatus.InProcess);
+            var minTime = env == "Test"
+                ? now.AddMinutes(-5)
+                : now.AddDays(-1);
+            q = q.Where(it => it.SettlementStartTime.HasValue && it.SettlementStartTime < minTime);
+            var tasks = await q.ToListAsync();
+            return tasks;
+        }
+
         private async Task SetCode(EnterpriseWalletTransaction entity)
         {
             entity.Code = $"{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}";
@@ -165,5 +358,16 @@
             }
         }
 
+        private async Task SetCode(UserWalletTransaction entity)
+        {
+            entity.Code = $"{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}";
+            var exist = await repUserWalletTransaction.AsQueryable().AsNoTracking()
+                .AnyAsync(it => it.Code == entity.Code);
+            if (exist)
+            {
+                await SetCode(entity);
+            }
+        }
+
     }
 }
diff --git a/FlexJobApi.Core/Jobs/RefreshEnterpriseWalletTransactionStatusJob.cs b/FlexJobApi.Core/Jobs/RefreshEnterpriseWalletTransactionStatusJob.cs
index 19c6efc..86b07f8 100644
--- a/FlexJobApi.Core/Jobs/RefreshEnterpriseWalletTransactionStatusJob.cs
+++ b/FlexJobApi.Core/Jobs/RefreshEnterpriseWalletTransactionStatusJob.cs
@@ -31,8 +31,8 @@
             {
                 var entities = await rep.AsQueryable()
                 .Where(it =>
-                    it.TransactionStatus == EnumEnterpriseWalletTransactionStatus.WaitPay
-                    || it.TransactionStatus == EnumEnterpriseWalletTransactionStatus.Dealing)
+                    it.TransactionStatus == EnumWalletTransactionStatus.WaitPay
+                    || it.TransactionStatus == EnumWalletTransactionStatus.Dealing)
                 .ToListAsync();
                 if (entities.IsNotNull())
                 {
@@ -62,18 +62,18 @@
                         entity.TransDate = response.PayDate.ToDateTime();
                         entity.Status = response.Status;
                         entity.TransactionStatus = response.Status == "SUCCESS"
-                            ? EnumEnterpriseWalletTransactionStatus.Success
+                            ? EnumWalletTransactionStatus.Success
                             : response.Status == "DEALING"
-                            ? EnumEnterpriseWalletTransactionStatus.Dealing
+                            ? EnumWalletTransactionStatus.Dealing
                             : response.Status == "REFUND"
-                            ? EnumEnterpriseWalletTransactionStatus.Refund
+                            ? EnumWalletTransactionStatus.Refund
                             : response.Status == "FAIL"
-                            ? EnumEnterpriseWalletTransactionStatus.Fail
+                            ? EnumWalletTransactionStatus.Fail
                             : throw Oops.Oh(EnumErrorCodeType.s510, $"鏈瘑鍒殑鐘舵�侊細{response.Status}");
                         await rep.UpdateAsync(entity);
                     }
                     var walletIds = entities
-                        .Where(it => it.TransactionStatus == EnumEnterpriseWalletTransactionStatus.Success)
+                        .Where(it => it.TransactionStatus == EnumWalletTransactionStatus.Success)
                         .Select(it => it.WalletId)
                         .Distinct()
                         .ToList();
diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/TransferEnterpriseWalletCommand.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/TransferEnterpriseWalletCommand.cs
deleted file mode 100644
index d315167..0000000
--- a/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/TransferEnterpriseWalletCommand.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-锘縰sing MediatR;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace FlexJobApi.Core
-{
-    /// <summary>
-    /// 浼佷笟閽卞寘杞处
-    /// </summary>
-    [Resource([EnumResourceController.UserServerEnterpriseWallet])]
-    public class TransferEnterpriseWalletCommand : IRequest<Guid>
-    {
-        /// <summary>
-        /// 閫氶亾
-        /// </summary>
-        public EnumEnterpriseWalletAccess Access { get; set; }
-
-        /// <summary>
-        /// 閲戦
-        /// </summary>
-        public decimal Amount { get; set; }
-
-        /// <summary>
-        /// 鍏呭�煎娉�
-        /// </summary>
-        public string Remark { get; set; }
-    }
-}
diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/GetEnterpriseWalletTransactionQuery.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/GetEnterpriseWalletTransactionQuery.cs
index ddaaad1..59f554c 100644
--- a/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/GetEnterpriseWalletTransactionQuery.cs
+++ b/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/GetEnterpriseWalletTransactionQuery.cs
@@ -57,6 +57,6 @@
         /// <summary>
         /// 鐘舵��
         /// </summary>
-        public EnumEnterpriseWalletTransactionStatus TransactionStatus { get; set; }
+        public EnumWalletTransactionStatus TransactionStatus { get; set; }
     }
 }
diff --git a/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserTransactionQuery.cs b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserTransactionQuery.cs
new file mode 100644
index 0000000..f6aa8ca
--- /dev/null
+++ b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserTransactionQuery.cs
@@ -0,0 +1,80 @@
+锘縰sing MediatR;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鏌ヨ涓汉鐢ㄦ埛鏀舵敮鏄庣粏璇︽儏
+    /// </summary>
+    [Resource([EnumResourceController.UserServerUser])]
+    public class GetPersonalUserTransactionQuery : IRequest<GetPersonalUserTransactionQueryResult>
+    {
+        /// <summary>
+        /// 鏀舵敮Id
+        /// </summary>
+        public Guid Id { get; set; }
+    }
+
+    public class GetPersonalUserTransactionQueryResult
+    {
+        /// <summary>
+        /// 鏀舵敮Id
+        /// </summary>
+        public Guid Id { get; set; }
+
+        /// <summary>
+        /// 绫诲瀷
+        /// </summary>
+        public EnumUserWalletTransactionType Type { get; set; }
+
+        /// <summary>
+        /// 璁㈠崟鍙�
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 浼佷笟鍚嶇О
+        /// </summary>
+        public string EnterpriseName { get; set; }
+
+        /// <summary>
+        /// 缁撶畻鏃ユ湡
+        /// </summary>
+        public DateTime? SettlementTime { get; set; }
+
+        /// <summary>
+        /// 缁撶畻閲戦
+        /// </summary>
+        public decimal? SettlementAmount { get; set; }
+
+        /// <summary>
+        /// 瀹炲彂閲戦/鎻愮幇閲戦
+        /// </summary>
+        public decimal Amount { get; set; }
+
+        /// <summary>
+        /// 鏀舵浜哄鍚�
+        /// </summary>
+        public string ReceiveName { get; set; }
+
+        /// <summary>
+        /// 鏀舵璐︽埛
+        /// </summary>
+        public string ReceiveAccount { get; set; }
+
+        /// <summary>
+        /// 鏈嶅姟璐�
+        /// </summary>
+        public decimal ServiceFee { get; set; }
+
+        /// <summary>
+        /// 瀹為檯鍒拌处
+        /// </summary>
+        public decimal ActualAmount { get; set; }
+    }
+}
diff --git a/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserTransactionsQuery.cs b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserTransactionsQuery.cs
new file mode 100644
index 0000000..be0684b
--- /dev/null
+++ b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserTransactionsQuery.cs
@@ -0,0 +1,93 @@
+锘縰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.UserServerUser])]
+    public class GetPersonalUserTransactionsQuery : PagedListQuery<GetPersonalUserTransactionsQueryResult, GetPersonalUserTransactionsQueryResultItem>
+    {
+        /// <summary>
+        /// 鍒涘缓鏃堕棿-璧峰
+        /// </summary>
+        public DateTimeOffset? CreatedTimeStart { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿-鎴
+        /// </summary>
+        public DateTimeOffset? CreatedTimeEnd { get; set; }
+
+        /// <summary>
+        /// 绫诲瀷
+        /// </summary>
+        public EnumUserWalletTransactionType? Type { get; set; }
+
+
+    }
+
+    /// <summary>
+    /// 鏌ヨC绔汉鍛樺垎椤靛垪琛ㄦ暟鎹�-缁撴灉
+    /// </summary>
+    public class GetPersonalUserTransactionsQueryResult : PagedListQueryResult<GetPersonalUserTransactionsQueryResultItem>
+    {
+        /// <summary>
+        /// 缁熻
+        /// </summary>
+        public GetPersonalUserTransactionsQueryResultObjectData ObjectData { get; set; }
+    }
+
+    /// <summary>
+    /// 鏌ヨC绔汉鍛樺垎椤靛垪琛ㄦ暟鎹�-缁撴灉
+    /// </summary>
+    public class GetPersonalUserTransactionsQueryResultObjectData
+    {
+        /// <summary>
+        /// 鎬绘敹鍏�
+        /// </summary>
+        public decimal SumIncome { get; set; }
+
+        /// <summary>
+        /// 鎬绘彁鐜�
+        /// </summary>
+        public decimal SumWithdraw { get; set; }
+    }
+
+    /// <summary>
+    /// 鏌ヨC绔汉鍛樺垎椤靛垪琛ㄦ暟鎹�-缁撴灉-椤�
+    /// </summary>
+    public class GetPersonalUserTransactionsQueryResultItem
+    {
+        /// <summary>
+        /// 鏀舵敮Id
+        /// </summary>
+        public Guid Id { get; set; }
+
+        /// <summary>
+        /// 鏍囬
+        /// </summary>
+        public string Title { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTimeOffset CreatedTime { get; set; }
+
+        /// <summary>
+        /// 閲戦
+        /// </summary>
+        public decimal Amount { get; set; }
+
+        /// <summary>
+        /// 浣欓
+        /// </summary>
+        public decimal Balance { get; set; }
+
+
+    }
+}
diff --git a/FlexJobApi.Database.Migrations/Migrations/20250909053124_UpdateUserWalletTransaction0909.Designer.cs b/FlexJobApi.Database.Migrations/Migrations/20250909053124_UpdateUserWalletTransaction0909.Designer.cs
new file mode 100644
index 0000000..dddb7ff
--- /dev/null
+++ b/FlexJobApi.Database.Migrations/Migrations/20250909053124_UpdateUserWalletTransaction0909.Designer.cs
@@ -0,0 +1,3696 @@
+锘�// <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("20250909053124_UpdateUserWalletTransaction0909")]
+    partial class UpdateUserWalletTransaction0909
+    {
+        /// <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.CodeUrl", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    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?>("ExpiredTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("ParamValue1")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ParamValue2")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ParamValue3")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ParamValue4")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ParamValue5")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("Scene")
+                        .HasColumnType("int");
+
+                    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<string>("Url")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("CodeUrl");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.ContractTemplate", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int?>("Access")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Code")
+                        .HasMaxLength(32)
+                        .HasColumnType("nvarchar(32)");
+
+                    b.Property<DateTime?>("CompletedTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("ElectronSignContractTemplateId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("EnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("File")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsDisabled")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("Name")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<int>("Status")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TemplateEditData")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("TemplateId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("TemplateJsonData")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("WxmpQrCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("EnterpriseId");
+
+                    b.ToTable("ContractTemplate");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.ContractTemplateValue", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("BindProperty")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("Label")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("Recorder")
+                        .HasColumnType("int");
+
+                    b.Property<bool>("Required")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<Guid>("TemplateId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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<int?>("UserType")
+                        .HasColumnType("int");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TemplateId");
+
+                    b.ToTable("ContractTemplateValue");
+                });
+
+            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.ElectronSignSetting", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int>("Access")
+                        .HasColumnType("int");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsDisabled")
+                        .HasColumnType("bit");
+
+                    b.Property<decimal?>("MergeSignCost")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<decimal?>("RealVerifyCost")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<decimal?>("SignCost")
+                        .HasColumnType("decimal(18,2)");
+
+                    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("ElectronSignSetting");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.Enterprise", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("Address")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("BankBranchName")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("BankCard")
+                        .HasMaxLength(32)
+                        .HasColumnType("nvarchar(32)");
+
+                    b.Property<string>("BankName")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("CityCode")
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<string>("ContactEmail")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ContactPhoneNumber")
+                        .HasMaxLength(11)
+                        .HasColumnType("nvarchar(11)");
+
+                    b.Property<string>("Contacts")
+                        .HasMaxLength(32)
+                        .HasColumnType("nvarchar(32)");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("EnterpriseName")
+                        .IsRequired()
+                        .HasMaxLength(128)
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<string>("EnterpriseType")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("EstablishmentDate")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<Guid?>("IndustrialParkId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("IndustryTypeCode")
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<bool>("IsCheckedBankCard")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsReal")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("LegalIdentity")
+                        .HasMaxLength(18)
+                        .HasColumnType("nvarchar(18)");
+
+                    b.Property<string>("LegalPerson")
+                        .HasMaxLength(32)
+                        .HasColumnType("nvarchar(32)");
+
+                    b.Property<string>("LicenseImage")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("MainBusiness")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int?>("PayAccess")
+                        .HasColumnType("int");
+
+                    b.Property<string>("ProvinceCode")
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<int?>("RealAccess")
+                        .HasColumnType("int");
+
+                    b.Property<string>("RegisteredCapital")
+                        .HasColumnType("nvarchar(max)");
+
+                    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<string>("CertAccount")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("ElectronSignEnterpriseId")
+                        .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.EnterpriseCost", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<decimal?>("Amount")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("EnterpriseEmployeeContractId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("EnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    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.HasKey("Id");
+
+                    b.HasIndex("EnterpriseEmployeeContractId");
+
+                    b.HasIndex("EnterpriseId");
+
+                    b.ToTable("EnterpriseCost");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseElectronSignSetting", 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>("ElectronSignAccess")
+                        .HasColumnType("int");
+
+                    b.Property<Guid>("EnterpriseId")
+                        .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.HasKey("Id");
+
+                    b.HasIndex("EnterpriseId");
+
+                    b.ToTable("EnterpriseElectronSignSetting");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int?>("Age")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("Birthday")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("ContactPhoneNumber")
+                        .HasMaxLength(11)
+                        .HasColumnType("nvarchar(11)");
+
+                    b.Property<string>("ContractCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<Guid?>("ContractTemplateId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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<string>("EnterpriseSignContractErrorMessage")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int?>("EnterpriseSignContractStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("EnterpriseSignContractTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int?>("Gender")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Identity")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("IdentityBackImg")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("IdentityImg")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("Name")
+                        .HasMaxLength(32)
+                        .HasColumnType("nvarchar(32)");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("UserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("UserSignContractErrorMessage")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int?>("UserSignContractStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("UserSignContractTime")
+                        .HasColumnType("datetime2");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ContractTemplateId");
+
+                    b.HasIndex("EnterpriseId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("EnterpriseEmployee");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployeeContract", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("ContractCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<Guid?>("ContractTemplateId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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>("EnterpriseEmployeeId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("EnterpriseSignContractErrorMessage")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int?>("EnterpriseSignContractStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("EnterpriseSignContractTime")
+                        .HasColumnType("datetime2");
+
+                    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<string>("UserSignContractErrorMessage")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int?>("UserSignContractStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("UserSignContractTime")
+                        .HasColumnType("datetime2");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ContractTemplateId");
+
+                    b.HasIndex("EnterpriseEmployeeId");
+
+                    b.ToTable("EnterpriseEmployeeContract");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseUserCollect", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime?>("CollectedTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<DateTime?>("ContactedTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("EnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool>("IsCollected")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsContacted")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("UserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("EnterpriseId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("EnterpriseUserCollect");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseWallet", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int>("Access")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Account")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("AccountBookId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int?>("AccountBookStatus")
+                        .HasColumnType("int");
+
+                    b.Property<string>("AgreementNo")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("AlipayLogonId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<decimal>("Balance")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<string>("BankAccName")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("CardBank")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("CardBranch")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("CardDeposit")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("CardLocation")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("CardNo")
+                        .HasColumnType("nvarchar(max)");
+
+                    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<string>("CreditAuthMode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<Guid>("EnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<decimal>("FreezeBalance")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<DateTime?>("InvalidTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("MerchantId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("PersonalProductCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("PricipalType")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("PrincipalId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("PrincipalOpenId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ProductCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("SignScene")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("SignStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("SignTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<string>("ThirdPartyType")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime?>("ValidTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("ZmOpenId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("EnterpriseId");
+
+                    b.ToTable("EnterpriseWallet");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseWalletExpandindirectOrder", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("BizScene")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("BizType")
+                        .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>("IdentityType")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("OrderId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("OrderStatus")
+                        .HasColumnType("int");
+
+                    b.Property<string>("OriginalOrderId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("OutBizNo")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ProductCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("RiskReviewRemark")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("Scene")
+                        .HasColumnType("int");
+
+                    b.Property<string>("SceneCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("SceneDirections")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("SceneImage")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("SceneQualificationImage")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("Sites")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Status")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTime?>("TaskFinishTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("WalletId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("WalletId");
+
+                    b.ToTable("EnterpriseWalletExpandindirectOrder");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseWalletExpandindirectOrderFile", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("File")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<Guid>("OrderId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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.HasKey("Id");
+
+                    b.HasIndex("OrderId");
+
+                    b.ToTable("EnterpriseWalletExpandindirectOrderFile");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseWalletTransaction", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<decimal>("AfterBalance")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<decimal>("Amount")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<DateTime?>("ArrivalTimeEnd")
+                        .HasColumnType("datetime2");
+
+                    b.Property<decimal>("Balance")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<string>("BizScene")
+                        .HasColumnType("nvarchar(max)");
+
+                    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<string>("ErrorCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("FailInstErrorCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("FailInstName")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("FailInstReason")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("FailReason")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("InflowSettleSerialNo")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("Link")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTime?>("OperatorTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("OperatorUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<decimal?>("OrderFee")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<string>("OrderId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("PayFundOrderId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ProductCode")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ReceiveAccount")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ReceiveName")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<Guid?>("ReceiveUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("ReceiverOpenId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ReceiverUserId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("Remark")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("SettleSerialNo")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Status")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("SubStatus")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<Guid?>("TaskUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTime?>("TransDate")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("TransactionStatus")
+                        .HasColumnType("int");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("int");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("WalletId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OperatorUserId");
+
+                    b.HasIndex("ReceiveUserId");
+
+                    b.HasIndex("TaskUserId");
+
+                    b.HasIndex("WalletId");
+
+                    b.ToTable("EnterpriseWalletTransaction");
+                });
+
+            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<string>("ControllerName")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ControllerSummary")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("DynamicAssemblyName")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("FileUpload")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsExpired")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsFromForm")
+                        .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<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<decimal?>("ActualSettlementAmount")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<string>("AddressDetail")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("AddressName")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("AgeMaxLimit")
+                        .HasColumnType("int");
+
+                    b.Property<int>("AgeMinLimit")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("BeginTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("BillingMethod")
+                        .HasColumnType("int");
+
+                    b.Property<int?>("CheckReceiveStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("CheckReceiveTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("CityCode")
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<string>("Code")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime>("EndTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("EnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int>("GenderLimit")
+                        .HasColumnType("int");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime?>("LastCheckReceiveTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<DateTime?>("LastSubmitTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<decimal?>("Latitude")
+                        .HasColumnType("decimal(18,6)");
+
+                    b.Property<decimal?>("Longitude")
+                        .HasColumnType("decimal(18,6)");
+
+                    b.Property<string>("Name")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ProvinceCode")
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<int>("RecommendStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("RecommendTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("ReleaseStatus")
+                        .HasColumnType("int");
+
+                    b.Property<decimal>("ServiceFee")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<decimal?>("SettlementAmount")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<int>("SettlementCycle")
+                        .HasColumnType("int");
+
+                    b.Property<Guid?>("SettlementOperatorUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("SettlementOrderName")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int?>("SettlementOrderStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("SettlementOrderTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("SettlementOrderUrl")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("SettlementRemark")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTime?>("SettlementStartTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int?>("SettlementStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("SettlementTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("SettlementUserCount")
+                        .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.HasIndex("SettlementOperatorUserId");
+
+                    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<decimal>("ActualAmount")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<decimal?>("ActualSettlementAmount")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<int?>("ArrangeStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("ArrangeTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("Bank")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("BankBranch")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int?>("CheckReceiveStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("CheckReceiveTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("EnterpriseEmployeeId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int>("HireStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("HireTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime?>("LastCheckReceiveTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<DateTime?>("LastSubmitTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("ReceiveAccount")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("ReceiveName")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<decimal?>("SettlementAmount")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property<string>("SettlementRemark")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int?>("SettlementStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("SettlementTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<Guid>("TaskInfoId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("EnterpriseEmployeeId");
+
+                    b.HasIndex("TaskInfoId");
+
+                    b.ToTable("TaskInfoUser");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int>("CheckReceiveStatus")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("CheckReceiveTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime>("Date")
+                        .HasColumnType("datetime2");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<Guid>("TaskInfoUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TaskInfoUserId");
+
+                    b.ToTable("TaskInfoUserSubmit");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmitFile", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("File")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<Guid>("SubmitId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("SubmitId");
+
+                    b.ToTable("TaskInfoUserSubmitFile");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskUserCollect", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<Guid>("TaskInfoId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("UserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TaskInfoId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("TaskUserCollect");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.User", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int?>("Age")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Avatar")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTime?>("Birthday")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("CityCode")
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<string>("ContactPhoneNumber")
+                        .HasMaxLength(11)
+                        .HasColumnType("nvarchar(11)");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int?>("DataSource")
+                        .HasColumnType("int");
+
+                    b.Property<Guid?>("DataSourceId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("EducationalBackgroundCode")
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<Guid?>("EnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int?>("FreeTime")
+                        .HasColumnType("int");
+
+                    b.Property<int?>("Gender")
+                        .HasColumnType("int");
+
+                    b.Property<int?>("Height")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Identity")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("IsCheckPhoneNumber")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsReal")
+                        .HasColumnType("bit");
+
+                    b.Property<int?>("JobSeekingStatus")
+                        .HasColumnType("int");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Name")
+                        .HasMaxLength(32)
+                        .HasColumnType("nvarchar(32)");
+
+                    b.Property<string>("Password")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("PersonalIdentityCode")
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<string>("PhoneNumber")
+                        .HasMaxLength(11)
+                        .HasColumnType("nvarchar(11)");
+
+                    b.Property<string>("ProvinceCode")
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<int?>("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<int?>("Age")
+                        .HasColumnType("int");
+
+                    b.Property<string>("BankCard")
+                        .HasMaxLength(32)
+                        .HasColumnType("nvarchar(32)");
+
+                    b.Property<string>("BankCardImg")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTime?>("Birthday")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("ElectronSignUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("FaceRealUrl")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int?>("Gender")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Identity")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("IdentityBackImg")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("IdentityImg")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("Name")
+                        .IsRequired()
+                        .HasMaxLength(32)
+                        .HasColumnType("nvarchar(32)");
+
+                    b.Property<string>("PhoneNumber")
+                        .HasMaxLength(11)
+                        .HasColumnType("nvarchar(11)");
+
+                    b.Property<int?>("RealAccess")
+                        .HasColumnType("int");
+
+                    b.Property<string>("RealFailMessage")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("RealStatus")
+                        .HasColumnType("int");
+
+                    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<int>("Access")
+                        .HasColumnType("int");
+
+                    b.Property<string>("Bank")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("BankBranch")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("Code")
+                        .HasMaxLength(32)
+                        .HasColumnType("nvarchar(32)");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("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.HasKey("Id");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("UserBankCard");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserCredential", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("BackImg")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("Code")
+                        .HasMaxLength(128)
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime?>("EndDate")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("Img")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsForever")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("IssueUnit")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime?>("StartDate")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<string>("TypeCode")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("UserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TypeCode");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("UserCredential");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserDepartment", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("DepartmentId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("UserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("DepartmentId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("UserDepartment");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserExpectJob", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("ExpectJobCode")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(128)");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("UserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ExpectJobCode");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("UserExpectJob");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserManageIndustrialPark", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("IndustrialParkId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("UserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("UserManageIndustrialPark");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserPhoto", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("Img")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("UserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("UserPhoto");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserRole", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("CreatedEnterpriseId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTimeOffset>("CreatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("CreatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<Guid>("RoleId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.Property<string>("TraceId")
+                        .HasColumnType("nvarchar(max)");
+
+                    b.Property<DateTimeOffset?>("UpdatedTime")
+                        .HasColumnType("datetimeoffset");
+
+                    b.Property<Guid?>("UpdatedUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("UserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("RoleId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("UserRole");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.ContractTemplate", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
+                        .WithMany("ContractTemplates")
+                        .HasForeignKey("EnterpriseId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Enterprise");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.ContractTemplateValue", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.ContractTemplate", "Template")
+                        .WithMany("Values")
+                        .HasForeignKey("TemplateId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Template");
+                });
+
+            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.EnterpriseCost", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.EnterpriseEmployeeContract", "EnterpriseEmployeeContract")
+                        .WithMany()
+                        .HasForeignKey("EnterpriseEmployeeContractId");
+
+                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
+                        .WithMany()
+                        .HasForeignKey("EnterpriseId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Enterprise");
+
+                    b.Navigation("EnterpriseEmployeeContract");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseElectronSignSetting", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
+                        .WithMany("ElectronSignSettings")
+                        .HasForeignKey("EnterpriseId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Enterprise");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.ContractTemplate", "ContractTemplate")
+                        .WithMany()
+                        .HasForeignKey("ContractTemplateId");
+
+                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
+                        .WithMany()
+                        .HasForeignKey("EnterpriseId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("FlexJobApi.Core.User", "User")
+                        .WithMany("EnterpriseEmployees")
+                        .HasForeignKey("UserId");
+
+                    b.Navigation("ContractTemplate");
+
+                    b.Navigation("Enterprise");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployeeContract", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.ContractTemplate", "ContractTemplate")
+                        .WithMany()
+                        .HasForeignKey("ContractTemplateId");
+
+                    b.HasOne("FlexJobApi.Core.EnterpriseEmployee", "EnterpriseEmployee")
+                        .WithMany("Contracts")
+                        .HasForeignKey("EnterpriseEmployeeId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("ContractTemplate");
+
+                    b.Navigation("EnterpriseEmployee");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseUserCollect", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
+                        .WithMany()
+                        .HasForeignKey("EnterpriseId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("FlexJobApi.Core.User", "User")
+                        .WithMany("EnterpriseUserCollects")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Enterprise");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseWallet", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
+                        .WithMany()
+                        .HasForeignKey("EnterpriseId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Enterprise");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseWalletExpandindirectOrder", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.EnterpriseWallet", "Wallet")
+                        .WithMany()
+                        .HasForeignKey("WalletId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Wallet");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseWalletExpandindirectOrderFile", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.EnterpriseWalletExpandindirectOrder", "Order")
+                        .WithMany("Files")
+                        .HasForeignKey("OrderId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Order");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseWalletTransaction", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.User", "OperatorUser")
+                        .WithMany()
+                        .HasForeignKey("OperatorUserId");
+
+                    b.HasOne("FlexJobApi.Core.User", "ReceiveUser")
+                        .WithMany()
+                        .HasForeignKey("ReceiveUserId");
+
+                    b.HasOne("FlexJobApi.Core.TaskInfoUser", "TaskUser")
+                        .WithMany()
+                        .HasForeignKey("TaskUserId");
+
+                    b.HasOne("FlexJobApi.Core.EnterpriseWallet", "Wallet")
+                        .WithMany()
+                        .HasForeignKey("WalletId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("OperatorUser");
+
+                    b.Navigation("ReceiveUser");
+
+                    b.Navigation("TaskUser");
+
+                    b.Navigation("Wallet");
+                });
+
+            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.HasOne("FlexJobApi.Core.User", "SettlementOperatorUser")
+                        .WithMany()
+                        .HasForeignKey("SettlementOperatorUserId");
+
+                    b.Navigation("City");
+
+                    b.Navigation("Enterprise");
+
+                    b.Navigation("Province");
+
+                    b.Navigation("SettlementOperatorUser");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.DictionaryData", "Benefit")
+                        .WithMany()
+                        .HasForeignKey("BenefitCode")
+                        .HasPrincipalKey("Code")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo")
+                        .WithMany("Benefits")
+                        .HasForeignKey("TaskInfoId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Benefit");
+
+                    b.Navigation("TaskInfo");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskInfoCredentialLimit", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo")
+                        .WithMany("CredentialLimits")
+                        .HasForeignKey("TaskInfoId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("FlexJobApi.Core.DictionaryData", "Type")
+                        .WithMany()
+                        .HasForeignKey("TypeCode")
+                        .HasPrincipalKey("Code")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.Navigation("TaskInfo");
+
+                    b.Navigation("Type");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.EnterpriseEmployee", "EnterpriseEmployee")
+                        .WithMany("TaskInfoUsers")
+                        .HasForeignKey("EnterpriseEmployeeId")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo")
+                        .WithMany("TaskInfoUsers")
+                        .HasForeignKey("TaskInfoId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("EnterpriseEmployee");
+
+                    b.Navigation("TaskInfo");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.TaskInfoUser", "TaskInfoUser")
+                        .WithMany("Submits")
+                        .HasForeignKey("TaskInfoUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("TaskInfoUser");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmitFile", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.TaskInfoUserSubmit", "Submit")
+                        .WithMany("Files")
+                        .HasForeignKey("SubmitId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Submit");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskUserCollect", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.TaskInfo", "TaskInfo")
+                        .WithMany("TaskUserCollects")
+                        .HasForeignKey("TaskInfoId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("FlexJobApi.Core.User", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("TaskInfo");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.User", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.DictionaryData", "City")
+                        .WithMany()
+                        .HasForeignKey("CityCode")
+                        .HasPrincipalKey("Code")
+                        .OnDelete(DeleteBehavior.Restrict);
+
+                    b.HasOne("FlexJobApi.Core.DictionaryData", "EducationalBackground")
+                        .WithMany()
+                        .HasForeignKey("EducationalBackgroundCode")
+                        .HasPrincipalKey("Code")
+                        .OnDelete(DeleteBehavior.Restrict);
+
+                    b.HasOne("FlexJobApi.Core.Enterprise", "Enterprise")
+                        .WithMany("Users")
+                        .HasForeignKey("EnterpriseId");
+
+                    b.HasOne("FlexJobApi.Core.DictionaryData", "PersonalIdentity")
+                        .WithMany()
+                        .HasForeignKey("PersonalIdentityCode")
+                        .HasPrincipalKey("Code")
+                        .OnDelete(DeleteBehavior.Restrict);
+
+                    b.HasOne("FlexJobApi.Core.DictionaryData", "Province")
+                        .WithMany()
+                        .HasForeignKey("ProvinceCode")
+                        .HasPrincipalKey("Code")
+                        .OnDelete(DeleteBehavior.Restrict);
+
+                    b.Navigation("City");
+
+                    b.Navigation("EducationalBackground");
+
+                    b.Navigation("Enterprise");
+
+                    b.Navigation("PersonalIdentity");
+
+                    b.Navigation("Province");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserAuth", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.User", "User")
+                        .WithOne("UserAuth")
+                        .HasForeignKey("FlexJobApi.Core.UserAuth", "Id")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserBankCard", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.User", "User")
+                        .WithMany("BankCards")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserCredential", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.DictionaryData", "Type")
+                        .WithMany()
+                        .HasForeignKey("TypeCode")
+                        .HasPrincipalKey("Code")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("FlexJobApi.Core.User", "User")
+                        .WithMany("UserCredentials")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Type");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserDepartment", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.Department", "Department")
+                        .WithMany()
+                        .HasForeignKey("DepartmentId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("FlexJobApi.Core.User", "User")
+                        .WithMany("UserDepartments")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Department");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserExpectJob", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.DictionaryData", "ExpectJob")
+                        .WithMany()
+                        .HasForeignKey("ExpectJobCode")
+                        .HasPrincipalKey("Code")
+                        .OnDelete(DeleteBehavior.Restrict)
+                        .IsRequired();
+
+                    b.HasOne("FlexJobApi.Core.User", "User")
+                        .WithMany("UserExpectJobs")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("ExpectJob");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserManageIndustrialPark", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.User", "User")
+                        .WithMany("UserManageIndustrialParks")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserPhoto", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.User", "User")
+                        .WithMany("Photos")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.UserRole", b =>
+                {
+                    b.HasOne("FlexJobApi.Core.Role", "Role")
+                        .WithMany("UserRoles")
+                        .HasForeignKey("RoleId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("FlexJobApi.Core.User", "User")
+                        .WithMany("UserRoles")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Role");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.ContractTemplate", b =>
+                {
+                    b.Navigation("Values");
+                });
+
+            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("ContractTemplates");
+
+                    b.Navigation("Departments");
+
+                    b.Navigation("ElectronSignSettings");
+
+                    b.Navigation("EnterpriseAuth");
+
+                    b.Navigation("Users");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseEmployee", b =>
+                {
+                    b.Navigation("Contracts");
+
+                    b.Navigation("TaskInfoUsers");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.EnterpriseWalletExpandindirectOrder", b =>
+                {
+                    b.Navigation("Files");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.Menu", b =>
+                {
+                    b.Navigation("Children");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.Role", b =>
+                {
+                    b.Navigation("RoleMenus");
+
+                    b.Navigation("RoleResources");
+
+                    b.Navigation("UserRoles");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskInfo", b =>
+                {
+                    b.Navigation("Benefits");
+
+                    b.Navigation("CredentialLimits");
+
+                    b.Navigation("TaskInfoUsers");
+
+                    b.Navigation("TaskUserCollects");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUser", b =>
+                {
+                    b.Navigation("Submits");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.TaskInfoUserSubmit", b =>
+                {
+                    b.Navigation("Files");
+                });
+
+            modelBuilder.Entity("FlexJobApi.Core.User", b =>
+                {
+                    b.Navigation("BankCards");
+
+                    b.Navigation("EnterpriseEmployees");
+
+                    b.Navigation("EnterpriseUserCollects");
+
+                    b.Navigation("Photos");
+
+                    b.Navigation("UserAuth");
+
+                    b.Navigation("UserCredentials");
+
+                    b.Navigation("UserDepartments");
+
+                    b.Navigation("UserExpectJobs");
+
+                    b.Navigation("UserManageIndustrialParks");
+
+                    b.Navigation("UserRoles");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/FlexJobApi.Database.Migrations/Migrations/20250909053124_UpdateUserWalletTransaction0909.cs b/FlexJobApi.Database.Migrations/Migrations/20250909053124_UpdateUserWalletTransaction0909.cs
new file mode 100644
index 0000000..98ffd92
--- /dev/null
+++ b/FlexJobApi.Database.Migrations/Migrations/20250909053124_UpdateUserWalletTransaction0909.cs
@@ -0,0 +1,152 @@
+锘縰sing System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace FlexJobApi.Database.Migrations.Migrations
+{
+    /// <inheritdoc />
+    public partial class UpdateUserWalletTransaction0909 : Migration
+    {
+        /// <inheritdoc />
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AddColumn<decimal>(
+                name: "ActualAmount",
+                table: "TaskInfoUser",
+                type: "decimal(18,2)",
+                nullable: false,
+                defaultValue: 0m);
+
+            migrationBuilder.AddColumn<Guid>(
+                name: "SettlementOperatorUserId",
+                table: "TaskInfo",
+                type: "uniqueidentifier",
+                nullable: true);
+
+            migrationBuilder.AddColumn<decimal>(
+                name: "AfterBalance",
+                table: "EnterpriseWalletTransaction",
+                type: "decimal(18,2)",
+                nullable: false,
+                defaultValue: 0m);
+
+            migrationBuilder.AddColumn<DateTime>(
+                name: "OperatorTime",
+                table: "EnterpriseWalletTransaction",
+                type: "datetime2",
+                nullable: true);
+
+            migrationBuilder.AddColumn<Guid>(
+                name: "OperatorUserId",
+                table: "EnterpriseWalletTransaction",
+                type: "uniqueidentifier",
+                nullable: true);
+
+            migrationBuilder.AddColumn<Guid>(
+                name: "ReceiveUserId",
+                table: "EnterpriseWalletTransaction",
+                type: "uniqueidentifier",
+                nullable: true);
+
+            migrationBuilder.AddColumn<decimal>(
+                name: "FreezeBalance",
+                table: "EnterpriseWallet",
+                type: "decimal(18,2)",
+                nullable: false,
+                defaultValue: 0m);
+
+            migrationBuilder.CreateIndex(
+                name: "IX_TaskInfo_SettlementOperatorUserId",
+                table: "TaskInfo",
+                column: "SettlementOperatorUserId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_EnterpriseWalletTransaction_OperatorUserId",
+                table: "EnterpriseWalletTransaction",
+                column: "OperatorUserId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_EnterpriseWalletTransaction_ReceiveUserId",
+                table: "EnterpriseWalletTransaction",
+                column: "ReceiveUserId");
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_EnterpriseWalletTransaction_User_OperatorUserId",
+                table: "EnterpriseWalletTransaction",
+                column: "OperatorUserId",
+                principalTable: "User",
+                principalColumn: "Id");
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_EnterpriseWalletTransaction_User_ReceiveUserId",
+                table: "EnterpriseWalletTransaction",
+                column: "ReceiveUserId",
+                principalTable: "User",
+                principalColumn: "Id");
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_TaskInfo_User_SettlementOperatorUserId",
+                table: "TaskInfo",
+                column: "SettlementOperatorUserId",
+                principalTable: "User",
+                principalColumn: "Id");
+        }
+
+        /// <inheritdoc />
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropForeignKey(
+                name: "FK_EnterpriseWalletTransaction_User_OperatorUserId",
+                table: "EnterpriseWalletTransaction");
+
+            migrationBuilder.DropForeignKey(
+                name: "FK_EnterpriseWalletTransaction_User_ReceiveUserId",
+                table: "EnterpriseWalletTransaction");
+
+            migrationBuilder.DropForeignKey(
+                name: "FK_TaskInfo_User_SettlementOperatorUserId",
+                table: "TaskInfo");
+
+            migrationBuilder.DropIndex(
+                name: "IX_TaskInfo_SettlementOperatorUserId",
+                table: "TaskInfo");
+
+            migrationBuilder.DropIndex(
+                name: "IX_EnterpriseWalletTransaction_OperatorUserId",
+                table: "EnterpriseWalletTransaction");
+
+            migrationBuilder.DropIndex(
+                name: "IX_EnterpriseWalletTransaction_ReceiveUserId",
+                table: "EnterpriseWalletTransaction");
+
+            migrationBuilder.DropColumn(
+                name: "ActualAmount",
+                table: "TaskInfoUser");
+
+            migrationBuilder.DropColumn(
+                name: "SettlementOperatorUserId",
+                table: "TaskInfo");
+
+            migrationBuilder.DropColumn(
+                name: "AfterBalance",
+                table: "EnterpriseWalletTransaction");
+
+            migrationBuilder.DropColumn(
+                name: "OperatorTime",
+                table: "EnterpriseWalletTransaction");
+
+            migrationBuilder.DropColumn(
+                name: "OperatorUserId",
+                table: "EnterpriseWalletTransaction");
+
+            migrationBuilder.DropColumn(
+                name: "ReceiveUserId",
+                table: "EnterpriseWalletTransaction");
+
+            migrationBuilder.DropColumn(
+                name: "FreezeBalance",
+                table: "EnterpriseWallet");
+        }
+    }
+}
diff --git a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs
index 8926aca..cbae2ef 100644
--- a/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs
+++ b/FlexJobApi.Database.Migrations/Migrations/DefaultDbContextModelSnapshot.cs
@@ -1077,6 +1077,9 @@
                     b.Property<Guid>("EnterpriseId")
                         .HasColumnType("uniqueidentifier");
 
+                    b.Property<decimal>("FreezeBalance")
+                        .HasColumnType("decimal(18,2)");
+
                     b.Property<DateTime?>("InvalidTime")
                         .HasColumnType("datetime2");
 
@@ -1287,6 +1290,9 @@
                         .ValueGeneratedOnAdd()
                         .HasColumnType("uniqueidentifier");
 
+                    b.Property<decimal>("AfterBalance")
+                        .HasColumnType("decimal(18,2)");
+
                     b.Property<decimal>("Amount")
                         .HasColumnType("decimal(18,2)");
 
@@ -1335,6 +1341,12 @@
                     b.Property<string>("Link")
                         .HasColumnType("nvarchar(max)");
 
+                    b.Property<DateTime?>("OperatorTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("OperatorUserId")
+                        .HasColumnType("uniqueidentifier");
+
                     b.Property<decimal?>("OrderFee")
                         .HasColumnType("decimal(18,2)");
 
@@ -1352,6 +1364,9 @@
 
                     b.Property<string>("ReceiveName")
                         .HasColumnType("nvarchar(max)");
+
+                    b.Property<Guid?>("ReceiveUserId")
+                        .HasColumnType("uniqueidentifier");
 
                     b.Property<string>("ReceiverOpenId")
                         .HasColumnType("nvarchar(max)");
@@ -1399,6 +1414,10 @@
                         .HasColumnType("uniqueidentifier");
 
                     b.HasKey("Id");
+
+                    b.HasIndex("OperatorUserId");
+
+                    b.HasIndex("ReceiveUserId");
 
                     b.HasIndex("TaskUserId");
 
@@ -2003,6 +2022,9 @@
                     b.Property<int>("SettlementCycle")
                         .HasColumnType("int");
 
+                    b.Property<Guid?>("SettlementOperatorUserId")
+                        .HasColumnType("uniqueidentifier");
+
                     b.Property<string>("SettlementOrderName")
                         .HasColumnType("nvarchar(max)");
 
@@ -2052,6 +2074,8 @@
                     b.HasIndex("EnterpriseId");
 
                     b.HasIndex("ProvinceCode");
+
+                    b.HasIndex("SettlementOperatorUserId");
 
                     b.ToTable("TaskInfo");
                 });
@@ -2153,6 +2177,9 @@
                     b.Property<Guid>("Id")
                         .ValueGeneratedOnAdd()
                         .HasColumnType("uniqueidentifier");
+
+                    b.Property<decimal>("ActualAmount")
+                        .HasColumnType("decimal(18,2)");
 
                     b.Property<decimal?>("ActualSettlementAmount")
                         .HasColumnType("decimal(18,2)");
@@ -3193,6 +3220,14 @@
 
             modelBuilder.Entity("FlexJobApi.Core.EnterpriseWalletTransaction", b =>
                 {
+                    b.HasOne("FlexJobApi.Core.User", "OperatorUser")
+                        .WithMany()
+                        .HasForeignKey("OperatorUserId");
+
+                    b.HasOne("FlexJobApi.Core.User", "ReceiveUser")
+                        .WithMany()
+                        .HasForeignKey("ReceiveUserId");
+
                     b.HasOne("FlexJobApi.Core.TaskInfoUser", "TaskUser")
                         .WithMany()
                         .HasForeignKey("TaskUserId");
@@ -3202,6 +3237,10 @@
                         .HasForeignKey("WalletId")
                         .OnDelete(DeleteBehavior.Cascade)
                         .IsRequired();
+
+                    b.Navigation("OperatorUser");
+
+                    b.Navigation("ReceiveUser");
 
                     b.Navigation("TaskUser");
 
@@ -3275,11 +3314,17 @@
                         .HasPrincipalKey("Code")
                         .OnDelete(DeleteBehavior.Restrict);
 
+                    b.HasOne("FlexJobApi.Core.User", "SettlementOperatorUser")
+                        .WithMany()
+                        .HasForeignKey("SettlementOperatorUserId");
+
                     b.Navigation("City");
 
                     b.Navigation("Enterprise");
 
                     b.Navigation("Province");
+
+                    b.Navigation("SettlementOperatorUser");
                 });
 
             modelBuilder.Entity("FlexJobApi.Core.TaskInfoBenefit", b =>
diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs
index 3ee158a..7adf5bd 100644
--- a/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/Tasks/Commands/TaskInfoCommandHandler.cs
@@ -249,6 +249,7 @@
             if (entity.SettlementStatus == null) throw Oops.Oh(EnumErrorCodeType.s510, "鏈紑濮嬬粨绠楋紝璇峰厛涓婁紶缁撶畻鍗曞苟纭");
             if (entity.SettlementStatus == EnumTaskSettlementStatus.Completed) throw Oops.Oh(EnumErrorCodeType.s510, "宸茬粨绠�");
             entity.SettlementStatus = EnumTaskSettlementStatus.InProcess;
+            entity.SettlementOperatorUserId = logier.Id;
             entity.SettlementStartTime = DateTime.Now;
             foreach (var user in entity.TaskInfoUsers)
             {
diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs
index 6dac49a..8a33475 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs
@@ -25,8 +25,7 @@
         ) :
         IRequestHandler<OpenEnterpriseWalletCommand, OpenEnterpriseWalletCommandResult>,
         IRequestHandler<CloseEnterpriseWalletCommand, Guid>,
-        IRequestHandler<RechargeEnterpriseWalletCommand, RechargeEnterpriseWalletCommandResult>,
-        IRequestHandler<TransferEnterpriseWalletCommand, Guid>
+        IRequestHandler<RechargeEnterpriseWalletCommand, RechargeEnterpriseWalletCommandResult>
     {
         private readonly IRepository<EnterpriseWallet> rep = rep;
         private readonly IRepository<Enterprise> repEnterprise = repEnterprise;
@@ -155,8 +154,10 @@
             order.Remark = request.Remark ?? "鍏呭��";
             order.ProductCode = "FUND_ACCOUNT_BOOK";
             order.BizScene = "SATF_DEPOSIT";
-            order.TransactionStatus = EnumEnterpriseWalletTransactionStatus.WaitSubmit;
+            order.TransactionStatus = EnumWalletTransactionStatus.WaitSubmit;
             order.Balance = entity.Balance;
+            order.OperatorUserId = logier.Id;
+            order.OperatorTime = DateTime.Now;
             await SetCode(order);
             await repEnterpriseWalletTransaction.InsertAsync(order);
 
@@ -180,95 +181,12 @@
                 },
             }, "/api/user/enterpriseWallet/alipayFundTransOrderChangedNotify");
             if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg);
-            order.TransactionStatus = EnumEnterpriseWalletTransactionStatus.WaitPay;
+            order.TransactionStatus = EnumWalletTransactionStatus.WaitPay;
             await repEnterpriseWalletTransaction.UpdateAsync(order);
             return new RechargeEnterpriseWalletCommandResult
             {
                 PayUrl = response.Body
             };
-        }
-
-        /// <summary>
-        /// 浼佷笟閽卞寘杞处
-        /// </summary>
-        /// <param name="request"></param>
-        /// <param name="cancellationToken"></param>
-        /// <returns></returns>
-        [UnitOfWork(false)]
-        public async Task<Guid> Handle(TransferEnterpriseWalletCommand request, CancellationToken cancellationToken)
-        {
-            var logier = JwtUtils.GetCurrentLogier();
-            var entity = await rep.AsQueryable()
-                .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Access == EnumEnterpriseWalletAccess.Alipay)
-                .FirstOrDefaultAsync();
-            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "浼佷笟閽卞寘");
-            if (entity.SignStatus != EnumEnterpriseWalletSignStatus.Normal) throw Oops.Oh(EnumErrorCodeType.s510, "鏈绾�");
-            if (entity.AccountBookStatus != EnumEnterpriseWalletAccountBookStatus.Normal) throw Oops.Oh(EnumErrorCodeType.s510, "鏈紑閫氳璐︽湰");
-            await GetBalance(entity);
-
-            var order = new EnterpriseWalletTransaction();
-            order.Type = EnumEnterpriseWalletTransactionType.Recharge;
-            order.WalletId = entity.Id;
-            order.Amount = request.Amount;
-            order.Remark = request.Remark;
-            order.ProductCode = "SINGLE_TRANSFER_NO_PWD";
-            order.BizScene = "ENTRUST_TRANSFER";
-            order.TransactionStatus = EnumEnterpriseWalletTransactionStatus.WaitSubmit;
-            order.Balance = entity.Balance;
-            await SetCode(order);
-            await repEnterpriseWalletTransaction.InsertAsync(order);
-
-            var response = alipayUtils.FundTransUniTransfer(new AlipayFundTransUniTransferModel
-            {
-                OutBizNo = order.Code,
-                TransAmount = order.Amount.ToString(),
-                ProductCode = order.ProductCode,
-                BizScene = order.BizScene,
-                PayeeInfo = new Participant
-                {
-                    IdentityType = "ALIPAY_LOGON_ID",
-                    Identity = "13616515310",
-                    Name = "鏉ㄦ尟瀹�",
-                },
-                PayerInfo = new Participant
-                {
-                    IdentityType = "ACCOUNT_BOOK_ID",
-                    Identity = entity.AccountBookId,
-                    ExtInfo = new
-                    {
-                        agreement_no = entity.AgreementNo,
-                    }.ToJson(),
-                },
-                OrderTitle = order.Remark,
-                Remark = order.Remark,
-                BusinessParams = new
-                {
-                    withdraw_timeliness = "T0"
-                }.ToJson()
-            }, "/api/user/enterpriseWallet/alipayFundTransOrderChangedNotify");
-            if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg);
-            order.OrderId = response.OrderId;
-            order.PayFundOrderId = response.PayFundOrderId;
-            order.SettleSerialNo = response.SettleSerialNo;
-            order.TransDate = response.TransDate.ToDateTime();
-            order.Link = response.Link;
-            order.Status = response.Status;
-            order.SubStatus = response.SubStatus;
-            order.TransactionStatus = response.Status == "SUCCESS"
-                ? EnumEnterpriseWalletTransactionStatus.Success
-                : response.Status == "DEALING"
-                ? EnumEnterpriseWalletTransactionStatus.Dealing
-                : response.Status == "REFUND"
-                ? EnumEnterpriseWalletTransactionStatus.Refund
-                : response.Status == "FAIL"
-                ? EnumEnterpriseWalletTransactionStatus.Fail
-                : throw Oops.Oh(EnumErrorCodeType.s510, $"鏈瘑鍒殑鐘舵�侊細{response.Status}");
-            await repEnterpriseWalletTransaction.UpdateAsync(order);
-            if (order.TransactionStatus == EnumEnterpriseWalletTransactionStatus.Success)
-            {
-                await GetBalance(entity);
-            }
-            return entity.Id;
         }
 
         private async Task GetBalance(EnterpriseWallet entity)
diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs
index 05d4624..f95e00f 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs
@@ -196,16 +196,16 @@
             entity.TransDate = response.PayDate.ToDateTime();
             entity.Status = response.Status;
             entity.TransactionStatus = response.Status == "SUCCESS"
-                ? EnumEnterpriseWalletTransactionStatus.Success
+                ? EnumWalletTransactionStatus.Success
                 : response.Status == "DEALING"
-                ? EnumEnterpriseWalletTransactionStatus.Dealing
+                ? EnumWalletTransactionStatus.Dealing
                 : response.Status == "REFUND"
-                ? EnumEnterpriseWalletTransactionStatus.Refund
+                ? EnumWalletTransactionStatus.Refund
                 : response.Status == "FAIL"
-                ? EnumEnterpriseWalletTransactionStatus.Fail
+                ? EnumWalletTransactionStatus.Fail
                 : throw Oops.Oh(EnumErrorCodeType.s510, $"鏈瘑鍒殑鐘舵�侊細{response.Status}");
             await repEnterpriseWalletTransaction.UpdateAsync(entity);
-            if (entity.TransactionStatus == EnumEnterpriseWalletTransactionStatus.Success)
+            if (entity.TransactionStatus == EnumWalletTransactionStatus.Success)
             {
                 await GetBalance(entity.WalletId);
             }
diff --git a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
index 41c7082..763fb20 100644
--- a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
+++ b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
@@ -607,14 +607,6 @@
             <returns></returns>
             <exception cref="T:System.NotImplementedException"></exception>
         </member>
-        <member name="M:FlexJobApi.UserServer.Application.EnterpriseWalletCommandHandler.Handle(FlexJobApi.Core.TransferEnterpriseWalletCommand,System.Threading.CancellationToken)">
-            <summary>
-            浼佷笟閽卞寘杞处
-            </summary>
-            <param name="request"></param>
-            <param name="cancellationToken"></param>
-            <returns></returns>
-        </member>
         <member name="T:FlexJobApi.UserServer.Application.EnterpriseWalletExpandindirectCommandHandler">
             <summary>
             鏀粯瀹濊祫閲戜簩绾у晢鎴稫YB浠h繘浠�
@@ -1238,6 +1230,32 @@
             <param name="cancellationToken"></param>
             <returns></returns>
         </member>
+        <member name="T:FlexJobApi.UserServer.Application.GetPersonalUserTransactionsQueryHandler">
+            <summary>
+            鏌ヨ涓汉鐢ㄦ埛鏀舵敮鏄庣粏
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.UserServer.Application.GetPersonalUserTransactionsQueryHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.UserWalletTransaction})">
+            <summary>
+            鏌ヨ涓汉鐢ㄦ埛鏀舵敮鏄庣粏
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.UserServer.Application.GetPersonalUserTransactionsQueryHandler.Handle(FlexJobApi.Core.GetPersonalUserTransactionsQuery,System.Threading.CancellationToken)">
+            <summary>
+            鏌ヨ涓汉鐢ㄦ埛鏀舵敮鏄庣粏鍒嗛〉鍒楄〃鏁版嵁
+            </summary>
+            <param name="request"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
+        <member name="M:FlexJobApi.UserServer.Application.GetPersonalUserTransactionsQueryHandler.Handle(FlexJobApi.Core.GetPersonalUserTransactionQuery,System.Threading.CancellationToken)">
+            <summary>
+            鏌ヨ涓汉鐢ㄦ埛鏀舵敮鏄庣粏璇︽儏
+            </summary>
+            <param name="request"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
         <member name="T:FlexJobApi.UserServer.Application.GetUserInfoRolesQueryHandler">
             <summary>
             鏌ヨ鐢ㄦ埛瑙掕壊鍒楄〃
diff --git a/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserTransactionsQueryHandler.cs b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserTransactionsQueryHandler.cs
new file mode 100644
index 0000000..6ca7302
--- /dev/null
+++ b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserTransactionsQueryHandler.cs
@@ -0,0 +1,84 @@
+锘縰sing FlexJobApi.Core;
+using Furion.DatabaseAccessor;
+using Furion.FriendlyException;
+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 GetPersonalUserTransactionsQueryHandler(
+            IRepository<UserWalletTransaction> rep
+        ) :
+        IRequestHandler<GetPersonalUserTransactionsQuery, GetPersonalUserTransactionsQueryResult>,
+        IRequestHandler<GetPersonalUserTransactionQuery, GetPersonalUserTransactionQueryResult>
+    {
+        private readonly IRepository<UserWalletTransaction> rep = rep;
+
+        /// <summary>
+        /// 鏌ヨ涓汉鐢ㄦ埛鏀舵敮鏄庣粏鍒嗛〉鍒楄〃鏁版嵁
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<GetPersonalUserTransactionsQueryResult> Handle(GetPersonalUserTransactionsQuery request, CancellationToken cancellationToken)
+        {
+            var logier = JwtUtils.GetCurrentLogier();
+            var q = rep.AsQueryable().AsNoTracking()
+                .OrderByDescending(it => it.CreatedTime)
+                .Where(it =>
+                    it.Wallet.UserId == logier.Id
+                    && it.TransactionStatus == EnumWalletTransactionStatus.Success);
+
+            if (request.CreatedTimeStart.HasValue && request.CreatedTimeEnd.HasValue)
+            {
+                q = q.Where(it => request.CreatedTimeStart <= it.CreatedTime && it.CreatedTime <= request.CreatedTimeEnd);
+            }
+
+            var data = new GetPersonalUserTransactionsQueryResultObjectData();
+            data.SumIncome = await q.Where(it => it.Type == EnumUserWalletTransactionType.Income).SumAsync(it => it.Amount);
+            data.SumWithdraw = await q.Where(it => it.Type == EnumUserWalletTransactionType.Withdraw).SumAsync(it => it.Amount);
+
+            if (request.Type.HasValue)
+            {
+                q = q.Where(it => it.Type == request.Type);
+            }
+
+            var s = q
+                .Select(it => new GetPersonalUserTransactionsQueryResultItem
+                {
+                    Id = it.Id,
+                    Title = it.Title,
+                    CreatedTime = it.CreatedTime,
+                    Balance = it.Balance + (it.Type == EnumUserWalletTransactionType.Income ? it.Amount : (0 - it.Amount)),
+                    Amount = it.Type == EnumUserWalletTransactionType.Income ? it.Amount : (0 - it.Amount),
+                });
+            var list = await request.PageModel.GetPagedListAsync<GetPersonalUserTransactionsQueryResult, GetPersonalUserTransactionsQueryResultItem>(s, cancellationToken);
+
+            list.ObjectData = data;
+
+            return list;
+        }
+
+        /// <summary>
+        /// 鏌ヨ涓汉鐢ㄦ埛鏀舵敮鏄庣粏璇︽儏
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<GetPersonalUserTransactionQueryResult> Handle(GetPersonalUserTransactionQuery request, CancellationToken cancellationToken)
+        {
+            return await rep.AsQueryable().AsNoTracking()
+                .Where(it => it.Id == request.Id)
+                .GetDetail<UserWalletTransaction, GetPersonalUserTransactionQueryResult>();
+        }
+    }
+}

--
Gitblit v1.9.1