From 1d92512b9c40be0d8cab5feb0b5348ff0271636e Mon Sep 17 00:00:00 2001 From: hoon7566 Date: Mon, 7 Mar 2022 22:35:30 +0900 Subject: [PATCH] =?UTF-8?q?feat(customer-vue):=20=EC=A6=90=EA=B2=A8?= =?UTF-8?q?=EC=B0=BE=EA=B8=B0=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 즐겨찾기 페이지 추가 --- .../src/components/BottomNavigation.vue | 2 +- customer-vue/src/components/SlideStore.vue | 2 +- customer-vue/src/router/router.js | 5 + customer-vue/src/views/FavoriteStore.vue | 120 ++++++++++++++++++ .../store/service/StoreServiceImpl.java | 8 +- .../store/web/StoreCustomerApiController.java | 2 + 6 files changed, 136 insertions(+), 3 deletions(-) create mode 100644 customer-vue/src/views/FavoriteStore.vue diff --git a/customer-vue/src/components/BottomNavigation.vue b/customer-vue/src/components/BottomNavigation.vue index 14636de..b1fb176 100644 --- a/customer-vue/src/components/BottomNavigation.vue +++ b/customer-vue/src/components/BottomNavigation.vue @@ -22,7 +22,7 @@ export default { links: [ {name: "홈", url: "/", icon: "mdi-home-outline"}, {name: "검색", url: "/search", icon: "mdi-magnify"}, - {name: "즐겨찾기", url: "/", icon: "mdi-cards-heart-outline"}, + {name: "즐겨찾기", url: "/favorite", icon: "mdi-cards-heart-outline"}, {name: "주문내역", url: "/history", icon: "mdi-clipboard-check-outline"}, {name: "마이페이지", url: "/", icon: "mdi-account-outline"} ] diff --git a/customer-vue/src/components/SlideStore.vue b/customer-vue/src/components/SlideStore.vue index 2e99c51..f3a8077 100644 --- a/customer-vue/src/components/SlideStore.vue +++ b/customer-vue/src/components/SlideStore.vue @@ -16,7 +16,7 @@ type="card" :key="id + n" > - + import('../views/OrderHistory') }, + { + path: "/favorite", + name: 'favorite-store', + component: () => import('../views/FavoriteStore') + }, { path: '/login', name: 'login', diff --git a/customer-vue/src/views/FavoriteStore.vue b/customer-vue/src/views/FavoriteStore.vue new file mode 100644 index 0000000..74fcbdf --- /dev/null +++ b/customer-vue/src/views/FavoriteStore.vue @@ -0,0 +1,120 @@ + + + + + \ No newline at end of file diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/store/service/StoreServiceImpl.java b/store-service/src/main/java/com/justpickup/storeservice/domain/store/service/StoreServiceImpl.java index fcaa16c..c535f7e 100644 --- a/store-service/src/main/java/com/justpickup/storeservice/domain/store/service/StoreServiceImpl.java +++ b/store-service/src/main/java/com/justpickup/storeservice/domain/store/service/StoreServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.data.domain.SliceImpl; import org.springframework.stereotype.Service; import java.util.List; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -33,6 +34,11 @@ public class StoreServiceImpl implements StoreService { @Override public List findFavoriteStore(SearchStoreCondition condition, Long userId) { - return storeRepositoryCustom.findFavoriteStore(condition,userId); + List favoriteStores = storeRepositoryCustom.findFavoriteStore(condition, userId); + favoriteStores.forEach(result -> { + Long favoriteCounts = favoriteStoreCustom.countFavoriteStoreByStoreId(result.getStoreId()); + result.setFavoriteCounts(favoriteCounts); + }); + return favoriteStores; } } diff --git a/store-service/src/main/java/com/justpickup/storeservice/domain/store/web/StoreCustomerApiController.java b/store-service/src/main/java/com/justpickup/storeservice/domain/store/web/StoreCustomerApiController.java index 023e30a..73c693f 100644 --- a/store-service/src/main/java/com/justpickup/storeservice/domain/store/web/StoreCustomerApiController.java +++ b/store-service/src/main/java/com/justpickup/storeservice/domain/store/web/StoreCustomerApiController.java @@ -48,11 +48,13 @@ public class StoreCustomerApiController { private Long id; private String name; private String distance; + private Long favoriteCounts; public FavoriteStoreResponse(SearchStoreResult storeResult) { this.id = storeResult.getStoreId(); this.name = storeResult.getStoreName(); this.distance = storeResult.convertDistanceToString(); + this.favoriteCounts = storeResult.getFavoriteCounts(); } }