124 lines
4.7 KiB
C#
124 lines
4.7 KiB
C#
using IRaCIS.Application.Interfaces;
|
|
using IRaCIS.Core.Application.Helper;
|
|
using IRaCIS.Core.Infrastructure;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.Extensions.Hosting;
|
|
using System.Text;
|
|
|
|
namespace IRaCIS.Core.Application.Service
|
|
{
|
|
[ApiExplorerSettings(GroupName = "Common")]
|
|
public class FileService : BaseService
|
|
{
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// New 医生首页 多选 获取多个医生信息+文件路径列表 医生压缩包名称 doctorCode + "_" + doctorName _(时间戳或者随机的Guid)
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<IResponseOutput<List<DoctorDownloadInfo>>> GetOfficialResume(GetDoctorPathCommand command,
|
|
[FromServices] IRepository<Attachment> _attachmentrepository)
|
|
{
|
|
|
|
var list = await _attachmentrepository.Where(t => command.DoctorIdList.Contains(t.DoctorId) && command.Language == t.Language).GroupBy(t => new { Name = t.Doctor.FirstName + "_" + t.Doctor.LastName, ReviewerCode = t.Doctor.ReviewerCode, t.DoctorId })
|
|
.Select(g => new DoctorDownloadInfo()
|
|
{
|
|
Id = g.Key.DoctorId,
|
|
Name = g.Key.Name,
|
|
ReviewerCode = g.Key.ReviewerCode,
|
|
FileList = g.Select(t => new DownloadFileInfo() { FileName = t.FileName, Path = t.Path }).ToList()
|
|
}).ToListAsync();
|
|
|
|
return ResponseOutput.Ok(list);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// New 项目入组 勾选获取简历路径
|
|
/// </summary>
|
|
/// <param name="command"></param>
|
|
/// <param name="_doctorService"></param>
|
|
/// <param name="_attachmentrepository"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<IResponseOutput<List<DoctorDownloadInfo>>> GetTrialDoctorOfficialResume(GetDoctorPathCommand command,
|
|
[FromServices] IDoctorService _doctorService,
|
|
[FromServices] IRepository<Attachment> _attachmentrepository)
|
|
{
|
|
|
|
var list = await _attachmentrepository.Where(t => command.DoctorIdList.Contains(t.DoctorId) && command.Language == t.Language && t.IsOfficial && t.Type.Equals("Resume")).GroupBy(t => new { Name = t.Doctor.FirstName + "_" + t.Doctor.LastName, ReviewerCode = t.Doctor.ReviewerCode, t.DoctorId })
|
|
.Select(g => new DoctorDownloadInfo()
|
|
{
|
|
Id = g.Key.DoctorId,
|
|
Name = g.Key.Name,
|
|
ReviewerCode = g.Key.ReviewerCode,
|
|
FileList = g.Select(t => new DownloadFileInfo() { FileName = t.FileName, Path = t.Path }).ToList()
|
|
}).ToListAsync();
|
|
|
|
return ResponseOutput.Ok(list);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// new 医生详情 勾选或者下载文件路径
|
|
/// </summary>
|
|
/// <param name="command"></param>
|
|
/// <param name="_doctorService"></param>
|
|
/// <param name="_attachmentrepository"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<IResponseOutput<DoctorDownloadInfo>> GetDoctorAttachment(GetDoctoreAttachPathCommand command,
|
|
[FromServices] IDoctorService _doctorService,
|
|
[FromServices] IRepository<Attachment> _attachmentrepository)
|
|
{
|
|
|
|
var find = await _attachmentrepository.Where(t => command.DoctorId == t.DoctorId && command.AttachmentIdList.Contains(t.Id)).GroupBy(t => new { Name = t.Doctor.FirstName + "_" + t.Doctor.LastName, ReviewerCode = t.Doctor.ReviewerCode, t.DoctorId })
|
|
.Select(g => new DoctorDownloadInfo()
|
|
{
|
|
Id = g.Key.DoctorId,
|
|
Name = g.Key.Name,
|
|
ReviewerCode = g.Key.ReviewerCode,
|
|
FileList = g.Select(t => new DownloadFileInfo() { FileName = t.FileName, Path = t.Path }).ToList()
|
|
}).FirstOrDefaultAsync();
|
|
|
|
return ResponseOutput.Ok(find);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#region DTO
|
|
public class DoctorDownloadInfo
|
|
{
|
|
public Guid? Id { get; set; }
|
|
public string Name { get; set; }
|
|
public string ReviewerCode { get; set; }
|
|
|
|
public List<DownloadFileInfo> FileList { get; set; }
|
|
}
|
|
public class DownloadFileInfo
|
|
{
|
|
public string FileName { get; set; }
|
|
|
|
public string Path { get; set; }
|
|
}
|
|
|
|
public class GetDoctorPathCommand
|
|
{
|
|
public int Language { get; set; }
|
|
|
|
public List<Guid?> DoctorIdList { get; set; }
|
|
}
|
|
|
|
public class GetDoctoreAttachPathCommand
|
|
{
|
|
public Guid DoctorId { get; set; }
|
|
public List<Guid> AttachmentIdList { get; set; }
|
|
}
|
|
#endregion
|
|
}
|