From eb358f8a46f4264a7ba88a5624edf3ae5b4ad983 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 05 九月 2025 11:09:27 +0800
Subject: [PATCH] feat:开发
---
FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs | 48 +++++++++++++++++++++++++++++++++++++++---------
1 files changed, 39 insertions(+), 9 deletions(-)
diff --git a/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs
index eafd2a4..32fea4c 100644
--- a/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskCheckReceiveQueryHandler.cs
@@ -36,18 +36,23 @@
/// <returns></returns>
public async Task<GetCheckReceiveTasksQueryResult> Handle(GetCheckReceiveTasksQuery request, CancellationToken cancellationToken)
{
+ var now = DateTime.Now;
var logier = JwtUtils.GetCurrentLogier();
var q = repTaskInfo.AsQueryable().AsNoTracking()
.OrderBy(it => it.CreatedTime)
- .AsQueryable();
+ .Where(it => it.BeginTime <= now.Date && now.Date <= it.EndTime);
if (logier.Type == EnumUserType.Personal)
{
- q = q.Where(it => it.TaskInfoUsers.Any(tu => tu.EnterpriseEmployee.UserId == logier.Id));
+ q = q.Where(it => it.TaskInfoUsers.Any(tu =>
+ tu.EnterpriseEmployee.UserId == logier.Id
+ && tu.ArrangeStatus == EnumTaskUserArrangeStatus.Complete));
}
else if (logier.Type == EnumUserType.Enterprise)
{
- q = q.Where(it => it.EnterpriseId == logier.EnterpriseId);
+ q = q.Where(it =>
+ it.EnterpriseId == logier.EnterpriseId
+ && it.Status == EnumTaskStatus.Complete);
}
if (request.Keywords.IsNotNull())
{
@@ -69,6 +74,7 @@
}
q = q.Where(it =>
(logier.Type == EnumUserType.Enterprise ? it.EnterpriseId == logier.EnterpriseId : true)
+ && it.BeginTime.Date <= request.Date.Value && request.Date.Value <= it.EndTime.Date
&& it.TaskInfoUsers.Any(tu =>
(logier.Type == EnumUserType.Personal ? tu.EnterpriseEmployee.UserId == logier.Id : true)
&& (request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitSubmit
@@ -200,21 +206,45 @@
var logier = JwtUtils.GetCurrentLogier();
var q = repTaskInfoUserSubmit.AsQueryable().AsNoTracking()
.OrderByDescending(it => it.CreatedTime)
- .Where(it => it.TaskInfoUserId == request.Id);
+ .AsQueryable();
+ if (logier.Type == EnumUserType.Personal)
+ {
+ if (request.TaskInfoId == null) throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨浠诲姟");
+ q = q.Where(it => it.TaskInfoUser.TaskInfoId == request.TaskInfoId && it.TaskInfoUser.EnterpriseEmployee.UserId == logier.Id);
+ }
+ else
+ {
+ if (request.Id == null) throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨鐏靛伐");
+ q = q.Where(it => it.TaskInfoUserId == request.Id);
+ }
var s = q.Select(it => new GetCheckReceiveTaskUserSubmitsQueryResultItem
{
Id = it.Id,
+ Date = it.Date,
CreatedTime = it.CreatedTime,
Files = it.Files.Select(f => f.File).ToList(),
CheckReceiveStatus = it.CheckReceiveStatus,
CheckReceiveTime = it.CheckReceiveTime,
});
var result = await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskUserSubmitsQueryResult, GetCheckReceiveTaskUserSubmitsQueryResultItem>(s, cancellationToken);
- 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);
+ if (request.Id.HasValue)
+ {
+ result.ObjectData = await repTaskInfoUser.AsQueryable().AsNoTracking()
+ .Where(it => it.Id == request.Id)
+ .GetDetail<TaskInfoUser, GetCheckReceiveTaskUserSubmitsQueryResultObjectData>();
+ }
+ else if (request.TaskInfoId.HasValue)
+ {
+ result.ObjectData = await repTaskInfoUser.AsQueryable().AsNoTracking()
+ .Where(it => it.TaskInfoId == request.TaskInfoId)
+ .GetDetail<TaskInfoUser, GetCheckReceiveTaskUserSubmitsQueryResultObjectData>();
+ }
+ if (result.ObjectData != null)
+ {
+ result.ObjectData.EnterpriseEmployeeUser.IsBindBankCard = await repTaskInfo.Change<UserBankCard>()
+ .AsQueryable().AsNoTracking()
+ .AnyAsync(it => it.UserId == result.ObjectData.EnterpriseEmployeeUser.Id);
+ }
return result;
}
--
Gitblit v1.9.1