From c582e460986388dec3c337f3fbc2b8cf616c6e4a Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 12 八月 2025 19:07:26 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUsersQuery.cs                     |   10 +++
 FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs                  |   11 +++
 FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUserQuery.cs                      |   28 +++++++++
 FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs |   26 ++++++++
 FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs    |   53 +++++++++++++++--
 FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs                      |    1 
 FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs                 |    2 
 FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs                         |   12 +++-
 8 files changed, 131 insertions(+), 12 deletions(-)

diff --git a/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUserQuery.cs b/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUserQuery.cs
new file mode 100644
index 0000000..cee3ebb
--- /dev/null
+++ b/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUserQuery.cs
@@ -0,0 +1,28 @@
+锘縰sing MediatR;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// B绔煡璇㈠簲鑱樻姤鍚嶈鎯�
+    /// </summary>
+    public class GetTaskUserQuery : IRequest<GetTaskUserQueryResult>
+    {
+        /// <summary>
+        /// Id
+        /// </summary>
+        public Guid Id { get; set; }
+    }
+
+    /// <summary>
+    /// B绔煡璇㈠簲鑱樻姤鍚嶈鎯�
+    /// </summary>
+    public class GetTaskUserQueryResult
+    {
+
+    }
+}
diff --git a/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUsersQuery.cs b/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUsersQuery.cs
index f7c2697..a8bbc78 100644
--- a/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUsersQuery.cs
+++ b/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUsersQuery.cs
@@ -18,6 +18,16 @@
         /// 浠诲姟Id
         /// </summary>
         public Guid Id { get; set; }
+
+        /// <summary>
+        /// 鍏抽敭瀛�
+        /// </summary>
+        public string Keywords { get; set; }
+
+        /// <summary>
+        /// 褰曠敤鐘舵��
+        /// </summary>
+        public EnumTaskUserHireStatus? HireStatus { get; set; }
     }
 
     /// <summary>
diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs
index c880d26..ac99cb0 100644
--- a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs
+++ b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Newtonsoft.Json;
+using System;
 using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
 using System.Linq;
@@ -104,14 +105,54 @@
         public string ContactPhoneNumber { get; set; }
 
         /// <summary>
+        /// 鏄惁瀹炲悕
+        /// </summary>
+        public bool UserIsReal { get; set; }
+
+        /// <summary>
+        /// 瀹炲悕鏂瑰紡
+        /// </summary>
+        public EnumUserRealMethod? RealMethod { get; set; }
+
+        /// <summary>
+        /// 韬唤缂栧彿
+        /// </summary>
+        public string PersonalIdentityCode { get; set; }
+
+        /// <summary>
+        /// 韬唤
+        /// </summary>
+        public string PersonalIdentityContent { get; set; }
+
+        /// <summary>
+        /// 瀛﹀巻缂栧彿
+        /// </summary>
+        public string EducationalBackgroundCode { get; set; }
+
+        /// <summary>
+        /// 瀛﹀巻
+        /// </summary>
+        public string EducationalBackgroundContent { get; set; }
+
+        /// <summary>
+        /// 涓婂矖娆℃暟
+        /// </summary>
+        public int TaskCount { get; set; }
+
+        /// <summary>
+        /// 宸ヤ綔璧勫巻
+        /// </summary>
+        public string WorkSeniority { get; set; }
+
+        /// <summary>
+        /// 宸ヤ綔缁忛獙
+        /// </summary>
+        public string WorkExperience { get; set; }
+
+        /// <summary>
         /// 褰曠敤鐘舵��
         /// </summary>
         public EnumTaskUserHireStatus HireStatus { get; set; }
-
-        /// <summary>
-        /// 瀹炲悕鐘舵��
-        /// </summary>
-        public bool? UserIsReal { get; set; }
 
         /// <summary>
         /// 鐏靛伐绛剧害鐘舵��
diff --git a/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs
index a363e48..e970789 100644
--- a/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs
@@ -34,6 +34,17 @@
             var q = rep.AsQueryable().AsNoTracking()
                 .OrderBy(it => it.CreatedTime)
                 .Where(it => it.TaskInfo.EnterpriseId == logier.EnterpriseId && it.TaskInfoId == request.Id);
+            if (request.Keywords.IsNotNull())
+            {
+                q = q.Where(it =>
+                    it.EnterpriseEmployee.User.Name.Contains(request.Keywords)
+                    || it.EnterpriseEmployee.User.Identity.Contains(request.Keywords)
+                    || it.EnterpriseEmployee.User.PhoneNumber.Contains(request.Keywords));
+            }
+            if (request.HireStatus.HasValue)
+            {
+                q = q.Where(it => it.EnterpriseEmployee.HireStatus == request.HireStatus);
+            }
             var s = q
                 .Select(it => new GetTaskUsersQueryResultItem
                 {
diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
index 6d1fa99..e9f5eff 100644
--- a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
@@ -267,7 +267,6 @@
             var q = TaskInfoRepository.GetQueryable(rep, true, logier).Where(it =>
                 it.TaskInfoUsers.Any(tu =>
                     tu.EnterpriseEmployee.UserId == logier.Id
-                    && tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass
                     && tu.ArrangeStatus == EnumTaskUserArrangeStatus.Complete));
             if (request.Status.HasValue)
             {
diff --git a/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs b/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs
index 47fa3c8..94880e8 100644
--- a/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs
@@ -270,9 +270,15 @@
                 .GetDetail<User, GetPersonalLoginInfoQueryResult>(cancellationToken);
             var taskUserQueryable = rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking()
                 .Where(it => it.EnterpriseEmployee.UserId == model.Id);
-            model.TaskCount = await taskUserQueryable.CountAsync();
-            model.HirePassTaskCount = await taskUserQueryable.CountAsync(it => it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass);
-            model.HireRefuseTaskCount = await taskUserQueryable.CountAsync(it => it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Refuse);
+            model.TaskCount = await taskUserQueryable.CountAsync(tu =>
+                tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Wait
+                || tu.EnterpriseEmployee.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait);
+            model.HirePassTaskCount = await taskUserQueryable.CountAsync(tu =>
+                tu.ArrangeStatus == EnumTaskUserArrangeStatus.Complete);
+            model.HireRefuseTaskCount = await taskUserQueryable.CountAsync(tu =>
+                tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Refuse
+                || tu.EnterpriseEmployee.UserSignContractStatus == EnumTaskUserSignContractStatus.Refuse
+                || tu.EnterpriseEmployee.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Refuse);
             return model;
         }
 
diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
index a0e2dc6..3a7ef18 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
@@ -70,7 +70,31 @@
             {
                 q = q.Where(it => it.EnterpriseSignContractStatus == request.EnterpriseSignContractStatus);
             }
-            var s = q.ProjectToType<GetEnterpriseEmployeesQueryResultItem>();
+            var s = q.Select(it => new GetEnterpriseEmployeesQueryResultItem
+            {
+                Id = it.Id,
+                Name = it.Name,
+                Identity = it.Identity,
+                Gender = it.Gender,
+                Age = it.Age,
+                ContactPhoneNumber = it.ContactPhoneNumber,
+                UserIsReal = it.User.IsReal,
+                RealMethod = it.User.RealMethod,
+                PersonalIdentityCode = it.User.PersonalIdentityCode,
+                PersonalIdentityContent = it.User.PersonalIdentity.Content,
+                EducationalBackgroundCode = it.User.EducationalBackgroundCode,
+                EducationalBackgroundContent = it.User.EducationalBackground.Content,
+                TaskCount = it.User.EnterpriseEmployees.Where(ee => ee.HireStatus == EnumTaskUserHireStatus.Pass).Sum(ee => ee.TaskInfoUsers.Count()),
+                WorkSeniority = it.User.WorkSeniority,
+                WorkExperience = it.User.WorkExperience,
+                HireStatus = it.HireStatus,
+                UserSignContractStatus = it.UserSignContractStatus,
+                HireTime = it.HireTime,
+                UserRealTime = it.User.RealTime,
+                UserSignContractTime = it.UserSignContractTime,
+                EnterpriseSignContractStatus = it.EnterpriseSignContractStatus,
+                EnterpriseSignContractTime = it.EnterpriseSignContractTime
+            });
             return await request.PageModel.GetPagedListAsync<GetEnterpriseEmployeesQueryResult, GetEnterpriseEmployeesQueryResultItem>(s, cancellationToken);
         }
     }
diff --git a/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs b/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
index 463b2d6..f4eae59 100644
--- a/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
@@ -85,7 +85,7 @@
                 PersonalIdentityContent = it.PersonalIdentity.Content,
                 EducationalBackgroundCode = it.EducationalBackgroundCode,
                 EducationalBackgroundContent = it.EducationalBackground.Content,
-                TaskCount = it.EnterpriseEmployees.Sum(ee => ee.TaskInfoUsers.Count(tu => tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass)),
+                TaskCount = it.User.EnterpriseEmployees.Where(ee => ee.HireStatus == EnumTaskUserHireStatus.Pass).Sum(ee => ee.TaskInfoUsers.Count()),
                 WorkSeniority = it.WorkSeniority,
                 WorkExperience = it.WorkExperience,
             });

--
Gitblit v1.9.1