From 9fbd3ec2b28013bef53b8ada2ed4c442cb4ac0c1 Mon Sep 17 00:00:00 2001 From: KNU-K Date: Thu, 4 Sep 2025 02:18:02 +0900 Subject: [PATCH 1/2] feat: configure Redis connection factory with host and port --- build.gradle | 1 - .../mosu/mosuserver/global/config/RedisConfig.java | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 55d7bc5e..d90c98a1 100644 --- a/build.gradle +++ b/build.gradle @@ -54,7 +54,6 @@ dependencies { // redis implementation 'org.springframework.boot:spring-boot-starter-data-redis' - implementation 'org.springframework.boot:spring-boot-starter-data-redis-reactive' // mail implementation 'org.springframework.boot:spring-boot-starter-mail' diff --git a/src/main/java/life/mosu/mosuserver/global/config/RedisConfig.java b/src/main/java/life/mosu/mosuserver/global/config/RedisConfig.java index 8f4f9e33..41b2b55c 100644 --- a/src/main/java/life/mosu/mosuserver/global/config/RedisConfig.java +++ b/src/main/java/life/mosu/mosuserver/global/config/RedisConfig.java @@ -1,8 +1,11 @@ package life.mosu.mosuserver.global.config; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.RedisStandaloneConfiguration; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericToStringSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; @@ -19,4 +22,15 @@ public RedisTemplate redisTemplate( redisTemplate.setValueSerializer(new GenericToStringSerializer<>(Long.class)); return redisTemplate; } + + @Bean + public LettuceConnectionFactory redisConnectionFactory( + @Value("${spring.data.redis.host}") String redisHost, + @Value("${spring.data.redis.port}") int redisPort + ) { + RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(); + config.setHostName(redisHost); + config.setPort(redisPort); + return new LettuceConnectionFactory(config); + } } \ No newline at end of file From 33eeee68dd86d8644516e07291136bf116a2d861 Mon Sep 17 00:00:00 2001 From: KNU-K Date: Mon, 8 Sep 2025 00:19:37 +0900 Subject: [PATCH 2/2] feat: update query to retrieve paid application count by school using profile information --- .../application/repository/ApplicationJpaRepository.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/life/mosu/mosuserver/domain/application/repository/ApplicationJpaRepository.java b/src/main/java/life/mosu/mosuserver/domain/application/repository/ApplicationJpaRepository.java index 09c419b8..ca5011f6 100644 --- a/src/main/java/life/mosu/mosuserver/domain/application/repository/ApplicationJpaRepository.java +++ b/src/main/java/life/mosu/mosuserver/domain/application/repository/ApplicationJpaRepository.java @@ -32,16 +32,17 @@ AND a.status IN ('PENDING', 'ABORT') @Query(""" SELECT new life.mosu.mosuserver.presentation.application.dto.SchoolApplicationCountResponse( - e.schoolName, + p.schoolInfo.schoolName, COUNT(a.id) ) FROM ApplicationJpaEntity a JOIN ExamApplicationJpaEntity ea ON ea.applicationId = a.id JOIN ExamJpaEntity e ON e.id = ea.examId + JOIN ProfileJpaEntity p ON p.userId = a.userId WHERE a.deleted = false AND a.status = 'APPROVED' - GROUP BY e.schoolName - ORDER BY e.schoolName + GROUP BY p.schoolInfo.schoolName + ORDER BY p.schoolInfo.schoolName """) List findPaidApplicationCountBySchool();