updated code

This commit is contained in:
harish
2024-10-14 16:10:15 +05:30
parent 6f54ed0fad
commit 9a14bd48f5
7 changed files with 37 additions and 25 deletions

View File

@@ -1,5 +1,6 @@
package net.gepafin.tendermanagement.dao; package net.gepafin.tendermanagement.dao;
import net.gepafin.tendermanagement.entities.CompanyEntity;
import net.gepafin.tendermanagement.entities.UserEntity; import net.gepafin.tendermanagement.entities.UserEntity;
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum; import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
import net.gepafin.tendermanagement.enums.CallStatusEnum; import net.gepafin.tendermanagement.enums.CallStatusEnum;
@@ -57,16 +58,18 @@ public class DashboardDao {
return widget1; return widget1;
} }
public BeneficiaryWidgetResponseBean getDashboardWidgetForBeneficiary(UserEntity userEntity) { public BeneficiaryWidgetResponseBean getDashboardWidgetForBeneficiary(UserEntity userEntity,
BeneficiaryWidgetResponseBean beneficiaryWidgetResponseBean = new BeneficiaryWidgetResponseBean(); CompanyEntity company) {
Long activeCalls = callRepository.countByStatus(CallStatusEnum.PUBLISH.getValue()); BeneficiaryWidgetResponseBean beneficiaryWidgetResponseBean = BeneficiaryWidgetResponseBean.builder()
if (Boolean.FALSE.equals(FieldValidator.isNullOrZero(activeCalls))) { .numberOfApplications(0L).numberOfCalls(0L).numberOfIntegratedDocuments(0L).build();
beneficiaryWidgetResponseBean.setActiveCalls(activeCalls); Long activeCalls = callRepository.countByStatus(CallStatusEnum.PUBLISH.getValue());
} if (activeCalls != null) {
Long activeApplication = applicationRepository.countSubmittedApplicationsByUserId(userEntity.getId()); beneficiaryWidgetResponseBean.setNumberOfCalls(activeCalls);
if (Boolean.FALSE.equals(FieldValidator.isNullOrZero(activeApplication))) { }
beneficiaryWidgetResponseBean.setActiveAppication(activeApplication); Long activeApplication = applicationRepository.countSubmittedApplicationsByUserId(userEntity.getId(), company.getId());
} if (activeApplication != null) {
return beneficiaryWidgetResponseBean; beneficiaryWidgetResponseBean.setNumberOfApplications(activeApplication);
} }
return beneficiaryWidgetResponseBean;
}
} }

View File

@@ -1,15 +1,17 @@
package net.gepafin.tendermanagement.model.response; package net.gepafin.tendermanagement.model.response;
import lombok.Builder;
import lombok.Data; import lombok.Data;
@Data @Data
@Builder
public class BeneficiaryWidgetResponseBean { public class BeneficiaryWidgetResponseBean {
private Long activeAppication; private Long numberOfApplications;
private Long activeCalls; private Long numberOfCalls;
private Long integratedDocument; private Long numberOfIntegratedDocuments;
} }

View File

@@ -29,8 +29,7 @@ public interface ApplicationRepository extends JpaRepository<ApplicationEntity,
public Optional<ApplicationEntity> findByIdAndUserIdAndCallIdAndIsDeletedFalse(Long applicationId, Long userId, public Optional<ApplicationEntity> findByIdAndUserIdAndCallIdAndIsDeletedFalse(Long applicationId, Long userId,
Long callId); Long callId);
@Query("SELECT COUNT(a) FROM ApplicationEntity a WHERE a.userId = :userId AND a.company.id = :companyId AND a.status = 'SUBMIT' ")
@Query("SELECT COUNT(a) FROM ApplicationEntity a WHERE a.userId = :userId AND a.status = 'SUBMIT' ") Long countSubmittedApplicationsByUserId(@Param("userId") Long userId, @Param("companyId") Long companyId);
Long countSubmittedApplicationsByUserId(@Param("userId") Long userId);
} }

View File

@@ -8,6 +8,6 @@ public interface DashboardService {
public SuperAdminWidgetResponseBean getDashboardWidgetForSuperAdmin(HttpServletRequest request); public SuperAdminWidgetResponseBean getDashboardWidgetForSuperAdmin(HttpServletRequest request);
public BeneficiaryWidgetResponseBean getDashboardWidgetForBeneficiary(HttpServletRequest request); public BeneficiaryWidgetResponseBean getDashboardWidgetForBeneficiary(HttpServletRequest request, Long companyId);
} }

View File

@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.service.impl;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.dao.DashboardDao; import net.gepafin.tendermanagement.dao.DashboardDao;
import net.gepafin.tendermanagement.entities.CompanyEntity;
import net.gepafin.tendermanagement.entities.UserEntity; import net.gepafin.tendermanagement.entities.UserEntity;
import net.gepafin.tendermanagement.model.response.BeneficiaryWidgetResponseBean; import net.gepafin.tendermanagement.model.response.BeneficiaryWidgetResponseBean;
import net.gepafin.tendermanagement.model.response.SuperAdminWidgetResponseBean; import net.gepafin.tendermanagement.model.response.SuperAdminWidgetResponseBean;
@@ -25,8 +26,9 @@ public class DashboardServiceImpl implements DashboardService {
} }
@Override @Override
public BeneficiaryWidgetResponseBean getDashboardWidgetForBeneficiary(HttpServletRequest request) { public BeneficiaryWidgetResponseBean getDashboardWidgetForBeneficiary(HttpServletRequest request, Long companyId) {
UserEntity userEntity=validator.validateUser(request); UserEntity userEntity=validator.validateUser(request);
return dashboardDao.getDashboardWidgetForBeneficiary(userEntity); CompanyEntity company = validator.validateUserWithCompany(request, companyId);
return dashboardDao.getDashboardWidgetForBeneficiary(userEntity, company);
} }
} }

View File

@@ -1,6 +1,7 @@
package net.gepafin.tendermanagement.web.rest.api; package net.gepafin.tendermanagement.web.rest.api;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject; import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -11,6 +12,8 @@ import net.gepafin.tendermanagement.model.util.Response;
import net.gepafin.tendermanagement.web.rest.api.errors.ErrorConstants; import net.gepafin.tendermanagement.web.rest.api.errors.ErrorConstants;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
public interface DashboardApi { public interface DashboardApi {
@@ -26,6 +29,7 @@ public interface DashboardApi {
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) }) @ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
@PostMapping(value = "", @PostMapping(value = "",
produces = { "application/json" }) produces = { "application/json" })
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')")
ResponseEntity<Response<SuperAdminWidgetResponseBean>> getDashboardWidgetForSuperAdmin(HttpServletRequest request); ResponseEntity<Response<SuperAdminWidgetResponseBean>> getDashboardWidgetForSuperAdmin(HttpServletRequest request);
@Operation(summary = "Api to get dashboard widget for beneficiary", @Operation(summary = "Api to get dashboard widget for beneficiary",
@@ -37,9 +41,11 @@ public interface DashboardApi {
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) })), @ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) })),
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = { @ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) }) @ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
@PostMapping(value = "/beneficiary", @PostMapping(value = "/beneficiary/company/{companyId}",
produces = { "application/json" }) produces = { "application/json" })
ResponseEntity<Response<BeneficiaryWidgetResponseBean>> getDashboardWidgetForBeneficiary(HttpServletRequest request); ResponseEntity<Response<BeneficiaryWidgetResponseBean>> getDashboardWidgetForBeneficiary(HttpServletRequest request,
@Parameter(description = "The company id", required = true) @PathVariable(value = "companyId", required = true) Long companyId);
} }

View File

@@ -29,8 +29,8 @@ public class DashboardApiController implements DashboardApi {
.body(new Response<>(widgetResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.DASHBOARD_WIDGET_FETCHED_SUCCESSFULLY))); } .body(new Response<>(widgetResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.DASHBOARD_WIDGET_FETCHED_SUCCESSFULLY))); }
@Override @Override
public ResponseEntity<Response<BeneficiaryWidgetResponseBean>> getDashboardWidgetForBeneficiary(HttpServletRequest request) { public ResponseEntity<Response<BeneficiaryWidgetResponseBean>> getDashboardWidgetForBeneficiary(HttpServletRequest request, Long companyId) {
BeneficiaryWidgetResponseBean widgetResponseBean= dashboardService.getDashboardWidgetForBeneficiary(request); BeneficiaryWidgetResponseBean widgetResponseBean= dashboardService.getDashboardWidgetForBeneficiary(request, companyId);
return ResponseEntity.status(HttpStatus.CREATED) return ResponseEntity.status(HttpStatus.CREATED)
.body(new Response<>(widgetResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.DASHBOARD_WIDGET_FETCHED_SUCCESSFULLY))); .body(new Response<>(widgetResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.DASHBOARD_WIDGET_FETCHED_SUCCESSFULLY)));
} }