From ece73f5ca712f67801834385129127faa7ea69d5 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Thu, 30 Sep 2021 10:08:49 +0300 Subject: [PATCH] viewed pages cleanup --- .../ViewedPagesPersistenceService.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ViewedPagesPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ViewedPagesPersistenceService.java index 5d265e70e..a03eebe72 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ViewedPagesPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ViewedPagesPersistenceService.java @@ -17,13 +17,18 @@ public class ViewedPagesPersistenceService { private final ViewedPagesRepository viewedPagesRepository; private final FileRepository fileRepository; + @Transactional public void insertPage(String fileId, String userId, int page) { - - var viewedPage = new ViewedPageEntity(); - viewedPage.setViewedTime(OffsetDateTime.now()); - viewedPage.setId(new ViewedPageEntity.ViewedPageId(null, page, userId)); - viewedPage.setFile(fileRepository.getOne(fileId)); - viewedPagesRepository.save(viewedPage); + var id = new ViewedPageEntity.ViewedPageId(fileId, page, userId); + viewedPagesRepository.findById(id).ifPresentOrElse((viewedPage) -> { + viewedPage.setViewedTime(OffsetDateTime.now()); + }, () -> { + var viewedPage = new ViewedPageEntity(); + viewedPage.setViewedTime(OffsetDateTime.now()); + viewedPage.setId(new ViewedPageEntity.ViewedPageId(null, page, userId)); + viewedPage.setFile(fileRepository.getOne(fileId)); + viewedPagesRepository.save(viewedPage); + }); }