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

---
 FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs
index 8bb400a..9e3e283 100644
--- a/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs
@@ -49,6 +49,14 @@
             {
                 q = q.Where(it => it.EnterpriseId == logier.EnterpriseId);
             }
+            if (request.Keywords.IsNotNull())
+            {
+                q = q.Where(it =>
+                    it.TaskInfoUsers.Any(tu =>
+                        tu.EnterpriseEmployee.User.Name.Contains(request.Keywords)
+                        || tu.EnterpriseEmployee.User.PhoneNumber.Contains(request.Keywords)
+                        || tu.EnterpriseEmployee.User.Identity.Contains(request.Keywords)));
+            }
             if (logier.ClientType == EnumClientType.Wxmp)
             {
                 if (request.CheckReceiveStatus == null)
@@ -60,8 +68,9 @@
                     throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨鏃ユ湡");
                 }
                 q = q.Where(it =>
-                    it.TaskInfoUsers.Any(tu =>
-                        tu.EnterpriseEmployee.UserId == logier.Id
+                    (logier.Type == EnumUserType.Enterprise ? it.EnterpriseId == logier.EnterpriseId : true)
+                    && it.TaskInfoUsers.Any(tu =>
+                        (logier.Type == EnumUserType.Personal ? tu.EnterpriseEmployee.UserId == logier.Id : true)
                         && (request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitSubmit
                         ? !tu.Submits.Any(s => s.Date.Date == request.Date.Value.Date)
                         : tu.Submits.Any(s =>
@@ -108,6 +117,29 @@
             else if (logier.Type == EnumUserType.Enterprise)
             {
                 q = q.Where(it => it.TaskInfo.EnterpriseId == logier.EnterpriseId);
+            }
+            if (logier.Type == EnumUserType.Enterprise && logier.ClientType == EnumClientType.Wxmp)
+            {
+                if (request.CheckReceiveStatus == null)
+                {
+                    throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨楠屾敹鐘舵��");
+                }
+                if (request.Date == null)
+                {
+                    throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨鏃ユ湡");
+                }
+                q = q.Where(it =>
+                    it.TaskInfo.EnterpriseId == logier.EnterpriseId
+                    && (request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitSubmit
+                        ? !it.Submits.Any(s => s.Date.Date == request.Date.Value.Date)
+                        : it.Submits.Any(s =>
+                            s.Date.Date == request.Date.Value.Date
+                            && (request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitSubmit
+                            ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit
+                            : (request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitCheckReceive
+                            ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive
+                            : (s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Success
+                            || s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Fail))))));
             }
             var s = q.Select(it => new GetCheckReceiveTaskQueryResultItem
             {
@@ -156,6 +188,8 @@
             result.ObjectData = await repTaskInfoUser.AsQueryable().AsNoTracking()
                 .Where(it => it.Id == request.Id)
                 .GetDetail<TaskInfoUser, GetCheckReceiveTaskUserSubmitsQueryResultObjectData>();
+            result.ObjectData.EnterpriseEmployeeUser.IsBindBankCard = await repTaskInfo.Change<UserBankCard>().AsQueryable().AsNoTracking()
+                .AnyAsync(it => it.UserId == result.ObjectData.EnterpriseEmployeeUser.Id);
             return result;
         }
 
@@ -165,7 +199,7 @@
         /// <param name="request"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public Task<GetCheckReceiveTaskUserSubmitQueryResult> Handle(GetCheckReceiveTaskUserSubmitQuery request, CancellationToken cancellationToken)
+        public async Task<GetCheckReceiveTaskUserSubmitQueryResult> Handle(GetCheckReceiveTaskUserSubmitQuery request, CancellationToken cancellationToken)
         {
             var q = repTaskInfoUserSubmit.AsQueryable().AsNoTracking();
             if (request.SubmitId.HasValue)
@@ -180,7 +214,12 @@
             {
                 q = q.Where(it => it.Date.Date == request.Date.Value.Date && it.TaskInfoUserId == request.TaskInfoUserId.Value);
             }
-            return q.GetDetail<TaskInfoUserSubmit, GetCheckReceiveTaskUserSubmitQueryResult>();
+            var model = await q.GetDetail<TaskInfoUserSubmit, GetCheckReceiveTaskUserSubmitQueryResult>();
+            model.Files = await repTaskInfoUserSubmit.Change<TaskInfoUserSubmitFile>().AsQueryable().AsNoTracking()
+                .Where(it => it.SubmitId == model.Id)
+                .Select(it => it.File)
+                .ToListAsync();
+            return model;
         }
     }
 }

--
Gitblit v1.9.1