fixed GeocodingService add alter city

This commit is contained in:
SlimusMinus
2026-08-04 00:33:17 +03:00
parent 619ce7086b
commit 7429515143
12 changed files with 192 additions and 124 deletions

View File

@@ -3,6 +3,7 @@ package com.krylov.refound.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.krylov.refound.ai.facade.ContentModerationFacade;
import com.krylov.refound.dto.AddressInfo;
import com.krylov.refound.dto.PostRequest;
import com.krylov.refound.dto.PostResponse;
import com.krylov.refound.entity.Image;
@@ -18,22 +19,16 @@ import com.krylov.refound.repository.FavoriteRepository;
import com.krylov.refound.repository.ImageRepository;
import com.krylov.refound.repository.PostRepository;
import com.krylov.refound.util.PostSpecification;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
@@ -50,7 +45,7 @@ public class PostService {
private final PostRepository repository;
private final PostMapper mapper;
private final ImageRepository imageRepository;
private final NominatimService nominatimService;
private final GeocodingService geocodingService;
private final UserService userService;
private final FavoriteRepository favoriteRepository;
private final FileStorageService fileStorageService;
@@ -66,6 +61,10 @@ public class PostService {
post.setCreatedAt(LocalDateTime.now());
post.setStatus(PostStatus.ACTIVE);
post.setUser(userService.getCurrentUser());
AddressInfo address = geocodingService.getAddress(
request.getLatitude().toString(), request.getLongitude().toString());
post.setCity(address.city());
post.setDistrict(address.district());
repository.save(post);
if (images != null && !images.isEmpty()) {
@@ -209,9 +208,11 @@ public class PostService {
if (request.getLatitude() != null && request.getLongitude() != null) {
post.setLatitude(request.getLatitude());
post.setLongitude(request.getLongitude());
String address = nominatimService.getAddress(
AddressInfo address = geocodingService.getAddress(
request.getLatitude().toString(), request.getLongitude().toString());
post.setCity(address);
post.setCity(address.city());
post.setDistrict(address.district());
} else {
post.setCity(request.getAddress());
}