Skip to content

Commit b54d4ae

Browse files
committed
fix: Location 오류 해결
1 parent 8ce7450 commit b54d4ae

File tree

5 files changed

+60
-23
lines changed

5 files changed

+60
-23
lines changed

src/main/java/com/example/log4u/domain/diary/repository/CustomDiaryRepositoryImpl.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -250,15 +250,15 @@ public List<DiaryMarkerResponseDto> findDiariesInBounds(double south, double nor
250250
d.title,
251251
d.thumbnailUrl,
252252
d.likeCount,
253-
d.latitude,
254-
d.longitude,
253+
d.location.latitude,
254+
d.location.longitude,
255255
d.createdAt
256256
))
257257
.from(d)
258258
.where(
259259
d.visibility.eq(VisibilityType.PUBLIC),
260-
d.latitude.between(south, north),
261-
d.longitude.between(west, east)
260+
d.location.latitude.between(south, north),
261+
d.location.longitude.between(west, east)
262262
)
263263
.orderBy(d.createdAt.asc())
264264
.fetch();
@@ -272,14 +272,15 @@ public List<Diary> findInBoundsByUserId(Long userId, double south, double north,
272272
.selectFrom(d)
273273
.where(
274274
d.userId.eq(userId),
275-
d.latitude.between(south, north),
276-
d.longitude.between(west, east)
275+
d.location.latitude.between(south, north),
276+
d.location.longitude.between(west, east)
277277
)
278278
.fetch();
279279
}
280280

281281
@Override
282-
public List<DiaryMarkerResponseDto> findMyDiariesInBounds(Long userId, double south, double north, double west, double east) {
282+
public List<DiaryMarkerResponseDto> findMyDiariesInBounds(Long userId, double south, double north, double west,
283+
double east) {
283284
QDiary d = QDiary.diary;
284285

285286
return queryFactory
@@ -288,15 +289,15 @@ public List<DiaryMarkerResponseDto> findMyDiariesInBounds(Long userId, double so
288289
d.title,
289290
d.thumbnailUrl,
290291
d.likeCount,
291-
d.latitude,
292-
d.longitude,
292+
d.location.latitude,
293+
d.location.longitude,
293294
d.createdAt
294295
))
295296
.from(d)
296297
.where(
297298
d.userId.eq(userId),
298-
d.latitude.between(south, north),
299-
d.longitude.between(west, east)
299+
d.location.latitude.between(south, north),
300+
d.location.longitude.between(west, east)
300301
)
301302
.orderBy(d.createdAt.asc())
302303
.fetch();

src/main/java/com/example/log4u/domain/diary/service/DiaryService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void saveDiary(Long userId, DiaryRequestDto request) {
4848
DiaryRequestDto.toEntity(userId, request, thumbnailUrl)
4949
);
5050
mediaService.saveMedia(diary.getDiaryId(), request.mediaList());
51-
mapService.increaseRegionDiaryCount(request.latitude(), request.longitude());
51+
mapService.increaseRegionDiaryCount(request.location().latitude(), request.location().longitude());
5252
}
5353

5454
// 다이어리 검색

src/main/java/com/example/log4u/domain/map/service/MyMapService.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010

1111
import com.example.log4u.domain.diary.entity.Diary;
1212
import com.example.log4u.domain.diary.repository.DiaryRepository;
13+
import com.example.log4u.domain.map.dto.response.DiaryClusterResponseDto;
1314
import com.example.log4u.domain.map.dto.response.DiaryMarkerResponseDto;
1415
import com.example.log4u.domain.map.entity.Areas;
1516
import com.example.log4u.domain.map.service.strategy.AreaRegion;
1617
import com.example.log4u.domain.map.service.strategy.SidoRegionStrategy;
1718
import com.example.log4u.domain.map.service.strategy.SiggRegionStrategy;
18-
import com.example.log4u.domain.map.dto.response.DiaryClusterResponseDto;
1919

2020
import lombok.RequiredArgsConstructor;
2121
import lombok.extern.slf4j.Slf4j;
@@ -48,10 +48,12 @@ private <T extends Areas> List<DiaryClusterResponseDto> calculateClusters(
4848
List<Diary> diaries = diaryRepository.findInBoundsByUserId(userId, south, north, west, east);
4949

5050
Map<String, Long> diaryCountMap = diaries.stream()
51-
.map(diary -> regionStrategy.findRegionByLatLon(diary.getLatitude(), diary.getLongitude())
51+
.map(diary -> regionStrategy.findRegionByLatLon(diary.getLocation().getLatitude(),
52+
diary.getLocation().getLongitude())
5253
.map(regionStrategy::extractAreaName)
5354
.orElseGet(() -> {
54-
log.warn("지역 매핑 실패 - diaryId: {}, lat: {}, lon: {}", diary.getDiaryId(), diary.getLatitude(), diary.getLongitude());
55+
log.warn("지역 매핑 실패 - diaryId: {}, lat: {}, lon: {}", diary.getDiaryId(),
56+
diary.getLocation().getLatitude(), diary.getLocation().getLongitude());
5557
return "UNKNOWN";
5658
}))
5759
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
@@ -66,7 +68,8 @@ private <T extends Areas> List<DiaryClusterResponseDto> calculateClusters(
6668
}
6769

6870
@Transactional(readOnly = true)
69-
public List<DiaryMarkerResponseDto> getMyDiariesInBounds(Long userId, double south, double north, double west, double east) {
71+
public List<DiaryMarkerResponseDto> getMyDiariesInBounds(Long userId, double south, double north, double west,
72+
double east) {
7073
return diaryRepository.findMyDiariesInBounds(userId, south, north, west, east);
7174
}
7275
}

src/test/java/com/example/log4u/domain/Map/service/MyMapServiceTest.java

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import com.example.log4u.domain.diary.entity.Diary;
1717
import com.example.log4u.domain.diary.repository.DiaryRepository;
1818
import com.example.log4u.domain.map.dto.response.DiaryClusterResponseDto;
19+
import com.example.log4u.domain.map.entitiy.Location;
1920
import com.example.log4u.domain.map.entity.SidoAreas;
2021
import com.example.log4u.domain.map.entity.SiggAreas;
2122
import com.example.log4u.domain.map.service.MyMapService;
@@ -53,12 +54,36 @@ void getMyDiaryClusters_sido_success() {
5354
SidoAreas gyeonggi = SidoAreasFixture.createSidoAreaFixture(2L, "경기도", 37.4138, 127.5183);
5455
List<SidoAreas> sidoList = List.of(seoul, gyeonggi);
5556

57+
Location l1 = new Location(
58+
37.5665, // 첫 번째 Diary 위도
59+
126.9780, // 첫 번째 Diary 경도
60+
null,
61+
null,
62+
null
63+
);
64+
65+
Location l2 = new Location(
66+
37.5666,
67+
126.9781,
68+
null,
69+
null,
70+
null
71+
);
72+
73+
Location l3 = new Location(
74+
37.4138,
75+
127.5183,
76+
null,
77+
null,
78+
null
79+
);
80+
5681
List<Diary> diaries = List.of(
57-
DiaryFixture.createCustomDiaryFixture(1L, userId, "title", "content", "thumb1.jpg", null, 37.5665, 126.9780,
82+
DiaryFixture.createCustomDiaryFixture(1L, userId, "title", "content", "thumb1.jpg", null, l1,
5883
null, 0L),
59-
DiaryFixture.createCustomDiaryFixture(2L, userId, "title", "content", "thumb2.jpg", null, 37.5666, 126.9781,
84+
DiaryFixture.createCustomDiaryFixture(2L, userId, "title", "content", "thumb2.jpg", null, l2,
6085
null, 0L),
61-
DiaryFixture.createCustomDiaryFixture(3L, userId, "title", "content", "thumb3.jpg", null, 37.4138, 127.5183,
86+
DiaryFixture.createCustomDiaryFixture(3L, userId, "title", "content", "thumb3.jpg", null, l3,
6287
null, 0L)
6388
);
6489

@@ -98,8 +123,16 @@ void getMyDiaryClusters_sigg_success() {
98123
SiggAreas anyArea = SiggAreasFixture.createSiggAreaFixture(1L, "강남구", 37.4979, 127.0276);
99124
List<SiggAreas> siggList = List.of(anyArea);
100125

101-
Diary diary = DiaryFixture.createCustomDiaryFixture(1L, userId, "title", "content", "thumb.jpg", null, 37.4979,
102-
127.0276, null, 0L);
126+
Location location = new Location(
127+
37.4979,
128+
127.0276,
129+
null,
130+
null,
131+
null
132+
);
133+
134+
Diary diary = DiaryFixture.createCustomDiaryFixture(1L, userId, "title", "content", "thumb.jpg", null, location,
135+
null, 0L);
103136

104137
given(siggRegionStrategy.findRegionsInBounds(south, north, west, east)).willReturn(siggList);
105138
given(diaryRepository.findInBoundsByUserId(userId, south, north, west, east)).willReturn(List.of(diary));

src/test/java/com/example/log4u/domain/diary/service/DiaryServiceTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
import com.example.log4u.domain.diary.exception.OwnerAccessDeniedException;
3030
import com.example.log4u.domain.diary.repository.DiaryRepository;
3131
import com.example.log4u.domain.follow.repository.FollowRepository;
32-
import com.example.log4u.domain.map.service.MapService;
3332
import com.example.log4u.domain.like.repository.LikeRepository;
33+
import com.example.log4u.domain.map.service.MapService;
3434
import com.example.log4u.domain.media.entity.Media;
3535
import com.example.log4u.domain.media.service.MediaService;
3636
import com.example.log4u.fixture.DiaryFixture;
@@ -79,7 +79,7 @@ void saveDiary() {
7979

8080
// then
8181
verify(mediaService).saveMedia(eq(diary.getDiaryId()), eq(request.mediaList()));
82-
verify(mapService).increaseRegionDiaryCount(request.latitude(), request.longitude());
82+
verify(mapService).increaseRegionDiaryCount(request.location().latitude(), request.location().longitude());
8383
}
8484

8585
@Test

0 commit comments

Comments
 (0)