From 8922cdf2bf292958f839c8bcbfdc7131af1b8deb Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 05 九月 2025 14:51:40 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs |   52 +++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 37 insertions(+), 15 deletions(-)

diff --git a/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs
index e051adb..b3edb1c 100644
--- a/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs
@@ -11,6 +11,7 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using TaskInfo = FlexJobApi.Core.TaskInfo;
 
 namespace FlexJobApi.FlexJobServer.Application
 {
@@ -18,13 +19,16 @@
     /// 浠诲姟浜哄憳鏌ヨ澶勭悊鍣�
     /// </summary>
     public class TaskUserQueryHandler(
-        IRepository<TaskInfoUser> rep) :
+            IRepository<TaskInfoUser> rep,
+            IRepository<TaskInfo> repTaskInfo
+        ) :
         IRequestHandler<GetTaskUsersQuery, GetTaskUsersQueryResult>,
         IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult>,
         IRequestHandler<GetTaskUserHireStatusQuery, GetTaskUserHireStatusQueryResult>,
         IRequestHandler<GetSettlementTaskUsersQuery, GetSettlementTaskUsersQueryResult>
     {
         private readonly IRepository<TaskInfoUser> rep = rep;
+        private readonly IRepository<TaskInfo> repTaskInfo = repTaskInfo;
 
         /// <summary>
         /// B绔煡璇㈠簲鑱樻姤鍚嶅垎椤靛垪琛ㄤ俊鎭�
@@ -168,9 +172,10 @@
         public async Task<GetSettlementTaskUsersQueryResult> Handle(GetSettlementTaskUsersQuery request, CancellationToken cancellationToken)
         {
             var logier = JwtUtils.GetCurrentLogier();
+            var list = new GetSettlementTaskUsersQueryResult();
             var q = rep.AsQueryable().AsNoTracking()
                 .Where(it => it.TaskInfoId == request.TaskInfoId);
-            var s = q
+            list.Data = q
                 .Select(it => new GetSettlementTaskUsersQueryResultItem
                 {
                     Id = it.Id,
@@ -183,9 +188,10 @@
                     ReceiveAccount = it.ReceiveAccount,
                     SettlementAmount = it.SettlementAmount,
                     ActualSettlementAmount = it.ActualSettlementAmount,
-                    SettlementTime = it.SettlementTime
-                });
-            var list = await request.PageModel.GetPagedListAsync<GetSettlementTaskUsersQueryResult, GetSettlementTaskUsersQueryResultItem>(s, cancellationToken);
+                    SettlementTime = it.SettlementTime,
+                    SettlementStatus = it.SettlementStatus,
+                })
+                .ToList();
 
             var successList = new List<GetSettlementTaskUsersQueryResultExcelRow>();
             if (request.SettlementOrderUrl.IsNotNull())
@@ -234,7 +240,7 @@
                     {
                         errors.Add("瀹炲彂閲戦涓嶅彲涓鸿礋鏁�");
                     }
-                    else if (model.ActualSettlementAmount > 0 && model.ActualSettlementAmount < 1)
+                    else if (model.ActualSettlementAmount > 0 && model.ActualSettlementAmount < (decimal)0.3)
                     {
                         errors.Add("瀹炲彂閲戦涓嶅彲灏忎簬1鍏�");
                     }
@@ -247,6 +253,10 @@
                     else if (item.CheckReceiveStatus != EnumTaskCheckReceiveStatus.Completed)
                     {
                         errors.Add("鏈畬鎴愰獙鏀�");
+                    }
+                    else if (item.Name != model.Name)
+                    {
+                        errors.Add("鐏靛伐濮撳悕涓庡疄鍚嶄俊鎭笉涓�鑷�");
                     }
                     else
                     {
@@ -268,16 +278,28 @@
                         successList.Add(model);
                     }
                 }
-            }
 
-            var pagedList = await list.Data
-                .Where(it => successList.Any(s => s.Identity == it.Identity))
-                .AsQueryable()
-                .ToPagedListAsync(request.PageModel.Page, request.PageModel.Rows, cancellationToken);
-            list.PageModel = request.PageModel.Adapt<PagedListQueryResultPageModel>();
-            list.PageModel.TotalCount = pagedList.TotalCount;
-            list.PageModel.TotalPage = pagedList.TotalPages;
-            list.Data = pagedList.Items.ToList();
+                if (list.Errors.IsNotNull())
+                {
+                    list.Data = new List<GetSettlementTaskUsersQueryResultItem>();
+                }
+                else
+                {
+                    list.Data = list.Data
+                        .Where(it => successList.Any(s => s.Identity == it.Identity))
+                        .ToList();
+                }
+            }
+            else
+            {
+                var task = await repTaskInfo.AsQueryable().AsNoTracking()
+                    .Where(it => it.Id == request.TaskInfoId)
+                    .FirstOrDefaultAsync();
+                if (task == null) throw Oops.Oh(EnumErrorCodeType.s404, "浠诲姟");
+                list.Data = list.Data
+                    .Where(it => it.SettlementStatus == task.SettlementStatus)
+                    .ToList();
+            }
 
             return list;
         }

--
Gitblit v1.9.1