153 lines
8.9 KiB
Java
153 lines
8.9 KiB
Java
package net.gepafin.tendermanagement.service.impl;
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import net.gepafin.tendermanagement.config.Translator;
|
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
|
import net.gepafin.tendermanagement.dao.ApplicationAmendmentRequestDao;
|
|
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
|
import net.gepafin.tendermanagement.entities.ApplicationEvaluationEntity;
|
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
|
import net.gepafin.tendermanagement.enums.ApplicationAmendmentRequestEnum;
|
|
import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequest;
|
|
import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequestBean;
|
|
import net.gepafin.tendermanagement.model.request.CloseAmendmentRequest;
|
|
import net.gepafin.tendermanagement.model.response.ApplicationAmendmentRequestResponse;
|
|
import net.gepafin.tendermanagement.repositories.ApplicationAmendmentRequestRepository;
|
|
import net.gepafin.tendermanagement.repositories.ApplicationEvaluationRepository;
|
|
import net.gepafin.tendermanagement.service.ApplicationAmendmentRequestService;
|
|
import net.gepafin.tendermanagement.util.Validator;
|
|
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.stereotype.Service;
|
|
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
|
|
@Service
|
|
public class ApplicationAmendmentRequestServiceImpl implements ApplicationAmendmentRequestService {
|
|
|
|
@Autowired
|
|
private Validator validator;
|
|
|
|
@Autowired
|
|
private ApplicationAmendmentRequestDao applicationAmendmentRequestDao;
|
|
@Autowired
|
|
private ApplicationAmendmentRequestRepository applicationAmendmentRequestRepository;
|
|
@Autowired
|
|
private ApplicationEvaluationRepository applicationEvaluationRepository;
|
|
|
|
@Override
|
|
public ApplicationAmendmentRequestResponse getApplicationDataForAmendment(HttpServletRequest request, Long applicationEvaluationId) {
|
|
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(applicationEvaluationId);
|
|
entityOptional.ifPresent(applicationEvaluationEntity -> validator.validatePreInstructor(request, applicationEvaluationEntity.getUserId()));
|
|
return applicationAmendmentRequestDao.getApplicationDataForAmendment(applicationEvaluationId);
|
|
}
|
|
|
|
@Override
|
|
public ApplicationAmendmentRequestResponse createApplicationAmendmentRequest(HttpServletRequest request, Long applicationEvaluationId , ApplicationAmendmentRequest applicationAmendmentRequest) {
|
|
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(applicationEvaluationId);
|
|
entityOptional.ifPresent(applicationEvaluationEntity -> validator.validatePreInstructor(request, applicationEvaluationEntity.getUserId()));
|
|
return applicationAmendmentRequestDao.createApplicationAmendmentRequest(applicationEvaluationId,applicationAmendmentRequest);
|
|
}
|
|
|
|
@Override
|
|
public void deleteApplicationAmendmentRequest(HttpServletRequest request, Long id) {
|
|
ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(id)
|
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
|
Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG)));
|
|
|
|
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId());
|
|
if (entityOptional.isPresent()) {
|
|
UserEntity user = validator.validatePreInstructor(request, entityOptional.get().getUserId());
|
|
|
|
applicationAmendmentRequestDao.deleteById(id);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public ApplicationAmendmentRequestResponse getApplicationAmendmentRequestById(HttpServletRequest request,Long id) {
|
|
ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(id)
|
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
|
Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG)));
|
|
|
|
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId());
|
|
if (entityOptional.isPresent()) {
|
|
UserEntity user = validator.validatePreInstructor(request, entityOptional.get().getUserId());
|
|
}
|
|
return applicationAmendmentRequestDao.getApplicationAmendmentRequestById(id);
|
|
|
|
}
|
|
|
|
@Override
|
|
public List<ApplicationAmendmentRequestResponse> getAllApplicationAmendmentRequest(HttpServletRequest request,Long userId) {
|
|
UserEntity user = validator.validatePreInstructor(request, userId);
|
|
return applicationAmendmentRequestDao.getAllApplicationAmendmentRequest(request,userId);
|
|
}
|
|
|
|
@Override
|
|
public ApplicationAmendmentRequestResponse updateApplicationAmendment(HttpServletRequest request, Long id, ApplicationAmendmentRequestBean applicationAmendmentRequestBean) {
|
|
ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestDao.validateApplicationAmendmentRequest(id);
|
|
|
|
if (Boolean.FALSE.equals(validator.checkIsBeneficiary())) {
|
|
validator.validatePreInstructor(request, amendment.getApplicationEvaluationEntity().getUserId());
|
|
} else {
|
|
validator.validateUserId(request, amendment.getApplicationEvaluationEntity().getAssignedApplicationsEntity().getApplication().getUserId());
|
|
}
|
|
return applicationAmendmentRequestDao.updateApplicationAmendment(id,applicationAmendmentRequestBean);
|
|
}
|
|
|
|
@Override
|
|
public ApplicationAmendmentRequestEntity validateApplicationAmendmentRequest(Long applicationAmendmentId) {
|
|
|
|
return applicationAmendmentRequestDao.validateApplicationAmendmentRequest(applicationAmendmentId);
|
|
}
|
|
|
|
@Override
|
|
public List<ApplicationAmendmentRequestResponse> getAllAmendmentRequestByBeneficiaryId(HttpServletRequest request, Long beneficiaryUserId) {
|
|
UserEntity user= validator.validateUser(request);
|
|
return applicationAmendmentRequestDao.getAllAmendmentRequestByBeneficiaryId(beneficiaryUserId);
|
|
}
|
|
|
|
@Override
|
|
public ApplicationAmendmentRequestResponse closeAmendmentRequest(HttpServletRequest request, Long id, CloseAmendmentRequest closeAmendmentRequest) {
|
|
ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(id)
|
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
|
Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG)));
|
|
|
|
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId());
|
|
if (entityOptional.isPresent()) {
|
|
UserEntity user = validator.validatePreInstructor(request, entityOptional.get().getUserId());
|
|
}
|
|
return applicationAmendmentRequestDao.closeAmendmentRequest(id,closeAmendmentRequest);
|
|
}
|
|
|
|
@Override
|
|
public ApplicationAmendmentRequestResponse extendResponseDays(HttpServletRequest request, Long id, Long addedDays) {
|
|
UserEntity user= validator.validateUser(request);
|
|
return applicationAmendmentRequestDao.extendResponseDays(id, addedDays);
|
|
|
|
}
|
|
public List<ApplicationAmendmentRequestResponse> getAmendmentByApplicationId(HttpServletRequest request, Long applicationId,List<ApplicationAmendmentRequestEnum> statuses) {
|
|
return applicationAmendmentRequestDao.getAmendmentByApplicationId(request,applicationId,statuses);
|
|
}
|
|
@Override
|
|
public ApplicationAmendmentRequestResponse updateApplicationAmendmentStatus(HttpServletRequest request, Long applicationAmendmentId, ApplicationAmendmentRequestEnum status) {
|
|
return applicationAmendmentRequestDao.updateApplicationAmendmentStatus(applicationAmendmentId, status);
|
|
|
|
}
|
|
@Override
|
|
public void sendReminderEmail(HttpServletRequest request,Long amendmentId) {
|
|
ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(amendmentId)
|
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
|
Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG)));
|
|
|
|
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId());
|
|
if (entityOptional.isPresent()) {
|
|
UserEntity user = validator.validatePreInstructor(request, entityOptional.get().getUserId());
|
|
|
|
applicationAmendmentRequestDao.sendReminderEmail(amendmentId);
|
|
}
|
|
}
|
|
}
|