store all
This commit is contained in:
parent
cf9abb1b54
commit
2080c5476a
BIN
logs/recommend-service.log.2025-06-17.0.gz
Normal file
BIN
logs/recommend-service.log.2025-06-17.0.gz
Normal file
Binary file not shown.
@ -3,6 +3,7 @@ package com.ktds.hi.store.biz.service;
|
||||
|
||||
import com.ktds.hi.store.biz.usecase.in.StoreUseCase;
|
||||
import com.ktds.hi.store.infra.dto.*;
|
||||
import com.ktds.hi.store.infra.dto.response.StoreListResponse;
|
||||
import com.ktds.hi.store.infra.gateway.entity.StoreEntity;
|
||||
import com.ktds.hi.store.infra.gateway.entity.TagEntity;
|
||||
import com.ktds.hi.store.infra.gateway.repository.StoreJpaRepository;
|
||||
@ -93,6 +94,27 @@ public class StoreService implements StoreUseCase {
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<StoreListResponse> getAllStores() {
|
||||
|
||||
List<StoreEntity> stores = storeJpaRepository.findAll();
|
||||
|
||||
return stores.stream()
|
||||
.map(store -> StoreListResponse.builder()
|
||||
.storeId(store.getId())
|
||||
.storeName(store.getStoreName())
|
||||
.address(store.getAddress())
|
||||
.category(store.getCategory())
|
||||
.rating(store.getRating())
|
||||
.reviewCount(store.getReviewCount())
|
||||
.status("운영중")
|
||||
.imageUrl(store.getImageUrl())
|
||||
.operatingHours(store.getOperatingHours())
|
||||
.build())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoreDetailResponse getStoreDetail(Long storeId) {
|
||||
|
||||
@ -157,6 +179,10 @@ public class StoreService implements StoreUseCase {
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<StoreSearchResponse> searchStores(String keyword, String category, String tags,
|
||||
Double latitude, Double longitude, Integer radius,
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.ktds.hi.store.biz.usecase.in;
|
||||
|
||||
import com.ktds.hi.store.infra.dto.*;
|
||||
import com.ktds.hi.store.infra.dto.response.StoreListResponse;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -30,6 +31,8 @@ public interface StoreUseCase {
|
||||
*/
|
||||
List<MyStoreListResponse> getMyStores(Long ownerId);
|
||||
|
||||
List<StoreListResponse> getAllStores();
|
||||
|
||||
/**
|
||||
* 매장 상세 조회
|
||||
*
|
||||
@ -73,4 +76,6 @@ public interface StoreUseCase {
|
||||
List<StoreSearchResponse> searchStores(String keyword, String category, String tags,
|
||||
Double latitude, Double longitude, Integer radius,
|
||||
Integer page, Integer size);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,11 +1,14 @@
|
||||
// store/src/main/java/com/ktds/hi/store/infra/controller/StoreController.java
|
||||
package com.ktds.hi.store.infra.controller;
|
||||
|
||||
import com.ktds.hi.store.biz.service.StoreService;
|
||||
import com.ktds.hi.store.biz.usecase.in.MenuUseCase;
|
||||
import com.ktds.hi.store.biz.usecase.in.StoreUseCase;
|
||||
import com.ktds.hi.store.domain.Store;
|
||||
import com.ktds.hi.store.infra.dto.*;
|
||||
import com.ktds.hi.common.dto.ApiResponse;
|
||||
import com.ktds.hi.common.security.JwtTokenProvider;
|
||||
import com.ktds.hi.store.infra.dto.response.StoreListResponse;
|
||||
import com.ktds.hi.store.infra.dto.response.StoreMenuListResponse;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
@ -38,6 +41,7 @@ import java.util.List;
|
||||
public class StoreController {
|
||||
|
||||
private final StoreUseCase storeUseCase;
|
||||
private final StoreService storeService;
|
||||
private final JwtTokenProvider jwtTokenProvider;
|
||||
private final MenuUseCase menuUseCase;
|
||||
|
||||
@ -68,6 +72,14 @@ public class StoreController {
|
||||
return ResponseEntity.ok(ApiResponse.success(responses, "내 매장 목록 조회 완료"));
|
||||
}
|
||||
|
||||
@GetMapping("/stores/all")
|
||||
@Operation(summary = "매장 전체 리스트")
|
||||
public ResponseEntity<ApiResponse<List<StoreListResponse>>> getAllStores() {
|
||||
|
||||
List<StoreListResponse> responses = storeUseCase.getAllStores();
|
||||
return ResponseEntity.ok(ApiResponse.success(responses));
|
||||
}
|
||||
|
||||
@Operation(summary = "매장 상세 조회", description = "매장의 상세 정보를 조회합니다.")
|
||||
@GetMapping("/{storeId}")
|
||||
public ResponseEntity<ApiResponse<StoreDetailResponse>> getStoreDetail(
|
||||
@ -133,6 +145,8 @@ public class StoreController {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@GetMapping("/{storeId}/menus/popular")
|
||||
@Operation(summary = "매장 인기 메뉴 조회", description = "매장의 인기 메뉴(주문 횟수 기준)를 조회합니다.")
|
||||
public ResponseEntity<ApiResponse<List<StoreMenuListResponse>>> getPopularMenus(
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
package com.ktds.hi.store.infra.dto.response;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Getter
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Schema(description = "내 매장 목록 응답")
|
||||
public class StoreListResponse {
|
||||
|
||||
|
||||
@Schema(description = "매장 ID", example = "1")
|
||||
private Long storeId;
|
||||
|
||||
@Schema(description = "매장명", example = "맛집 한번 가볼래?")
|
||||
private String storeName;
|
||||
|
||||
@Schema(description = "주소", example = "서울시 강남구 테헤란로 123")
|
||||
private String address;
|
||||
|
||||
@Schema(description = "카테고리", example = "한식")
|
||||
private String category;
|
||||
|
||||
@Schema(description = "평점", example = "4.5")
|
||||
private Double rating;
|
||||
|
||||
@Schema(description = "리뷰 수", example = "127")
|
||||
private Integer reviewCount;
|
||||
|
||||
@Schema(description = "운영 상태", example = "운영중")
|
||||
private String status;
|
||||
|
||||
@Schema(description = "운영시간", example = "월-금 09:00-21:00")
|
||||
private String operatingHours;
|
||||
@Schema(description = "매장 이미지")
|
||||
private String imageUrl;
|
||||
}
|
||||
@ -24,6 +24,7 @@ public interface StoreJpaRepository extends JpaRepository<StoreEntity, Long> {
|
||||
@Query("SELECT s FROM StoreEntity s WHERE s.status = 'ACTIVE' ORDER BY s.rating DESC")
|
||||
Page<StoreEntity> findAllByOrderByRatingDesc(Pageable pageable);
|
||||
|
||||
|
||||
/**
|
||||
* 점주 ID로 매장 목록 조회
|
||||
*/
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user