From 78b36265934df85f66378d1b7f840e970506dca4 Mon Sep 17 00:00:00 2001 From: ksg Date: Wed, 17 Sep 2025 00:13:21 +0900 Subject: [PATCH 01/16] =?UTF-8?q?[fix]=20=EC=82=AC=EC=9E=A5=EB=8B=98=20?= =?UTF-8?q?=EC=98=88=EC=95=BD=20=EB=82=B4=EC=97=AD=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=ED=91=B8=EB=93=9C=ED=8A=B8=EB=9F=AD=20=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=EA=B9=8C=EC=A7=80=20=EB=B0=98=ED=99=98=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EB=B3=80=EA=B2=BD=EB=90=9C=20=EC=9A=94=EA=B5=AC?= =?UTF-8?q?=EC=82=AC=ED=95=AD=EC=97=90=20=EB=A7=9E=EA=B2=8C=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=88=98=EC=A0=95=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/OwnerReservationHistoryResponse.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationHistoryResponse.java b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationHistoryResponse.java index 3ad17d2a..47cb6fd2 100644 --- a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationHistoryResponse.java +++ b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationHistoryResponse.java @@ -17,7 +17,9 @@ public record OwnerReservationHistoryResponse( String address, @Schema(description = "예약 날짜 및 운영 시간 정보 리스트 (최대 2개)", example = "[\"2025-09-20 13시~19시\", \"2025-09-21 13시~19시\"]") - List dateTimeInfos + List dateTimeInfos, + @Schema(description = "푸드트럭 이름", example = "차콜 푸드트럭") + String foodTruckName ) { public static OwnerReservationHistoryResponse of(Reservation reservation, User member) { @@ -28,7 +30,8 @@ public static OwnerReservationHistoryResponse of(Reservation reservation, User m member.getProfileImageUrl(), member.getName(), reservation.getReservationInfo().getReservationAddress(), - dateTimeList + dateTimeList, + reservation.getFoodTruck().getName() ); } } From 4b0f00be30fb2f242db61fb1aec4b461adf983bf Mon Sep 17 00:00:00 2001 From: ksg Date: Wed, 17 Sep 2025 02:16:04 +0900 Subject: [PATCH 02/16] =?UTF-8?q?[refactor]=20dto=20=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EC=BB=A8=EB=B2=A4=EC=85=98=20?= =?UTF-8?q?=ED=86=B5=EC=9D=BC=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/OwnerReservationDetailResponse.java | 4 ++-- .../dto/response/OwnerReservationHistoryResponse.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationDetailResponse.java b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationDetailResponse.java index e6cddf1a..79b7cd02 100644 --- a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationDetailResponse.java +++ b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationDetailResponse.java @@ -9,10 +9,10 @@ public record OwnerReservationDetailResponse( @Schema(description = "상대방(손님)의 프로필 이미지 URL", example = "https://image.url/path/profile.jpg") - String userProfileImage, + String profileImage, @Schema(description = "상대방의 이름 또는 닉네임", example = "김차콜") - String username, + String name, @Schema(description = "예약 주소", example = "서울 광진구 화양동 123-45") String address, diff --git a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationHistoryResponse.java b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationHistoryResponse.java index 47cb6fd2..508afb60 100644 --- a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationHistoryResponse.java +++ b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/OwnerReservationHistoryResponse.java @@ -10,9 +10,9 @@ public record OwnerReservationHistoryResponse( @Schema(description = "예약 내역 식별자", example = "1") Long reservationId, @Schema(description = "유저(고객) 프로필 이미지", example = "http://image.png") - String userProfileImage, + String profileImage, @Schema(description = "유저(고객) 이름", example = "홍길동") - String username, + String name, @Schema(description = "예약 주소", example = "서울 광진구 화양동") String address, @Schema(description = "예약 날짜 및 운영 시간 정보 리스트 (최대 2개)", From bf556eb7bff60310e34c6e455f96ba3cd0d6870b Mon Sep 17 00:00:00 2001 From: ksg Date: Wed, 17 Sep 2025 16:42:13 +0900 Subject: [PATCH 03/16] =?UTF-8?q?[feat]=20=EB=82=98=EC=9D=98=20=ED=91=B8?= =?UTF-8?q?=EB=93=9C=ED=8A=B8=EB=9F=AD=20=EC=A1=B0=ED=9A=8C=EC=9A=A9=20?= =?UTF-8?q?=EC=9D=91=EB=8B=B4=20DTO=20=EA=B5=AC=ED=98=84=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/MyFoodTrucksResponse.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTrucksResponse.java diff --git a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTrucksResponse.java b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTrucksResponse.java new file mode 100644 index 00000000..2431b277 --- /dev/null +++ b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTrucksResponse.java @@ -0,0 +1,19 @@ +package konkuk.chacall.domain.owner.presentation.dto.response; + +import io.swagger.v3.oas.annotations.media.Schema; + +public record MyFoodTrucksResponse( + @Schema(description = "푸드트럭 식별자", example = "1") + Long foodTruckId, + @Schema(description = "푸드트럭 이미지", example = "image.png") + String imageUrl, + @Schema(description = "푸드트럭 이름", example = "차콜 푸드트럭") + String name, + @Schema(description = "푸드트럭 설명", example = "저희 푸드트럭은 10년간 이어져온...") + String description, + @Schema(description = "운영 가능 시간대", example = "09:00 ~ 21:00") + String activeTime, + @Schema(description = "호출 가능 지역", example = "서울 전체, 경기도 수원시 영통구, 인천 계양구") + String serviceArea +) { +} From a77f62a4ab7edfb83cfcedbcb825487808abfa91 Mon Sep 17 00:00:00 2001 From: ksg Date: Wed, 17 Sep 2025 17:24:18 +0900 Subject: [PATCH 04/16] =?UTF-8?q?[feat]=20=EB=82=98=EC=9D=98=20=ED=91=B8?= =?UTF-8?q?=EB=93=9C=ED=8A=B8=EB=9F=AD=20=EC=A1=B0=ED=9A=8C=EB=A5=BC=20?= =?UTF-8?q?=EC=9C=84=ED=95=9C=20=EB=A6=AC=ED=8F=AC=EC=A7=80=ED=86=A0?= =?UTF-8?q?=EB=A6=AC=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/repository/FoodTruckRepository.java | 11 +++++++++++ .../FoodTruckServiceAreaRepository.java | 17 +++++++++++++++++ ...ksResponse.java => MyFoodTruckResponse.java} | 0 3 files changed, 28 insertions(+) create mode 100644 src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckServiceAreaRepository.java rename src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/{MyFoodTrucksResponse.java => MyFoodTruckResponse.java} (100%) diff --git a/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckRepository.java b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckRepository.java index 929dfe17..d5790c87 100644 --- a/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckRepository.java +++ b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckRepository.java @@ -1,7 +1,18 @@ package konkuk.chacall.domain.foodtruck.domain.repository; import konkuk.chacall.domain.foodtruck.domain.FoodTruck; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Slice; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; public interface FoodTruckRepository extends JpaRepository { + + @Query("SELECT ft FROM FoodTruck ft " + + "WHERE ft.owner.userId = :ownerId " + + "AND ft.foodTruckId < :lastCursor " + + "ORDER BY ft.foodTruckId DESC") + Slice findByOwnerUserIdWithCursor(@Param("ownerId") Long ownerId, @Param("lastCursor") Long lastCursor, Pageable pageable); + } diff --git a/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckServiceAreaRepository.java b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckServiceAreaRepository.java new file mode 100644 index 00000000..9c14eced --- /dev/null +++ b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckServiceAreaRepository.java @@ -0,0 +1,17 @@ +package konkuk.chacall.domain.foodtruck.domain.repository; + +import konkuk.chacall.domain.foodtruck.domain.FoodTruckServiceArea; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.util.List; + +public interface FoodTruckServiceAreaRepository extends JpaRepository { + + @Query("SELECT ftsa FROM FoodTruckServiceArea ftsa " + + "JOIN FETCH ftsa.region r " + + "WHERE ftsa.foodTruck.foodTruckId IN :foodTruckIds") + List findAllWithRegionByFoodTruckIdIn(@Param("foodTruckIds") List foodTruckIds); + +} diff --git a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTrucksResponse.java b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTruckResponse.java similarity index 100% rename from src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTrucksResponse.java rename to src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTruckResponse.java From 33c814b9e6a5c685553a8c57eb0e0d1265d025fd Mon Sep 17 00:00:00 2001 From: ksg Date: Wed, 17 Sep 2025 17:25:06 +0900 Subject: [PATCH 05/16] =?UTF-8?q?[refactor]=20=EC=9D=91=EB=8B=B5=20DTO=20?= =?UTF-8?q?=EB=82=B4=EC=97=90=EC=84=9C=20=ED=98=B8=EC=B6=9C=20=EA=B0=80?= =?UTF-8?q?=EB=8A=A5=20=EC=A7=80=EC=97=AD=20List=20=EB=A5=BC=20=EB=AC=B8?= =?UTF-8?q?=EC=9E=90=EC=97=B4=EB=A1=9C=20=EB=B3=80=ED=99=98=ED=95=B4?= =?UTF-8?q?=EC=A4=84=20=EC=88=98=20=EC=9E=88=EB=8F=84=EB=A1=9D=20=ED=8C=A9?= =?UTF-8?q?=ED=86=A0=EB=A6=AC=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/MyFoodTruckResponse.java | 31 ++++++++++++++++++- .../chacall/domain/region/domain/Region.java | 2 ++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTruckResponse.java b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTruckResponse.java index 2431b277..d6aa618c 100644 --- a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTruckResponse.java +++ b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTruckResponse.java @@ -1,8 +1,13 @@ package konkuk.chacall.domain.owner.presentation.dto.response; import io.swagger.v3.oas.annotations.media.Schema; +import konkuk.chacall.domain.foodtruck.domain.FoodTruck; +import konkuk.chacall.domain.foodtruck.domain.FoodTruckServiceArea; -public record MyFoodTrucksResponse( +import java.util.List; +import java.util.stream.Collectors; + +public record MyFoodTruckResponse( @Schema(description = "푸드트럭 식별자", example = "1") Long foodTruckId, @Schema(description = "푸드트럭 이미지", example = "image.png") @@ -16,4 +21,28 @@ public record MyFoodTrucksResponse( @Schema(description = "호출 가능 지역", example = "서울 전체, 경기도 수원시 영통구, 인천 계양구") String serviceArea ) { + /** + * FoodTruck 엔티티와 연관된 FoodTruckServiceArea 리스트를 사용하여 DTO 를 생성 + * @param foodTruck 푸드트럭 엔티티 + * @param serviceAreas 해당 푸드트럭의 서비스 가능 지역 엔티티 리스트 + * @return MyFoodTruckResponse DTO + */ + public static MyFoodTruckResponse of(FoodTruck foodTruck, List serviceAreas) { + // 대표 이미지 + String mainImageUrl = foodTruck.getFoodTruckPhotoList().getMainPhotoUrl(); + + // 서비스 지역: Region 의 fullName 을 ", "로 연결하여 하나의 문자열로 만듦 + String serviceAreaString = serviceAreas.stream() + .map(serviceArea -> serviceArea.getRegion().getFullName()) + .collect(Collectors.joining(", ")); + + return new MyFoodTruckResponse( + foodTruck.getFoodTruckId(), + mainImageUrl, + foodTruck.getName(), + foodTruck.getDescription(), + foodTruck.getActiveTime(), + serviceAreaString + ); + } } diff --git a/src/main/java/konkuk/chacall/domain/region/domain/Region.java b/src/main/java/konkuk/chacall/domain/region/domain/Region.java index 54cebea8..64aaea37 100644 --- a/src/main/java/konkuk/chacall/domain/region/domain/Region.java +++ b/src/main/java/konkuk/chacall/domain/region/domain/Region.java @@ -2,7 +2,9 @@ import jakarta.persistence.*; import konkuk.chacall.global.common.domain.BaseEntity; +import lombok.Getter; +@Getter @Entity @Table(name = "regions") public class Region extends BaseEntity { From a9479a991cf5ff7ff5bebec27215cc062ae073d1 Mon Sep 17 00:00:00 2001 From: ksg Date: Wed, 17 Sep 2025 17:26:19 +0900 Subject: [PATCH 06/16] =?UTF-8?q?[feat]=20=EB=82=98=EC=9D=98=20=ED=91=B8?= =?UTF-8?q?=EB=93=9C=ED=8A=B8=EB=9F=AD=20=EC=A1=B0=ED=9A=8C=20=EC=84=9C?= =?UTF-8?q?=EB=B9=84=EC=8A=A4=20=EB=A1=9C=EC=A7=81=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../myFoodTruck/MyFoodTruckService.java | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java diff --git a/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java b/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java new file mode 100644 index 00000000..046d508f --- /dev/null +++ b/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java @@ -0,0 +1,74 @@ +package konkuk.chacall.domain.owner.application.myFoodTruck; + +import konkuk.chacall.domain.foodtruck.domain.FoodTruck; +import konkuk.chacall.domain.foodtruck.domain.FoodTruckServiceArea; +import konkuk.chacall.domain.foodtruck.domain.repository.FoodTruckRepository; +import konkuk.chacall.domain.foodtruck.domain.repository.FoodTruckServiceAreaRepository; +import konkuk.chacall.domain.owner.presentation.dto.response.MyFoodTruckResponse; +import konkuk.chacall.global.common.dto.CursorPagingRequest; +import konkuk.chacall.global.common.dto.CursorPagingResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Slice; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@RequiredArgsConstructor +@Service +@Transactional(readOnly = true) +public class MyFoodTruckService { + + private final FoodTruckRepository foodTruckRepository; + private final FoodTruckServiceAreaRepository foodTruckServiceAreaRepository; + + public CursorPagingResponse getMyFoodTrucks(CursorPagingRequest request, Long ownerId) { + // 1. 커서 기반으로 푸드트럭 Slice 조회 + Slice foodTruckSlice = findFoodTrucks(ownerId, request.cursor(), request.size()); + List foodTrucks = foodTruckSlice.getContent(); + + // 2. 호출 가능 지역 정보 Map 조회 + Map> serviceAreaMap = getServiceAreaMap(foodTrucks); + + // 3. DTO 리스트 생성 + List responses = mapToMyFoodTruckResponse(foodTrucks, serviceAreaMap); + + return CursorPagingResponse.of(responses, MyFoodTruckResponse::foodTruckId, foodTruckSlice.hasNext()); + } + + /** + * 커서 기반으로 페이징된 푸드트럭 목록 조회 + */ + private Slice findFoodTrucks(Long ownerId, Long lastCursor, int pageSize) { + return foodTruckRepository.findByOwnerUserIdWithCursor(ownerId, lastCursor, PageRequest.of(0, pageSize)); + } + + /** + * 푸드트럭 목록에 포함된 호출 가능 지역 정보 Map 조회 + */ + private Map> getServiceAreaMap(List foodTrucks) { + List foodTruckIds = foodTrucks.stream() + .map(FoodTruck::getFoodTruckId) + .toList(); + + List serviceAreas = foodTruckServiceAreaRepository + .findAllWithRegionByFoodTruckIdIn(foodTruckIds); + + return serviceAreas.stream() + .collect(Collectors.groupingBy(sa -> sa.getFoodTruck().getFoodTruckId())); + } + + private List mapToMyFoodTruckResponse(List foodTrucks, Map> serviceAreaMap) { + return foodTrucks.stream() + .map(foodTruck -> { + List serviceAreas = serviceAreaMap.getOrDefault(foodTruck.getFoodTruckId(), List.of()); + return MyFoodTruckResponse.of(foodTruck, serviceAreas); + }) + .toList(); + } + + +} From ccf1011094370d4811e10e8cd44333cfeafc3a59 Mon Sep 17 00:00:00 2001 From: ksg Date: Wed, 17 Sep 2025 17:39:05 +0900 Subject: [PATCH 07/16] =?UTF-8?q?[feat]=20=EB=82=98=EC=9D=98=20=ED=91=B8?= =?UTF-8?q?=EB=93=9C=ED=8A=B8=EB=9F=AD=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20API=20=EA=B5=AC=ED=98=84=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../owner/application/OwnerService.java | 15 ++++++++++---- .../owner/presentation/OwnerController.java | 20 +++++++++++++++---- .../swagger/SwaggerResponseDescription.java | 4 ++++ 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java b/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java index b5cbb3af..4c643ce7 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java @@ -2,13 +2,11 @@ import konkuk.chacall.domain.owner.application.bankAccount.BankAccountService; import konkuk.chacall.domain.owner.application.chatTemplate.ChatTemplateService; +import konkuk.chacall.domain.owner.application.myFoodTruck.MyFoodTruckService; import konkuk.chacall.domain.owner.application.reservation.OwnerReservationService; import konkuk.chacall.domain.owner.application.validator.OwnerValidator; import konkuk.chacall.domain.owner.presentation.dto.request.*; -import konkuk.chacall.domain.owner.presentation.dto.response.BankAccountResponse; -import konkuk.chacall.domain.owner.presentation.dto.response.ChatTemplateResponse; -import konkuk.chacall.domain.owner.presentation.dto.response.OwnerReservationDetailResponse; -import konkuk.chacall.domain.owner.presentation.dto.response.OwnerReservationHistoryResponse; +import konkuk.chacall.domain.owner.presentation.dto.response.*; import konkuk.chacall.domain.user.domain.model.User; import konkuk.chacall.global.common.dto.CursorPagingResponse; import konkuk.chacall.global.common.dto.CursorPagingRequest; @@ -24,6 +22,7 @@ public class OwnerService { private final BankAccountService bankAccountService; private final ChatTemplateService chatTemplateService; private final OwnerReservationService ownerReservationService; + private final MyFoodTruckService myFoodTruckService; // 파사드에서 사장님 검증을 거침으로써 서비스 로직에서는 사장님 검증에 신경쓰지 않도록 책임 분리 private final OwnerValidator ownerValidator; @@ -109,4 +108,12 @@ public OwnerReservationDetailResponse getReservationDetail(Long ownerId, Long re // 사장님 예약 내역 상세 조회 로직 호출 return ownerReservationService.getReservationDetail(ownerId, reservationId); } + + public CursorPagingResponse getMyFoodTrucks(CursorPagingRequest request, Long ownerId) { + // 사장님인지 먼저 검증 + ownerValidator.validateAndGetOwner(ownerId); + + // 사장님 - 나의 푸드트럭 목록 조회 + return myFoodTruckService.getMyFoodTrucks(request, ownerId); + } } diff --git a/src/main/java/konkuk/chacall/domain/owner/presentation/OwnerController.java b/src/main/java/konkuk/chacall/domain/owner/presentation/OwnerController.java index 9ab34159..453bda74 100644 --- a/src/main/java/konkuk/chacall/domain/owner/presentation/OwnerController.java +++ b/src/main/java/konkuk/chacall/domain/owner/presentation/OwnerController.java @@ -6,13 +6,11 @@ import jakarta.validation.Valid; import konkuk.chacall.domain.owner.application.OwnerService; import konkuk.chacall.domain.owner.presentation.dto.request.*; -import konkuk.chacall.domain.owner.presentation.dto.response.BankAccountResponse; -import konkuk.chacall.domain.owner.presentation.dto.response.OwnerReservationDetailResponse; -import konkuk.chacall.domain.owner.presentation.dto.response.OwnerReservationHistoryResponse; +import konkuk.chacall.domain.owner.presentation.dto.response.*; import konkuk.chacall.global.common.annotation.ExceptionDescription; import konkuk.chacall.global.common.annotation.UserId; -import konkuk.chacall.domain.owner.presentation.dto.response.ChatTemplateResponse; import konkuk.chacall.global.common.dto.BaseResponse; +import konkuk.chacall.global.common.dto.CursorPagingRequest; import konkuk.chacall.global.common.dto.CursorPagingResponse; import konkuk.chacall.global.common.swagger.SwaggerResponseDescription; import lombok.RequiredArgsConstructor; @@ -170,4 +168,18 @@ public BaseResponse getReservationDetail( ownerId, reservationId)); } + + @Operation( + summary = "나의 푸드트럭 목록 조회 (무한 스크롤)", + description = "사장님 - 나의 푸드트럭 목록을 조회합니다.") + @ExceptionDescription(SwaggerResponseDescription.OWNER_GET_FOOD_TRUCK) + @GetMapping("/me/food-trucks") + public BaseResponse> getMyFoodTrucks( + @Valid @ParameterObject final CursorPagingRequest request, + @Parameter(hidden = true) @UserId final Long ownerId + ) { + return BaseResponse.ok(ownerService.getMyFoodTrucks( + request, + ownerId)); + } } diff --git a/src/main/java/konkuk/chacall/global/common/swagger/SwaggerResponseDescription.java b/src/main/java/konkuk/chacall/global/common/swagger/SwaggerResponseDescription.java index 229c8346..d330bc58 100644 --- a/src/main/java/konkuk/chacall/global/common/swagger/SwaggerResponseDescription.java +++ b/src/main/java/konkuk/chacall/global/common/swagger/SwaggerResponseDescription.java @@ -81,6 +81,10 @@ public enum SwaggerResponseDescription { USER_FORBIDDEN, RESERVATION_NOT_FOUND ))), + OWNER_GET_FOOD_TRUCK(new LinkedHashSet<>(Set.of( + USER_NOT_FOUND, + USER_FORBIDDEN + ))), // Member From 378a04b3c7e71b9ce9a2acacef4c6a0a778f0930 Mon Sep 17 00:00:00 2001 From: ksg Date: Wed, 17 Sep 2025 18:03:44 +0900 Subject: [PATCH 08/16] =?UTF-8?q?[feat]=20=EB=A6=AC=ED=8F=AC=EC=A7=80?= =?UTF-8?q?=ED=86=A0=EB=A6=AC=20=EC=B6=94=EA=B0=80=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/repository/AvailableDateRepository.java | 7 +++++++ .../domain/foodtruck/domain/repository/MenuRepository.java | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/AvailableDateRepository.java create mode 100644 src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/MenuRepository.java diff --git a/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/AvailableDateRepository.java b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/AvailableDateRepository.java new file mode 100644 index 00000000..65347776 --- /dev/null +++ b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/AvailableDateRepository.java @@ -0,0 +1,7 @@ +package konkuk.chacall.domain.foodtruck.domain.repository; + +import konkuk.chacall.domain.foodtruck.domain.AvailableDate; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface AvailableDateRepository extends JpaRepository { +} diff --git a/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/MenuRepository.java b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/MenuRepository.java new file mode 100644 index 00000000..ade6ecbd --- /dev/null +++ b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/MenuRepository.java @@ -0,0 +1,7 @@ +package konkuk.chacall.domain.foodtruck.domain.repository; + +import konkuk.chacall.domain.foodtruck.domain.Menu; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MenuRepository extends JpaRepository { +} From 79a7bbfede902a9b48c2a40a8f4dfd6167294923 Mon Sep 17 00:00:00 2001 From: ksg Date: Wed, 17 Sep 2025 18:04:17 +0900 Subject: [PATCH 09/16] =?UTF-8?q?[refactor]=20=EA=B6=8C=ED=95=9C=20?= =?UTF-8?q?=EA=B2=80=EC=A6=9D=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC=20=EB=B0=8F=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EA=B5=AC?= =?UTF-8?q?=EB=B6=84=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../konkuk/chacall/domain/foodtruck/domain/FoodTruck.java | 4 ++++ .../domain/reservation/domain/model/Reservation.java | 6 ++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/konkuk/chacall/domain/foodtruck/domain/FoodTruck.java b/src/main/java/konkuk/chacall/domain/foodtruck/domain/FoodTruck.java index a2d8caf9..88f06dbc 100644 --- a/src/main/java/konkuk/chacall/domain/foodtruck/domain/FoodTruck.java +++ b/src/main/java/konkuk/chacall/domain/foodtruck/domain/FoodTruck.java @@ -70,6 +70,10 @@ public class FoodTruck extends BaseEntity { @JoinColumn(name = "user_id", nullable = false) private User owner; + public boolean isOwnedBy(Long ownerId) { + return this.getOwner().getUserId().equals(ownerId); + } + public void updateAverageRating(double rating) { ratingInfo.updateAverageRating(rating); } diff --git a/src/main/java/konkuk/chacall/domain/reservation/domain/model/Reservation.java b/src/main/java/konkuk/chacall/domain/reservation/domain/model/Reservation.java index 39b059f5..b2666e96 100644 --- a/src/main/java/konkuk/chacall/domain/reservation/domain/model/Reservation.java +++ b/src/main/java/konkuk/chacall/domain/reservation/domain/model/Reservation.java @@ -6,9 +6,7 @@ import konkuk.chacall.domain.reservation.domain.value.ReservationStatus; import konkuk.chacall.domain.user.domain.model.User; import konkuk.chacall.global.common.domain.BaseEntity; -import konkuk.chacall.global.common.exception.BusinessException; import konkuk.chacall.global.common.exception.DomainRuleException; -import konkuk.chacall.global.common.exception.code.ErrorCode; import lombok.*; import static konkuk.chacall.global.common.exception.code.ErrorCode.*; @@ -45,8 +43,8 @@ public class Reservation extends BaseEntity { @JoinColumn(name = "food_truck_id", nullable = false) private FoodTruck foodTruck; - public boolean isOwnedBy(Long ownerId) { - return foodTruck.getOwner().getUserId().equals(ownerId); + public boolean isForFoodTruckOwnedBy(Long ownerId) { + return foodTruck.isOwnedBy(ownerId); } public boolean isReservedBy(Long userId) { From 7a66740b300e3f1c6ac4162702078a6423a2b19c Mon Sep 17 00:00:00 2001 From: ksg Date: Fri, 19 Sep 2025 02:33:10 +0900 Subject: [PATCH 10/16] =?UTF-8?q?[feat]=20=EB=82=98=EC=9D=98=20=ED=91=B8?= =?UTF-8?q?=EB=93=9C=ED=8A=B8=EB=9F=AD=20=EC=82=AD=EC=A0=9C=20=EC=84=9C?= =?UTF-8?q?=EB=B9=84=EC=8A=A4=20=EB=A1=9C=EC=A7=81=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/AvailableDateRepository.java | 7 +++ .../FoodTruckServiceAreaRepository.java | 4 ++ .../domain/repository/MenuRepository.java | 7 +++ .../domain/repository/RatingRepository.java | 6 +++ .../repository/SavedFoodTruckRepository.java | 5 +++ .../myFoodTruck/MyFoodTruckService.java | 45 +++++++++++++++++++ .../reservation/OwnerReservationService.java | 2 +- .../repository/ReservationRepository.java | 7 ++- 8 files changed, 80 insertions(+), 3 deletions(-) diff --git a/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/AvailableDateRepository.java b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/AvailableDateRepository.java index 65347776..4e7a1dce 100644 --- a/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/AvailableDateRepository.java +++ b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/AvailableDateRepository.java @@ -2,6 +2,13 @@ import konkuk.chacall.domain.foodtruck.domain.AvailableDate; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; public interface AvailableDateRepository extends JpaRepository { + + @Modifying + @Query("DELETE FROM AvailableDate ad WHERE ad.foodTruck.foodTruckId = :foodTruckId") + void deleteAllByFoodTruckId(@Param("foodTruckId") Long foodTruckId); } diff --git a/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckServiceAreaRepository.java b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckServiceAreaRepository.java index 9c14eced..5904a5d8 100644 --- a/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckServiceAreaRepository.java +++ b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/FoodTruckServiceAreaRepository.java @@ -2,6 +2,7 @@ import konkuk.chacall.domain.foodtruck.domain.FoodTruckServiceArea; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -14,4 +15,7 @@ public interface FoodTruckServiceAreaRepository extends JpaRepository findAllWithRegionByFoodTruckIdIn(@Param("foodTruckIds") List foodTruckIds); + @Modifying + @Query("DELETE FROM FoodTruckServiceArea ftsa WHERE ftsa.foodTruck.foodTruckId = :foodTruckId") + void deleteAllByFoodTruckId(@Param("foodTruckId") Long foodTruckId); } diff --git a/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/MenuRepository.java b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/MenuRepository.java index ade6ecbd..53405dee 100644 --- a/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/MenuRepository.java +++ b/src/main/java/konkuk/chacall/domain/foodtruck/domain/repository/MenuRepository.java @@ -2,6 +2,13 @@ import konkuk.chacall.domain.foodtruck.domain.Menu; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; public interface MenuRepository extends JpaRepository { + + @Modifying + @Query("DELETE FROM Menu m WHERE m.foodTruck.foodTruckId = :foodTruckId") + void deleteAllByFoodTruckId(@Param("foodTruckId") Long foodTruckId); } diff --git a/src/main/java/konkuk/chacall/domain/member/domain/repository/RatingRepository.java b/src/main/java/konkuk/chacall/domain/member/domain/repository/RatingRepository.java index b58f0257..492518ac 100644 --- a/src/main/java/konkuk/chacall/domain/member/domain/repository/RatingRepository.java +++ b/src/main/java/konkuk/chacall/domain/member/domain/repository/RatingRepository.java @@ -5,7 +5,9 @@ import konkuk.chacall.domain.user.domain.model.User; import org.springframework.data.jpa.repository.EntityGraph; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import java.util.List; import java.util.Optional; @@ -19,4 +21,8 @@ public interface RatingRepository extends JpaRepository { "WHERE r.member = :member " + "AND r.isRated = false") List findAllByMemberAndIsRatedFalse(User member); + + @Modifying + @Query("DELETE FROM Rating r WHERE r.foodTruck.foodTruckId = :foodTruckId") + void deleteAllByFoodTruckId(@Param("foodTruckId") Long foodTruckId); } diff --git a/src/main/java/konkuk/chacall/domain/member/domain/repository/SavedFoodTruckRepository.java b/src/main/java/konkuk/chacall/domain/member/domain/repository/SavedFoodTruckRepository.java index a1c8ed23..08482943 100644 --- a/src/main/java/konkuk/chacall/domain/member/domain/repository/SavedFoodTruckRepository.java +++ b/src/main/java/konkuk/chacall/domain/member/domain/repository/SavedFoodTruckRepository.java @@ -7,6 +7,7 @@ import org.springframework.data.domain.Slice; import org.springframework.data.jpa.repository.EntityGraph; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -27,4 +28,8 @@ Slice findMemberSavedFoodTruckWithCursor( @Param("member") User member, @Param("lastCursor") Long lastCursor, Pageable pageable); + + @Modifying + @Query("DELETE FROM SavedFoodTruck sft WHERE sft.foodTruck.foodTruckId = :foodTruckId") + void deleteAllByFoodTruckId(@Param("foodTruckId") Long foodTruckId); } diff --git a/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java b/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java index 046d508f..427730b5 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java @@ -2,11 +2,19 @@ import konkuk.chacall.domain.foodtruck.domain.FoodTruck; import konkuk.chacall.domain.foodtruck.domain.FoodTruckServiceArea; +import konkuk.chacall.domain.foodtruck.domain.repository.AvailableDateRepository; import konkuk.chacall.domain.foodtruck.domain.repository.FoodTruckRepository; import konkuk.chacall.domain.foodtruck.domain.repository.FoodTruckServiceAreaRepository; +import konkuk.chacall.domain.foodtruck.domain.repository.MenuRepository; +import konkuk.chacall.domain.member.domain.repository.RatingRepository; +import konkuk.chacall.domain.member.domain.repository.SavedFoodTruckRepository; import konkuk.chacall.domain.owner.presentation.dto.response.MyFoodTruckResponse; +import konkuk.chacall.domain.reservation.domain.repository.ReservationRepository; import konkuk.chacall.global.common.dto.CursorPagingRequest; import konkuk.chacall.global.common.dto.CursorPagingResponse; +import konkuk.chacall.global.common.exception.BusinessException; +import konkuk.chacall.global.common.exception.EntityNotFoundException; +import konkuk.chacall.global.common.exception.code.ErrorCode; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Slice; @@ -24,6 +32,11 @@ public class MyFoodTruckService { private final FoodTruckRepository foodTruckRepository; private final FoodTruckServiceAreaRepository foodTruckServiceAreaRepository; + private final MenuRepository menuRepository; + private final ReservationRepository reservationRepository; + private final SavedFoodTruckRepository savedFoodTruckRepository; + private final AvailableDateRepository availableDateRepository; + private final RatingRepository ratingRepository; public CursorPagingResponse getMyFoodTrucks(CursorPagingRequest request, Long ownerId) { // 1. 커서 기반으로 푸드트럭 Slice 조회 @@ -39,6 +52,38 @@ public CursorPagingResponse getMyFoodTrucks(CursorPagingReq return CursorPagingResponse.of(responses, MyFoodTruckResponse::foodTruckId, foodTruckSlice.hasNext()); } + @Transactional + public void deleteMyFoodTruck(Long ownerId, Long foodTruckId) { + // 푸드트럭 조회 및 소유권 확인 + FoodTruck foodTruck = foodTruckRepository.findById(foodTruckId) + .orElseThrow(() -> new EntityNotFoundException(ErrorCode.FOOD_TRUCK_NOT_FOUND)); + + if (!foodTruck.isOwnedBy(ownerId)) { + throw new BusinessException(ErrorCode.USER_FORBIDDEN); + } + + // 푸드트럭 호출 가능 지역 삭제 + foodTruckServiceAreaRepository.deleteAllByFoodTruckId(foodTruckId); + + // 푸드트럭 메뉴 삭제 + menuRepository.deleteAllByFoodTruckId(foodTruckId); + + // 푸드트럭 가능한 일정대 삭제 + availableDateRepository.deleteAllByFoodTruckId(foodTruckId); + + // 푸드트럭 관련 평점 삭제 + ratingRepository.deleteAllByFoodTruckId(foodTruckId); + + // 푸드트럭 관련 예약 삭제 + reservationRepository.deleteAllByFoodTruckId(foodTruckId); + + // 푸드트럭 저장한 푸드트럭 삭제 + savedFoodTruckRepository.deleteAllByFoodTruckId(foodTruckId); + + // 푸드트럭 삭제 + foodTruckRepository.delete(foodTruck); + } + /** * 커서 기반으로 페이징된 푸드트럭 목록 조회 */ diff --git a/src/main/java/konkuk/chacall/domain/owner/application/reservation/OwnerReservationService.java b/src/main/java/konkuk/chacall/domain/owner/application/reservation/OwnerReservationService.java index dd486185..4b181fef 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/reservation/OwnerReservationService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/reservation/OwnerReservationService.java @@ -50,7 +50,7 @@ public OwnerReservationDetailResponse getReservationDetail(Long ownerId, Long re Reservation reservation = reservationRepository.findByIdWithDetails(reservationId) .orElseThrow(() -> new EntityNotFoundException(ErrorCode.RESERVATION_NOT_FOUND)); - if(!reservation.isOwnedBy(ownerId)) { + if(!reservation.isForFoodTruckOwnedBy(ownerId)) { throw new BusinessException(ErrorCode.RESERVATION_NOT_OWNED); } diff --git a/src/main/java/konkuk/chacall/domain/reservation/domain/repository/ReservationRepository.java b/src/main/java/konkuk/chacall/domain/reservation/domain/repository/ReservationRepository.java index 4d7992d3..5c58649f 100644 --- a/src/main/java/konkuk/chacall/domain/reservation/domain/repository/ReservationRepository.java +++ b/src/main/java/konkuk/chacall/domain/reservation/domain/repository/ReservationRepository.java @@ -6,6 +6,7 @@ import org.springframework.data.domain.Slice; import org.springframework.data.jpa.repository.EntityGraph; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -24,7 +25,6 @@ Slice findOwnerReservationsByStatusWithCursor( @Param("lastCursor") Long lastCursor, Pageable pageable); - @Query("SELECT r FROM Reservation r " + "JOIN FETCH r.member m " + "JOIN FETCH r.foodTruck ft " + @@ -32,7 +32,6 @@ Slice findOwnerReservationsByStatusWithCursor( "WHERE r.reservationId = :reservationId") Optional findByIdWithDetails(@Param("reservationId") Long reservationId); - @EntityGraph(attributePaths = {"foodTruck"}) @Query("SELECT r FROM Reservation r " + "WHERE r.member.userId = :memberId " + @@ -44,4 +43,8 @@ Slice findMemberReservationsByStatusWithCursor( @Param("status") ReservationStatus status, @Param("lastCursor") Long lastCursor, Pageable pageable); + + @Modifying + @Query("DELETE FROM Reservation r WHERE r.foodTruck.foodTruckId = :foodTruckId") + void deleteAllByFoodTruckId(@Param("foodTruckId") Long foodTruckId); } From bdb2dc2da150f3642a8401a355db42cf2bd2d85a Mon Sep 17 00:00:00 2001 From: ksg Date: Wed, 17 Sep 2025 18:15:35 +0900 Subject: [PATCH 11/16] =?UTF-8?q?[feat]=20=EB=82=98=EC=9D=98=20=ED=91=B8?= =?UTF-8?q?=EB=93=9C=ED=8A=B8=EB=9F=AD=20=EC=82=AD=EC=A0=9C=20API=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/owner/application/OwnerService.java | 10 +++++++++- .../domain/owner/presentation/OwnerController.java | 13 +++++++++++++ .../common/swagger/SwaggerResponseDescription.java | 5 +++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java b/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java index 4c643ce7..cf75e538 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java @@ -113,7 +113,15 @@ public CursorPagingResponse getMyFoodTrucks(CursorPagingReq // 사장님인지 먼저 검증 ownerValidator.validateAndGetOwner(ownerId); - // 사장님 - 나의 푸드트럭 목록 조회 + // 사장님 - 나의 푸드트럭 목록 조회 로직 호출 return myFoodTruckService.getMyFoodTrucks(request, ownerId); } + + public void deleteMyFoodTruck(Long ownerId, Long foodTruckId) { + // 사장님인지 먼저 검증 + ownerValidator.validateAndGetOwner(ownerId); + + // 사장님 - 나의 푸드트럭 삭제 로직 호출 + myFoodTruckService.deleteMyFoodTruck(ownerId, foodTruckId); + } } diff --git a/src/main/java/konkuk/chacall/domain/owner/presentation/OwnerController.java b/src/main/java/konkuk/chacall/domain/owner/presentation/OwnerController.java index 453bda74..0301e611 100644 --- a/src/main/java/konkuk/chacall/domain/owner/presentation/OwnerController.java +++ b/src/main/java/konkuk/chacall/domain/owner/presentation/OwnerController.java @@ -182,4 +182,17 @@ public BaseResponse> getMyFoodTrucks( request, ownerId)); } + + @Operation( + summary = "나의 푸드트럭 삭제", + description = "사장님 - 푸드트럭을 삭제합니다." + ) + @ExceptionDescription(SwaggerResponseDescription.OWNER_DELETE_FOOD_TRUCK) + @DeleteMapping("/me/food-trucks/{foodTruckId}") + public BaseResponse deleteFoodTruck ( + @PathVariable final Long foodTruckId, + @Parameter(hidden = true) @UserId final Long ownerId) { + ownerService.deleteMyFoodTruck(ownerId, foodTruckId); + return BaseResponse.ok(null); + } } diff --git a/src/main/java/konkuk/chacall/global/common/swagger/SwaggerResponseDescription.java b/src/main/java/konkuk/chacall/global/common/swagger/SwaggerResponseDescription.java index d330bc58..b2578bbf 100644 --- a/src/main/java/konkuk/chacall/global/common/swagger/SwaggerResponseDescription.java +++ b/src/main/java/konkuk/chacall/global/common/swagger/SwaggerResponseDescription.java @@ -85,6 +85,11 @@ public enum SwaggerResponseDescription { USER_NOT_FOUND, USER_FORBIDDEN ))), + OWNER_DELETE_FOOD_TRUCK(new LinkedHashSet<>(Set.of( + USER_NOT_FOUND, + USER_FORBIDDEN, + FOOD_TRUCK_NOT_FOUND + ))), // Member From 54cbfc131adac8a3c578f3119d2fc8ee8945afc8 Mon Sep 17 00:00:00 2001 From: ksg Date: Thu, 18 Sep 2025 22:45:42 +0900 Subject: [PATCH 12/16] =?UTF-8?q?[refactor]=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=BB=A8=EB=B2=A4=EC=85=98=EC=97=90=20=EB=A7=9E=EA=B2=8C=20?= =?UTF-8?q?=ED=8A=B8=EB=9E=9C=EC=9E=AD=EC=85=98=20=EC=9E=AC=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../konkuk/chacall/domain/owner/application/OwnerService.java | 2 ++ .../owner/application/bankAccount/BankAccountService.java | 2 -- .../owner/application/chatTemplate/ChatTemplateService.java | 2 -- .../owner/application/myFoodTruck/MyFoodTruckService.java | 1 - .../owner/application/reservation/OwnerReservationService.java | 2 -- 5 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java b/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java index cf75e538..739e05ed 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java @@ -12,11 +12,13 @@ import konkuk.chacall.global.common.dto.CursorPagingRequest; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @RequiredArgsConstructor @Service +@Transactional(readOnly = true) public class OwnerService { private final BankAccountService bankAccountService; diff --git a/src/main/java/konkuk/chacall/domain/owner/application/bankAccount/BankAccountService.java b/src/main/java/konkuk/chacall/domain/owner/application/bankAccount/BankAccountService.java index c37955e6..ee1fd924 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/bankAccount/BankAccountService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/bankAccount/BankAccountService.java @@ -7,7 +7,6 @@ import konkuk.chacall.domain.owner.presentation.dto.response.BankAccountResponse; import konkuk.chacall.domain.user.domain.model.User; import konkuk.chacall.global.common.exception.BusinessException; -import konkuk.chacall.global.common.exception.DomainRuleException; import konkuk.chacall.global.common.exception.EntityNotFoundException; import konkuk.chacall.global.common.exception.code.ErrorCode; import lombok.RequiredArgsConstructor; @@ -18,7 +17,6 @@ @Service @RequiredArgsConstructor -@Transactional(readOnly = true) public class BankAccountService { private final BankAccountRepository bankAccountRepository; diff --git a/src/main/java/konkuk/chacall/domain/owner/application/chatTemplate/ChatTemplateService.java b/src/main/java/konkuk/chacall/domain/owner/application/chatTemplate/ChatTemplateService.java index fa31a9ae..3178f9d6 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/chatTemplate/ChatTemplateService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/chatTemplate/ChatTemplateService.java @@ -6,7 +6,6 @@ import konkuk.chacall.domain.owner.presentation.dto.request.UpdateChatTemplateRequest; import konkuk.chacall.domain.owner.presentation.dto.response.ChatTemplateResponse; import konkuk.chacall.domain.user.domain.model.User; -import konkuk.chacall.global.common.exception.BusinessException; import konkuk.chacall.global.common.exception.EntityNotFoundException; import konkuk.chacall.global.common.exception.code.ErrorCode; import lombok.RequiredArgsConstructor; @@ -17,7 +16,6 @@ @RequiredArgsConstructor @Service -@Transactional(readOnly = true) public class ChatTemplateService { private final ChatTemplateRepository chatTemplateRepository; diff --git a/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java b/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java index 427730b5..d4b4242f 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java @@ -27,7 +27,6 @@ @RequiredArgsConstructor @Service -@Transactional(readOnly = true) public class MyFoodTruckService { private final FoodTruckRepository foodTruckRepository; diff --git a/src/main/java/konkuk/chacall/domain/owner/application/reservation/OwnerReservationService.java b/src/main/java/konkuk/chacall/domain/owner/application/reservation/OwnerReservationService.java index 4b181fef..64187cfd 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/reservation/OwnerReservationService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/reservation/OwnerReservationService.java @@ -17,7 +17,6 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Slice; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @@ -25,7 +24,6 @@ @RequiredArgsConstructor @Service -@Transactional(readOnly = true) public class OwnerReservationService { private final ReservationRepository reservationRepository; From f4501f5b1390ec10bcc1c3584157cd9825ccedd8 Mon Sep 17 00:00:00 2001 From: ksg Date: Thu, 18 Sep 2025 22:47:41 +0900 Subject: [PATCH 13/16] =?UTF-8?q?[fix]=20=ED=91=B8=EB=93=9C=ED=8A=B8?= =?UTF-8?q?=EB=9F=AD=20=EC=86=8C=EC=9C=A0=20=EA=B2=80=EC=A6=9D=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../owner/application/myFoodTruck/MyFoodTruckService.java | 2 +- .../konkuk/chacall/global/common/exception/code/ErrorCode.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java b/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java index d4b4242f..af24075e 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java @@ -58,7 +58,7 @@ public void deleteMyFoodTruck(Long ownerId, Long foodTruckId) { .orElseThrow(() -> new EntityNotFoundException(ErrorCode.FOOD_TRUCK_NOT_FOUND)); if (!foodTruck.isOwnedBy(ownerId)) { - throw new BusinessException(ErrorCode.USER_FORBIDDEN); + throw new BusinessException(ErrorCode.FOOD_TRUCK_NOT_OWNED); } // 푸드트럭 호출 가능 지역 삭제 diff --git a/src/main/java/konkuk/chacall/global/common/exception/code/ErrorCode.java b/src/main/java/konkuk/chacall/global/common/exception/code/ErrorCode.java index e79a05e1..a6c49f92 100644 --- a/src/main/java/konkuk/chacall/global/common/exception/code/ErrorCode.java +++ b/src/main/java/konkuk/chacall/global/common/exception/code/ErrorCode.java @@ -69,6 +69,7 @@ public enum ErrorCode implements ResponseCode { * FoodTruck */ FOOD_TRUCK_NOT_FOUND(HttpStatus.NOT_FOUND, 110001, "푸드트럭을 찾을 수 없습니다."), + FOOD_TRUCK_NOT_OWNED(HttpStatus.FORBIDDEN, 110002, "해당 푸드트럭의 소유자가 아닙니다."), /** From 8e94e4e99efbadf4c650d95927446c3ae422418d Mon Sep 17 00:00:00 2001 From: ksg Date: Thu, 18 Sep 2025 22:57:20 +0900 Subject: [PATCH 14/16] =?UTF-8?q?[refactor]=20=ED=98=B8=EC=B6=9C=20?= =?UTF-8?q?=EA=B0=80=EB=8A=A5=20=EC=A7=80=EC=97=AD=20=EB=AC=B8=EC=9E=90?= =?UTF-8?q?=EC=97=B4=20=EC=83=9D=EC=84=B1=20=EC=B1=85=EC=9E=84=EC=9D=84=20?= =?UTF-8?q?FoodTruck=20=EC=9D=B4=20=EA=B0=96=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chacall/domain/foodtruck/domain/FoodTruck.java | 10 ++++++++++ .../presentation/dto/response/MyFoodTruckResponse.java | 7 +------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/konkuk/chacall/domain/foodtruck/domain/FoodTruck.java b/src/main/java/konkuk/chacall/domain/foodtruck/domain/FoodTruck.java index 88f06dbc..54c82a01 100644 --- a/src/main/java/konkuk/chacall/domain/foodtruck/domain/FoodTruck.java +++ b/src/main/java/konkuk/chacall/domain/foodtruck/domain/FoodTruck.java @@ -8,6 +8,9 @@ import konkuk.chacall.global.common.domain.BaseEntity; import lombok.*; +import java.util.List; +import java.util.stream.Collectors; + @Builder @Entity @Table(name = "food_trucks") @@ -77,4 +80,11 @@ public boolean isOwnedBy(Long ownerId) { public void updateAverageRating(double rating) { ratingInfo.updateAverageRating(rating); } + + // 푸드트럭의 호출 가능 지역을 반환해주는 메서드 + public String getServiceAreas(List serviceAreaList) { + return serviceAreaList.stream() + .map(serviceArea -> serviceArea.getRegion().getFullName()) + .collect(Collectors.joining(", ")); + } } diff --git a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTruckResponse.java b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTruckResponse.java index d6aa618c..e1e71312 100644 --- a/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTruckResponse.java +++ b/src/main/java/konkuk/chacall/domain/owner/presentation/dto/response/MyFoodTruckResponse.java @@ -31,18 +31,13 @@ public static MyFoodTruckResponse of(FoodTruck foodTruck, List serviceArea.getRegion().getFullName()) - .collect(Collectors.joining(", ")); - return new MyFoodTruckResponse( foodTruck.getFoodTruckId(), mainImageUrl, foodTruck.getName(), foodTruck.getDescription(), foodTruck.getActiveTime(), - serviceAreaString + foodTruck.getServiceAreas(serviceAreas) ); } } From 9d404b6e3a874340a576680af2579f2777a03082 Mon Sep 17 00:00:00 2001 From: ksg Date: Fri, 19 Sep 2025 14:09:39 +0900 Subject: [PATCH 15/16] =?UTF-8?q?[refactor]=20=ED=8C=8C=EC=82=AC=EB=93=9C?= =?UTF-8?q?=20=ED=81=B4=EB=9E=98=EC=8A=A4=20=EB=A9=94=EC=84=9C=EB=93=9C?= =?UTF-8?q?=EC=97=90=EB=A7=8C=20@Transactional=20=EB=B6=99=EC=9D=B4?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/owner/application/OwnerService.java | 14 ++++++++++++-- .../bankAccount/BankAccountService.java | 3 --- .../chatTemplate/ChatTemplateService.java | 3 --- .../myFoodTruck/MyFoodTruckService.java | 1 - 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java b/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java index 739e05ed..8d10a9ac 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java @@ -18,7 +18,6 @@ @RequiredArgsConstructor @Service -@Transactional(readOnly = true) public class OwnerService { private final BankAccountService bankAccountService; @@ -29,6 +28,7 @@ public class OwnerService { // 파사드에서 사장님 검증을 거침으로써 서비스 로직에서는 사장님 검증에 신경쓰지 않도록 책임 분리 private final OwnerValidator ownerValidator; + @Transactional public void registerBankAccount(RegisterBankAccountRequest request, Long ownerId) { // 사장님인지 먼저 검증 User owner = ownerValidator.validateAndGetOwner(ownerId); @@ -37,6 +37,7 @@ public void registerBankAccount(RegisterBankAccountRequest request, Long ownerId bankAccountService.registerBankAccount(request, owner); } + @Transactional(readOnly = true) public BankAccountResponse getBankAccount(Long ownerId) { // 사장님인지 먼저 검증 ownerValidator.validateAndGetOwner(ownerId); @@ -45,6 +46,7 @@ public BankAccountResponse getBankAccount(Long ownerId) { return bankAccountService.getBankAccount(ownerId); } + @Transactional public void updateBankAccount(Long ownerId, Long bankAccountId, UpdateBankAccountRequest request) { // 사장님인지 먼저 검증 ownerValidator.validateAndGetOwner(ownerId); @@ -53,6 +55,7 @@ public void updateBankAccount(Long ownerId, Long bankAccountId, UpdateBankAccoun bankAccountService.updateBankAccount(ownerId, bankAccountId, request); } + @Transactional public void deleteBankAccount(Long ownerId, Long bankAccountId) { // 사장님인지 먼저 검증 ownerValidator.validateAndGetOwner(ownerId); @@ -61,7 +64,7 @@ public void deleteBankAccount(Long ownerId, Long bankAccountId) { bankAccountService.deleteBankAccount(ownerId, bankAccountId); } - + @Transactional public void registerChatTemplate(RegisterChatTemplateRequest request, Long ownerId) { // 사장님인지 먼저 검증 User owner = ownerValidator.validateAndGetOwner(ownerId); @@ -70,6 +73,7 @@ public void registerChatTemplate(RegisterChatTemplateRequest request, Long owner chatTemplateService.registerChatTemplate(request, owner); } + @Transactional(readOnly = true) public List getChatTemplates(Long ownerId) { // 사장님인지 먼저 검증 ownerValidator.validateAndGetOwner(ownerId); @@ -78,6 +82,7 @@ public List getChatTemplates(Long ownerId) { return chatTemplateService.getChatTemplates(ownerId); } + @Transactional public void updateChatTemplate(UpdateChatTemplateRequest request, Long ownerId, Long chatTemplateId) { // 사장님인지 먼저 검증 ownerValidator.validateAndGetOwner(ownerId); @@ -86,6 +91,7 @@ public void updateChatTemplate(UpdateChatTemplateRequest request, Long ownerId, chatTemplateService.updateChatTemplate(request, chatTemplateId); } + @Transactional public void deleteChatTemplate(Long ownerId, Long chatTemplateId) { // 사장님인지 먼저 검증 ownerValidator.validateAndGetOwner(ownerId); @@ -94,6 +100,7 @@ public void deleteChatTemplate(Long ownerId, Long chatTemplateId) { chatTemplateService.deleteChatTemplate(chatTemplateId); } + @Transactional(readOnly = true) public CursorPagingResponse getOwnerReservations(GetReservationHistoryRequest request, Long ownerId) { // 사장님인지 먼저 검증 ownerValidator.validateAndGetOwner(ownerId); @@ -103,6 +110,7 @@ public CursorPagingResponse getOwnerReservation return ownerReservationService.getOwnerReservations(ownerId, request.status(), cursorPagingRequest.cursor(), cursorPagingRequest.size()); } + @Transactional(readOnly = true) public OwnerReservationDetailResponse getReservationDetail(Long ownerId, Long reservationId) { // 사장님인지 먼저 검증 ownerValidator.validateAndGetOwner(ownerId); @@ -111,6 +119,7 @@ public OwnerReservationDetailResponse getReservationDetail(Long ownerId, Long re return ownerReservationService.getReservationDetail(ownerId, reservationId); } + @Transactional(readOnly = true) public CursorPagingResponse getMyFoodTrucks(CursorPagingRequest request, Long ownerId) { // 사장님인지 먼저 검증 ownerValidator.validateAndGetOwner(ownerId); @@ -119,6 +128,7 @@ public CursorPagingResponse getMyFoodTrucks(CursorPagingReq return myFoodTruckService.getMyFoodTrucks(request, ownerId); } + @Transactional public void deleteMyFoodTruck(Long ownerId, Long foodTruckId) { // 사장님인지 먼저 검증 ownerValidator.validateAndGetOwner(ownerId); diff --git a/src/main/java/konkuk/chacall/domain/owner/application/bankAccount/BankAccountService.java b/src/main/java/konkuk/chacall/domain/owner/application/bankAccount/BankAccountService.java index ee1fd924..251293b1 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/bankAccount/BankAccountService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/bankAccount/BankAccountService.java @@ -21,7 +21,6 @@ public class BankAccountService { private final BankAccountRepository bankAccountRepository; - @Transactional public void registerBankAccount(RegisterBankAccountRequest request, User owner) { // 해당 유저의 계좌가 이미 있는지 확인 @@ -50,7 +49,6 @@ public BankAccountResponse getBankAccount(Long ownerId) { } - @Transactional public void updateBankAccount(Long ownerId, Long bankAccountId, UpdateBankAccountRequest request) { // 수정할 계좌를 찾고 요청자가 실제 소유주인지 검증 BankAccount bankAccount = findBankAccountAndVerifyOwner(ownerId, bankAccountId); @@ -70,7 +68,6 @@ public void updateBankAccount(Long ownerId, Long bankAccountId, UpdateBankAccoun ); } - @Transactional public void deleteBankAccount(Long ownerId, Long bankAccountId) { // 삭제할 계좌를 찾고, 요청자가 실제 소유주인지 검증 BankAccount bankAccount = findBankAccountAndVerifyOwner(ownerId, bankAccountId); diff --git a/src/main/java/konkuk/chacall/domain/owner/application/chatTemplate/ChatTemplateService.java b/src/main/java/konkuk/chacall/domain/owner/application/chatTemplate/ChatTemplateService.java index 3178f9d6..a42ebc16 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/chatTemplate/ChatTemplateService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/chatTemplate/ChatTemplateService.java @@ -20,7 +20,6 @@ public class ChatTemplateService { private final ChatTemplateRepository chatTemplateRepository; - @Transactional public void registerChatTemplate(RegisterChatTemplateRequest request, User owner) { ChatTemplate chatTemplate = ChatTemplate.of(request.content(), owner); @@ -35,7 +34,6 @@ public List getChatTemplates(Long ownerId) { .toList(); } - @Transactional public void updateChatTemplate(UpdateChatTemplateRequest request, Long chatTemplateId) { ChatTemplate chatTemplate = chatTemplateRepository.findById(chatTemplateId) .orElseThrow(() -> new EntityNotFoundException(ErrorCode.CHAT_TEMPLATE_NOT_FOUND)); @@ -45,7 +43,6 @@ public void updateChatTemplate(UpdateChatTemplateRequest request, Long chatTempl ); } - @Transactional public void deleteChatTemplate(Long chatTemplateId) { if(!chatTemplateRepository.existsById(chatTemplateId)) { throw new EntityNotFoundException(ErrorCode.CHAT_TEMPLATE_NOT_FOUND); diff --git a/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java b/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java index af24075e..8af4d0f7 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java @@ -51,7 +51,6 @@ public CursorPagingResponse getMyFoodTrucks(CursorPagingReq return CursorPagingResponse.of(responses, MyFoodTruckResponse::foodTruckId, foodTruckSlice.hasNext()); } - @Transactional public void deleteMyFoodTruck(Long ownerId, Long foodTruckId) { // 푸드트럭 조회 및 소유권 확인 FoodTruck foodTruck = foodTruckRepository.findById(foodTruckId) From a307f0341312a557792dbc6bd9fb32a770c60e81 Mon Sep 17 00:00:00 2001 From: ksg Date: Fri, 19 Sep 2025 15:13:21 +0900 Subject: [PATCH 16/16] =?UTF-8?q?[chore]=20=ED=8C=A8=ED=82=A4=EC=A7=80?= =?UTF-8?q?=EB=AA=85=20=EC=86=8C=EB=AC=B8=EC=9E=90=EB=A1=9C=20=ED=86=B5?= =?UTF-8?q?=EC=9D=BC=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chacall/domain/owner/application/OwnerService.java | 6 +++--- .../{bankAccount => bankaccount}/BankAccountService.java | 3 +-- .../{chatTemplate => chattemplate}/ChatTemplateService.java | 3 +-- .../{myFoodTruck => myfoodtruck}/MyFoodTruckService.java | 3 +-- 4 files changed, 6 insertions(+), 9 deletions(-) rename src/main/java/konkuk/chacall/domain/owner/application/{bankAccount => bankaccount}/BankAccountService.java (96%) rename src/main/java/konkuk/chacall/domain/owner/application/{chatTemplate => chattemplate}/ChatTemplateService.java (94%) rename src/main/java/konkuk/chacall/domain/owner/application/{myFoodTruck => myfoodtruck}/MyFoodTruckService.java (97%) diff --git a/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java b/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java index 8d10a9ac..fac3b2d8 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/OwnerService.java @@ -1,8 +1,8 @@ package konkuk.chacall.domain.owner.application; -import konkuk.chacall.domain.owner.application.bankAccount.BankAccountService; -import konkuk.chacall.domain.owner.application.chatTemplate.ChatTemplateService; -import konkuk.chacall.domain.owner.application.myFoodTruck.MyFoodTruckService; +import konkuk.chacall.domain.owner.application.bankaccount.BankAccountService; +import konkuk.chacall.domain.owner.application.chattemplate.ChatTemplateService; +import konkuk.chacall.domain.owner.application.myfoodtruck.MyFoodTruckService; import konkuk.chacall.domain.owner.application.reservation.OwnerReservationService; import konkuk.chacall.domain.owner.application.validator.OwnerValidator; import konkuk.chacall.domain.owner.presentation.dto.request.*; diff --git a/src/main/java/konkuk/chacall/domain/owner/application/bankAccount/BankAccountService.java b/src/main/java/konkuk/chacall/domain/owner/application/bankaccount/BankAccountService.java similarity index 96% rename from src/main/java/konkuk/chacall/domain/owner/application/bankAccount/BankAccountService.java rename to src/main/java/konkuk/chacall/domain/owner/application/bankaccount/BankAccountService.java index 251293b1..6720a726 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/bankAccount/BankAccountService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/bankaccount/BankAccountService.java @@ -1,4 +1,4 @@ -package konkuk.chacall.domain.owner.application.bankAccount; +package konkuk.chacall.domain.owner.application.bankaccount; import konkuk.chacall.domain.owner.domain.model.BankAccount; import konkuk.chacall.domain.owner.domain.repository.BankAccountRepository; @@ -11,7 +11,6 @@ import konkuk.chacall.global.common.exception.code.ErrorCode; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.Optional; diff --git a/src/main/java/konkuk/chacall/domain/owner/application/chatTemplate/ChatTemplateService.java b/src/main/java/konkuk/chacall/domain/owner/application/chattemplate/ChatTemplateService.java similarity index 94% rename from src/main/java/konkuk/chacall/domain/owner/application/chatTemplate/ChatTemplateService.java rename to src/main/java/konkuk/chacall/domain/owner/application/chattemplate/ChatTemplateService.java index a42ebc16..9e99d1ab 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/chatTemplate/ChatTemplateService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/chattemplate/ChatTemplateService.java @@ -1,4 +1,4 @@ -package konkuk.chacall.domain.owner.application.chatTemplate; +package konkuk.chacall.domain.owner.application.chattemplate; import konkuk.chacall.domain.owner.domain.model.ChatTemplate; import konkuk.chacall.domain.owner.domain.repository.ChatTemplateRepository; @@ -10,7 +10,6 @@ import konkuk.chacall.global.common.exception.code.ErrorCode; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.List; diff --git a/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java b/src/main/java/konkuk/chacall/domain/owner/application/myfoodtruck/MyFoodTruckService.java similarity index 97% rename from src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java rename to src/main/java/konkuk/chacall/domain/owner/application/myfoodtruck/MyFoodTruckService.java index 8af4d0f7..f615d1db 100644 --- a/src/main/java/konkuk/chacall/domain/owner/application/myFoodTruck/MyFoodTruckService.java +++ b/src/main/java/konkuk/chacall/domain/owner/application/myfoodtruck/MyFoodTruckService.java @@ -1,4 +1,4 @@ -package konkuk.chacall.domain.owner.application.myFoodTruck; +package konkuk.chacall.domain.owner.application.myfoodtruck; import konkuk.chacall.domain.foodtruck.domain.FoodTruck; import konkuk.chacall.domain.foodtruck.domain.FoodTruckServiceArea; @@ -19,7 +19,6 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Slice; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map;