From 7620ece055c34a13c868d846f4f34cd0a0fb3c4d Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 07 八月 2025 18:26:28 +0800 Subject: [PATCH] feat:任务开发 --- FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs | 57 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 49 insertions(+), 8 deletions(-) diff --git a/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs b/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs index a71b3b1..63e63bf 100644 --- a/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs +++ b/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs @@ -17,8 +17,10 @@ /// </summary> public class TaskInfoCommandHandler( IRepository<TaskInfo> rep - ) - : IRequestHandler<SaveTaskInfoCommand, Guid> + ) : + IRequestHandler<SaveTaskInfoCommand, Guid>, + IRequestHandler<SetTaskInfoReleaseStatusCommand, int>, + IRequestHandler<SetTaskInfoRecommendStatusCommand, int> { private readonly IRepository<TaskInfo> rep = rep; @@ -34,12 +36,13 @@ { var logier = JwtUtils.GetCurrentLogier(); return await request.SaveData<TaskInfo, SaveTaskInfoCommand>( - q => TaskInfoRepository.GetQueryable( - rep, - q => q - .Include(it => it.Benefits) - .Include(it => it.CredentialLimits), - logier), + q => + { + q = TaskInfoRepository.GetQueryable(rep) + .Include(it => it.Benefits) + .Include(it => it.CredentialLimits); + return q; + }, null, (entity) => { @@ -65,6 +68,44 @@ cancellationToken); } + /// <summary> + /// 璁剧疆浠诲姟鍙戝竷鐘舵�� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<int> Handle(SetTaskInfoReleaseStatusCommand request, CancellationToken cancellationToken) + { + var entities = await TaskInfoRepository.GetQueryable(rep) + .Where(it => request.Ids.Contains(it.Id)) + .ToListAsync(); + foreach (var entity in entities) + { + entity.ReleaseStatus = request.ReleaseStatus; + } + await rep.UpdateAsync(entities); + return entities.Count; + } + + /// <summary> + /// 璁剧疆浠诲姟鏄惁鎺ㄨ崘 + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<int> Handle(SetTaskInfoRecommendStatusCommand request, CancellationToken cancellationToken) + { + var entities = await TaskInfoRepository.GetQueryable(rep) + .Where(it => request.Ids.Contains(it.Id)) + .ToListAsync(); + foreach (var entity in entities) + { + entity.RecommendStatus = request.RecommendStatus; + } + await rep.UpdateAsync(entities); + return entities.Count; + } + private async Task BuildCode(TaskInfo entity) { entity.Code = $"{DateTime.Now:yyyyMMddHHmm}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}"; -- Gitblit v1.9.1