메인 : 인기자료 추가된 테이블 반영 및 조건 조정

This commit is contained in:
KNKIM 2021-11-15 15:56:47 +09:00
parent 70591f37e8
commit b8b778b160
2 changed files with 73 additions and 57 deletions

View File

@ -9,8 +9,9 @@
SELECT T.KEY_NAME, COUNT(KEY_NAME) AS CNT
FROM (
SELECT
TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(RM.KEYWORD, ';', NUMBERS.N), ';', -1)) AS KEY_NAME
FROM (WITH RECURSIVE W1 AS (
TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(replace(RM.KEYWORD,',',';'), ';', NUMBERS.N), ';', -1)) AS KEY_NAME
FROM ( /* 키워드 길이 1000 이므로, 최대 가능 키워드수 500으로 맞춤 */
WITH RECURSIVE W1 AS (
SELECT 1 AS N
UNION ALL
SELECT 1+W1.N AS N
@ -20,12 +21,12 @@
SELECT N FROM W1
) NUMBERS
INNER JOIN RG_MASTER RM
ON CHAR_LENGTH(RM.KEYWORD)-CHAR_LENGTH(REPLACE(RM.KEYWORD, ';', '')) >= NUMBERS.N-1
AND RM.MNG_ORG_CD = #{mngOrgCd}
AND RM.OPEN_DIV_CD ='1'
AND RM.REG_STATUS = 'REG_OK'
ON CHAR_LENGTH(RM.KEYWORD)-CHAR_LENGTH(REPLACE(replace(RM.KEYWORD,',',';'), ';', '')) >= NUMBERS.N-1
AND RM.USE_FLAG = 'Y'
AND RM.OPER_READ_RANGE_CD IN ('01','02')
AND RM.MNG_ORG_CD = #{mngOrgCd}
AND RM.OPEN_DIV_CD != '3'
AND RM.REG_STATUS = 'REG_OK'
AND RM.OPER_READ_RANGE_CD != '03' /* 전체열람, 목록열람으로 한정 : 열람불가 제외 */
) T
GROUP BY T.KEY_NAME
ORDER BY CNT DESC, T.KEY_NAME
@ -42,14 +43,16 @@
, TYPE_DIV_NM
, RPRS_THUMB_URL
FROM (
/* 문화원 PICK한 자료 */
(SELECT
(/* 문화원 PICK한 자료 */
SELECT
1 AS RNK
, M1.MASTER_ID
, M1.TITLE
, M1.TYPE_DIV_CD
, TDC.S_CODE_NM AS TYPE_DIV_NM
, M1.RPRS_THUMB_URL
, M1.REG_DD
, M1.MOD_DD
FROM BD_NLIB_RECOM_MASTER R
INNER JOIN RG_MASTER M1
ON R.MASTER_ID = M1.MASTER_ID
@ -58,31 +61,33 @@
AND M1.OPEN_DIV_CD = '1' /* 공개구분 : 공개 */
AND M1.REG_STATUS = 'REG_OK' /* 등록상태 : 등록완료 */
AND M1.USE_FLAG = 'Y'
ORDER BY M1.MOD_DD DESC, M1.REG_DD DESC
LIMIT 10)
UNION
/* 문화원 PICK한 자료가 없거나 충분치 않은 경우, 대출/열람/온라인 가능 자료 중 최근 변경된 자료 */
(SELECT
(/* 문화원 PICK한 자료가 없거나 충분치 않은 경우, 대출/열람/온라인 가능 자료 중 최근 변경된 자료로 대체 */
SELECT
2 AS RNK
, M2.MASTER_ID
, M2.TITLE
, M2.TYPE_DIV_CD
, TDC.S_CODE_NM AS TYPE_DIV_NM
, M2.RPRS_THUMB_URL
, M2.REG_DD
, M2.MOD_DD
FROM RG_MASTER M2
JOIN SM_CODE_S TDC ON M2.TYPE_DIV_CD = TDC.S_CODE_ID AND TDC.L_CODE_ID = 'MASTER_TYPE_DIV_CD'
WHERE M2.MNG_ORG_CD = #{mngOrgCd}
AND M2.OPEN_DIV_CD = '1' /* 공개구분 : 공개 */
AND M2.REG_STATUS = 'REG_OK' /* 등록상태 : 등록완료 */
AND M2.USE_FLAG = 'Y'
AND M2.OPER_OUT_RANGE_CD = '01' /* 대출구분 : 대출가능 */
AND M2.OPER_READ_RANGE_CD = '01' /* 열람 : 전체열람 */
AND M2.OPEN_DIV_CD != '3' /* 공개구분 : 공개, 부분공개 */
AND M2.REG_STATUS = 'REG_OK' /* 등록상태 : 등록완료 */
AND (M2.OPER_OUT_RANGE_CD = '01' /* 대출구분 : 대출가능 */
OR M2.OPER_READ_RANGE_CD = '01' /* 열람 : 전체열람 */
OR M2.DIGITAL_READ_YN = 'Y') /* 디지탈열람여부 */
AND IFNULL(M2.PE_STATUS, '') = '' /* 보존상태 */
AND IFNULL(M2.BOOKCASE_ID, '') != '' /* 서가아이디 존재 */
AND M2.DIGITAL_READ_YN = 'Y' /* 디지탈열람여부 */
ORDER BY M2.MOD_DD DESC
ORDER BY M2.MOD_DD DESC, M2.REG_DD DESC
LIMIT 10 )
) T
ORDER BY RNK
ORDER BY RNK, T.MOD_DD DESC, T.REG_DD DESC
LIMIT 10
]]>
</select>
@ -90,7 +95,7 @@
<!-- 유형별인기자료 -->
<select id="listPops" parameterType="CollectionVO" resultType="CollectionVO">
<![CDATA[
/* 현재 테이블 생성전으로 테이블 생성 후 변경 예정 */
/* listPops */
SELECT
M.MASTER_ID
, M.TITLE
@ -113,19 +118,22 @@
, M.ORG_NM
, M.CREAT_YYYY
FROM RG_MASTER M
INNER JOIN (
/* 자료 상세조회 이력 현황 */
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}
GROUP BY A.MASTER_ID
ORDER BY COUNT(1) DESC) 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 = IFNULL(#{typeDivCd},'IT_DOC') /* 자료유형 : 문서 기본 */
AND M.OPEN_DIV_CD = '1' /* 공개구분 : 공개 */
AND M.REG_STATUS = 'REG_OK' /* 등록상태 : 등록완료 */
AND M.TYPE_DIV_CD = #{typeDivCd}
AND M.USE_FLAG = 'Y'
AND M.OPER_OUT_RANGE_CD = '01' /* 대출구분 : 대출가능 */
AND M.OPER_READ_RANGE_CD = '01' /* 열람 : 전체열람 */
AND IFNULL(M.PE_STATUS, '') = '' /* 보존상태 */
AND IFNULL(M.BOOKCASE_ID, '') != '' /* 서가아이디 존재 */
AND M.DIGITAL_READ_YN = 'Y' /* 디지탈열람여부 */
ORDER BY M.MOD_DD DESC
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>
@ -157,13 +165,13 @@
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.OPEN_DIV_CD = '1' /* 공개구분 : 공개 */
/* AND M.REG_STATUS = 'REG_OK' -- DDDDDDDDDDDDDDDDD 확인데이터 없어서 임시 주석 막음 */ /* 등록상태 : 등록완료 */
AND M.USE_FLAG = 'Y'
AND IFNULL(M.PE_STATUS, '') = '' /* 보존상태 */
AND M.OPEN_DIV_CD != '3' /* 공개구분 : 공개 */
AND M.REG_STATUS = 'REG_OK' /* 등록상태 : 등록완료 */
/* AND IFNULL(M.PE_STATUS, '') = '' */ /* 보존상태 */
AND M.DIGITAL_READ_YN = 'Y' /* 디지탈열람여부 */
AND IFNULL(M.M_INTERFACE_ID, '') != ''/* IF존재하는 건 */
ORDER BY M.MOD_DD DESC
ORDER BY M.MOD_DD DESC, M.REG_DD DESC
LIMIT 10
]]>
</select>

View File

@ -48,7 +48,14 @@ function fn_viewAncmnt(articleId) {
return;
}
function fn_viewQna(articleId) {
function fn_viewQna(articleId, secretYn, myQnaYn) {
// 비밀글인 경우, 본인에 한하여 조회 가능
if(secretYn == "Y" && myQnaYn == "N") {
alert("비공개 게시물은 작성자만 확인할 수 있습니다.");
return;
}
var form = document.createElement("form");
form.style.display = "none";
$(form).attr("action", "/bbs/selectQnaArticle.do");
@ -101,7 +108,7 @@ function fn_listPops(typeDivCd) {
<div class="open"><img src="/images/icon/icon-plus.png" alt="플러스 아이콘"></div>
</div>
<div class="list">
<a href="javascript:void(0);" onclick="location.href = '/rent/listRequestsForViewingItem.do';"></a>
<a href="javascript:void(0);" onclick="location.href = '/read/listReadItems.do';"></a>
<div class="title">열람관리</div>
<div class="icon"><img src="/images/icon/icon-sec1-04.png" alt="열람 아이콘"></div>
<div class="open"><img src="/images/icon/icon-plus.png" alt="플러스 아이콘"></div>
@ -237,14 +244,15 @@ function fn_listPops(typeDivCd) {
<div class="List">
<div class="inner">
<div class="thumbnail">
<span class="image-frame"><img src="${itemOnline.rprsThumbUrlWithDefault }" alt="상세조회" /></span>
<span class="image-frame"><img src="${itemOnline.rprsThumbUrlWithDefault }" alt="썸네일" /></span>
<div class="detail-cover">
<strong>${itemOnline.title }</strong>
<ul>
<li><em>자료유형</em><c:if test="${empty itemOnline.typeDivNm }">-</c:if>${itemOnline.typeDivNm }</li>
<li><em>주제분야</em><c:if test="${empty itemOnline.subjectNmUp }">-</c:if>${itemOnline.subjectNmUp }</li>
<li><em>생산기관</em><c:if test="${empty itemOnline.orgNm }">-</c:if>${itemOnline.orgNm }</span></li>
<li><em>생산년도</em><c:if test="${empty itemOnline.creatYyyy }">-</c:if>${itemOnline.creatYyyy }</li>
<li><em>생산년도</em><c:if test="${empty itemOnline.creatYyyy }">-</c:if>${itemOnline.creatYyyy }
${itemOnline.masterId }</li>
</ul>
<div class="btn-box">
<div class="view"><a href="javascript:void(0)" onclick="gfn_showDocPdf('${itemOnline.interfaceId }','${itemOnline.masterId }')">원문보기</a></div>
@ -291,7 +299,7 @@ function fn_listPops(typeDivCd) {
<div class="con">
<c:forEach var="itemQna" items="${listQna }">
<div class="list">
<a href="javascript:void(0)" onclick="fn_viewQna('${itemQna.articleId}')">
<a href="javascript:void(0)" onclick="fn_viewQna('${itemQna.articleId}', '${itemQna.secretYn}', '${itemQna.myQnaYn}')">
<div class="box"><p>${fn:substring(itemQna.regDd,8,10) }</p><p> ${fn:substring(itemQna.regDd,2,4) }.${fn:substring(itemQna.regDd,5,7) }</p></div>
<div class="text">
<p>${itemQna.title}