diff --git a/src/main/java/nlib/cmm/service/MainService.java b/src/main/java/nlib/cmm/service/MainService.java index 6021a2a1..96b4dee7 100644 --- a/src/main/java/nlib/cmm/service/MainService.java +++ b/src/main/java/nlib/cmm/service/MainService.java @@ -58,4 +58,20 @@ public interface MainService */ public List listOnline(String mngOrgCd); -} \ No newline at end of file + /** + * 지방문화원별 배너 정보를 조회한다. + * + * @param mngOrgCd + * @return + */ + public List> listBannerInfos(String mngOrgCd); + + /** + * 메인화면 배너ID에 대한 정보를 가져온다. + * + * @return + */ + public Map getBannerInfo(String bannerId); + +} + diff --git a/src/main/java/nlib/cmm/service/impl/MainDAO.java b/src/main/java/nlib/cmm/service/impl/MainDAO.java index bf41b18a..2c2197d7 100644 --- a/src/main/java/nlib/cmm/service/impl/MainDAO.java +++ b/src/main/java/nlib/cmm/service/impl/MainDAO.java @@ -42,4 +42,18 @@ public interface MainDAO { */ public List listOnline(String mngOrgCd); + /** + * 지방문화원별 배너 정보를 조회한다. + * + * @param mngOrgCd + * @return + */ + public List> listBannerInfos(String mngOrgCd); + + /** + * 메인화면 배너ID에 대한 정보를 가져온다. + * + * @return + */ + public Map getBannerInfo(String bannerId); } diff --git a/src/main/java/nlib/cmm/service/impl/MainServiceImpl.java b/src/main/java/nlib/cmm/service/impl/MainServiceImpl.java index 90a128c8..60492701 100644 --- a/src/main/java/nlib/cmm/service/impl/MainServiceImpl.java +++ b/src/main/java/nlib/cmm/service/impl/MainServiceImpl.java @@ -93,4 +93,23 @@ public class MainServiceImpl implements MainService return mainDAO.listOnline(mngOrgCd); } + /** + * 지방문화원별 배너 정보를 조회한다. + * + * @param mngOrgCd + * @return + */ + public List> listBannerInfos(String mngOrgCd) { + return mainDAO.listBannerInfos(mngOrgCd); + } + + /** + * 메인화면 배너ID에 대한 정보를 가져온다. + * + * @return + */ + public Map getBannerInfo(String bannerId) { + return mainDAO.getBannerInfo(bannerId); + } + } \ 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 da39374f..00c3b280 100644 --- a/src/main/java/nlib/cmm/web/MainController.java +++ b/src/main/java/nlib/cmm/web/MainController.java @@ -1,9 +1,12 @@ package nlib.cmm.web; -import java.util.ArrayList; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.List; import java.util.Map; +import javax.activation.MimetypesFileTypeMap; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -16,6 +19,7 @@ import org.springframework.security.web.savedrequest.RequestCache; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import nlib.bbs.service.ArticleVO; import nlib.bbs.service.BoardService; @@ -100,26 +104,11 @@ public class MainController extends NlibCommonController { model.addAttribute("listOrgPicks", mainService.listOrgPicks(mngOrgCd)); // 유형별 인기자료 - List> listTypeDivCodes = codeService.listTypeDivCodes(); - List listPops = new ArrayList(); - if(listTypeDivCodes != null) { - Map itemMap = null; - String typeDivCd = null; - for(int i = (listTypeDivCodes.size() - 1); i>=0; i--) { - itemMap = listTypeDivCodes.get(i); - typeDivCd = itemMap.get("typeDivCd"); - List listPopsTemp = mainService.listPops(mngOrgCd, typeDivCd); - if(listPopsTemp == null || listPopsTemp.size() < 1) { - listTypeDivCodes.remove(i); - continue; - } - for(CollectionVO col : listPopsTemp) { - listPops.add(col); - } - } - } + //List> listTypeDivCodes = codeService.listTypeDivCodes(); + //model.addAttribute("listTypeDivCodes", listTypeDivCodes); + + List listPops = mainService.listPops(mngOrgCd, null); // 전체 model.addAttribute("listPops", listPops); - model.addAttribute("listTypeDivCodes", listTypeDivCodes); // 온라인자료관 model.addAttribute("listOnline", mainService.listOnline(mngOrgCd)); @@ -142,6 +131,10 @@ public class MainController extends NlibCommonController { List listQna = qnaService.listArticles(searchArticleVO); model.addAttribute("listQna", listQna); + // 메인 화면 배너 + List> listBannerInfos = mainService.listBannerInfos(mngOrgCd); + model.addAttribute("listBannerInfos", listBannerInfos); + return "nlib/cmm/home"; } @@ -188,4 +181,37 @@ public class MainController extends NlibCommonController { return "nlib/cmm/headerSubPart"; } + @RequestMapping(value = "/main/bannerImage.do") + public void getBannerImage(HttpServletRequest request, HttpServletResponse response, String bannerId) throws IOException { + + Map bannerInfo = mainService.getBannerInfo(bannerId); + boolean exists = false; + + if(bannerInfo != null && StringUtil.isNotEmpty(bannerInfo.get("fileStreCours")) && StringUtil.isNotEmpty(bannerInfo.get("streFileNm")) && StringUtil.isNotEmpty(bannerInfo.get("orignlFileNm"))) { + try { + String fileName = bannerInfo.get("fileStreCours") + bannerInfo.get("streFileNm"); + MimetypesFileTypeMap mimetypesFileTypeMap = new MimetypesFileTypeMap(); + response.setContentType(mimetypesFileTypeMap.getContentType(bannerInfo.get("orignlFileNm"))); + response.getOutputStream().write(Files.readAllBytes(Paths.get(fileName))); + exists = true; + } catch(Exception e) { + log.error("메인 화면 배너 관련 파일을 확인할 수 없습니다. : bannerId=" + bannerId); + } + } + + if(!exists) { + try { + String fileName = NlibProperty.getString("main.banner.img.path"); + MimetypesFileTypeMap mimetypesFileTypeMap = new MimetypesFileTypeMap(); + response.setContentType(mimetypesFileTypeMap.getContentType(bannerInfo.get("orignlFileNm"))); + response.getOutputStream().write(Files.readAllBytes(Paths.get(fileName))); + exists = true; + } catch(Exception e) { + log.error("메인 화면 배너 기본 배너 파일을 확인할 수 없습니다. : main.banner.img.path=" + NlibProperty.getString("main.banner.img.path")); + } + } + + return; + } + } \ No newline at end of file diff --git a/src/main/java/nlib/sch/service/NlibSearchService.java b/src/main/java/nlib/sch/service/NlibSearchService.java index ca8351ff..45216032 100644 --- a/src/main/java/nlib/sch/service/NlibSearchService.java +++ b/src/main/java/nlib/sch/service/NlibSearchService.java @@ -8,11 +8,4 @@ public interface NlibSearchService { /** 검색결과 받기 * @return */ NlibSearchVO getSearch(NlibSearchVO searchVO) throws Exception; - /* - String getSearchEtc(SearchVO searchVO , Sf1VO sf1Vo) throws Exception; - - int getSearch_All_cnt(SearchVO searchVO, Sf1VO sf1Vo) throws Exception; - - SearchCollectionResult getSearch_ajax(SearchVO searchVO , Sf1VO sf1Vo) throws Exception; - */ } diff --git a/src/main/java/nlib/sch/web/NlibSearchController.java b/src/main/java/nlib/sch/web/NlibSearchController.java index 9a239650..3920d116 100644 --- a/src/main/java/nlib/sch/web/NlibSearchController.java +++ b/src/main/java/nlib/sch/web/NlibSearchController.java @@ -264,9 +264,6 @@ public class NlibSearchController extends NlibCommonController { List mngOrgList = new ArrayList<>(); List keywordList = new ArrayList<>(); - //사용자 정보를 가져온다. - NlibLoginVO loginVO = getNlibLoginVO(authentication); - CollectionVO vo = new CollectionVO(); vo.setMasterId(masterId); diff --git a/src/main/java/nlib/security/SpringSecurityConfig.java b/src/main/java/nlib/security/SpringSecurityConfig.java index 0b6cd329..d46df240 100644 --- a/src/main/java/nlib/security/SpringSecurityConfig.java +++ b/src/main/java/nlib/security/SpringSecurityConfig.java @@ -64,6 +64,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/temp/**") .antMatchers("/favicon/**") .antMatchers("/html/**") + .antMatchers("/banner/**") ; } 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 bf969d98..7317363a 100644 --- a/src/main/resources/egovframework/mapper/nlib/cmm/MainDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/cmm/MainDAO_SQL.xml @@ -10,13 +10,13 @@ FROM ( SELECT TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(replace(RM.KEYWORD,',',';'), ';', NUMBERS.N), ';', -1)) AS KEY_NAME - FROM ( /* 키워드 길이 1000 이므로, 최대 가능 키워드수 500으로 맞춤 */ + FROM ( /* 키워드 길이 1000 이므로, 최대 가능 키워드수 500이나 속도 개선으로 10개로 제한 */ WITH RECURSIVE W1 AS ( SELECT 1 AS N UNION ALL SELECT 1+W1.N AS N FROM W1 - WHERE W1.N < 500 + WHERE W1.N < 10 ) SELECT N FROM W1 ) NUMBERS @@ -60,7 +60,6 @@ @@ -142,5 +143,53 @@ LIMIT 10 ]]> + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml index 0697e2b8..81c38af3 100644 --- a/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml @@ -140,12 +140,11 @@ AND M.REG_STATUS = 'REG_OK' /* 등록상태 : 등록완료 */ AND M.USE_FLAG = 'Y' AND IFNULL(M.PE_STATUS, '') = '' /* 보존상태 */ - AND M.DIGITAL_READ_YN = 'Y' /* 디지탈열람여부 */ - AND IFNULL(M.M_INTERFACE_ID, '') != ''/* IF존재하는 건 */ AND ( M.OPER_OUT_RANGE_CD = '01' OR M.OPER_READ_RANGE_CD = '01' OR M.DIGITAL_READ_YN = 'Y')/* 대출 OR 열람 OR 온라인열람 가능 */ - AND M.TITLE = REPLACE(#{title},' ','') - AND M.CREAT_YYYY = REPLACE(#{creatYyyy},' ','') + AND REPLACE(M.TITLE,' ','') = REPLACE(#{title},' ','') + AND M.CREAT_YYYY LIKE CONCAT(#{creatYyyy},'%') AND M.ORG_NM = REPLACE(#{orgNm},' ','') + AND M.MASTER_ID != #{masterId} ORDER BY M.MOD_DD DESC LIMIT 10 diff --git a/src/main/resources/egovframework/mapper/nlib/info/InformDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/info/InformDAO_SQL.xml index 58e41935..32d2d3b7 100644 --- a/src/main/resources/egovframework/mapper/nlib/info/InformDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/info/InformDAO_SQL.xml @@ -9,7 +9,7 @@ , CONTENT_TYPE , MNG_ORG_CD , TITLE - , CONTENT + , CONVERT(A.CONTENT_LBL USING UTF8) AS CONTENT FROM BD_NLIB_CONTENT_PAGE A WHERE A.CONTENT_TYPE = #{contentType} AND A.MNG_ORG_CD = #{mngOrgCd} diff --git a/src/main/resources/nlib/nlib.properties b/src/main/resources/nlib/nlib.properties index 578c3b31..4335424a 100644 --- a/src/main/resources/nlib/nlib.properties +++ b/src/main/resources/nlib/nlib.properties @@ -80,6 +80,15 @@ crypto.aria.defaultKey = gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ= list.paging.page.size = 10 +#---------------------------------------- +# \uba54\uc778\ud654\uba74 \uae30\ubcf8 \ubc30\ub108 +#---------------------------------------- +# \uba54\uc778\ud654\uba74 \uae30\ubcf8 \ubc30\ub108 \uc704\uce58 +# \ub85c\uceec LLLLLLLLLLLLLLL +#main.banner.img.path = C:/iams/workspace/nlib/src/main/webapp/images/bg/bg-mainbanner.jpg +# \uac1c\ubc1c\uc11c\ubc84 +main.banner.img.path = /apps/tomcat/apache-tomcat-8.5.46_nlib/webapps/images/bg/bg-mainbanner.jpg + #---------------------------------------- # \ucca8\ubd80\ud30c\uc77c \uacbd\ub85c \uc815\ubcf4 #---------------------------------------- diff --git a/src/main/webapp/WEB-INF/jsp/nlib/bbs/insertQnaForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/bbs/insertQnaForm.jsp index 535e71a5..09c0bb9a 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/bbs/insertQnaForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/bbs/insertQnaForm.jsp @@ -325,7 +325,7 @@ function fn_downloadFile(attachFileId, fileSn) {
답변메일 수신여부
checked /> - +
  • diff --git a/src/main/webapp/WEB-INF/jsp/nlib/collection/searchList.jsp b/src/main/webapp/WEB-INF/jsp/nlib/collection/searchList.jsp index c9e129b0..960edea0 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/collection/searchList.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/collection/searchList.jsp @@ -211,7 +211,7 @@ function fn_search_article(pageIndex) { -
    + diff --git a/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureOperationInfo.jsp b/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureOperationInfo.jsp index b185f54b..deb950d6 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureOperationInfo.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/inform/selectNCultureOperationInfo.jsp @@ -89,9 +89,7 @@ -
    ${informContent } -
    diff --git a/src/main/webapp/js/nlib.js b/src/main/webapp/js/nlib.js index 6a0e17cb..2976cdce 100644 --- a/src/main/webapp/js/nlib.js +++ b/src/main/webapp/js/nlib.js @@ -406,21 +406,9 @@ function gfn_showDocPdf(interfaceId,masterId,typeDivCd,dtlsTypeDivCd) { var openNewWindow = window.open(url + interfaceId, "_blank"); } -function gfn_setSnsShare(interfaceId,masterId,typeDivCd,dtlsTypeDivCd){ +function gfn_setSnsShare(masterId){ var url=window.location.protocol + "//" + window.location.host + window.location.pathname + "?masterId=" + masterId; - if(!fn_isEmpty(interfaceId)) - { - if(typeDivCd == "IT_PHOTO" && (dtlsTypeDivCd == "C199" || dtlsTypeDivCd == "C01")){ - url = IMAGE_VIEW_URL; - }else if((typeDivCd == "IT_VIDEO") && (dtlsTypeDivCd == "C290" || dtlsTypeDivCd == "C02" || dtlsTypeDivCd == "C03")){ - url = VIDEO_VIEW_URL; - }else{ - url = DOC_VIEW_URL; - } - url += interfaceId - } - $('#div_pop-sharing img').attr('data-cUrl',url); // url 모두 맵핑 if(url != null && url != ''){ getShortUrlData(url);