using FlexJobApi.Core; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.UserServer.Application { /// /// 用户简历命令处理器 /// public class UserResumeCommandHandler( IRepository rep ) : IRequestHandler, IRequestHandler, IRequestHandler, IRequestHandler, IRequestHandler, IRequestHandler { private readonly IRepository rep = rep; /// /// 保存用户简历-个人信息 /// /// /// /// public Task Handle(SaveUserResumePersonalCommand request, CancellationToken cancellationToken) { return rep.GetPersonalQueryable(false) .UpdateData(request, cancellationToken: cancellationToken); } /// /// 保存用户简历-求职意向 /// /// /// /// public Task Handle(SaveUserResumeJobSeekingCommand request, CancellationToken cancellationToken) { return rep.GetPersonalQueryable(false) .Include(it => it.UserExpectJobs) .UpdateData( request, null, cancellationToken: cancellationToken); } /// /// 保存用户简历-资格证书 /// /// /// /// public Task Handle(SaveUserResumeCredentialCommand request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); return request.SaveData( q => rep.GetPersonalQueryable(false).SelectMany(it => it.UserCredentials), update: (entity) => { request.Adapt(entity); if (request.Id == null) { entity.UserId = logier.Id; } }, cancellationToken: cancellationToken); } /// /// 删除用户简历-资格证书 /// /// /// /// public Task Handle(DeleteUserResumeCredentialCommand request, CancellationToken cancellationToken) { return request.DeleteData( q => rep.GetPersonalQueryable(false).SelectMany(it => it.UserCredentials), cancellationToken); } /// /// 保存用户简历-工作经验 /// /// /// /// public Task Handle(SaveUserResumeWorkExperienceCommand request, CancellationToken cancellationToken) { return rep.GetPersonalQueryable(false) .UpdateData(request, cancellationToken: cancellationToken); } /// /// 保存用户简历-详细信息 /// /// /// /// public Task Handle(SaveUserResumeDetailCommand request, CancellationToken cancellationToken) { return rep.GetPersonalQueryable(false) .Include(it => it.Photos) .UpdateData(request, cancellationToken: cancellationToken); } } }