fix store

This commit is contained in:
박서은 2025-06-12 17:39:32 +09:00
parent 9ec87678d3
commit 4f87b5f726
9 changed files with 29 additions and 19 deletions

View File

@ -4,10 +4,12 @@ import com.won.smarketing.common.dto.ApiResponse;
import com.won.smarketing.store.dto.SalesResponse; import com.won.smarketing.store.dto.SalesResponse;
import com.won.smarketing.store.service.SalesService; import com.won.smarketing.store.service.SalesService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -26,12 +28,16 @@ public class SalesController {
/** /**
* 매출 정보 조회 * 매출 정보 조회
* *
* @param storeId 가게 ID
* @return 매출 정보 (오늘, 월간, 전일 대비) * @return 매출 정보 (오늘, 월간, 전일 대비)
*/ */
@Operation(summary = "매출 조회", description = "오늘 매출, 월간 매출, 전일 대비 매출 정보를 조회합니다.") @Operation(summary = "매출 조회", description = "오늘 매출, 월간 매출, 전일 대비 매출 정보를 조회합니다.")
@GetMapping @GetMapping("/{storeId}")
public ResponseEntity<ApiResponse<SalesResponse>> getSales() { public ResponseEntity<ApiResponse<SalesResponse>> getSales(
SalesResponse response = salesService.getSales(); @Parameter(description = "가게 ID", required = true)
@PathVariable Long storeId
) {
SalesResponse response = salesService.getSales(storeId);
return ResponseEntity.ok(ApiResponse.success(response)); return ResponseEntity.ok(ApiResponse.success(response));
} }
} }

View File

@ -58,17 +58,17 @@ public class StoreController {
/** /**
* 매장 정보 수정 * 매장 정보 수정
* *
* @param storeId 수정할 매장 ID * //@param storeId 수정할 매장 ID
* @param request 매장 수정 요청 정보 * @param request 매장 수정 요청 정보
* @return 수정된 매장 정보 * @return 수정된 매장 정보
*/ */
@Operation(summary = "매장 수정", description = "매장 정보를 수정합니다.") @Operation(summary = "매장 수정", description = "매장 정보를 수정합니다.")
@PutMapping("/{storeId}") @PutMapping()
public ResponseEntity<ApiResponse<StoreResponse>> updateStore( public ResponseEntity<ApiResponse<StoreResponse>> updateStore(
@Parameter(description = "매장 ID", required = true) @Parameter(description = "매장 ID", required = true)
@PathVariable Long storeId, // @PathVariable Long storeId,
@Valid @RequestBody StoreUpdateRequest request) { @Valid @RequestBody StoreUpdateRequest request) {
StoreResponse response = storeService.updateStore(storeId, request); StoreResponse response = storeService.updateStore(request);
return ResponseEntity.ok(ApiResponse.success(response, "매장 정보가 성공적으로 수정되었습니다.")); return ResponseEntity.ok(ApiResponse.success(response, "매장 정보가 성공적으로 수정되었습니다."));
} }
} }

View File

@ -27,7 +27,7 @@ public class Menu {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "menu_id") @Column(name = "menu_id")
private Long id; private Long menuId;
@Column(name = "store_id", nullable = false) @Column(name = "store_id", nullable = false)
private Long storeId; private Long storeId;

View File

@ -5,6 +5,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Optional;
/** /**
* 메뉴 정보 데이터 접근을 위한 Repository * 메뉴 정보 데이터 접근을 위한 Repository

View File

@ -79,6 +79,7 @@ public class MenuServiceImpl implements MenuService {
@Override @Override
@Transactional @Transactional
public MenuResponse updateMenu(Long menuId, MenuUpdateRequest request) { public MenuResponse updateMenu(Long menuId, MenuUpdateRequest request) {
Menu menu = menuRepository.findById(menuId) Menu menu = menuRepository.findById(menuId)
.orElseThrow(() -> new BusinessException(ErrorCode.MENU_NOT_FOUND)); .orElseThrow(() -> new BusinessException(ErrorCode.MENU_NOT_FOUND));
@ -117,7 +118,7 @@ public class MenuServiceImpl implements MenuService {
*/ */
private MenuResponse toMenuResponse(Menu menu) { private MenuResponse toMenuResponse(Menu menu) {
return MenuResponse.builder() return MenuResponse.builder()
.menuId(menu.getId()) .menuId(menu.getMenuId())
.menuName(menu.getMenuName()) .menuName(menu.getMenuName())
.category(menu.getCategory()) .category(menu.getCategory())
.price(menu.getPrice()) .price(menu.getPrice())

View File

@ -13,5 +13,5 @@ public interface SalesService {
* *
* @return 매출 정보 * @return 매출 정보
*/ */
SalesResponse getSales(); SalesResponse getSales(Long storeId);
} }

View File

@ -3,6 +3,7 @@ package com.won.smarketing.store.service;
import com.won.smarketing.store.dto.SalesResponse; import com.won.smarketing.store.dto.SalesResponse;
import com.won.smarketing.store.entity.Sales; import com.won.smarketing.store.entity.Sales;
import com.won.smarketing.store.repository.SalesRepository; import com.won.smarketing.store.repository.SalesRepository;
import com.won.smarketing.store.repository.StoreRepository;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -21,6 +22,7 @@ import java.util.List;
public class SalesServiceImpl implements SalesService { public class SalesServiceImpl implements SalesService {
private final SalesRepository salesRepository; private final SalesRepository salesRepository;
private final StoreRepository storeRepository;
/** /**
* 매출 정보 조회 * 매출 정보 조회
@ -28,10 +30,7 @@ public class SalesServiceImpl implements SalesService {
* @return 매출 정보 (오늘, 월간, 전일 대비) * @return 매출 정보 (오늘, 월간, 전일 대비)
*/ */
@Override @Override
public SalesResponse getSales() { public SalesResponse getSales(Long storeId) {
// TODO: 현재는 더미 데이터 반환, 실제로는 현재 로그인한 사용자의 매장 ID를 사용해야
Long storeId = 1L; // 임시로 설정
// 오늘 매출 계산 // 오늘 매출 계산
BigDecimal todaySales = calculateSalesByDate(storeId, LocalDate.now()); BigDecimal todaySales = calculateSalesByDate(storeId, LocalDate.now());

View File

@ -36,9 +36,9 @@ public interface StoreService {
/** /**
* 매장 정보 수정 * 매장 정보 수정
* *
* @param storeId 매장 ID * //@param storeId 매장 ID
* @param request 매장 수정 요청 정보 * @param request 매장 수정 요청 정보
* @return 수정된 매장 정보 * @return 수정된 매장 정보
*/ */
StoreResponse updateStore(Long storeId, StoreUpdateRequest request); StoreResponse updateStore(StoreUpdateRequest request);
} }

View File

@ -104,14 +104,16 @@ public class StoreServiceImpl implements StoreService {
/** /**
* 매장 정보 수정 * 매장 정보 수정
* *
* @param storeId 매장 ID * //@param storeId 매장 ID
* @param request 매장 수정 요청 정보 * @param request 매장 수정 요청 정보
* @return 수정된 매장 정보 * @return 수정된 매장 정보
*/ */
@Override @Override
@Transactional @Transactional
public StoreResponse updateStore(Long storeId, StoreUpdateRequest request) { public StoreResponse updateStore(StoreUpdateRequest request) {
Store store = storeRepository.findById(storeId) String userId = getCurrentUserId();
Store store = storeRepository.findByUserId(userId)
.orElseThrow(() -> new BusinessException(ErrorCode.STORE_NOT_FOUND)); .orElseThrow(() -> new BusinessException(ErrorCode.STORE_NOT_FOUND));
// 매장 정보 업데이트 // 매장 정보 업데이트