//-------------------------------------------------------------------- // 此代码由liquid模板自动生成 byzhouhang 20240909 // 生成时间 2025-02-21 07:47:30Z // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 //-------------------------------------------------------------------- using IRaCIS.Core.Domain.Models; using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Infrastructure.Extention; using System.Threading.Tasks; using IRaCIS.Core.Infra.EFCore; namespace IRaCIS.Core.Application.Service; /// /// 项目-培训记录 /// /// /// /// /// [ApiExplorerSettings(GroupName = "FileRecord")] public class TrialTrianingRecordService(IRepository< TrialTrianingRecord> _trialTrianingRecordRepository, IRepository _trialFileRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ITrialTrianingRecordService { /// /// 获取培训记录列表 /// /// /// [HttpPost] public async Task> GetTrialTrianingRecordList(TrialTrianingRecordQuery inDto) { var trialTrianingRecordQueryable = _trialTrianingRecordRepository .Where(x => x.TrialFileTypeId == inDto.TrialFileTypeId) .WhereIf(inDto.FileName.IsNotNullOrEmpty(), x => x.TrialFileRecord.FileName.Contains(inDto.FileName)) .WhereIf(inDto.TrianingDate!=null, x => x.TrianingDate==inDto.TrianingDate) .ProjectTo(_mapper.ConfigurationProvider); var pageList = await trialTrianingRecordQueryable.ToPagedListAsync(inDto); return pageList; } public async Task AddOrUpdateTrialTrianingRecord(TrialTrianingRecordAddOrEdit inDto) { // 在此处拷贝automapper 映射 if (inDto.TrialFileRecord != null) inDto.TrialFileRecord.TrialFileTypeId = inDto.TrialFileTypeId; if (inDto.HistoryFileRecord != null) inDto.HistoryFileRecord.TrialFileTypeId = inDto.TrialFileTypeId; if (inDto.Id != null) { var trialFinalRecord = await _trialTrianingRecordRepository.Where(x => x.Id == inDto.Id.Value).FirstNotNullAsync(); List ids = new List() { trialFinalRecord.TrialFileRecordId, trialFinalRecord.HistoryFileRecordId, }; var fileIds = ids.Where(x => x != null).Select(x => (Guid)x).ToList(); await _trialFileRepository.BatchDeleteNoTrackingAsync(x => fileIds.Contains(x.Id)); } var entity = await _trialTrianingRecordRepository.InsertOrUpdateAsync(inDto, true); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 批量新增培训记录 /// /// /// [HttpPost] public async Task BatchAddTrialTrianingRecord(BatchAddTTrianingRecordInDto inDto) { foreach (var item in inDto.TrianingRecordList) { if (item.TrialFileRecord != null) item.TrialFileRecord.TrialFileTypeId = item.TrialFileTypeId; if (item.HistoryFileRecord != null) item.HistoryFileRecord.TrialFileTypeId = item.TrialFileTypeId; var entity = await _trialTrianingRecordRepository.InsertFromDTOAsync(item); } var result = await _trialTrianingRecordRepository.SaveChangesAsync(); return ResponseOutput.Ok(result); } /// /// 授权文档 /// /// /// [HttpPost] public async Task AuthorizedTrialTrianingRecord(AuthorizedTrialFinalRecordInDto inDto) { await _trialTrianingRecordRepository.UpdatePartialFromQueryAsync(t => inDto.Ids.Contains(t.Id), t => new TrialTrianingRecord() { IsAuthorizedView = inDto.IsAuthorizedView }); await _trialTrianingRecordRepository.SaveChangesAsync(); return ResponseOutput.Ok(); } [HttpDelete("{trialTrianingRecordId:guid}")] public async Task DeleteTrialTrianingRecord(Guid trialTrianingRecordId) { var success = await _trialTrianingRecordRepository.DeleteFromQueryAsync(t => t.Id == trialTrianingRecordId, true); return ResponseOutput.Ok(); } /// /// 批量删除培训记录 /// /// /// [HttpPost] public async Task DeleteTrialTrianingRecordList(DeleteTrialNormalRecordListInDto inDto) { var success = await _trialTrianingRecordRepository.DeleteFromQueryAsync(t => inDto.Ids.Contains(t.Id), true); return ResponseOutput.Ok(); } }