diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuImageService.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuImageService.java
index b3726fe8..2b23b597 100644
--- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuImageService.java
+++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuImageService.java
@@ -14,6 +14,8 @@
import com.nowait.domaincorerdb.menu.exception.MenuNotFoundException;
import com.nowait.domaincorerdb.menu.repository.MenuImageRepository;
import com.nowait.domaincorerdb.menu.repository.MenuRepository;
+import com.nowait.domaincoreredis.common.cache.CacheInvalidationPublisher;
+import com.nowait.domaincoreredis.common.util.RedisKeyUtils;
import com.nowait.infraaws.aws.s3.S3Service;
import lombok.RequiredArgsConstructor;
@@ -25,6 +27,8 @@ public class MenuImageService {
private final MenuRepository menuRepository;
private final MenuImageRepository menuImageRepository;
private final S3Service s3Service;
+ private final CacheInvalidationPublisher cacheInvalidationPublisher;
+
@Transactional
public MenuImageUploadResponse save(Long menuId, MultipartFile file) {
if (file == null || file.isEmpty()) {
@@ -52,6 +56,7 @@ public MenuImageUploadResponse save(Long menuId, MultipartFile file) {
.build();
menuImageRepository.save(menuImage);
+ cacheInvalidationPublisher.invalidate(RedisKeyUtils.buildMenuCacheChannel(), String.valueOf(menu.getStoreId()));
// 응답 생성
return MenuImageUploadResponse.fromEntity(menuImage);
@@ -64,5 +69,7 @@ public void delete(Long id) {
s3Service.delete(menuImage.getFileKey());
menuImageRepository.delete(menuImage);
+ cacheInvalidationPublisher.invalidate(RedisKeyUtils.buildMenuCacheChannel(),
+ String.valueOf(menuImage.getMenu().getStoreId()));
}
}
diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuService.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuService.java
index f69dbfa2..e986f9a8 100644
--- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuService.java
+++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuService.java
@@ -34,6 +34,8 @@
import com.nowait.domaincorerdb.user.entity.User;
import com.nowait.domaincorerdb.user.exception.UserNotFoundException;
import com.nowait.domaincorerdb.user.repository.UserRepository;
+import com.nowait.domaincoreredis.common.cache.CacheInvalidationPublisher;
+import com.nowait.domaincoreredis.common.util.RedisKeyUtils;
import lombok.RequiredArgsConstructor;
@@ -44,6 +46,7 @@ public class MenuService {
private final MenuRepository menuRepository;
private final MenuImageRepository menuImageRepository;
private final UserRepository userRepository;
+ private final CacheInvalidationPublisher cacheInvalidationPublisher;
@Transactional
public MenuCreateResponse createMenu(MenuCreateRequest request, MemberDetails memberDetails) {
@@ -55,6 +58,7 @@ public MenuCreateResponse createMenu(MenuCreateRequest request, MemberDetails me
// 메뉴 생성 로직
Menu toSave = request.toEntity();
Menu saved = menuRepository.save(toSave);
+ invalidateMenuCache(saved.getStoreId());
return MenuCreateResponse.fromEntity(saved);
}
@@ -66,16 +70,9 @@ public MenuReadResponse getAllMenusByStoreId(Long storeId, MemberDetails memberD
// 사용자 역할이 SUPER_ADMIN이거나, storeId가 일치하는지 확인
validateViewAuthorization(user, storeId);
- List