From bae62553434998cdfda34c23de0ce2de27586598 Mon Sep 17 00:00:00 2001 From: SeoJin Kim Date: Mon, 4 Oct 2021 15:26:42 +0900 Subject: [PATCH] =?UTF-8?q?[Spring][=EC=87=BC=ED=95=91=EB=AA=B0=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8][34]=20=EA=B2=80=EC=83=89?= =?UTF-8?q?=20=ED=95=84=ED=84=B0=EB=A7=81=20=EA=B8=B0=EB=8A=A5=20-=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://kimvampa.tistory.com/254 --- .../com/vam/controller/BookController.java | 7 ++ .../java/com/vam/service/BookService.java | 6 +- .../java/com/vam/service/BookServiceImpl.java | 36 ++++++++ .../com/vam/service/BookServiceTests.java | 86 +++++++++++++++++++ .../maven/com.vam/controller/pom.properties | 2 +- .../com/vam/controller/BookController.java | 7 ++ .../java/com/vam/service/BookService.java | 6 +- .../java/com/vam/service/BookServiceImpl.java | 35 ++++++++ .../com/vam/service/BookServiceTests.java | 84 ++++++++++++++++++ .../maven/com.vam/controller/pom.properties | 2 +- 10 files changed, 267 insertions(+), 4 deletions(-) create mode 100644 VamPa/src/test/java/com/vam/service/BookServiceTests.java create mode 100644 VamPa_MySQL/src/test/java/com/vam/service/BookServiceTests.java diff --git a/VamPa/src/main/java/com/vam/controller/BookController.java b/VamPa/src/main/java/com/vam/controller/BookController.java index 1c395ab..fe6a587 100644 --- a/VamPa/src/main/java/com/vam/controller/BookController.java +++ b/VamPa/src/main/java/com/vam/controller/BookController.java @@ -105,6 +105,13 @@ public class BookController { model.addAttribute("pageMaker", new PageDTO(cri, bookService.goodsGetTotal(cri))); + String[] typeArr = cri.getType().split(""); + + for(String s : typeArr) { + if(s.equals("T") || s.equals("A")) { + model.addAttribute("filter_info", bookService.getCateInfoList(cri)); + } + } return "search"; diff --git a/VamPa/src/main/java/com/vam/service/BookService.java b/VamPa/src/main/java/com/vam/service/BookService.java index 48f7b0f..4d41d0b 100644 --- a/VamPa/src/main/java/com/vam/service/BookService.java +++ b/VamPa/src/main/java/com/vam/service/BookService.java @@ -3,6 +3,7 @@ package com.vam.service; import java.util.List; import com.vam.model.BookVO; +import com.vam.model.CateFilterDTO; import com.vam.model.CateVO; import com.vam.model.Criteria; @@ -18,6 +19,9 @@ public interface BookService { public List getCateCode1(); /* 외국 카테고리 리스트 */ - public List getCateCode2(); + public List getCateCode2(); + + /* 검색결과 카테고리 필터 정보 */ + public List getCateInfoList(Criteria cri); } diff --git a/VamPa/src/main/java/com/vam/service/BookServiceImpl.java b/VamPa/src/main/java/com/vam/service/BookServiceImpl.java index bea696b..1900b4f 100644 --- a/VamPa/src/main/java/com/vam/service/BookServiceImpl.java +++ b/VamPa/src/main/java/com/vam/service/BookServiceImpl.java @@ -10,6 +10,7 @@ import com.vam.mapper.AttachMapper; import com.vam.mapper.BookMapper; import com.vam.model.AttachImageVO; import com.vam.model.BookVO; +import com.vam.model.CateFilterDTO; import com.vam.model.CateVO; import com.vam.model.Criteria; @@ -89,6 +90,41 @@ public class BookServiceImpl implements BookService{ log.info("getCateCode2()........."); return bookMapper.getCateCode2(); + } + + + /* 검색결과 카테고리 필터 정보 */ + @Override + public List getCateInfoList(Criteria cri) { + + List filterInfoList = new ArrayList(); + + String[] typeArr = cri.getType().split(""); + String [] authorArr; + + for(String type : typeArr) { + if(type.equals("A")){ + authorArr = bookMapper.getAuthorIdList(cri.getKeyword()); + if(authorArr.length == 0) { + return filterInfoList; + } + cri.setAuthorArr(authorArr); + } + } + + String[] cateList = bookMapper.getCateList(cri); + + String tempCateCode = cri.getCateCode(); + + for(String cateCode : cateList) { + cri.setCateCode(cateCode); + CateFilterDTO filterInfo = bookMapper.getCateInfo(cri); + filterInfoList.add(filterInfo); + } + + cri.setCateCode(tempCateCode); + + return filterInfoList; } } diff --git a/VamPa/src/test/java/com/vam/service/BookServiceTests.java b/VamPa/src/test/java/com/vam/service/BookServiceTests.java new file mode 100644 index 0000000..32459e1 --- /dev/null +++ b/VamPa/src/test/java/com/vam/service/BookServiceTests.java @@ -0,0 +1,86 @@ +package com.vam.service; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import com.vam.model.Criteria; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml") +public class BookServiceTests { + + @Autowired + BookService service; + + @Test + public void getCateInfoListTest1() { + Criteria cri = new Criteria(); + + String type = "TC"; + //String keyword = "테스트"; + String keyword = "없음"; + String cateCode="103002"; + + cri.setType(type); + cri.setKeyword(keyword); + cri.setCateCode(cateCode); + + System.out.println("List : " + service.getCateInfoList(cri)); + + } + + @Test + public void getCateInfoListTest2() { + Criteria cri = new Criteria(); + + String type = "AC"; + String keyword = "유홍준"; // 카테고리에 존재하는 작가 + //String keyword = "머스크"; // 카테고리에 존재하지 않는 작가 + String cateCode = "103002"; + + cri.setType(type); + cri.setKeyword(keyword); + cri.setCateCode(cateCode); + + System.out.println("List : " + service.getCateInfoList(cri)); + + } + + @Test + public void getCateInfoListTest3() { + Criteria cri = new Criteria(); + + String type = "T"; + String keyword = "테스트"; + //String keyword = "없음"; + + + cri.setType(type); + cri.setKeyword(keyword); + + System.out.println("List : " + service.getCateInfoList(cri)); + + } + + @Test + public void getCateInfoListTest4() { + Criteria cri = new Criteria(); + + String type = "AC"; + //String keyword = "유홍준"; // 카테고리에 존재하는 작가 + String keyword = "머스크"; // 카테고리에 존재하지 않는 작가 + + + cri.setType(type); + cri.setKeyword(keyword); + + System.out.println("List : " + service.getCateInfoList(cri)); + + } + + + +} diff --git a/VamPa/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties b/VamPa/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties index 2b6a9af..61718ee 100644 --- a/VamPa/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties +++ b/VamPa/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven Integration for Eclipse -#Mon Sep 27 14:58:55 KST 2021 +#Sun Oct 03 21:07:48 KST 2021 m2e.projectLocation=C\:\\Users\\sjinj\\git\\Blog_Project2\\VamPa m2e.projectName=VamPa groupId=com.vam diff --git a/VamPa_MySQL/src/main/java/com/vam/controller/BookController.java b/VamPa_MySQL/src/main/java/com/vam/controller/BookController.java index e39146d..d87e312 100644 --- a/VamPa_MySQL/src/main/java/com/vam/controller/BookController.java +++ b/VamPa_MySQL/src/main/java/com/vam/controller/BookController.java @@ -105,6 +105,13 @@ public class BookController { model.addAttribute("pageMaker", new PageDTO(cri, bookService.goodsGetTotal(cri))); + String[] typeArr = cri.getType().split(""); + + for(String s : typeArr) { + if(s.equals("T") || s.equals("A")) { + model.addAttribute("filter_info", bookService.getCateInfoList(cri)); + } + } return "search"; diff --git a/VamPa_MySQL/src/main/java/com/vam/service/BookService.java b/VamPa_MySQL/src/main/java/com/vam/service/BookService.java index a2999e3..833338b 100644 --- a/VamPa_MySQL/src/main/java/com/vam/service/BookService.java +++ b/VamPa_MySQL/src/main/java/com/vam/service/BookService.java @@ -3,6 +3,7 @@ package com.vam.service; import java.util.List; import com.vam.model.BookVO; +import com.vam.model.CateFilterDTO; import com.vam.model.CateVO; import com.vam.model.Criteria; @@ -18,6 +19,9 @@ public interface BookService { public List getCateCode1(); /* 외국 카테고리 리스트 */ - public List getCateCode2(); + public List getCateCode2(); + + /* 검색결과 카테고리 필터 정보 */ + public List getCateInfoList(Criteria cri); } diff --git a/VamPa_MySQL/src/main/java/com/vam/service/BookServiceImpl.java b/VamPa_MySQL/src/main/java/com/vam/service/BookServiceImpl.java index efdc94f..eb7be49 100644 --- a/VamPa_MySQL/src/main/java/com/vam/service/BookServiceImpl.java +++ b/VamPa_MySQL/src/main/java/com/vam/service/BookServiceImpl.java @@ -10,6 +10,7 @@ import com.vam.mapper.AttachMapper; import com.vam.mapper.BookMapper; import com.vam.model.AttachImageVO; import com.vam.model.BookVO; +import com.vam.model.CateFilterDTO; import com.vam.model.CateVO; import com.vam.model.Criteria; @@ -91,4 +92,38 @@ public class BookServiceImpl implements BookService{ return bookMapper.getCateCode2(); } + /* 검색결과 카테고리 필터 정보 */ + @Override + public List getCateInfoList(Criteria cri) { + + List filterInfoList = new ArrayList(); + + String[] typeArr = cri.getType().split(""); + String [] authorArr; + + for(String type : typeArr) { + if(type.equals("A")){ + authorArr = bookMapper.getAuthorIdList(cri.getKeyword()); + if(authorArr.length == 0) { + return filterInfoList; + } + cri.setAuthorArr(authorArr); + } + } + + String[] cateList = bookMapper.getCateList(cri); + + String tempCateCode = cri.getCateCode(); + + for(String cateCode : cateList) { + cri.setCateCode(cateCode); + CateFilterDTO filterInfo = bookMapper.getCateInfo(cri); + filterInfoList.add(filterInfo); + } + + cri.setCateCode(tempCateCode); + + return filterInfoList; + } + } diff --git a/VamPa_MySQL/src/test/java/com/vam/service/BookServiceTests.java b/VamPa_MySQL/src/test/java/com/vam/service/BookServiceTests.java new file mode 100644 index 0000000..f4b0ab1 --- /dev/null +++ b/VamPa_MySQL/src/test/java/com/vam/service/BookServiceTests.java @@ -0,0 +1,84 @@ +package com.vam.service; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import com.vam.model.Criteria; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml") +public class BookServiceTests { + + @Autowired + BookService service; + + @Test + public void getCateInfoListTest1() { + Criteria cri = new Criteria(); + + String type = "TC"; + //String keyword = "테스트"; + String keyword = "없음"; + String cateCode="103002"; + + cri.setType(type); + cri.setKeyword(keyword); + cri.setCateCode(cateCode); + + System.out.println("List : " + service.getCateInfoList(cri)); + + } + + @Test + public void getCateInfoListTest2() { + Criteria cri = new Criteria(); + + String type = "AC"; + String keyword = "유홍준"; // 카테고리에 존재하는 작가 + //String keyword = "머스크"; // 카테고리에 존재하지 않는 작가 + String cateCode = "103002"; + + cri.setType(type); + cri.setKeyword(keyword); + cri.setCateCode(cateCode); + + System.out.println("List : " + service.getCateInfoList(cri)); + + } + + @Test + public void getCateInfoListTest3() { + Criteria cri = new Criteria(); + + String type = "T"; + String keyword = "테스트"; + //String keyword = "없음"; + + + cri.setType(type); + cri.setKeyword(keyword); + + System.out.println("List : " + service.getCateInfoList(cri)); + + } + + @Test + public void getCateInfoListTest4() { + Criteria cri = new Criteria(); + + String type = "AC"; + //String keyword = "유홍준"; // 카테고리에 존재하는 작가 + String keyword = "머스크"; // 카테고리에 존재하지 않는 작가 + + + cri.setType(type); + cri.setKeyword(keyword); + + System.out.println("List : " + service.getCateInfoList(cri)); + + } + +} diff --git a/VamPa_MySQL/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties b/VamPa_MySQL/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties index ae2a2a5..ce7d0a6 100644 --- a/VamPa_MySQL/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties +++ b/VamPa_MySQL/target/m2e-wtp/web-resources/META-INF/maven/com.vam/controller/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven Integration for Eclipse -#Mon Sep 27 14:58:56 KST 2021 +#Sun Oct 03 21:07:49 KST 2021 m2e.projectLocation=C\:\\Users\\sjinj\\git\\Blog_Project2\\VamPa_MySQL m2e.projectName=VamPa_MySQL groupId=com.vam