From 1482f950f2b30835a268ae9e6c6bd817ba47a684 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期四, 11 九月 2025 11:13:02 +0800
Subject: [PATCH] feat:开发
---
FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 48 insertions(+), 6 deletions(-)
diff --git a/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs
index e9e64e6..2cdd47e 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绔煡璇㈠簲鑱樻姤鍚嶅垎椤靛垪琛ㄤ俊鎭�
@@ -169,6 +173,11 @@
{
var logier = JwtUtils.GetCurrentLogier();
var list = new GetSettlementTaskUsersQueryResult();
+
+ list.Detail = await TaskInfoRepository.GetQueryable(repTaskInfo, true, logier)
+ .Where(it => it.Id == request.TaskInfoId)
+ .GetDetail<TaskInfo, GetSettlementTaskQueryResult>();
+
var q = rep.AsQueryable().AsNoTracking()
.Where(it => it.TaskInfoId == request.TaskInfoId);
list.Data = q
@@ -184,7 +193,8 @@
ReceiveAccount = it.ReceiveAccount,
SettlementAmount = it.SettlementAmount,
ActualSettlementAmount = it.ActualSettlementAmount,
- SettlementTime = it.SettlementTime
+ SettlementTime = it.SettlementTime,
+ SettlementStatus = it.SettlementStatus,
})
.ToList();
@@ -249,6 +259,10 @@
{
errors.Add("鏈畬鎴愰獙鏀�");
}
+ else if (item.Name != model.Name)
+ {
+ errors.Add("鐏靛伐濮撳悕涓庡疄鍚嶄俊鎭笉涓�鑷�");
+ }
else
{
item.SettlementAmount = model.SettlementAmount;
@@ -256,6 +270,10 @@
item.ReceiveAccount = model.ReceiveAccount;
item.Bank = model.Bank;
item.BankBranch = model.BankBranch;
+ }
+ if (model.TaskName != list.Detail.Name)
+ {
+ errors.Add("浠诲姟鍚嶇О涓嶄竴鑷�");
}
if (errors.IsNotNull())
@@ -269,11 +287,35 @@
successList.Add(model);
}
}
- }
- list.Data = list.Data
- .Where(it => successList.Any(s => s.Identity == it.Identity))
- .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();
+ }
+
+ list.Detail.SettlementOrderStatus = EnumTaskSettlementOrderStatus.Wait;
+ list.Detail.SettlementOrderName = request.SettlementOrderUrl.Substring(request.SettlementOrderUrl.LastIndexOf("/") + 1);
+ list.Detail.SettlementOrderTime = DateTime.Now;
+ list.Detail.SettlementStatus = EnumTaskSettlementStatus.Wait;
+ list.Detail.SettlementAmount = list.Data.Sum(it => it.SettlementAmount ?? 0);
+ list.Detail.ActualSettlementAmount = list.Data.Sum(it => it.ActualSettlementAmount ?? 0);
+ }
+ 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