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
 | 
						|
}
 |