From cdba9abda64ea8d903435485e5f06cee6b2e7705 Mon Sep 17 00:00:00 2001 From: LimHyunwoo <81962309+imenuuu@users.noreply.github.com> Date: Thu, 21 Dec 2023 13:50:32 +0900 Subject: [PATCH 1/3] =?UTF-8?q?:zap:=20:=20=EA=B4=80=EB=A6=AC=EC=9E=90=20?= =?UTF-8?q?=EB=B0=B0=EB=84=88=20=EC=88=98=EC=A0=95=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?(#225)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../banner/controller/AdminBannerController.java | 8 ++++---- .../admin/banner/service/AdminBannerService.java | 14 +++++++++++--- .../matchapi/banner/converter/BannerConverter.java | 10 ++++++++-- .../com/example/matchapi/banner/dto/BannerReq.java | 5 ++++- .../com/example/matchapi/banner/dto/BannerRes.java | 2 ++ .../example/matchdomain/banner/entity/Banner.java | 7 +++++++ .../config/s3/S3UploadService.java | 1 - 7 files changed, 36 insertions(+), 11 deletions(-) diff --git a/Match-Api/src/main/java/com/example/matchapi/admin/banner/controller/AdminBannerController.java b/Match-Api/src/main/java/com/example/matchapi/admin/banner/controller/AdminBannerController.java index 8f465490..b9fd4cd4 100644 --- a/Match-Api/src/main/java/com/example/matchapi/admin/banner/controller/AdminBannerController.java +++ b/Match-Api/src/main/java/com/example/matchapi/admin/banner/controller/AdminBannerController.java @@ -30,9 +30,8 @@ public class AdminBannerController { @PostMapping(consumes = {MediaType.MULTIPART_FORM_DATA_VALUE}) @Operation(summary = "ADMIN-08-01 배너 업로드") public CommonResponse> uploadBanner( - @RequestPart BannerType bannerType, @RequestPart MultipartFile bannerImage, - @RequestPart BannerReq.BannerUpload bannerUploadDto + @RequestPart("bannerUploadDto") BannerReq.BannerUpload bannerUploadDto ){ return CommonResponse.onSuccess(adminBannerService.uploadBanner(BannerType.EVENT, bannerImage, bannerUploadDto)); } @@ -58,8 +57,9 @@ public CommonResponse deleteBanner(@PathVariable Long bannerId){ @Operation(summary = "ADMIN-08-04 배너 수정") public CommonResponse patchBanner( @PathVariable Long bannerId, - BannerReq.BannerPatchDto bannerPatchDto){ - adminBannerService.patchBanner(bannerId); + @RequestPart(value = "bannerImage", required = false) MultipartFile bannerImage, + @RequestPart("bannerPatchDto") BannerReq.BannerPatchDto bannerPatchDto){ + adminBannerService.patchBanner(bannerId, bannerPatchDto, bannerImage); return CommonResponse.onSuccess("수정 성공"); } } diff --git a/Match-Api/src/main/java/com/example/matchapi/admin/banner/service/AdminBannerService.java b/Match-Api/src/main/java/com/example/matchapi/admin/banner/service/AdminBannerService.java index 3410bbc8..45d664ec 100644 --- a/Match-Api/src/main/java/com/example/matchapi/admin/banner/service/AdminBannerService.java +++ b/Match-Api/src/main/java/com/example/matchapi/admin/banner/service/AdminBannerService.java @@ -7,7 +7,6 @@ import com.example.matchdomain.banner.adaptor.BannerAdaptor; import com.example.matchdomain.banner.entity.Banner; import com.example.matchdomain.banner.enums.BannerType; -import com.example.matchdomain.banner.repository.BannerRepository; import com.example.matchinfrastructure.config.s3.S3UploadService; import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.CacheEvict; @@ -50,8 +49,17 @@ public void deleteBanner(Long bannerId) { bannerAdaptor.deleteById(bannerId); } - public void patchBanner(Long bannerId) { - + @Transactional + public void patchBanner(Long bannerId, BannerReq.BannerPatchDto bannerPatchDto, MultipartFile bannerImage) { + Banner banner = bannerAdaptor.findById(bannerId); + if(bannerPatchDto.isEditImage()){ + s3UploadService.deleteFile(banner.getBannerImg()); + String imgUrl = s3UploadService.uploadBannerImage(bannerImage); + banner.updateBanner(bannerPatchDto.getName(), banner.getStartDate(), banner.getEndDate(), imgUrl); + }else{ + banner.updateBanner(bannerPatchDto.getName(), banner.getStartDate(), banner.getEndDate(), banner.getBannerImg()); + } + bannerAdaptor.save(banner); } public PageResponse> getBannerLists(int page, int size) { diff --git a/Match-Api/src/main/java/com/example/matchapi/banner/converter/BannerConverter.java b/Match-Api/src/main/java/com/example/matchapi/banner/converter/BannerConverter.java index 519f236b..774888e6 100644 --- a/Match-Api/src/main/java/com/example/matchapi/banner/converter/BannerConverter.java +++ b/Match-Api/src/main/java/com/example/matchapi/banner/converter/BannerConverter.java @@ -20,15 +20,20 @@ public Banner convertToBannerUpload(BannerType bannerType, String bannerImg, Ban .bannerType(bannerType) .name(bannerUploadDto.getName()) .eventId(bannerUploadDto.getEventId()) + .startDate(bannerUploadDto.getStartDate()) + .endDate(bannerUploadDto.getEndDate()) + .contentsUrl(bannerUploadDto.getContentsUrl()) .build(); } else{ - return Banner - .builder() + return Banner.builder() .bannerImg(bannerImg) .bannerType(bannerType) .name(bannerUploadDto.getName()) .contentsUrl(bannerUploadDto.getContentsUrl()) + .startDate(bannerUploadDto.getStartDate()) + .endDate(bannerUploadDto.getEndDate()) + .contentsUrl(bannerUploadDto.getContentsUrl()) .build(); } } @@ -77,6 +82,7 @@ private BannerRes.BannerAdminListDto convertToBannerListDto(Banner result) { .bannerType(result.getBannerType()) .eventId(result.getEventId()) .name(result.getName()) + .contentsUrl(result.getContentsUrl()) .bannerImg(result.getBannerImg()) .startDate(result.getStartDate()) .endDate(result.getEndDate()) diff --git a/Match-Api/src/main/java/com/example/matchapi/banner/dto/BannerReq.java b/Match-Api/src/main/java/com/example/matchapi/banner/dto/BannerReq.java index 26a5b72e..9851ca44 100644 --- a/Match-Api/src/main/java/com/example/matchapi/banner/dto/BannerReq.java +++ b/Match-Api/src/main/java/com/example/matchapi/banner/dto/BannerReq.java @@ -29,12 +29,15 @@ public static class BannerUpload { @Setter @Builder @AllArgsConstructor + @ToString @NoArgsConstructor public static class BannerPatchDto { + private String name; + private LocalDateTime startDate; private LocalDateTime endDate; - private String deleteImgUrl; + private boolean isEditImage; } } diff --git a/Match-Api/src/main/java/com/example/matchapi/banner/dto/BannerRes.java b/Match-Api/src/main/java/com/example/matchapi/banner/dto/BannerRes.java index a71754c9..03a57cdc 100644 --- a/Match-Api/src/main/java/com/example/matchapi/banner/dto/BannerRes.java +++ b/Match-Api/src/main/java/com/example/matchapi/banner/dto/BannerRes.java @@ -40,6 +40,8 @@ public static class BannerAdminListDto { private String name; + private String contentsUrl; + private String bannerImg; private Long eventId; diff --git a/Match-Domain/src/main/java/com/example/matchdomain/banner/entity/Banner.java b/Match-Domain/src/main/java/com/example/matchdomain/banner/entity/Banner.java index dd261855..238d4af2 100644 --- a/Match-Domain/src/main/java/com/example/matchdomain/banner/entity/Banner.java +++ b/Match-Domain/src/main/java/com/example/matchdomain/banner/entity/Banner.java @@ -47,4 +47,11 @@ public class Banner extends BaseEntity { private LocalDateTime startDate; private LocalDateTime endDate; + + public void updateBanner(String name, LocalDateTime startDate, LocalDateTime endDate, String bannerImg) { + this.name = name; + this.startDate = startDate; + this.endDate = endDate; + this.bannerImg = bannerImg; + } } diff --git a/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/config/s3/S3UploadService.java b/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/config/s3/S3UploadService.java index b8894263..3092ad71 100644 --- a/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/config/s3/S3UploadService.java +++ b/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/config/s3/S3UploadService.java @@ -142,7 +142,6 @@ public String uploadProjectPresentFile(Long projectId,MultipartFile presentFile) public void deleteFile(String fileName){ int index=fileName.indexOf(awsS3Properties.getS3().getBaseUrl()); String fileRoute=fileName.substring(index+awsS3Properties.getS3().getBaseUrl().length()+1); - System.out.println("deletefilename : "+fileRoute); try { boolean isObjectExist = amazonS3.doesObjectExist(awsS3Properties.getS3().getBucket(), fileRoute); if (isObjectExist) { From b2a07167bf002e6bc1845b3d8d6a2cc4ac269524 Mon Sep 17 00:00:00 2001 From: LimHyunwoo <81962309+imenuuu@users.noreply.github.com> Date: Thu, 21 Dec 2023 13:50:51 +0900 Subject: [PATCH 2/3] =?UTF-8?q?:zap:=20:=20=ED=8F=AC=ED=8A=B8=EC=9B=90=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80=20(#2?= =?UTF-8?q?25)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/matchapi/order/service/OrderService.java | 4 ++++ .../pay/portone/dto/PortOneBillPayResponse.java | 2 ++ .../matchinfrastructure/pay/portone/dto/PortOneResponse.java | 2 ++ 3 files changed, 8 insertions(+) diff --git a/Match-Api/src/main/java/com/example/matchapi/order/service/OrderService.java b/Match-Api/src/main/java/com/example/matchapi/order/service/OrderService.java index 23cfa414..e542dddc 100644 --- a/Match-Api/src/main/java/com/example/matchapi/order/service/OrderService.java +++ b/Match-Api/src/main/java/com/example/matchapi/order/service/OrderService.java @@ -116,6 +116,8 @@ public OrderRes.CompleteDonation paymentForOnetime(OrderCommand.OneTimeDonation PortOneResponse portOneResponse = paymentService.payBillKey(card, oneTimeDonation.getAmount(), project.getProjectName(), orderCommand.getOrderId()); + if(portOneResponse.getResponse().getFail_reason()!=null) throw new BaseException(BAD_REQUEST, false, "PORT_ONE_BILL_AUTH_001", portOneResponse.getResponse().getFail_reason()); + OrderRes.CreateInherenceDto createInherenceDto = orderHelper.createInherence(user); DonationUser donationUser = donationUserRepository.save( @@ -143,6 +145,8 @@ public OrderRes.CompleteDonation paymentForRegular(OrderCommand.RegularDonation PortOneResponse portOneResponse = paymentService.payBillKey(card, regularDonation.getAmount(), project.getProjectName(), orderCommand.getOrderId()); + if(portOneResponse.getResponse().getFail_reason()!=null) throw new BaseException(BAD_REQUEST, false, "PORT_ONE_BILL_AUTH_001", portOneResponse.getResponse().getFail_reason()); + OrderRes.CreateInherenceDto createInherenceDto = orderHelper.createInherence(user); RegularPayment regularPayment = regularPaymentRepository.save(orderConverter.convertToRegularPayment(user.getId(), regularDonation, card.getId(), project.getId())); diff --git a/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/pay/portone/dto/PortOneBillPayResponse.java b/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/pay/portone/dto/PortOneBillPayResponse.java index 59325039..6892146e 100644 --- a/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/pay/portone/dto/PortOneBillPayResponse.java +++ b/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/pay/portone/dto/PortOneBillPayResponse.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.Setter; +import lombok.ToString; import java.util.List; @@ -11,6 +12,7 @@ @Setter @AllArgsConstructor @RequiredArgsConstructor +@ToString public class PortOneBillPayResponse { private String imp_uid; private String merchant_uid; diff --git a/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/pay/portone/dto/PortOneResponse.java b/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/pay/portone/dto/PortOneResponse.java index 73a9a465..1ca65fb1 100644 --- a/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/pay/portone/dto/PortOneResponse.java +++ b/Match-Infrastructure/src/main/java/com/example/matchinfrastructure/pay/portone/dto/PortOneResponse.java @@ -4,10 +4,12 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.ToString; @Getter @AllArgsConstructor @NoArgsConstructor +@ToString public class PortOneResponse { @SerializedName("code") int code; From e32e0054b52ee44e2b5cd68808037d5ee114f582 Mon Sep 17 00:00:00 2001 From: LimHyunwoo <81962309+imenuuu@users.noreply.github.com> Date: Thu, 21 Dec 2023 13:55:03 +0900 Subject: [PATCH 3/3] =?UTF-8?q?:zap:=20:=20=ED=8F=AC=ED=8A=B8=EC=9B=90=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80=20(#2?= =?UTF-8?q?25)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/matchbatch/service/OrderService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Match-Batch/src/main/java/com/example/matchbatch/service/OrderService.java b/Match-Batch/src/main/java/com/example/matchbatch/service/OrderService.java index 51a096e9..bff083e0 100644 --- a/Match-Batch/src/main/java/com/example/matchbatch/service/OrderService.java +++ b/Match-Batch/src/main/java/com/example/matchbatch/service/OrderService.java @@ -6,6 +6,7 @@ import com.example.matchbatch.model.CalculateMonthLastDateDto; import com.example.matchbatch.model.PaymentCntDto; import com.example.matchcommon.annotation.RedissonLock; +import com.example.matchcommon.exception.BaseException; import com.example.matchdomain.donation.adaptor.RegularPaymentAdaptor; import com.example.matchdomain.donation.adaptor.RequestFailedHistoryAdapter; import com.example.matchdomain.donation.entity.*; @@ -26,6 +27,7 @@ import java.util.stream.Collectors; import static com.example.matchcommon.constants.MatchStatic.*; +import static org.springframework.http.HttpStatus.*; @Service @RequiredArgsConstructor @@ -111,7 +113,7 @@ public boolean processRegularPayment(RegularPayment payment, String accessToken, String orderId = orderHelper.createRandomOrderId(); PortOneResponse portOneResponse = attemptPayment(payment, accessToken, orderId); - if(portOneResponse.getCode()!=0){ + if(portOneResponse.getCode()!=0 || portOneResponse.getResponse().getFail_reason()!=null){ handlePaymentFailure(payment, portOneResponse.getMessage(), type); return true; }