From 8795af44ce4606f121a24f1ec2f11ef8af793f4e Mon Sep 17 00:00:00 2001 From: nisha Date: Tue, 18 Feb 2025 12:35:29 +0530 Subject: [PATCH] Done ticket GEPAFINBE-170 --- .../tendermanagement/dao/ApplicationDao.java | 8 +++++++- .../tendermanagement/dao/FlowFormDao.java | 2 +- .../repositories/ApplicationRepository.java | 2 ++ .../service/ApplicationService.java | 3 ++- .../service/impl/ApplicationServiceImpl.java | 18 ++++++++++++------ .../web/rest/api/ApplicationApi.java | 1 + .../api/impl/ApplicationApiController.java | 4 ++-- 7 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index 18e522dc..a8e1ca8d 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -1720,5 +1720,11 @@ public class ApplicationDao { // Step 4: Evaluate the mathematical expression return Utils.evaluateExpression(expression); } - + public ApplicationEntity validateApplicationWithCompany(Long id,Long companyId) { + ApplicationEntity application=applicationRepository.findByIdAndCompanyIdAndIsDeletedFalse(id,companyId); + if (application==null){ + throw new CustomValidationException(Status.VALIDATION_ERROR,Translator.toLocale(GepafinConstant.PERMISSION_DENIED)); + } + return application; + } } diff --git a/src/main/java/net/gepafin/tendermanagement/dao/FlowFormDao.java b/src/main/java/net/gepafin/tendermanagement/dao/FlowFormDao.java index 404ec854..2287850d 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/FlowFormDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/FlowFormDao.java @@ -248,7 +248,7 @@ public class FlowFormDao { // // return applicationFormEntities.isEmpty() ? null : applicationFormEntities.get(0).getForm().getId(); // } - public NextOrPreviousFormResponse getNextOrPreviousForm(ApplicationEntity applicationEntity, Long formId, + public NextOrPreviousFormResponse getNextOrPreviousForm(ApplicationEntity applicationEntity,Long companyId, Long formId, FormActionEnum action) { Long calculatedFormId = null; FormEntity formEntity = null; diff --git a/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java b/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java index 5ed76d55..6eba956e 100644 --- a/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java +++ b/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java @@ -162,4 +162,6 @@ public interface ApplicationRepository extends JpaRepository findByUserIdAndUserWithCompany_IdAndCall_IdAndIsDeletedFalseAndStatusNot( Long userId, Long userWithCompanyId, Long callId, String status ); + + ApplicationEntity findByIdAndCompanyIdAndIsDeletedFalse(Long id,Long companyId); } diff --git a/src/main/java/net/gepafin/tendermanagement/service/ApplicationService.java b/src/main/java/net/gepafin/tendermanagement/service/ApplicationService.java index 24935ca9..4565668c 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/ApplicationService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/ApplicationService.java @@ -29,7 +29,7 @@ public interface ApplicationService { public ApplicationResponse createApplication(HttpServletRequest request, Long companyId, ApplicationRequest applicationRequest, Long callId); - public NextOrPreviousFormResponse getNextOrPreviousForm(HttpServletRequest request, Long applicationId, Long formId, FormActionEnum action); + public NextOrPreviousFormResponse getNextOrPreviousForm(HttpServletRequest request, Long applicationId,Long companyId, Long formId, FormActionEnum action); public ApplicationResponse updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status); @@ -45,4 +45,5 @@ public interface ApplicationService { PageableResponseBean> getAllApplicationByPagination(HttpServletRequest request, Long callId, Long companyId, ApplicationPageableRequestBean applicationPageableRequestBean); + public ApplicationEntity validateApplicationWithCompany(Long applicationId,Long companyId); } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java index c5d937a2..77887539 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java @@ -72,13 +72,14 @@ public class ApplicationServiceImpl implements ApplicationService { validator.validateUserWithCall(userEntity, callId); return applicationDao.createApplicationByCallId(companyEntity, applicationRequest, callId, userEntity); } - + @Override - public NextOrPreviousFormResponse getNextOrPreviousForm(HttpServletRequest request, Long applicationId, Long formId, - FormActionEnum action) { - ApplicationEntity applicationEntity = validateApplication(applicationId); - validator.validateUserWithCompany(request, applicationEntity.getCompanyId()); - return flowFormDao.getNextOrPreviousForm(applicationEntity, formId, action); + public NextOrPreviousFormResponse getNextOrPreviousForm(HttpServletRequest request, Long applicationId, Long companyId, Long formId, + FormActionEnum action) { + validator.validateUserWithCompany(request, companyId); + validateApplication(applicationId); + ApplicationEntity applicationEntity = validateApplicationWithCompany(applicationId, companyId); + return flowFormDao.getNextOrPreviousForm(applicationEntity, companyId, formId, action); } @Override @@ -135,4 +136,9 @@ public class ApplicationServiceImpl implements ApplicationService { return applicationDao.getAllApplicationByPagination(userEntity,callId,companyId,applicationPageableRequestBean); } + @Override + @Transactional(rollbackFor = Exception.class) + public ApplicationEntity validateApplicationWithCompany(Long applicationId,Long companyId) { + return applicationDao.validateApplicationWithCompany(applicationId,companyId); + } } diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java index 6b98b3f3..bc2f3cb9 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java @@ -114,6 +114,7 @@ public interface ApplicationApi { @GetMapping(value = "/{applicationId}/form/next-previous", produces = "application/json") ResponseEntity> getNextOrPreviousForm(HttpServletRequest request, @Parameter(description = "The applicaltion id", required = true) @PathVariable("applicationId") Long applicationId, + @Parameter(description = "The company id", required = true) @RequestParam("companyId") Long companyId, @Parameter(description = "The form id", required = false) @RequestParam(value = "formId", required = false) Long formId, @RequestParam(value = "action", required = false) FormActionEnum action); diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationApiController.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationApiController.java index ccf386c7..a9c148bb 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationApiController.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationApiController.java @@ -116,13 +116,13 @@ public class ApplicationApiController implements ApplicationApi { } @Override - public ResponseEntity> getNextOrPreviousForm(HttpServletRequest request, Long applicationId, + public ResponseEntity> getNextOrPreviousForm(HttpServletRequest request, Long applicationId,Long companyId, Long formId, FormActionEnum action) { /** This code is responsible for creating user action logs for the "get next or previous form" operation. **/ loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_NEXT_PREVIOUS_FORM).build()); - NextOrPreviousFormResponse data = applicationService.getNextOrPreviousForm(request, applicationId, formId, action); + NextOrPreviousFormResponse data = applicationService.getNextOrPreviousForm(request, applicationId,companyId, formId, action); log.info("Get Next Or Previous Form "); return ResponseEntity.status(HttpStatus.OK) .body(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_SUCCESS_MSG)));