jhleem / egov star

임종호 임종호 2022-02-23 @142


            
Index: base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovArticleServiceImpl.java =================================================================== --- base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovArticleServiceImpl.java (revision 141) +++ base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovArticleServiceImpl.java (revision 142) @@ -6,6 +6,10 @@ import javax.annotation.Resource; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; import org.springframework.stereotype.Service; import egovframework.com.cop.bbs.service.Board; @@ -30,8 +34,12 @@ @Override public Map<String, Object> selectArticleList(BoardVO boardVO) { - List<?> list = egovArticleDao.selectArticleList(boardVO); - + List<BoardVO> list = (List<BoardVO>) egovArticleDao.selectArticleList(boardVO); + + for (BoardVO vo : list) { + // 이미지, 동영상 썸네일 추출 + vo = extBbsThumbnail(vo); + } int cnt = egovArticleDao.selectArticleListCnt(boardVO); @@ -42,6 +50,27 @@ return map; } + + /** + * 게시판VO에서 썸네일 추출 + * @Author : 임종호 + * @Date : 2022. 2. 22 + * @Method Name : extBbsThumbnail + * @return : BoardVO + */ + public BoardVO extBbsThumbnail(BoardVO vo) { + String html = vo.getNttCn(); + Document doc = Jsoup.parseBodyFragment(html); + Element el = doc.selectFirst("iframe") == null ? doc.selectFirst("img") : doc.selectFirst("iframe"); + if (el != null) { + el.attr("width", "100%"); + el.attr("height", ""); + el.attr("alt", vo.getNttSj() + " 대표이미지"); + vo.setThumbnail(el.outerHtml()); + } + vo.setNttCn(doc.text()); + return vo; + } @Override public BoardVO selectArticleDetail(BoardVO boardVO) { Index: base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardVO.java =================================================================== --- base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardVO.java (revision 141) +++ base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardVO.java (revision 142) @@ -124,6 +124,9 @@ * 대표이미지 링크 */ private String rprsAtchFileLink; + + /** 썸네일 (이미지, 동영상) */ + private String thumbnail; /** * searchBgnDe attribute를 리턴한다. @@ -717,6 +720,11 @@ this.rprsAtchFileLink = rprsAtchFileLink; } - + public String getThumbnail() { + return thumbnail; + } + public void setThumbnail(String thumbnail) { + this.thumbnail = thumbnail; + } } Index: base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbsLogScheduling.java =================================================================== --- base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbsLogScheduling.java (revision 141) +++ base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbsLogScheduling.java (nonexistent) @@ -1,30 +0,0 @@ -package egovframework.com.sym.log.blg.service; - -import javax.annotation.Resource; - -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import egovframework.rte.fdl.cmmn.exception.EgovBizException; - -/** - * 게시글 로그 요약을 위한 스케줄링 - * @author 이다솜 - * - */ -@Component -public class BbsLogScheduling { - - @Resource(name="BbsLogService") - private BbsLogService bbsLogService; - - /** - * 게시글 로그 요약 등록 - * @throws Exception - */ - @Scheduled(cron = "0 0 17 * * *") - public void insertBbsLogSummary() throws EgovBizException { - bbsLogService.insertBbsLogSummary(); - } - -} Index: base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbslogAspect.java =================================================================== --- base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbslogAspect.java (revision 141) +++ base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbslogAspect.java (revision 142) @@ -28,7 +28,7 @@ /** 게시글 로그 service */ @Resource(name = "BbsLogService") private BbsLogService bbsLogService; - + /** * 게시글 로그 등록 * Index: base3.10/src/main/java/egovframework/com/sym/log/blg/task/BbsLogScheduling.java =================================================================== --- base3.10/src/main/java/egovframework/com/sym/log/blg/task/BbsLogScheduling.java (nonexistent) +++ base3.10/src/main/java/egovframework/com/sym/log/blg/task/BbsLogScheduling.java (revision 142) @@ -0,0 +1,31 @@ +package egovframework.com.sym.log.blg.task; + +import javax.annotation.Resource; + +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import egovframework.com.sym.log.blg.service.BbsLogService; +import egovframework.rte.fdl.cmmn.exception.EgovBizException; + +/** + * 게시글 로그 요약을 위한 스케줄링 + * @author 이다솜 + * + */ +@Component +public class BbsLogScheduling { + + @Resource(name="BbsLogService") + private BbsLogService bbsLogService; + + /** + * 게시글 로그 요약 등록 + * @throws Exception + */ + @Scheduled(cron = "0 30 10 * * *") + public void insertBbsLogSummary() throws EgovBizException { + bbsLogService.insertBbsLogSummary(); + } + +} Property changes on: base3.10/src/main/java/egovframework/com/sym/log/blg/task/BbsLogScheduling.java ___________________________________________________________________ Added: svn:mime-type + text/plain Index: base3.10/src/main/resources/egovframework/spring/com/context-common.xml =================================================================== --- base3.10/src/main/resources/egovframework/spring/com/context-common.xml (revision 141) +++ base3.10/src/main/resources/egovframework/spring/com/context-common.xml (revision 142) @@ -2,8 +2,12 @@ <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" + xmlns:task="http://www.springframework.org/schema/task" + xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd - http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd + http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"> <context:component-scan base-package="egovframework,froala"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/> @@ -13,6 +17,12 @@ <context:annotation-config/> + <!-- Activates @Scheduled and @Async annotations for scheduling --> + <task:annotation-driven /> + + <!-- @Aspect annotation --> + <aop:aspectj-autoproxy/> + <!-- 국제화 Message 설정 --> <bean id="messageSource" class="egovframework.com.cmm.util.EgovWildcardReloadableResourceBundleMessageSource"> <property name="egovBasenames"> Index: base3.10/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml =================================================================== --- base3.10/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml (revision 141) +++ base3.10/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml (revision 142) @@ -3,13 +3,9 @@ xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" - xmlns:aop="http://www.springframework.org/schema/aop" - xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd - http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd - http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd - http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd"> + http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <context:component-scan base-package="egovframework,froala"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> @@ -17,12 +13,6 @@ <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/> </context:component-scan> - <!-- 어노테이션 기반 AOP 설정 --> - <aop:aspectj-autoproxy/> - - <!-- Activates @Scheduled and @Async annotations for scheduling --> - <task:annotation-driven /> - <!-- For Pagination Tag --> <bean id="adminRenderer" class="egovframework.com.cmm.AdminPaginationRenderer"/> <bean id="userRenderer" class="egovframework.com.cmm.UserPaginationRenderer"/> Index: base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleList.jsp =================================================================== --- base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleList.jsp (revision 141) +++ base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleList.jsp (revision 142) @@ -182,7 +182,7 @@ <ul> <c:forEach items="${resultList}" var="resultInfo" varStatus="status"> <li> - <c:if test="${empty resultInfo.rprsAtchFileLink }"> + <c:if test="${empty resultInfo.thumbnail }"> <div class="b_thumb"> <a href="#!" onclick="fn_egov_inquire_articledetail('${resultInfo.bbsId }', '${resultInfo.nttId }');" class="bg_box no_img"> <img src="/images/user/no_img.svg" alt="${resultInfo.nttSj } 대표이미지"> @@ -190,10 +190,11 @@ </a> </div> </c:if> - <c:if test="${!empty resultInfo.rprsAtchFileLink }"> + <c:if test="${!empty resultInfo.thumbnail }"> <div class="b_thumb "> <a href="#!" onclick="fn_egov_inquire_articledetail('${resultInfo.bbsId }', '${resultInfo.nttId }');" class="bg_box"> - <img src="${resultInfo.rprsAtchFileLink }" alt="${resultInfo.nttSj } 대표이미지"> +<%-- <img src="${resultInfo.rprsAtchFileLink }" alt="${resultInfo.nttSj } 대표이미지"> --%> + ${resultInfo.thumbnail } </a> </div> </c:if> Index: base3.10/pom.xml =================================================================== --- base3.10/pom.xml (revision 141) +++ base3.10/pom.xml (revision 142) @@ -686,6 +686,12 @@ <version>1.18.0</version> </dependency> + <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup --> + <dependency> + <groupId>org.jsoup</groupId> + <artifactId>jsoup</artifactId> + <version>1.14.3</version> + </dependency> </dependencies> <build> <defaultGoal>install</defaultGoal>
Add a comment
List