public InsertDepartmentCollectInput GetDepartmentCollectDetail(GetDepartmentCollectDetailInput input) { var userClaim = _userService.UserClaim(); var output = new InsertDepartmentCollectInput(); var query = _collectDepartmentRepository.GetAll(); if (input.DepartmentCollectId.HasValue) { query = query.Where(t => t.Id == input.DepartmentCollectId && t.IsDeleted == false); } else { var userDepId = _userRepository.FirstOrDefault(t => t.Id == userClaim.UserId && t.IsDeleted == false)?.DepartmentId; query = query.Where(t => t.CollectionId == input.CollectId && t.IsDeleted == false && t.DepartmentId == userDepId); } var depCollect = query.FirstOrDefault(); if (depCollect != null) { output.Id = depCollect.Id; output.CollectionId = depCollect.CollectionId; output.Remark = depCollect.Remark; var collectBaseList = _collectDepartmentBaseRepository.GetAll().Where(t => t.CollectionDepartmentId == depCollect.Id && t.IsDeleted == false).ToList(); collectBaseList.ForEach(collectBase => { var targetBase = collectBase.MapTo <BaseInput>(); var baseFileList = _collectFileRepository.GetAll().Where(t => t.CollectionItemId == collectBase.Id && t.IsDeleted == false).ToList(); baseFileList.ForEach(t => { var file = _fileRepository.FirstOrDefault(f => f.Id == t.FileId && f.IsDeleted == false); targetBase.FileList.Add(new FileDto { CollectionItemId = t.CollectionItemId, FileId = t.FileId, Id = t.Id, Name = file?.FileName, Uid = t.FileId, Url = file?.FileUrl }); }); output.BaseList.Add(targetBase); }); var collectCooperation = _collectDepartmentCooperationRepository.FirstOrDefault(t => t.CollectionDepartmentId == depCollect.Id && t.IsDeleted == false); if (collectCooperation != null) { output.Cooperation = collectCooperation.MapTo <CooperationInput>(); var fileList = _collectFileRepository.GetAll().Where(t => t.CollectionItemId == collectCooperation.Id && t.IsDeleted == false).ToList(); fileList.ForEach(t => { var file = _fileRepository.FirstOrDefault(f => f.Id == t.FileId && f.IsDeleted == false); output.Cooperation.FileList.Add(new FileDto { CollectionItemId = t.CollectionItemId, FileId = t.FileId, Id = t.Id, Name = file?.FileName, Uid = t.FileId, Url = file?.FileUrl }); }); } } return(output); }
public void InsertDepartmentCollect(InsertDepartmentCollectInput input) { _userService.CheckUserPermissions(new List <Enum.RoleType> { Enum.RoleType.Department }); var userClaim = _userService.UserClaim(); var depId = _userRepository.FirstOrDefault(t => t.Id == userClaim.UserId)?.DepartmentId; if (!depId.HasValue) { throw new UserFriendlyException("非系部用户"); } var depCollect = new CollectDepartmentEntity { CollectionId = (Guid)input.CollectionId, Id = Guid.NewGuid(), Remark = input.Remark, CreateUserId = userClaim.UserId, DepartmentId = (Guid)depId }; _collectDepartmentRepository.InsertAsync(depCollect); input.BaseList.ForEach(b => { var depCollectBase = b.MapTo <CollectDepartmentBaseEntity>(); depCollectBase.Id = Guid.NewGuid(); depCollectBase.CollectionDepartmentId = depCollect.Id; depCollectBase.CreateUserId = userClaim.UserId; _collectDepartmentBaseRepository.InsertAsync(depCollectBase); b.FileList.ForEach(t => { if (t.FileId.HasValue) { _collectFileRepository.InsertAsync(new CollectFileEntity { CollectionItemId = depCollectBase.Id, CreateUserId = userClaim.UserId, FileId = (Guid)t.FileId, Id = Guid.NewGuid() }); } }); }); var depCollectCooperation = input.Cooperation.MapTo <CollectDepartmentCooperationEntity>(); depCollectCooperation.Id = Guid.NewGuid(); depCollectCooperation.CollectionDepartmentId = depCollect.Id; depCollectCooperation.CreateUserId = userClaim.UserId; depCollectCooperation.CooperationAgencyTotal = depCollectCooperation.AcademicAgencyCount + depCollectCooperation.EnterpriseCount + depCollectCooperation.LocalGovernmentCount; _collectDepartmentCooperationRepository.InsertAsync(depCollectCooperation); input.Cooperation.FileList.ForEach(t => { if (t.FileId.HasValue) { _collectFileRepository.InsertAsync(new CollectFileEntity { CollectionItemId = depCollectCooperation.Id, CreateUserId = userClaim.UserId, FileId = (Guid)t.FileId, Id = Guid.NewGuid() }); } }); }