Skip to content

Commit a5e10e2

Browse files
authored
Merge pull request #332 from HaRu-Developers/dev
deploy 4.6
2 parents ea26a86 + f713bff commit a5e10e2

File tree

3 files changed

+26
-8
lines changed

3 files changed

+26
-8
lines changed

src/main/java/com/haru/api/domain/lastOpened/service/UserDocumentLastOpenedServiceImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import lombok.RequiredArgsConstructor;
1313
import lombok.extern.slf4j.Slf4j;
1414
import org.springframework.stereotype.Service;
15+
import org.springframework.transaction.annotation.Propagation;
1516
import org.springframework.transaction.annotation.Transactional;
1617

1718
import java.time.LocalDateTime;
@@ -27,7 +28,7 @@ public class UserDocumentLastOpenedServiceImpl implements UserDocumentLastOpened
2728
private final UserRepository userRepository;
2829

2930
@Override
30-
@Transactional
31+
@Transactional(propagation = Propagation.REQUIRES_NEW)
3132
public void updateLastOpened(UserDocumentId userDocumentId, Long workspaceId, String title) {
3233

3334
UserDocumentLastOpened record = userDocumentLastOpenedRepository.findById(userDocumentId)

src/main/java/com/haru/api/domain/moodTracker/controller/MoodTrackerController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ public ApiResponse<MoodTrackerResponseDTO.QuestionResult> getMoodTrackerQuestion
194194

195195
@GetMapping("/{mood-tracker-hashed-Id}/reports")
196196
@Operation(
197-
summary = "분위기 트래커 설문 팀분위기 리포트 조회 API",
197+
summary = "분위기 트래커 설문 팀분위기 리포트 조회 API + last opend 처리",
198198
description = "# [v1.2 (2025-08-05)](https://www.notion.so/2295da7802c580ba8401c449389e8f78) 분위기 트래커(moodTrackerId)에 대한 팀 전체 리포트를 조회합니다."
199199
)
200200
@Parameters({
@@ -214,7 +214,7 @@ public ApiResponse<MoodTrackerResponseDTO.ReportResult> getMoodTrackerReportResu
214214

215215
@GetMapping("/{mood-tracker-hashed-Id}/responses")
216216
@Operation(
217-
summary = "분위기 트래커 설문 응답 조회 API",
217+
summary = "분위기 트래커 설문 응답 조회 API + last opend 처리",
218218
description = "# [v1.2 (2025-08-05)](https://www.notion.so/2265da7802c5808290adf17d8d4591a4) 분위기 트래커(moodTrackerId)에 대한 개별 응답 데이터를 조회합니다."
219219
)
220220
@Parameters({

src/main/java/com/haru/api/domain/moodTracker/service/MoodTrackerQueryServiceImpl.java

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.haru.api.domain.moodTracker.service;
22

3+
import com.haru.api.domain.lastOpened.entity.UserDocumentId;
4+
import com.haru.api.domain.lastOpened.service.UserDocumentLastOpenedService;
35
import com.haru.api.domain.moodTracker.converter.MoodTrackerConverter;
46
import com.haru.api.domain.moodTracker.dto.MoodTrackerResponseDTO;
57
import com.haru.api.domain.moodTracker.entity.MoodTracker;
@@ -11,7 +13,6 @@
1113
import com.haru.api.domain.userWorkspace.entity.enums.Auth;
1214
import com.haru.api.domain.userWorkspace.repository.UserWorkspaceRepository;
1315
import com.haru.api.domain.workspace.entity.Workspace;
14-
import com.haru.api.global.annotation.TrackLastOpened;
1516
import com.haru.api.global.apiPayload.code.status.ErrorStatus;
1617
import com.haru.api.global.apiPayload.exception.handler.MoodTrackerHandler;
1718
import com.haru.api.global.apiPayload.exception.handler.UserWorkspaceHandler;
@@ -37,6 +38,8 @@ public class MoodTrackerQueryServiceImpl implements MoodTrackerQueryService {
3738

3839
private final SurveyQuestionRepository surveyQuestionRepository;
3940

41+
private final UserDocumentLastOpenedService userDocumentLastOpenedService;
42+
4043
@Override
4144
public MoodTrackerResponseDTO.PreviewList getPreviewList(User user, Workspace workspace) {
4245

@@ -85,10 +88,17 @@ public MoodTrackerResponseDTO.QuestionResult getQuestionResult(Long moodTrackerI
8588
}
8689

8790
@Override
88-
@Transactional(readOnly = true)
89-
@TrackLastOpened
91+
@Transactional
9092
public MoodTrackerResponseDTO.ReportResult getReportResult(User user, MoodTracker moodTracker) {
9193

94+
// 최근 문서 조회 동기화
95+
Long workspaceId = moodTracker.getWorkspaceId();
96+
String title = moodTracker.getTitle();
97+
98+
UserDocumentId userDocumentId = new UserDocumentId(user.getId(), moodTracker.getId(), moodTracker.getDocumentType());
99+
100+
userDocumentLastOpenedService.updateLastOpened(userDocumentId, workspaceId, title);
101+
92102
// 권한 확인
93103
UserWorkspace userWorkspace = userWorkspaceRepository.findByWorkspaceIdAndUserId(
94104
moodTracker.getWorkspace().getId(), user.getId()
@@ -117,10 +127,17 @@ public MoodTrackerResponseDTO.ReportResult getReportResult(User user, MoodTracke
117127
}
118128

119129
@Override
120-
@Transactional(readOnly = true)
121-
@TrackLastOpened
130+
@Transactional
122131
public MoodTrackerResponseDTO.ResponseResult getResponseResult(User user, MoodTracker moodTracker) {
123132

133+
// 최근 문서 조회 동기화
134+
Long workspaceId = moodTracker.getWorkspaceId();
135+
String title = moodTracker.getTitle();
136+
137+
UserDocumentId userDocumentId = new UserDocumentId(user.getId(), moodTracker.getId(), moodTracker.getDocumentType());
138+
139+
userDocumentLastOpenedService.updateLastOpened(userDocumentId, workspaceId, title);
140+
124141
// 권한 확인
125142
UserWorkspace userWorkspace = userWorkspaceRepository.findByWorkspaceIdAndUserId(
126143
moodTracker.getWorkspace().getId(), user.getId()

0 commit comments

Comments
 (0)