Refactored code for faq
This commit is contained in:
@@ -4,10 +4,10 @@ import java.time.LocalDate;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import net.gepafin.tendermanagement.model.response.*;
|
import net.gepafin.tendermanagement.model.response.*;
|
||||||
|
import net.gepafin.tendermanagement.service.FaqService;
|
||||||
import net.gepafin.tendermanagement.service.LookUpDataService;
|
import net.gepafin.tendermanagement.service.LookUpDataService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -38,11 +38,9 @@ import net.gepafin.tendermanagement.repositories.CallTargetAudienceChecklistRepo
|
|||||||
import net.gepafin.tendermanagement.repositories.DocumentRepository;
|
import net.gepafin.tendermanagement.repositories.DocumentRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.EvaluationCriteriaRepository;
|
import net.gepafin.tendermanagement.repositories.EvaluationCriteriaRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.LookUpDataRepository;
|
|
||||||
import net.gepafin.tendermanagement.repositories.RegionRepository;
|
import net.gepafin.tendermanagement.repositories.RegionRepository;
|
||||||
import net.gepafin.tendermanagement.service.UserService;
|
import net.gepafin.tendermanagement.service.UserService;
|
||||||
import net.gepafin.tendermanagement.service.impl.CallValidatorServiceImpl;
|
import net.gepafin.tendermanagement.service.impl.CallValidatorServiceImpl;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
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.ResourceNotFoundException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
@@ -66,10 +64,9 @@ public class CallDao {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RegionRepository regionRepository;
|
private RegionRepository regionRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private LookUpDataService lookUpDataService;
|
private LookUpDataService lookUpDataService;
|
||||||
@Autowired
|
|
||||||
private LookUpDataRepository lookUpDataRepository;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CallTargetAudienceChecklistRepository callTargetAudienceChecklistRepository;
|
private CallTargetAudienceChecklistRepository callTargetAudienceChecklistRepository;
|
||||||
@@ -77,17 +74,19 @@ public class CallDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private FaqService faqService;
|
||||||
|
|
||||||
public CallResponse createCallStep1(CreateCallRequestStep1 createCallRequest, Long userId) {
|
public CallResponse createCallStep1(CreateCallRequestStep1 createCallRequest, Long userId) {
|
||||||
UserEntity userEntity = userService.validateUser(userId);
|
UserEntity userEntity = userService.validateUser(userId);
|
||||||
createCallRequest.setRegionId(userEntity.getRoleEntity().getRegion().getId());
|
createCallRequest.setRegionId(userEntity.getRoleEntity().getRegion().getId());
|
||||||
CallEntity callEntity = convertToCallEntity(createCallRequest);
|
CallEntity callEntity = convertToCallEntity(createCallRequest);
|
||||||
convertToFaqEntities(createCallRequest.getFaq(), callEntity, userEntity,LookUpDataTypeEnum.FAQ);
|
|
||||||
|
updateFaq(createCallRequest.getFaq(), callEntity, userEntity,LookUpDataTypeEnum.FAQ);
|
||||||
|
|
||||||
convertLookUpDataEntities(createCallRequest.getAimedTo(), callEntity,
|
convertLookUpDataEntities(createCallRequest.getAimedTo(), callEntity,
|
||||||
LookUpDataTypeEnum.AIMED_TO);
|
LookUpDataTypeEnum.AIMED_TO);
|
||||||
// createCallResponseBean = assembleCreateCallResponseBean(callEntity, Collections.emptyList(),
|
|
||||||
// Collections.emptyList(), faqEntities, Collections.emptyList());
|
|
||||||
// createCallResponseBean.setAimedTo(amiedTo);
|
|
||||||
// createCallResponseBean.setCurrentStep(GepafinConstant.STEP_1);
|
|
||||||
CallResponse createCallResponseBean = getCallResponseBean(callEntity);
|
CallResponse createCallResponseBean = getCallResponseBean(callEntity);
|
||||||
createCallResponseBean.setCurrentStep(GepafinConstant.STEP_1);
|
createCallResponseBean.setCurrentStep(GepafinConstant.STEP_1);
|
||||||
return createCallResponseBean;
|
return createCallResponseBean;
|
||||||
@@ -149,7 +148,7 @@ public class CallDao {
|
|||||||
private EvaluationCriteriaEntity convertToEvaluationCriteriaEntity(EvaluationCriteriaReq criteriaReq,
|
private EvaluationCriteriaEntity convertToEvaluationCriteriaEntity(EvaluationCriteriaReq criteriaReq,
|
||||||
CallEntity callEntity, LookUpDataTypeEnum type) {
|
CallEntity callEntity, LookUpDataTypeEnum type) {
|
||||||
EvaluationCriteriaEntity criteriaEntity = null;
|
EvaluationCriteriaEntity criteriaEntity = null;
|
||||||
LookUpDataEntity lookupDataEntity = convertLookUpDataRequestIntoLookUpDataEntity(criteriaReq, type);
|
LookUpDataEntity lookupDataEntity = lookUpDataService.getOrCreateLookUpDataEntity(criteriaReq, type);
|
||||||
if (criteriaReq.getId() != null && criteriaReq.getId() > 0) {
|
if (criteriaReq.getId() != null && criteriaReq.getId() > 0) {
|
||||||
criteriaEntity = evaluationCriteriaRepository.findById(criteriaReq.getId())
|
criteriaEntity = evaluationCriteriaRepository.findById(criteriaReq.getId())
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
@@ -201,11 +200,11 @@ public class CallDao {
|
|||||||
return documentEntity;
|
return documentEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<FaqEntity> convertToFaqEntities(List<FaqReq> faqReqList, CallEntity callEntity, UserEntity userEntity, LookUpDataTypeEnum type) {
|
public List<FaqEntity> updateFaq(List<FaqReq> faqReqList, CallEntity callEntity, UserEntity userEntity, LookUpDataTypeEnum type) {
|
||||||
if (faqReqList == null) {
|
if (faqReqList == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
List<FaqEntity> existingFaqEntities = faqRepository.findByCallIdAndLookupDataTypeAndIsDeletedFalse(callEntity.getId(), type.getValue());
|
List<FaqEntity> existingFaqEntities = faqRepository.findByCallIdAndIsDeletedFalse(callEntity.getId());
|
||||||
List<Long> incomingIds = faqReqList.stream()
|
List<Long> incomingIds = faqReqList.stream()
|
||||||
.map(FaqReq::getId)
|
.map(FaqReq::getId)
|
||||||
.filter(id -> id != null && id > 0)
|
.filter(id -> id != null && id > 0)
|
||||||
@@ -214,42 +213,12 @@ public class CallDao {
|
|||||||
.filter(entity -> !incomingIds.contains(entity.getId()))
|
.filter(entity -> !incomingIds.contains(entity.getId()))
|
||||||
.forEach(this::softDeleteFaq);
|
.forEach(this::softDeleteFaq);
|
||||||
List<FaqEntity> faqEntities = faqReqList.stream()
|
List<FaqEntity> faqEntities = faqReqList.stream()
|
||||||
.map(req -> convertToFaqEntity(req, callEntity, userEntity, type))
|
.map(req -> faqService.createOrUpdateFaqEntity(req, callEntity, userEntity, type))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
faqRepository.saveAll(faqEntities);
|
|
||||||
return faqEntities;
|
return faqEntities;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public FaqEntity convertToFaqEntity(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity,LookUpDataTypeEnum type) {
|
|
||||||
FaqEntity faqEntity = new FaqEntity();
|
|
||||||
LookUpDataEntity lookupDataEntity = convertLookUpDataRequestIntoLookUpDataEntity(faqReq, type);
|
|
||||||
validateFaqEntity(faqReq.getQuestion());
|
|
||||||
faqEntity.setUser(userEntity);
|
|
||||||
faqEntity.setIsVisible(false);
|
|
||||||
faqEntity.setLookupData(lookupDataEntity);
|
|
||||||
if (faqReq.getIsVisible() != null) {
|
|
||||||
faqEntity.setIsVisible(faqReq.getIsVisible());
|
|
||||||
}
|
|
||||||
faqEntity.setQuestionShort(faqReq.getQuestionShort());
|
|
||||||
faqEntity.setQuestion(faqReq.getQuestion());
|
|
||||||
if (faqReq.getResponse() != null || faqReq.getResponseShort() != null) {
|
|
||||||
faqEntity.setResponseDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
|
||||||
}
|
|
||||||
faqEntity.setResponseShort(faqReq.getResponseShort());
|
|
||||||
faqEntity.setResponse(faqReq.getResponse());
|
|
||||||
faqEntity.setCall(callEntity);
|
|
||||||
faqEntity.setIsDeleted(false);
|
|
||||||
return faqEntity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void validateFaqEntity(String question) {
|
|
||||||
if (!StringUtils.hasText(question)) {
|
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
|
||||||
Translator.toLocale(GepafinConstant.QUESTION_NOT_EMPTY_MSG));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void validateDocumentEntity(Long documentId) {
|
public void validateDocumentEntity(Long documentId) {
|
||||||
if (documentId == null || documentId < 1) {
|
if (documentId == null || documentId < 1) {
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||||
@@ -264,26 +233,6 @@ public class CallDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// public void validateCallEntity(CreateCallRequestStep1 createCallRequest) {
|
|
||||||
// if (createCallRequest.getRegionId() == null) {
|
|
||||||
// throw new CustomValidationException(Status.VALIDATION_ERROR,
|
|
||||||
// Translator.toLocale(GepafinConstant.REGION_NOT_FOUND_MSG));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// 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()) || createCallRequest
|
|
||||||
// .getStartDate().toLocalDate().isAfter(createCallRequest.getEndDate().toLocalDate())) {
|
|
||||||
// throw new CustomValidationException(Status.VALIDATION_ERROR,
|
|
||||||
// Translator.toLocale(GepafinConstant.INVALID_DATE_MSG));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
public CallResponse convertToCallResponseBean(CallEntity callEntity) {
|
public CallResponse convertToCallResponseBean(CallEntity callEntity) {
|
||||||
CallResponse createCallResponseBean = new CallResponse();
|
CallResponse createCallResponseBean = new CallResponse();
|
||||||
createCallResponseBean.setId(callEntity.getId());
|
createCallResponseBean.setId(callEntity.getId());
|
||||||
@@ -332,26 +281,9 @@ public class CallDao {
|
|||||||
return responseBean;
|
return responseBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FaqResponseBean convertToFaqResponseBean(FaqEntity entity) {
|
|
||||||
FaqResponseBean responseBean = new FaqResponseBean();
|
|
||||||
responseBean.setId(entity.getId());
|
|
||||||
responseBean.setLookUpDataId(entity.getLookupData().getId());
|
|
||||||
responseBean.setValue(entity.getLookupData().getValue());
|
|
||||||
responseBean.setTitle(entity.getLookupData().getTitle());
|
|
||||||
responseBean.setQuestionShort(entity.getQuestionShort());
|
|
||||||
responseBean.setResponseShort(entity.getResponseShort());
|
|
||||||
responseBean.setResponse(entity.getResponse());
|
|
||||||
responseBean.setQuestion(entity.getQuestion());
|
|
||||||
responseBean.setUserId(entity.getUser().getId());
|
|
||||||
responseBean.setIsVisible(entity.getIsVisible());
|
|
||||||
responseBean.setCreatedDate(entity.getCreatedDate());
|
|
||||||
responseBean.setUpdatedDate(entity.getUpdatedDate());
|
|
||||||
return responseBean;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CallResponse assembleCreateCallResponseBean(CallEntity callEntity,
|
public CallResponse assembleCreateCallResponseBean(CallEntity callEntity,
|
||||||
List<EvaluationCriteriaEntity> evaluationCriteriaEntities, List<DocumentEntity> documentEntities,
|
List<EvaluationCriteriaEntity> evaluationCriteriaEntities, List<DocumentEntity> documentEntities,
|
||||||
List<FaqEntity> faqEntities, List<DocumentEntity> images) {
|
List<DocumentEntity> images) {
|
||||||
|
|
||||||
CallResponse callResponseBean = convertToCallResponseBean(callEntity);
|
CallResponse callResponseBean = convertToCallResponseBean(callEntity);
|
||||||
|
|
||||||
@@ -361,15 +293,12 @@ public class CallDao {
|
|||||||
List<DocumentResponseBean> documentResponseBeans = documentEntities.stream()
|
List<DocumentResponseBean> documentResponseBeans = documentEntities.stream()
|
||||||
.map(this::convertToDocumentResponseBean).collect(Collectors.toList());
|
.map(this::convertToDocumentResponseBean).collect(Collectors.toList());
|
||||||
|
|
||||||
List<FaqResponseBean> faqResponseBeans = faqEntities.stream().map(this::convertToFaqResponseBean)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
List<DocumentResponseBean> imagesResponseBean = images.stream().map(this::convertToDocumentResponseBean)
|
List<DocumentResponseBean> imagesResponseBean = images.stream().map(this::convertToDocumentResponseBean)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
CallResponse createCallResponseBean = callResponseBean;
|
CallResponse createCallResponseBean = callResponseBean;
|
||||||
createCallResponseBean.setCriteria(evaluationCriteriaResponseBeans);
|
createCallResponseBean.setCriteria(evaluationCriteriaResponseBeans);
|
||||||
createCallResponseBean.setDocs(documentResponseBeans);
|
createCallResponseBean.setDocs(documentResponseBeans);
|
||||||
createCallResponseBean.setFaq(faqResponseBeans);
|
|
||||||
createCallResponseBean.setImages(imagesResponseBean);
|
createCallResponseBean.setImages(imagesResponseBean);
|
||||||
return createCallResponseBean;
|
return createCallResponseBean;
|
||||||
}
|
}
|
||||||
@@ -380,7 +309,7 @@ public class CallDao {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
List<LookUpDataEntity> lookUpDataEntities = lookUpData.stream()
|
List<LookUpDataEntity> lookUpDataEntities = lookUpData.stream()
|
||||||
.map(req -> convertLookUpDataRequestIntoLookUpDataEntity(req, type)).collect(Collectors.toList());
|
.map(req -> lookUpDataService.getOrCreateLookUpDataEntity(req, type)).collect(Collectors.toList());
|
||||||
|
|
||||||
return createCallTargetAudienceCheckList(callEntity, lookUpDataEntities);
|
return createCallTargetAudienceCheckList(callEntity, lookUpDataEntities);
|
||||||
}
|
}
|
||||||
@@ -401,21 +330,6 @@ public class CallDao {
|
|||||||
return lookUpDataResponses;
|
return lookUpDataResponses;
|
||||||
}
|
}
|
||||||
|
|
||||||
private LookUpDataEntity convertLookUpDataRequestIntoLookUpDataEntity(LookUpDataReq req,
|
|
||||||
LookUpDataEntity.LookUpDataTypeEnum type) {
|
|
||||||
if (req.getLookUpDataId() == null || req.getLookUpDataId().equals(0l)) {
|
|
||||||
LookUpDataEntity newEntity = new LookUpDataEntity();
|
|
||||||
newEntity.setValue(req.getValue());
|
|
||||||
newEntity.setType(type.getValue());
|
|
||||||
lookUpDataService.validateLookUpDataEntity(newEntity);
|
|
||||||
return lookUpDataRepository.save(newEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
return lookUpDataRepository.findById(req.getLookUpDataId())
|
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
|
||||||
Translator.toLocale(GepafinConstant.LOOK_UP_DATA_NOT_VALID_MSG)));
|
|
||||||
}
|
|
||||||
|
|
||||||
public LookUpDataResponse convertToLookUpDataResponseBean(
|
public LookUpDataResponse convertToLookUpDataResponseBean(
|
||||||
CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity) {
|
CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity) {
|
||||||
LookUpDataResponse lookUpDataResponse = new LookUpDataResponse();
|
LookUpDataResponse lookUpDataResponse = new LookUpDataResponse();
|
||||||
@@ -528,62 +442,17 @@ public class CallDao {
|
|||||||
updateCallRequest.getDocumentationRequested());
|
updateCallRequest.getDocumentationRequested());
|
||||||
setIfUpdated(callEntity::getConfidi, callEntity::setConfidi, updateCallRequest.getConfidi());
|
setIfUpdated(callEntity::getConfidi, callEntity::setConfidi, updateCallRequest.getConfidi());
|
||||||
updateLookUpData(callEntity, updateCallRequest.getAimedTo(), LookUpDataTypeEnum.AIMED_TO);
|
updateLookUpData(callEntity, updateCallRequest.getAimedTo(), LookUpDataTypeEnum.AIMED_TO);
|
||||||
updateFaq(callEntity, updateCallRequest.getFaq(), userEntity, LookUpDataTypeEnum.FAQ);
|
updateFaq(updateCallRequest.getFaq(), callEntity, userEntity, LookUpDataTypeEnum.FAQ);
|
||||||
CallResponse createCallResponseBean = getCallResponseBean(callEntity);
|
CallResponse createCallResponseBean = getCallResponseBean(callEntity);
|
||||||
createCallResponseBean.setCurrentStep(GepafinConstant.STEP_1);
|
createCallResponseBean.setCurrentStep(GepafinConstant.STEP_1);
|
||||||
return createCallResponseBean;
|
return createCallResponseBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFaq(CallEntity callEntity, List<FaqReq> faqReqList, UserEntity userEntity, LookUpDataTypeEnum type) {
|
|
||||||
if (faqReqList == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
List<FaqEntity> existingFaqs = faqRepository.findByCallIdAndIsDeletedFalse(callEntity.getId());
|
|
||||||
List<Long> incomingIds = faqReqList.stream().map(FaqReq::getId).filter(Objects::nonNull).filter(id -> id > 0)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
existingFaqs.stream().filter(faq -> !incomingIds.contains(faq.getId())).forEach(this::softDeleteFaq);
|
|
||||||
faqReqList.forEach(faqReq -> createOrUpdateFaq(faqReq, callEntity, userEntity, type));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void softDeleteFaq(FaqEntity faqEntity) {
|
private void softDeleteFaq(FaqEntity faqEntity) {
|
||||||
faqEntity.setIsDeleted(true);
|
faqEntity.setIsDeleted(true);
|
||||||
faqRepository.save(faqEntity);
|
faqRepository.save(faqEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createOrUpdateFaq(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity, LookUpDataTypeEnum type) {
|
|
||||||
FaqEntity faqEntity = null;
|
|
||||||
|
|
||||||
LookUpDataEntity lookupDataEntity = convertLookUpDataRequestIntoLookUpDataEntity(faqReq, type);
|
|
||||||
|
|
||||||
if (isExistingFaq(faqReq)) {
|
|
||||||
faqEntity = faqRepository.findById(faqReq.getId())
|
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
|
||||||
Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
|
||||||
} else {
|
|
||||||
faqEntity = new FaqEntity();
|
|
||||||
faqEntity.setCall(callEntity);
|
|
||||||
faqEntity.setUser(userEntity);
|
|
||||||
faqEntity.setLookupData(lookupDataEntity);
|
|
||||||
faqEntity.setIsVisible(false);
|
|
||||||
faqEntity.setIsDeleted(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Boolean.FALSE.equals(faqEntity.getLookupData().getId().equals(lookupDataEntity.getId()))) {
|
|
||||||
faqEntity.setLookupData(lookupDataEntity);
|
|
||||||
}
|
|
||||||
setIfUpdated(faqEntity::getQuestionShort, faqEntity::setQuestionShort, faqReq.getQuestionShort());
|
|
||||||
setIfUpdated(faqEntity::getQuestion, faqEntity::setQuestion, faqReq.getQuestion());
|
|
||||||
setIfUpdated(faqEntity::getResponseShort, faqEntity::setResponseShort, faqReq.getResponseShort());
|
|
||||||
setIfUpdated(faqEntity::getResponse, faqEntity::setResponse, faqReq.getResponse());
|
|
||||||
setIfUpdated(faqEntity::getIsVisible, faqEntity::setIsVisible, faqReq.getIsVisible());
|
|
||||||
faqRepository.save(faqEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isExistingFaq(FaqReq faqReq) {
|
|
||||||
return faqReq.getId() != null && faqReq.getId() > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateLookUpData(CallEntity callEntity, List<LookUpDataReq> lookupDataReqList, LookUpDataTypeEnum type) {
|
private void updateLookUpData(CallEntity callEntity, List<LookUpDataReq> lookupDataReqList, LookUpDataTypeEnum type) {
|
||||||
if (lookupDataReqList == null) {
|
if (lookupDataReqList == null) {
|
||||||
return;
|
return;
|
||||||
@@ -601,7 +470,7 @@ public class CallDao {
|
|||||||
private void createOrUpdateCallTargetAudienceChecklist(LookUpDataReq lookUpDataReq, CallEntity callEntity,
|
private void createOrUpdateCallTargetAudienceChecklist(LookUpDataReq lookUpDataReq, CallEntity callEntity,
|
||||||
LookUpDataTypeEnum type) {
|
LookUpDataTypeEnum type) {
|
||||||
CallTargetAudienceChecklistEntity checklistEntity = null;
|
CallTargetAudienceChecklistEntity checklistEntity = null;
|
||||||
LookUpDataEntity lookupDataEntity = convertLookUpDataRequestIntoLookUpDataEntity(lookUpDataReq, type);
|
LookUpDataEntity lookupDataEntity = lookUpDataService.getOrCreateLookUpDataEntity(lookUpDataReq, type);
|
||||||
if (lookUpDataReq.getId() != null && lookUpDataReq.getId() > 0) {
|
if (lookUpDataReq.getId() != null && lookUpDataReq.getId() > 0) {
|
||||||
checklistEntity = callTargetAudienceChecklistRepository.findById(lookUpDataReq.getId())
|
checklistEntity = callTargetAudienceChecklistRepository.findById(lookUpDataReq.getId())
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
@@ -656,7 +525,6 @@ public class CallDao {
|
|||||||
DocumentTypeEnum.DOCUMENT.getValue());
|
DocumentTypeEnum.DOCUMENT.getValue());
|
||||||
List<DocumentEntity> imageEntities = documentRepository.findByCallIdAndTypeAndIsDeletedFalse(callEntity.getId(),
|
List<DocumentEntity> imageEntities = documentRepository.findByCallIdAndTypeAndIsDeletedFalse(callEntity.getId(),
|
||||||
DocumentTypeEnum.IMAGES.getValue());
|
DocumentTypeEnum.IMAGES.getValue());
|
||||||
List<FaqEntity> faqEntities = faqRepository.findByCallIdAndIsDeletedFalse(callEntity.getId());
|
|
||||||
List<LookUpDataResponse> amiedTo = callTargetAudienceChecklistRepository
|
List<LookUpDataResponse> amiedTo = callTargetAudienceChecklistRepository
|
||||||
.findByCallIdAndLookupDataTypeAndIsDeletedFalse(callEntity.getId(), LookUpDataTypeEnum.AIMED_TO.getValue()).stream()
|
.findByCallIdAndLookupDataTypeAndIsDeletedFalse(callEntity.getId(), LookUpDataTypeEnum.AIMED_TO.getValue()).stream()
|
||||||
.map(this::convertToLookUpDataResponseBean).toList();
|
.map(this::convertToLookUpDataResponseBean).toList();
|
||||||
@@ -668,7 +536,8 @@ public class CallDao {
|
|||||||
.findByCallIdAndLookupDataTypeAndIsDeletedFalse(callEntity.getId(), LookUpDataTypeEnum.EVALUATION_CRITERIA.getValue());
|
.findByCallIdAndLookupDataTypeAndIsDeletedFalse(callEntity.getId(), LookUpDataTypeEnum.EVALUATION_CRITERIA.getValue());
|
||||||
|
|
||||||
CallResponse createCallResponseBean = assembleCreateCallResponseBean(callEntity, evaluationCriteriaEntities,
|
CallResponse createCallResponseBean = assembleCreateCallResponseBean(callEntity, evaluationCriteriaEntities,
|
||||||
documentEntities, faqEntities, imageEntities);
|
documentEntities, imageEntities);
|
||||||
|
createCallResponseBean.setFaq(faqService.getFaqByCallId(callEntity.getId()));
|
||||||
createCallResponseBean.setAimedTo(amiedTo);
|
createCallResponseBean.setAimedTo(amiedTo);
|
||||||
createCallResponseBean.setCheckList(checkList);
|
createCallResponseBean.setCheckList(checkList);
|
||||||
return createCallResponseBean;
|
return createCallResponseBean;
|
||||||
|
|||||||
@@ -6,18 +6,22 @@ import net.gepafin.tendermanagement.entities.CallEntity;
|
|||||||
import net.gepafin.tendermanagement.entities.FaqEntity;
|
import net.gepafin.tendermanagement.entities.FaqEntity;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
||||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.FaqReq;
|
import net.gepafin.tendermanagement.model.request.FaqReq;
|
||||||
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
||||||
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
||||||
import net.gepafin.tendermanagement.service.CallService;
|
import net.gepafin.tendermanagement.service.CallService;
|
||||||
import net.gepafin.tendermanagement.service.UserService;
|
import net.gepafin.tendermanagement.service.LookUpDataService;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import static net.gepafin.tendermanagement.util.Utils.setIfUpdated;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class FaqDao {
|
public class FaqDao {
|
||||||
@@ -25,77 +29,92 @@ public class FaqDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FaqRepository faqRepository;
|
private FaqRepository faqRepository;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private UserService userService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private CallDao callDao;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CallService callService;
|
private CallService callService;
|
||||||
|
|
||||||
public FaqResponseBean createFaq(FaqReq faqRequest, Long userId, Long callId) {
|
@Autowired
|
||||||
|
private LookUpDataService lookUpDataService;
|
||||||
|
|
||||||
|
public FaqResponseBean createFaq(FaqReq faqRequest, UserEntity userEntity, Long callId) {
|
||||||
FaqEntity entity = new FaqEntity();
|
FaqEntity entity = new FaqEntity();
|
||||||
CallEntity callEntity = callService.validateCall(callId);
|
CallEntity callEntity = callService.validateCall(callId);
|
||||||
;
|
entity = createOrUpdateFaqEntity(faqRequest, callEntity, userEntity,
|
||||||
UserEntity userEntity = userService.validateUser(userId);
|
|
||||||
entity = callDao.convertToFaqEntity(faqRequest, callEntity, userEntity,
|
|
||||||
LookUpDataEntity.LookUpDataTypeEnum.FAQ);
|
LookUpDataEntity.LookUpDataTypeEnum.FAQ);
|
||||||
faqRepository.save(entity);
|
faqRepository.save(entity);
|
||||||
return convertFaqEntityToResponseBean(entity);
|
return convertToFaqResponseBean(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public FaqResponseBean getFaqById(Long id) {
|
public FaqResponseBean getFaqById(Long id) {
|
||||||
return faqRepository.findById(id).map(this::convertFaqEntityToResponseBean)
|
return convertToFaqResponseBean(validateFaq(id));
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
|
||||||
Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public FaqResponseBean updateFaq(Long id, FaqReq faqRequest, Long userId) {
|
public FaqResponseBean updateFaq(Long id, FaqReq faqRequest, UserEntity userEntity) {
|
||||||
FaqEntity entity = faqRepository.findById(id).orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
FaqEntity entity = validateFaq(id);
|
||||||
Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
faqRequest.setId(entity.getId());
|
||||||
updateFaqEntity(entity, faqRequest, userId, entity.getCall());
|
createOrUpdateFaqEntity(faqRequest, entity.getCall(), userEntity, LookUpDataEntity.LookUpDataTypeEnum.FAQ);
|
||||||
faqRepository.save(entity);
|
return convertToFaqResponseBean(entity);
|
||||||
return convertFaqEntityToResponseBean(entity);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteFaq(Long id) {
|
public void deleteFaq(Long id) {
|
||||||
FaqEntity entity = faqRepository.findById(id).orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
FaqEntity faqEntity = validateFaq(id);
|
||||||
|
faqEntity.setIsDeleted(Boolean.TRUE);
|
||||||
|
faqRepository.save(faqEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FaqEntity validateFaq(Long id) {
|
||||||
|
return faqRepository.findById(id).orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
||||||
faqRepository.deleteById(entity.getId());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private FaqResponseBean convertFaqEntityToResponseBean(FaqEntity entity) {
|
public List<FaqResponseBean> getFaqByCallId(Long callId) {
|
||||||
FaqResponseBean response = new FaqResponseBean();
|
callService.validateCall(callId);
|
||||||
response.setId(entity.getId());
|
return faqRepository.findByCallIdAndIsDeletedFalse(callId).stream().map(this::convertToFaqResponseBean)
|
||||||
response.setUserId(entity.getUser().getId());
|
.toList();
|
||||||
response.setIsVisible(entity.getIsVisible());
|
|
||||||
response.setUpdatedDate(entity.getUpdatedDate());
|
|
||||||
response.setCreatedDate(entity.getCreatedDate());
|
|
||||||
response.setQuestionShort(entity.getQuestionShort());
|
|
||||||
response.setQuestion(entity.getQuestion());
|
|
||||||
response.setResponseShort(entity.getResponseShort());
|
|
||||||
response.setResponse(entity.getResponse());
|
|
||||||
response.setResponseDate(entity.getResponseDate());
|
|
||||||
return response;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFaqEntity(FaqEntity faqEntity, FaqReq faqReq, Long userId, CallEntity callEntity) {
|
|
||||||
faqEntity.setQuestion(faqReq.getQuestion());
|
public FaqEntity createOrUpdateFaqEntity(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity,
|
||||||
UserEntity userEntity = userService.validateUser(userId);
|
LookUpDataTypeEnum type) {
|
||||||
faqEntity.setUser(userEntity);
|
FaqEntity faqEntity = null;
|
||||||
faqEntity.setIsVisible(true);
|
if (isExistingFaq(faqReq)) {
|
||||||
if (faqReq.getIsVisible() != null) {
|
faqEntity = faqRepository.findByIdAndCallIdAndIsDeletedFalse(faqReq.getId(), callEntity.getId())
|
||||||
faqEntity.setIsVisible(faqReq.getIsVisible());
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
|
Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
||||||
|
} else {
|
||||||
|
lookUpDataService.getOrCreateLookUpDataEntity(faqReq, type);
|
||||||
|
faqEntity = new FaqEntity();
|
||||||
|
faqEntity.setCall(callEntity);
|
||||||
|
faqEntity.setUser(userEntity);
|
||||||
|
faqEntity.setIsVisible(false);
|
||||||
|
faqEntity.setIsDeleted(false);
|
||||||
}
|
}
|
||||||
faqEntity.setQuestionShort(faqReq.getQuestionShort());
|
if (faqReq.getResponse() != null && (faqEntity.getResponse() == null
|
||||||
faqEntity.setQuestion(faqReq.getQuestion());
|
|| Boolean.FALSE.equals(faqReq.getResponse().equals(faqEntity.getResponse())))) {
|
||||||
if (faqReq.getResponse() != null || faqReq.getResponseShort() != null) {
|
|
||||||
faqEntity.setResponseDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
faqEntity.setResponseDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
}
|
}
|
||||||
faqEntity.setResponseShort(faqReq.getResponseShort());
|
setIfUpdated(faqEntity::getTitle, faqEntity::setTitle, faqReq.getTitle());
|
||||||
faqEntity.setResponse(faqReq.getResponse());
|
setIfUpdated(faqEntity::getValue, faqEntity::setValue, faqReq.getValue());
|
||||||
faqEntity.setCall(callEntity);
|
setIfUpdated(faqEntity::getResponse, faqEntity::setResponse, faqReq.getResponse());
|
||||||
|
setIfUpdated(faqEntity::getIsVisible, faqEntity::setIsVisible, faqReq.getIsVisible());
|
||||||
|
return faqRepository.save(faqEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isExistingFaq(FaqReq faqReq) {
|
||||||
|
return faqReq.getId() != null && faqReq.getId() > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FaqResponseBean convertToFaqResponseBean(FaqEntity entity) {
|
||||||
|
FaqResponseBean responseBean = new FaqResponseBean();
|
||||||
|
responseBean.setId(entity.getId());
|
||||||
|
responseBean.setUserId(entity.getUser().getId());
|
||||||
|
responseBean.setTitle(entity.getTitle());
|
||||||
|
responseBean.setValue(entity.getValue());
|
||||||
|
responseBean.setResponse(entity.getResponse());
|
||||||
|
responseBean.setResponseDate(entity.getResponseDate());
|
||||||
|
responseBean.setIsVisible(entity.getIsVisible());
|
||||||
|
responseBean.setCreatedDate(entity.getCreatedDate());
|
||||||
|
responseBean.setUpdatedDate(entity.getUpdatedDate());
|
||||||
|
return responseBean;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
|
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.LookUpDataReq;
|
||||||
import net.gepafin.tendermanagement.model.request.LookUpDataRequest;
|
import net.gepafin.tendermanagement.model.request.LookUpDataRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.LookUpDataResponseBean;
|
import net.gepafin.tendermanagement.model.response.LookUpDataResponseBean;
|
||||||
import net.gepafin.tendermanagement.repositories.LookUpDataRepository;
|
import net.gepafin.tendermanagement.repositories.LookUpDataRepository;
|
||||||
@@ -83,5 +84,22 @@ public class LookUpDataDao {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LookUpDataEntity getOrCreateLookUpDataEntity(LookUpDataReq req,
|
||||||
|
LookUpDataEntity.LookUpDataTypeEnum type) {
|
||||||
|
if (req.getLookUpDataId() == null || req.getLookUpDataId().equals(0l)) {
|
||||||
|
LookUpDataEntity newEntity = new LookUpDataEntity();
|
||||||
|
newEntity.setTitle(req.getTitle());
|
||||||
|
newEntity.setValue(req.getValue());
|
||||||
|
newEntity.setResponse(req.getResponse());
|
||||||
|
newEntity.setType(type.getValue());
|
||||||
|
validateLookUpDataEntity(newEntity);
|
||||||
|
return lookUpDataRepository.save(newEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
return lookUpDataRepository.findById(req.getLookUpDataId())
|
||||||
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
|
Translator.toLocale(GepafinConstant.LOOK_UP_DATA_NOT_VALID_MSG)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,22 +27,15 @@ public class FaqEntity extends BaseEntity {
|
|||||||
@Column(name = "IS_VISIBLE", nullable = false)
|
@Column(name = "IS_VISIBLE", nullable = false)
|
||||||
private Boolean isVisible;
|
private Boolean isVisible;
|
||||||
|
|
||||||
@Column(name = "QUESTION_SHORT", length = 255)
|
@Column(name = "TITLE", columnDefinition = "TEXT")
|
||||||
private String questionShort;
|
private String title;
|
||||||
|
|
||||||
@Column(name = "QUESTION", columnDefinition = "TEXT")
|
@Column(name = "VALUE", columnDefinition = "TEXT")
|
||||||
private String question;
|
private String value;
|
||||||
|
|
||||||
@Column(name = "RESPONSE_SHORT", length = 255)
|
|
||||||
private String responseShort;
|
|
||||||
|
|
||||||
@Column(name = "RESPONSE", columnDefinition = "TEXT")
|
@Column(name = "RESPONSE", columnDefinition = "TEXT")
|
||||||
private String response;
|
private String response;
|
||||||
|
|
||||||
@ManyToOne
|
|
||||||
@JoinColumn(name = "LOOKUP_DATA_ID")
|
|
||||||
private LookUpDataEntity lookupData;
|
|
||||||
|
|
||||||
@Column(name = "RESPONSE_DATE")
|
@Column(name = "RESPONSE_DATE")
|
||||||
private LocalDateTime responseDate;
|
private LocalDateTime responseDate;
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class LookUpDataEntity extends BaseEntity{
|
public class LookUpDataEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "TITLE", length = 255, nullable = true)
|
@Column(name = "TITLE", columnDefinition = "TEXT", nullable = true)
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
@Column(name = "TYPE", length = 255, nullable = false)
|
@Column(name = "TYPE", length = 255, nullable = false)
|
||||||
@@ -18,6 +18,9 @@ public class LookUpDataEntity extends BaseEntity{
|
|||||||
@Column(name = "VALUE", columnDefinition = "TEXT", nullable = true)
|
@Column(name = "VALUE", columnDefinition = "TEXT", nullable = true)
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
|
@Column(name = "RESPONSE", columnDefinition = "TEXT")
|
||||||
|
private String response;
|
||||||
|
|
||||||
public enum LookUpDataTypeEnum {
|
public enum LookUpDataTypeEnum {
|
||||||
CHECKLIST("CHECKLIST"),
|
CHECKLIST("CHECKLIST"),
|
||||||
AIMED_TO("AIMED_TO"),
|
AIMED_TO("AIMED_TO"),
|
||||||
|
|||||||
@@ -3,12 +3,8 @@ package net.gepafin.tendermanagement.model.request;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class FaqReq extends LookUpDataReq{
|
public class FaqReq extends LookUpDataReq {
|
||||||
|
|
||||||
private Long id;
|
private Boolean isVisible;
|
||||||
private Boolean isVisible;
|
private String response;
|
||||||
private String questionShort;
|
|
||||||
private String question;
|
|
||||||
private String responseShort;
|
|
||||||
private String response;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,5 +9,9 @@ public class LookUpDataReq {
|
|||||||
|
|
||||||
private Long lookUpDataId;
|
private Long lookUpDataId;
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
|
private String response;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,24 +11,14 @@ public class FaqResponseBean extends BaseBean {
|
|||||||
|
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
private Boolean isVisible;
|
private String title;
|
||||||
|
|
||||||
private String questionShort;
|
private String value;
|
||||||
|
|
||||||
private String question;
|
|
||||||
|
|
||||||
private String responseShort;
|
|
||||||
|
|
||||||
private String response;
|
private String response;
|
||||||
|
|
||||||
private LocalDateTime responseDate;
|
private LocalDateTime responseDate;
|
||||||
|
|
||||||
private Long lookUpDataId;
|
private Boolean isVisible;
|
||||||
|
|
||||||
private String title;
|
|
||||||
|
|
||||||
private String value;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,5 +18,6 @@ public interface FaqRepository extends JpaRepository<FaqEntity, Long> {
|
|||||||
|
|
||||||
List<FaqEntity> findByCallIdAndIsDeletedFalse(Long callId);
|
List<FaqEntity> findByCallIdAndIsDeletedFalse(Long callId);
|
||||||
|
|
||||||
List<FaqEntity> findByCallIdAndLookupDataTypeAndIsDeletedFalse(Long callId, String type);
|
Optional<FaqEntity> findByIdAndCallIdAndIsDeletedFalse(Long id, Long callId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
package net.gepafin.tendermanagement.service;
|
package net.gepafin.tendermanagement.service;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import net.gepafin.tendermanagement.entities.CallEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.FaqEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.FaqReq;
|
import net.gepafin.tendermanagement.model.request.FaqReq;
|
||||||
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
||||||
|
|
||||||
@@ -12,4 +18,9 @@ public interface FaqService {
|
|||||||
FaqResponseBean updateFaq(HttpServletRequest request, Long id, FaqReq faqRequest);
|
FaqResponseBean updateFaq(HttpServletRequest request, Long id, FaqReq faqRequest);
|
||||||
|
|
||||||
void deleteFaq(HttpServletRequest request, Long id);
|
void deleteFaq(HttpServletRequest request, Long id);
|
||||||
|
|
||||||
|
FaqEntity createOrUpdateFaqEntity(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity,
|
||||||
|
LookUpDataTypeEnum type);
|
||||||
|
|
||||||
|
List<FaqResponseBean> getFaqByCallId(Long id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.service;
|
|||||||
|
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.LookUpDataReq;
|
||||||
import net.gepafin.tendermanagement.model.request.LookUpDataRequest;
|
import net.gepafin.tendermanagement.model.request.LookUpDataRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.LookUpDataResponseBean;
|
import net.gepafin.tendermanagement.model.response.LookUpDataResponseBean;
|
||||||
|
|
||||||
@@ -21,4 +22,7 @@ public interface LookUpDataService {
|
|||||||
List<LookUpDataResponseBean> getLookUpDataByType(List<LookUpDataTypeEnum> type);
|
List<LookUpDataResponseBean> getLookUpDataByType(List<LookUpDataTypeEnum> type);
|
||||||
|
|
||||||
LookUpDataEntity validateLookUpData(Long lookUpDataId);
|
LookUpDataEntity validateLookUpData(Long lookUpDataId);
|
||||||
|
|
||||||
|
LookUpDataEntity getOrCreateLookUpDataEntity(LookUpDataReq req,
|
||||||
|
LookUpDataEntity.LookUpDataTypeEnum type);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,19 @@
|
|||||||
package net.gepafin.tendermanagement.service.impl;
|
package net.gepafin.tendermanagement.service.impl;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.jwt.TokenProvider;
|
|
||||||
import net.gepafin.tendermanagement.dao.FaqDao;
|
import net.gepafin.tendermanagement.dao.FaqDao;
|
||||||
|
import net.gepafin.tendermanagement.entities.CallEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.FaqEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.FaqReq;
|
import net.gepafin.tendermanagement.model.request.FaqReq;
|
||||||
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
||||||
import net.gepafin.tendermanagement.service.FaqService;
|
import net.gepafin.tendermanagement.service.FaqService;
|
||||||
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class FaqServiceImpl implements FaqService {
|
public class FaqServiceImpl implements FaqService {
|
||||||
@@ -17,12 +22,12 @@ public class FaqServiceImpl implements FaqService {
|
|||||||
private FaqDao faqDao;
|
private FaqDao faqDao;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TokenProvider tokenProvider;
|
private Validator validator;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FaqResponseBean createFaq(HttpServletRequest request,Long callId, FaqReq faqRequest) {
|
public FaqResponseBean createFaq(HttpServletRequest request,Long callId, FaqReq faqRequest) {
|
||||||
Map<String, Object> userInfo= tokenProvider.getUserInfoAndUserIdFromToken(request);
|
UserEntity userEntity = validator.validateUser(request);
|
||||||
return faqDao.createFaq(faqRequest,Long.parseLong(userInfo.get("userId").toString()),callId);
|
return faqDao.createFaq(faqRequest, userEntity,callId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -32,13 +37,24 @@ public class FaqServiceImpl implements FaqService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FaqResponseBean updateFaq(HttpServletRequest request, Long id, FaqReq faqRequest) {
|
public FaqResponseBean updateFaq(HttpServletRequest request, Long id, FaqReq faqRequest) {
|
||||||
Map<String, Object> userInfo= tokenProvider.getUserInfoAndUserIdFromToken(request);
|
UserEntity userEntity = validator.validateUser(request);
|
||||||
return faqDao.updateFaq(id, faqRequest,Long.parseLong(userInfo.get("userId").toString()));
|
return faqDao.updateFaq(id, faqRequest, userEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteFaq(HttpServletRequest request, Long id) {
|
public void deleteFaq(HttpServletRequest request, Long id) {
|
||||||
faqDao.deleteFaq(id);
|
faqDao.deleteFaq(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FaqEntity createOrUpdateFaqEntity(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity,
|
||||||
|
LookUpDataTypeEnum type) {
|
||||||
|
return faqDao.createOrUpdateFaqEntity(faqReq, callEntity, userEntity, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FaqResponseBean> getFaqByCallId(Long callId) {
|
||||||
|
return faqDao.getFaqByCallId(callId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package net.gepafin.tendermanagement.service.impl;
|
|||||||
import net.gepafin.tendermanagement.dao.LookUpDataDao;
|
import net.gepafin.tendermanagement.dao.LookUpDataDao;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.LookUpDataReq;
|
||||||
import net.gepafin.tendermanagement.model.request.LookUpDataRequest;
|
import net.gepafin.tendermanagement.model.request.LookUpDataRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.LookUpDataResponseBean;
|
import net.gepafin.tendermanagement.model.response.LookUpDataResponseBean;
|
||||||
import net.gepafin.tendermanagement.service.LookUpDataService;
|
import net.gepafin.tendermanagement.service.LookUpDataService;
|
||||||
@@ -49,4 +50,10 @@ public class LookUpDataServiceImpl implements LookUpDataService {
|
|||||||
public LookUpDataEntity validateLookUpData(Long lookUpDataId) {
|
public LookUpDataEntity validateLookUpData(Long lookUpDataId) {
|
||||||
return lookUpDataDao.validateLookUpData(lookUpDataId);
|
return lookUpDataDao.validateLookUpData(lookUpDataId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LookUpDataEntity getOrCreateLookUpDataEntity(LookUpDataReq req,
|
||||||
|
LookUpDataEntity.LookUpDataTypeEnum type) {
|
||||||
|
return lookUpDataDao.getOrCreateLookUpDataEntity(req, type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ package net.gepafin.tendermanagement.util;
|
|||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.jwt.TokenProvider;
|
import net.gepafin.tendermanagement.config.jwt.TokenProvider;
|
||||||
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
|
import net.gepafin.tendermanagement.service.UserService;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -13,8 +16,16 @@ public class Validator {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private TokenProvider tokenProvider;
|
private TokenProvider tokenProvider;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
public Map<String, Object> getUserInfoFromToken(HttpServletRequest request) {
|
public Map<String, Object> getUserInfoFromToken(HttpServletRequest request) {
|
||||||
return tokenProvider.getUserInfoAndUserIdFromToken(request);
|
return tokenProvider.getUserInfoAndUserIdFromToken(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UserEntity validateUser(HttpServletRequest request) {
|
||||||
|
Map<String, Object> userInfo= tokenProvider.getUserInfoAndUserIdFromToken(request);
|
||||||
|
return userService.validateUser(Long.parseLong(userInfo.get("userId").toString()));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -548,5 +548,21 @@
|
|||||||
path="db/dump/update_form_field_data_04_09_2024.sql" />
|
path="db/dump/update_form_field_data_04_09_2024.sql" />
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="04-09-2024_1" author="Rajesh Khore">
|
||||||
|
<dropColumn tableName="FAQ" columnName="question_short" />
|
||||||
|
<dropColumn tableName="FAQ" columnName="question" />
|
||||||
|
<dropColumn tableName="FAQ" columnName="response_short" />
|
||||||
|
<dropColumn tableName="FAQ" columnName="lookup_data_id" />
|
||||||
|
<addColumn tableName="FAQ">
|
||||||
|
<column name="title" type="TEXT"/>
|
||||||
|
<column name="value" type="TEXT"/>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="LOOKUP_DATA">
|
||||||
|
<column name="response" type="TEXT"/>
|
||||||
|
</addColumn>
|
||||||
|
<modifyDataType tableName="LOOKUP_DATA" columnName="title" newDataType="TEXT"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
Reference in New Issue
Block a user