Skip to content

Commit cc0cb03

Browse files
committed
feat : voucher policy별 조회기능 추가
1 parent 7042e36 commit cc0cb03

7 files changed

Lines changed: 45 additions & 6 deletions

File tree

src/main/java/org/prgrms/kdtspringdemo/voucher/controller/VoucherWebController.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,15 @@ public VoucherWebController(VoucherService voucherService) {
2121
}
2222

2323
@GetMapping
24-
public String listVouchers(Model model) {
25-
List<Voucher> voucherList = voucherService.findAll();
26-
model.addAttribute("voucherList", voucherList);
24+
public String getAllVouchers(@RequestParam(name = "policy", required = false) String policy, Model model) {
25+
List<Voucher> vouchers;
26+
if (policy != null && !policy.isEmpty()) {
27+
vouchers = voucherService.findByPolicy(policy);
28+
} else {
29+
vouchers = voucherService.findAll();
30+
}
31+
32+
model.addAttribute("vouchers", vouchers);
2733
return "voucher";
2834
}
2935

src/main/java/org/prgrms/kdtspringdemo/voucher/repository/FileVoucherRepository.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@ public List<Voucher> findAll() {
9595
return voucherList;
9696
}
9797

98+
@Override
99+
public List<Voucher> findByPolicy(String policy) {
100+
return null;
101+
}
102+
98103
@Override
99104
public List<Voucher> findUnallocatedVoucher() {
100105
return null;

src/main/java/org/prgrms/kdtspringdemo/voucher/repository/JdbcVoucherRepository.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,13 @@ public List<Voucher> findAll() {
8787
return jdbcTemplate.query("select * from voucher", voucherRowMapper);
8888
}
8989

90+
@Override
91+
public List<Voucher> findByPolicy(String policy) {
92+
return jdbcTemplate.query("select * from voucher where voucher_type = ?",
93+
voucherRowMapper,
94+
policy);
95+
}
96+
9097
@Override
9198
public List<Voucher> findUnallocatedVoucher() {
9299
return jdbcTemplate.query("SELECT voucher.voucher_id, voucher.voucher_type, voucher.amount FROM voucher LEFT JOIN wallet_customer_voucher ON voucher.voucher_id = wallet_customer_voucher.voucher_id WHERE wallet_customer_voucher.voucher_id IS NULL",

src/main/java/org/prgrms/kdtspringdemo/voucher/repository/MemoryVoucherRepository.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ public List<Voucher> findAll() {
4040
return voucherList;
4141
}
4242

43+
@Override
44+
public List<Voucher> findByPolicy(String policy) {
45+
return null;
46+
}
47+
4348
@Override
4449
public List<Voucher> findUnallocatedVoucher() {
4550
return null;

src/main/java/org/prgrms/kdtspringdemo/voucher/repository/VoucherRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public interface VoucherRepository {
1212
void update(UUID voucherId, VoucherRequestDto voucherRequestDto);
1313
Optional<Voucher> findById(UUID voucherId);
1414
List<Voucher> findAll();
15+
List<Voucher> findByPolicy(String policy);
1516
List<Voucher> findUnallocatedVoucher();
1617
void deleteById(UUID voucherId);
1718
void deleteAll();

src/main/java/org/prgrms/kdtspringdemo/voucher/service/VoucherService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ public List<Voucher> findAll() {
4141
return voucherRepository.findAll();
4242
}
4343

44+
public List<Voucher> findByPolicy(String policy) {
45+
return voucherRepository.findByPolicy(policy);
46+
}
47+
4448
public List<Voucher> findUnallocatedVoucher() {
4549
return voucherRepository.findUnallocatedVoucher();
4650
}

src/main/resources/templates/voucher.html

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,21 @@
3030
</nav>
3131

3232
<div class="container">
33-
3433
<h1 class="mt-5">Voucher Management</h1>
3534

35+
<!-- Filter by Policy Dropdown Form -->
36+
<form th:action="@{/vouchers}" method="get">
37+
<div class="form-group">
38+
<label for="policyFilter">Filter by Policy:</label>
39+
<select class="form-control" id="policyFilter" name="policy">
40+
<option value="">All Policies</option>
41+
<option value="fixedDiscount">Fixed Discount</option>
42+
<option value="percentDiscount">Percent Discount</option>
43+
</select>
44+
</div>
45+
<button type="submit" class="btn btn-primary">Apply Filter</button>
46+
</form>
47+
3648
<!-- Voucher List -->
3749
<h2 class="mt-3">All Vouchers</h2>
3850
<table class="table table-striped">
@@ -45,7 +57,7 @@ <h2 class="mt-3">All Vouchers</h2>
4557
</tr>
4658
</thead>
4759
<tbody>
48-
<tr th:each="voucher : ${voucherList}">
60+
<tr th:each="voucher : ${vouchers}">
4961
<td th:text="${voucher.voucherId}">Voucher ID</td>
5062
<td th:text="${voucher.voucherPolicy.voucherType}">Voucher Policy</td>
5163
<td th:text="${voucher.voucherPolicy.amount}">Discount Amount</td>
@@ -74,7 +86,6 @@ <h2 class="mt-5">Create Voucher</h2>
7486
</div>
7587
<button type="submit" class="btn btn-primary">Create</button>
7688
</form>
77-
7889
</div>
7990

8091
<!-- Include Bootstrap JS -->

0 commit comments

Comments
 (0)