diff --git a/src/main/java/com/example/silverbridgeX_user/RecommendActivity/service/RecommendActivityService.java b/src/main/java/com/example/silverbridgeX_user/RecommendActivity/service/RecommendActivityService.java index bc54eb2..ef47c35 100644 --- a/src/main/java/com/example/silverbridgeX_user/RecommendActivity/service/RecommendActivityService.java +++ b/src/main/java/com/example/silverbridgeX_user/RecommendActivity/service/RecommendActivityService.java @@ -191,7 +191,7 @@ WITH a, count(*) AS freq /* ---------- 2. 인기 랭킹 + 거리 필터 ---------- */ List popularIds = activityRankingRepository.fetchTopByDistance( - (float)(double) user.getLatitude(), (float)(double) user.getLongitude(), 18, resultIds); + Float.parseFloat(user.getLatitude()), Float.parseFloat(user.getLongitude()), 18, resultIds); for (Long id : popularIds) { if (resultIds.size() >= 18) { diff --git a/src/main/java/com/example/silverbridgeX_user/matching/algorithm/AdjacencyGraphBuilder.java b/src/main/java/com/example/silverbridgeX_user/matching/algorithm/AdjacencyGraphBuilder.java index cd43c70..3edcb7a 100644 --- a/src/main/java/com/example/silverbridgeX_user/matching/algorithm/AdjacencyGraphBuilder.java +++ b/src/main/java/com/example/silverbridgeX_user/matching/algorithm/AdjacencyGraphBuilder.java @@ -37,22 +37,41 @@ private static boolean canConnect(MatchRequest a, MatchRequest b) { // String sexB = B.getSex(); // // if (sexA == null || sexB == null) return false; - - Double latA = A.getLatitude(); - Double lonA = A.getLongitude(); - Double latB = B.getLatitude(); - Double lonB = B.getLongitude(); - - if (latA == null || lonA == null || latB == null || lonB == null) return false; - +// +// Double latA = Double.parseDouble(A.getLatitude()); +// Double lonA = Double.parseDouble(A.getLongitude()); +// Double latB = Double.parseDouble(B.getLatitude()); +// Double lonB = Double.parseDouble(B.getLongitude()); +// +// if (latA == null || lonA == null || latB == null || lonB == null) return false; +// // LocalDate birthA = A.getBirth(); // LocalDate birthB = B.getBirth(); // // if (birthA == null || birthB == null) return false; - +// // return !sexA.equals(sexB) && // GeoUtils.haversine(latA, lonA, latB, lonB) <= 3.0 && // Math.abs(birthA.getYear() - birthB.getYear()) <= 10; - return GeoUtils.haversine(latA, lonA, latB, lonB) <= 3.0; + + String latAStr = A.getLatitude(); + String lonAStr = A.getLongitude(); + String latBStr = B.getLatitude(); + String lonBStr = B.getLongitude(); + + if (latAStr == null || lonAStr == null || latBStr == null || lonBStr == null) { + return false; + } + + try { + double latA = Double.parseDouble(latAStr); + double lonA = Double.parseDouble(lonAStr); + double latB = Double.parseDouble(latBStr); + double lonB = Double.parseDouble(lonBStr); + + return GeoUtils.haversine(latA, lonA, latB, lonB) <= 3.0; + } catch (NumberFormatException e) { + return false; + } } } diff --git a/src/main/java/com/example/silverbridgeX_user/user/domain/User.java b/src/main/java/com/example/silverbridgeX_user/user/domain/User.java index 6f6c261..e4c6559 100644 --- a/src/main/java/com/example/silverbridgeX_user/user/domain/User.java +++ b/src/main/java/com/example/silverbridgeX_user/user/domain/User.java @@ -47,9 +47,9 @@ public class User extends BaseEntity { private String streetAddress; - private Double latitude; + private String latitude; - private Double longitude; + private String longitude; private String profileImage;