From c31d79df4195bae95626cf6436c34f6f206a2ef5 Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sat, 4 Nov 2023 03:09:42 +0900 Subject: [PATCH 01/16] =?UTF-8?q?chore:=20thymeleaf=20=EB=B0=8F=20web=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20gradle=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.gradle b/build.gradle index c3f15188b9..605973b5d0 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,8 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'mysql:mysql-connector-java:8.0.33' + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' + implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' runtimeOnly 'com.h2database:h2' From 95b236b0d8b2a52fe00a582a953b07dfee302d9d Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sat, 4 Nov 2023 03:13:46 +0900 Subject: [PATCH 02/16] =?UTF-8?q?feat:=20spring=20mvc=EC=99=80=20thymeleaf?= =?UTF-8?q?=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 조회페이지, 상세페이지, 입력페이지, 삭제기능 --- .../CreateVoucherRequestDto.java | 38 +++++++++++ .../ThymeleafVoucherController.java | 64 +++++++++++++++++++ .../templates/voucher/voucher-create.html | 31 +++++++++ .../templates/voucher/voucher-delete.html | 24 +++++++ .../templates/voucher/voucher-list.html | 35 ++++++++++ .../templates/voucher/voucher-search.html | 46 +++++++++++++ 6 files changed, 238 insertions(+) create mode 100644 src/main/java/org/prgms/kdtspringweek1/thymeleafController/CreateVoucherRequestDto.java create mode 100644 src/main/java/org/prgms/kdtspringweek1/thymeleafController/ThymeleafVoucherController.java create mode 100644 src/main/resources/templates/voucher/voucher-create.html create mode 100644 src/main/resources/templates/voucher/voucher-delete.html create mode 100644 src/main/resources/templates/voucher/voucher-list.html create mode 100644 src/main/resources/templates/voucher/voucher-search.html diff --git a/src/main/java/org/prgms/kdtspringweek1/thymeleafController/CreateVoucherRequestDto.java b/src/main/java/org/prgms/kdtspringweek1/thymeleafController/CreateVoucherRequestDto.java new file mode 100644 index 0000000000..21db74e046 --- /dev/null +++ b/src/main/java/org/prgms/kdtspringweek1/thymeleafController/CreateVoucherRequestDto.java @@ -0,0 +1,38 @@ +package org.prgms.kdtspringweek1.thymeleafController; + +import org.prgms.kdtspringweek1.exception.InputExceptionCode; +import org.prgms.kdtspringweek1.voucher.entity.FixedAmountVoucher; +import org.prgms.kdtspringweek1.voucher.entity.PercentDiscountVoucher; +import org.prgms.kdtspringweek1.voucher.entity.Voucher; +import org.prgms.kdtspringweek1.voucher.entity.VoucherType; + +public class CreateVoucherRequestDto { + private long discountValue; + private VoucherType voucherType; + + public long getDiscountValue() { + return discountValue; + } + + public VoucherType getVoucherType() { + return voucherType; + } + + public void setDiscountValue(long discountValue) { + this.discountValue = discountValue; + } + + public void setVoucherType(VoucherType voucherType) { + this.voucherType = voucherType; + } + + public Voucher toVoucher() { + if (voucherType.equals(VoucherType.FIXED_AMOUNT)) { + return FixedAmountVoucher.createWithAmount(discountValue); + } else if (voucherType.equals(VoucherType.PERCENT_DISCOUNT)) { + return PercentDiscountVoucher.createWithPercent(discountValue); + } + + throw new IllegalArgumentException(InputExceptionCode.INVALID_VOUCHER_TYPE.getMessage()); + } +} diff --git a/src/main/java/org/prgms/kdtspringweek1/thymeleafController/ThymeleafVoucherController.java b/src/main/java/org/prgms/kdtspringweek1/thymeleafController/ThymeleafVoucherController.java new file mode 100644 index 0000000000..df910ee0e0 --- /dev/null +++ b/src/main/java/org/prgms/kdtspringweek1/thymeleafController/ThymeleafVoucherController.java @@ -0,0 +1,64 @@ +package org.prgms.kdtspringweek1.thymeleafController; + +import org.prgms.kdtspringweek1.voucher.service.VoucherService; +import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.UUID; + +@Controller +public class ThymeleafVoucherController { + + private final VoucherService voucherService; + + public ThymeleafVoucherController(VoucherService voucherService) { + this.voucherService = voucherService; + } + + @GetMapping("/vouchers") + public String listVouchers(Model model) { + List vouchers = voucherService.searchAllVouchers(); + model.addAttribute("serverTime", LocalDateTime.now()); + model.addAttribute("vouchers", vouchers); + return "voucher/voucher-list"; + } + + @PostMapping("/voucher") + public String createVoucher(@ModelAttribute CreateVoucherRequestDto createVoucherRequestDto) { + voucherService.registerVoucher(createVoucherRequestDto.toVoucher()); + return "voucher/voucher-create"; + } + + @PostMapping("/voucher-delete") + public String deleteVoucher(@RequestParam String voucherId) { + voucherService.deleteVoucherById(UUID.fromString(voucherId)); + return "voucher/voucher-delete"; + } + + @GetMapping("/voucher") + public String searchVoucher(@RequestParam String voucherId, Model model) { + FindVoucherResponseDto voucher = voucherService.searchVoucherById(UUID.fromString(voucherId)).get(); + model.addAttribute("voucher", voucher); + return "voucher/voucher-search"; + } + + @GetMapping("/voucher-create") + public String createVoucher() { + return "voucher/voucher-create"; + } + + @GetMapping("/voucher-delete") + public String deleteVoucher() { + return "voucher/voucher-delete"; + } + + @GetMapping("/voucher-search") + public String searchVoucher() { + return "voucher/voucher-search"; + } + +} diff --git a/src/main/resources/templates/voucher/voucher-create.html b/src/main/resources/templates/voucher/voucher-create.html new file mode 100644 index 0000000000..766a479b9a --- /dev/null +++ b/src/main/resources/templates/voucher/voucher-create.html @@ -0,0 +1,31 @@ + + + + + + + + + Home + + +

Voucher Create

+
+
+ + +
+
+ + +
+ + List Voucher +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/voucher/voucher-delete.html b/src/main/resources/templates/voucher/voucher-delete.html new file mode 100644 index 0000000000..340711490d --- /dev/null +++ b/src/main/resources/templates/voucher/voucher-delete.html @@ -0,0 +1,24 @@ + + + + + + + + + Home + + +

Voucher Delete

+
+
+ + +
+ + List Voucher +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/voucher/voucher-list.html b/src/main/resources/templates/voucher/voucher-list.html new file mode 100644 index 0000000000..b16474b8c6 --- /dev/null +++ b/src/main/resources/templates/voucher/voucher-list.html @@ -0,0 +1,35 @@ + + + + + + + + + Home + + +

Voucher List

+ + + + + + + + + + + + + + + +
IDVoucher TypeDiscount Value
+Create Voucher +Delete Voucher +Search Voucher + + \ No newline at end of file diff --git a/src/main/resources/templates/voucher/voucher-search.html b/src/main/resources/templates/voucher/voucher-search.html new file mode 100644 index 0000000000..69e1927128 --- /dev/null +++ b/src/main/resources/templates/voucher/voucher-search.html @@ -0,0 +1,46 @@ + + + + + + + + + Home + + +

Search Voucher

+
+
+ + +
+ +
+

Search Result

+ + + + + + + + + + + + + + + + + + + + +
IDVoucher TypeDiscount Value
+List Voucher + + \ No newline at end of file From edf9ec10370cc2601988dd4124a84b7a594f11ae Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sat, 4 Nov 2023 03:14:57 +0900 Subject: [PATCH 03/16] =?UTF-8?q?feat:=20=EB=B0=94=EC=9A=B0=EC=B2=98=20?= =?UTF-8?q?=EC=A2=85=EB=A5=98=EB=A1=9C=20=EB=B0=94=EC=9A=B0=EC=B2=98=20?= =?UTF-8?q?=EC=B0=BE=EA=B8=B0=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../voucher/repository/CsvFileVoucherRepository.java | 5 +++++ .../voucher/repository/JdbcVoucherRepository.java | 5 +++++ .../voucher/repository/MemoryVoucherRepository.java | 5 +++++ .../voucher/repository/VoucherRepository.java | 2 ++ .../kdtspringweek1/voucher/service/VoucherService.java | 6 ++++++ 5 files changed, 23 insertions(+) diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java index bbd7767a28..67dd9a5924 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java @@ -61,6 +61,11 @@ public Optional findById(UUID voucherId) { return Optional.ofNullable(vouchers.get(voucherId)); } + @Override + public List findVouchersByVoucherType(String voucherType) { + return null; + } + @Override public Voucher update(Voucher voucher) { vouchers.put(voucher.getVoucherId(), voucher); diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java index 9e0b9049df..fdbf927866 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java @@ -84,6 +84,11 @@ public Optional findById(UUID voucherId) { } } + @Override + public List findVouchersByVoucherType(String voucherType) { + return jdbcTemplate.query("SELECT * FROM vouchers WHERE voucher_type = :voucherType", Collections.singletonMap("voucherType", voucherType), voucherRowMapper); + } + @Override public Voucher update(Voucher voucher) { int isUpdated = jdbcTemplate.update("UPDATE vouchers SET discount_value = :discountValue, voucher_type = :voucherType WHERE voucher_id = UUID_TO_BIN(:voucherId)", diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/MemoryVoucherRepository.java b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/MemoryVoucherRepository.java index 1c83f564bf..bfea413362 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/MemoryVoucherRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/MemoryVoucherRepository.java @@ -37,6 +37,11 @@ public Optional findById(UUID voucherId) { return Optional.ofNullable(vouchers.get(voucherId)); } + @Override + public List findVouchersByVoucherType(String voucherType) { + return null; + } + @Override public Voucher update(Voucher voucher) { vouchers.put(voucher.getVoucherId(), voucher); diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/VoucherRepository.java b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/VoucherRepository.java index bfb511e07f..a29206410b 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/VoucherRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/VoucherRepository.java @@ -13,6 +13,8 @@ public interface VoucherRepository { Optional findById(UUID voucherId); + List findVouchersByVoucherType(String voucherType); + Voucher update(Voucher voucher); void deleteAll(); diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/service/VoucherService.java b/src/main/java/org/prgms/kdtspringweek1/voucher/service/VoucherService.java index 86b13406a9..fe1d8e68b0 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/service/VoucherService.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/service/VoucherService.java @@ -44,4 +44,10 @@ public void deleteAllVouchers() { public void deleteVoucherById(UUID voucherId) { voucherRepository.deleteById(voucherId); } + + public List searchVouchersByVoucherType(String voucherType) { + return voucherRepository.findVouchersByVoucherType(voucherType).stream() + .map(FindVoucherResponseDto::new) + .collect(Collectors.toList()); + } } From 23c74a422233e753ab7aa18301b8af9e310fab53 Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sat, 4 Nov 2023 03:18:06 +0900 Subject: [PATCH 04/16] =?UTF-8?q?feat:=20spring=20mvc=EC=99=80=20json=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 전체 조회기능, 바우처 타입별 조회 기능, 바우처 추가기능, 바우처 삭제기능, 바우처 아이디로 조회 기능 --- .../CreateVoucherRequestDto.java | 38 ++++++++++++++++ .../SpringMvcVoucherController.java | 45 +++++++++++++++++++ .../service/dto/FindVoucherResponseDto.java | 12 +++++ 3 files changed, 95 insertions(+) create mode 100644 src/main/java/org/prgms/kdtspringweek1/springMvcController/CreateVoucherRequestDto.java create mode 100644 src/main/java/org/prgms/kdtspringweek1/springMvcController/SpringMvcVoucherController.java diff --git a/src/main/java/org/prgms/kdtspringweek1/springMvcController/CreateVoucherRequestDto.java b/src/main/java/org/prgms/kdtspringweek1/springMvcController/CreateVoucherRequestDto.java new file mode 100644 index 0000000000..2234b90bbe --- /dev/null +++ b/src/main/java/org/prgms/kdtspringweek1/springMvcController/CreateVoucherRequestDto.java @@ -0,0 +1,38 @@ +package org.prgms.kdtspringweek1.springMvcController; + +import org.prgms.kdtspringweek1.exception.InputExceptionCode; +import org.prgms.kdtspringweek1.voucher.entity.FixedAmountVoucher; +import org.prgms.kdtspringweek1.voucher.entity.PercentDiscountVoucher; +import org.prgms.kdtspringweek1.voucher.entity.Voucher; +import org.prgms.kdtspringweek1.voucher.entity.VoucherType; + +public class CreateVoucherRequestDto { + private long discountValue; + private String voucherType; + + public long getDiscountValue() { + return discountValue; + } + + public String getVoucherType() { + return voucherType; + } + + public void setDiscountValue(long discountValue) { + this.discountValue = discountValue; + } + + public void setVoucherType(String voucherType) { + this.voucherType = voucherType; + } + + public Voucher toVoucher() { + if (voucherType.equalsIgnoreCase(VoucherType.FIXED_AMOUNT.getName())) { + return FixedAmountVoucher.createWithAmount(discountValue); + } else if (voucherType.equalsIgnoreCase(VoucherType.PERCENT_DISCOUNT.getName())) { + return PercentDiscountVoucher.createWithPercent(discountValue); + } + + throw new IllegalArgumentException(InputExceptionCode.INVALID_VOUCHER_TYPE.getMessage()); + } +} diff --git a/src/main/java/org/prgms/kdtspringweek1/springMvcController/SpringMvcVoucherController.java b/src/main/java/org/prgms/kdtspringweek1/springMvcController/SpringMvcVoucherController.java new file mode 100644 index 0000000000..b2a19ae9d8 --- /dev/null +++ b/src/main/java/org/prgms/kdtspringweek1/springMvcController/SpringMvcVoucherController.java @@ -0,0 +1,45 @@ +package org.prgms.kdtspringweek1.springMvcController; + +import org.prgms.kdtspringweek1.voucher.service.VoucherService; +import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; +import org.prgms.kdtspringweek1.voucher.service.dto.SelectVoucherTypeDto; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.UUID; + +@RestController +@RequestMapping("/spring-mvc/voucher") +public class SpringMvcVoucherController { + + private final VoucherService voucherService; + + public SpringMvcVoucherController(VoucherService voucherService) { + this.voucherService = voucherService; + } + + @GetMapping() + public List getAllVouchers() { + return voucherService.searchAllVouchers(); + } + + @GetMapping("/voucher-type/{num}") + public List getVoucherByVoucherType(@PathVariable long num) { + return voucherService.searchVouchersByVoucherType(SelectVoucherTypeDto.getVoucherTypeByNum(num).getName()); + } + + @GetMapping("/{voucherId}") + public FindVoucherResponseDto getVoucherByVoucherId(@PathVariable String voucherId) { + return voucherService.searchVoucherById(UUID.fromString(voucherId)).get(); + } + + @PostMapping() + public void createVoucher(@RequestBody CreateVoucherRequestDto createVoucherRequestDto) { + voucherService.registerVoucher(createVoucherRequestDto.toVoucher()); + } + + @DeleteMapping("/{voucherId}") + public void deleteVoucher(@PathVariable String voucherId) { + voucherService.deleteVoucherById(UUID.fromString(voucherId)); + } +} \ No newline at end of file diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/FindVoucherResponseDto.java b/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/FindVoucherResponseDto.java index f3676582d7..78f541dd35 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/FindVoucherResponseDto.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/FindVoucherResponseDto.java @@ -23,4 +23,16 @@ public void printVoucherInfo() { System.out.println(MessageFormat.format("Voucher Id: {0}", voucherId)); System.out.println(MessageFormat.format("Discount: {0}", discountValue)); } + + public UUID getVoucherId() { + return voucherId; + } + + public long getDiscountValue() { + return discountValue; + } + + public VoucherType getVoucherType() { + return voucherType; + } } From 0fdeb179a0a53ebe47a93f8c3446fa1cf959282c Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sat, 4 Nov 2023 14:25:51 +0900 Subject: [PATCH 05/16] =?UTF-8?q?feat:=20=EB=B0=94=EC=9A=B0=EC=B2=98=20?= =?UTF-8?q?=EC=A2=85=EB=A5=98=EB=A1=9C=20=EB=B0=94=EC=9A=B0=EC=B2=98=20?= =?UTF-8?q?=EC=B0=BE=EA=B8=B0=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CsvFileVoucherRepository와 MemoryVoucherRepository에 대해 구현하지 않아 추가 --- .../voucher/repository/CsvFileVoucherRepository.java | 5 ++++- .../voucher/repository/MemoryVoucherRepository.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java index 67dd9a5924..c65ea1fcdb 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java @@ -16,6 +16,7 @@ import java.io.*; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; @Repository @Profile("local") @@ -63,7 +64,9 @@ public Optional findById(UUID voucherId) { @Override public List findVouchersByVoucherType(String voucherType) { - return null; + return vouchers.values().stream() + .filter(voucher -> voucher.getVoucherType().getName().equals(voucherType)) + .collect(Collectors.toList()); } @Override diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/MemoryVoucherRepository.java b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/MemoryVoucherRepository.java index bfea413362..491021c6c7 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/MemoryVoucherRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/MemoryVoucherRepository.java @@ -8,6 +8,7 @@ import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; @Repository @Profile("dev") @@ -39,7 +40,9 @@ public Optional findById(UUID voucherId) { @Override public List findVouchersByVoucherType(String voucherType) { - return null; + return vouchers.values().stream() + .filter(voucher -> voucher.getVoucherType().getName().equals(voucherType)) + .collect(Collectors.toList()); } @Override From 43d45024a0e6a1cd4142422faed4b7923f80b7a2 Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sat, 4 Nov 2023 15:07:25 +0900 Subject: [PATCH 06/16] =?UTF-8?q?refactor:=20CreateVoucherRequestDto=20?= =?UTF-8?q?=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 컨트롤러가 여러개 생겨남에 따라, 바우처 생성 요청 dto가 많아져 하나로 통일 --- .../kdtspringweek1/AppCommandLineRunner.java | 6 +-- .../kdtspringweek1/console/ConsoleOutput.java | 6 +-- .../controller/ConsoleInputConverter.java | 8 +++- .../controller/VoucherController.java | 15 +++----- .../exception/InputExceptionCode.java | 2 +- .../CreateVoucherRequestDto.java | 38 ------------------- .../SpringMvcVoucherController.java | 1 + .../CreateVoucherRequestDto.java | 38 ------------------- .../ThymeleafVoucherController.java | 1 + .../service/dto/CreateVoucherRequestDto.java | 33 ++++++++++++---- .../templates/voucher/voucher-create.html | 2 +- .../controller/ConsoleInputConverterTest.java | 20 +++++++--- 12 files changed, 60 insertions(+), 110 deletions(-) delete mode 100644 src/main/java/org/prgms/kdtspringweek1/springMvcController/CreateVoucherRequestDto.java delete mode 100644 src/main/java/org/prgms/kdtspringweek1/thymeleafController/CreateVoucherRequestDto.java diff --git a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java index be266594a2..a7290f3aff 100644 --- a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java +++ b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java @@ -22,14 +22,14 @@ public AppCommandLineRunner(AppController appController) { @Override public void run(String... args) { - while(!shouldExit){ + while (!shouldExit) { try { appController.startVoucherProgram(); - } catch(Exception exception){ + } catch (Exception exception) { System.out.println(exception.getMessage()); logger.error(exception.getMessage()); // 파일에서 정보를 읽어오는 것을 실패했다면, 서버가 켜지지 않는게 정상이므로, 예외 전파 후 어플을 종료 시키도록 한다. - if(exception.getMessage().equals(FileExceptionCode.FAIL_TO_READ_DATA_FROM_CSV)){ + if (exception.getMessage().equals(FileExceptionCode.FAIL_TO_READ_DATA_FROM_CSV)) { shouldExit = true; } } diff --git a/src/main/java/org/prgms/kdtspringweek1/console/ConsoleOutput.java b/src/main/java/org/prgms/kdtspringweek1/console/ConsoleOutput.java index 4102735399..ce22ea8a30 100644 --- a/src/main/java/org/prgms/kdtspringweek1/console/ConsoleOutput.java +++ b/src/main/java/org/prgms/kdtspringweek1/console/ConsoleOutput.java @@ -40,9 +40,9 @@ public void printExitMessage() { public void printVouchersToSelect() { System.out.println(""" -------------------------------------------------- - voucher 종류를 선택하여 정수로 입력해주세요. - 1. FixedAmountVoucher - 2. PercentDiscountVoucher""" + voucher 종류를 선택하여 문자열로 입력해주세요. + 1. fixed amount voucher + 2. percent discount voucher""" ); } diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverter.java b/src/main/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverter.java index ff7dd283ff..d2abf4eb69 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverter.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverter.java @@ -27,8 +27,12 @@ public VoucherType getVoucherType() { return SelectVoucherTypeDto.getVoucherTypeByNum(Long.parseLong(consoleInput.getInput())); } - public CreateVoucherRequestDto getCreateVoucherRequestDto() { - return new CreateVoucherRequestDto(Long.parseLong(consoleInput.getInput())); + public String getVoucherTypeString() { + return consoleInput.getInput(); + } + + public long getDiscountValue() { + return Long.parseLong(consoleInput.getInput()); } public UUID getId() { diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/VoucherController.java b/src/main/java/org/prgms/kdtspringweek1/controller/VoucherController.java index 5b1acf2057..6a756b8251 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/VoucherController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/VoucherController.java @@ -2,6 +2,7 @@ import org.prgms.kdtspringweek1.console.ConsoleOutput; import org.prgms.kdtspringweek1.controller.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; import org.prgms.kdtspringweek1.voucher.service.VoucherService; import org.springframework.stereotype.Component; @@ -33,16 +34,10 @@ public void selectVoucherFunction(SelectFunctionTypeDto functionTypeDto) { private void createVoucher() { consoleOutput.printVouchersToSelect(); - switch (consoleInputConverter.getVoucherType()) { - case FIXED_AMOUNT -> { - consoleOutput.printRequestMessageforDiscountValue(); - voucherService.registerVoucher(consoleInputConverter.getCreateVoucherRequestDto().toFixedAmountVoucher()); - } - case PERCENT_DISCOUNT -> { - consoleOutput.printRequestMessageforDiscountValue(); - voucherService.registerVoucher(consoleInputConverter.getCreateVoucherRequestDto().toPercentDiscountVoucher()); - } - } + String voucherType = consoleInputConverter.getVoucherTypeString(); + consoleOutput.printRequestMessageforDiscountValue(); + long discountValue = consoleInputConverter.getDiscountValue(); + voucherService.registerVoucher(new CreateVoucherRequestDto(discountValue, voucherType).toVoucher()); consoleOutput.printSuccessToCreate(); } diff --git a/src/main/java/org/prgms/kdtspringweek1/exception/InputExceptionCode.java b/src/main/java/org/prgms/kdtspringweek1/exception/InputExceptionCode.java index 8de3454018..73c60034f8 100644 --- a/src/main/java/org/prgms/kdtspringweek1/exception/InputExceptionCode.java +++ b/src/main/java/org/prgms/kdtspringweek1/exception/InputExceptionCode.java @@ -2,7 +2,7 @@ public enum InputExceptionCode { INVALID_VOUCHER_FUNCTION_TYPE("[System] 지원 가능한 기능을 올바르게 입력해주세요."), - INVALID_VOUCHER_TYPE("[System] 생성 가능한 바우처 타입 번호를 입력해주세요."), + INVALID_VOUCHER_TYPE("[System] 생성 가능한 바우처 타입을 입력해주세요."), INVALID_PERCENT_DISCOUNT("[System] 할인율은 0초과 100이하의 값으로 입력해주세요."), INVALID_FIXED_AMOUNT("[System] 할인액은 양수로 입력해주세요."), INVALID_DISCOUNT_VALUE("[System] 할인값은 양수로 입력해주세요."); diff --git a/src/main/java/org/prgms/kdtspringweek1/springMvcController/CreateVoucherRequestDto.java b/src/main/java/org/prgms/kdtspringweek1/springMvcController/CreateVoucherRequestDto.java deleted file mode 100644 index 2234b90bbe..0000000000 --- a/src/main/java/org/prgms/kdtspringweek1/springMvcController/CreateVoucherRequestDto.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.prgms.kdtspringweek1.springMvcController; - -import org.prgms.kdtspringweek1.exception.InputExceptionCode; -import org.prgms.kdtspringweek1.voucher.entity.FixedAmountVoucher; -import org.prgms.kdtspringweek1.voucher.entity.PercentDiscountVoucher; -import org.prgms.kdtspringweek1.voucher.entity.Voucher; -import org.prgms.kdtspringweek1.voucher.entity.VoucherType; - -public class CreateVoucherRequestDto { - private long discountValue; - private String voucherType; - - public long getDiscountValue() { - return discountValue; - } - - public String getVoucherType() { - return voucherType; - } - - public void setDiscountValue(long discountValue) { - this.discountValue = discountValue; - } - - public void setVoucherType(String voucherType) { - this.voucherType = voucherType; - } - - public Voucher toVoucher() { - if (voucherType.equalsIgnoreCase(VoucherType.FIXED_AMOUNT.getName())) { - return FixedAmountVoucher.createWithAmount(discountValue); - } else if (voucherType.equalsIgnoreCase(VoucherType.PERCENT_DISCOUNT.getName())) { - return PercentDiscountVoucher.createWithPercent(discountValue); - } - - throw new IllegalArgumentException(InputExceptionCode.INVALID_VOUCHER_TYPE.getMessage()); - } -} diff --git a/src/main/java/org/prgms/kdtspringweek1/springMvcController/SpringMvcVoucherController.java b/src/main/java/org/prgms/kdtspringweek1/springMvcController/SpringMvcVoucherController.java index b2a19ae9d8..643bb519c8 100644 --- a/src/main/java/org/prgms/kdtspringweek1/springMvcController/SpringMvcVoucherController.java +++ b/src/main/java/org/prgms/kdtspringweek1/springMvcController/SpringMvcVoucherController.java @@ -1,6 +1,7 @@ package org.prgms.kdtspringweek1.springMvcController; import org.prgms.kdtspringweek1.voucher.service.VoucherService; +import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; import org.prgms.kdtspringweek1.voucher.service.dto.SelectVoucherTypeDto; import org.springframework.web.bind.annotation.*; diff --git a/src/main/java/org/prgms/kdtspringweek1/thymeleafController/CreateVoucherRequestDto.java b/src/main/java/org/prgms/kdtspringweek1/thymeleafController/CreateVoucherRequestDto.java deleted file mode 100644 index 21db74e046..0000000000 --- a/src/main/java/org/prgms/kdtspringweek1/thymeleafController/CreateVoucherRequestDto.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.prgms.kdtspringweek1.thymeleafController; - -import org.prgms.kdtspringweek1.exception.InputExceptionCode; -import org.prgms.kdtspringweek1.voucher.entity.FixedAmountVoucher; -import org.prgms.kdtspringweek1.voucher.entity.PercentDiscountVoucher; -import org.prgms.kdtspringweek1.voucher.entity.Voucher; -import org.prgms.kdtspringweek1.voucher.entity.VoucherType; - -public class CreateVoucherRequestDto { - private long discountValue; - private VoucherType voucherType; - - public long getDiscountValue() { - return discountValue; - } - - public VoucherType getVoucherType() { - return voucherType; - } - - public void setDiscountValue(long discountValue) { - this.discountValue = discountValue; - } - - public void setVoucherType(VoucherType voucherType) { - this.voucherType = voucherType; - } - - public Voucher toVoucher() { - if (voucherType.equals(VoucherType.FIXED_AMOUNT)) { - return FixedAmountVoucher.createWithAmount(discountValue); - } else if (voucherType.equals(VoucherType.PERCENT_DISCOUNT)) { - return PercentDiscountVoucher.createWithPercent(discountValue); - } - - throw new IllegalArgumentException(InputExceptionCode.INVALID_VOUCHER_TYPE.getMessage()); - } -} diff --git a/src/main/java/org/prgms/kdtspringweek1/thymeleafController/ThymeleafVoucherController.java b/src/main/java/org/prgms/kdtspringweek1/thymeleafController/ThymeleafVoucherController.java index df910ee0e0..8019b6064b 100644 --- a/src/main/java/org/prgms/kdtspringweek1/thymeleafController/ThymeleafVoucherController.java +++ b/src/main/java/org/prgms/kdtspringweek1/thymeleafController/ThymeleafVoucherController.java @@ -1,6 +1,7 @@ package org.prgms.kdtspringweek1.thymeleafController; import org.prgms.kdtspringweek1.voucher.service.VoucherService; +import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/CreateVoucherRequestDto.java b/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/CreateVoucherRequestDto.java index 432330488e..77530bf743 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/CreateVoucherRequestDto.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/CreateVoucherRequestDto.java @@ -4,31 +4,48 @@ import org.prgms.kdtspringweek1.voucher.entity.FixedAmountVoucher; import org.prgms.kdtspringweek1.voucher.entity.PercentDiscountVoucher; import org.prgms.kdtspringweek1.voucher.entity.Voucher; +import org.prgms.kdtspringweek1.voucher.entity.VoucherType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class CreateVoucherRequestDto { - private final long discountValue; + private long discountValue; + private String voucherType; private final static Logger logger = LoggerFactory.getLogger(CreateVoucherRequestDto.class); - public CreateVoucherRequestDto(long discountValue) { + public long getDiscountValue() { + return discountValue; + } + + public CreateVoucherRequestDto(long discountValue, String voucherType) { if (discountValue > 0) { this.discountValue = discountValue; + this.voucherType = voucherType; } else { logger.debug("Invalid discountValue -> {}", discountValue); throw new IllegalArgumentException(InputExceptionCode.INVALID_DISCOUNT_VALUE.getMessage()); } } - public Voucher toFixedAmountVoucher() { - return FixedAmountVoucher.createWithAmount(discountValue); + public String getVoucherType() { + return voucherType; } - public Voucher toPercentDiscountVoucher() { - return PercentDiscountVoucher.createWithPercent(discountValue); + public void setDiscountValue(long discountValue) { + this.discountValue = discountValue; } - public long getDiscountValue() { - return discountValue; + public void setVoucherType(String voucherType) { + this.voucherType = voucherType; + } + + public Voucher toVoucher() { + if (voucherType.equalsIgnoreCase(VoucherType.FIXED_AMOUNT.getName())) { + return FixedAmountVoucher.createWithAmount(discountValue); + } else if (voucherType.equalsIgnoreCase(VoucherType.PERCENT_DISCOUNT.getName())) { + return PercentDiscountVoucher.createWithPercent(discountValue); + } + + throw new IllegalArgumentException(InputExceptionCode.INVALID_VOUCHER_TYPE.getMessage()); } } diff --git a/src/main/resources/templates/voucher/voucher-create.html b/src/main/resources/templates/voucher/voucher-create.html index 766a479b9a..581f00b173 100644 --- a/src/main/resources/templates/voucher/voucher-create.html +++ b/src/main/resources/templates/voucher/voucher-create.html @@ -21,7 +21,7 @@

Voucher Create

diff --git a/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java b/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java index 4f2515dbde..7aed116b0c 100644 --- a/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java +++ b/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java @@ -110,11 +110,15 @@ void Fail_GetVoucherType_UnsupportedVoucher() { @DisplayName("바우처 할인 값 입력 성공") void Success_GetCreateVoucherRequestDto() { // given - String input = String.valueOf(random.nextLong(Long.MAX_VALUE) + 1); - when(scannerInput.getInput()).thenReturn(input); + String discountValue = String.valueOf(random.nextLong(Long.MAX_VALUE) + 1); + String voucherType = Arrays.stream(VoucherType.values()) + .skip(random.nextInt(VoucherType.values().length)) + .findFirst() + .map(VoucherType::getName) + .orElse(null); // when - CreateVoucherRequestDto createVoucherRequestDto = consoleInputConverter.getCreateVoucherRequestDto(); + CreateVoucherRequestDto createVoucherRequestDto = new CreateVoucherRequestDto(Long.parseLong(discountValue), voucherType);; // then assertThat(createVoucherRequestDto.getDiscountValue(), greaterThan(0L)); @@ -124,12 +128,16 @@ void Success_GetCreateVoucherRequestDto() { @DisplayName("바우처 할인 값 입력 실패 - 0이하의 값을 입력한 경우") void Fail_GetCreateVoucherRequestDto_ZeroOrLess() { // given - String input = String.valueOf(-1 * random.nextLong(Long.MAX_VALUE)); - when(scannerInput.getInput()).thenReturn(input); + String discountValue = String.valueOf(-1 * random.nextLong(Long.MAX_VALUE)); + String voucherType = Arrays.stream(VoucherType.values()) + .skip(random.nextInt(VoucherType.values().length)) + .findFirst() + .map(VoucherType::getName) + .orElse(null); // when IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { - consoleInputConverter.getCreateVoucherRequestDto(); + new CreateVoucherRequestDto(Long.parseLong(discountValue), voucherType); }); // then From f93c05de1b9648af790be90ceb4a7211b0900e96 Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sat, 4 Nov 2023 15:09:48 +0900 Subject: [PATCH 07/16] =?UTF-8?q?refactor:=20controller=20=EB=84=A4?= =?UTF-8?q?=EC=9D=B4=EB=B0=8D=20consoleController=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/prgms/kdtspringweek1/AppCommandLineRunner.java | 2 +- .../{controller => consoleController}/AppController.java | 4 ++-- .../ConsoleInputConverter.java | 5 ++--- .../CustomerController.java | 4 ++-- .../{controller => consoleController}/VoucherController.java | 4 ++-- .../{controller => consoleController}/WalletController.java | 4 ++-- .../dto/SelectFunctionTypeDto.java | 2 +- .../kdtspringweek1/controller/ConsoleInputConverterTest.java | 3 ++- 8 files changed, 14 insertions(+), 14 deletions(-) rename src/main/java/org/prgms/kdtspringweek1/{controller => consoleController}/AppController.java (94%) rename src/main/java/org/prgms/kdtspringweek1/{controller => consoleController}/ConsoleInputConverter.java (88%) rename src/main/java/org/prgms/kdtspringweek1/{controller => consoleController}/CustomerController.java (96%) rename src/main/java/org/prgms/kdtspringweek1/{controller => consoleController}/VoucherController.java (96%) rename src/main/java/org/prgms/kdtspringweek1/{controller => consoleController}/WalletController.java (95%) rename src/main/java/org/prgms/kdtspringweek1/{controller => consoleController}/dto/SelectFunctionTypeDto.java (97%) diff --git a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java index a7290f3aff..0d0814c748 100644 --- a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java +++ b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java @@ -1,6 +1,6 @@ package org.prgms.kdtspringweek1; -import org.prgms.kdtspringweek1.controller.AppController; +import org.prgms.kdtspringweek1.consoleController.AppController; import org.prgms.kdtspringweek1.exception.FileExceptionCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/AppController.java b/src/main/java/org/prgms/kdtspringweek1/consoleController/AppController.java similarity index 94% rename from src/main/java/org/prgms/kdtspringweek1/controller/AppController.java rename to src/main/java/org/prgms/kdtspringweek1/consoleController/AppController.java index db9d7bac0f..e704454f87 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/AppController.java +++ b/src/main/java/org/prgms/kdtspringweek1/consoleController/AppController.java @@ -1,7 +1,7 @@ -package org.prgms.kdtspringweek1.controller; +package org.prgms.kdtspringweek1.consoleController; import org.prgms.kdtspringweek1.console.ConsoleOutput; -import org.prgms.kdtspringweek1.controller.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; import org.springframework.stereotype.Component; // 뷰 영역(console 패키지)에 컨트롤러가 포함되어 있어, 따로 빼주었습니다. diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverter.java b/src/main/java/org/prgms/kdtspringweek1/consoleController/ConsoleInputConverter.java similarity index 88% rename from src/main/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverter.java rename to src/main/java/org/prgms/kdtspringweek1/consoleController/ConsoleInputConverter.java index d2abf4eb69..27669ac0ed 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverter.java +++ b/src/main/java/org/prgms/kdtspringweek1/consoleController/ConsoleInputConverter.java @@ -1,8 +1,7 @@ -package org.prgms.kdtspringweek1.controller; +package org.prgms.kdtspringweek1.consoleController; import org.prgms.kdtspringweek1.console.ConsoleInput; -import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; -import org.prgms.kdtspringweek1.controller.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; import org.prgms.kdtspringweek1.voucher.service.dto.SelectVoucherTypeDto; import org.prgms.kdtspringweek1.voucher.service.dto.UpdateVoucherRequestDto; import org.prgms.kdtspringweek1.voucher.entity.VoucherType; diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/CustomerController.java b/src/main/java/org/prgms/kdtspringweek1/consoleController/CustomerController.java similarity index 96% rename from src/main/java/org/prgms/kdtspringweek1/controller/CustomerController.java rename to src/main/java/org/prgms/kdtspringweek1/consoleController/CustomerController.java index 2423cb5584..2b0a510f64 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/CustomerController.java +++ b/src/main/java/org/prgms/kdtspringweek1/consoleController/CustomerController.java @@ -1,7 +1,7 @@ -package org.prgms.kdtspringweek1.controller; +package org.prgms.kdtspringweek1.consoleController; import org.prgms.kdtspringweek1.console.ConsoleOutput; -import org.prgms.kdtspringweek1.controller.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; import org.prgms.kdtspringweek1.customer.service.dto.FindCustomerResponseDto; import org.prgms.kdtspringweek1.customer.service.dto.UpdateCustomerRequestDto; import org.prgms.kdtspringweek1.customer.entity.Customer; diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/VoucherController.java b/src/main/java/org/prgms/kdtspringweek1/consoleController/VoucherController.java similarity index 96% rename from src/main/java/org/prgms/kdtspringweek1/controller/VoucherController.java rename to src/main/java/org/prgms/kdtspringweek1/consoleController/VoucherController.java index 6a756b8251..dbf2595a59 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/VoucherController.java +++ b/src/main/java/org/prgms/kdtspringweek1/consoleController/VoucherController.java @@ -1,7 +1,7 @@ -package org.prgms.kdtspringweek1.controller; +package org.prgms.kdtspringweek1.consoleController; import org.prgms.kdtspringweek1.console.ConsoleOutput; -import org.prgms.kdtspringweek1.controller.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; import org.prgms.kdtspringweek1.voucher.service.VoucherService; diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/WalletController.java b/src/main/java/org/prgms/kdtspringweek1/consoleController/WalletController.java similarity index 95% rename from src/main/java/org/prgms/kdtspringweek1/controller/WalletController.java rename to src/main/java/org/prgms/kdtspringweek1/consoleController/WalletController.java index faef2edf0b..33549ce01e 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/WalletController.java +++ b/src/main/java/org/prgms/kdtspringweek1/consoleController/WalletController.java @@ -1,7 +1,7 @@ -package org.prgms.kdtspringweek1.controller; +package org.prgms.kdtspringweek1.consoleController; import org.prgms.kdtspringweek1.console.ConsoleOutput; -import org.prgms.kdtspringweek1.controller.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; import org.prgms.kdtspringweek1.customer.service.dto.FindCustomerResponseDto; import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; import org.prgms.kdtspringweek1.wallet.entity.Wallet; diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/dto/SelectFunctionTypeDto.java b/src/main/java/org/prgms/kdtspringweek1/consoleController/dto/SelectFunctionTypeDto.java similarity index 97% rename from src/main/java/org/prgms/kdtspringweek1/controller/dto/SelectFunctionTypeDto.java rename to src/main/java/org/prgms/kdtspringweek1/consoleController/dto/SelectFunctionTypeDto.java index 6a29190de0..44c54146a5 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/dto/SelectFunctionTypeDto.java +++ b/src/main/java/org/prgms/kdtspringweek1/consoleController/dto/SelectFunctionTypeDto.java @@ -1,4 +1,4 @@ -package org.prgms.kdtspringweek1.controller.dto; +package org.prgms.kdtspringweek1.consoleController.dto; import org.prgms.kdtspringweek1.exception.InputExceptionCode; import org.slf4j.Logger; diff --git a/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java b/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java index 7aed116b0c..98a656be62 100644 --- a/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java +++ b/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java @@ -7,8 +7,9 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.prgms.kdtspringweek1.console.ScannerInput; +import org.prgms.kdtspringweek1.consoleController.ConsoleInputConverter; import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; -import org.prgms.kdtspringweek1.controller.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; import org.prgms.kdtspringweek1.voucher.service.dto.SelectVoucherTypeDto; import org.prgms.kdtspringweek1.exception.InputExceptionCode; import org.prgms.kdtspringweek1.voucher.entity.VoucherType; From aef8578137555d0bdebbd8af3c819fc89f377fd6 Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sat, 4 Nov 2023 15:11:06 +0900 Subject: [PATCH 08/16] =?UTF-8?q?refactor:=20=EC=BB=A8=ED=8A=B8=EB=A1=A4?= =?UTF-8?q?=EB=9F=AC=20=EC=A2=85=EB=A5=98=EA=B0=80=20=EB=8B=A4=EC=96=91?= =?UTF-8?q?=ED=95=B4=EC=A0=B8=20=ED=8C=A8=ED=82=A4=EC=A7=80=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/prgms/kdtspringweek1/AppCommandLineRunner.java | 2 +- .../{ => controller}/consoleController/AppController.java | 4 ++-- .../consoleController/ConsoleInputConverter.java | 4 ++-- .../consoleController/CustomerController.java | 4 ++-- .../{ => controller}/consoleController/VoucherController.java | 4 ++-- .../{ => controller}/consoleController/WalletController.java | 4 ++-- .../consoleController/dto/SelectFunctionTypeDto.java | 2 +- .../springMvcController/SpringMvcVoucherController.java | 2 +- .../thymeleafController/ThymeleafVoucherController.java | 2 +- .../kdtspringweek1/controller/ConsoleInputConverterTest.java | 4 ++-- 10 files changed, 16 insertions(+), 16 deletions(-) rename src/main/java/org/prgms/kdtspringweek1/{ => controller}/consoleController/AppController.java (93%) rename src/main/java/org/prgms/kdtspringweek1/{ => controller}/consoleController/ConsoleInputConverter.java (90%) rename src/main/java/org/prgms/kdtspringweek1/{ => controller}/consoleController/CustomerController.java (95%) rename src/main/java/org/prgms/kdtspringweek1/{ => controller}/consoleController/VoucherController.java (95%) rename src/main/java/org/prgms/kdtspringweek1/{ => controller}/consoleController/WalletController.java (94%) rename src/main/java/org/prgms/kdtspringweek1/{ => controller}/consoleController/dto/SelectFunctionTypeDto.java (96%) rename src/main/java/org/prgms/kdtspringweek1/{ => controller}/springMvcController/SpringMvcVoucherController.java (96%) rename src/main/java/org/prgms/kdtspringweek1/{ => controller}/thymeleafController/ThymeleafVoucherController.java (97%) diff --git a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java index 0d0814c748..ccea0a7af6 100644 --- a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java +++ b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java @@ -1,6 +1,6 @@ package org.prgms.kdtspringweek1; -import org.prgms.kdtspringweek1.consoleController.AppController; +import org.prgms.kdtspringweek1.controller.consoleController.AppController; import org.prgms.kdtspringweek1.exception.FileExceptionCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/org/prgms/kdtspringweek1/consoleController/AppController.java b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/AppController.java similarity index 93% rename from src/main/java/org/prgms/kdtspringweek1/consoleController/AppController.java rename to src/main/java/org/prgms/kdtspringweek1/controller/consoleController/AppController.java index e704454f87..0f3d6c087a 100644 --- a/src/main/java/org/prgms/kdtspringweek1/consoleController/AppController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/AppController.java @@ -1,7 +1,7 @@ -package org.prgms.kdtspringweek1.consoleController; +package org.prgms.kdtspringweek1.controller.consoleController; import org.prgms.kdtspringweek1.console.ConsoleOutput; -import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.controller.consoleController.dto.SelectFunctionTypeDto; import org.springframework.stereotype.Component; // 뷰 영역(console 패키지)에 컨트롤러가 포함되어 있어, 따로 빼주었습니다. diff --git a/src/main/java/org/prgms/kdtspringweek1/consoleController/ConsoleInputConverter.java b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/ConsoleInputConverter.java similarity index 90% rename from src/main/java/org/prgms/kdtspringweek1/consoleController/ConsoleInputConverter.java rename to src/main/java/org/prgms/kdtspringweek1/controller/consoleController/ConsoleInputConverter.java index 27669ac0ed..1be12f003f 100644 --- a/src/main/java/org/prgms/kdtspringweek1/consoleController/ConsoleInputConverter.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/ConsoleInputConverter.java @@ -1,7 +1,7 @@ -package org.prgms.kdtspringweek1.consoleController; +package org.prgms.kdtspringweek1.controller.consoleController; import org.prgms.kdtspringweek1.console.ConsoleInput; -import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.controller.consoleController.dto.SelectFunctionTypeDto; import org.prgms.kdtspringweek1.voucher.service.dto.SelectVoucherTypeDto; import org.prgms.kdtspringweek1.voucher.service.dto.UpdateVoucherRequestDto; import org.prgms.kdtspringweek1.voucher.entity.VoucherType; diff --git a/src/main/java/org/prgms/kdtspringweek1/consoleController/CustomerController.java b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/CustomerController.java similarity index 95% rename from src/main/java/org/prgms/kdtspringweek1/consoleController/CustomerController.java rename to src/main/java/org/prgms/kdtspringweek1/controller/consoleController/CustomerController.java index 2b0a510f64..cd99a5cc6a 100644 --- a/src/main/java/org/prgms/kdtspringweek1/consoleController/CustomerController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/CustomerController.java @@ -1,7 +1,7 @@ -package org.prgms.kdtspringweek1.consoleController; +package org.prgms.kdtspringweek1.controller.consoleController; import org.prgms.kdtspringweek1.console.ConsoleOutput; -import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.controller.consoleController.dto.SelectFunctionTypeDto; import org.prgms.kdtspringweek1.customer.service.dto.FindCustomerResponseDto; import org.prgms.kdtspringweek1.customer.service.dto.UpdateCustomerRequestDto; import org.prgms.kdtspringweek1.customer.entity.Customer; diff --git a/src/main/java/org/prgms/kdtspringweek1/consoleController/VoucherController.java b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/VoucherController.java similarity index 95% rename from src/main/java/org/prgms/kdtspringweek1/consoleController/VoucherController.java rename to src/main/java/org/prgms/kdtspringweek1/controller/consoleController/VoucherController.java index dbf2595a59..f7603e6414 100644 --- a/src/main/java/org/prgms/kdtspringweek1/consoleController/VoucherController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/VoucherController.java @@ -1,7 +1,7 @@ -package org.prgms.kdtspringweek1.consoleController; +package org.prgms.kdtspringweek1.controller.consoleController; import org.prgms.kdtspringweek1.console.ConsoleOutput; -import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.controller.consoleController.dto.SelectFunctionTypeDto; import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; import org.prgms.kdtspringweek1.voucher.service.VoucherService; diff --git a/src/main/java/org/prgms/kdtspringweek1/consoleController/WalletController.java b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/WalletController.java similarity index 94% rename from src/main/java/org/prgms/kdtspringweek1/consoleController/WalletController.java rename to src/main/java/org/prgms/kdtspringweek1/controller/consoleController/WalletController.java index 33549ce01e..e600a30037 100644 --- a/src/main/java/org/prgms/kdtspringweek1/consoleController/WalletController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/WalletController.java @@ -1,7 +1,7 @@ -package org.prgms.kdtspringweek1.consoleController; +package org.prgms.kdtspringweek1.controller.consoleController; import org.prgms.kdtspringweek1.console.ConsoleOutput; -import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.controller.consoleController.dto.SelectFunctionTypeDto; import org.prgms.kdtspringweek1.customer.service.dto.FindCustomerResponseDto; import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; import org.prgms.kdtspringweek1.wallet.entity.Wallet; diff --git a/src/main/java/org/prgms/kdtspringweek1/consoleController/dto/SelectFunctionTypeDto.java b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/dto/SelectFunctionTypeDto.java similarity index 96% rename from src/main/java/org/prgms/kdtspringweek1/consoleController/dto/SelectFunctionTypeDto.java rename to src/main/java/org/prgms/kdtspringweek1/controller/consoleController/dto/SelectFunctionTypeDto.java index 44c54146a5..152082723b 100644 --- a/src/main/java/org/prgms/kdtspringweek1/consoleController/dto/SelectFunctionTypeDto.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/dto/SelectFunctionTypeDto.java @@ -1,4 +1,4 @@ -package org.prgms.kdtspringweek1.consoleController.dto; +package org.prgms.kdtspringweek1.controller.consoleController.dto; import org.prgms.kdtspringweek1.exception.InputExceptionCode; import org.slf4j.Logger; diff --git a/src/main/java/org/prgms/kdtspringweek1/springMvcController/SpringMvcVoucherController.java b/src/main/java/org/prgms/kdtspringweek1/controller/springMvcController/SpringMvcVoucherController.java similarity index 96% rename from src/main/java/org/prgms/kdtspringweek1/springMvcController/SpringMvcVoucherController.java rename to src/main/java/org/prgms/kdtspringweek1/controller/springMvcController/SpringMvcVoucherController.java index 643bb519c8..886734fca2 100644 --- a/src/main/java/org/prgms/kdtspringweek1/springMvcController/SpringMvcVoucherController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/springMvcController/SpringMvcVoucherController.java @@ -1,4 +1,4 @@ -package org.prgms.kdtspringweek1.springMvcController; +package org.prgms.kdtspringweek1.controller.springMvcController; import org.prgms.kdtspringweek1.voucher.service.VoucherService; import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; diff --git a/src/main/java/org/prgms/kdtspringweek1/thymeleafController/ThymeleafVoucherController.java b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafVoucherController.java similarity index 97% rename from src/main/java/org/prgms/kdtspringweek1/thymeleafController/ThymeleafVoucherController.java rename to src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafVoucherController.java index 8019b6064b..8a7117a891 100644 --- a/src/main/java/org/prgms/kdtspringweek1/thymeleafController/ThymeleafVoucherController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafVoucherController.java @@ -1,4 +1,4 @@ -package org.prgms.kdtspringweek1.thymeleafController; +package org.prgms.kdtspringweek1.controller.thymeleafController; import org.prgms.kdtspringweek1.voucher.service.VoucherService; import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; diff --git a/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java b/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java index 98a656be62..c60c2839fa 100644 --- a/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java +++ b/src/test/java/org/prgms/kdtspringweek1/controller/ConsoleInputConverterTest.java @@ -7,9 +7,9 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.prgms.kdtspringweek1.console.ScannerInput; -import org.prgms.kdtspringweek1.consoleController.ConsoleInputConverter; +import org.prgms.kdtspringweek1.controller.consoleController.ConsoleInputConverter; import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; -import org.prgms.kdtspringweek1.consoleController.dto.SelectFunctionTypeDto; +import org.prgms.kdtspringweek1.controller.consoleController.dto.SelectFunctionTypeDto; import org.prgms.kdtspringweek1.voucher.service.dto.SelectVoucherTypeDto; import org.prgms.kdtspringweek1.exception.InputExceptionCode; import org.prgms.kdtspringweek1.voucher.entity.VoucherType; From e46785b9d8ffdc15d59c4501d50184feddb4f4e8 Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sat, 4 Nov 2023 17:18:38 +0900 Subject: [PATCH 09/16] =?UTF-8?q?feat:=20spring=20mvc=EC=99=80=20thymeleaf?= =?UTF-8?q?=20=EC=A0=81=EC=9A=A9=ED=95=9C=20=EC=A7=80=EA=B0=91=EC=9A=A9=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=ED=8E=98=EC=9D=B4=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 --- .../ThymeleafWalletController.java | 69 +++++++++++++++++++ .../service/dto/FindCustomerResponseDto.java | 12 ++++ .../service/dto/CreateWalletRequestDto.java | 35 ++++++++++ .../templates/wallet/wallet-create.html | 28 ++++++++ .../templates/wallet/wallet-delete.html | 28 ++++++++ .../templates/wallet/wallet-search.html | 66 ++++++++++++++++++ 6 files changed, 238 insertions(+) create mode 100644 src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java create mode 100644 src/main/java/org/prgms/kdtspringweek1/wallet/service/dto/CreateWalletRequestDto.java create mode 100644 src/main/resources/templates/wallet/wallet-create.html create mode 100644 src/main/resources/templates/wallet/wallet-delete.html create mode 100644 src/main/resources/templates/wallet/wallet-search.html diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java new file mode 100644 index 0000000000..23c1cf834c --- /dev/null +++ b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java @@ -0,0 +1,69 @@ +package org.prgms.kdtspringweek1.controller.thymeleafController; + +import org.prgms.kdtspringweek1.customer.service.dto.FindCustomerResponseDto; +import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; +import org.prgms.kdtspringweek1.wallet.service.WalletService; +import org.prgms.kdtspringweek1.wallet.service.dto.CreateWalletRequestDto; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.UUID; + +@Controller +public class ThymeleafWalletController { + + private final WalletService walletService; + + public ThymeleafWalletController(WalletService walletService) { + this.walletService = walletService; + } + + @PostMapping("/wallet") + public String createWallet(@ModelAttribute CreateWalletRequestDto createWalletRequestDto) { + walletService.registerWallet(createWalletRequestDto.toWallet()); + return "wallet/wallet-create"; + } + + @GetMapping("/customer/wallets") + public String searchAllVouchersByCustomerId(@RequestParam String customerId, Model model) { + List vouchers = walletService.searchAllVouchersByCustomerId(UUID.fromString(customerId)); + model.addAttribute("serverTime", LocalDateTime.now()); + model.addAttribute("vouchers", vouchers); + return "wallet/wallet-search"; + } + + @PostMapping("/wallet-delete") + public String deleteWalletByVoucherIdAndCustomerId(@RequestParam String voucherId, @RequestParam String customerId) { + walletService.deleteWalletByVoucherIdAndCustomerId(UUID.fromString(voucherId), UUID.fromString(customerId)); + return "wallet/wallet-delete"; + } + + @GetMapping("/voucher/wallets") + public String searchAllCustomersByVoucherId(@RequestParam String voucherId, Model model) { + List customers = walletService.searchAllCustomersByVoucherId(UUID.fromString(voucherId)); + model.addAttribute("serverTime", LocalDateTime.now()); + model.addAttribute("customers", customers); + return "wallet/wallet-search"; + } + + @GetMapping("/wallet") + public String searchWallet() { + return "wallet/wallet-search"; + } + + @GetMapping("/wallet-delete") + public String deleteWallet() { + return "wallet/wallet-delete"; + } + + @GetMapping("/wallet-create") + public String createWallet() { + return "wallet/wallet-create"; + } +} diff --git a/src/main/java/org/prgms/kdtspringweek1/customer/service/dto/FindCustomerResponseDto.java b/src/main/java/org/prgms/kdtspringweek1/customer/service/dto/FindCustomerResponseDto.java index 615fa907b9..7e82ff7e6d 100644 --- a/src/main/java/org/prgms/kdtspringweek1/customer/service/dto/FindCustomerResponseDto.java +++ b/src/main/java/org/prgms/kdtspringweek1/customer/service/dto/FindCustomerResponseDto.java @@ -24,4 +24,16 @@ public void printCustomerInfo() { System.out.println(MessageFormat.format("Name: {0}", name)); System.out.println(MessageFormat.format("IsBlackCustomer: {0}", isBlackCustomer)); } + + public UUID getCustomerId() { + return customerId; + } + + public String getName() { + return name; + } + + public boolean getIsBlackCustomer() { + return isBlackCustomer; + } } diff --git a/src/main/java/org/prgms/kdtspringweek1/wallet/service/dto/CreateWalletRequestDto.java b/src/main/java/org/prgms/kdtspringweek1/wallet/service/dto/CreateWalletRequestDto.java new file mode 100644 index 0000000000..a8bb427394 --- /dev/null +++ b/src/main/java/org/prgms/kdtspringweek1/wallet/service/dto/CreateWalletRequestDto.java @@ -0,0 +1,35 @@ +package org.prgms.kdtspringweek1.wallet.service.dto; + +import org.prgms.kdtspringweek1.wallet.entity.Wallet; + +import java.util.UUID; + +public class CreateWalletRequestDto { + private UUID voucherId; + private UUID customerId; + + public CreateWalletRequestDto(UUID voucherId, UUID customerId) { + this.voucherId = voucherId; + this.customerId = customerId; + } + + public UUID getVoucherId() { + return voucherId; + } + + public UUID getCustomerId() { + return customerId; + } + + public void setVoucherId(UUID voucherId) { + this.voucherId = voucherId; + } + + public void setCustomerId(UUID customerId) { + this.customerId = customerId; + } + + public Wallet toWallet() { + return Wallet.createWithVoucherIdAndCustomerId(voucherId, customerId); + } +} diff --git a/src/main/resources/templates/wallet/wallet-create.html b/src/main/resources/templates/wallet/wallet-create.html new file mode 100644 index 0000000000..7ea3bc19fc --- /dev/null +++ b/src/main/resources/templates/wallet/wallet-create.html @@ -0,0 +1,28 @@ + + + + + + + + + Home + + +

Wallet Create

+
+
+ + +
+
+ + +
+ + Search Wallet +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/wallet/wallet-delete.html b/src/main/resources/templates/wallet/wallet-delete.html new file mode 100644 index 0000000000..21d0acf1dd --- /dev/null +++ b/src/main/resources/templates/wallet/wallet-delete.html @@ -0,0 +1,28 @@ + + + + + + + + + Home + + +

Wallet Delete

+
+
+ + +
+
+ + +
+ + Search Wallet +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/wallet/wallet-search.html b/src/main/resources/templates/wallet/wallet-search.html new file mode 100644 index 0000000000..4baa019bf7 --- /dev/null +++ b/src/main/resources/templates/wallet/wallet-search.html @@ -0,0 +1,66 @@ + + + + + + + + + Home + + +

Search Wallet By Customer Id

+
+
+ + +
+ +
+

Search Wallet By Voucher Id

+
+
+ + +
+ +
+

Search Result

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDVoucher TypeDiscount Value
IDNameIs Black Customer
+Create Wallet +Delete Wallet + + \ No newline at end of file From c8ab963605e4bbb8aded6d42711933d9028ef85a Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sun, 5 Nov 2023 02:36:59 +0900 Subject: [PATCH 10/16] =?UTF-8?q?style:=20static=20final=20=EC=BB=A8?= =?UTF-8?q?=EB=B2=A4=EC=85=98=20Google=20Style=20Guide=20=EC=B0=B8?= =?UTF-8?q?=EA=B3=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/prgms/kdtspringweek1/AppCommandLineRunner.java | 4 ++-- .../consoleController/dto/SelectFunctionTypeDto.java | 2 +- .../customer/repository/CsvFileCustomerRepository.java | 2 +- .../kdtspringweek1/voucher/entity/FixedAmountVoucher.java | 4 ++-- .../kdtspringweek1/voucher/entity/PercentDiscountVoucher.java | 4 ++-- .../org/prgms/kdtspringweek1/voucher/entity/VoucherType.java | 2 +- .../voucher/service/dto/CreateVoucherRequestDto.java | 2 +- .../voucher/service/dto/SelectVoucherTypeDto.java | 2 +- .../voucher/service/dto/UpdateVoucherRequestDto.java | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java index ccea0a7af6..f501595cbd 100644 --- a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java +++ b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java @@ -12,9 +12,9 @@ @Profile("!test") public class AppCommandLineRunner implements CommandLineRunner { - private final AppController appController; private boolean shouldExit = false; - private final static Logger logger = LoggerFactory.getLogger(AppCommandLineRunner.class); + private final AppController appController; + private static final Logger logger = LoggerFactory.getLogger(AppCommandLineRunner.class); public AppCommandLineRunner(AppController appController) { this.appController = appController; diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/dto/SelectFunctionTypeDto.java b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/dto/SelectFunctionTypeDto.java index 152082723b..49d98dcb2e 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/dto/SelectFunctionTypeDto.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/consoleController/dto/SelectFunctionTypeDto.java @@ -26,7 +26,7 @@ public enum SelectFunctionTypeDto { private String type; private String name; - private final static Logger logger = LoggerFactory.getLogger(SelectFunctionTypeDto.class); + private static final Logger logger = LoggerFactory.getLogger(SelectFunctionTypeDto.class); SelectFunctionTypeDto(String type, String name) { this.type = type; diff --git a/src/main/java/org/prgms/kdtspringweek1/customer/repository/CsvFileCustomerRepository.java b/src/main/java/org/prgms/kdtspringweek1/customer/repository/CsvFileCustomerRepository.java index 9d077f4f21..b9bd9e867e 100644 --- a/src/main/java/org/prgms/kdtspringweek1/customer/repository/CsvFileCustomerRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/customer/repository/CsvFileCustomerRepository.java @@ -22,7 +22,7 @@ public class CsvFileCustomerRepository implements CustomerRepository { private File customerInfoCsv; @Value("${spring.file.customer.path}") private String customerInfoCsvPath; - private final static Logger logger = LoggerFactory.getLogger(CsvFileCustomerRepository.class); + private static final Logger logger = LoggerFactory.getLogger(CsvFileCustomerRepository.class); @PostConstruct private void init() { diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/entity/FixedAmountVoucher.java b/src/main/java/org/prgms/kdtspringweek1/voucher/entity/FixedAmountVoucher.java index d3e80ccfbe..015a90436c 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/entity/FixedAmountVoucher.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/entity/FixedAmountVoucher.java @@ -9,8 +9,8 @@ public class FixedAmountVoucher implements Voucher { private final UUID voucherId; private final long discountValue; - private final static VoucherType voucherType = VoucherType.FIXED_AMOUNT; - private final static Logger logger = LoggerFactory.getLogger(FixedAmountVoucher.class); + private static final VoucherType voucherType = VoucherType.FIXED_AMOUNT; + private static final Logger logger = LoggerFactory.getLogger(FixedAmountVoucher.class); public static FixedAmountVoucher createWithAmount(long amount) { return new FixedAmountVoucher(amount); diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/entity/PercentDiscountVoucher.java b/src/main/java/org/prgms/kdtspringweek1/voucher/entity/PercentDiscountVoucher.java index dabeadecea..3582595de8 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/entity/PercentDiscountVoucher.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/entity/PercentDiscountVoucher.java @@ -9,8 +9,8 @@ public class PercentDiscountVoucher implements Voucher { private final UUID voucherId; private final long discountValue; - private final static VoucherType voucherType = VoucherType.PERCENT_DISCOUNT; - private final static Logger logger = LoggerFactory.getLogger(PercentDiscountVoucher.class); + private static final VoucherType voucherType = VoucherType.PERCENT_DISCOUNT; + private static final Logger logger = LoggerFactory.getLogger(PercentDiscountVoucher.class); public static PercentDiscountVoucher createWithPercent(long percent) { return new PercentDiscountVoucher(percent); diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/entity/VoucherType.java b/src/main/java/org/prgms/kdtspringweek1/voucher/entity/VoucherType.java index 6ad6453e4d..ed3e21686b 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/entity/VoucherType.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/entity/VoucherType.java @@ -10,7 +10,7 @@ public enum VoucherType { private String name; private String unit; - private final static Logger logger = LoggerFactory.getLogger(VoucherType.class); + private static final Logger logger = LoggerFactory.getLogger(VoucherType.class); VoucherType(String name, String unit) { diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/CreateVoucherRequestDto.java b/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/CreateVoucherRequestDto.java index 77530bf743..53f3a8d8c5 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/CreateVoucherRequestDto.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/CreateVoucherRequestDto.java @@ -11,7 +11,7 @@ public class CreateVoucherRequestDto { private long discountValue; private String voucherType; - private final static Logger logger = LoggerFactory.getLogger(CreateVoucherRequestDto.class); + private static final Logger logger = LoggerFactory.getLogger(CreateVoucherRequestDto.class); public long getDiscountValue() { return discountValue; diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/SelectVoucherTypeDto.java b/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/SelectVoucherTypeDto.java index 4471f8c5d3..9f35cccf5a 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/SelectVoucherTypeDto.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/SelectVoucherTypeDto.java @@ -16,7 +16,7 @@ public enum SelectVoucherTypeDto { private long num; private VoucherType voucherType; - private final static Logger logger = LoggerFactory.getLogger(SelectVoucherTypeDto.class); + private static final Logger logger = LoggerFactory.getLogger(SelectVoucherTypeDto.class); SelectVoucherTypeDto(long num, VoucherType voucherType) { this.num = num; diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/UpdateVoucherRequestDto.java b/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/UpdateVoucherRequestDto.java index 616f120f1c..5bf2239cdf 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/UpdateVoucherRequestDto.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/service/dto/UpdateVoucherRequestDto.java @@ -12,7 +12,7 @@ public class UpdateVoucherRequestDto { private final UUID voucherId; private final long discountValue; - private final static Logger logger = LoggerFactory.getLogger(UpdateVoucherRequestDto.class); + private static final Logger logger = LoggerFactory.getLogger(UpdateVoucherRequestDto.class); public UpdateVoucherRequestDto(UUID voucherId, long discountValue) { if (discountValue > 0) { From 03276f093eae4b503e334e4721143d19dd6e0048 Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sun, 5 Nov 2023 02:37:34 +0900 Subject: [PATCH 11/16] =?UTF-8?q?exception:=20=ED=94=84=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EB=9E=A8=20=EC=A2=85=EB=A3=8C=20=EC=BB=A4=EC=8A=A4=ED=85=80=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kdtspringweek1/exception/ExitException.java | 14 ++++++++++++++ .../exception/ExitExceptionCode.java | 15 +++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/main/java/org/prgms/kdtspringweek1/exception/ExitException.java create mode 100644 src/main/java/org/prgms/kdtspringweek1/exception/ExitExceptionCode.java diff --git a/src/main/java/org/prgms/kdtspringweek1/exception/ExitException.java b/src/main/java/org/prgms/kdtspringweek1/exception/ExitException.java new file mode 100644 index 0000000000..364f4dcb38 --- /dev/null +++ b/src/main/java/org/prgms/kdtspringweek1/exception/ExitException.java @@ -0,0 +1,14 @@ +package org.prgms.kdtspringweek1.exception; + +public class ExitException extends RuntimeException { + private String message; + + public ExitException(ExitExceptionCode exitExceptionCode) { + this.message = exitExceptionCode.getMessage(); + } + + @Override + public String getMessage() { + return message; + } +} diff --git a/src/main/java/org/prgms/kdtspringweek1/exception/ExitExceptionCode.java b/src/main/java/org/prgms/kdtspringweek1/exception/ExitExceptionCode.java new file mode 100644 index 0000000000..915b7d665a --- /dev/null +++ b/src/main/java/org/prgms/kdtspringweek1/exception/ExitExceptionCode.java @@ -0,0 +1,15 @@ +package org.prgms.kdtspringweek1.exception; + +public enum ExitExceptionCode { + FAIL_TO_LOAD_DATA("[System] 데이터 불러오기에 실패하였습니다."); + + private String message; + + ExitExceptionCode(String message) { + this.message = message; + } + + public String getMessage() { + return this.message; + } +} From 005366f417a5ef481273cf6b347a6c5557e1adde Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sun, 5 Nov 2023 02:38:27 +0900 Subject: [PATCH 12/16] =?UTF-8?q?refactor:=20=ED=94=84=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EB=9E=A8=20=EC=A2=85=EB=A3=8C=20=EC=98=88=EC=99=B8=20=EB=B0=9C?= =?UTF-8?q?=EA=B2=AC=20=EC=8B=9C=20=EC=A2=85=EB=A3=8C=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/prgms/kdtspringweek1/AppCommandLineRunner.java | 9 ++++----- .../customer/repository/CsvFileCustomerRepository.java | 4 +++- .../voucher/repository/CsvFileVoucherRepository.java | 4 +++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java index f501595cbd..ad1fb6f54d 100644 --- a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java +++ b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java @@ -1,6 +1,7 @@ package org.prgms.kdtspringweek1; import org.prgms.kdtspringweek1.controller.consoleController.AppController; +import org.prgms.kdtspringweek1.exception.ExitException; import org.prgms.kdtspringweek1.exception.FileExceptionCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,13 +26,11 @@ public void run(String... args) { while (!shouldExit) { try { appController.startVoucherProgram(); - } catch (Exception exception) { + } catch (ExitException exception) { + // 시스템이 종료되어야하는 예외를 구분하여 처리 System.out.println(exception.getMessage()); logger.error(exception.getMessage()); - // 파일에서 정보를 읽어오는 것을 실패했다면, 서버가 켜지지 않는게 정상이므로, 예외 전파 후 어플을 종료 시키도록 한다. - if (exception.getMessage().equals(FileExceptionCode.FAIL_TO_READ_DATA_FROM_CSV)) { - shouldExit = true; - } + shouldExit = true; } } } diff --git a/src/main/java/org/prgms/kdtspringweek1/customer/repository/CsvFileCustomerRepository.java b/src/main/java/org/prgms/kdtspringweek1/customer/repository/CsvFileCustomerRepository.java index b9bd9e867e..d95d942d0f 100644 --- a/src/main/java/org/prgms/kdtspringweek1/customer/repository/CsvFileCustomerRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/customer/repository/CsvFileCustomerRepository.java @@ -2,6 +2,8 @@ import jakarta.annotation.PostConstruct; import org.prgms.kdtspringweek1.customer.entity.Customer; +import org.prgms.kdtspringweek1.exception.ExitException; +import org.prgms.kdtspringweek1.exception.ExitExceptionCode; import org.prgms.kdtspringweek1.exception.FileException; import org.prgms.kdtspringweek1.exception.FileExceptionCode; import org.slf4j.Logger; @@ -110,7 +112,7 @@ private Map getAllCustomersFromCSV() { } } catch (IOException e) { logger.error("Fail to read file when getAllVouchersFromCSV"); - throw new FileException(FileExceptionCode.FAIL_TO_READ_DATA_FROM_CSV); + throw new ExitException(ExitExceptionCode.FAIL_TO_LOAD_DATA); } return customers; diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java index c65ea1fcdb..e588b6f814 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/CsvFileVoucherRepository.java @@ -1,6 +1,8 @@ package org.prgms.kdtspringweek1.voucher.repository; import jakarta.annotation.PostConstruct; +import org.prgms.kdtspringweek1.exception.ExitException; +import org.prgms.kdtspringweek1.exception.ExitExceptionCode; import org.prgms.kdtspringweek1.exception.FileException; import org.prgms.kdtspringweek1.exception.FileExceptionCode; import org.prgms.kdtspringweek1.voucher.entity.FixedAmountVoucher; @@ -119,7 +121,7 @@ private Map getAllVouchersFromCSV() { } } catch (IOException e) { logger.error("Fail to read file when getAllVouchersFromCSV"); - throw new FileException(FileExceptionCode.FAIL_TO_READ_DATA_FROM_CSV); + throw new ExitException(ExitExceptionCode.FAIL_TO_LOAD_DATA); } return vouchers; From fe682e56a11929823f7661179190193363860e41 Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Sun, 5 Nov 2023 02:41:13 +0900 Subject: [PATCH 13/16] =?UTF-8?q?chore:=20JdbcUtils=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=EB=A5=BC=20=EC=82=AC=EC=9A=A9=20=EB=AA=A9=EC=A0=81?= =?UTF-8?q?=EC=97=90=20=EB=A7=9E=EA=B2=8C=20UuidUtils=EB=A1=9C=20=EB=84=A4?= =?UTF-8?q?=EC=9D=B4=EB=B0=8D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../prgms/kdtspringweek1/{JdbcUtils.java => UuidUtils.java} | 4 +--- .../customer/repository/JdbcCustomerRepository.java | 2 +- .../voucher/repository/JdbcVoucherRepository.java | 2 +- .../wallet/repository/JdbcWalletRepository.java | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) rename src/main/java/org/prgms/kdtspringweek1/{JdbcUtils.java => UuidUtils.java} (75%) diff --git a/src/main/java/org/prgms/kdtspringweek1/JdbcUtils.java b/src/main/java/org/prgms/kdtspringweek1/UuidUtils.java similarity index 75% rename from src/main/java/org/prgms/kdtspringweek1/JdbcUtils.java rename to src/main/java/org/prgms/kdtspringweek1/UuidUtils.java index 04259acdca..97732d8970 100644 --- a/src/main/java/org/prgms/kdtspringweek1/JdbcUtils.java +++ b/src/main/java/org/prgms/kdtspringweek1/UuidUtils.java @@ -1,11 +1,9 @@ package org.prgms.kdtspringweek1; import java.nio.ByteBuffer; -import java.sql.Timestamp; -import java.time.LocalDateTime; import java.util.UUID; -public class JdbcUtils { +public class UuidUtils { public static UUID toUUID(byte[] bytes) { var byteBuffer = ByteBuffer.wrap(bytes); diff --git a/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java b/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java index b035008fb7..0275f4bfa4 100644 --- a/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java @@ -13,7 +13,7 @@ import java.util.*; -import static org.prgms.kdtspringweek1.JdbcUtils.toUUID; +import static org.prgms.kdtspringweek1.UuidUtils.toUUID; @Repository @Profile({"default", "test"}) diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java index fdbf927866..8426c7dc39 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java @@ -16,7 +16,7 @@ import java.util.*; -import static org.prgms.kdtspringweek1.JdbcUtils.toUUID; +import static org.prgms.kdtspringweek1.UuidUtils.toUUID; @Repository @Profile({"default", "test"}) diff --git a/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java b/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java index 4f4eb39a72..512b8ca019 100644 --- a/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java @@ -17,7 +17,7 @@ import java.util.*; -import static org.prgms.kdtspringweek1.JdbcUtils.toUUID; +import static org.prgms.kdtspringweek1.UuidUtils.toUUID; @Repository @Profile({"default", "test"}) From 048817fcf17161877715b5d8186b5e7ca256e410 Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Mon, 6 Nov 2023 13:43:25 +0900 Subject: [PATCH 14/16] =?UTF-8?q?chore:=20UuidUtils=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=20=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/prgms/kdtspringweek1/{UuidUtils.java => UUIDUtils.java} | 2 +- .../customer/repository/JdbcCustomerRepository.java | 2 +- .../voucher/repository/JdbcVoucherRepository.java | 2 +- .../kdtspringweek1/wallet/repository/JdbcWalletRepository.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename src/main/java/org/prgms/kdtspringweek1/{UuidUtils.java => UUIDUtils.java} (91%) diff --git a/src/main/java/org/prgms/kdtspringweek1/UuidUtils.java b/src/main/java/org/prgms/kdtspringweek1/UUIDUtils.java similarity index 91% rename from src/main/java/org/prgms/kdtspringweek1/UuidUtils.java rename to src/main/java/org/prgms/kdtspringweek1/UUIDUtils.java index 97732d8970..4d85ea13d9 100644 --- a/src/main/java/org/prgms/kdtspringweek1/UuidUtils.java +++ b/src/main/java/org/prgms/kdtspringweek1/UUIDUtils.java @@ -3,7 +3,7 @@ import java.nio.ByteBuffer; import java.util.UUID; -public class UuidUtils { +public class UUIDUtils { public static UUID toUUID(byte[] bytes) { var byteBuffer = ByteBuffer.wrap(bytes); diff --git a/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java b/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java index 0275f4bfa4..ea34419399 100644 --- a/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java @@ -13,7 +13,7 @@ import java.util.*; -import static org.prgms.kdtspringweek1.UuidUtils.toUUID; +import static org.prgms.kdtspringweek1.UUIDUtils.toUUID; @Repository @Profile({"default", "test"}) diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java index 8426c7dc39..f24e0fe425 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java @@ -16,7 +16,7 @@ import java.util.*; -import static org.prgms.kdtspringweek1.UuidUtils.toUUID; +import static org.prgms.kdtspringweek1.UUIDUtils.toUUID; @Repository @Profile({"default", "test"}) diff --git a/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java b/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java index 512b8ca019..e9d725ac3b 100644 --- a/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java @@ -17,7 +17,7 @@ import java.util.*; -import static org.prgms.kdtspringweek1.UuidUtils.toUUID; +import static org.prgms.kdtspringweek1.UUIDUtils.toUUID; @Repository @Profile({"default", "test"}) From 3050c785eb1863427c31a687afc8d069415cbad8 Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:07:44 +0900 Subject: [PATCH 15/16] =?UTF-8?q?refactor:=20=EC=BB=A8=ED=8A=B8=EB=A1=A4?= =?UTF-8?q?=EB=9F=AC=20=EB=B3=84=20=ED=94=84=EB=A1=9C=ED=8C=8C=EC=9D=BC=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 --- .../java/org/prgms/kdtspringweek1/AppCommandLineRunner.java | 3 +-- .../springMvcController/SpringMvcVoucherController.java | 2 ++ .../thymeleafController/ThymeleafVoucherController.java | 2 ++ .../thymeleafController/ThymeleafWalletController.java | 2 ++ .../customer/repository/JdbcCustomerRepository.java | 1 - .../voucher/repository/JdbcVoucherRepository.java | 1 - .../kdtspringweek1/wallet/repository/JdbcWalletRepository.java | 1 - 7 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java index ad1fb6f54d..a34c81f9f9 100644 --- a/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java +++ b/src/main/java/org/prgms/kdtspringweek1/AppCommandLineRunner.java @@ -2,7 +2,6 @@ import org.prgms.kdtspringweek1.controller.consoleController.AppController; import org.prgms.kdtspringweek1.exception.ExitException; -import org.prgms.kdtspringweek1.exception.FileExceptionCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; @@ -10,7 +9,7 @@ import org.springframework.stereotype.Component; @Component -@Profile("!test") +@Profile({"console"}) public class AppCommandLineRunner implements CommandLineRunner { private boolean shouldExit = false; diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/springMvcController/SpringMvcVoucherController.java b/src/main/java/org/prgms/kdtspringweek1/controller/springMvcController/SpringMvcVoucherController.java index 886734fca2..67d3ef92f8 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/springMvcController/SpringMvcVoucherController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/springMvcController/SpringMvcVoucherController.java @@ -4,6 +4,7 @@ import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; import org.prgms.kdtspringweek1.voucher.service.dto.SelectVoucherTypeDto; +import org.springframework.context.annotation.Profile; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -12,6 +13,7 @@ @RestController @RequestMapping("/spring-mvc/voucher") public class SpringMvcVoucherController { +@Profile({"rest"}) private final VoucherService voucherService; diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafVoucherController.java b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafVoucherController.java index 8a7117a891..087a1462a1 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafVoucherController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafVoucherController.java @@ -3,6 +3,7 @@ import org.prgms.kdtspringweek1.voucher.service.VoucherService; import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; +import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; @@ -12,6 +13,7 @@ import java.util.UUID; @Controller +@Profile({"thymeleaf"}) public class ThymeleafVoucherController { private final VoucherService voucherService; diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java index 23c1cf834c..d1b0ace4cb 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java @@ -4,6 +4,7 @@ import org.prgms.kdtspringweek1.voucher.service.dto.FindVoucherResponseDto; import org.prgms.kdtspringweek1.wallet.service.WalletService; import org.prgms.kdtspringweek1.wallet.service.dto.CreateWalletRequestDto; +import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @@ -16,6 +17,7 @@ import java.util.UUID; @Controller +@Profile({"thymeleaf"}) public class ThymeleafWalletController { private final WalletService walletService; diff --git a/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java b/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java index ea34419399..bd8f1ca5fb 100644 --- a/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/customer/repository/JdbcCustomerRepository.java @@ -16,7 +16,6 @@ import static org.prgms.kdtspringweek1.UUIDUtils.toUUID; @Repository -@Profile({"default", "test"}) public class JdbcCustomerRepository implements CustomerRepository { private static final Logger logger = LoggerFactory.getLogger(JdbcCustomerRepository.class); diff --git a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java index f24e0fe425..6b05bc22ed 100644 --- a/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/voucher/repository/JdbcVoucherRepository.java @@ -19,7 +19,6 @@ import static org.prgms.kdtspringweek1.UUIDUtils.toUUID; @Repository -@Profile({"default", "test"}) public class JdbcVoucherRepository implements VoucherRepository { private static final Logger logger = LoggerFactory.getLogger(JdbcVoucherRepository.class); diff --git a/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java b/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java index e9d725ac3b..f6fc76bb2e 100644 --- a/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java +++ b/src/main/java/org/prgms/kdtspringweek1/wallet/repository/JdbcWalletRepository.java @@ -20,7 +20,6 @@ import static org.prgms.kdtspringweek1.UUIDUtils.toUUID; @Repository -@Profile({"default", "test"}) public class JdbcWalletRepository implements WalletRepository { private static final Logger logger = LoggerFactory.getLogger(JdbcWalletRepository.class); From e19a258729d828754bf3554885de0dbb1b6a8dcb Mon Sep 17 00:00:00 2001 From: JeongeunChoi <77786996+JeongeunChoi@users.noreply.github.com> Date: Tue, 7 Nov 2023 11:39:03 +0900 Subject: [PATCH 16/16] =?UTF-8?q?refactor:=20=EC=BB=A8=ED=8A=B8=EB=A1=A4?= =?UTF-8?q?=EB=9F=AC=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?=EB=B0=8F=20url=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RestVoucherController.java} | 30 +++++++++---------- .../ThymeleafVoucherController.java | 3 +- .../ThymeleafWalletController.java | 8 ++--- 3 files changed, 20 insertions(+), 21 deletions(-) rename src/main/java/org/prgms/kdtspringweek1/controller/{springMvcController/SpringMvcVoucherController.java => restController/RestVoucherController.java} (61%) diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/springMvcController/SpringMvcVoucherController.java b/src/main/java/org/prgms/kdtspringweek1/controller/restController/RestVoucherController.java similarity index 61% rename from src/main/java/org/prgms/kdtspringweek1/controller/springMvcController/SpringMvcVoucherController.java rename to src/main/java/org/prgms/kdtspringweek1/controller/restController/RestVoucherController.java index 67d3ef92f8..873cb1e49f 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/springMvcController/SpringMvcVoucherController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/restController/RestVoucherController.java @@ -1,4 +1,4 @@ -package org.prgms.kdtspringweek1.controller.springMvcController; +package org.prgms.kdtspringweek1.controller.restController; import org.prgms.kdtspringweek1.voucher.service.VoucherService; import org.prgms.kdtspringweek1.voucher.service.dto.CreateVoucherRequestDto; @@ -11,38 +11,38 @@ import java.util.UUID; @RestController -@RequestMapping("/spring-mvc/voucher") -public class SpringMvcVoucherController { +@RequestMapping("rest") @Profile({"rest"}) +public class RestVoucherController { private final VoucherService voucherService; - public SpringMvcVoucherController(VoucherService voucherService) { + public RestVoucherController(VoucherService voucherService) { this.voucherService = voucherService; } - @GetMapping() + @GetMapping("/vouchers") public List getAllVouchers() { return voucherService.searchAllVouchers(); } - @GetMapping("/voucher-type/{num}") - public List getVoucherByVoucherType(@PathVariable long num) { - return voucherService.searchVouchersByVoucherType(SelectVoucherTypeDto.getVoucherTypeByNum(num).getName()); + @GetMapping("/vouchers/type") + public List getVoucherByVoucherType(@RequestParam String num) { + return voucherService.searchVouchersByVoucherType(SelectVoucherTypeDto.getVoucherTypeByNum(Long.parseLong(num)).getName()); } - @GetMapping("/{voucherId}") - public FindVoucherResponseDto getVoucherByVoucherId(@PathVariable String voucherId) { - return voucherService.searchVoucherById(UUID.fromString(voucherId)).get(); + @GetMapping("/voucher") + public FindVoucherResponseDto getVoucherByVoucherId(@RequestParam String id) { + return voucherService.searchVoucherById(UUID.fromString(id)).get(); } - @PostMapping() + @PostMapping("/voucher") public void createVoucher(@RequestBody CreateVoucherRequestDto createVoucherRequestDto) { voucherService.registerVoucher(createVoucherRequestDto.toVoucher()); } - @DeleteMapping("/{voucherId}") - public void deleteVoucher(@PathVariable String voucherId) { - voucherService.deleteVoucherById(UUID.fromString(voucherId)); + @DeleteMapping("/voucher") + public void deleteVoucher(@RequestParam String id) { + voucherService.deleteVoucherById(UUID.fromString(id)); } } \ No newline at end of file diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafVoucherController.java b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafVoucherController.java index 087a1462a1..00a7f31ce7 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafVoucherController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafVoucherController.java @@ -13,6 +13,7 @@ import java.util.UUID; @Controller +@RequestMapping("thymeleaf") @Profile({"thymeleaf"}) public class ThymeleafVoucherController { @@ -64,4 +65,4 @@ public String searchVoucher() { return "voucher/voucher-search"; } -} +} \ No newline at end of file diff --git a/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java index d1b0ace4cb..50938bcdd1 100644 --- a/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java +++ b/src/main/java/org/prgms/kdtspringweek1/controller/thymeleafController/ThymeleafWalletController.java @@ -7,16 +7,14 @@ import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.util.List; import java.util.UUID; @Controller +@RequestMapping("thymeleaf") @Profile({"thymeleaf"}) public class ThymeleafWalletController { @@ -32,7 +30,7 @@ public String createWallet(@ModelAttribute CreateWalletRequestDto createWalletRe return "wallet/wallet-create"; } - @GetMapping("/customer/wallets") + @GetMapping("/customer/wallets") // customerId로 PATHVARIABLE 가능 public String searchAllVouchersByCustomerId(@RequestParam String customerId, Model model) { List vouchers = walletService.searchAllVouchersByCustomerId(UUID.fromString(customerId)); model.addAttribute("serverTime", LocalDateTime.now());