From c036e744c7874042650d4c355aaefac04f526e3a Mon Sep 17 00:00:00 2001 From: KNKIM Date: Thu, 11 Nov 2021 18:05:29 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A9=94=EC=9D=B8=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EA=B0=9C=EB=B0=9C=20-=20=EC=A4=91=EA=B0=84=20?= =?UTF-8?q?=EB=B0=B1=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/nlib/cmm/service/CodeService.java | 49 ++++++- .../java/nlib/cmm/service/MainService.java | 47 +++++- .../java/nlib/cmm/service/impl/CodeDAO.java | 18 +++ .../cmm/service/impl/CodeServiceImpl.java | 44 +++++- .../java/nlib/cmm/service/impl/MainDAO.java | 33 ++++- .../cmm/service/impl/MainServiceImpl.java | 66 ++++++++- .../java/nlib/cmm/web/MainController.java | 34 ++++- .../mapper/nlib/cmm/CodeDAO_SQL.xml | 28 ++-- .../mapper/nlib/cmm/MainDAO_SQL.xml | 135 +++++++++++------- src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp | 114 +++++---------- 10 files changed, 402 insertions(+), 166 deletions(-) diff --git a/src/main/java/nlib/cmm/service/CodeService.java b/src/main/java/nlib/cmm/service/CodeService.java index a32d30a0..636c5cf9 100644 --- a/src/main/java/nlib/cmm/service/CodeService.java +++ b/src/main/java/nlib/cmm/service/CodeService.java @@ -1,19 +1,54 @@ package nlib.cmm.service; -import java.util.HashMap; import java.util.List; import java.util.Map; -import org.springframework.stereotype.Service; - -import nlib.restful.service.DataApiReqVO; -import nlib.restful.service.DataApiResVO; - +/** + *
+ * @Class Name : CodeService.java
+ * 
+ * @Description : 코드 조회 공통 서비스 인터페이스 
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 07. 26. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 07. 26. + * @version 1.0 + * + */ public interface CodeService { + + /** + * 공통코드를 조회한다. + * + * @param iCodeId + * @return + * @throws Exception + */ public List> listCodes(String iCodeId) throws Exception; + /** + * 주제분류코드를 조회한다. + * + * @return + * @throws Exception + */ public List> listCtClsfs() throws Exception; - + + /** + * 자료유형 최상위 코드목록을 조회한다. + */ + public List> listTypeDivCodes() throws Exception; + } diff --git a/src/main/java/nlib/cmm/service/MainService.java b/src/main/java/nlib/cmm/service/MainService.java index 7aebd98c..6021a2a1 100644 --- a/src/main/java/nlib/cmm/service/MainService.java +++ b/src/main/java/nlib/cmm/service/MainService.java @@ -2,6 +2,9 @@ package nlib.cmm.service; import java.util.List; +import java.util.Map; + +import nlib.col.service.CollectionVO; public interface MainService { @@ -11,6 +14,48 @@ public interface MainService * @param mngOrgCd * @return */ - public List listKeywords(String mngOrgCd); + public List> listKeywords(String mngOrgCd); + + /** + * 문화원 PICK한 자료 리스트를 조회한다. + * + * @param mngOrgCd + * @return + */ + public List listOrgPicks(String mngOrgCd); + + /** + * 유형별인기자료 리스트를 조회한다. + * + * @param mngOrgCd + * @return + */ + public List listPops(CollectionVO searchVO); + + /** + * 유형별인기자료 리스트를 조회한다. : 기본 자료유형 문서로 검색 + * + * @param mngOrgCd + * @return + */ + public List listPops(String mngOrgCd); + + /** + * 유형별인기자료 리스트를 조회한다. + * + * @param mngOrgCd + * @param typeDivCd + * @return + */ + public List listPops(String mngOrgCd, String typeDivCd); + + /** + * 온라인자료관 리스트를 조회한다. + * + * @param mngOrgCd + * @return + */ + public List listOnline(String mngOrgCd); + } \ No newline at end of file diff --git a/src/main/java/nlib/cmm/service/impl/CodeDAO.java b/src/main/java/nlib/cmm/service/impl/CodeDAO.java index e4daf646..eb24dc2c 100644 --- a/src/main/java/nlib/cmm/service/impl/CodeDAO.java +++ b/src/main/java/nlib/cmm/service/impl/CodeDAO.java @@ -31,7 +31,25 @@ import egovframework.rte.psl.dataaccess.mapper.Mapper; @Mapper("codeDAO") public interface CodeDAO { + /** + * 공통코드를 조회한다. + * + * @param iCodeId + * @return + * @throws Exception + */ public List> listCodes(String iCodeId) throws Exception; + /** + * 주제분류코드를 조회한다. + * + * @return + * @throws Exception + */ public List> listCtClsfs() throws Exception; + + /** + * 자료유형 최상위 코드목록을 조회한다. + */ + public List> listTypeDivCodes() throws Exception; } diff --git a/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java b/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java index e815a8c0..49b9fd33 100644 --- a/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java +++ b/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java @@ -1,9 +1,7 @@ package nlib.cmm.service.impl; -import java.util.HashMap; import java.util.List; import java.util.Map; - import javax.annotation.Resource; import org.slf4j.Logger; @@ -14,6 +12,28 @@ import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; import nlib.cmm.service.CodeService; import nlib.util.StringUtil; +/** + *
+ * @Class Name : CodeServiceImpl.java
+ * 
+ * @Description : 코드 조회 공통 서비스 구현 
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 07. 26. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 07. 26. + * @version 1.0 + * + */ @Service("codeService") public class CodeServiceImpl extends EgovAbstractServiceImpl implements CodeService { @@ -22,6 +42,13 @@ public class CodeServiceImpl extends EgovAbstractServiceImpl implements CodeServ @Resource(name="codeDAO") private CodeDAO codeDAO; + /** + * 공통코드를 조회한다. + * + * @param iCodeId + * @return + * @throws Exception + */ public List> listCodes(String iCodeId) throws Exception { if(StringUtil.isEmpty(iCodeId)) return null; @@ -29,7 +56,20 @@ public class CodeServiceImpl extends EgovAbstractServiceImpl implements CodeServ return codeDAO.listCodes(iCodeId.toUpperCase()); } + /** + * 주제분류코드를 조회한다. + * + * @return + * @throws Exception + */ public List> listCtClsfs() throws Exception { return codeDAO.listCtClsfs(); } + + /** + * 자료유형 최상위 코드목록을 조회한다. + */ + public List> listTypeDivCodes() throws Exception { + return codeDAO.listTypeDivCodes(); + } } \ No newline at end of file diff --git a/src/main/java/nlib/cmm/service/impl/MainDAO.java b/src/main/java/nlib/cmm/service/impl/MainDAO.java index 82137c7a..bf41b18a 100644 --- a/src/main/java/nlib/cmm/service/impl/MainDAO.java +++ b/src/main/java/nlib/cmm/service/impl/MainDAO.java @@ -4,13 +4,8 @@ package nlib.cmm.service.impl; import java.util.List; import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Repository; - import egovframework.rte.psl.dataaccess.mapper.Mapper; -import nlib.restful.service.DataApiReqVO; -import nlib.restful.service.DataApiResVO; +import nlib.col.service.CollectionVO; @Mapper("mainDAO") public interface MainDAO { @@ -21,6 +16,30 @@ public interface MainDAO { * @param mngOrgCd * @return */ - public List listKeywords(String mngOrgCd); + public List> listKeywords(String mngOrgCd); + + /** + * 문화원 PICK한 자료 리스트를 조회한다. + * + * @param mngOrgCd + * @return + */ + public List listOrgPicks(String mngOrgCd); + + /** + * 유형별인기자료 리스트를 조회한다. + * + * @param mngOrgCd + * @return + */ + public List listPops(CollectionVO searchVO); + + /** + * 온라인자료관 리스트를 조회한다. + * + * @param mngOrgCd + * @return + */ + public List listOnline(String mngOrgCd); } diff --git a/src/main/java/nlib/cmm/service/impl/MainServiceImpl.java b/src/main/java/nlib/cmm/service/impl/MainServiceImpl.java index f89f7412..90a128c8 100644 --- a/src/main/java/nlib/cmm/service/impl/MainServiceImpl.java +++ b/src/main/java/nlib/cmm/service/impl/MainServiceImpl.java @@ -3,6 +3,7 @@ package nlib.cmm.service.impl; import java.util.List; +import java.util.Map; import javax.annotation.Resource; @@ -11,6 +12,8 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import nlib.cmm.service.MainService; +import nlib.col.service.CollectionVO; +import nlib.util.StringUtil; @Service("mainService") public class MainServiceImpl implements MainService @@ -26,7 +29,68 @@ public class MainServiceImpl implements MainService * @param mngOrgCd * @return */ - public List listKeywords(String mngOrgCd) { + public List> listKeywords(String mngOrgCd) { return mainDAO.listKeywords(mngOrgCd); } + + /** + * 문화원 PICK한 자료 리스트를 조회한다. + * + * @param mngOrgCd + * @return + */ + public List listOrgPicks(String mngOrgCd) { + return mainDAO.listOrgPicks(mngOrgCd); + } + + /** + * 유형별인기자료 리스트를 조회한다. : 기본 자료유형 문서로 검색 + * + * @param searchVO + * @return + */ + public List listPops(CollectionVO searchVO) { + return mainDAO.listPops(searchVO); + } + + /** + * 유형별인기자료 리스트를 조회한다. : 기본 자료유형 문서로 검색 + * + * @param mngOrgCd + * @return + */ + public List listPops(String mngOrgCd) { + CollectionVO searchVO = new CollectionVO(); + searchVO.setMngOrgCd(mngOrgCd); + searchVO.setTypeDivCd("IT_DOC"); // 문서 + return listPops(mngOrgCd, null); + } + + /** + * 유형별인기자료 리스트를 조회한다. + * + * @param mngOrgCd + * @param typeDivCd + * @return + */ + public List listPops(String mngOrgCd, String typeDivCd) { + + CollectionVO searchVO = new CollectionVO(); + searchVO.setMngOrgCd(mngOrgCd); + if(StringUtil.isEmpty(typeDivCd)) typeDivCd = "IT_DOC"; + searchVO.setTypeDivCd(typeDivCd); + + return listPops(searchVO); + } + + /** + * 온라인자료관 리스트를 조회한다. + * + * @param mngOrgCd + * @return + */ + public List listOnline(String mngOrgCd) { + return mainDAO.listOnline(mngOrgCd); + } + } \ No newline at end of file diff --git a/src/main/java/nlib/cmm/web/MainController.java b/src/main/java/nlib/cmm/web/MainController.java index 3112542c..4280ea1d 100644 --- a/src/main/java/nlib/cmm/web/MainController.java +++ b/src/main/java/nlib/cmm/web/MainController.java @@ -1,5 +1,8 @@ package nlib.cmm.web; +import java.util.List; +import java.util.Map; + import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -14,6 +17,7 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import nlib.cmm.NlibCommonController; +import nlib.cmm.service.CodeService; import nlib.cmm.service.MainService; import nlib.cmm.service.NotificationService; import nlib.col.service.CartService; @@ -51,23 +55,42 @@ public class MainController extends NlibCommonController { @Resource(name = "cartService") private CartService cartService; + + @Resource(name = "codeService") + private CodeService codeService; @Resource(name = "mainService") private MainService mainService; @RequestMapping( {"/index.do"} ) public String setContent( - HttpServletRequest req, - HttpServletResponse res, + HttpServletRequest request, + HttpServletResponse response, Authentication authentication, ModelMap model) throws Exception { // 캐쉬된 Reqeust 히스토리 삭제 RequestCache cache = new HttpSessionRequestCache(); - cache.removeRequest(req, res); + cache.removeRequest(request, response); - log.debug((authentication == null ? "손님 메인 접속" : authentication.getName() + " 메인 접속")); + String mngOrgCd = getCurCouncilCd(request); + // 추천키워드 + List> listKeywords = mainService.listKeywords(mngOrgCd); + model.addAttribute("listKeywords", listKeywords); + + // 문화원 PICK + model.addAttribute("listOrgPicks", mainService.listOrgPicks(mngOrgCd)); + + // 유형별 인기자료 + List> listTypeDivCodes = codeService.listTypeDivCodes(); + model.addAttribute("listTypeDivCodes", listTypeDivCodes); + String typeDivCd = (listTypeDivCodes == null || listTypeDivCodes.size() < 1 ? null : listTypeDivCodes.get(0).get("typeDivCd")); + model.addAttribute("listPops", mainService.listPops(mngOrgCd, typeDivCd)); + + // 온라인자료관 + model.addAttribute("listOnline", mainService.listOnline(mngOrgCd)); + return "nlib/cmm/home"; } @@ -87,11 +110,8 @@ public class MainController extends NlibCommonController { String mbInfoId = getMbInfoId(request); // 카트 건수 확인 - - // 카트 목록 가져오기 int cartCnt = 0; if(StringUtil.isEmpty(mbInfoId)) { - // 카트 건수 cartCnt = cartService.countCartItemsFromCookie(request, response, "1"); cartCnt += cartService.countCartItemsFromCookie(request, response, "2"); } else { diff --git a/src/main/resources/egovframework/mapper/nlib/cmm/CodeDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/cmm/CodeDAO_SQL.xml index 0d6850b3..ac5cd420 100644 --- a/src/main/resources/egovframework/mapper/nlib/cmm/CodeDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/cmm/CodeDAO_SQL.xml @@ -8,7 +8,6 @@ , B.COLUMN1 , B.COLUMN2 , B.S_CODE_NM - FROM SM_CODE_M A, SM_CODE_S B WHERE A.L_CODE_ID = #{lCodeId} @@ -19,15 +18,22 @@ - + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/cmm/MainDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/cmm/MainDAO_SQL.xml index 721959ed..4bfd663d 100644 --- a/src/main/resources/egovframework/mapper/nlib/cmm/MainDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/cmm/MainDAO_SQL.xml @@ -4,9 +4,9 @@ - - + --> + - + --> + - + --> + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp b/src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp index eaf35091..b2067c8f 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp @@ -12,6 +12,24 @@ $(document).ready(function() { fn_myAlert(unreadNotiCnt); }); +function fn_search(keyword) { + var form = document.createElement("form"); + form.style.display = "none"; + $(form).attr("action", "/search/searchList.do"); + $(form).attr("method", "post"); + + var element = document.createElement("input"); + $(element).attr("name", "query"); + + $(element).attr("value", keyword); + form.appendChild(element); + document.body.appendChild(form); + form.submit(); + document.body.removeChild(form); + + return; +} + @@ -52,6 +70,7 @@ $(document).ready(function() { +

키워드 섹션영역

- +
+ +

문화원픽 섹션영역

+