From 75ffff5b036f823c209702af154702f59b2efb7a Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期三, 13 八月 2025 18:15:50 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs                        |    6 +++
 FlexJobApi.Core/Entities/UserServer/Users/User.cs                               |    6 +++
 FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumesQuery.cs    |    9 ++++
 FlexJobApi.Web.Entry/.config/dotnet-tools.json                                  |   13 ++++++
 FlexJobApi.Core/FlexJobApi.Core.xml                                             |   25 ++++++++++++
 FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs         |    5 ++
 FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs      |    6 ++
 FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs |    8 ++++
 8 files changed, 77 insertions(+), 1 deletions(-)

diff --git a/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs b/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs
index 570bf5f..a0f8722 100644
--- a/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs
+++ b/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfo.cs
@@ -20,6 +20,7 @@
         {
             Benefits = [];
             CredentialLimits = [];
+            TaskUserCollects = [];
         }
 
         /// <summary>
@@ -180,6 +181,11 @@
         /// </summary>
         public List<TaskInfoUser> TaskInfoUsers { get; set; }
 
+        /// <summary>
+        /// 璋佹敹钘忔浠诲姟
+        /// </summary>
+        public List<TaskUserCollect> TaskUserCollects { get; set; }
+
         public void Configure(EntityTypeBuilder<TaskInfo> entityBuilder, DbContext dbContext, Type dbContextLocator)
         {
             entityBuilder
diff --git a/FlexJobApi.Core/Entities/UserServer/Users/User.cs b/FlexJobApi.Core/Entities/UserServer/Users/User.cs
index 089bd5b..0aedd7e 100644
--- a/FlexJobApi.Core/Entities/UserServer/Users/User.cs
+++ b/FlexJobApi.Core/Entities/UserServer/Users/User.cs
@@ -24,6 +24,7 @@
             UserCredentials = [];
             Photos = [];
             EnterpriseEmployees = [];
+            EnterpriseUserCollects = [];
         }
 
         /// <summary>
@@ -254,6 +255,11 @@
         /// </summary>
         public List<EnterpriseEmployee> EnterpriseEmployees { get; set; }
 
+        /// <summary>
+        /// 璋佸浼佷笟鏀惰棌/鑱旂郴鎴�
+        /// </summary>
+        public List<EnterpriseUserCollect> EnterpriseUserCollects { get; set; }
+
         public void Configure(EntityTypeBuilder<User> entityBuilder, DbContext dbContext, Type dbContextLocator)
         {
             entityBuilder
diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml
index d5d77a5..33ce614 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.xml
+++ b/FlexJobApi.Core/FlexJobApi.Core.xml
@@ -874,6 +874,11 @@
             鐢ㄦ埛
             </summary>
         </member>
+        <member name="P:FlexJobApi.Core.TaskInfo.TaskUserCollects">
+            <summary>
+            璋佹敹钘忔浠诲姟
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.TaskInfoBenefit">
             <summary>
             浠诲姟绂忓埄
@@ -2135,6 +2140,11 @@
         <member name="P:FlexJobApi.Core.User.EnterpriseEmployees">
             <summary>
             鐏靛伐
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.User.EnterpriseUserCollects">
+            <summary>
+            璋佸浼佷笟鏀惰棌/鑱旂郴鎴�
             </summary>
         </member>
         <member name="T:FlexJobApi.Core.UserAuth">
@@ -4984,6 +4994,11 @@
         <member name="P:FlexJobApi.Core.GetTaskInfosQuery.CheckReceiveStatus">
             <summary>
             楠屾敹鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetTaskInfosQuery.IsCollected">
+            <summary>
+            鏄惁鏀惰棌
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.GetTaskInfosQueryResult.ObjectData">
@@ -7967,6 +7982,16 @@
             璧勬牸璇佷功缂栧彿
             </summary>
         </member>
+        <member name="P:FlexJobApi.Core.GetUserResumesQuery.IsCollected">
+            <summary>
+            鏄惁宸叉敹钘�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetUserResumesQuery.IsContacted">
+            <summary>
+            鏄惁宸茶仈绯�
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.GetUserResumesQueryResult">
             <summary>
             鏌ヨ绠�鍘嗗垎椤靛垪琛ㄦ暟鎹�-缁撴灉
diff --git a/FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs b/FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs
index 805fb6d..7b21f46 100644
--- a/FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs
+++ b/FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs
@@ -77,6 +77,11 @@
         /// 楠屾敹鐘舵��
         /// </summary>
         public EnumTaskCheckReceiveStatus? CheckReceiveStatus { get; set; }
+
+        /// <summary>
+        /// 鏄惁鏀惰棌
+        /// </summary>
+        public bool? IsCollected { get; set; }
     }
 
     public class GetTaskInfosQueryResult : PagedListQueryResult<GetTaskInfosQueryResultItem>
diff --git a/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumesQuery.cs b/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumesQuery.cs
index 20fe0b2..d4393f7 100644
--- a/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumesQuery.cs
+++ b/FlexJobApi.Core/Models/UserServer/UserResumes/Queries/GetUserResumesQuery.cs
@@ -54,6 +54,15 @@
         /// </summary>
         public List<string> UserCredentials { get; set; }
 
+        /// <summary>
+        /// 鏄惁宸叉敹钘�
+        /// </summary>
+        public bool? IsCollected { get; set; }
+
+        /// <summary>
+        /// 鏄惁宸茶仈绯�
+        /// </summary>
+        public bool? IsContacted { get; set; }
     }
 
     /// <summary>
diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
index 9b55d17..48d49a8 100644
--- a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
@@ -136,6 +136,10 @@
             {
                 q = q.Where(it => it.GenderLimit == request.GenderLimit);
             }
+            if (logier.Type == EnumUserType.Personal && request.IsCollected == true)
+            {
+                q = q.Where(it => it.TaskUserCollects.Any(c => c.UserId == logier.Id));
+            }
 
             var count = new GetTaskInfosQueryResultObjectData
             {
@@ -197,7 +201,7 @@
                         CheckReceiveStatus = t.CheckReceiveStatus,
                         CreatedTime = t.CreatedTime,
                         RecommendStatus = t.RecommendStatus,
-                        SettlementStatus = t.SettlementStatus
+                        SettlementStatus = t.SettlementStatus,
                     };
             var result = await request.PageModel.GetPagedListAsync<GetTaskInfosQueryResult, GetTaskInfosQueryResultItem>(s, cancellationToken);
             result.ObjectData = count;
diff --git a/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs b/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
index fa96fce..e1f7ccf 100644
--- a/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
@@ -73,6 +73,14 @@
                     it.UserCredentials.Any(c =>
                         request.UserCredentials.Contains(c.TypeCode)));
             }
+            if (logier.Type == EnumUserType.Enterprise && request.IsCollected == true)
+            {
+                q = q.Where(it => it.EnterpriseUserCollects.Any(c => c.EnterpriseId == logier.EnterpriseId && c.IsCollected));
+            }
+            if (logier.Type == EnumUserType.Enterprise && request.IsContacted == true)
+            {
+                q = q.Where(it => it.EnterpriseUserCollects.Any(c => c.EnterpriseId == logier.EnterpriseId && c.IsContacted));
+            }
             var s = q.Select(it => new GetUserResumesQueryResultItem
             {
                 Id = it.Id,
diff --git a/FlexJobApi.Web.Entry/.config/dotnet-tools.json b/FlexJobApi.Web.Entry/.config/dotnet-tools.json
new file mode 100644
index 0000000..837b189
--- /dev/null
+++ b/FlexJobApi.Web.Entry/.config/dotnet-tools.json
@@ -0,0 +1,13 @@
+{
+  "version": 1,
+  "isRoot": true,
+  "tools": {
+    "dotnet-ef": {
+      "version": "9.0.8",
+      "commands": [
+        "dotnet-ef"
+      ],
+      "rollForward": false
+    }
+  }
+}
\ No newline at end of file

--
Gitblit v1.9.1