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 | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 44 insertions(+), 3 deletions(-) diff --git a/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs b/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs index b55ad0e..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,7 +36,8 @@ { var logier = JwtUtils.GetCurrentLogier(); return await request.SaveData<TaskInfo, SaveTaskInfoCommand>( - q => { + q => + { q = TaskInfoRepository.GetQueryable(rep) .Include(it => it.Benefits) .Include(it => it.CredentialLimits); @@ -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