修改仓储

This commit is contained in:
he
2022-04-01 16:48:35 +08:00
parent 31f90660d3
commit aa18ce52f2
17 changed files with 89 additions and 82 deletions
@@ -22,12 +22,15 @@ namespace IRaCIS.Core.Application.Services
private readonly IWebHostEnvironment _hostEnvironment;
private readonly IRepository<TrialDocument> trialDocumentRepository;
private readonly IRepository<TrialDocument> _trialDocumentRepository;
private readonly IRepository<SystemDocConfirmedUser> _systemDocConfirmedUserRepository;
public TrialDocumentService(IWebHostEnvironment hostEnvironment, IRepository<TrialDocument> trialDocumentRepository)
public TrialDocumentService(IWebHostEnvironment hostEnvironment, IRepository<TrialDocument> trialDocumentRepository
, IRepository<SystemDocConfirmedUser> systemDocConfirmedUserRepository)
{
_hostEnvironment = hostEnvironment;
this.trialDocumentRepository = trialDocumentRepository;
this._trialDocumentRepository = trialDocumentRepository;
this._systemDocConfirmedUserRepository = systemDocConfirmedUserRepository;
}
/// <summary>
@@ -39,7 +42,7 @@ namespace IRaCIS.Core.Application.Services
public async Task<PageOutput<TrialDocumentView>> GetTrialDocumentList(TrialDocumentQuery queryTrialDocument)
{
var trialDocumentQueryable = trialDocumentRepository.Where(t => t.TrialId == queryTrialDocument.TrialId)
var trialDocumentQueryable = _trialDocumentRepository.Where(t => t.TrialId == queryTrialDocument.TrialId)
.WhereIf(!string.IsNullOrEmpty(queryTrialDocument.Name), t => t.Name.Contains(queryTrialDocument.Name))
.WhereIf(!string.IsNullOrEmpty(queryTrialDocument.Type), t => t.Type.Contains(queryTrialDocument.Type))
.ProjectTo<TrialDocumentView>(_mapper.ConfigurationProvider, new { token = _userInfo.UserToken });
@@ -152,7 +155,7 @@ namespace IRaCIS.Core.Application.Services
};
//项目文档查询
var trialDocQueryable = from trialDoc in trialDocumentRepository.Where(t => t.TrialId == querySystemDocument.TrialId)
var trialDocQueryable = from trialDoc in _trialDocumentRepository.Where(t => t.TrialId == querySystemDocument.TrialId)
.WhereIf(!_userInfo.IsAdmin, t => t.NeedConfirmedUserTypeList.Any(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId))
.WhereIf(!_userInfo.IsAdmin, t => t.IsAbandon == false || (t.IsAbandon == true && t.TrialDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.Id)))
@@ -218,7 +221,7 @@ namespace IRaCIS.Core.Application.Services
};
//项目文档查询
var trialDocQueryable = from trialDoc in trialDocumentRepository.Where(t => t.TrialId == trialId)
var trialDocQueryable = from trialDoc in _trialDocumentRepository.Where(t => t.TrialId == trialId)
.WhereIf(!_userInfo.IsAdmin, t => t.NeedConfirmedUserTypeList.Any(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId))
.WhereIf(!_userInfo.IsAdmin, t => t.IsAbandon == false || (t.IsAbandon == true && t.TrialDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.Id)))
@@ -372,7 +375,7 @@ namespace IRaCIS.Core.Application.Services
[HttpGet("{trialId:guid}")]
public async Task<List<string>> GetTrialDocAndSystemDocType(Guid trialId)
{
return await trialDocumentRepository.Where(t => t.TrialId == trialId).Select(t => t.Type).Union(_repository.GetQueryable<SystemDocument>().Select(t => t.Type)).Distinct()
return await _trialDocumentRepository.Where(t => t.TrialId == trialId).Select(t => t.Type).Union(_repository.GetQueryable<SystemDocument>().Select(t => t.Type)).Distinct()
.ToListAsync();
}
@@ -384,7 +387,7 @@ namespace IRaCIS.Core.Application.Services
var entity = _mapper.Map<TrialDocument>(addOrEditTrialDocument);
if (await trialDocumentRepository.AnyAsync(t => t.Type == addOrEditTrialDocument.Type && t.Name == addOrEditTrialDocument.Name && t.TrialId == addOrEditTrialDocument.TrialId))
if (await _trialDocumentRepository.AnyAsync(t => t.Type == addOrEditTrialDocument.Type && t.Name == addOrEditTrialDocument.Name && t.TrialId == addOrEditTrialDocument.TrialId))
{
return ResponseOutput.NotOk("同类型已存在该文件名");
}
@@ -394,12 +397,12 @@ namespace IRaCIS.Core.Application.Services
}
else
{
if (await trialDocumentRepository.AnyAsync(t => t.Type == addOrEditTrialDocument.Type && t.Name == addOrEditTrialDocument.Name && t.Id != addOrEditTrialDocument.Id && t.TrialId == addOrEditTrialDocument.TrialId))
if (await _trialDocumentRepository.AnyAsync(t => t.Type == addOrEditTrialDocument.Type && t.Name == addOrEditTrialDocument.Name && t.Id != addOrEditTrialDocument.Id && t.TrialId == addOrEditTrialDocument.TrialId))
{
return ResponseOutput.NotOk("同类型已存在该文件名");
}
var document = trialDocumentRepository.Where(t => t.Id == addOrEditTrialDocument.Id, true).Include(t => t.NeedConfirmedUserTypeList).FirstOrDefault();
var document = _trialDocumentRepository.Where(t => t.Id == addOrEditTrialDocument.Id, true).Include(t => t.NeedConfirmedUserTypeList).FirstOrDefault();
if (document == null) return Null404NotFound(document);
@@ -442,12 +445,12 @@ namespace IRaCIS.Core.Application.Services
[HttpDelete("{trialId:guid}/{trialDocumentId:guid}")]
public async Task<IResponseOutput> DeleteTrialDocument(Guid trialDocumentId, Guid trialId)
{
if (await trialDocumentRepository.Where(t => t.Id == trialDocumentId).AnyAsync(t => t.TrialDocConfirmedUserList.Any()))
if (await _trialDocumentRepository.Where(t => t.Id == trialDocumentId).AnyAsync(t => t.TrialDocConfirmedUserList.Any()))
{
return ResponseOutput.NotOk("该文档,已有用户签名 不允许删除");
}
var success = await trialDocumentRepository.DeleteFromQueryAsync(t => t.Id == trialDocumentId);
var success = await _trialDocumentRepository.DeleteFromQueryAsync(t => t.Id == trialDocumentId);
return ResponseOutput.Result(success);
}
@@ -508,7 +511,7 @@ namespace IRaCIS.Core.Application.Services
{
return ResponseOutput.NotOk("该文档已经签名");
}
if (!await _repository.AnyAsync<SystemDocument>(t => t.Id == userConfirmCommand.DocumentId) || await trialDocumentRepository.AnyAsync(t => t.Id == userConfirmCommand.DocumentId && t.IsAbandon))
if (!await _repository.AnyAsync<SystemDocument>(t => t.Id == userConfirmCommand.DocumentId) || await _trialDocumentRepository.AnyAsync(t => t.Id == userConfirmCommand.DocumentId && t.IsAbandon))
{
return ResponseOutput.NotOk("文件已删除或者废除,签署失败!");
}
@@ -522,7 +525,7 @@ namespace IRaCIS.Core.Application.Services
return ResponseOutput.NotOk("该文档已经签名");
}
if (!await trialDocumentRepository.AnyAsync(t => t.Id == userConfirmCommand.DocumentId) || await _repository.AnyAsync<TrialDocument>(t => t.Id == userConfirmCommand.DocumentId && t.IsAbandon))
if (!await _trialDocumentRepository.AnyAsync(t => t.Id == userConfirmCommand.DocumentId) || await _repository.AnyAsync<TrialDocument>(t => t.Id == userConfirmCommand.DocumentId && t.IsAbandon))
{
return ResponseOutput.NotOk("文件已删除或者废除,签署失败!");
}
@@ -551,7 +554,7 @@ namespace IRaCIS.Core.Application.Services
}
else
{
await trialDocumentRepository.UpdateFromQueryAsync(t => t.Id == documentId, u => new TrialDocument() { IsAbandon = true });
await _trialDocumentRepository.UpdateFromQueryAsync(t => t.Id == documentId, u => new TrialDocument() { IsAbandon = true });
}
return ResponseOutput.Ok();
}
@@ -612,7 +615,7 @@ namespace IRaCIS.Core.Application.Services
DocumentUserCount = t.NeedConfirmedUserTypeList.SelectMany(u => u.UserTypeRole.UserList.SelectMany(b => b.UserTrials.Where(r => r.TrialId == querySystemDocument.TrialId))).Count()
});
var trialDocQueryable = trialDocumentRepository.Where(t => t.TrialId == querySystemDocument.TrialId).Select(t => new DocumentUnionWithUserStatView()
var trialDocQueryable = _trialDocumentRepository.Where(t => t.TrialId == querySystemDocument.TrialId).Select(t => new DocumentUnionWithUserStatView()
{
Id = t.Id,
IsSystemDoc = false,