From 72d4abcb910e04d452c1507bfa60698119d56243 Mon Sep 17 00:00:00 2001 From: SeoJin Kim Date: Sun, 9 Jan 2022 03:50:19 +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][46]=20=EB=8C=93=EA=B8=80?= =?UTF-8?q?=20=ED=8E=98=EC=9D=B4=EC=A7=95=20-=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://kimvampa.tistory.com/293 --- .../com/vam/controller/ReplyController.java | 10 ++++++ .../main/java/com/vam/mapper/ReplyMapper.java | 9 ++++++ .../src/main/java/com/vam/model/Criteria.java | 15 ++++++++- .../main/java/com/vam/model/ReplyPageDTO.java | 32 +++++++++++++++++++ .../java/com/vam/service/ReplyService.java | 5 +++ .../com/vam/service/ReplyServiceImpl.java | 13 ++++++++ .../resources/com/vam/mapper/ReplyMapper.xml | 24 ++++++++++++++ .../classes/com/vam/mapper/ReplyMapper.xml | 24 ++++++++++++++ .../com/vam/controller/ReplyController.java | 10 ++++++ .../main/java/com/vam/mapper/ReplyMapper.java | 9 ++++++ .../src/main/java/com/vam/model/Criteria.java | 18 +++++++++-- .../main/java/com/vam/model/ReplyPageDTO.java | 32 +++++++++++++++++++ .../java/com/vam/service/ReplyService.java | 5 +++ .../com/vam/service/ReplyServiceImpl.java | 15 ++++++++- .../resources/com/vam/mapper/ReplyMapper.xml | 19 +++++++++++ .../classes/com/vam/mapper/ReplyMapper.xml | 19 +++++++++++ 16 files changed, 255 insertions(+), 4 deletions(-) create mode 100644 VamPa/src/main/java/com/vam/model/ReplyPageDTO.java create mode 100644 VamPa_MySQL/src/main/java/com/vam/model/ReplyPageDTO.java diff --git a/VamPa/src/main/java/com/vam/controller/ReplyController.java b/VamPa/src/main/java/com/vam/controller/ReplyController.java index 9534a23..88cfa4d 100644 --- a/VamPa/src/main/java/com/vam/controller/ReplyController.java +++ b/VamPa/src/main/java/com/vam/controller/ReplyController.java @@ -1,11 +1,15 @@ package com.vam.controller; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import com.vam.model.Criteria; import com.vam.model.ReplyDTO; +import com.vam.model.ReplyPageDTO; import com.vam.service.ReplyService; @RestController @@ -29,4 +33,10 @@ public class ReplyController { return replyService.checkReply(dto); } + /* 댓글 페이징 */ + @GetMapping(value="/list", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) + public ReplyPageDTO replyListPOST(Criteria cri) { + return replyService.replyList(cri); + } + } diff --git a/VamPa/src/main/java/com/vam/mapper/ReplyMapper.java b/VamPa/src/main/java/com/vam/mapper/ReplyMapper.java index f1665d1..bd5efd4 100644 --- a/VamPa/src/main/java/com/vam/mapper/ReplyMapper.java +++ b/VamPa/src/main/java/com/vam/mapper/ReplyMapper.java @@ -1,5 +1,8 @@ package com.vam.mapper; +import java.util.List; + +import com.vam.model.Criteria; import com.vam.model.ReplyDTO; public interface ReplyMapper { @@ -10,4 +13,10 @@ public interface ReplyMapper { /* 댓글 존재 체크 */ public Integer checkReply(ReplyDTO dto); + /* 댓글 페이징 */ + public List getReplyList(Criteria cri); + + /* 댓글 총 갯수(페이징) */ + public int getReplyTotal(int bookId); + } diff --git a/VamPa/src/main/java/com/vam/model/Criteria.java b/VamPa/src/main/java/com/vam/model/Criteria.java index c510e11..9a53721 100644 --- a/VamPa/src/main/java/com/vam/model/Criteria.java +++ b/VamPa/src/main/java/com/vam/model/Criteria.java @@ -22,6 +22,9 @@ public class Criteria { /* 카테고리 코드 */ private String cateCode; + /* 상품 번호(댓글 기능에서 사용) */ + private int bookId; + /* Criteria 생성자 */ public Criteria(int pageNum, int amount) { this.pageNum = pageNum; @@ -85,13 +88,23 @@ public class Criteria { public void setCateCode(String cateCode) { this.cateCode = cateCode; } + + public int getBookId() { + return bookId; + } + + public void setBookId(int bookId) { + this.bookId = bookId; + } @Override public String toString() { return "Criteria [pageNum=" + pageNum + ", amount=" + amount + ", type=" + type + ", keyword=" + keyword - + ", authorArr=" + Arrays.toString(authorArr) + ", cateCode=" + cateCode + "]"; + + ", authorArr=" + Arrays.toString(authorArr) + ", cateCode=" + cateCode + ", bookId=" + bookId + "]"; } + + } diff --git a/VamPa/src/main/java/com/vam/model/ReplyPageDTO.java b/VamPa/src/main/java/com/vam/model/ReplyPageDTO.java new file mode 100644 index 0000000..2350b08 --- /dev/null +++ b/VamPa/src/main/java/com/vam/model/ReplyPageDTO.java @@ -0,0 +1,32 @@ +package com.vam.model; + +import java.util.List; + +public class ReplyPageDTO { + + List list; + + PageDTO pageInfo; + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + + public PageDTO getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageDTO pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "ReplyPageDTO [list=" + list + ", pageInfo=" + pageInfo + "]"; + } + +} diff --git a/VamPa/src/main/java/com/vam/service/ReplyService.java b/VamPa/src/main/java/com/vam/service/ReplyService.java index 89ef5a0..76e8455 100644 --- a/VamPa/src/main/java/com/vam/service/ReplyService.java +++ b/VamPa/src/main/java/com/vam/service/ReplyService.java @@ -1,6 +1,8 @@ package com.vam.service; +import com.vam.model.Criteria; import com.vam.model.ReplyDTO; +import com.vam.model.ReplyPageDTO; public interface ReplyService { @@ -10,4 +12,7 @@ public interface ReplyService { /* 댓글 존재 체크 */ public String checkReply(ReplyDTO dto); + /* 댓글 페이징 */ + public ReplyPageDTO replyList(Criteria cri); + } diff --git a/VamPa/src/main/java/com/vam/service/ReplyServiceImpl.java b/VamPa/src/main/java/com/vam/service/ReplyServiceImpl.java index 2a1b654..52af9cf 100644 --- a/VamPa/src/main/java/com/vam/service/ReplyServiceImpl.java +++ b/VamPa/src/main/java/com/vam/service/ReplyServiceImpl.java @@ -4,7 +4,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.vam.mapper.ReplyMapper; +import com.vam.model.Criteria; +import com.vam.model.PageDTO; import com.vam.model.ReplyDTO; +import com.vam.model.ReplyPageDTO; @Service public class ReplyServiceImpl implements ReplyService{ @@ -36,5 +39,15 @@ public class ReplyServiceImpl implements ReplyService{ } + @Override + public ReplyPageDTO replyList(Criteria cri) { + ReplyPageDTO dto = new ReplyPageDTO(); + + dto.setList(replyMapper.getReplyList(cri)); + dto.setPageInfo(new PageDTO(cri, replyMapper.getReplyTotal(cri.getBookId()))); + + return dto; + } + } diff --git a/VamPa/src/main/resources/com/vam/mapper/ReplyMapper.xml b/VamPa/src/main/resources/com/vam/mapper/ReplyMapper.xml index 03ad494..2ceeba3 100644 --- a/VamPa/src/main/resources/com/vam/mapper/ReplyMapper.xml +++ b/VamPa/src/main/resources/com/vam/mapper/ReplyMapper.xml @@ -17,5 +17,29 @@ where memberId = #{memberId} and bookId = #{bookId} + + + + + + \ No newline at end of file diff --git a/VamPa/target/classes/com/vam/mapper/ReplyMapper.xml b/VamPa/target/classes/com/vam/mapper/ReplyMapper.xml index 03ad494..2ceeba3 100644 --- a/VamPa/target/classes/com/vam/mapper/ReplyMapper.xml +++ b/VamPa/target/classes/com/vam/mapper/ReplyMapper.xml @@ -17,5 +17,29 @@ where memberId = #{memberId} and bookId = #{bookId} + + + + + + \ No newline at end of file diff --git a/VamPa_MySQL/src/main/java/com/vam/controller/ReplyController.java b/VamPa_MySQL/src/main/java/com/vam/controller/ReplyController.java index 1c3fac2..5511c46 100644 --- a/VamPa_MySQL/src/main/java/com/vam/controller/ReplyController.java +++ b/VamPa_MySQL/src/main/java/com/vam/controller/ReplyController.java @@ -1,11 +1,15 @@ package com.vam.controller; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import com.vam.model.Criteria; import com.vam.model.ReplyDTO; +import com.vam.model.ReplyPageDTO; import com.vam.service.ReplyService; @RestController @@ -29,4 +33,10 @@ public class ReplyController { return replyService.checkReply(dto); } + /* 댓글 페이징 */ + @GetMapping(value="/list", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) + public ReplyPageDTO replyListPOST(Criteria cri) { + return replyService.replyList(cri); + } + } diff --git a/VamPa_MySQL/src/main/java/com/vam/mapper/ReplyMapper.java b/VamPa_MySQL/src/main/java/com/vam/mapper/ReplyMapper.java index a2f0f8a..c69af85 100644 --- a/VamPa_MySQL/src/main/java/com/vam/mapper/ReplyMapper.java +++ b/VamPa_MySQL/src/main/java/com/vam/mapper/ReplyMapper.java @@ -1,5 +1,8 @@ package com.vam.mapper; +import java.util.List; + +import com.vam.model.Criteria; import com.vam.model.ReplyDTO; public interface ReplyMapper { @@ -10,4 +13,10 @@ public interface ReplyMapper { /* 댓글 존재 체크 */ public Integer checkReply(ReplyDTO dto); + /* 댓글 페이징 */ + public List getReplyList(Criteria cri); + + /* 댓글 총 갯수(페이징) */ + public int getReplyTotal(int bookId); + } diff --git a/VamPa_MySQL/src/main/java/com/vam/model/Criteria.java b/VamPa_MySQL/src/main/java/com/vam/model/Criteria.java index f71b395..69e7641 100644 --- a/VamPa_MySQL/src/main/java/com/vam/model/Criteria.java +++ b/VamPa_MySQL/src/main/java/com/vam/model/Criteria.java @@ -25,6 +25,9 @@ public class Criteria { /* 카테고리 코드 */ private String cateCode; + /* 상품 번호(댓글 기능에서 사용) */ + private int bookId; + /* Criteria 생성자 */ public Criteria(int pageNum, int amount) { this.pageNum = pageNum; @@ -101,11 +104,22 @@ public class Criteria { this.cateCode = cateCode; } + public int getBookId() { + return bookId; + } + + public void setBookId(int bookId) { + this.bookId = bookId; + } + @Override public String toString() { - return "Criteria [pageNum=" + pageNum + ", amount=" + amount + ", type=" + type + ", keyword=" + keyword - + ", authorArr=" + Arrays.toString(authorArr) + ", cateCode=" + cateCode + "]"; + return "Criteria [pageNum=" + pageNum + ", amount=" + amount + ", skip=" + skip + ", type=" + type + + ", keyword=" + keyword + ", authorArr=" + Arrays.toString(authorArr) + ", cateCode=" + cateCode + + ", bookId=" + bookId + "]"; } + + } diff --git a/VamPa_MySQL/src/main/java/com/vam/model/ReplyPageDTO.java b/VamPa_MySQL/src/main/java/com/vam/model/ReplyPageDTO.java new file mode 100644 index 0000000..19ac1d6 --- /dev/null +++ b/VamPa_MySQL/src/main/java/com/vam/model/ReplyPageDTO.java @@ -0,0 +1,32 @@ +package com.vam.model; + +import java.util.List; + +public class ReplyPageDTO { + + List list; + + PageDTO pageInfo; + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + + public PageDTO getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageDTO pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "ReplyPageDTO [list=" + list + ", pageInfo=" + pageInfo + "]"; + } + +} diff --git a/VamPa_MySQL/src/main/java/com/vam/service/ReplyService.java b/VamPa_MySQL/src/main/java/com/vam/service/ReplyService.java index 932d128..882d922 100644 --- a/VamPa_MySQL/src/main/java/com/vam/service/ReplyService.java +++ b/VamPa_MySQL/src/main/java/com/vam/service/ReplyService.java @@ -1,6 +1,8 @@ package com.vam.service; +import com.vam.model.Criteria; import com.vam.model.ReplyDTO; +import com.vam.model.ReplyPageDTO; public interface ReplyService { @@ -9,5 +11,8 @@ public interface ReplyService { /* 댓글 존재 체크 */ public String checkReply(ReplyDTO dto); + + /* 댓글 페이징 */ + public ReplyPageDTO replyList(Criteria cri); } diff --git a/VamPa_MySQL/src/main/java/com/vam/service/ReplyServiceImpl.java b/VamPa_MySQL/src/main/java/com/vam/service/ReplyServiceImpl.java index 038a915..87e6158 100644 --- a/VamPa_MySQL/src/main/java/com/vam/service/ReplyServiceImpl.java +++ b/VamPa_MySQL/src/main/java/com/vam/service/ReplyServiceImpl.java @@ -4,7 +4,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.vam.mapper.ReplyMapper; +import com.vam.model.Criteria; +import com.vam.model.PageDTO; import com.vam.model.ReplyDTO; +import com.vam.model.ReplyPageDTO; @Service public class ReplyServiceImpl implements ReplyService{ @@ -33,6 +36,16 @@ public class ReplyServiceImpl implements ReplyService{ return "1"; } - } + } + + @Override + public ReplyPageDTO replyList(Criteria cri) { + ReplyPageDTO dto = new ReplyPageDTO(); + + dto.setList(replyMapper.getReplyList(cri)); + dto.setPageInfo(new PageDTO(cri, replyMapper.getReplyTotal(cri.getBookId()))); + + return dto; + } } diff --git a/VamPa_MySQL/src/main/resources/com/vam/mapper/ReplyMapper.xml b/VamPa_MySQL/src/main/resources/com/vam/mapper/ReplyMapper.xml index 39830ab..c6cc6ee 100644 --- a/VamPa_MySQL/src/main/resources/com/vam/mapper/ReplyMapper.xml +++ b/VamPa_MySQL/src/main/resources/com/vam/mapper/ReplyMapper.xml @@ -17,5 +17,24 @@ where memberId = #{memberId} and bookId = #{bookId} + + + + + \ No newline at end of file diff --git a/VamPa_MySQL/target/classes/com/vam/mapper/ReplyMapper.xml b/VamPa_MySQL/target/classes/com/vam/mapper/ReplyMapper.xml index 39830ab..c6cc6ee 100644 --- a/VamPa_MySQL/target/classes/com/vam/mapper/ReplyMapper.xml +++ b/VamPa_MySQL/target/classes/com/vam/mapper/ReplyMapper.xml @@ -17,5 +17,24 @@ where memberId = #{memberId} and bookId = #{bookId} + + + + + \ No newline at end of file