From de254b4dac9e3a137a63f7a18b4cac34f8896f6b Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Wed, 3 Sep 2025 20:51:59 +0900 Subject: [PATCH 1/2] =?UTF-8?q?bug:=20=EC=A0=84=EB=82=A0=20=EB=A7=A4?= =?UTF-8?q?=EC=B6=9C=20=EC=A7=91=EA=B3=84=20=EA=B3=84=EC=82=B0=20=EB=B2=84?= =?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/StatisticCustomRepositoryImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nowait-domain/domain-admin-rdb/src/main/java/com/nowait/domainadminrdb/statistic/repository/StatisticCustomRepositoryImpl.java b/nowait-domain/domain-admin-rdb/src/main/java/com/nowait/domainadminrdb/statistic/repository/StatisticCustomRepositoryImpl.java index bcee06b8..560d0abc 100644 --- a/nowait-domain/domain-admin-rdb/src/main/java/com/nowait/domainadminrdb/statistic/repository/StatisticCustomRepositoryImpl.java +++ b/nowait-domain/domain-admin-rdb/src/main/java/com/nowait/domainadminrdb/statistic/repository/StatisticCustomRepositoryImpl.java @@ -1,7 +1,6 @@ package com.nowait.domainadminrdb.statistic.repository; import static com.nowait.domaincorerdb.order.entity.OrderStatus.*; -import static com.nowait.domaincorerdb.store.entity.QStore.*; import java.time.LocalDate; import java.time.LocalDateTime; @@ -50,6 +49,8 @@ public OrderSalesSumDetail findSalesSumByStoreId(Long storeId, LocalDate date) { LocalDateTime start = date.atStartOfDay(); // 해당 날짜의 자정 LocalDateTime end = date.plusDays(1).atStartOfDay(); + LocalDateTime yesterDayStart = start.minusDays(1); // 어제 00:00 + // 2) target 날짜 해당하는 매출 합산 Integer targetSum = queryFactory .select(u.totalPrice.sum()) @@ -68,8 +69,8 @@ public OrderSalesSumDetail findSalesSumByStoreId(Long storeId, LocalDate date) { .from(u) .where( u.store.storeId.eq(storeId), - u.createdAt.goe(start), - u.createdAt.lt(start.minusDays(1)), + u.createdAt.goe(yesterDayStart), + u.createdAt.lt(start), u.status.eq(COOKED) ) .fetchOne(); From c3bf538397e17ba26a4af55dd2c5dff90db33da9 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Wed, 3 Sep 2025 20:54:30 +0900 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20=EB=A9=94=EB=89=B4=20=EB=9E=AD?= =?UTF-8?q?=ED=82=B9=20=EC=A1=B0=ED=9A=8C=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=ED=95=84=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../statistic/dto/PopularMenuDto.java | 1 + .../impl/PopularMenuRedisServiceImpl.java | 18 +++++++++++++++--- .../menu/repository/MenuImageRepository.java | 1 + 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/statistic/dto/PopularMenuDto.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/statistic/dto/PopularMenuDto.java index 828be84a..ebf17cfc 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/statistic/dto/PopularMenuDto.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/statistic/dto/PopularMenuDto.java @@ -9,4 +9,5 @@ public class PopularMenuDto { private Long menuId; private String menuName; private Long soldCount; + private String imageUrl; } diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/statistic/service/impl/PopularMenuRedisServiceImpl.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/statistic/service/impl/PopularMenuRedisServiceImpl.java index 01119cbb..e5f43a16 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/statistic/service/impl/PopularMenuRedisServiceImpl.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/statistic/service/impl/PopularMenuRedisServiceImpl.java @@ -13,6 +13,8 @@ import com.nowait.common.enums.Role; import com.nowait.domainadminrdb.statistic.exception.StatisticViewUnauthorizedException; import com.nowait.domaincorerdb.menu.entity.Menu; +import com.nowait.domaincorerdb.menu.entity.MenuImage; +import com.nowait.domaincorerdb.menu.repository.MenuImageRepository; import com.nowait.domaincorerdb.menu.repository.MenuRepository; import com.nowait.domaincorerdb.user.entity.MemberDetails; import com.nowait.domaincorerdb.user.entity.User; @@ -29,6 +31,7 @@ public class PopularMenuRedisServiceImpl implements PopularMenuRedisService { private final MenuCounterService menuCounterService; private final MenuRepository menuRepository; private final UserRepository userRepository; + private final MenuImageRepository menuImageRepository; @Override public List getTodayTop5(MemberDetails memberDetails) { @@ -36,8 +39,8 @@ public List getTodayTop5(MemberDetails memberDetails) { User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); Long storeId = user.getStoreId(); - if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { - throw new StatisticViewUnauthorizedException(); + if (!Role.SUPER_ADMIN.equals(user.getRole())) { + if (storeId == null) throw new StatisticViewUnauthorizedException(); } Set> tuples = menuCounterService.getTopMenus(storeId, 5); @@ -53,13 +56,22 @@ public List getTodayTop5(MemberDetails memberDetails) { Menu::getName )); + var firstImageByMenu = menuImageRepository.findByMenuIdInOrderByIdAsc(menuIds).stream() + .collect(Collectors.toMap( + menuImage -> menuImage.getMenu().getId(), + MenuImage::getImageUrl, + (existing, replacement) -> existing + )); + return tuples.stream() .map(tuple -> { Long menuId = Long.parseLong(tuple.getValue()); String menuName = menuIdToNameMap.getOrDefault(menuId, "Unknown Menu"); + String imageUrl = firstImageByMenu.get(menuId); + long sold = tuple.getScore().longValue(); - return new PopularMenuDto(menuId, menuName, tuple.getScore().longValue()); + return new PopularMenuDto(menuId, menuName, sold, imageUrl); }) .toList(); } diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/menu/repository/MenuImageRepository.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/menu/repository/MenuImageRepository.java index 7ad8143a..94a6649c 100644 --- a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/menu/repository/MenuImageRepository.java +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/menu/repository/MenuImageRepository.java @@ -13,4 +13,5 @@ public interface MenuImageRepository extends JpaRepository { List findByMenu(Menu menu); Optional findByMenuId(Long menuId); + List findByMenuIdInOrderByIdAsc(List menuIds); }