diff --git a/src/main/java/life/mosu/mosuserver/application/school/SchoolQuotaCacheManager.java b/src/main/java/life/mosu/mosuserver/application/school/SchoolQuotaCacheManager.java index 3e607650..d8dbe4aa 100644 --- a/src/main/java/life/mosu/mosuserver/application/school/SchoolQuotaCacheManager.java +++ b/src/main/java/life/mosu/mosuserver/application/school/SchoolQuotaCacheManager.java @@ -21,19 +21,28 @@ public class SchoolQuotaCacheManager { public void cacheSchoolMaxCapacities() { List schools = schoolRepository.findAll(); for (SchoolJpaEntity school : schools) { - String key = REDIS_KEY_SCHOOL_MAX_CAPACITY + school.getSchoolName(); - redisTemplate.opsForValue().set(key, school.getCapacity()); + addSchoolMaxCapacity(school.getSchoolName(), school.getCapacity()); } } public void cacheSchoolCurrentApplicationCounts() { List schoolApplications = schoolRepository.countBySchoolNameGroupBy(); for (SchoolApplicationProjection projection : schoolApplications) { - String key = REDIS_KEY_SCHOOL_CURRENT_APPLICATIONS + projection.schoolName(); - redisTemplate.opsForValue().set(key, projection.count()); + addSchoolCurrentApplicationCount(projection.schoolName(), projection.count()); } } + public void addSchoolMaxCapacity(String schoolName, Long capacity) { + String key = REDIS_KEY_SCHOOL_MAX_CAPACITY + schoolName; + redisTemplate.opsForValue().set(key, capacity); + } + + public void addSchoolCurrentApplicationCount(String schoolName, Long currentCount) { + String key = REDIS_KEY_SCHOOL_CURRENT_APPLICATIONS + schoolName; + redisTemplate.opsForValue().set(key, currentCount); + } + + public Long getSchoolApplicationCounts(String schoolName) { return redisTemplate.opsForValue() .get(REDIS_KEY_SCHOOL_CURRENT_APPLICATIONS + schoolName); diff --git a/src/main/java/life/mosu/mosuserver/application/school/SchoolService.java b/src/main/java/life/mosu/mosuserver/application/school/SchoolService.java index d357f0b5..6fbc0849 100644 --- a/src/main/java/life/mosu/mosuserver/application/school/SchoolService.java +++ b/src/main/java/life/mosu/mosuserver/application/school/SchoolService.java @@ -39,6 +39,8 @@ public AvailableSchoolResponse getAvailableSchools() { @Transactional public void registerSchool(SchoolRegistrationRequest request) { schoolJpaRepository.save(request.toEntity()); + schoolQuotaCacheManager.addSchoolMaxCapacity(request.schoolName(), request.capacity()); + schoolQuotaCacheManager.addSchoolCurrentApplicationCount(request.schoolName(), 0L); } @Transactional