diff --git a/src/main/java/com/example/silverbridgeX_user/batch/tasklet/PruneEdgeTasklet.java b/src/main/java/com/example/silverbridgeX_user/batch/tasklet/PruneEdgeTasklet.java index fa79bdf..c5f7f9b 100644 --- a/src/main/java/com/example/silverbridgeX_user/batch/tasklet/PruneEdgeTasklet.java +++ b/src/main/java/com/example/silverbridgeX_user/batch/tasklet/PruneEdgeTasklet.java @@ -18,8 +18,9 @@ public class PruneEdgeTasklet implements Tasklet { @Override public RepeatStatus execute(@NonNull StepContribution con, @NonNull ChunkContext ctx) { String del = """ - MATCH (:User)-[r:PREFERRED]->(:Activity) - WHERE r.score < 0.4 + MATCH ()-[r]->() + WHERE (type(r) = "PREFERRED" OR type(r) = "SIMILAR") + AND r.score < 0.85 DELETE r """; recommendActivityService.execWrite(del); diff --git a/src/main/java/com/example/silverbridgeX_user/batch/tasklet/UpdateGraphTasklet.java b/src/main/java/com/example/silverbridgeX_user/batch/tasklet/UpdateGraphTasklet.java index 310ea34..6a606ee 100644 --- a/src/main/java/com/example/silverbridgeX_user/batch/tasklet/UpdateGraphTasklet.java +++ b/src/main/java/com/example/silverbridgeX_user/batch/tasklet/UpdateGraphTasklet.java @@ -87,7 +87,7 @@ WITH pair AS ( (CASE WHEN cnt1 = 0 AND cnt2 > 0 THEN pref_sim ELSE 0.7 * pref_sim + 0.3 * act_sim - END) >= 0.5; + END) >= 0.9; """; List> simRows = jdbc.queryForList(similarSql, Map.of()); diff --git a/src/main/java/com/example/silverbridgeX_user/matching/scheduler/MatchingScheduler.java b/src/main/java/com/example/silverbridgeX_user/matching/scheduler/MatchingScheduler.java index f289cd3..ea65478 100644 --- a/src/main/java/com/example/silverbridgeX_user/matching/scheduler/MatchingScheduler.java +++ b/src/main/java/com/example/silverbridgeX_user/matching/scheduler/MatchingScheduler.java @@ -1,19 +1,18 @@ package com.example.silverbridgeX_user.matching.scheduler; import com.example.silverbridgeX_user.matching.service.MatchingService; +import java.time.LocalDateTime; import lombok.RequiredArgsConstructor; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import java.time.LocalDateTime; - @Component @RequiredArgsConstructor public class MatchingScheduler { private final MatchingService matchingService; - @Scheduled(cron = "0 18,38,58 * * * *") + @Scheduled(cron = "0 9,19,29,39,49,59 * * * *") public void executeMatching() { System.out.println("매칭 알고리즘 실행됨: " + LocalDateTime.now()); matchingService.executeMatchingAlgorithm(); diff --git a/src/main/java/com/example/silverbridgeX_user/user/jwt/JwtTokenUtils.java b/src/main/java/com/example/silverbridgeX_user/user/jwt/JwtTokenUtils.java index 89382ff..78a3223 100644 --- a/src/main/java/com/example/silverbridgeX_user/user/jwt/JwtTokenUtils.java +++ b/src/main/java/com/example/silverbridgeX_user/user/jwt/JwtTokenUtils.java @@ -35,8 +35,7 @@ public JwtTokenUtils( @Value("${jwt.secret}") String jwtSecret, @Value("${jwt.accessExpirationTime}") int accessExpirationTime, @Value("${jwt.refreshExpirationTime}") int refreshExpirationTime - ) - { + ) { this.signingKey = Keys.hmacShaKeyFor(jwtSecret.getBytes()); this.jwtParser = Jwts.parserBuilder().setSigningKey(this.signingKey).build(); this.accessExpirationTime = accessExpirationTime; @@ -66,6 +65,7 @@ public JwtDto generateToken(UserDetails userDetails) { .setExpiration(Date.from(Instant.now().plusSeconds(refreshExpirationTime))); String refreshToken = Jwts.builder() .setClaims(refreshTokenClaims) + .claim("authorities", authorities) .signWith(signingKey) .compact(); @@ -111,7 +111,7 @@ public boolean validateToken(String token) { } // 문자열로 저장된 authorities를 다시 Collection으로 변환 - public Collection getAuthFromClaims(Claims claims){ + public Collection getAuthFromClaims(Claims claims) { String authoritiesString = (String) claims.get("authorities"); // authorities 정보 가져오기 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index fd678b6..9ae1f09 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,6 +1,8 @@ spring: profiles: active: local + jackson: + time-zone: Asia/Seoul springdoc: swagger-ui: