소장자료 상세조회 목차, 유사한자료, 함께볼만한자료 개발

This commit is contained in:
JSYOO 2021-11-15 17:57:07 +09:00
parent 980d0d5865
commit 48c4cb7761
8 changed files with 138 additions and 211 deletions

View File

@ -100,4 +100,20 @@ public interface CollectionService {
*/
public void insertDataInquiryLog(CollectionVO colVO) throws Exception;
/**
* 함께 볼만한 자료 리스트
* @param vo
* @return
* @throws Exception
*/
public List<CollectionVO> selectSeeTogetherList(CollectionVO vo) throws Exception;
/**
* 유사한 자료 리스트
* @param vo
* @return
* @throws Exception
*/
public List<CollectionVO> selectSimilarList(CollectionVO vo) throws Exception;
}

View File

@ -104,6 +104,14 @@ public class CollectionVO extends PagingVO {
protected String regId; /* 등록자ID */
protected String modId; /* 변경자ID */
protected String mUseYn; /* 관심여부 */
protected String digitalReadYn; /**/
public String getDigitalReadYn() {
return digitalReadYn;
}
public void setDigitalReadYn(String digitalReadYn) {
this.digitalReadYn = digitalReadYn;
}
//--------------------------------------------
// 카트/관심 항목
@ -145,6 +153,11 @@ public class CollectionVO extends PagingVO {
protected String resultCode; /* 결과코드 */
protected String resultMessage; /* 결과메시지 */
//---------------------------------------------
// 상세조회 페이지 함께 볼만한 자료관련
//---------------------------------------------
protected String deptNm; /* 관리부서이름 */
protected String domainHostNm; /* 관리부서 호스트주소 */
// 생성자
public CollectionVO() {
super();
@ -824,6 +837,21 @@ public class CollectionVO extends PagingVO {
public void setTypeDivNm(String typeDivNm) {
this.typeDivNm = typeDivNm;
}
public String getDeptNm() {
return deptNm;
}
public void setDeptNm(String deptNm) {
this.deptNm = deptNm;
}
public String getDomainHostNm() {
return domainHostNm;
}
public void setDomainHostNm(String domainHostNm) {
this.domainHostNm = domainHostNm;
}
}

View File

@ -1,5 +1,7 @@
package nlib.col.service.impl;
import java.util.List;
import egovframework.rte.psl.dataaccess.mapper.Mapper;
import nlib.col.service.CollectionVO;
@ -9,4 +11,8 @@ public interface CollectionDAO {
public CollectionVO selectMngOrgInfo(String masterId) throws Exception;
public void insertDataInquiryLog(CollectionVO vo) throws Exception;
public List<CollectionVO> selectSeeTogetherList(CollectionVO vo) throws Exception;
public List<CollectionVO> selectSimilarList(CollectionVO vo) throws Exception;
}

View File

@ -307,4 +307,24 @@ public class CollectionServiceImpl implements CollectionService {
collectionDAO.insertDataInquiryLog(colVO);
}
/**
* 함께 볼만한 자료 리스트
*
* @param vo
* @return
*/
public List<CollectionVO> selectSeeTogetherList(CollectionVO vo) throws Exception {
return collectionDAO.selectSeeTogetherList(vo);
}
/**
* 유사한 자료 리스트
*
* @param vo
* @return
*/
public List<CollectionVO> selectSimilarList(CollectionVO vo) throws Exception {
return collectionDAO.selectSimilarList(vo);
}
}

View File

@ -261,8 +261,10 @@ public class NlibSearchController extends NlibCommonController {
, HttpServletRequest request
, HttpServletResponse res
) throws Exception {
HttpSession session = request.getSession();
String masterId = request.getParameter("masterId");
String mbInfoId = getMbInfoId(request);
List<String> mngOrgList = new ArrayList<>();
//사용자 정보를 가져온다.
NlibLoginVO loginVO = getNlibLoginVO(authentication);
@ -272,6 +274,27 @@ public class NlibSearchController extends NlibCommonController {
vo.setMbInfoId(mbInfoId);
vo = collectionService.getItemInfo(vo,NlibProperty.getString("thumbnail.image.url.big"));
String councilCd = (String)session.getAttribute("councilCd");
vo.setMngOrgCd(councilCd);
//함께 볼만한 자료
List<CollectionVO> seeTogetherListVO = collectionService.selectSeeTogetherList(vo);
//유사한 자료
List<CollectionVO> similarListVO = collectionService.selectSimilarList(vo);
//관리부서명 중복 제외하고 리스트생성
for(int i=0; similarListVO.size() > i; i++)
{
if(!mngOrgList.contains(similarListVO.get(i).getDeptNm()))
{
mngOrgList.add(similarListVO.get(i).getDeptNm());
}
}
model.addAttribute("seeTogetherListVO", seeTogetherListVO);
model.addAttribute("similarListVO", similarListVO);
model.addAttribute("mngOrgList",mngOrgList);
//반납예정일 편집
if(!(vo == null) && !StringUtil.getString(vo.getRtnExpctDd(),"").equals(""))
{

View File

@ -57,6 +57,14 @@ $(document).ready(function(){
})
//다른자료 상세보기
function goDetail(masterId){
$("#masterId").val(masterId);
document.referenceDetailForm.action="/search/searchItemDetail.do";
document.referenceDetailForm.submit();
}
function goList(){
document.referenceDetailForm.action="/search/searchList.do";
document.referenceDetailForm.submit();
@ -88,7 +96,7 @@ function goList(){
<input type="hidden" name="ageCode" value="<c:out value='${searchVO.ageCode}'/>"/>
<input type="hidden" name="collectionList" value="<c:out value='${searchVO.collectionList}'/>"/>
<input type="hidden" name="realQuery" value="<c:out value='${searchVO.realQuery}'/>"/>
<input type="hidden" id="masterId" name="masterId" value="" />
<h2 class="blind">소장자료 상세페이지 섹션영역</h2>
<div class="inner">
@ -277,10 +285,11 @@ function goList(){
<button type="button" class="down-btn">down-btn</button>
</div>
<div class="bottom h-down">
<p><c:out value="${result.bookIndex }"/></p>
<p><c:if test="${empty result.bookIndex }">없음</c:if><c:out value="${result.bookIndex }"/></p>
</div>
</div>
<c:if test="${fn:length(seeTogetherListVO) > 0 }">
<div class="con-3">
<div class="bottom">
<!-- Swiper -->
@ -289,77 +298,21 @@ function goList(){
<h3><span>함께 볼만한</span>자료</h3>
</div>
<div class="swiper-wrapper">
<c:forEach var="result" items="${seeTogetherListVO}" varStatus="status">
<div class="swiper-slide">
<div class="List">
<div class="List" onclick="goDetail('${result.masterId}');">
<div class="con-1">
<div class="tit underline pink">국역 경주읍지</div>
<div class="tit underline pink">${result.title }</div>
</div>
<div class="con-2">
<p class="typ"><span>자료유형</span><span>도서간행물 &gt; 연속간행물</span></p>
<p class="sub"><span>주제분야</span><span>자연과지리 &gt; 자연환경</span></p>
<p class="age"><span>생산기관</span><span>경북경주문화원</span></p>
<p class="yea"><span>생산년도</span><span>2003</span></p>
<p class="typ"><span>자료유형</span><span><c:if test="${empty result.typeDivNm and empty result.dtlsTypeDivNm}">-</c:if> ${result.typeDivNm } <c:if test="${!empty result.typeDivNm and !empty result.dtlsTypeDivNm}">&gt;</c:if>${result.dtlsTypeDivNm}</span></p>
<p class="sub"><span>주제분야</span><span><c:if test="${empty result.subjectNmUp and empty result.subjectNm}">-</c:if> ${result.subjectNm } <c:if test="${!empty result.subjectNmUp and !empty result.subjectNm}">&gt;</c:if>${result.subjectNm}</span></span></p>
<p class="age"><span>생산기관</span><span><c:if test="${empty result.orgNm }">-</c:if>${result.orgNm }</span></p>
<p class="yea"><span>생산년도</span><span><c:if test="${empty result.creatYyyy }">-</c:if>${result.creatYyyy }</span></p>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="List">
<div class="con-1">
<div class="tit underline pink">국역 경주읍지</div>
</div>
<div class="con-2">
<p class="typ"><span>자료유형</span><span>도서간행물 &gt; 연속간행물</span></p>
<p class="sub"><span>주제분야</span><span>자연과지리 &gt; 자연환경</span></p>
<p class="age"><span>생산기관</span><span>경북경주문화원</span></p>
<p class="yea"><span>생산년도</span><span>2003</span></p>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="List">
<div class="con-1">
<div class="tit underline pink">국역 경주읍지</div>
</div>
<div class="con-2">
<p class="typ"><span>자료유형</span><span>도서간행물 &gt; 연속간행물</span></p>
<p class="sub"><span>주제분야</span><span>자연과지리 &gt; 자연환경</span></p>
<p class="age"><span>생산기관</span><span>경북경주문화원</span></p>
<p class="yea"><span>생산년도</span><span>2003</span></p>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="List">
<div class="con-1">
<div class="tit underline pink">국역 경주읍지</div>
</div>
<div class="con-2">
<p class="typ"><span>자료유형</span><span>도서간행물 &gt; 연속간행물</span></p>
<p class="sub"><span>주제분야</span><span>자연과지리 &gt; 자연환경</span></p>
<p class="age"><span>생산기관</span><span>경북경주문화원</span></p>
<p class="yea"><span>생산년도</span><span>2003</span></p>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="List">
<div class="con-1">
<div class="tit underline pink">국역 경주읍지</div>
</div>
<div class="con-2">
<p class="typ"><span>자료유형</span><span>도서간행물 &gt; 연속간행물</span></p>
<p class="sub"><span>주제분야</span><span>자연과지리 &gt; 자연환경</span></p>
<p class="age"><span>생산기관</span><span>경북경주문화원</span></p>
<p class="yea"><span>생산년도</span><span>2003</span></p>
</div>
</div>
</div>
</c:forEach>
</div>
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
@ -368,162 +321,40 @@ function goList(){
<!-- Swiper end -->
</div>
</div>
</c:if>
</div>
<div class="row-bottom">
<c:if test="${fn:length(similarListVO) > 0 }">
<div class="con-4">
<div class="top">
<h3><span>이 자료와 유사한</span>자료</h3>
<p><strong>“ 경산문화원, 경주문화원, 고령문화 ”</strong> 에 있습니다</p>
<p><strong>“ <c:forEach items="${mngOrgList }" var="list" varStatus="status"><c:if test="${status.count ne 1}"> ,</c:if>${list }</c:forEach> ”</strong> 에 있습니다</p>
</div>
<div class="bottom">
<!-- Swiper -->
<div class="swiper DetailSwiper2">
<div class="swiper-wrapper items cover">
<c:forEach var="result" items="${similarListVO}" varStatus="status">
<div class="swiper-slide">
<div class="List">
<div class="List" onclick="gfn_getDetail('${result.masterId}','${result.domainHostNm }');">
<div class="inner">
<div class="thumbnail">
<span class="image-frame"><img src="/images/img/img-sec6-01.jpg" alt=""/></span>
<span class="image-frame"><img src="${result.rprsThumbUrlWithDefault }" alt=""/></span>
<div class="detail-cover">
<strong>2011 신라문화스토리텔러 교육교재 이론</strong>
<strong>${result.title }</strong>
<ul>
<li><em>주제유형</em>도서간행물</li>
<li><em>주제분야</em>문화유산</li>
<li><em>생산기관</em>마포문화원</li>
<li><em>생산년도</em>미상</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="List">
<div class="inner">
<div class="thumbnail">
<span class="image-frame"><img src="/images/img/img-sec6-01.jpg" alt=""/></span>
<div class="detail-cover">
<strong>2011 신라문화스토리텔러 교육교재 이론</strong>
<ul>
<li><em>주제유형</em>도서간행물</li>
<li><em>주제분야</em>문화유산</li>
<li><em>생산기관</em>마포문화원</li>
<li><em>생산년도</em>미상</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="List">
<div class="inner">
<div class="thumbnail">
<span class="image-frame"><img src="/images/img/img-sec6-01.jpg" alt=""/></span>
<div class="detail-cover">
<strong>2011 신라문화스토리텔러 교육교재 이론</strong>
<ul>
<li><em>주제유형</em>도서간행물</li>
<li><em>주제분야</em>문화유산</li>
<li><em>생산기관</em>마포문화원</li>
<li><em>생산년도</em>미상</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="List">
<div class="inner">
<div class="thumbnail">
<span class="image-frame"><img src="/images/img/img-sec6-01.jpg" alt=""/></span>
<div class="detail-cover">
<strong>2011 신라문화스토리텔러 교육교재 이론</strong>
<ul>
<li><em>주제유형</em>도서간행물</li>
<li><em>주제분야</em>문화유산</li>
<li><em>생산기관</em>마포문화원</li>
<li><em>생산년도</em>미상</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="List">
<div class="inner">
<div class="thumbnail">
<span class="image-frame"><img src="/images/img/img-sec6-01.jpg" alt=""/></span>
<div class="detail-cover">
<strong>2011 신라문화스토리텔러 교육교재 이론</strong>
<ul>
<li><em>주제유형</em>도서간행물</li>
<li><em>주제분야</em>문화유산</li>
<li><em>생산기관</em>마포문화원</li>
<li><em>생산년도</em>미상</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="List">
<div class="inner">
<div class="thumbnail">
<span class="image-frame"><img src="/images/img/img-sec6-01.jpg" alt=""/></span>
<div class="detail-cover">
<strong>2011 신라문화스토리텔러 교육교재 이론</strong>
<ul>
<li><em>주제유형</em>도서간행물</li>
<li><em>주제분야</em>문화유산</li>
<li><em>생산기관</em>마포문화원</li>
<li><em>생산년도</em>미상</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="List">
<div class="inner">
<div class="thumbnail">
<span class="image-frame"><img src="/images/img/img-sec6-01.jpg" alt=""/></span>
<div class="detail-cover">
<strong>2011 신라문화스토리텔러 교육교재 이론</strong>
<ul>
<li><em>주제유형</em>도서간행물</li>
<li><em>주제분야</em>문화유산</li>
<li><em>생산기관</em>마포문화원</li>
<li><em>생산년도</em>미상</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="List">
<div class="inner">
<div class="thumbnail">
<span class="image-frame"><img src="/images/img/img-sec6-01.jpg" alt=""/></span>
<div class="detail-cover">
<strong>2011 신라문화스토리텔러 교육교재 이론</strong>
<ul>
<li><em>주제유형</em>도서간행물</li>
<li><em>주제분야</em>문화유산</li>
<li><em>생산기관</em>마포문화원</li>
<li><em>생산년도</em>미상</li>
<li><em>주제유형</em><c:if test="${empty result.typeDivNm}">-</c:if>${result.typeDivNm }</li>
<li><em>주제분야</em><c:if test="${empty result.subjectNmUp}">-</c:if>${result.subjectNmUp }</li>
<li><em>생산기관</em><c:if test="${empty result.orgNm }">-</c:if>${result.orgNm }</li>
<li><em>생산년도</em><c:if test="${empty result.creatYyyy }">-</c:if>${result.creatYyyy }</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</c:forEach>
</div>
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
@ -532,7 +363,7 @@ function goList(){
<!-- Swiper end -->
</div>
</div>
</c:if>
<div class="btn-box">
<button type="button" class="btn btn-black" onclick="goList();">목록으로</button>
</div>

View File

@ -534,11 +534,14 @@ function gfn_gotoUrl(url) {
location.href = url;
}
function gfn_getDetail(masterId) {
function gfn_getDetail(masterId, host) {
if(fn_isEmpty(host)) host = "";
else host = "https://" + host + ".nculture.org";
var form = document.createElement("form");
form.style.display = "none";
$(form).attr("action", "/search/searchItemDetail.do");
$(form).attr("action", host + "/search/searchItemDetail.do");
$(form).attr("method", "post");
$(form).attr("target", "_blank");