Files
bflows-bandi-be/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java
2024-09-16 13:51:53 +05:30

93 lines
3.8 KiB
Java

package net.gepafin.tendermanagement.service.impl;
import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.dao.ApplicationDao;
import net.gepafin.tendermanagement.dao.FlowFormDao;
import net.gepafin.tendermanagement.entities.ApplicationEntity;
import net.gepafin.tendermanagement.entities.FormEntity;
import net.gepafin.tendermanagement.entities.UserEntity;
import net.gepafin.tendermanagement.model.request.ApplicationRequest;
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
import net.gepafin.tendermanagement.enums.FormActionEnum;
import net.gepafin.tendermanagement.model.request.ApplicationRequestBean;
import net.gepafin.tendermanagement.model.response.ApplicationGetResponseBean;
import net.gepafin.tendermanagement.model.response.ApplicationResponse;
import net.gepafin.tendermanagement.model.response.ApplicationResponseBean;
import net.gepafin.tendermanagement.model.response.NextOrPreviousFormResponse;
import net.gepafin.tendermanagement.service.ApplicationService;
import net.gepafin.tendermanagement.service.FormService;
import net.gepafin.tendermanagement.util.Validator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class ApplicationServiceImpl implements ApplicationService {
@Autowired
private ApplicationDao applicationDao;
@Autowired
private FlowFormDao flowFormDao;
@Autowired
private FormService formService;
@Autowired
private Validator validator;
@Override
@Transactional(rollbackFor = Exception.class)
public ApplicationResponseBean createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long formId) {
UserEntity userEntity = validator.validateUser(request);
return applicationDao.createApplication(applicationRequestBean,userEntity,formId);
}
@Override
@Transactional(readOnly = true)
public ApplicationGetResponseBean getApplicationByFormId(HttpServletRequest request, Long applicationId,Long formId) {
UserEntity userEntity = validator.validateUser(request);
return applicationDao.getApplicationByFormId(applicationId,formId,userEntity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteApplication(HttpServletRequest request, Long applicationId) {
applicationDao.deleteById(applicationId);
}
@Override
public ApplicationEntity validateApplication(Long id) {
return applicationDao.validateApplication(id);
}
@Override
@Transactional(rollbackFor = Exception.class)
public ApplicationResponse createApplication(HttpServletRequest request, ApplicationRequest applicationRequest, Long callId) {
UserEntity userEntity = validator.validateUser(request);
return applicationDao.createApplicationByCallId(applicationRequest,callId,userEntity);
}
@Override
public NextOrPreviousFormResponse getNextOrPreviousForm(HttpServletRequest request, Long applicationId, Long formId,
FormActionEnum action) {
ApplicationEntity applicationEntity = validateApplication(applicationId);
return flowFormDao.getnextOrPreviousForm(applicationEntity, formId, action);
}
@Override
public void updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status) {
applicationDao.updateApplicationStatus(applicationId, status);
}
@Override
@Transactional(readOnly = true)
public List<ApplicationResponse> getAllApplications(HttpServletRequest request) {
UserEntity userEntity = validator.validateUser(request);
return applicationDao.getAllApplications(userEntity);
}
}