From 1592f89da346c9c7b9583e7582e05aaf38700406 Mon Sep 17 00:00:00 2001 From: lemonticsoul Date: Wed, 19 Jun 2024 20:18:05 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8feat:=EC=99=84=EC=84=B1=EC=B0=A8=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95=EB=B0=8F=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=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 --- .../tea/controller/TeaController.java | 64 +++++++++++++ .../store/teabliss/tea/dto/TeaFinalDto.java | 3 + .../store/teabliss/tea/dto/TeaPatchDto.java | 22 +++++ .../store/teabliss/tea/mapper/TeaMapper.java | 10 ++- .../teabliss/tea/service/TeaService.java | 89 +++++++++++++++++++ src/main/resources/mapper/TeaMapper.xml | 43 ++++++++- 6 files changed, 229 insertions(+), 2 deletions(-) create mode 100644 src/main/java/store/teabliss/tea/dto/TeaPatchDto.java diff --git a/src/main/java/store/teabliss/tea/controller/TeaController.java b/src/main/java/store/teabliss/tea/controller/TeaController.java index 53d45c1..59be6c9 100644 --- a/src/main/java/store/teabliss/tea/controller/TeaController.java +++ b/src/main/java/store/teabliss/tea/controller/TeaController.java @@ -7,10 +7,13 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.coyote.Response; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import org.springframework.web.server.ResponseStatusException; import store.teabliss.tea.dto.TeaDto; import store.teabliss.tea.dto.TeaFinalDto; +import store.teabliss.tea.dto.TeaPatchDto; import store.teabliss.tea.dto.TeaSearchDto; import store.teabliss.tea.entity.Tea; import store.teabliss.tea.mapper.TeaMapper; @@ -141,6 +144,67 @@ public ResponseEntity category(@RequestParam("page") int page,@RequestParam(" return ResponseEntity.ok(response); } + @GetMapping("season") + @Operation(summary = "시즌별 조회", description = "차 하나만 조회하는 로직") + public ResponseEntity season(@RequestParam("page") int page,@RequestParam("limit") int limit,@RequestParam("season") String season){ + + List seasonsort=teaService.sortseason(page,limit,season); + + int teacount=seasonsort.size(); + + + Map response=new HashMap<>(); + response.put("size",teacount); + response.put("tea",seasonsort); + return ResponseEntity.ok(response); + + } + + @GetMapping("caffeine") + @Operation(summary = "카페인 조회", description = "차 하나만 조회하는 로직") + public ResponseEntity caffeine(@RequestParam("page") int page,@RequestParam("limit") int limit,@RequestParam("caffeine") boolean caffeine){ + + List caffeinesort=teaService.caffeinesort(page,limit,caffeine); + + int teacount=caffeinesort.size(); + Map response=new HashMap<>(); + response.put("size",teacount); + response.put("tea",caffeinesort); + return ResponseEntity.ok(response); + + } + + @DeleteMapping("delete/{id}") + @Operation(summary = "완성차 삭제 ", description = "차 하나만 조회하는 로직") + public ResponseEntity teaDelete(@PathVariable int id){ + + boolean delete=teaService.deletetea(id); + if (delete) { + return ResponseEntity.ok("삭제되었습니다."); + } else { + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "삭제 실패!"); + } + } + + @PatchMapping("patch/{id}") + @Operation(summary = "완성차 수정 ", description = "차 하나만 조회하는 로직") + public ResponseEntity teaPatch(TeaPatchDto teaPatchDto){ + + + + boolean patch=teaService.patchtea(teaPatchDto); + + if (patch) { + return ResponseEntity.ok("수정되었습니다."); + } else { + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "수정 실패!"); + } + + } + + + + diff --git a/src/main/java/store/teabliss/tea/dto/TeaFinalDto.java b/src/main/java/store/teabliss/tea/dto/TeaFinalDto.java index 5ae4242..7cd200b 100644 --- a/src/main/java/store/teabliss/tea/dto/TeaFinalDto.java +++ b/src/main/java/store/teabliss/tea/dto/TeaFinalDto.java @@ -32,6 +32,8 @@ public class TeaFinalDto { private boolean isLastPage = false; + private boolean caffeine ; + private String season; private String name; @@ -57,6 +59,7 @@ public static List of(List list){ .sale(tea.getSale()) .rating(tea.getRating()) .rate(tea.getRate()) + .caffeine(tea.isCaffeine()) .season(tea.getSeason()) .name(tea.getName()) .nameEng(tea.getNameEng()) diff --git a/src/main/java/store/teabliss/tea/dto/TeaPatchDto.java b/src/main/java/store/teabliss/tea/dto/TeaPatchDto.java new file mode 100644 index 0000000..cb37dec --- /dev/null +++ b/src/main/java/store/teabliss/tea/dto/TeaPatchDto.java @@ -0,0 +1,22 @@ +package store.teabliss.tea.dto; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class TeaPatchDto { + + private Long id ; + + private Long price; + private String category ; + + private String name ; + private String nameEng; + private boolean caffeine; + private String description; + private String img; + private Long inventory ; + +} diff --git a/src/main/java/store/teabliss/tea/mapper/TeaMapper.java b/src/main/java/store/teabliss/tea/mapper/TeaMapper.java index 32f8990..26a396f 100644 --- a/src/main/java/store/teabliss/tea/mapper/TeaMapper.java +++ b/src/main/java/store/teabliss/tea/mapper/TeaMapper.java @@ -34,7 +34,7 @@ public interface TeaMapper { Long countByCategory(String category); - Tea search(Long id); + Tea search(String product); void saveIngredient(TeaIngredient ingredient); void saveFlavor(TeaFlavor flavor); @@ -44,6 +44,14 @@ public interface TeaMapper { ArrayList findbyflavor(int id); + List seasonsort(String season); + + List caffeinesort(boolean caffeine); + + boolean deletetea(int id); + boolean patchtea(Tea tea); + + // List category(); diff --git a/src/main/java/store/teabliss/tea/service/TeaService.java b/src/main/java/store/teabliss/tea/service/TeaService.java index 43891dc..30da101 100644 --- a/src/main/java/store/teabliss/tea/service/TeaService.java +++ b/src/main/java/store/teabliss/tea/service/TeaService.java @@ -3,8 +3,10 @@ import com.fasterxml.jackson.core.JsonProcessingException; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import store.teabliss.ingredient.entity.Ingredient; import store.teabliss.tea.dto.TeaDto; import store.teabliss.tea.dto.TeaFinalDto; +import store.teabliss.tea.dto.TeaPatchDto; import store.teabliss.tea.dto.TeaSearchDto; import store.teabliss.tea.entity.TeaFlavor; import store.teabliss.tea.entity.TeaIngredient; @@ -290,5 +292,92 @@ public Long categorycount(String category){ return count; } + public List sortseason(int page,int limit,String season){ + + + List categorylist=teaMapper.seasonsort(season); + double all=categorylist.size(); + + int limitpage= (int) Math.ceil(all/limit); + + List new_recommend=new ArrayList<>(); + + for (int i =limit*(page-1);i<(page*limit);i++){ + if (i==all) { + break; + } + if (page==limitpage){ + categorylist.get(i).setIsLastPage(true); + new_recommend.add(categorylist.get(i)); + + } else { + categorylist.get(i).setIsLastPage(false); + new_recommend.add(categorylist.get(i)); + + } + + } + + return TeaFinalDto.of(new_recommend); + + } + + public List caffeinesort(int page,int limit,boolean caffeine){ + + List categorylist=teaMapper.caffeinesort(caffeine); + + double all=categorylist.size(); + + int limitpage= (int) Math.ceil(all/limit); + + List new_recommend=new ArrayList<>(); + + for (int i =limit*(page-1);i<(page*limit);i++){ + if (i==all) { + break; + } + if (page==limitpage){ + categorylist.get(i).setIsLastPage(true); + new_recommend.add(categorylist.get(i)); + + } else { + categorylist.get(i).setIsLastPage(false); + new_recommend.add(categorylist.get(i)); + + } + + } + + return TeaFinalDto.of(new_recommend); + } + + public boolean deletetea(int id){ + + boolean result=teaMapper.deletetea(id); + + return result; + } + + public boolean patchtea(TeaPatchDto teaPatchDto){ + + Tea updatetea = Tea.builder() + .id(teaPatchDto.getId()) + .price(teaPatchDto.getPrice()) + .category(teaPatchDto.getCategory()) + .name(teaPatchDto.getName()) + .nameEng(teaPatchDto.getNameEng()) + .caffeine(teaPatchDto.isCaffeine()) + .description(teaPatchDto.getDescription()) + .img(teaPatchDto.getImg()) + .inventory(teaPatchDto.getInventory()) + .build(); + + + boolean result=teaMapper.patchtea(updatetea); + + return result; + } + + } diff --git a/src/main/resources/mapper/TeaMapper.xml b/src/main/resources/mapper/TeaMapper.xml index a722960..b3ba420 100644 --- a/src/main/resources/mapper/TeaMapper.xml +++ b/src/main/resources/mapper/TeaMapper.xml @@ -74,7 +74,7 @@ + + + + + + DELETE FROM TEA + WHERE 1=1 + AND id= #{id} + + + + UPDATE TEA + SET quality= IFNULL(#{quantity}, quantity), + type = IFNULL(#{type}, type) + WHERE id=#{id} + + + + UPDATE TEA + SET + price = IFNULL(#{price}, price), + category = IFNULL(#{category}, category), + name = IFNULL(#{name}, name), + name_eng = IFNULL(#{nameEng}, name_eng), + caffeine = IFNULL(#{caffeine}, caffeine), + description = IFNULL(#{description}, description), + img = IFNULL(#{img}, img), + inventory = IFNULL(#{inventory}, inventory) + + WHERE 1=1 + AND id= #{id} + +