Merge pull request #99 from Kitzanos/feature/GEPAFINBE-101
GEPAFINBE-101 (Issue With Application Deleted Documents)
This commit is contained in:
@@ -412,7 +412,7 @@ public class ApplicationDao {
|
||||
|
||||
ApplicationFormFieldEntity applicationFormFieldEntity=null;
|
||||
|
||||
validateFileUploadDocuments(applicationFormFieldRequestBean, formEntity);
|
||||
List<Long> newDocumentIds =validateFileUploadDocuments(applicationFormFieldRequestBean, formEntity);
|
||||
|
||||
if(applicationFormFieldEntities==null || applicationFormFieldEntities.isEmpty()){
|
||||
applicationFormFieldEntity = new ApplicationFormFieldEntity();
|
||||
@@ -434,13 +434,79 @@ public class ApplicationDao {
|
||||
Utils.setIfUpdated(applicationFormFieldEntity::getFieldId, applicationFormFieldEntity::setFieldId, applicationFormFieldRequestBean.getFieldId());
|
||||
|
||||
if(applicationFormFieldRequestBean.getFieldValue() !=null ) {
|
||||
applicationFormFieldEntity.setFieldValue(Utils.convertObjectToJsonString(applicationFormFieldRequestBean.getFieldValue()));
|
||||
}
|
||||
updateDocumentDeletionStatus(applicationFormFieldEntity, applicationFormFieldRequestBean,formEntity,newDocumentIds,null,false);
|
||||
applicationFormFieldEntity.setFieldValue(Utils.convertObjectToJsonString(applicationFormFieldRequestBean.getFieldValue()));
|
||||
}
|
||||
if(applicationFormFieldRequestBean.getFieldValue() ==null ) {
|
||||
updateDocumentDeletionStatus(applicationFormFieldEntity, applicationFormFieldRequestBean,formEntity,newDocumentIds,null,false);
|
||||
applicationFormFieldEntity.setFieldValue(null);
|
||||
}
|
||||
return applicationFormFieldRepository.save(applicationFormFieldEntity);
|
||||
}
|
||||
void updateDocumentDeletionStatus(ApplicationFormFieldEntity applicationFormFieldEntity, ApplicationFormFieldRequestBean applicationFormFieldRequestBean, FormEntity formEntity, List<Long> newDocumentIds,
|
||||
List<String> preInstructorDocumentId,boolean isPreInstructor) {
|
||||
if (newDocumentIds == null) {
|
||||
newDocumentIds = Collections.emptyList();
|
||||
}
|
||||
if (preInstructorDocumentId == null) {
|
||||
preInstructorDocumentId = Collections.emptyList();
|
||||
}
|
||||
|
||||
List<ContentResponseBean> contentResponseBeans = formDao.convertFormEntityToFormResponseBean(formEntity).getContent();
|
||||
for (ContentResponseBean contentResponseBean : contentResponseBeans) {
|
||||
if (Boolean.FALSE.equals(contentResponseBean.getName().equals("fileupload"))) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(!isPreInstructor){
|
||||
List<Long> currentDocumentIds = parseDocumentIds(applicationFormFieldEntity.getFieldValue());
|
||||
if (Boolean.TRUE.equals(newDocumentIds.isEmpty())) {
|
||||
currentDocumentIds.forEach(docId -> documentService.deleteFile(docId));
|
||||
} else {
|
||||
List<Long> finalNewDocumentIds = newDocumentIds;
|
||||
List<Long> documentsToDelete = currentDocumentIds.stream()
|
||||
.filter(docId -> !finalNewDocumentIds.contains(docId))
|
||||
.toList();
|
||||
documentsToDelete.forEach(docId -> documentService.deleteFile(docId));
|
||||
}}
|
||||
else{
|
||||
List<Long> currentDocumentIds = parseDocumentIds(applicationFormFieldEntity.getFieldValue());
|
||||
if (Boolean.TRUE.equals(preInstructorDocumentId.isEmpty())) {
|
||||
currentDocumentIds.forEach(docId -> documentService.deleteFile(docId));
|
||||
} else {
|
||||
List<Long> preInstructorDocIds = preInstructorDocumentId.stream()
|
||||
.map(Long::valueOf)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<Long> documentsToDelete = currentDocumentIds.stream()
|
||||
.filter(docId -> !preInstructorDocIds.contains(docId))
|
||||
.toList();
|
||||
documentsToDelete.forEach(docId -> documentService.deleteFile(docId));
|
||||
}}
|
||||
}
|
||||
|
||||
|
||||
private List<Long> parseDocumentIds(String fieldValue) {
|
||||
if (fieldValue == null || fieldValue.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
if (fieldValue.contains(",")) {
|
||||
return Arrays.stream(fieldValue.split(","))
|
||||
.map(String::trim)
|
||||
.map(Long::parseLong)
|
||||
.collect(Collectors.toList());
|
||||
} else {
|
||||
try {
|
||||
return Collections.singletonList(Long.parseLong(fieldValue.trim()));
|
||||
} catch (NumberFormatException e) {
|
||||
e.printStackTrace();
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private List<Long> validateFileUploadDocuments(ApplicationFormFieldRequestBean applicationFormFieldRequestBean, FormEntity formEntity) {
|
||||
List<Long> documentIds=null;
|
||||
|
||||
Reference in New Issue
Block a user