From 10973be5c0a228027381d2a6b53ed942d4dac867 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 01:38:02 +0900 Subject: [PATCH 01/17] =?UTF-8?q?feat(StorePayment):=20StorePayment=20?= =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storePayment/entity/StorePayment.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/entity/StorePayment.java diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/entity/StorePayment.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/entity/StorePayment.java new file mode 100644 index 00000000..1cf1a6da --- /dev/null +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/entity/StorePayment.java @@ -0,0 +1,57 @@ +package com.nowait.domaincorerdb.storePayment.entity; + +import java.time.LocalDateTime; + +import com.nowait.domaincorerdb.base.entity.BaseTimeEntity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Entity +@Table(name = "store_payments") +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor(access = AccessLevel.PRIVATE) +@SuperBuilder +public class StorePayment extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long paymentMethodId; + + @Column(name = "store_id", nullable = false) + private Long storeId; + + @Column(name = "toss_url",length = 500) + private String tossUrl; + + @Column(name = "kakao_pay_url", length = 500) + private String kakaoPayUrl; + + @Column(name = "naver_pay_url", length = 500) + private String naverPayUrl; + + public StorePayment(LocalDateTime createdAt, Long paymentMethodId, Long storeId, String tossUrl, String kakaoPayUrl, String naverPayUrl) { + super(createdAt); + this.paymentMethodId = paymentMethodId; + this.storeId = storeId; + this.tossUrl = tossUrl; + this.kakaoPayUrl = kakaoPayUrl; + this.naverPayUrl = naverPayUrl; + } + + public void updatePaymentMethodUrl(String tossUrl, String kakaoPayUrl, String naverPayUrl) { + if (tossUrl != null) this.tossUrl = tossUrl; + if (kakaoPayUrl != null) this.kakaoPayUrl = kakaoPayUrl; + if (naverPayUrl != null) this.naverPayUrl = naverPayUrl; + } +} From e28ed57baf5e7cfd1b23c6315b5b8fe0cd32fe8c Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 01:38:15 +0900 Subject: [PATCH 02/17] =?UTF-8?q?feat(StorePayment):=20StorePayment=20?= =?UTF-8?q?=EC=97=94=EB=93=9C=ED=8F=AC=EC=9D=B8=ED=8A=B8=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StorePaymentController.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java new file mode 100644 index 00000000..04fd65e6 --- /dev/null +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java @@ -0,0 +1,76 @@ +package com.nowait.applicationadmin.storePayment.controller; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.nowait.applicationadmin.storePayment.dto.StorePaymentCreateRequest; +import com.nowait.applicationadmin.storePayment.dto.StorePaymentCreateResponse; +import com.nowait.applicationadmin.storePayment.dto.StorePaymentUpdateRequest; +import com.nowait.applicationadmin.storePayment.service.StorePaymentService; +import com.nowait.common.api.ApiUtils; +import com.nowait.domaincorerdb.user.entity.MemberDetails; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Tag(name = "Store Payment API", description = "주점 결제 정보 API") +@RestController +@RequestMapping("admin/store-payments") +@RequiredArgsConstructor +@Slf4j +public class StorePaymentController { + + private final StorePaymentService storePaymentService; + + @PostMapping("/create") + @Operation(summary = "주점 결제 Url 등록 및 생성", description = "새로운 주점 결제 정보를 생성합니다.") + @ApiResponse(responseCode = "201", description = "주점 결제 정보 생성 성공") + public ResponseEntity createStorePayment(@Valid @RequestBody StorePaymentCreateRequest request, @AuthenticationPrincipal MemberDetails memberDetails) { + StorePaymentCreateResponse response = storePaymentService.createStorePayment(request, memberDetails); + + return ResponseEntity + .status(HttpStatus.CREATED) + .body( + ApiUtils.success( + response + ) + ); + } + + @GetMapping() + @Operation(summary = "주점 결제 정보 조회", description = "주점 ID로 주점 결제 정보를 조회합니다.") + @ApiResponse(responseCode = "200", description = "주점 결제 정보 조회 성공") + public ResponseEntity getStorePaymentByStoreId(@AuthenticationPrincipal MemberDetails memberDetails) { + return ResponseEntity + .status(HttpStatus.OK) + .body( + ApiUtils.success( + storePaymentService.getStorePaymentByStoreId(memberDetails) + ) + ); + } + + @PatchMapping("/update") + @Operation(summary = "주점 결제 정보 수정", description = "주점 결제 정보를 수정합니다.") + @ApiResponse(responseCode = "200", description = "주점 결제 정보 수정 성공") + public ResponseEntity updateStorePayment(@Valid @RequestBody StorePaymentUpdateRequest request, @AuthenticationPrincipal MemberDetails memberDetails) { + return ResponseEntity + .status(HttpStatus.OK) + .body( + ApiUtils.success( + storePaymentService.updateStorePayment(request, memberDetails) + ) + ); + } +} From fef6cf0ba80501093b18f40c856705b067b11c19 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 01:38:18 +0900 Subject: [PATCH 03/17] =?UTF-8?q?feat(StorePayment):=20StorePayment=20?= =?UTF-8?q?=EC=97=94=EB=93=9C=ED=8F=AC=EC=9D=B8=ED=8A=B8=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../applicationadmin/store/controller/StoreController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/controller/StoreController.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/controller/StoreController.java index 2d3a6aae..d59795a9 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/controller/StoreController.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/controller/StoreController.java @@ -54,12 +54,12 @@ public ResponseEntity createStore(@Valid @RequestBody StoreCreateRequest requ @GetMapping("/{storeId}") @Operation(summary = "주점 조회", description = "주점 ID로 주점을 조회합니다.") @ApiResponse(responseCode = "200", description = "주점 조회 성공") - public ResponseEntity getStoreById(@PathVariable Long storeId,@AuthenticationPrincipal MemberDetails memberDetails) { + public ResponseEntity getStoreById(@PathVariable Long storeId, @AuthenticationPrincipal MemberDetails memberDetails) { return ResponseEntity .status(HttpStatus.OK) .body( ApiUtils.success( - storeService.getStoreByStoreId(storeId,memberDetails) + storeService.getStoreByStoreId(storeId, memberDetails) ) ); } @@ -84,7 +84,7 @@ public ResponseEntity updateStore( @DeleteMapping("/{storeId}") @Operation(summary = "주점 삭제", description = "주점 ID로 주점을 삭제합니다.") @ApiResponse(responseCode = "200", description = "주점 삭제 성공") - public ResponseEntity deleteStore(@PathVariable Long storeId,@AuthenticationPrincipal MemberDetails memberDetails) { + public ResponseEntity deleteStore(@PathVariable Long storeId, @AuthenticationPrincipal MemberDetails memberDetails) { return ResponseEntity .ok() .body( From 50e460ebe702894fc06abe3cfb43907904b293e2 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 01:38:57 +0900 Subject: [PATCH 04/17] =?UTF-8?q?feat(StorePayment):=20StorePaymentService?= =?UTF-8?q?=20=EC=83=9D=EC=84=B1=20=EB=B0=8F=20StorePaymentServiceImpl=20?= =?UTF-8?q?=EB=B9=84=EC=A6=88=EB=8B=88=EC=8A=A4=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/StorePaymentService.java | 14 ++++ .../service/StorePaymentServiceImpl.java | 81 +++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentService.java create mode 100644 nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentService.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentService.java new file mode 100644 index 00000000..b0324dab --- /dev/null +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentService.java @@ -0,0 +1,14 @@ +package com.nowait.applicationadmin.storePayment.service; + +import com.nowait.applicationadmin.storePayment.dto.StorePaymentCreateRequest; +import com.nowait.applicationadmin.storePayment.dto.StorePaymentCreateResponse; +import com.nowait.applicationadmin.storePayment.dto.StorePaymentReadDto; +import com.nowait.applicationadmin.storePayment.dto.StorePaymentUpdateRequest; +import com.nowait.domaincorerdb.user.entity.MemberDetails; + +public interface StorePaymentService { + + StorePaymentCreateResponse createStorePayment(StorePaymentCreateRequest request, MemberDetails memberDetails); + StorePaymentReadDto getStorePaymentByStoreId(MemberDetails memberDetails); + StorePaymentReadDto updateStorePayment(StorePaymentUpdateRequest request, MemberDetails memberDetails); +} diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java new file mode 100644 index 00000000..3b923048 --- /dev/null +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java @@ -0,0 +1,81 @@ +package com.nowait.applicationadmin.storePayment.service; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.nowait.applicationadmin.storePayment.dto.StorePaymentCreateRequest; +import com.nowait.applicationadmin.storePayment.dto.StorePaymentCreateResponse; +import com.nowait.applicationadmin.storePayment.dto.StorePaymentReadDto; +import com.nowait.applicationadmin.storePayment.dto.StorePaymentUpdateRequest; +import com.nowait.common.enums.Role; +import com.nowait.domaincorerdb.store.exception.StoreNotFoundException; +import com.nowait.domaincorerdb.store.exception.StoreParamEmptyException; +import com.nowait.domaincorerdb.store.exception.StoreViewUnauthorizedException; +import com.nowait.domaincorerdb.storePayment.entity.StorePayment; +import com.nowait.domaincorerdb.storePayment.repository.StorePaymentRepository; +import com.nowait.domaincorerdb.user.entity.MemberDetails; +import com.nowait.domaincorerdb.user.entity.User; +import com.nowait.domaincorerdb.user.exception.UserNotFoundException; +import com.nowait.domaincorerdb.user.repository.UserRepository; + +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class StorePaymentServiceImpl implements StorePaymentService { + + private final StorePaymentRepository storePaymentRepository; + private final UserRepository userRepository; + + @Override + @Transactional + public StorePaymentCreateResponse createStorePayment(StorePaymentCreateRequest request, MemberDetails memberDetails) { + // if (request == null) throw new StoreParamEmptyException(); + User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); + Long storeId = user.getStoreId(); + if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { + throw new StoreViewUnauthorizedException(); + } + StorePayment toSave = request.toEntity(storeId); + StorePayment saved = storePaymentRepository.save(toSave); + + return StorePaymentCreateResponse.fromEntity(saved); + } + + @Override + @Transactional(readOnly = true) + public StorePaymentReadDto getStorePaymentByStoreId(MemberDetails memberDetails) { + // if (storeId == null) throw new StoreParamEmptyException(); + User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); + Long storeId = user.getStoreId(); + if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { + throw new StoreViewUnauthorizedException(); + } + StorePayment storePayment = storePaymentRepository.findByStoreId(storeId) + .orElseThrow(StoreNotFoundException::new); + + return StorePaymentReadDto.fromEntity(storePayment); + } + + @Override + @Transactional + public StorePaymentReadDto updateStorePayment(StorePaymentUpdateRequest request, MemberDetails memberDetails) { + if (request == null) throw new StoreParamEmptyException(); + User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); + Long storeId = user.getStoreId(); + if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { + throw new StoreViewUnauthorizedException(); + } + StorePayment storePayment = storePaymentRepository.findByStoreId(storeId) + .orElseThrow(StoreNotFoundException::new); + + storePayment.updatePaymentMethodUrl( + request.getTossUrl(), + request.getKakaoPayUrl(), + request.getNaverPayUrl() + ); + storePaymentRepository.save(storePayment); + + return StorePaymentReadDto.fromEntity(storePayment); + } +} From eece16514c9fee762a228cc5dd6652cf40a55c96 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 01:39:08 +0900 Subject: [PATCH 05/17] =?UTF-8?q?feat(StorePayment):=20StorePaymentReposit?= =?UTF-8?q?ory=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/StorePaymentRepository.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/repository/StorePaymentRepository.java diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/repository/StorePaymentRepository.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/repository/StorePaymentRepository.java new file mode 100644 index 00000000..bb2aa8bf --- /dev/null +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/repository/StorePaymentRepository.java @@ -0,0 +1,13 @@ +package com.nowait.domaincorerdb.storePayment.repository; + +import java.util.Optional; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import com.nowait.domaincorerdb.storePayment.entity.StorePayment; + +@Repository +public interface StorePaymentRepository extends JpaRepository { + Optional findByStoreId(Long storeId); +} From 1ad00bcc457f8d793c5a4c210b82996fbf8ee626 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 01:39:29 +0900 Subject: [PATCH 06/17] =?UTF-8?q?feat(StorePayment):=20StorePaymentCreate?= =?UTF-8?q?=20=EA=B4=80=EB=A0=A8=20Dto=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/StorePaymentCreateRequest.java | 27 +++++++++++++++ .../dto/StorePaymentCreateResponse.java | 33 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateRequest.java create mode 100644 nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateResponse.java diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateRequest.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateRequest.java new file mode 100644 index 00000000..c790ec5d --- /dev/null +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateRequest.java @@ -0,0 +1,27 @@ +package com.nowait.applicationadmin.storePayment.dto; + +import com.nowait.domaincorerdb.storePayment.entity.StorePayment; + +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class StorePaymentCreateRequest { + + private String tossUrl; + private String kakaoPayUrl; + private String naverPayUrl; + + public StorePayment toEntity(Long storeId) { + return StorePayment.builder() + .storeId(storeId) + .tossUrl(tossUrl) + .kakaoPayUrl(kakaoPayUrl) + .naverPayUrl(naverPayUrl) + .build(); + } +} diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateResponse.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateResponse.java new file mode 100644 index 00000000..50720432 --- /dev/null +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateResponse.java @@ -0,0 +1,33 @@ +package com.nowait.applicationadmin.storePayment.dto; + +import java.time.LocalDateTime; + +import com.nowait.domaincorerdb.storePayment.entity.StorePayment; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@Builder +public class StorePaymentCreateResponse { + + private Long paymentMethodId; + private Long storeId; + private String tossUrl; + private String kakaoPayUrl; + private String naverPayUrl; + private LocalDateTime createdAt; + + public static StorePaymentCreateResponse fromEntity(StorePayment storePayment) { + return StorePaymentCreateResponse.builder() + .paymentMethodId(storePayment.getPaymentMethodId()) + .storeId(storePayment.getStoreId()) + .tossUrl(storePayment.getTossUrl()) + .kakaoPayUrl(storePayment.getKakaoPayUrl()) + .naverPayUrl(storePayment.getNaverPayUrl()) + .createdAt(storePayment.getCreatedAt()) + .build(); + } +} From e4f66b97cb826653da4a77b28ceca795fdcb8a6e Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 01:39:36 +0900 Subject: [PATCH 07/17] =?UTF-8?q?feat(StorePayment):=20StorePaymentRead=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20Dto=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storePayment/dto/StorePaymentReadDto.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentReadDto.java diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentReadDto.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentReadDto.java new file mode 100644 index 00000000..f27b92c3 --- /dev/null +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentReadDto.java @@ -0,0 +1,32 @@ +package com.nowait.applicationadmin.storePayment.dto; + +import java.time.LocalDateTime; + +import com.nowait.domaincorerdb.storePayment.entity.StorePayment; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@Builder +public class StorePaymentReadDto { + private Long paymentMethodId; + private Long storeId; + private String tossUrl; + private String kakaoPayUrl; + private String naverPayUrl; + private LocalDateTime createdAt; + + public static StorePaymentReadDto fromEntity(StorePayment storePayment) { + return StorePaymentReadDto.builder() + .paymentMethodId(storePayment.getPaymentMethodId()) + .storeId(storePayment.getStoreId()) + .tossUrl(storePayment.getTossUrl()) + .kakaoPayUrl(storePayment.getKakaoPayUrl()) + .naverPayUrl(storePayment.getNaverPayUrl()) + .createdAt(storePayment.getCreatedAt()) + .build(); + } +} From 1fded2f380d1abec35eaebe4be1ce1065b6ff826 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 01:39:45 +0900 Subject: [PATCH 08/17] =?UTF-8?q?feat(StorePayment):=20StorePaymentUpdate?= =?UTF-8?q?=20=EA=B4=80=EB=A0=A8=20Dto=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/StorePaymentUpdateRequest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentUpdateRequest.java diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentUpdateRequest.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentUpdateRequest.java new file mode 100644 index 00000000..71f4c979 --- /dev/null +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentUpdateRequest.java @@ -0,0 +1,16 @@ +package com.nowait.applicationadmin.storePayment.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class StorePaymentUpdateRequest { + private String tossUrl; + private String kakaoPayUrl; + private String naverPayUrl; +} From e02271481055698d4f53bf23681d82ae1cf4f09a Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 11:57:07 +0900 Subject: [PATCH 09/17] =?UTF-8?q?feat(StorePayment):=20StorePayment=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20=EB=A9=94=EC=8B=9C=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 --- .../java/com/nowait/common/exception/ErrorMessage.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java b/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java index 02a107a1..48c56987 100644 --- a/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java +++ b/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java @@ -49,6 +49,16 @@ public enum ErrorMessage { STORE_DELETE_UNAUTHORIZED("주점 삭제 권한이 없습니다.(슈퍼계정 or 주점 관리자만 가능)", "store005"), STORE_WAITING_DISABLED("해당 주점은 대기 비활성화된 주점입니다.", "store006"), + // storePayment + + STORE_PAYMENT_PARAMETER_EMPTY("주점 결제 생성 시 파라미터 정보가 없습니다.", "storePayment001"), + STORE_PAYMENT_NOT_FOUND("해당 주점 결제 정보를 찾을 수 없습니다.", "storePayment002"), + STORE_PAYMENT_VIEW_UNAUTHORIZED("주점 결제 정보 보기 권한이 없습니다.(슈퍼계정 or 주점 관리자만 가능)", "storePayment003"), + STORE_PAYMENT_CREATION_UNAUTHORIZED("주점 결제 정보 생성 권한이 없습니다.(슈퍼계정 or 주점 관리자만 가능)", "storePayment004"), + STORE_PAYMENT_UPDATE_UNAUTHORIZED("주점 결제 정보 수정 권한이 없습니다.(슈퍼계정 or 주점 관리자만 가능)", "storePayment004"), + STORE_PAYMENT_DELETE_UNAUTHORIZED("주점 결제 정보 삭제 권한이 없습니다.(슈퍼계정 or 주점 관리자만 가능)", "storePayment005"), + + // image IMAGE_FILE_EMPTY("이미지 파일을 업로드 해주세요", "image001"), IMAGE_FILE_NOT_FOUND("이미지 파일을 업로드 해주세요", "image001"), From 716daded146530bb62c678fee03773720c25f11c Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 11:57:27 +0900 Subject: [PATCH 10/17] =?UTF-8?q?feat(StorePayment):=20StorePayment=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=20=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/service/StoreServiceImpl.java | 1 + .../service/StorePaymentServiceImpl.java | 18 +++++--- .../controller/StorePaymentController.java | 43 +++++++++++++++++++ .../storePayment/dto/StorePaymentReadDto.java | 32 ++++++++++++++ .../service/StorePaymentService.java | 7 +++ .../service/StorePaymentServiceImpl.java | 29 +++++++++++++ .../StorePaymentCreationUnauthorized.java | 10 +++++ .../StorePaymentNotFoundException.java | 9 ++++ .../StorePaymentParamEmptyException.java | 9 ++++ ...orePaymentUpdateUnauthorizedException.java | 9 ++++ ...StorePaymentViewUnauthorizedException.java | 9 ++++ 11 files changed, 170 insertions(+), 6 deletions(-) create mode 100644 nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/controller/StorePaymentController.java create mode 100644 nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/dto/StorePaymentReadDto.java create mode 100644 nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentService.java create mode 100644 nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentServiceImpl.java create mode 100644 nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorized.java create mode 100644 nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentNotFoundException.java create mode 100644 nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentParamEmptyException.java create mode 100644 nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentUpdateUnauthorizedException.java create mode 100644 nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentViewUnauthorizedException.java diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/service/StoreServiceImpl.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/service/StoreServiceImpl.java index 0dec4fd8..7944746c 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/service/StoreServiceImpl.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/store/service/StoreServiceImpl.java @@ -2,6 +2,7 @@ import java.util.List; +import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java index 3b923048..ea615d3f 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java @@ -10,8 +10,11 @@ import com.nowait.common.enums.Role; import com.nowait.domaincorerdb.store.exception.StoreNotFoundException; import com.nowait.domaincorerdb.store.exception.StoreParamEmptyException; -import com.nowait.domaincorerdb.store.exception.StoreViewUnauthorizedException; import com.nowait.domaincorerdb.storePayment.entity.StorePayment; +import com.nowait.domaincorerdb.storePayment.exception.StorePaymentCreationUnauthorized; +import com.nowait.domaincorerdb.storePayment.exception.StorePaymentParamEmptyException; +import com.nowait.domaincorerdb.storePayment.exception.StorePaymentUpdateUnauthorizedException; +import com.nowait.domaincorerdb.storePayment.exception.StorePaymentViewUnauthorizedException; import com.nowait.domaincorerdb.storePayment.repository.StorePaymentRepository; import com.nowait.domaincorerdb.user.entity.MemberDetails; import com.nowait.domaincorerdb.user.entity.User; @@ -30,11 +33,12 @@ public class StorePaymentServiceImpl implements StorePaymentService { @Override @Transactional public StorePaymentCreateResponse createStorePayment(StorePaymentCreateRequest request, MemberDetails memberDetails) { - // if (request == null) throw new StoreParamEmptyException(); + if (request == null) throw new StorePaymentParamEmptyException(); + User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); Long storeId = user.getStoreId(); if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { - throw new StoreViewUnauthorizedException(); + throw new StorePaymentCreationUnauthorized(); } StorePayment toSave = request.toEntity(storeId); StorePayment saved = storePaymentRepository.save(toSave); @@ -45,11 +49,12 @@ public StorePaymentCreateResponse createStorePayment(StorePaymentCreateRequest r @Override @Transactional(readOnly = true) public StorePaymentReadDto getStorePaymentByStoreId(MemberDetails memberDetails) { - // if (storeId == null) throw new StoreParamEmptyException(); + if (memberDetails == null) throw new StorePaymentParamEmptyException(); + User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); Long storeId = user.getStoreId(); if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { - throw new StoreViewUnauthorizedException(); + throw new StorePaymentViewUnauthorizedException(); } StorePayment storePayment = storePaymentRepository.findByStoreId(storeId) .orElseThrow(StoreNotFoundException::new); @@ -61,10 +66,11 @@ public StorePaymentReadDto getStorePaymentByStoreId(MemberDetails memberDetails) @Transactional public StorePaymentReadDto updateStorePayment(StorePaymentUpdateRequest request, MemberDetails memberDetails) { if (request == null) throw new StoreParamEmptyException(); + User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); Long storeId = user.getStoreId(); if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { - throw new StoreViewUnauthorizedException(); + throw new StorePaymentUpdateUnauthorizedException(); } StorePayment storePayment = storePaymentRepository.findByStoreId(storeId) .orElseThrow(StoreNotFoundException::new); diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/controller/StorePaymentController.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/controller/StorePaymentController.java new file mode 100644 index 00000000..b02020c5 --- /dev/null +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/controller/StorePaymentController.java @@ -0,0 +1,43 @@ +package com.nowait.applicationuser.storePayment.controller; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +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.RestController; + +import com.nowait.applicationuser.storePayment.service.StorePaymentService; +import com.nowait.common.api.ApiUtils; +import com.nowait.domaincorerdb.user.entity.MemberDetails; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Tag(name = "Store Payment API", description = "주점 결제 정보 API") +@RestController +@RequestMapping("v1/store-payments") +@RequiredArgsConstructor +@Slf4j +public class StorePaymentController { + + private final StorePaymentService storePaymentService; + + @GetMapping(("/{storeId}")) + @Operation(summary = "주점 결제 정보 조회", description = "주점 ID로 주점 결제 정보를 조회합니다.") + @ApiResponse(responseCode = "200", description = "주점 결제 정보 조회 성공") + public ResponseEntity getStorePaymentByStoreId(@Valid @PathVariable Long storeId) { + return ResponseEntity + .status(HttpStatus.OK) + .body( + ApiUtils.success( + storePaymentService.getStorePaymentByStoreId(storeId) + ) + ); + } +} diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/dto/StorePaymentReadDto.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/dto/StorePaymentReadDto.java new file mode 100644 index 00000000..198aa78d --- /dev/null +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/dto/StorePaymentReadDto.java @@ -0,0 +1,32 @@ +package com.nowait.applicationuser.storePayment.dto; + +import java.time.LocalDateTime; + +import com.nowait.domaincorerdb.storePayment.entity.StorePayment; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@Getter +@AllArgsConstructor +@Builder +public class StorePaymentReadDto { + private Long paymentMethodId; + private Long storeId; + private String tossUrl; + private String kakaoPayUrl; + private String naverPayUrl; + private LocalDateTime createdAt; + + public static StorePaymentReadDto fromEntity(StorePayment storePayment) { + return StorePaymentReadDto.builder() + .paymentMethodId(storePayment.getPaymentMethodId()) + .storeId(storePayment.getStoreId()) + .tossUrl(storePayment.getTossUrl()) + .kakaoPayUrl(storePayment.getKakaoPayUrl()) + .naverPayUrl(storePayment.getNaverPayUrl()) + .createdAt(storePayment.getCreatedAt()) + .build(); + } +} diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentService.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentService.java new file mode 100644 index 00000000..fdccb0e3 --- /dev/null +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentService.java @@ -0,0 +1,7 @@ +package com.nowait.applicationuser.storePayment.service; + +import com.nowait.applicationuser.storePayment.dto.StorePaymentReadDto; + +public interface StorePaymentService { + StorePaymentReadDto getStorePaymentByStoreId(Long storeId); +} diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentServiceImpl.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentServiceImpl.java new file mode 100644 index 00000000..4a8a9660 --- /dev/null +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentServiceImpl.java @@ -0,0 +1,29 @@ +package com.nowait.applicationuser.storePayment.service; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.nowait.applicationuser.storePayment.dto.StorePaymentReadDto; +import com.nowait.domaincorerdb.store.exception.StoreNotFoundException; +import com.nowait.domaincorerdb.storePayment.entity.StorePayment; +import com.nowait.domaincorerdb.storePayment.exception.StorePaymentParamEmptyException; +import com.nowait.domaincorerdb.storePayment.repository.StorePaymentRepository; + +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class StorePaymentServiceImpl implements StorePaymentService { + + private final StorePaymentRepository storePaymentRepository; + + @Override + @Transactional(readOnly = true) + public StorePaymentReadDto getStorePaymentByStoreId(Long storeId) { + if (storeId == null) throw new StorePaymentParamEmptyException(); + + StorePayment storePayment = storePaymentRepository.findByStoreId(storeId) + .orElseThrow(StoreNotFoundException::new); + + return StorePaymentReadDto.fromEntity(storePayment); + } +} diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorized.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorized.java new file mode 100644 index 00000000..ca4a3d21 --- /dev/null +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorized.java @@ -0,0 +1,10 @@ +package com.nowait.domaincorerdb.storePayment.exception; + +import com.nowait.common.exception.ErrorMessage; + +public class StorePaymentCreationUnauthorized extends RuntimeException { + + public StorePaymentCreationUnauthorized() { + super(ErrorMessage.STORE_PAYMENT_CREATION_UNAUTHORIZED.getMessage()); + } +} diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentNotFoundException.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentNotFoundException.java new file mode 100644 index 00000000..0ef9ab96 --- /dev/null +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentNotFoundException.java @@ -0,0 +1,9 @@ +package com.nowait.domaincorerdb.storePayment.exception; + +import com.nowait.common.exception.ErrorMessage; + +public class StorePaymentNotFoundException extends RuntimeException { + public StorePaymentNotFoundException(String message) { + super(ErrorMessage.STORE_PAYMENT_PARAMETER_EMPTY.getMessage()); + } +} diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentParamEmptyException.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentParamEmptyException.java new file mode 100644 index 00000000..a18525cb --- /dev/null +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentParamEmptyException.java @@ -0,0 +1,9 @@ +package com.nowait.domaincorerdb.storePayment.exception; + +import com.nowait.common.exception.ErrorMessage; + +public class StorePaymentParamEmptyException extends RuntimeException { + public StorePaymentParamEmptyException() { + super(ErrorMessage.STORE_PAYMENT_PARAMETER_EMPTY.getMessage()); + } +} diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentUpdateUnauthorizedException.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentUpdateUnauthorizedException.java new file mode 100644 index 00000000..1039f30e --- /dev/null +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentUpdateUnauthorizedException.java @@ -0,0 +1,9 @@ +package com.nowait.domaincorerdb.storePayment.exception; + +import com.nowait.common.exception.ErrorMessage; + +public class StorePaymentUpdateUnauthorizedException extends RuntimeException { + public StorePaymentUpdateUnauthorizedException() { + super(ErrorMessage.STORE_PAYMENT_UPDATE_UNAUTHORIZED.getMessage()); + } +} diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentViewUnauthorizedException.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentViewUnauthorizedException.java new file mode 100644 index 00000000..a3415d10 --- /dev/null +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentViewUnauthorizedException.java @@ -0,0 +1,9 @@ +package com.nowait.domaincorerdb.storePayment.exception; + +import com.nowait.common.exception.ErrorMessage; + +public class StorePaymentViewUnauthorizedException extends RuntimeException { + public StorePaymentViewUnauthorizedException() { + super(ErrorMessage.STORE_PAYMENT_VIEW_UNAUTHORIZED.getMessage()); + } +} From f4ea0114a410a3b0a9dce83938827995c410551a Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 11:57:44 +0900 Subject: [PATCH 11/17] =?UTF-8?q?chore:=20=EC=A4=91=EB=B3=B5=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...27\224\353\223\234-\354\235\264\354\212\210.md" | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 ".github/ISSUE_TEMPLATE/\353\260\261\354\227\224\353\223\234-\354\235\264\354\212\210.md" diff --git "a/.github/ISSUE_TEMPLATE/\353\260\261\354\227\224\353\223\234-\354\235\264\354\212\210.md" "b/.github/ISSUE_TEMPLATE/\353\260\261\354\227\224\353\223\234-\354\235\264\354\212\210.md" deleted file mode 100644 index f728915f..00000000 --- "a/.github/ISSUE_TEMPLATE/\353\260\261\354\227\224\353\223\234-\354\235\264\354\212\210.md" +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: 백엔드 이슈 -about: 백엔드와 관련된 이슈 -title: "[백엔드] " -labels: Backend -assignees: '' - ---- - -# 이슈 내용 - - -# 작업 목록 -- [ ] From 7b81e4ad02bad21e94eada8b4140dd6340c47da1 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 12:17:20 +0900 Subject: [PATCH 12/17] =?UTF-8?q?feat(StorePayment):=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=20=EC=A1=B4=EC=9E=AC=ED=95=98=EB=8A=94=20=EC=A3=BC=EC=A0=90=20?= =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EC=A0=95=EB=B3=B4=20=ED=99=95=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/nowait/common/exception/ErrorMessage.java | 1 + 1 file changed, 1 insertion(+) diff --git a/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java b/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java index 48c56987..b64c5e37 100644 --- a/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java +++ b/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java @@ -57,6 +57,7 @@ public enum ErrorMessage { STORE_PAYMENT_CREATION_UNAUTHORIZED("주점 결제 정보 생성 권한이 없습니다.(슈퍼계정 or 주점 관리자만 가능)", "storePayment004"), STORE_PAYMENT_UPDATE_UNAUTHORIZED("주점 결제 정보 수정 권한이 없습니다.(슈퍼계정 or 주점 관리자만 가능)", "storePayment004"), STORE_PAYMENT_DELETE_UNAUTHORIZED("주점 결제 정보 삭제 권한이 없습니다.(슈퍼계정 or 주점 관리자만 가능)", "storePayment005"), + STORE_PAYMENT_ALREADY_EXISTS("이미 존재하는 주점 결제 정보입니다.", "storePayment006"), // image From 66b012ba2b3d33eebe4b129f71c6a17c5043bfb9 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 12:18:54 +0900 Subject: [PATCH 13/17] =?UTF-8?q?feat(StorePayment):=20=ED=8C=A8=ED=82=A4?= =?UTF-8?q?=EC=A7=80=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/StorePaymentCreateRequest.java | 3 +-- .../dto/StorePaymentCreateResponse.java | 2 +- .../storePayment/dto/StorePaymentReadDto.java | 2 +- .../service/StorePaymentServiceImpl.java | 27 +++++++++++-------- .../storePayment/dto/StorePaymentReadDto.java | 2 +- .../service/StorePaymentServiceImpl.java | 6 ++--- .../storePayment/entity/StorePayment.java | 2 +- .../StorePaymentNotFoundException.java | 4 +-- .../StorePaymentParamEmptyException.java | 2 +- ...orePaymentUpdateUnauthorizedException.java | 2 +- ...StorePaymentViewUnauthorizedException.java | 2 +- .../repository/StorePaymentRepository.java | 4 +-- 12 files changed, 31 insertions(+), 27 deletions(-) diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateRequest.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateRequest.java index c790ec5d..4a292ce3 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateRequest.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateRequest.java @@ -1,8 +1,7 @@ package com.nowait.applicationadmin.storePayment.dto; -import com.nowait.domaincorerdb.storePayment.entity.StorePayment; +import com.nowait.domaincorerdb.storepayment.entity.StorePayment; -import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateResponse.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateResponse.java index 50720432..250a6b1f 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateResponse.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentCreateResponse.java @@ -2,7 +2,7 @@ import java.time.LocalDateTime; -import com.nowait.domaincorerdb.storePayment.entity.StorePayment; +import com.nowait.domaincorerdb.storepayment.entity.StorePayment; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentReadDto.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentReadDto.java index f27b92c3..329d799a 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentReadDto.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/dto/StorePaymentReadDto.java @@ -2,7 +2,7 @@ import java.time.LocalDateTime; -import com.nowait.domaincorerdb.storePayment.entity.StorePayment; +import com.nowait.domaincorerdb.storepayment.entity.StorePayment; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java index ea615d3f..2b70b342 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java @@ -10,12 +10,14 @@ import com.nowait.common.enums.Role; import com.nowait.domaincorerdb.store.exception.StoreNotFoundException; import com.nowait.domaincorerdb.store.exception.StoreParamEmptyException; -import com.nowait.domaincorerdb.storePayment.entity.StorePayment; -import com.nowait.domaincorerdb.storePayment.exception.StorePaymentCreationUnauthorized; -import com.nowait.domaincorerdb.storePayment.exception.StorePaymentParamEmptyException; -import com.nowait.domaincorerdb.storePayment.exception.StorePaymentUpdateUnauthorizedException; -import com.nowait.domaincorerdb.storePayment.exception.StorePaymentViewUnauthorizedException; -import com.nowait.domaincorerdb.storePayment.repository.StorePaymentRepository; +import com.nowait.domaincorerdb.storepayment.entity.StorePayment; +import com.nowait.domaincorerdb.storepayment.exception.StorePaymentAlreadyExistsException; +import com.nowait.domaincorerdb.storepayment.exception.StorePaymentCreationUnauthorizedException; +import com.nowait.domaincorerdb.storepayment.exception.StorePaymentNotFoundException; +import com.nowait.domaincorerdb.storepayment.exception.StorePaymentParamEmptyException; +import com.nowait.domaincorerdb.storepayment.exception.StorePaymentUpdateUnauthorizedException; +import com.nowait.domaincorerdb.storepayment.exception.StorePaymentViewUnauthorizedException; +import com.nowait.domaincorerdb.storepayment.repository.StorePaymentRepository; import com.nowait.domaincorerdb.user.entity.MemberDetails; import com.nowait.domaincorerdb.user.entity.User; import com.nowait.domaincorerdb.user.exception.UserNotFoundException; @@ -37,8 +39,11 @@ public StorePaymentCreateResponse createStorePayment(StorePaymentCreateRequest r User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); Long storeId = user.getStoreId(); - if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { - throw new StorePaymentCreationUnauthorized(); + if (storePaymentRepository.findByStoreId(storeId).isPresent()) { + throw new StorePaymentAlreadyExistsException(); + } + if (!Role.SUPER_ADMIN.equals(user.getRole())) { + throw new StorePaymentCreationUnauthorizedException(); } StorePayment toSave = request.toEntity(storeId); StorePayment saved = storePaymentRepository.save(toSave); @@ -53,7 +58,7 @@ public StorePaymentReadDto getStorePaymentByStoreId(MemberDetails memberDetails) User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); Long storeId = user.getStoreId(); - if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { + if (!Role.SUPER_ADMIN.equals(user.getRole())) { throw new StorePaymentViewUnauthorizedException(); } StorePayment storePayment = storePaymentRepository.findByStoreId(storeId) @@ -65,11 +70,11 @@ public StorePaymentReadDto getStorePaymentByStoreId(MemberDetails memberDetails) @Override @Transactional public StorePaymentReadDto updateStorePayment(StorePaymentUpdateRequest request, MemberDetails memberDetails) { - if (request == null) throw new StoreParamEmptyException(); + if (request == null) throw new StorePaymentParamEmptyException(); User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); Long storeId = user.getStoreId(); - if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { + if (!Role.SUPER_ADMIN.equals(user.getRole())) { throw new StorePaymentUpdateUnauthorizedException(); } StorePayment storePayment = storePaymentRepository.findByStoreId(storeId) diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/dto/StorePaymentReadDto.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/dto/StorePaymentReadDto.java index 198aa78d..7c405bf9 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/dto/StorePaymentReadDto.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/dto/StorePaymentReadDto.java @@ -2,7 +2,7 @@ import java.time.LocalDateTime; -import com.nowait.domaincorerdb.storePayment.entity.StorePayment; +import com.nowait.domaincorerdb.storepayment.entity.StorePayment; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentServiceImpl.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentServiceImpl.java index 4a8a9660..44a8de5c 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentServiceImpl.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentServiceImpl.java @@ -4,9 +4,9 @@ import org.springframework.transaction.annotation.Transactional; import com.nowait.applicationuser.storePayment.dto.StorePaymentReadDto; import com.nowait.domaincorerdb.store.exception.StoreNotFoundException; -import com.nowait.domaincorerdb.storePayment.entity.StorePayment; -import com.nowait.domaincorerdb.storePayment.exception.StorePaymentParamEmptyException; -import com.nowait.domaincorerdb.storePayment.repository.StorePaymentRepository; +import com.nowait.domaincorerdb.storepayment.entity.StorePayment; +import com.nowait.domaincorerdb.storepayment.exception.StorePaymentParamEmptyException; +import com.nowait.domaincorerdb.storepayment.repository.StorePaymentRepository; import lombok.RequiredArgsConstructor; diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/entity/StorePayment.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/entity/StorePayment.java index 1cf1a6da..effb50d8 100644 --- a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/entity/StorePayment.java +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/entity/StorePayment.java @@ -1,4 +1,4 @@ -package com.nowait.domaincorerdb.storePayment.entity; +package com.nowait.domaincorerdb.storepayment.entity; import java.time.LocalDateTime; diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentNotFoundException.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentNotFoundException.java index 0ef9ab96..af83a4db 100644 --- a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentNotFoundException.java +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentNotFoundException.java @@ -1,9 +1,9 @@ -package com.nowait.domaincorerdb.storePayment.exception; +package com.nowait.domaincorerdb.storepayment.exception; import com.nowait.common.exception.ErrorMessage; public class StorePaymentNotFoundException extends RuntimeException { - public StorePaymentNotFoundException(String message) { + public StorePaymentNotFoundException() { super(ErrorMessage.STORE_PAYMENT_PARAMETER_EMPTY.getMessage()); } } diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentParamEmptyException.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentParamEmptyException.java index a18525cb..83b62dba 100644 --- a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentParamEmptyException.java +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentParamEmptyException.java @@ -1,4 +1,4 @@ -package com.nowait.domaincorerdb.storePayment.exception; +package com.nowait.domaincorerdb.storepayment.exception; import com.nowait.common.exception.ErrorMessage; diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentUpdateUnauthorizedException.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentUpdateUnauthorizedException.java index 1039f30e..32d1c85a 100644 --- a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentUpdateUnauthorizedException.java +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentUpdateUnauthorizedException.java @@ -1,4 +1,4 @@ -package com.nowait.domaincorerdb.storePayment.exception; +package com.nowait.domaincorerdb.storepayment.exception; import com.nowait.common.exception.ErrorMessage; diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentViewUnauthorizedException.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentViewUnauthorizedException.java index a3415d10..cec829ec 100644 --- a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentViewUnauthorizedException.java +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentViewUnauthorizedException.java @@ -1,4 +1,4 @@ -package com.nowait.domaincorerdb.storePayment.exception; +package com.nowait.domaincorerdb.storepayment.exception; import com.nowait.common.exception.ErrorMessage; diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/repository/StorePaymentRepository.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/repository/StorePaymentRepository.java index bb2aa8bf..3a92bc09 100644 --- a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/repository/StorePaymentRepository.java +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/repository/StorePaymentRepository.java @@ -1,11 +1,11 @@ -package com.nowait.domaincorerdb.storePayment.repository; +package com.nowait.domaincorerdb.storepayment.repository; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; -import com.nowait.domaincorerdb.storePayment.entity.StorePayment; +import com.nowait.domaincorerdb.storepayment.entity.StorePayment; @Repository public interface StorePaymentRepository extends JpaRepository { From 3f3265fbb74a132f5d71b1095f79a78b8df31d16 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 12:19:15 +0900 Subject: [PATCH 14/17] =?UTF-8?q?feat(StorePayment):=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=20=EC=A1=B4=EC=9E=AC=ED=95=98=EB=8A=94=20=EC=A3=BC=EC=A0=90=20?= =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EC=A0=95=EB=B3=B4=20=ED=99=95=EC=9D=B8?= =?UTF-8?q?=EC=9D=84=20=EC=9C=84=ED=95=9C=20=EC=98=88=EC=99=B8=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StorePaymentController.java | 2 +- .../exception/StorePaymentAlreadyExistsException.java | 9 +++++++++ .../StorePaymentCreationUnauthorizedException.java | 10 ++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentAlreadyExistsException.java create mode 100644 nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorizedException.java diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java index 04fd65e6..5785b637 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java @@ -49,7 +49,7 @@ public ResponseEntity createStorePayment(@Valid @RequestBody StorePaymentCrea } @GetMapping() - @Operation(summary = "주점 결제 정보 조회", description = "주점 ID로 주점 결제 정보를 조회합니다.") + @Operation(summary = "주점 결제 정보 조회", description = "인증된 사용자의 주점 결제 정보를 조회합니다.") @ApiResponse(responseCode = "200", description = "주점 결제 정보 조회 성공") public ResponseEntity getStorePaymentByStoreId(@AuthenticationPrincipal MemberDetails memberDetails) { return ResponseEntity diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentAlreadyExistsException.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentAlreadyExistsException.java new file mode 100644 index 00000000..609ba342 --- /dev/null +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentAlreadyExistsException.java @@ -0,0 +1,9 @@ +package com.nowait.domaincorerdb.storepayment.exception; + +import com.nowait.common.exception.ErrorMessage; + +public class StorePaymentAlreadyExistsException extends RuntimeException { + public StorePaymentAlreadyExistsException() { + super(ErrorMessage.STORE_PAYMENT_ALREADY_EXISTS.getMessage()); + } +} diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorizedException.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorizedException.java new file mode 100644 index 00000000..ad458a24 --- /dev/null +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorizedException.java @@ -0,0 +1,10 @@ +package com.nowait.domaincorerdb.storepayment.exception; + +import com.nowait.common.exception.ErrorMessage; + +public class StorePaymentCreationUnauthorizedException extends RuntimeException { + + public StorePaymentCreationUnauthorizedException() { + super(ErrorMessage.STORE_PAYMENT_CREATION_UNAUTHORIZED.getMessage()); + } +} From f576d684684df0c8b97bc927f21383ce54de2161 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 12:19:20 +0900 Subject: [PATCH 15/17] =?UTF-8?q?feat(StorePayment):=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=20=EC=A1=B4=EC=9E=AC=ED=95=98=EB=8A=94=20=EC=A3=BC=EC=A0=90=20?= =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EC=A0=95=EB=B3=B4=20=ED=99=95=EC=9D=B8?= =?UTF-8?q?=EC=9D=84=20=EC=9C=84=ED=95=9C=20=EC=98=88=EC=99=B8=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/StorePaymentCreationUnauthorized.java | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorized.java diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorized.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorized.java deleted file mode 100644 index ca4a3d21..00000000 --- a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/storePayment/exception/StorePaymentCreationUnauthorized.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.nowait.domaincorerdb.storePayment.exception; - -import com.nowait.common.exception.ErrorMessage; - -public class StorePaymentCreationUnauthorized extends RuntimeException { - - public StorePaymentCreationUnauthorized() { - super(ErrorMessage.STORE_PAYMENT_CREATION_UNAUTHORIZED.getMessage()); - } -} From 71455dbb86c598c9b3f48c5c62b554abb24868a5 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 12:20:13 +0900 Subject: [PATCH 16/17] =?UTF-8?q?feat(StorePayment):=20=ED=8C=A8=ED=82=A4?= =?UTF-8?q?=EC=A7=80=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storePayment/service/StorePaymentService.java | 7 ------- .../controller/StorePaymentController.java | 6 ++---- .../dto/StorePaymentReadDto.java | 2 +- .../storepayment/service/StorePaymentService.java | 7 +++++++ .../service/StorePaymentServiceImpl.java | 4 ++-- 5 files changed, 12 insertions(+), 14 deletions(-) delete mode 100644 nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentService.java rename nowait-app-user-api/src/main/java/com/nowait/applicationuser/{storePayment => storepayment}/controller/StorePaymentController.java (84%) rename nowait-app-user-api/src/main/java/com/nowait/applicationuser/{storePayment => storepayment}/dto/StorePaymentReadDto.java (93%) create mode 100644 nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/service/StorePaymentService.java rename nowait-app-user-api/src/main/java/com/nowait/applicationuser/{storePayment => storepayment}/service/StorePaymentServiceImpl.java (89%) diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentService.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentService.java deleted file mode 100644 index fdccb0e3..00000000 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.nowait.applicationuser.storePayment.service; - -import com.nowait.applicationuser.storePayment.dto.StorePaymentReadDto; - -public interface StorePaymentService { - StorePaymentReadDto getStorePaymentByStoreId(Long storeId); -} diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/controller/StorePaymentController.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/controller/StorePaymentController.java similarity index 84% rename from nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/controller/StorePaymentController.java rename to nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/controller/StorePaymentController.java index b02020c5..e6a8582b 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/controller/StorePaymentController.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/controller/StorePaymentController.java @@ -1,16 +1,14 @@ -package com.nowait.applicationuser.storePayment.controller; +package com.nowait.applicationuser.storepayment.controller; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.security.core.annotation.AuthenticationPrincipal; 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.RestController; -import com.nowait.applicationuser.storePayment.service.StorePaymentService; +import com.nowait.applicationuser.storepayment.service.StorePaymentService; import com.nowait.common.api.ApiUtils; -import com.nowait.domaincorerdb.user.entity.MemberDetails; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.responses.ApiResponse; diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/dto/StorePaymentReadDto.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/dto/StorePaymentReadDto.java similarity index 93% rename from nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/dto/StorePaymentReadDto.java rename to nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/dto/StorePaymentReadDto.java index 7c405bf9..e0af8aab 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/dto/StorePaymentReadDto.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/dto/StorePaymentReadDto.java @@ -1,4 +1,4 @@ -package com.nowait.applicationuser.storePayment.dto; +package com.nowait.applicationuser.storepayment.dto; import java.time.LocalDateTime; diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/service/StorePaymentService.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/service/StorePaymentService.java new file mode 100644 index 00000000..4db20e4b --- /dev/null +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/service/StorePaymentService.java @@ -0,0 +1,7 @@ +package com.nowait.applicationuser.storepayment.service; + +import com.nowait.applicationuser.storepayment.dto.StorePaymentReadDto; + +public interface StorePaymentService { + StorePaymentReadDto getStorePaymentByStoreId(Long storeId); +} diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentServiceImpl.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/service/StorePaymentServiceImpl.java similarity index 89% rename from nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentServiceImpl.java rename to nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/service/StorePaymentServiceImpl.java index 44a8de5c..7df519f6 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storePayment/service/StorePaymentServiceImpl.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/service/StorePaymentServiceImpl.java @@ -1,8 +1,8 @@ -package com.nowait.applicationuser.storePayment.service; +package com.nowait.applicationuser.storepayment.service; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.nowait.applicationuser.storePayment.dto.StorePaymentReadDto; +import com.nowait.applicationuser.storepayment.dto.StorePaymentReadDto; import com.nowait.domaincorerdb.store.exception.StoreNotFoundException; import com.nowait.domaincorerdb.storepayment.entity.StorePayment; import com.nowait.domaincorerdb.storepayment.exception.StorePaymentParamEmptyException; From 41d3068d384f2bb03f1bce67b155a4287dece335 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Fri, 11 Jul 2025 12:29:16 +0900 Subject: [PATCH 17/17] =?UTF-8?q?feat(StorePayment):=20=ED=8C=A8=ED=82=A4?= =?UTF-8?q?=EC=A7=80=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StorePaymentController.java | 2 +- .../service/StorePaymentServiceImpl.java | 12 +++++------- .../controller/StorePaymentController.java | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java index 5785b637..df8bc44a 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/controller/StorePaymentController.java @@ -64,7 +64,7 @@ public ResponseEntity getStorePaymentByStoreId(@AuthenticationPrincipal Membe @PatchMapping("/update") @Operation(summary = "주점 결제 정보 수정", description = "주점 결제 정보를 수정합니다.") @ApiResponse(responseCode = "200", description = "주점 결제 정보 수정 성공") - public ResponseEntity updateStorePayment(@Valid @RequestBody StorePaymentUpdateRequest request, @AuthenticationPrincipal MemberDetails memberDetails) { + public ResponseEntity updateStorePayment(@RequestBody StorePaymentUpdateRequest request, @AuthenticationPrincipal MemberDetails memberDetails) { return ResponseEntity .status(HttpStatus.OK) .body( diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java index 2b70b342..5eb6fbca 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/storePayment/service/StorePaymentServiceImpl.java @@ -8,8 +8,6 @@ import com.nowait.applicationadmin.storePayment.dto.StorePaymentReadDto; import com.nowait.applicationadmin.storePayment.dto.StorePaymentUpdateRequest; import com.nowait.common.enums.Role; -import com.nowait.domaincorerdb.store.exception.StoreNotFoundException; -import com.nowait.domaincorerdb.store.exception.StoreParamEmptyException; import com.nowait.domaincorerdb.storepayment.entity.StorePayment; import com.nowait.domaincorerdb.storepayment.exception.StorePaymentAlreadyExistsException; import com.nowait.domaincorerdb.storepayment.exception.StorePaymentCreationUnauthorizedException; @@ -42,7 +40,7 @@ public StorePaymentCreateResponse createStorePayment(StorePaymentCreateRequest r if (storePaymentRepository.findByStoreId(storeId).isPresent()) { throw new StorePaymentAlreadyExistsException(); } - if (!Role.SUPER_ADMIN.equals(user.getRole())) { + if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { throw new StorePaymentCreationUnauthorizedException(); } StorePayment toSave = request.toEntity(storeId); @@ -58,11 +56,11 @@ public StorePaymentReadDto getStorePaymentByStoreId(MemberDetails memberDetails) User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); Long storeId = user.getStoreId(); - if (!Role.SUPER_ADMIN.equals(user.getRole())) { + if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { throw new StorePaymentViewUnauthorizedException(); } StorePayment storePayment = storePaymentRepository.findByStoreId(storeId) - .orElseThrow(StoreNotFoundException::new); + .orElseThrow(StorePaymentNotFoundException::new); return StorePaymentReadDto.fromEntity(storePayment); } @@ -74,11 +72,11 @@ public StorePaymentReadDto updateStorePayment(StorePaymentUpdateRequest request, User user = userRepository.findById(memberDetails.getId()).orElseThrow(UserNotFoundException::new); Long storeId = user.getStoreId(); - if (!Role.SUPER_ADMIN.equals(user.getRole())) { + if (!Role.SUPER_ADMIN.equals(user.getRole()) && !user.getStoreId().equals(storeId)) { throw new StorePaymentUpdateUnauthorizedException(); } StorePayment storePayment = storePaymentRepository.findByStoreId(storeId) - .orElseThrow(StoreNotFoundException::new); + .orElseThrow(StorePaymentNotFoundException::new); storePayment.updatePaymentMethodUrl( request.getTossUrl(), diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/controller/StorePaymentController.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/controller/StorePaymentController.java index e6a8582b..c784ac1f 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/controller/StorePaymentController.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/storepayment/controller/StorePaymentController.java @@ -29,7 +29,7 @@ public class StorePaymentController { @GetMapping(("/{storeId}")) @Operation(summary = "주점 결제 정보 조회", description = "주점 ID로 주점 결제 정보를 조회합니다.") @ApiResponse(responseCode = "200", description = "주점 결제 정보 조회 성공") - public ResponseEntity getStorePaymentByStoreId(@Valid @PathVariable Long storeId) { + public ResponseEntity getStorePaymentByStoreId(@PathVariable Long storeId) { return ResponseEntity .status(HttpStatus.OK) .body(