메인화면 속도
This commit is contained in:
parent
d8e7db7d68
commit
7a3b0cfe87
@ -100,26 +100,11 @@ public class MainController extends NlibCommonController {
|
||||
model.addAttribute("listOrgPicks", mainService.listOrgPicks(mngOrgCd));
|
||||
|
||||
// 유형별 인기자료
|
||||
List<Map<String, String>> listTypeDivCodes = codeService.listTypeDivCodes();
|
||||
List<CollectionVO> listPops = new ArrayList<CollectionVO>();
|
||||
if(listTypeDivCodes != null) {
|
||||
Map<String, String> itemMap = null;
|
||||
String typeDivCd = null;
|
||||
for(int i = (listTypeDivCodes.size() - 1); i>=0; i--) {
|
||||
itemMap = listTypeDivCodes.get(i);
|
||||
typeDivCd = itemMap.get("typeDivCd");
|
||||
List<CollectionVO> listPopsTemp = mainService.listPops(mngOrgCd, typeDivCd);
|
||||
if(listPopsTemp == null || listPopsTemp.size() < 1) {
|
||||
listTypeDivCodes.remove(i);
|
||||
continue;
|
||||
}
|
||||
for(CollectionVO col : listPopsTemp) {
|
||||
listPops.add(col);
|
||||
}
|
||||
}
|
||||
}
|
||||
//List<Map<String, String>> listTypeDivCodes = codeService.listTypeDivCodes();
|
||||
//model.addAttribute("listTypeDivCodes", listTypeDivCodes);
|
||||
|
||||
List<CollectionVO> listPops = mainService.listPops(mngOrgCd, null); // 전체
|
||||
model.addAttribute("listPops", listPops);
|
||||
model.addAttribute("listTypeDivCodes", listTypeDivCodes);
|
||||
|
||||
// 온라인자료관
|
||||
model.addAttribute("listOnline", mainService.listOnline(mngOrgCd));
|
||||
|
||||
@ -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 @@
|
||||
|
||||
<!-- 유형별인기자료 -->
|
||||
<select id="listPops" parameterType="CollectionVO" resultType="CollectionVO">
|
||||
<![CDATA[
|
||||
/* listPops */
|
||||
SELECT
|
||||
M.MASTER_ID
|
||||
@ -86,22 +85,24 @@
|
||||
FROM RG_MASTER M
|
||||
INNER JOIN (
|
||||
/* 자료 상세조회 이력 현황 */
|
||||
SELECT A.MASTER_ID , COUNT(1) AS CNT
|
||||
SELECT A.MASTER_ID
|
||||
, COUNT(1) AS CNT
|
||||
FROM MB_VIEW_LOG A
|
||||
INNER JOIN RG_MASTER B ON (A.MASTER_ID = B.MASTER_ID)
|
||||
WHERE A.MNG_ORG_CD = #{mngOrgCd}
|
||||
<if test='typeDivCd != null'>
|
||||
AND B.TYPE_DIV_CD = #{typeDivCd}
|
||||
</if>
|
||||
AND B.USE_FLAG = 'Y'
|
||||
AND B.OPEN_DIV_CD != '3' /* 공개구분 : 공개, 부분공개 */
|
||||
AND B.REG_STATUS = 'REG_OK' /* 등록상태 : 등록완료 */
|
||||
GROUP BY A.MASTER_ID
|
||||
ORDER BY COUNT(1) DESC) M2 ON (M.MASTER_ID = M2.MASTER_ID)
|
||||
ORDER BY COUNT(1) DESC
|
||||
LIMIT 4) M2 ON (M.MASTER_ID = M2.MASTER_ID)
|
||||
LEFT OUTER JOIN SM_CODE_S C1 ON M.TYPE_DIV_CD = C1.S_CODE_ID AND C1.L_CODE_ID = 'MASTER_TYPE_DIV_CD'
|
||||
LEFT OUTER JOIN SM_CODE_S C2 ON M.DTLS_TYPE_DIV_CD = C2.S_CODE_ID AND C2.L_CODE_ID = 'DTLS_TYPE_DIV_CD'
|
||||
WHERE M.MNG_ORG_CD = #{mngOrgCd}
|
||||
AND M.TYPE_DIV_CD = #{typeDivCd}
|
||||
AND M.USE_FLAG = 'Y'
|
||||
AND M.OPEN_DIV_CD != '3' /* 공개구분 : 공개, 부분공개 */
|
||||
AND M.REG_STATUS = 'REG_OK' /* 등록상태 : 등록완료 */
|
||||
ORDER BY M2.CNT DESC, M.MOD_DD DESC, M.REG_DD DESC
|
||||
LIMIT 4
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 온라인자료관 -->
|
||||
|
||||
@ -230,28 +230,19 @@ function fn_listPops(typeDivCd) {
|
||||
</section>
|
||||
|
||||
<!-- 섹션5 -->
|
||||
<c:if test="${fn:length(listTypeDivCodes) > 0 }">
|
||||
<c:if test="${fn:length(listPops) > 0 }">
|
||||
<section class="sec5">
|
||||
<h2 class="blind">인기자료 섹션영역</h2>
|
||||
<div class="inner">
|
||||
<h3 class="title"><span>유형별</span> 인기자료</h3>
|
||||
<p class="desc">자료유형별로 이런 인기자료들이 있어요!</p>
|
||||
<div class="tab">
|
||||
<div class="mo_tabs_wrap">
|
||||
<ul class="tabs">
|
||||
<c:forEach var="itemTypeDivCode" items="${listTypeDivCodes }">
|
||||
<li><a href="javascript:void(0)" onclick="javascript:fn_listPops('${itemTypeDivCode.typeDivCd}')">${itemTypeDivCode.typeDivNm}</a></li>
|
||||
</c:forEach>
|
||||
</ul>
|
||||
</div>
|
||||
<h3 class="title"><span>인기</span> 자료</h3>
|
||||
<p class="desc">이런 인기자료들이 있어요!</p>
|
||||
<div class="tab">
|
||||
|
||||
<div class="tab_content">
|
||||
<c:forEach var="itemTypeDivCode" items="${listTypeDivCodes }">
|
||||
<div class="tabs_item" id="listPops_${itemTypeDivCode.typeDivCd}">
|
||||
<div class="tabs_item" id="listPops_ALL">
|
||||
<div class="swiper popularSwiper">
|
||||
<ul class="swiper-wrapper">
|
||||
<c:forEach var="itemPop" items="${listPops }">
|
||||
<c:if test='${itemPop.typeDivCd eq itemTypeDivCode.typeDivCd }'>
|
||||
<li class="swiper-slide">
|
||||
<div class="con-1">
|
||||
<div class="block"><span class="cla">${itemPop.typeDivNm }</span></div>
|
||||
@ -263,14 +254,13 @@ function fn_listPops(typeDivCd) {
|
||||
<p class="yea"><span>생산년도</span><span><c:if test="${empty itemPop.creatYyyy }">-</c:if>${itemPop.creatYyyy }</span></p>
|
||||
</div>
|
||||
</li>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</ul>
|
||||
<div class="swiper-pagination"></div>
|
||||
</div>
|
||||
</div>
|
||||
</c:forEach>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user