created call api in 2 steps
This commit is contained in:
@@ -1,28 +1,52 @@
|
||||
package net.gepafin.tendermanagement.dao;
|
||||
|
||||
import net.gepafin.tendermanagement.config.Translator;
|
||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||
import net.gepafin.tendermanagement.entities.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import net.gepafin.tendermanagement.config.Translator;
|
||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||
import net.gepafin.tendermanagement.entities.CallEntity;
|
||||
import net.gepafin.tendermanagement.entities.CallTargetAudienceChecklistEntity;
|
||||
import net.gepafin.tendermanagement.entities.DocumentEntity;
|
||||
import net.gepafin.tendermanagement.entities.EvaluationCriteriaEntity;
|
||||
import net.gepafin.tendermanagement.entities.FaqEntity;
|
||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
||||
import net.gepafin.tendermanagement.entities.RegionEntity;
|
||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||
import net.gepafin.tendermanagement.enums.CallTypeEnum;
|
||||
import net.gepafin.tendermanagement.model.request.*;
|
||||
import net.gepafin.tendermanagement.model.response.*;
|
||||
import net.gepafin.tendermanagement.repositories.*;
|
||||
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep1;
|
||||
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep2;
|
||||
import net.gepafin.tendermanagement.model.request.DocumentReq;
|
||||
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaReq;
|
||||
import net.gepafin.tendermanagement.model.request.FaqReq;
|
||||
import net.gepafin.tendermanagement.model.request.LookUpDataReq;
|
||||
import net.gepafin.tendermanagement.model.response.CreateCallResponseBean;
|
||||
import net.gepafin.tendermanagement.model.response.DocumentResponseBean;
|
||||
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
||||
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
||||
import net.gepafin.tendermanagement.model.response.LookUpDataResponse;
|
||||
import net.gepafin.tendermanagement.repositories.CallRepository;
|
||||
import net.gepafin.tendermanagement.repositories.CallTargetAudienceChecklistRepository;
|
||||
import net.gepafin.tendermanagement.repositories.DocumentRepository;
|
||||
import net.gepafin.tendermanagement.repositories.EvaluationCriteriaRepository;
|
||||
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
||||
import net.gepafin.tendermanagement.repositories.LookUpDataRepository;
|
||||
import net.gepafin.tendermanagement.repositories.RegionRepository;
|
||||
import net.gepafin.tendermanagement.repositories.UserRepository;
|
||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
||||
|
||||
@Component
|
||||
public class CallDao {
|
||||
@@ -51,30 +75,23 @@ public class CallDao {
|
||||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
|
||||
public CreateCallResponseBean createCall(CreateCallRequest createCallRequest, Long userId) {
|
||||
public CreateCallResponseBean createCallStep1(CreateCallRequestStep1 createCallRequest, Long userId) {
|
||||
CreateCallResponseBean createCallResponseBean = null;
|
||||
CallEntity callEntity = convertToCallEntity(createCallRequest);
|
||||
List<EvaluationCriteriaEntity> evaluationCriteriaEntities = convertToEvaluationCriteriaEntities(
|
||||
createCallRequest.getCriteria(), callEntity);
|
||||
List<DocumentEntity> documentEntities = convertToDocumentEntities(createCallRequest.getDocs(), callEntity);
|
||||
List<DocumentEntity> imageEntities = convertToDocumentEntities(createCallRequest.getImages(), callEntity);
|
||||
List<FaqEntity> faqEntities = convertToFaqEntities(createCallRequest.getFaq(), callEntity, userId);
|
||||
List<LookUpDataResponse> amiedTo = convertLookUpDataEntities(createCallRequest.getAimedTo(), callEntity,
|
||||
LookUpDataTypeEnum.AIMED_TO);
|
||||
List<LookUpDataResponse> checkList = convertLookUpDataEntities(createCallRequest.getAimedTo(), callEntity,
|
||||
LookUpDataTypeEnum.CHECKLIST);
|
||||
createCallResponseBean = assembleCreateCallResponseBean(callEntity, evaluationCriteriaEntities,
|
||||
documentEntities, faqEntities, imageEntities);
|
||||
createCallResponseBean = assembleCreateCallResponseBean(callEntity, Collections.emptyList(),
|
||||
Collections.emptyList(), faqEntities, Collections.emptyList());
|
||||
createCallResponseBean.setAimedTo(amiedTo);
|
||||
createCallResponseBean.setCheckList(checkList);
|
||||
return createCallResponseBean;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public CallEntity convertToCallEntity(CreateCallRequest createCallRequest) {
|
||||
public CallEntity convertToCallEntity(CreateCallRequestStep1 createCallRequest) {
|
||||
CallEntity callEntity = new CallEntity();
|
||||
validateCallEntity(createCallRequest.getRegionId(), createCallRequest.getAmount());
|
||||
validateCallEntity(createCallRequest);
|
||||
RegionEntity region = regionRepository.findById(createCallRequest.getRegionId())
|
||||
.orElseThrow(() -> new ResourceNotFoundException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.REGION_NOT_FOUND)));
|
||||
callEntity.setRegion(region);
|
||||
@@ -86,12 +103,11 @@ public class CallDao {
|
||||
callEntity.setStatus(String.valueOf(createCallRequest.getStatus()));
|
||||
callEntity.setAmountMax(createCallRequest.getAmountMax());
|
||||
callEntity.setAmount(createCallRequest.getAmountMax());
|
||||
callEntity.setThreshold(createCallRequest.getThreshold());
|
||||
callEntity.setConfidi(false);
|
||||
if(createCallRequest.getConfidi()!=null){
|
||||
callEntity.setConfidi(createCallRequest.getConfidi());
|
||||
}
|
||||
callEntity.setDocumentation_requested(createCallRequest.getDocumentationRequested());
|
||||
callEntity.setDocumentationRequested(createCallRequest.getDocumentationRequested());
|
||||
callEntity = callRepository.save(callEntity);
|
||||
return callEntity;
|
||||
}
|
||||
@@ -121,13 +137,15 @@ public class CallDao {
|
||||
|
||||
private DocumentEntity convertToDocumentEntity(DocumentReq documentReq, CallEntity callEntity) {
|
||||
validateDocumentEntity(documentReq.getId(),documentReq.getFileName());
|
||||
DocumentEntity documentEntity = documentRepository.findById(documentReq.getId());
|
||||
if(documentEntity==null){
|
||||
throw new ResourceNotFoundException(Status.VALIDATION_ERROR,Translator.toLocale(GepafinConstant.DOCUMENT_NOT_FOUND));
|
||||
}
|
||||
documentEntity.setFileName(documentReq.getFileName());
|
||||
documentEntity.setFilePath(documentReq.getUrl());
|
||||
documentEntity.setCall(callEntity);
|
||||
DocumentEntity documentEntity = documentRepository.findById(documentReq.getId())
|
||||
.orElseThrow(() -> new ResourceNotFoundException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.DOCUMENT_NOT_FOUND)));
|
||||
// if(documentEntity==null){
|
||||
// throw ;
|
||||
// }
|
||||
// documentEntity.setFileName(documentReq.getFileName());
|
||||
// documentEntity.setFilePath(documentReq.getUrl());
|
||||
// documentEntity.setCall(callEntity);
|
||||
return documentEntity;
|
||||
}
|
||||
|
||||
@@ -170,9 +188,9 @@ public class CallDao {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR,Translator.toLocale(GepafinConstant.DOCUMENT_ID_NOT_FOUND));
|
||||
}
|
||||
|
||||
if (!StringUtils.hasText(name)) {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.NAME_NOT_EMPTY_MSG));
|
||||
}
|
||||
// if (!StringUtils.hasText(name)) {
|
||||
// throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.NAME_NOT_EMPTY_MSG));
|
||||
// }
|
||||
}
|
||||
|
||||
public void validateEvolutionCrieteriaEntity(String name) {
|
||||
@@ -181,14 +199,17 @@ public class CallDao {
|
||||
}
|
||||
}
|
||||
|
||||
public void validateCallEntity(Long regionId, BigDecimal fundingAmount) {
|
||||
if (regionId == null) {
|
||||
public void validateCallEntity(CreateCallRequestStep1 createCallRequest) {
|
||||
if (createCallRequest.getRegionId() == null) {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.REGION_NOT_FOUND_MSG));
|
||||
}
|
||||
|
||||
if (fundingAmount == null || fundingAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
||||
if (createCallRequest.getAmount().compareTo(BigDecimal.ZERO) <= 0||createCallRequest.getAmountMax().compareTo(BigDecimal.ZERO) <= 0) {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.AMOUNT_GREATER_THAN_ZERO_MSG));
|
||||
}
|
||||
if (createCallRequest.getStartDate().toLocalDate().isBefore(LocalDate.now()) || createCallRequest.getEndDate().toLocalDate().isBefore(LocalDate.now())) {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.INVALID_DATE_MSG));
|
||||
}
|
||||
}
|
||||
public CreateCallResponseBean convertToCallResponseBean(CallEntity callEntity) {
|
||||
CreateCallResponseBean createCallResponseBean = new CreateCallResponseBean();
|
||||
@@ -204,7 +225,7 @@ public class CallDao {
|
||||
createCallResponseBean.setContactInfo(callEntity.getContactInfo());
|
||||
createCallResponseBean.setSubmissionMethod(callEntity.getSubmissionMethod());
|
||||
createCallResponseBean.setThreshold(callEntity.getThreshold());
|
||||
createCallResponseBean.setDocumentationReqested(callEntity.getDocumentation_requested());
|
||||
createCallResponseBean.setDocumentationReqested(callEntity.getDocumentationRequested());
|
||||
createCallResponseBean.setPriorityArea(callEntity.getPriorityArea());
|
||||
createCallResponseBean.setCreatedDate(callEntity.getCreatedDate());
|
||||
createCallResponseBean.setUpdatedDate(callEntity.getUpdatedDate());
|
||||
@@ -291,13 +312,13 @@ public class CallDao {
|
||||
callTargetAudienceChecklistEntity.setLookupData(lookUpDataEntity);
|
||||
callTargetAudienceChecklistEntity.setCall(callEntity);
|
||||
callTargetAudienceChecklistEntity= callTargetAudienceChecklistRepository.save(callTargetAudienceChecklistEntity);
|
||||
lookUpDataResponses.add(convertToLookUpDataResponseBean(lookUpDataEntity,callTargetAudienceChecklistEntity));
|
||||
lookUpDataResponses.add(convertToLookUpDataResponseBean(callTargetAudienceChecklistEntity));
|
||||
}
|
||||
return lookUpDataResponses;
|
||||
}
|
||||
|
||||
private LookUpDataEntity convertLookUpDataRequestIntoLookUpDataEntity(LookUpDataReq req, LookUpDataEntity.LookUpDataTypeEnum type) {
|
||||
if (req.getLookUpDataId() == null || req.getLookUpDataId().equals(BigDecimal.ZERO)) {
|
||||
if (req.getLookUpDataId() == null || req.getLookUpDataId().equals(0l)) {
|
||||
LookUpDataEntity newEntity = new LookUpDataEntity();
|
||||
newEntity.setValue(req.getValue());
|
||||
newEntity.setType(type.getValue());
|
||||
@@ -308,8 +329,9 @@ public class CallDao {
|
||||
.orElseThrow(() -> new ResourceNotFoundException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.LOOK_UP_DATA_NOT_VALID_MSG)));
|
||||
}
|
||||
|
||||
public LookUpDataResponse convertToLookUpDataResponseBean(LookUpDataEntity lookUpDataEntity,CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity) {
|
||||
public LookUpDataResponse convertToLookUpDataResponseBean(CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity) {
|
||||
LookUpDataResponse lookUpDataResponse = new LookUpDataResponse();
|
||||
LookUpDataEntity lookUpDataEntity = callTargetAudienceChecklistEntity.getLookupData();
|
||||
lookUpDataResponse.setId(callTargetAudienceChecklistEntity.getId());
|
||||
lookUpDataResponse.setLookUpDataId(lookUpDataEntity.getId());
|
||||
lookUpDataResponse.setValue(lookUpDataEntity.getValue());
|
||||
@@ -318,6 +340,32 @@ public class CallDao {
|
||||
lookUpDataResponse.setUpdatedDate(lookUpDataEntity.getUpdatedDate());
|
||||
return lookUpDataResponse;
|
||||
}
|
||||
|
||||
|
||||
public CreateCallResponseBean createCallStep2(CreateCallRequestStep2 createCallRequest, Long userId) {
|
||||
CreateCallResponseBean createCallResponseBean = null;
|
||||
CallEntity callEntity = callRepository.findById(createCallRequest.getCallId())
|
||||
.orElseThrow(() -> new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.NAME_NOT_EMPTY_MSG)));
|
||||
|
||||
callEntity.setThreshold(createCallRequest.getThreshold());
|
||||
List<EvaluationCriteriaEntity> evaluationCriteriaEntities = convertToEvaluationCriteriaEntities(
|
||||
createCallRequest.getCriteria(), callEntity);
|
||||
List<DocumentEntity> documentEntities = convertToDocumentEntities(createCallRequest.getDocs(), callEntity);
|
||||
List<DocumentEntity> imageEntities = convertToDocumentEntities(createCallRequest.getImages(), callEntity);
|
||||
List<LookUpDataResponse> checkList = convertLookUpDataEntities(createCallRequest.getCheckList(), callEntity,
|
||||
LookUpDataTypeEnum.CHECKLIST);
|
||||
List<FaqEntity> faqEntities = faqRepository.findByCallId(callEntity.getId());
|
||||
List<LookUpDataResponse> amiedTo = callTargetAudienceChecklistRepository
|
||||
.findByCallIdAndLookupDataType(callEntity.getId(), LookUpDataTypeEnum.AIMED_TO.getValue()).stream()
|
||||
.map(this::convertToLookUpDataResponseBean).toList();
|
||||
createCallResponseBean = assembleCreateCallResponseBean(callEntity, evaluationCriteriaEntities,
|
||||
documentEntities, faqEntities, imageEntities);
|
||||
createCallResponseBean.setAimedTo(amiedTo);
|
||||
createCallResponseBean.setCheckList(checkList);
|
||||
return createCallResponseBean;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user