diff --git a/smarketing-java/store/src/main/java/com/won/smarketing/store/controller/MenuController.java b/smarketing-java/store/src/main/java/com/won/smarketing/store/controller/MenuController.java index e5e3e4f..20ab6dd 100644 --- a/smarketing-java/store/src/main/java/com/won/smarketing/store/controller/MenuController.java +++ b/smarketing-java/store/src/main/java/com/won/smarketing/store/controller/MenuController.java @@ -43,15 +43,15 @@ public class MenuController { /** * 메뉴 목록 조회 * - * @param category 메뉴 카테고리 (선택사항) + * @param storeId 메뉴 카테고리 * @return 메뉴 목록 */ @Operation(summary = "메뉴 목록 조회", description = "메뉴 목록을 조회합니다. 카테고리별 필터링 가능합니다.") @GetMapping public ResponseEntity>> getMenus( - @Parameter(description = "메뉴 카테고리") - @RequestParam(required = false) String category) { - List response = menuService.getMenus(category); + @Parameter(description = "가게 ID") + @RequestParam(required = true) Long storeId) { + List response = menuService.getMenus(storeId); return ResponseEntity.ok(ApiResponse.success(response)); } diff --git a/smarketing-java/store/src/main/java/com/won/smarketing/store/controller/StoreController.java b/smarketing-java/store/src/main/java/com/won/smarketing/store/controller/StoreController.java index 86191c5..3e12344 100644 --- a/smarketing-java/store/src/main/java/com/won/smarketing/store/controller/StoreController.java +++ b/smarketing-java/store/src/main/java/com/won/smarketing/store/controller/StoreController.java @@ -2,6 +2,7 @@ package com.won.smarketing.store.controller; import com.won.smarketing.common.dto.ApiResponse; import com.won.smarketing.store.dto.StoreCreateRequest; +import com.won.smarketing.store.dto.StoreCreateResponse; import com.won.smarketing.store.dto.StoreResponse; import com.won.smarketing.store.dto.StoreUpdateRequest; import com.won.smarketing.store.service.StoreService; @@ -34,8 +35,8 @@ public class StoreController { */ @Operation(summary = "매장 등록", description = "새로운 매장 정보를 등록합니다.") @PostMapping("/register") - public ResponseEntity> register(@Valid @RequestBody StoreCreateRequest request) { - StoreResponse response = storeService.register(request); + public ResponseEntity> register(@Valid @RequestBody StoreCreateRequest request) { + StoreCreateResponse response = storeService.register(request); return ResponseEntity.ok(ApiResponse.success(response, "매장이 성공적으로 등록되었습니다.")); } diff --git a/smarketing-java/store/src/main/java/com/won/smarketing/store/dto/StoreCreateResponse.java b/smarketing-java/store/src/main/java/com/won/smarketing/store/dto/StoreCreateResponse.java new file mode 100644 index 0000000..bca1adf --- /dev/null +++ b/smarketing-java/store/src/main/java/com/won/smarketing/store/dto/StoreCreateResponse.java @@ -0,0 +1,56 @@ +package com.won.smarketing.store.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 매장 응답 DTO + * 매장 정보를 클라이언트에게 전달합니다. + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(description = "매장 응답") +public class StoreCreateResponse { + + @Schema(description = "매장 ID", example = "1") + private Long storeId; + +// @Schema(description = "매장명", example = "맛있는 카페") +// private String storeName; +// +// @Schema(description = "업종", example = "카페") +// private String businessType; +// +// @Schema(description = "주소", example = "서울시 강남구 테헤란로 123") +// private String address; +// +// @Schema(description = "전화번호", example = "02-1234-5678") +// private String phoneNumber; +// +// @Schema(description = "영업시간", example = "09:00 - 22:00") +// private String businessHours; +// +// @Schema(description = "휴무일", example = "매주 일요일") +// private String closedDays; +// +// @Schema(description = "좌석 수", example = "20") +// private Integer seatCount; +// +// @Schema(description = "SNS 계정 정보", example = "인스타그램: @mystore") +// private String snsAccounts; +// +// @Schema(description = "매장 설명", example = "따뜻한 분위기의 동네 카페입니다.") +// private String description; +// +// @Schema(description = "등록일시", example = "2024-01-15T10:30:00") +// private LocalDateTime createdAt; +// +// @Schema(description = "수정일시", example = "2024-01-15T10:30:00") +// private LocalDateTime updatedAt; +} + diff --git a/smarketing-java/store/src/main/java/com/won/smarketing/store/dto/StoreResponse.java b/smarketing-java/store/src/main/java/com/won/smarketing/store/dto/StoreResponse.java index f0b583a..2f754c4 100644 --- a/smarketing-java/store/src/main/java/com/won/smarketing/store/dto/StoreResponse.java +++ b/smarketing-java/store/src/main/java/com/won/smarketing/store/dto/StoreResponse.java @@ -24,34 +24,34 @@ public class StoreResponse { @Schema(description = "매장명", example = "맛있는 카페") private String storeName; - + @Schema(description = "업종", example = "카페") private String businessType; - + @Schema(description = "주소", example = "서울시 강남구 테헤란로 123") private String address; - + @Schema(description = "전화번호", example = "02-1234-5678") private String phoneNumber; - + @Schema(description = "영업시간", example = "09:00 - 22:00") private String businessHours; - + @Schema(description = "휴무일", example = "매주 일요일") private String closedDays; - + @Schema(description = "좌석 수", example = "20") private Integer seatCount; - + @Schema(description = "SNS 계정 정보", example = "인스타그램: @mystore") private String snsAccounts; - + @Schema(description = "매장 설명", example = "따뜻한 분위기의 동네 카페입니다.") private String description; - + @Schema(description = "등록일시", example = "2024-01-15T10:30:00") private LocalDateTime createdAt; - + @Schema(description = "수정일시", example = "2024-01-15T10:30:00") private LocalDateTime updatedAt; } diff --git a/smarketing-java/store/src/main/java/com/won/smarketing/store/repository/MenuRepository.java b/smarketing-java/store/src/main/java/com/won/smarketing/store/repository/MenuRepository.java index 8a69e21..81d8640 100644 --- a/smarketing-java/store/src/main/java/com/won/smarketing/store/repository/MenuRepository.java +++ b/smarketing-java/store/src/main/java/com/won/smarketing/store/repository/MenuRepository.java @@ -14,21 +14,12 @@ import java.util.Optional; */ @Repository public interface MenuRepository extends JpaRepository { - - /** - * 카테고리별 메뉴 조회 (메뉴명 오름차순) - * - * @param category 메뉴 카테고리 - * @return 메뉴 목록 - */ - List findByCategoryOrderByMenuNameAsc(String category); - - /** - * 전체 메뉴 조회 (메뉴명 오름차순) - * - * @return 메뉴 목록 - */ - List findAllByOrderByMenuNameAsc(); +// /** +// * 전체 메뉴 조회 (메뉴명 오름차순) +// * +// * @return 메뉴 목록 +// */ +// List findAllByOrderByMenuNameAsc(Long ); /** * 매장별 메뉴 조회 diff --git a/smarketing-java/store/src/main/java/com/won/smarketing/store/service/MenuService.java b/smarketing-java/store/src/main/java/com/won/smarketing/store/service/MenuService.java index 764ad24..46e14fa 100644 --- a/smarketing-java/store/src/main/java/com/won/smarketing/store/service/MenuService.java +++ b/smarketing-java/store/src/main/java/com/won/smarketing/store/service/MenuService.java @@ -23,10 +23,10 @@ public interface MenuService { /** * 메뉴 목록 조회 * - * @param category 메뉴 카테고리 (선택사항) + * @param storeId 가게 ID * @return 메뉴 목록 */ - List getMenus(String category); + List getMenus(Long storeId); /** * 메뉴 정보 수정 diff --git a/smarketing-java/store/src/main/java/com/won/smarketing/store/service/MenuServiceImpl.java b/smarketing-java/store/src/main/java/com/won/smarketing/store/service/MenuServiceImpl.java index 946e4ee..88deec6 100644 --- a/smarketing-java/store/src/main/java/com/won/smarketing/store/service/MenuServiceImpl.java +++ b/smarketing-java/store/src/main/java/com/won/smarketing/store/service/MenuServiceImpl.java @@ -51,18 +51,14 @@ public class MenuServiceImpl implements MenuService { /** * 메뉴 목록 조회 * - * @param category 메뉴 카테고리 (선택사항) + * @param storeId 가게 ID * @return 메뉴 목록 */ @Override - public List getMenus(String category) { + public List getMenus(Long storeId) { List menus; - - if (category != null && !category.trim().isEmpty()) { - menus = menuRepository.findByCategoryOrderByMenuNameAsc(category); - } else { - menus = menuRepository.findAllByOrderByMenuNameAsc(); - } + + menus = menuRepository.findByStoreId(storeId); return menus.stream() .map(this::toMenuResponse) diff --git a/smarketing-java/store/src/main/java/com/won/smarketing/store/service/StoreService.java b/smarketing-java/store/src/main/java/com/won/smarketing/store/service/StoreService.java index aa2664b..ac72664 100644 --- a/smarketing-java/store/src/main/java/com/won/smarketing/store/service/StoreService.java +++ b/smarketing-java/store/src/main/java/com/won/smarketing/store/service/StoreService.java @@ -1,6 +1,7 @@ package com.won.smarketing.store.service; import com.won.smarketing.store.dto.StoreCreateRequest; +import com.won.smarketing.store.dto.StoreCreateResponse; import com.won.smarketing.store.dto.StoreResponse; import com.won.smarketing.store.dto.StoreUpdateRequest; @@ -16,7 +17,7 @@ public interface StoreService { * @param request 매장 등록 요청 정보 * @return 등록된 매장 정보 */ - StoreResponse register(StoreCreateRequest request); + StoreCreateResponse register(StoreCreateRequest request); /** * 매장 정보 조회 (현재 로그인 사용자) diff --git a/smarketing-java/store/src/main/java/com/won/smarketing/store/service/StoreServiceImpl.java b/smarketing-java/store/src/main/java/com/won/smarketing/store/service/StoreServiceImpl.java index ea23dfe..23ba5d5 100644 --- a/smarketing-java/store/src/main/java/com/won/smarketing/store/service/StoreServiceImpl.java +++ b/smarketing-java/store/src/main/java/com/won/smarketing/store/service/StoreServiceImpl.java @@ -3,6 +3,7 @@ package com.won.smarketing.store.service; import com.won.smarketing.common.exception.BusinessException; import com.won.smarketing.common.exception.ErrorCode; import com.won.smarketing.store.dto.StoreCreateRequest; +import com.won.smarketing.store.dto.StoreCreateResponse; import com.won.smarketing.store.dto.StoreResponse; import com.won.smarketing.store.dto.StoreUpdateRequest; import com.won.smarketing.store.entity.Store; @@ -35,7 +36,7 @@ public class StoreServiceImpl implements StoreService { */ @Override @Transactional - public StoreResponse register(StoreCreateRequest request) { + public StoreCreateResponse register(StoreCreateRequest request) { String memberId = getCurrentUserId(); // Long memberId = Long.valueOf(currentUserId); // 실제로는 Member ID 조회 필요 @@ -63,7 +64,7 @@ public class StoreServiceImpl implements StoreService { Store savedStore = storeRepository.save(store); log.info("매장 등록 완료: {} (ID: {})", savedStore.getStoreName(), savedStore.getId()); - return toStoreResponse(savedStore); + return toStoreCreateResponse(savedStore); } /** @@ -158,6 +159,23 @@ public class StoreServiceImpl implements StoreService { .build(); } + private StoreCreateResponse toStoreCreateResponse(Store store) { + return StoreCreateResponse.builder() + .storeId(store.getId()) +// .storeName(store.getStoreName()) +// .businessType(store.getBusinessType()) +// .address(store.getAddress()) +// .phoneNumber(store.getPhoneNumber()) +// .businessHours(store.getBusinessHours()) +// .closedDays(store.getClosedDays()) +// .seatCount(store.getSeatCount()) +// .snsAccounts(store.getSnsAccounts()) +// .description(store.getDescription()) +// .createdAt(store.getCreatedAt()) +// .updatedAt(store.getUpdatedAt()) + .build(); + } + /** * 현재 로그인된 사용자 ID 조회 *