From 46bd508b8edd6a7976d2d2556612e3a632db31e1 Mon Sep 17 00:00:00 2001 From: kimjhjjang Date: Thu, 3 Nov 2022 17:36:23 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=B5=EC=A7=80=EC=82=AC=ED=95=AD=20?= =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C=20=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20FAQ=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EA=B0=9C=EB=B0=9C=20=EC=A7=84=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/NavBar.vue | 6 +- .../src/modules/homeMgt/components/FaqPop.vue | 480 +++++++++++++++++ .../homeMgt/components/FaqUpdatePop.vue | 497 ++++++++++++++++++ .../homeMgt/components/NoticeUpdatePop.vue | 6 +- .../components/ValidationConfirmPopup.vue | 84 +++ frontend/src/modules/homeMgt/router/index.js | 8 + .../src/modules/homeMgt/service/homeMgtApi.js | 18 + frontend/src/modules/homeMgt/views/faq.vue | 266 ++++++++++ frontend/src/modules/homeMgt/views/notice.vue | 7 +- frontend/src/router.js | 2 +- .../ez/api/homeMgt/HomeMgtController.java | 93 +++- .../uplus/ez/api/homeMgt/HomeMgtMapper.java | 12 + .../uplus/ez/api/homeMgt/HomeMgtService.java | 107 ++++ .../uplus/ez/api/homeMgt/dto/DeleteFaq.java | 15 + .../ez/api/homeMgt/dto/DeleteFaqReqDto.java | 14 + .../ez/api/homeMgt/dto/DeleteFaqResDto.java | 31 ++ .../co/uplus/ez/api/homeMgt/dto/FaqDto.java | 54 ++ .../ez/api/homeMgt/dto/FaqListReqDto.java | 50 ++ .../uplus/ez/api/homeMgt/dto/FaqListRes.java | 15 + .../ez/api/homeMgt/dto/FaqListResDto.java | 30 ++ .../ez/api/homeMgt/dto/InsertFaqReqDto.java | 30 ++ .../ez/api/homeMgt/dto/InsertFaqResDto.java | 31 ++ .../ez/api/homeMgt/dto/UpdateFaqReqDto.java | 29 + .../ez/api/homeMgt/dto/UpdateFaqResDto.java | 30 ++ .../mapper/mysql/homeMgt/homeMgt-mapper.xml | 133 ++++- 25 files changed, 2027 insertions(+), 21 deletions(-) create mode 100644 frontend/src/modules/homeMgt/components/FaqPop.vue create mode 100644 frontend/src/modules/homeMgt/components/FaqUpdatePop.vue create mode 100644 frontend/src/modules/homeMgt/views/faq.vue create mode 100644 src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaq.java create mode 100644 src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaqReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaqResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListRes.java create mode 100644 src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/homeMgt/dto/InsertFaqReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/homeMgt/dto/InsertFaqResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/homeMgt/dto/UpdateFaqReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/homeMgt/dto/UpdateFaqResDto.java diff --git a/frontend/src/components/NavBar.vue b/frontend/src/components/NavBar.vue index e7ea20b..ff5c070 100644 --- a/frontend/src/components/NavBar.vue +++ b/frontend/src/components/NavBar.vue @@ -22,6 +22,9 @@
  • 공지사항
  • +
  • + 자주하는 질문 +
  • @@ -175,7 +178,8 @@ export default { this.menuList = null; } }) - .catch((rsponse) => { + .catch((response) => { + console.log(response); this.menuList = null; }); }, diff --git a/frontend/src/modules/homeMgt/components/FaqPop.vue b/frontend/src/modules/homeMgt/components/FaqPop.vue new file mode 100644 index 0000000..e2094e0 --- /dev/null +++ b/frontend/src/modules/homeMgt/components/FaqPop.vue @@ -0,0 +1,480 @@ + + + + diff --git a/frontend/src/modules/homeMgt/components/FaqUpdatePop.vue b/frontend/src/modules/homeMgt/components/FaqUpdatePop.vue new file mode 100644 index 0000000..0521827 --- /dev/null +++ b/frontend/src/modules/homeMgt/components/FaqUpdatePop.vue @@ -0,0 +1,497 @@ + + + + diff --git a/frontend/src/modules/homeMgt/components/NoticeUpdatePop.vue b/frontend/src/modules/homeMgt/components/NoticeUpdatePop.vue index 5eeea7a..87d49fb 100644 --- a/frontend/src/modules/homeMgt/components/NoticeUpdatePop.vue +++ b/frontend/src/modules/homeMgt/components/NoticeUpdatePop.vue @@ -95,11 +95,9 @@ href="javascript:void(0);" v-if="item.filePath" @click="download(item.filePath, item.fileName, item.name)" - >{{ item.name }} (다운로드가능){{ item.name }} -

    - {{ index + 1 }}. {{ item.name }} {{ item.fileNo ? `(${item.fileNo})` : '' }} -

    +

    {{ item.name }} {{ item.fileNo ? `(${item.fileNo})` : '' }}

    diff --git a/frontend/src/modules/homeMgt/components/ValidationConfirmPopup.vue b/frontend/src/modules/homeMgt/components/ValidationConfirmPopup.vue index 0c0468d..8aaf99f 100644 --- a/frontend/src/modules/homeMgt/components/ValidationConfirmPopup.vue +++ b/frontend/src/modules/homeMgt/components/ValidationConfirmPopup.vue @@ -53,6 +53,40 @@ + + +
    + + + +
    + @@ -154,6 +188,56 @@ export default { dimmed[i].style.display = 'none'; } }, + + /* **************************************************************************************** */ + + //자주묻는 질문 등록 팝업 + confirmInsertFaqOpen() { + var dimmed = document.getElementsByClassName('confirm-insert-faq'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'block'; + } + }, + //자주묻는 질문 등록 + confirmInsertFaq() { + var dimmed = document.getElementsByClassName('confirm-insert-faq'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + + this.$parent.insertFaq(); + }, + //자주묻는 질문 등록 팝업 Close + confirmInsertFaqClose() { + var dimmed = document.getElementsByClassName('confirm-insert-faq'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + }, + + //자주묻는 질문 수정 팝업 + confirmUpdateFaqOpen() { + var dimmed = document.getElementsByClassName('confirm-update-faq'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'block'; + } + }, + //자주묻는 질문 수정 + confirmUpdateFaq() { + var dimmed = document.getElementsByClassName('confirm-update-faq'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + + this.$parent.updateFaq(); + }, + //자주묻는 질문 수정 팝업 Close + confirmUpdateFaqClose() { + var dimmed = document.getElementsByClassName('confirm-update-faq'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + }, }, }; diff --git a/frontend/src/modules/homeMgt/router/index.js b/frontend/src/modules/homeMgt/router/index.js index 710a6e2..6891988 100644 --- a/frontend/src/modules/homeMgt/router/index.js +++ b/frontend/src/modules/homeMgt/router/index.js @@ -1,4 +1,5 @@ import Notice from '../views/notice'; +import Faq from '../views/faq'; export default [ { @@ -8,4 +9,11 @@ export default [ props: true, meta: { public: false }, }, + { + path: '/homeMgt/faq', + component: Faq, + name: 'faq', + props: true, + meta: { public: false }, + }, ]; diff --git a/frontend/src/modules/homeMgt/service/homeMgtApi.js b/frontend/src/modules/homeMgt/service/homeMgtApi.js index 749d2d2..7524922 100644 --- a/frontend/src/modules/homeMgt/service/homeMgtApi.js +++ b/frontend/src/modules/homeMgt/service/homeMgtApi.js @@ -20,6 +20,21 @@ const deleteNotice = (params) => { return httpClient.post('/api/v1/bo/homeMgt/deleteNotice', params, { withCredentials: false }); }; +// 자주묻는 질문 등록 +const insertFaq = (params) => { + return httpClient.post('/api/v1/bo/homeMgt/insertFaq', params, { withCredentials: false }); +}; + +// 자주묻는 질문 수정 +const updateFaq = (params) => { + return httpClient.post('/api/v1/bo/homeMgt/updateFaq', params, { withCredentials: false }); +}; + +// 자주묻는 질문 삭제 +const deleteFaq = (params) => { + return httpClient.post('/api/v1/bo/homeMgt/deleteFaq', params, { withCredentials: false }); +}; + const getImageUrl = (params) => { return httpClient.post('/api/v1/bo/homeMgt/getImageUrl', params, { headers: { @@ -64,4 +79,7 @@ export default { deleteNotice, fileDownload, getImageUrl, + insertFaq, + updateFaq, + deleteFaq, }; diff --git a/frontend/src/modules/homeMgt/views/faq.vue b/frontend/src/modules/homeMgt/views/faq.vue new file mode 100644 index 0000000..1c98cce --- /dev/null +++ b/frontend/src/modules/homeMgt/views/faq.vue @@ -0,0 +1,266 @@ + + diff --git a/frontend/src/modules/homeMgt/views/notice.vue b/frontend/src/modules/homeMgt/views/notice.vue index 0f0737e..77d8299 100644 --- a/frontend/src/modules/homeMgt/views/notice.vue +++ b/frontend/src/modules/homeMgt/views/notice.vue @@ -2,7 +2,7 @@
    -

    홈페이지 관리

    +

    공지사항

    @@ -125,14 +125,12 @@ export default { columns: [ { name: 'no', header: 'No', align: 'center', width: '5%' }, - { name: 'ntNo', header: 'ntNo', align: 'center', width: '5%' }, { name: 'ctgCdNm', header: '분류코드명', align: 'center', width: '10%' }, - { name: 'emgYn', header: '긴급여부(Y/N)', align: 'center', width: '10%' }, { name: 'title', header: '제목', align: 'left', - width: '50%', + width: '45%', renderer: { type: CustomATagRenderer, options: { @@ -140,6 +138,7 @@ export default { }, }, }, + { name: 'emgYn', header: '긴급여부(Y/N)', align: 'center', width: '10%' }, { name: 'fileYn', header: '파일유무', align: 'center', width: '5%' }, { name: 'useYn', header: '사용여부', align: 'center', width: '5%' }, { name: 'regr', header: '등록자', align: 'center', width: '10%' }, diff --git a/frontend/src/router.js b/frontend/src/router.js index 8d3b4fc..f608140 100644 --- a/frontend/src/router.js +++ b/frontend/src/router.js @@ -181,7 +181,7 @@ router.beforeEach((to, from, next) => { } // url 홈페이지 관리 - if (nextUrl == '/homeMgt/notice') { + if (nextUrl == '/homeMgt/notice' || nextUrl == '/homeMgt/faq') { moveFlag = true; } diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtController.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtController.java index 5f640f1..e865b58 100644 --- a/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtController.java +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtController.java @@ -137,7 +137,7 @@ public class HomeMgtController { @RequestMapping(value = "/getImageUrl", method = { RequestMethod.POST }) @ResponseBody public FileResDto fileResDto(MultipartHttpServletRequest multipartRequest) { - + return homeService.fileResDto(multipartRequest); } @@ -158,7 +158,14 @@ public class HomeMgtController { FileIoUtils.fileDownload(file, request, response); } } - + + /** + * date : 2022. 11. 02. + * auth : kjh + * desc : 이미지 미리보기. + * @param imgurl + * @return imgurl + */ @ApiOperation(value = "이미지 미리보기", notes = "이미지 미리보기") @GetMapping(value = "/preview/{imgurl}", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) public ResponseEntity previewImageResource(@PathVariable @ApiParam(value = "이미지 경로") String imgurl) { @@ -189,4 +196,86 @@ public class HomeMgtController { return new ResponseEntity(HttpStatus.NOT_FOUND); } } + + /** + * date : 2022. 11. 03. + * auth : kjh + * desc : FAQ 조회. + * @param faqListReqDto + * @return FaqListResDto + */ + @ApiOperation(value = "/faqList", notes = "자주묻는 질문 조회") + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "/faqList", method = { RequestMethod.POST }) + @ResponseBody + public FaqListResDto faqList(@RequestBody @Valid FaqListReqDto faqListReqDto, + BindingResult bindingResult, HttpServletResponse response) { + + if (validComponents.validParameter(bindingResult)) { + return new FaqListResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + + return homeService.faqList(faqListReqDto); + } + + /** + * date : 2022. 11. 03. + * auth : kjh + * desc : FAQ 등록. + * @param insertFaqReqDto + * @return InsertFaqResDto + */ + @ApiOperation(value = "/insertFaq", notes = "자주묻는 질문 등록") + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "/insertFaq", method = { RequestMethod.POST }) + @ResponseBody + public InsertFaqResDto insertFaq(@RequestBody @Valid InsertFaqReqDto insertFaqReqDto, BindingResult bindingResult) { + + System.out.println("insertFaqReqDto ::::" + insertFaqReqDto); + + if (validComponents.validParameter(bindingResult)) { + return new InsertFaqResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + + return homeService.insertFaq(insertFaqReqDto); + } + + /** + * date : 2022. 11. 03. + * auth : kjh + * desc : FAQ 수정. + * @param updateFaqReqDto + * @return UpdateFaqResDto + */ + @ApiOperation(value = "/updateFaq", notes = "자주묻는 질문 등록") + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "/updateFaq", method = { RequestMethod.POST }) + @ResponseBody + public UpdateFaqResDto updateFaq(@RequestBody @Valid UpdateFaqReqDto updateFaqReqDto, BindingResult bindingResult) { + + if (validComponents.validParameter(bindingResult)) { + return new UpdateFaqResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + + return homeService.updateFaq(updateFaqReqDto); + } + + /** + * date : 2022. 11. 03. + * auth : kjh + * desc : FAQ 삭제. + * @param deleteFaqReqDto + * @return DeleteFaqResDto + */ + @ApiOperation(value = "/deleteFaq", notes = "공지사항 삭제") + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "/deleteFaq", method = { RequestMethod.POST }) + @ResponseBody + public DeleteFaqResDto deleteFaq(@RequestBody @Valid DeleteFaqReqDto deleteFaqReqDto, BindingResult bindingResult) { + if (validComponents.validParameter(bindingResult)) { + return new DeleteFaqResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + + return homeService.deleteFaq(deleteFaqReqDto); + } } diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtMapper.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtMapper.java index ef4d2f2..5f41064 100644 --- a/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtMapper.java +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtMapper.java @@ -29,4 +29,16 @@ public interface HomeMgtMapper { int deleteNotice(DeleteNoticeReqDto deleteNoticeReqDto); + int selectFaqTotalCnt(FaqListReqDto faqListReqDto); + + List selectFaqList(FaqListReqDto faqListReqDto); + + int selectFaqNumber(FaqListReqDto faqListReqDto); + + void insertFaq(InsertFaqReqDto insertFaqReqDto); + + int updateFaq(UpdateFaqReqDto updateFaqReqDto); + + int deleteFaq(DeleteFaqReqDto deleteFaqReqDto); + } diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtService.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtService.java index 5957fe9..0f800f3 100644 --- a/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtService.java +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/HomeMgtService.java @@ -288,4 +288,111 @@ public class HomeMgtService { return new DeleteNoticeResDto(ApiResponseCode.SUCCESS); } + /** + * date : 2022. 11. 03. + * auth : kjh + * desc : faq 목록 조회 + * @param faqListReqDto + * @return FaqListResDto + */ + public FaqListResDto faqList(FaqListReqDto faqListReqDto) { + + HomeMgtMapper homeMgtMapper = sqlSessionSlave.getMapper(HomeMgtMapper.class); + + String nowPage = String.valueOf(faqListReqDto.getPage()); + int totalCnt = homeMgtMapper.selectFaqTotalCnt(faqListReqDto); + + + if(totalCnt == 0) { + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + FaqListRes faqListRes = new FaqListRes(); + faqListRes.setList(new ArrayList<>()); + faqListRes.setPaging(paging); + return new FaqListResDto(ApiResponseCode.CM_NOT_FOUND, faqListRes); + } + + int page = faqListReqDto.getPage(); + int pagePerRows = faqListReqDto.getPagePerRows(); + page = (page -1) * pagePerRows; + faqListReqDto.setPage(page); + + List faqDto = homeMgtMapper.selectFaqList(faqListReqDto); + + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + + FaqListRes faqListRes = new FaqListRes(); + faqListRes.setList(faqDto); + faqListRes.setPaging(paging); + + return new FaqListResDto(ApiResponseCode.SUCCESS, faqListRes); + } + + /** + * date : 2022. 11. 03. + * auth : kjh + * desc : FAQ 등록 + * @param insertFaqReqDto + * @return InsertFaqResDto + */ + public InsertFaqResDto insertFaq(InsertFaqReqDto insertFaqReqDto) { + + HomeMgtMapper homeMgtMapper = sqlSessionSlave.getMapper(HomeMgtMapper.class); + + //공지사항 등록 + try { + insertFaqReqDto.setFaqSbst(insertFaqReqDto.getFaqSbst().replaceAll("\\n", "
    ")); + homeMgtMapper.insertFaq(insertFaqReqDto); + }catch(Exception e){ + return new InsertFaqResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } + + return new InsertFaqResDto(ApiResponseCode.SUCCESS); + } + + /** + * date : 2022. 11. 03. + * auth : kjh + * desc : FAQ 수정 + * @param updateFaqReqDto + * @return UpdateFaqResDto + */ + public UpdateFaqResDto updateFaq(UpdateFaqReqDto updateFaqReqDto) { + + HomeMgtMapper homeMgtMapper = sqlSessionSlave.getMapper(HomeMgtMapper.class); + + //공지사항 수정 + try { + updateFaqReqDto.setFaqSbst(updateFaqReqDto.getFaqSbst().replaceAll("\\n", "
    ")); + homeMgtMapper.updateFaq(updateFaqReqDto); + }catch(Exception e){ + return new UpdateFaqResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } + + return new UpdateFaqResDto(ApiResponseCode.SUCCESS); + } + + /** + * date : 2022. 11. 03. + * auth : kjh + * desc : FAQ 삭제 + * @param deleteFaqReqDto + * @return + */ + public DeleteFaqResDto deleteFaq(DeleteFaqReqDto deleteFaqReqDto) { + + HomeMgtMapper homeMgtMapper = sqlSessionSlave.getMapper(HomeMgtMapper.class); + + try { + homeMgtMapper.deleteFaq(deleteFaqReqDto); + } catch (Exception e) { + return new DeleteFaqResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } + + return new DeleteFaqResDto(ApiResponseCode.SUCCESS); + } + } diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaq.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaq.java new file mode 100644 index 0000000..1e9da4c --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaq.java @@ -0,0 +1,15 @@ +package kr.co.uplus.ez.api.homeMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class DeleteFaq implements Serializable{ + + @ApiModelProperty(example = "FAQ 번호", name = "FAQ 번호", dataType = "int") + private int faqNo; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaqReqDto.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaqReqDto.java new file mode 100644 index 0000000..e7c7fc4 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaqReqDto.java @@ -0,0 +1,14 @@ +package kr.co.uplus.ez.api.homeMgt.dto; + +import java.io.Serializable; +import java.util.List; + +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class DeleteFaqReqDto implements Serializable{ + + private List list; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaqResDto.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaqResDto.java new file mode 100644 index 0000000..1fbc03b --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/DeleteFaqResDto.java @@ -0,0 +1,31 @@ +package kr.co.uplus.ez.api.homeMgt.dto; + +import java.io.Serializable; + +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class DeleteFaqResDto extends ResponseMessage implements Serializable{ + + // 데이터. + private Object data; + + public DeleteFaqResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public DeleteFaqResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public DeleteFaqResDto(ApiResponseCode returnStr, Object data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqDto.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqDto.java new file mode 100644 index 0000000..d9fb4b5 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqDto.java @@ -0,0 +1,54 @@ +package kr.co.uplus.ez.api.homeMgt.dto; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class FaqDto implements Serializable { + @ApiModelProperty(example = "리스트 번호", name = "리스트 번호", dataType = "Integer") + private Integer no; + + @ApiModelProperty(example = "faq 번호", name = "faq 번호", dataType = "int") + private int faqNo; + + @ApiModelProperty(example = "분류 코드", name = "분류 코드", dataType = "String") + private String ctgCd; + + @ApiModelProperty(example = "분류코드명", name = "분류코드명", dataType = "String") + private String ctgCdNm; + + @ApiModelProperty(example = "제목", name = "제목", dataType = "String") + private String title; + + @ApiModelProperty(example = "내용", name = "내용", dataType = "String") + private String faqSbst; + + @ApiModelProperty(example = "사용 여부", name = "사용 여부", dataType = "String") + private String useYn; + + @ApiModelProperty(example = "등록 ID", name = "등록 ID", dataType = "String") + private String regId; + + @ApiModelProperty(example = "등록 일시", name = "등록 일시", dataType = "String") + private String regDt; + + @ApiModelProperty(example = "변경 ID", name = "변경 ID", dataType = "String") + private String chgId; + + @ApiModelProperty(example = "변경 일시", name = "변경 일시", dataType = "String") + private String chgDt; + + @NotNull + @ApiModelProperty(example = "페이지당 조회할 목록 수",notes = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "int") + private int pagePerRows; + + @NotNull + @ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int") + private int page; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListReqDto.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListReqDto.java new file mode 100644 index 0000000..f5212a7 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListReqDto.java @@ -0,0 +1,50 @@ +package kr.co.uplus.ez.api.homeMgt.dto; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class FaqListReqDto implements Serializable { + + @ApiModelProperty(example = "분류 코드", name = "분류 코드", dataType = "String") + private String searchType1; + + @ApiModelProperty(example = "제목 검색어", name = "제목 검색어", dataType = "String") + private String searchText1; + + @ApiModelProperty(example = "faq 번호", name = "faq 번호", dataType = "int") + private int faqNo; + + @ApiModelProperty(example = "분류 코드", name = "분류 코드", dataType = "String") + private String ctgCd; + + @ApiModelProperty(example = "제목", name = "제목", dataType = "String") + private String title; + + @ApiModelProperty(example = "내용", name = "내용", dataType = "String") + private String faqSbst; + + @ApiModelProperty(example = "사용 여부", name = "사용 여부", dataType = "String") + private String useYn; + + @ApiModelProperty(example = "등록 ID", name = "등록 ID", dataType = "String") + private String regId; + + @ApiModelProperty(example = "변경 ID", name = "변경 ID", dataType = "String") + private String chgId; + + + @NotNull + @ApiModelProperty(example = "페이지당 조회할 목록 수",notes = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "int") + private int pagePerRows; + + @NotNull + @ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int") + private int page; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListRes.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListRes.java new file mode 100644 index 0000000..3e41250 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListRes.java @@ -0,0 +1,15 @@ +package kr.co.uplus.ez.api.homeMgt.dto; + +import java.io.Serializable; +import java.util.List; + +import kr.co.uplus.ez.common.data.Paging; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class FaqListRes implements Serializable { + + private Paging paging; + private List list; +} diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListResDto.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListResDto.java new file mode 100644 index 0000000..91e3806 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/FaqListResDto.java @@ -0,0 +1,30 @@ +package kr.co.uplus.ez.api.homeMgt.dto; + +import java.io.Serializable; + +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class FaqListResDto extends ResponseMessage implements Serializable { + // 데이터. + private FaqListRes data; + + public FaqListResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public FaqListResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public FaqListResDto(ApiResponseCode returnStr, FaqListRes data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/InsertFaqReqDto.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/InsertFaqReqDto.java new file mode 100644 index 0000000..b31e43f --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/InsertFaqReqDto.java @@ -0,0 +1,30 @@ +package kr.co.uplus.ez.api.homeMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class InsertFaqReqDto implements Serializable { + + @ApiModelProperty(example = "분류 코드", name = "분류 코드", dataType = "String") + private String ctgCd; + + @ApiModelProperty(example = "제목", name = "제목", dataType = "String") + private String title; + + @ApiModelProperty(example = "자주묻는 질문 내용", name = "자주묻는 질문 내용", dataType = "String") + private String faqSbst; + + @ApiModelProperty(example = "사용 여부", name = "사용 여부", dataType = "String") + private String useYn; + + @ApiModelProperty(example = "등록 ID", name = "등록 ID", dataType = "String") + private String regId; + + @ApiModelProperty(example = "변경 ID", name = "변경 ID", dataType = "String") + private String chgId; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/InsertFaqResDto.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/InsertFaqResDto.java new file mode 100644 index 0000000..f8acde5 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/InsertFaqResDto.java @@ -0,0 +1,31 @@ +package kr.co.uplus.ez.api.homeMgt.dto; + +import java.io.Serializable; + +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class InsertFaqResDto extends ResponseMessage implements Serializable{ + + // 데이터. + private Object data; + + public InsertFaqResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public InsertFaqResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public InsertFaqResDto(ApiResponseCode returnStr, Object data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/UpdateFaqReqDto.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/UpdateFaqReqDto.java new file mode 100644 index 0000000..7adb74c --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/UpdateFaqReqDto.java @@ -0,0 +1,29 @@ +package kr.co.uplus.ez.api.homeMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class UpdateFaqReqDto implements Serializable{ + + @ApiModelProperty(example = "faq 번호", name = "faq 번호", dataType = "int") + private int faqNo; + + @ApiModelProperty(example = "분류 코드", name = "분류 코드", dataType = "String") + private String ctgCd; + + @ApiModelProperty(example = "제목", name = "제목", dataType = "String") + private String title; + + @ApiModelProperty(example = "내용", name = "내용", dataType = "String") + private String faqSbst; + + @ApiModelProperty(example = "사용 여부", name = "사용 여부", dataType = "String") + private String useYn; + + @ApiModelProperty(example = "변경 ID", name = "변경 ID", dataType = "String") + private String chgId; +} diff --git a/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/UpdateFaqResDto.java b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/UpdateFaqResDto.java new file mode 100644 index 0000000..280a1de --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/homeMgt/dto/UpdateFaqResDto.java @@ -0,0 +1,30 @@ +package kr.co.uplus.ez.api.homeMgt.dto; + +import java.io.Serializable; + +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class UpdateFaqResDto extends ResponseMessage implements Serializable { + // 데이터. + private Object data; + + public UpdateFaqResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public UpdateFaqResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public UpdateFaqResDto(ApiResponseCode returnStr, Object data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/resources/mapper/mysql/homeMgt/homeMgt-mapper.xml b/src/main/resources/mapper/mysql/homeMgt/homeMgt-mapper.xml index dbb1b78..1f37d0a 100644 --- a/src/main/resources/mapper/mysql/homeMgt/homeMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/homeMgt/homeMgt-mapper.xml @@ -13,14 +13,14 @@ FROM hubez_common.EZ_NTBBS N1 WHERE 1 = 1 - + @@ -88,13 +88,13 @@ @@ -174,8 +174,7 @@ /* homeMgt-mapper.xml (updateNotice) */ UPDATE hubez_common.EZ_NTBBS SET - CHG_DT = now() - ,CTG_CD = #{ctgCd} + CTG_CD = #{ctgCd} ,EMG_YN = #{emgYn} ,USE_YN = #{useYn} ,TITLE = #{title} @@ -216,9 +215,125 @@ + + + + + + + + + + + + + + + /* homeMgt-mapper.xml (insertFaq) */ + INSERT INTO + hubez_common.EZ_FAQ( + CTG_CD, + TITLE, + FAQ_SBST, + USE_YN, + RETV_CNT, + REG_ID, + REG_DT, + CHG_ID, + CHG_DT + )VALUES( + #{ctgCd}, + #{title}, + #{faqSbst}, + #{useYn}, + 0, + #{regId}, + NOW(), + #{chgId}, + NOW() + ); + + + + + /* homeMgt-mapper.xml (updateFaq) */ + UPDATE hubez_common.EZ_FAQ + SET + CTG_CD = #{ctgCd} + ,USE_YN = #{useYn} + ,TITLE = #{title} + ,FAQ_SBST = #{faqSbst} + ,CHG_DT = NOW() + ,CHG_ID = #{chgId} + WHERE + FAQ_NO = #{faqNo} + + + + + /* homeMgt-mapper.xml(deleteFaq) */ + DELETE + FROM + hubez_common.EZ_FAQ + + FAQ_NO IN + + #{item.faqNo} + + + + - - + AND N1.CTG_CD = #{searchType1}