From a716dda23e412629ff399f6cd41f09405aff6e64 Mon Sep 17 00:00:00 2001 From: KNKIM Date: Wed, 24 Nov 2021 11:53:00 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A9=94=EC=9D=B8=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EB=B0=B0=EB=84=88=20=EB=A1=A4=EB=A7=81=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/nlib/cmm/service/MainService.java | 18 +++++- .../java/nlib/cmm/service/impl/MainDAO.java | 14 +++++ .../cmm/service/impl/MainServiceImpl.java | 19 ++++++ .../java/nlib/cmm/web/MainController.java | 43 +++++++++++++- .../nlib/security/SpringSecurityConfig.java | 1 + .../mapper/nlib/cmm/MainDAO_SQL.xml | 48 +++++++++++++++ src/main/resources/nlib/nlib.properties | 9 +++ src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp | 59 +++++++++++-------- 8 files changed, 185 insertions(+), 26 deletions(-) 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 1b70202a..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; @@ -127,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"; } @@ -173,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/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 d9abb9e0..7317363a 100644 --- a/src/main/resources/egovframework/mapper/nlib/cmm/MainDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/cmm/MainDAO_SQL.xml @@ -143,5 +143,53 @@ LIMIT 10 ]]> + + + + + + + \ No newline at end of file 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/cmm/home.jsp b/src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp index f7ee531d..d791ffa7 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/cmm/home.jsp @@ -89,30 +89,41 @@ function fn_listPops(typeDivCd) {
    -
  • -
    슬라이드 이미지 1
    -
    -

    온라인 대출/알람예약 서비스를 통해
    문화원 소장자료들을 만나보세요.

    -

    자료 검색을 통해 원하는 자료를 찾고, 대출/열람 예약 신청까지!
    온라인에서 쉽고 간편하게 할 수 있습니다.

    -

    자세히 보기 >

    -
    -
  • -
  • -
    슬라이드 이미지 1
    -
    -

    온라인 대출/알람예약 서비스를 통해
    문화원 소장자료들을 만나보세요.

    -

    자료 검색을 통해 원하는 자료를 찾고, 대출/열람 예약 신청까지!
    온라인에서 쉽고 간편하게 할 수 있습니다.

    -

    자세히 보기 >

    -
    -
  • -
  • -
    슬라이드 이미지 1
    -
    -

    온라인 대출/알람예약 서비스를 통해
    문화원 소장자료들을 만나보세요.

    -

    자료 검색을 통해 원하는 자료를 찾고, 대출/열람 예약 신청까지!
    온라인에서 쉽고 간편하게 할 수 있습니다.

    -

    자세히 보기 >

    -
    -
  • + + +
  • +
    슬라이드 이미지 1
    +
    +

    온라인 대출/알람예약 서비스를 통해
    문화원 소장자료들을 만나보세요.

    +

    자료 검색을 통해 원하는 자료를 찾고, 대출/열람 예약 신청까지!
    온라인에서 쉽고 간편하게 할 수 있습니다.

    +
    +
  • +
    + + + + +
  • +
    + + 메인 슬라이딩 배너 이미지 + + + 메인 슬라이딩 배너 이미지 + +
    +
    +

    ${bannerItem.title }

    +

    ${bannerItem.bannerDesc }

    + +

    자세히 보기 >

    +
    +
    +
  • +
    +
    + +