From f66ddf6e47894e89e47ce5a04b2c60f18006ae7d Mon Sep 17 00:00:00 2001 From: rajesh Date: Wed, 20 Nov 2024 14:40:32 +0530 Subject: [PATCH] updated code --- .../gepafin/tendermanagement/dao/CallDao.java | 102 +++++++++--------- .../gepafin/tendermanagement/dao/FaqDao.java | 20 ++-- .../tendermanagement/dao/LookUpDataDao.java | 9 +- .../model/request/UserActionRequest.java | 5 +- .../model/request/VersionHistoryRequest.java | 5 +- .../tendermanagement/util/LoggingUtil.java | 15 ++- .../web/rest/api/impl/CallApiController.java | 19 ++-- 7 files changed, 83 insertions(+), 92 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java b/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java index 6aa766e1..3a2dd9e4 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java @@ -109,9 +109,7 @@ public class CallDao { CallEntity callEntity = convertToCallEntity(createCallRequest, userEntity); updateFaq(createCallRequest.getFaq(), callEntity, userEntity,LookUpDataTypeEnum.FAQ); - - convertLookUpDataEntities(createCallRequest.getAimedTo(), callEntity, - LookUpDataTypeEnum.AIMED_TO); + updateLookUpData(callEntity, createCallRequest.getAimedTo(), LookUpDataTypeEnum.AIMED_TO); CallResponse createCallResponseBean = getCallResponseBean(callEntity); createCallResponseBean.setCurrentStep(GepafinConstant.STEP_1); @@ -152,7 +150,6 @@ public class CallDao { public CallEntity convertToCallEntity(CreateCallRequestStep1 createCallRequest, UserEntity userEntity) { CallEntity callEntity = new CallEntity(); - VersionHistoryRequest versionHistoryRequest = new VersionHistoryRequest(); // validateCallEntity(createCallRequest); RegionEntity region = regionRepository.findById(createCallRequest.getRegionId()) .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, @@ -189,11 +186,9 @@ public class CallDao { callEntity.setEndTime(DateTimeUtil.parseTime(createCallRequest.getEndTime())); callEntity.setHub(userEntity.getHub()); callEntity = callRepository.save(callEntity); - versionHistoryRequest.setOldData(null); - versionHistoryRequest.setNewData(callEntity); - versionHistoryRequest.setRequest(request); - versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT); - loggingUtil.addVersionHistory(versionHistoryRequest); + + /** This code is responsible for adding a version history log for the "Create Call" operation. **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(callEntity).build()); return callEntity; } @@ -211,15 +206,7 @@ public class CallDao { List evaluationCriteriaEntities = criteriaReqList.stream() .map(req -> convertToEvaluationCriteriaEntity(req, callEntity, type)).collect(Collectors.toList()); - List data = evaluationCriteriaRepository.saveAll(evaluationCriteriaEntities); - data.forEach(entity -> { - VersionHistoryRequest versionHistoryRequest = new VersionHistoryRequest(); - versionHistoryRequest.setOldData(null); - versionHistoryRequest.setNewData(entity); - versionHistoryRequest.setRequest(request); - versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT); - loggingUtil.addVersionHistory(versionHistoryRequest); - }); + return evaluationCriteriaEntities; } @@ -237,22 +224,31 @@ public class CallDao { private EvaluationCriteriaEntity convertToEvaluationCriteriaEntity(EvaluationCriteriaReq criteriaReq, CallEntity callEntity, LookUpDataTypeEnum type) { EvaluationCriteriaEntity criteriaEntity = null; + EvaluationCriteriaEntity oldCriteriaEntity = null; + VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT; LookUpDataEntity lookupDataEntity = lookUpDataService.getOrCreateLookUpDataEntity(criteriaReq, type); if (criteriaReq.getId() != null && criteriaReq.getId() > 0) { criteriaEntity = evaluationCriteriaRepository.findById(criteriaReq.getId()) .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND))); + oldCriteriaEntity = Utils.getClonedEntityForData(oldCriteriaEntity); + actionType = VersionActionTypeEnum.UPDATE; } else { criteriaEntity = new EvaluationCriteriaEntity(); criteriaEntity.setCall(callEntity); criteriaEntity.setLookupData(lookupDataEntity); criteriaEntity.setScore(0L); criteriaEntity.setIsDeleted(false); + actionType = VersionActionTypeEnum.INSERT; } setIfUpdated(criteriaEntity::getScore, criteriaEntity::setScore, criteriaReq.getScore()); if (Boolean.FALSE.equals(criteriaEntity.getLookupData().getId().equals(lookupDataEntity.getId()))) { criteriaEntity.setLookupData(lookupDataEntity); } + criteriaEntity = evaluationCriteriaRepository.save(criteriaEntity) ; + + /** This code is responsible for adding a version history log for the "create or update evaluation criteria" operation **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(actionType).oldData(oldCriteriaEntity).newData(criteriaEntity).build()); return criteriaEntity; } @@ -402,38 +398,37 @@ public class CallDao { return createCallResponseBean; } - public List convertLookUpDataEntities(List lookUpData, CallEntity callEntity, - LookUpDataEntity.LookUpDataTypeEnum type) { - if(lookUpData == null) { - return null; - } - List lookUpDataEntities = lookUpData.stream() - .map(req -> lookUpDataService.getOrCreateLookUpDataEntity(req, type)).collect(Collectors.toList()); +// public List convertLookUpDataEntities(List lookUpData, CallEntity callEntity, +// LookUpDataEntity.LookUpDataTypeEnum type) { +// if(lookUpData == null) { +// return null; +// } +// List lookUpDataEntities = lookUpData.stream() +// .map(req -> lookUpDataService.getOrCreateLookUpDataEntity(req, type)).collect(Collectors.toList()); +// +// return createCallTargetAudienceCheckList(callEntity, lookUpDataEntities); +// } - return createCallTargetAudienceCheckList(callEntity, lookUpDataEntities); - } - - private List createCallTargetAudienceCheckList(CallEntity callEntity, - List lookUpDataEntities) { - List lookUpDataResponses = new ArrayList<>(); - VersionHistoryRequest versionHistoryRequest = new VersionHistoryRequest(); - for (LookUpDataEntity lookUpDataEntity : lookUpDataEntities) { - CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity = new CallTargetAudienceChecklistEntity(); - callTargetAudienceChecklistEntity.setIsValidated(false); - callTargetAudienceChecklistEntity.setLookupData(lookUpDataEntity); - callTargetAudienceChecklistEntity.setCall(callEntity); - callTargetAudienceChecklistEntity.setIsDeleted(false); - callTargetAudienceChecklistEntity = callTargetAudienceChecklistRepository - .save(callTargetAudienceChecklistEntity); - versionHistoryRequest.setOldData(null); - versionHistoryRequest.setNewData(callTargetAudienceChecklistEntity); - versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT); - versionHistoryRequest.setRequest(request); - loggingUtil.addVersionHistory(versionHistoryRequest); - lookUpDataResponses.add(convertToLookUpDataResponseBean(callTargetAudienceChecklistEntity)); - } - return lookUpDataResponses; - } +// private List createCallTargetAudienceCheckList(CallEntity callEntity, +// List lookUpDataEntities) { +// List lookUpDataResponses = new ArrayList<>(); +// for (LookUpDataEntity lookUpDataEntity : lookUpDataEntities) { +// CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity = new CallTargetAudienceChecklistEntity(); +// callTargetAudienceChecklistEntity.setIsValidated(false); +// callTargetAudienceChecklistEntity.setLookupData(lookUpDataEntity); +// callTargetAudienceChecklistEntity.setCall(callEntity); +// callTargetAudienceChecklistEntity.setIsDeleted(false); +// callTargetAudienceChecklistEntity = callTargetAudienceChecklistRepository +// .save(callTargetAudienceChecklistEntity); +// versionHistoryRequest.setOldData(null); +// versionHistoryRequest.setNewData(callTargetAudienceChecklistEntity); +// versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT); +// versionHistoryRequest.setRequest(request); +// loggingUtil.addVersionHistory(versionHistoryRequest); +// lookUpDataResponses.add(convertToLookUpDataResponseBean(callTargetAudienceChecklistEntity)); +// } +// return lookUpDataResponses; +// } public LookUpDataResponse convertToLookUpDataResponseBean( CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity) { @@ -604,6 +599,8 @@ public class CallDao { private void createOrUpdateCallTargetAudienceChecklist(LookUpDataReq lookUpDataReq, CallEntity callEntity, LookUpDataTypeEnum type) { CallTargetAudienceChecklistEntity checklistEntity = null; + CallTargetAudienceChecklistEntity oldChecklistEntity = null; + VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT; LookUpDataEntity lookupDataEntity = lookUpDataService.getOrCreateLookUpDataEntity(lookUpDataReq, type); if (lookUpDataReq.getId() != null && lookUpDataReq.getId() > 0) { checklistEntity = callTargetAudienceChecklistRepository.findById(lookUpDataReq.getId()) @@ -613,15 +610,20 @@ public class CallDao { if (Boolean.FALSE.equals(checklistEntity.getLookupData().getId().equals(lookupDataEntity.getId()))) { checklistEntity.setLookupData(lookupDataEntity); } + actionType = VersionActionTypeEnum.UPDATE; } else { checklistEntity = new CallTargetAudienceChecklistEntity(); checklistEntity.setCall(callEntity); checklistEntity.setLookupData(lookupDataEntity); checklistEntity.setIsValidated(false); checklistEntity.setIsDeleted(false); + actionType = VersionActionTypeEnum.INSERT; } - callTargetAudienceChecklistRepository.save(checklistEntity); + checklistEntity = callTargetAudienceChecklistRepository.save(checklistEntity); + + /** This code is responsible for adding a version history log for the "create or update aimedTo Checklist" operation **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(actionType).oldData(oldChecklistEntity).newData(checklistEntity).build()); } private void softDeleteCallTargetAudienceChecklist( diff --git a/src/main/java/net/gepafin/tendermanagement/dao/FaqDao.java b/src/main/java/net/gepafin/tendermanagement/dao/FaqDao.java index fb6050da..ecfb77bd 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/FaqDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/FaqDao.java @@ -103,13 +103,14 @@ public class FaqDao { public FaqEntity createOrUpdateFaqEntity(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity, LookUpDataTypeEnum type) { FaqEntity faqEntity = null; - FaqEntity oldFaqData = null; - VersionHistoryRequest versionHistoryRequest = new VersionHistoryRequest(); + FaqEntity oldFaqEntity = null; + VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT; if (isExistingFaq(faqReq)) { faqEntity = faqRepository.findByIdAndCallIdAndIsDeletedFalse(faqReq.getId(), callEntity.getId()) .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND))); - oldFaqData = Utils.getClonedEntityForData(faqEntity); + oldFaqEntity = Utils.getClonedEntityForData(faqEntity); + actionType = VersionActionTypeEnum.UPDATE; } else { if (Boolean.FALSE.equals(userEntity.getRoleEntity().getRoleType().equals(RoleStatusEnum.ROLE_BENEFICIARY.getValue()))) { lookUpDataService.getOrCreateLookUpDataEntity(faqReq, type); @@ -119,6 +120,7 @@ public class FaqDao { faqEntity.setUser(userEntity); faqEntity.setIsVisible(false); faqEntity.setIsDeleted(false); + actionType = VersionActionTypeEnum.INSERT; } if (faqReq.getResponse() != null && (faqEntity.getResponse() == null || Boolean.FALSE.equals(faqReq.getResponse().equals(faqEntity.getResponse())))) { @@ -128,13 +130,11 @@ public class FaqDao { setIfUpdated(faqEntity::getValue, faqEntity::setValue, faqReq.getValue()); setIfUpdated(faqEntity::getResponse, faqEntity::setResponse, faqReq.getResponse()); setIfUpdated(faqEntity::getIsVisible, faqEntity::setIsVisible, faqReq.getIsVisible()); - FaqEntity newFaqData = faqRepository.save(faqEntity); - versionHistoryRequest.setOldData(oldFaqData); - versionHistoryRequest.setNewData(newFaqData); - versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT); - versionHistoryRequest.setRequest(request); - loggingUtil.addVersionHistory(versionHistoryRequest); - return newFaqData; + faqEntity = faqRepository.save(faqEntity); + + /** This code is responsible for adding a version history log for the "create or update faq" operation **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(actionType).oldData(oldFaqEntity).newData(faqEntity).build()); + return faqEntity; } private boolean isExistingFaq(FaqReq faqReq) { diff --git a/src/main/java/net/gepafin/tendermanagement/dao/LookUpDataDao.java b/src/main/java/net/gepafin/tendermanagement/dao/LookUpDataDao.java index f9a7f4e2..b1faf04c 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/LookUpDataDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/LookUpDataDao.java @@ -104,18 +104,15 @@ public class LookUpDataDao { if (req.getLookUpDataId() == null || req.getLookUpDataId().equals(0L)) { LookUpDataEntity newEntity = new LookUpDataEntity(); - VersionHistoryRequest versionHistoryRequest = new VersionHistoryRequest(); newEntity.setTitle(req.getTitle()); newEntity.setValue(req.getValue()); newEntity.setResponse(req.getResponse()); newEntity.setType(type.getValue()); validateLookUpDataEntity(newEntity); LookUpDataEntity lookUpDataEntity = lookUpDataRepository.save(newEntity); - versionHistoryRequest.setOldData(null); - versionHistoryRequest.setNewData(lookUpDataEntity); - versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT); - versionHistoryRequest.setRequest(request); - loggingUtil.addVersionHistory(versionHistoryRequest); + + /** This code is responsible for adding a version history log for the "create or update lookup data" operation **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(lookUpDataEntity).build()); return lookUpDataEntity; } diff --git a/src/main/java/net/gepafin/tendermanagement/model/request/UserActionRequest.java b/src/main/java/net/gepafin/tendermanagement/model/request/UserActionRequest.java index 0b28f70b..bdf6249b 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/request/UserActionRequest.java +++ b/src/main/java/net/gepafin/tendermanagement/model/request/UserActionRequest.java @@ -1,12 +1,15 @@ package net.gepafin.tendermanagement.model.request; import jakarta.servlet.http.HttpServletRequest; +import lombok.Builder; import lombok.Data; +import net.gepafin.tendermanagement.enums.UserActionContextEnum; import net.gepafin.tendermanagement.enums.UserActionLogsEnum; @Data +@Builder public class UserActionRequest { private HttpServletRequest request; private UserActionLogsEnum actionType; - private String actionContext; + private UserActionContextEnum actionContext; } diff --git a/src/main/java/net/gepafin/tendermanagement/model/request/VersionHistoryRequest.java b/src/main/java/net/gepafin/tendermanagement/model/request/VersionHistoryRequest.java index c09bad29..c5e817d4 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/request/VersionHistoryRequest.java +++ b/src/main/java/net/gepafin/tendermanagement/model/request/VersionHistoryRequest.java @@ -1,17 +1,16 @@ package net.gepafin.tendermanagement.model.request; import jakarta.servlet.http.HttpServletRequest; +import lombok.Builder; import lombok.Data; import net.gepafin.tendermanagement.entities.BaseEntity; import net.gepafin.tendermanagement.enums.VersionActionTypeEnum; @Data +@Builder public class VersionHistoryRequest { private BaseEntity oldData; private BaseEntity newData; private VersionActionTypeEnum actionType; private HttpServletRequest request; - private Long userActionId; - private Long recordId; - private String tableName; } diff --git a/src/main/java/net/gepafin/tendermanagement/util/LoggingUtil.java b/src/main/java/net/gepafin/tendermanagement/util/LoggingUtil.java index 2fa50b3a..ecab52e4 100644 --- a/src/main/java/net/gepafin/tendermanagement/util/LoggingUtil.java +++ b/src/main/java/net/gepafin/tendermanagement/util/LoggingUtil.java @@ -55,7 +55,7 @@ public class LoggingUtil { } userAction.setActionType(userActionRequest.getActionType().getValue()); userAction.setUserId(userId); - userAction.setActionContext(userActionRequest.getActionContext()); + userAction.setActionContext(userActionRequest.getActionContext().getValue()); userAction.setMethodType(userActionRequest.getRequest().getMethod()); userAction.setHubId(userEntity.getHub().getId()); userAction.setUrl(userActionRequest.getRequest().getRequestURI()); @@ -100,7 +100,7 @@ public class LoggingUtil { // return userAction; // } - public void logVersionHistory(VersionHistoryRequest versionHistoryRequest) { + public void logVersionHistory(VersionHistoryRequest versionHistoryRequest, Long recordId, Long userActionId, String tableName) { try { VersionHistoryEntity history = new VersionHistoryEntity(); String token = tokenProvider.extractTokenFromRequest(versionHistoryRequest.getRequest()); @@ -108,12 +108,12 @@ public class LoggingUtil { Long userId = claims.get(GepafinConstant.USER_ID, Long.class); String oldData = Utils.convertEntityToJsonForLogging(versionHistoryRequest.getOldData()); String newData = Utils.convertEntityToJsonForLogging(versionHistoryRequest.getNewData()); - history.setUserActionId(versionHistoryRequest.getUserActionId()); + history.setUserActionId(userActionId); history.setActionType(versionHistoryRequest.getActionType().getValue()); history.setOldData(oldData); history.setNewData(newData); - history.setRecordId(versionHistoryRequest.getRecordId()); - history.setTableName(versionHistoryRequest.getTableName()); + history.setRecordId(recordId); + history.setTableName(tableName); history.setUserId(userId); versionHistoryRepository.save(history); } catch (Exception e) { @@ -138,10 +138,7 @@ public class LoggingUtil { Long userActionId = (Long) versionHistoryRequest.getRequest().getAttribute(GepafinConstant.USER_ACTION_ID); Long recordId = versionHistoryRequest.getNewData().getId(); String tableName = getTableName(versionHistoryRequest.getNewData().getClass()); - versionHistoryRequest.setRecordId(recordId); - versionHistoryRequest.setUserActionId(userActionId); - versionHistoryRequest.setTableName(tableName); - logVersionHistory(versionHistoryRequest); + logVersionHistory(versionHistoryRequest, recordId, userActionId, tableName); } catch (Exception e) { log.error("Error adding version history: {}", e.getMessage(), e); } diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CallApiController.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CallApiController.java index 40b3679f..5bd63df2 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CallApiController.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CallApiController.java @@ -42,25 +42,20 @@ public class CallApiController implements CallApi { @Autowired private LoggingUtil loggingUtil; - @Autowired - private UserActionsRepository userActionsRepository; - @Override - @Transactional(rollbackFor = Exception.class) public ResponseEntity> createCallStep1(HttpServletRequest request, CreateCallRequestStep1 createCallRequest) { - - UserActionRequest userActionRequest = new UserActionRequest(); - userActionRequest.setRequest(request); - userActionRequest.setActionType(UserActionLogsEnum.INSERT); - userActionRequest.setActionContext(UserActionContextEnum.CREATE_CALL.getValue()); - loggingUtil.logUserAction(userActionRequest); + + /** This code is responsible for creating user action logs for the "Create Call" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT) + .actionContext(UserActionContextEnum.CREATE_CALL).actionContext(UserActionContextEnum.CREATE_CALL) + .build()); + CallResponse createCallResponseBean = callService.createCallStep1(request, createCallRequest); return ResponseEntity.status(HttpStatus.CREATED) .body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_CREATED_SUCCESSFULLY_MSG))); } @Override - @Transactional(rollbackFor=Exception.class) public ResponseEntity> createCallStep2(HttpServletRequest request, Long callId, CreateCallRequestStep2 createCallRequest) { CallResponse createCallResponseBean = callService.createCallStep2(request, callId, createCallRequest); return ResponseEntity.status(HttpStatus.CREATED) @@ -68,7 +63,6 @@ public class CallApiController implements CallApi { } @Override - @Transactional(rollbackFor=Exception.class) public ResponseEntity> updateCallStep1(HttpServletRequest request, Long callId, UpdateCallRequestStep1 updateCallRequest) { CallResponse createCallResponseBean = callService.updateCallStep1(request, callId, updateCallRequest); return ResponseEntity.status(HttpStatus.CREATED) @@ -83,7 +77,6 @@ public class CallApiController implements CallApi { } @Override - @Transactional(readOnly = true) public ResponseEntity>> getAllCalls(HttpServletRequest request,Long companyId) { List calls = callService.getAllCalls(request,companyId);