From b45256fefc07d542f1e1125a6b45a28884761e72 Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Tue, 30 Jul 2024 21:48:24 +0900 Subject: [PATCH 01/14] =?UTF-8?q?[feat]=20DiscountInfo=20=EC=97=94?= =?UTF-8?q?=ED=8B=B0=ED=8B=B0=EC=97=90=20thumbnailUrl=20=ED=95=84=EB=93=9C?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/discountinfo/converter/DiscountInfoConverter.java | 2 ++ .../domain/discountinfo/dto/DiscountRequestDto.java | 2 ++ .../domain/discountinfo/dto/DiscountResponseDto.java | 2 ++ .../budgetbuddies/domain/discountinfo/entity/DiscountInfo.java | 3 +++ 4 files changed, 9 insertions(+) diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java index 66793215..81e76f77 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java @@ -23,6 +23,7 @@ public DiscountResponseDto toDto(DiscountInfo entity) { .discountRate(entity.getDiscountRate()) .likeCount(entity.getLikeCount()) .siteUrl(entity.getSiteUrl()) + .thumbnailUrl(entity.getThumbnailUrl()) .build(); } @@ -41,6 +42,7 @@ public DiscountInfo toEntity(DiscountRequestDto requestDto) { .discountRate(requestDto.getDiscountRate()) .likeCount(0) .siteUrl(requestDto.getSiteUrl()) + .thumbnailUrl(requestDto.getThumbnailUrl()) .build(); } diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequestDto.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequestDto.java index 894f6b3b..573a9715 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequestDto.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequestDto.java @@ -20,4 +20,6 @@ public class DiscountRequestDto { private String siteUrl; + private String thumbnailUrl; + } diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountResponseDto.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountResponseDto.java index 3cd64ff4..3948f419 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountResponseDto.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountResponseDto.java @@ -26,4 +26,6 @@ public class DiscountResponseDto { private String siteUrl; + private String thumbnailUrl; + } diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/entity/DiscountInfo.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/entity/DiscountInfo.java index 2beb881a..4560c034 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/entity/DiscountInfo.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/entity/DiscountInfo.java @@ -34,6 +34,9 @@ public class DiscountInfo extends BaseEntity { @Column(length = 1000) private String siteUrl; + @Column(length = 1000) + private String thumbnailUrl; // 카드 썸네일 이미지 + public void addLikeCount() { this.likeCount++; } From 0a86e4c2b81a68e96d1593a828e6ef3d4ba7d81d Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Tue, 30 Jul 2024 21:48:35 +0900 Subject: [PATCH 02/14] =?UTF-8?q?[feat]=20SupportInfo=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=EC=97=90=20thumbnailUrl=20=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/supportinfo/converter/SupportInfoConverter.java | 2 ++ .../domain/supportinfo/dto/SupportRequestDto.java | 2 ++ .../domain/supportinfo/dto/SupportResponseDto.java | 2 ++ .../budgetbuddies/domain/supportinfo/entity/SupportInfo.java | 3 +++ 4 files changed, 9 insertions(+) diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/converter/SupportInfoConverter.java b/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/converter/SupportInfoConverter.java index 8e9bd62f..6bc8a7be 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/converter/SupportInfoConverter.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/converter/SupportInfoConverter.java @@ -24,6 +24,7 @@ public SupportResponseDto toDto(SupportInfo entity) { .anonymousNumber(entity.getAnonymousNumber()) .likeCount(entity.getLikeCount()) .siteUrl(entity.getSiteUrl()) + .thumbnailUrl(entity.getThumbnailUrl()) .build(); } @@ -41,6 +42,7 @@ public SupportInfo toEntity(SupportRequestDto requestDto) { .anonymousNumber(0) .likeCount(0) .siteUrl(requestDto.getSiteUrl()) + .thumbnailUrl(requestDto.getThumbnailUrl()) .build(); } } diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/dto/SupportRequestDto.java b/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/dto/SupportRequestDto.java index ff883f7d..c008de0a 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/dto/SupportRequestDto.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/dto/SupportRequestDto.java @@ -21,4 +21,6 @@ public class SupportRequestDto { private String siteUrl; + private String thumbnailUrl; + } diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/dto/SupportResponseDto.java b/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/dto/SupportResponseDto.java index b04825f7..5392e54c 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/dto/SupportResponseDto.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/dto/SupportResponseDto.java @@ -27,4 +27,6 @@ public class SupportResponseDto { private String siteUrl; + private String thumbnailUrl; + } diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/entity/SupportInfo.java b/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/entity/SupportInfo.java index f811f7ee..752341b7 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/entity/SupportInfo.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/entity/SupportInfo.java @@ -32,6 +32,9 @@ public class SupportInfo extends BaseEntity { @Column(length = 1000) private String siteUrl; + @Column(length = 1000) + private String thumbnailUrl; // 카드 썸네일 이미지 + public void addLikeCount() { this.likeCount++; } From fb18935c64775702b6179276d52903815783dc56 Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Tue, 30 Jul 2024 22:49:05 +0900 Subject: [PATCH 03/14] =?UTF-8?q?[feat]=20DiscountInfo=20update=20?= =?UTF-8?q?=EB=A9=94=EC=86=8C=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/discountinfo/entity/DiscountInfo.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/entity/DiscountInfo.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/entity/DiscountInfo.java index 4560c034..3c1d0a5e 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/entity/DiscountInfo.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/entity/DiscountInfo.java @@ -1,6 +1,7 @@ package com.bbteam.budgetbuddies.domain.discountinfo.entity; import com.bbteam.budgetbuddies.common.BaseEntity; +import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequest; import jakarta.persistence.Column; import jakarta.persistence.Entity; import lombok.*; @@ -50,4 +51,13 @@ public Integer addAndGetAnonymousNumber() { return anonymousNumber; } + public void update(DiscountRequest.UpdateDto discountRequestDto) { + this.title = discountRequestDto.getTitle(); + this.startDate = discountRequestDto.getStartDate(); + this.endDate = discountRequestDto.getEndDate(); + this.discountRate = discountRequestDto.getDiscountRate(); + this.siteUrl = discountRequestDto.getSiteUrl(); + this.thumbnailUrl = discountRequestDto.getThumbnailUrl(); + } + } From 90a86ad3555cfadee9ef593555fe1a8c93630fab Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Wed, 31 Jul 2024 22:04:15 +0900 Subject: [PATCH 04/14] =?UTF-8?q?[refactor]=20DiscountRequest=20DTO?= =?UTF-8?q?=EB=A5=BC=20=ED=95=98=EC=9C=84=20static=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=EB=A1=9C=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discountinfo/dto/DiscountRequest.java | 50 +++++++++++++++++++ .../discountinfo/dto/DiscountRequestDto.java | 25 ---------- 2 files changed, 50 insertions(+), 25 deletions(-) create mode 100644 src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequest.java delete mode 100644 src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequestDto.java diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequest.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequest.java new file mode 100644 index 00000000..490565bf --- /dev/null +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequest.java @@ -0,0 +1,50 @@ +package com.bbteam.budgetbuddies.domain.discountinfo.dto; + +import lombok.*; + +import java.time.LocalDate; + +public class DiscountRequest { + + @Getter + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class RegisterDto { + + private String title; + + private LocalDate startDate; + + private LocalDate endDate; + + private Integer discountRate; + + private String siteUrl; + + private String thumbnailUrl; + } + + @Getter + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class UpdateDto { + + private Long id; + + private String title; + + private LocalDate startDate; + + private LocalDate endDate; + + private Integer discountRate; + + private String siteUrl; + + private String thumbnailUrl; + } + + +} diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequestDto.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequestDto.java deleted file mode 100644 index 573a9715..00000000 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/dto/DiscountRequestDto.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bbteam.budgetbuddies.domain.discountinfo.dto; - -import lombok.*; - -import java.time.LocalDate; - -@Getter -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class DiscountRequestDto { - - private String title; - - private LocalDate startDate; - - private LocalDate endDate; - - private Integer discountRate; - - private String siteUrl; - - private String thumbnailUrl; - -} From 277290d793b3564bc1bc480d17e81d5577b95a8d Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Wed, 31 Jul 2024 22:05:09 +0900 Subject: [PATCH 05/14] =?UTF-8?q?[feat]=20DiscountInfo=20=EC=88=98?= =?UTF-8?q?=EC=A0=95/=EC=82=AD=EC=A0=9C=20API=20=EC=BB=A8=ED=8A=B8?= =?UTF-8?q?=EB=A1=A4=EB=9F=AC=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DiscountInfoApi.java | 40 +++++++++++++++++-- .../controller/DiscountInfoController.java | 32 +++++++++++---- 2 files changed, 62 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoApi.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoApi.java index f381f94f..6aff66cb 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoApi.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoApi.java @@ -1,6 +1,6 @@ package com.bbteam.budgetbuddies.domain.discountinfo.controller; -import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequestDto; +import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequest; import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountResponseDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -8,7 +8,6 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses; import org.springframework.data.domain.Page; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -41,9 +40,12 @@ ResponseEntity> getDiscountsByYearAndMonth( // @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH003", description = "access 토큰을 주세요!", content = @Content(schema = @Schema(implementation = ApiResponse.class))), // @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH004", description = "access 토큰 만료", content = @Content(schema = @Schema(implementation = ApiResponse.class))), // @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH006", description = "access 토큰 모양이 이상함", content = @Content(schema = @Schema(implementation = ApiResponse.class))) + }) + @Parameters({ +// @Parameter(name = "discountRequestDto", description = "등록할 할인 정보의 전체 내용입니다."), }) public ResponseEntity registerDiscountInfo( - @RequestBody DiscountRequestDto discountRequestDto + @RequestBody DiscountRequest.RegisterDto discountRequestDto ); @Operation(summary = "[User] 특정 할인정보에 좋아요 클릭 API", description = "특정 할인정보에 좋아요 버튼을 클릭하는 API이며, 일단은 사용자 ID를 입력하여 사용합니다. (추후 토큰으로 검증)") @@ -62,4 +64,36 @@ public ResponseEntity likeDiscountInfo( @PathVariable Long discountInfoId ); + @Operation(summary = "[ADMIN] 특정 할인정보 수정하기 API", description = "특정 할인정보를 수정하는 API이며, 일단은 사용자 ID를 입력하여 사용합니다. (추후 토큰으로 검증)") + @ApiResponses({ + @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "COMMON200", description = "OK, 성공"), +// @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH003", description = "access 토큰을 주세요!", content = @Content(schema = @Schema(implementation = ApiResponse.class))), +// @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH004", description = "access 토큰 만료", content = @Content(schema = @Schema(implementation = ApiResponse.class))), +// @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH006", description = "access 토큰 모양이 이상함", content = @Content(schema = @Schema(implementation = ApiResponse.class))) + }) + @Parameters({ + @Parameter(name = "userId", description = "수정할 사용자의 id입니다."), +// @Parameter(name = "discountRequestDto", description = "수정할 할인 정보의 전체 내용입니다."), + }) + public ResponseEntity updateDiscountInfo( + @RequestParam Long userId, + @RequestBody DiscountRequest.UpdateDto discountRequestDto + ); + + @Operation(summary = "[ADMIN] 특정 할인정보 삭제하기 API", description = "특정 할인정보를 삭제하는 API이며, 일단은 사용자 ID를 입력하여 사용합니다. (추후 토큰으로 검증)") + @ApiResponses({ + @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "COMMON200", description = "OK, 성공"), +// @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH003", description = "access 토큰을 주세요!", content = @Content(schema = @Schema(implementation = ApiResponse.class))), +// @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH004", description = "access 토큰 만료", content = @Content(schema = @Schema(implementation = ApiResponse.class))), +// @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH006", description = "access 토큰 모양이 이상함", content = @Content(schema = @Schema(implementation = ApiResponse.class))) + }) + @Parameters({ + @Parameter(name = "userId", description = "삭제할 사용자의 id입니다."), + @Parameter(name = "discountInfoId", description = "삭제할 할인 정보의 id입니다."), + }) + public ResponseEntity deleteDiscountInfo( + @RequestParam Long userId, + @PathVariable Long discountInfoId + ); + } diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoController.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoController.java index cd129809..835c941b 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoController.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoController.java @@ -1,12 +1,8 @@ package com.bbteam.budgetbuddies.domain.discountinfo.controller; -import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequestDto; +import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequest; import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountResponseDto; import com.bbteam.budgetbuddies.domain.discountinfo.service.DiscountInfoService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.responses.ApiResponses; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.http.ResponseEntity; @@ -35,7 +31,7 @@ public ResponseEntity> getDiscountsByYearAndMonth( @Override @PostMapping("") public ResponseEntity registerDiscountInfo( - @RequestBody DiscountRequestDto discountRequestDto + @RequestBody DiscountRequest.RegisterDto discountRequestDto ) { DiscountResponseDto discountResponseDto = discountInfoService.registerDiscountInfo(discountRequestDto); @@ -43,7 +39,7 @@ public ResponseEntity registerDiscountInfo( } @Override - @PostMapping("/{discountInfoId}/likes") + @PostMapping("/likes/{discountInfoId}") public ResponseEntity likeDiscountInfo( @RequestParam Long userId, @PathVariable Long discountInfoId @@ -53,4 +49,26 @@ public ResponseEntity likeDiscountInfo( return ResponseEntity.ok(discountResponseDto); } + @Override + @PutMapping("") + public ResponseEntity updateDiscountInfo( + @RequestParam Long userId, + @RequestBody DiscountRequest.UpdateDto discountRequestDto + ) { + DiscountResponseDto discountResponseDto = discountInfoService.updateDiscountInfo(userId, discountRequestDto); + + return ResponseEntity.ok(discountResponseDto); + } + + @Override + @DeleteMapping("{discountInfoId}") + public ResponseEntity deleteDiscountInfo( + @RequestParam Long userId, + @PathVariable Long discountInfoId + ) { + String message = discountInfoService.deleteDiscountInfo(userId, discountInfoId); + + return ResponseEntity.ok(message); + } + } From 3a3b839fafe12a0ec7966df894a3ea7eeaa8694a Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Wed, 31 Jul 2024 22:05:26 +0900 Subject: [PATCH 06/14] =?UTF-8?q?[feat]=20DiscountInfo=20=EC=88=98?= =?UTF-8?q?=EC=A0=95/=EC=82=AD=EC=A0=9C=20API=20=EC=84=9C=EB=B9=84?= =?UTF-8?q?=EC=8A=A4=20=EB=A1=9C=EC=A7=81=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/DiscountInfoService.java | 7 ++- .../service/DiscountInfoServiceImpl.java | 48 ++++++++++++++++++- 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoService.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoService.java index 5be85054..e2900be6 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoService.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoService.java @@ -1,6 +1,6 @@ package com.bbteam.budgetbuddies.domain.discountinfo.service; -import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequestDto; +import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequest; import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountResponseDto; import org.springframework.data.domain.Page; @@ -12,9 +12,12 @@ Page getDiscountsByYearAndMonth( Integer size ); - DiscountResponseDto registerDiscountInfo(DiscountRequestDto discountRequestDto); + DiscountResponseDto registerDiscountInfo(DiscountRequest.RegisterDto discountRequestDto); DiscountResponseDto toggleLike(Long userId, Long discountInfoId); + DiscountResponseDto updateDiscountInfo(Long userId, DiscountRequest.UpdateDto discountRequestDto); + + public String deleteDiscountInfo(Long userId, Long discountInfoId); } diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceImpl.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceImpl.java index a1ef0604..f7764463 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceImpl.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceImpl.java @@ -1,7 +1,7 @@ package com.bbteam.budgetbuddies.domain.discountinfo.service; import com.bbteam.budgetbuddies.domain.discountinfo.converter.DiscountInfoConverter; -import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequestDto; +import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequest; import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountResponseDto; import com.bbteam.budgetbuddies.domain.discountinfo.entity.DiscountInfo; import com.bbteam.budgetbuddies.domain.discountinfo.repository.DiscountInfoRepository; @@ -53,7 +53,7 @@ public Page getDiscountsByYearAndMonth(Integer year, Intege @Transactional @Override - public DiscountResponseDto registerDiscountInfo(DiscountRequestDto discountRequestDto) { + public DiscountResponseDto registerDiscountInfo(DiscountRequest.RegisterDto discountRequestDto) { /** * 1. RequestDto -> Entity로 변환 * 2. Entity 저장 @@ -115,5 +115,49 @@ public DiscountResponseDto toggleLike(Long userId, Long discountInfoId) { return discountInfoConverter.toDto(savedEntity); } + @Transactional + @Override + public DiscountResponseDto updateDiscountInfo(Long userId, DiscountRequest.UpdateDto discountRequestDto) { + /** + * 1. 사용자 조회 -> 없으면 에러 + * 2. 할인정보 조회 -> 없으면 에러 + * 3. 변경사항 업데이트 + * 4. 변경사항 저장 + * 5. Entity -> ResponseDto로 변환 후 리턴 + */ + + User user = userRepository.findById(userId) + .orElseThrow(() -> new IllegalArgumentException("User not found")); + + DiscountInfo discountInfo = discountInfoRepository.findById(discountRequestDto.getId()) + .orElseThrow(() -> new IllegalArgumentException("DiscountInfo not found")); + + discountInfo.update(discountRequestDto); // 변경사항 업데이트 + discountInfoRepository.save(discountInfo); // 변경사항 저장 + + return discountInfoConverter.toDto(discountInfo); + } + + @Transactional + @Override + public String deleteDiscountInfo(Long userId, Long discountInfoId) { + /** + * 1. 사용자 조회 -> 없으면 에러 + * 2. 할인정보 조회 -> 없으면 에러 + * 3. Entity 삭제 + * 4. 성공여부 반환 + */ + + User user = userRepository.findById(userId) + .orElseThrow(() -> new IllegalArgumentException("User not found")); + + DiscountInfo discountInfo = discountInfoRepository.findById(discountInfoId) + .orElseThrow(() -> new IllegalArgumentException("DiscountInfo not found")); + + discountInfoRepository.deleteById(discountInfoId); + + return "Success"; + + } } From befa219442866c6c57b86aa64b42c11e7afc0aef Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Wed, 31 Jul 2024 22:06:02 +0900 Subject: [PATCH 07/14] =?UTF-8?q?[feat]=20DiscountRequest=20=EB=A6=AC?= =?UTF-8?q?=ED=8C=A9=ED=86=A0=EB=A7=81=EC=97=90=20=EB=A7=9E=EA=B2=8C=20?= =?UTF-8?q?=EB=A9=94=EC=86=8C=EB=93=9C=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=20=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20toEntity=20?= =?UTF-8?q?=EB=A9=94=EC=86=8C=EB=93=9C=20=EC=98=A4=EB=B2=84=EB=A1=9C?= =?UTF-8?q?=EB=94=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../converter/DiscountInfoConverter.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java index 81e76f77..787e76de 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java @@ -1,6 +1,6 @@ package com.bbteam.budgetbuddies.domain.discountinfo.converter; -import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequestDto; +import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequest; import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountResponseDto; import com.bbteam.budgetbuddies.domain.discountinfo.entity.DiscountInfo; import org.springframework.stereotype.Service; @@ -32,7 +32,26 @@ public DiscountResponseDto toDto(DiscountInfo entity) { * @param requestDto * @return entity */ - public DiscountInfo toEntity(DiscountRequestDto requestDto) { + public DiscountInfo toEntity(DiscountRequest.RegisterDto requestDto) { + + return DiscountInfo.builder() + .title(requestDto.getTitle()) + .startDate(requestDto.getStartDate()) + .endDate(requestDto.getEndDate()) + .anonymousNumber(0) + .discountRate(requestDto.getDiscountRate()) + .likeCount(0) + .siteUrl(requestDto.getSiteUrl()) + .thumbnailUrl(requestDto.getThumbnailUrl()) + .build(); + } + + /** + * + * @param requestDto + * @return entity + */ + public DiscountInfo toEntity(DiscountRequest.UpdateDto requestDto) { return DiscountInfo.builder() .title(requestDto.getTitle()) From 257e0190c24b18b087c21d6d345ccfa457a84c7e Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Wed, 31 Jul 2024 22:07:02 +0900 Subject: [PATCH 08/14] =?UTF-8?q?[refactor]=20DiscountRequest=20=EB=A6=AC?= =?UTF-8?q?=ED=8C=A9=ED=86=A0=EB=A7=81=EC=97=90=20=EB=A7=9E=EA=B2=8C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discountinfo/service/DiscountInfoServiceTest.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceTest.java b/src/test/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceTest.java index 3733a825..0fee5041 100644 --- a/src/test/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceTest.java +++ b/src/test/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceTest.java @@ -1,7 +1,7 @@ package com.bbteam.budgetbuddies.domain.discountinfo.service; import com.bbteam.budgetbuddies.domain.discountinfo.converter.DiscountInfoConverter; -import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequestDto; +import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequest; import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountResponseDto; import com.bbteam.budgetbuddies.domain.discountinfo.entity.DiscountInfo; import com.bbteam.budgetbuddies.domain.discountinfo.repository.DiscountInfoRepository; @@ -103,12 +103,13 @@ void getDiscountsByYearAndMonthTest() { @DisplayName("할인 정보 등록이 정상적으로 되는지 검증") void registerDiscountInfoTest() { // given - DiscountRequestDto requestDto = DiscountRequestDto.builder() + DiscountRequest.RegisterDto requestDto = DiscountRequest.RegisterDto.builder() .title("할인 정보 제목") .startDate(LocalDate.of(2024, 7, 1)) .endDate(LocalDate.of(2024, 7, 21)) .discountRate(30) .siteUrl("http://example.com") + .thumbnailUrl("http://example.com2") .build(); DiscountInfo entity = DiscountInfo.builder() @@ -117,6 +118,7 @@ void registerDiscountInfoTest() { .endDate(LocalDate.of(2024, 7, 21)) .discountRate(30) .siteUrl("http://example.com") + .thumbnailUrl("http://example.com2") .build(); DiscountResponseDto responseDto = DiscountResponseDto.builder() @@ -126,6 +128,7 @@ void registerDiscountInfoTest() { .endDate(LocalDate.of(2024, 7, 21)) .discountRate(30) .siteUrl("http://example.com") + .thumbnailUrl("http://example.com2") .likeCount(0) .anonymousNumber(0) .build(); From b81baaaf81976313d541d8bda03133f71f95359f Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Wed, 31 Jul 2024 22:08:09 +0900 Subject: [PATCH 09/14] =?UTF-8?q?[fix]=20Merge=20=EC=8B=9C=20=EB=88=84?= =?UTF-8?q?=EB=9D=BD=EB=90=9C=20=EC=BD=94=EB=93=9C=20=EC=9E=AC=EC=82=BD?= =?UTF-8?q?=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supportinfo/repository/SupportInfoRepositoryTest.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/test/java/com/bbteam/budgetbuddies/domain/supportinfo/repository/SupportInfoRepositoryTest.java b/src/test/java/com/bbteam/budgetbuddies/domain/supportinfo/repository/SupportInfoRepositoryTest.java index 9bb09ce0..e460d8cb 100644 --- a/src/test/java/com/bbteam/budgetbuddies/domain/supportinfo/repository/SupportInfoRepositoryTest.java +++ b/src/test/java/com/bbteam/budgetbuddies/domain/supportinfo/repository/SupportInfoRepositoryTest.java @@ -31,6 +31,13 @@ class SupportInfoRepositoryTest { @DisplayName("@SoftDelete 테스트") void deletedTest() { // given + SupportInfo discount1 = SupportInfo.builder() + .title("지원정보1") + .startDate(LocalDate.of(2024, 7, 1)) + .endDate(LocalDate.of(2024, 7, 21)) + .siteUrl("http://example1.com") + .build(); + SupportInfo discount2 = SupportInfo.builder() .title("지원정보2") .startDate(LocalDate.of(2024, 7, 1)) From 0cbf688e9b818aedcdc9a316a1d463733b302256 Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Wed, 31 Jul 2024 22:08:21 +0900 Subject: [PATCH 10/14] =?UTF-8?q?[fix]=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20import=EB=AC=B8=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supportinfo/service/SupportInfoServiceTest.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/test/java/com/bbteam/budgetbuddies/domain/supportinfo/service/SupportInfoServiceTest.java b/src/test/java/com/bbteam/budgetbuddies/domain/supportinfo/service/SupportInfoServiceTest.java index c8aa3ddd..fe5214df 100644 --- a/src/test/java/com/bbteam/budgetbuddies/domain/supportinfo/service/SupportInfoServiceTest.java +++ b/src/test/java/com/bbteam/budgetbuddies/domain/supportinfo/service/SupportInfoServiceTest.java @@ -1,13 +1,5 @@ package com.bbteam.budgetbuddies.domain.supportinfo.service; -import com.bbteam.budgetbuddies.domain.discountinfo.converter.DiscountInfoConverter; -import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequestDto; -import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountResponseDto; -import com.bbteam.budgetbuddies.domain.discountinfo.entity.DiscountInfo; -import com.bbteam.budgetbuddies.domain.discountinfo.repository.DiscountInfoRepository; -import com.bbteam.budgetbuddies.domain.discountinfo.service.DiscountInfoServiceImpl; -import com.bbteam.budgetbuddies.domain.discountinfolike.entity.DiscountInfoLike; -import com.bbteam.budgetbuddies.domain.discountinfolike.repository.DiscountInfoLikeRepository; import com.bbteam.budgetbuddies.domain.supportinfo.converter.SupportInfoConverter; import com.bbteam.budgetbuddies.domain.supportinfo.dto.SupportRequestDto; import com.bbteam.budgetbuddies.domain.supportinfo.dto.SupportResponseDto; @@ -36,11 +28,9 @@ import java.util.Optional; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.*; -import static org.mockito.Mockito.times; @Transactional @ExtendWith(MockitoExtension.class) From 271006c0189a343028468f2f5e656c824c44e996 Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Wed, 31 Jul 2024 22:08:52 +0900 Subject: [PATCH 11/14] =?UTF-8?q?[fix]=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20import=EB=AC=B8=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/supportinfo/converter/SupportInfoConverter.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/converter/SupportInfoConverter.java b/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/converter/SupportInfoConverter.java index 6bc8a7be..d06abcc6 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/converter/SupportInfoConverter.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/supportinfo/converter/SupportInfoConverter.java @@ -1,8 +1,5 @@ package com.bbteam.budgetbuddies.domain.supportinfo.converter; -import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountRequestDto; -import com.bbteam.budgetbuddies.domain.discountinfo.dto.DiscountResponseDto; -import com.bbteam.budgetbuddies.domain.discountinfo.entity.DiscountInfo; import com.bbteam.budgetbuddies.domain.supportinfo.dto.SupportRequestDto; import com.bbteam.budgetbuddies.domain.supportinfo.dto.SupportResponseDto; import com.bbteam.budgetbuddies.domain.supportinfo.entity.SupportInfo; From 72fc3c7c06264a57c41899767b90150e3218edcf Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Thu, 1 Aug 2024 18:46:11 +0900 Subject: [PATCH 12/14] =?UTF-8?q?[fix]=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EB=A9=94=EC=86=8C=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../converter/DiscountInfoConverter.java | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java index 787e76de..7a9e39eb 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/converter/DiscountInfoConverter.java @@ -46,23 +46,4 @@ public DiscountInfo toEntity(DiscountRequest.RegisterDto requestDto) { .build(); } - /** - * - * @param requestDto - * @return entity - */ - public DiscountInfo toEntity(DiscountRequest.UpdateDto requestDto) { - - return DiscountInfo.builder() - .title(requestDto.getTitle()) - .startDate(requestDto.getStartDate()) - .endDate(requestDto.getEndDate()) - .anonymousNumber(0) - .discountRate(requestDto.getDiscountRate()) - .likeCount(0) - .siteUrl(requestDto.getSiteUrl()) - .thumbnailUrl(requestDto.getThumbnailUrl()) - .build(); - } - } From bcdb3867490084bfd42e9c088ccc95c5391c1486 Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Thu, 1 Aug 2024 18:46:57 +0900 Subject: [PATCH 13/14] =?UTF-8?q?[feat]=20getDiscountInfo=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20=EC=BB=A8=ED=8A=B8=EB=A1=A4=EB=9F=AC=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=20(=ED=95=A0=EC=9D=B8=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EB=8B=A8=EA=B1=B4=20=EC=A1=B0=ED=9A=8C=20=EB=A9=94=EC=86=8C?= =?UTF-8?q?=EB=93=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discountinfo/controller/DiscountInfoApi.java | 16 ++++++++++++++++ .../controller/DiscountInfoController.java | 14 +++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoApi.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoApi.java index 6aff66cb..5603e0f3 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoApi.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoApi.java @@ -96,4 +96,20 @@ public ResponseEntity deleteDiscountInfo( @PathVariable Long discountInfoId ); + @Operation(summary = "[ADMIN] 특정 할인정보 가져오기 API", description = "ID를 통해 특정 할인정보를 가져오는 API이며, 일단은 사용자 ID를 입력하여 사용합니다. (추후 토큰으로 검증)") + @ApiResponses({ + @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "COMMON200", description = "OK, 성공"), +// @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH003", description = "access 토큰을 주세요!", content = @Content(schema = @Schema(implementation = ApiResponse.class))), +// @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH004", description = "access 토큰 만료", content = @Content(schema = @Schema(implementation = ApiResponse.class))), +// @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "AUTH006", description = "access 토큰 모양이 이상함", content = @Content(schema = @Schema(implementation = ApiResponse.class))) + }) + @Parameters({ + @Parameter(name = "userId", description = "조회할 사용자의 id입니다."), + @Parameter(name = "discountInfoId", description = "조회할 할인 정보의 id입니다."), + }) + public ResponseEntity getDiscountInfo( + @RequestParam Long userId, + @PathVariable Long discountInfoId + ); + } diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoController.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoController.java index 835c941b..ec1c51d7 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoController.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/controller/DiscountInfoController.java @@ -61,7 +61,7 @@ public ResponseEntity updateDiscountInfo( } @Override - @DeleteMapping("{discountInfoId}") + @DeleteMapping("/{discountInfoId}") public ResponseEntity deleteDiscountInfo( @RequestParam Long userId, @PathVariable Long discountInfoId @@ -71,4 +71,16 @@ public ResponseEntity deleteDiscountInfo( return ResponseEntity.ok(message); } + + @Override + @GetMapping("/{discountInfoId}") + public ResponseEntity getDiscountInfo( + @RequestParam Long userId, + @PathVariable Long discountInfoId + ) { + DiscountResponseDto discountResponseDto = discountInfoService.getDiscountInfoById(userId, discountInfoId); + + return ResponseEntity.ok(discountResponseDto); + } + } From 817c7bb629cb7f7a95b4e1c21574d37d02cfee88 Mon Sep 17 00:00:00 2001 From: kangseungmin Date: Thu, 1 Aug 2024 18:47:09 +0900 Subject: [PATCH 14/14] =?UTF-8?q?[feat]=20getDiscountInfo=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20=EC=84=9C=EB=B9=84=EC=8A=A4=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EA=B5=AC=ED=98=84=20(=ED=95=A0=EC=9D=B8=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EB=8B=A8=EA=B1=B4=20=EC=A1=B0=ED=9A=8C=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/DiscountInfoService.java | 6 ++++-- .../service/DiscountInfoServiceImpl.java | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoService.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoService.java index e2900be6..cd8d54de 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoService.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoService.java @@ -18,6 +18,8 @@ Page getDiscountsByYearAndMonth( DiscountResponseDto updateDiscountInfo(Long userId, DiscountRequest.UpdateDto discountRequestDto); - public String deleteDiscountInfo(Long userId, Long discountInfoId); + String deleteDiscountInfo(Long userId, Long discountInfoId); -} + DiscountResponseDto getDiscountInfoById(Long userId, Long discountInfoId); + +} \ No newline at end of file diff --git a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceImpl.java b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceImpl.java index f7764463..b7348821 100644 --- a/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceImpl.java +++ b/src/main/java/com/bbteam/budgetbuddies/domain/discountinfo/service/DiscountInfoServiceImpl.java @@ -160,4 +160,23 @@ public String deleteDiscountInfo(Long userId, Long discountInfoId) { return "Success"; } + + @Transactional + @Override + public DiscountResponseDto getDiscountInfoById(Long userId, Long discountInfoId) { + /** + * 1. 사용자 조회 -> 없으면 에러 + * 2. 할인정보 조회 -> 없으면 에러 + * 3. Entity 조회 + * 4. Entity -> ResponseDto로 변환 후 리턴 + */ + + User user = userRepository.findById(userId) + .orElseThrow(() -> new IllegalArgumentException("User not found")); + + DiscountInfo discountInfo = discountInfoRepository.findById(discountInfoId) + .orElseThrow(() -> new IllegalArgumentException("DiscountInfo not found")); + + return discountInfoConverter.toDto(discountInfo); + } }