상세조회 및 원문보기시 로그 insert

This commit is contained in:
JSYOO 2021-11-15 10:53:37 +09:00
parent 1a9197de86
commit 980d0d5865
10 changed files with 102 additions and 46 deletions

View File

@ -94,4 +94,10 @@ public interface CollectionService {
*/
public List<CollectionVO> makeInfoListOfCollectionVO(String masterIds, String mbInfoId, String defaultThumbnailUrl) throws Exception;
/**
* 자료상세조회 원문보기시에 로그
* @param colVO
*/
public void insertDataInquiryLog(CollectionVO colVO) throws Exception;
}

View File

@ -8,4 +8,5 @@ public interface CollectionDAO {
public CollectionVO selectMngOrgInfo(String masterId) throws Exception;
public void insertDataInquiryLog(CollectionVO vo) throws Exception;
}

View File

@ -297,4 +297,14 @@ public class CollectionServiceImpl implements CollectionService {
return setDetailInfoForList(retList, mbInfoId, defaultThumbnailUrl);
}
/**
* 자료상세조회 원문보기시에 로그
*
* @param colVO
* @return
*/
public void insertDataInquiryLog(CollectionVO colVO) throws Exception {
collectionDAO.insertDataInquiryLog(colVO);
}
}

View File

@ -17,6 +17,7 @@ import java.util.regex.Pattern;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -45,6 +46,7 @@ import nlib.col.service.RisService;
import nlib.sch.service.NlibSearchService;
import nlib.sch.service.NlibSearchVO;
import nlib.sch.util.NlibCmmUtil;
import nlib.user.service.NlibLoginVO;
import nlib.util.StringUtil;
@Controller
@ -89,6 +91,9 @@ public class NlibSearchController extends NlibCommonController {
, @ModelAttribute("searchVO") NlibSearchVO searchVO
, HttpServletRequest request
, HttpServletResponse res) throws Exception {
//사용자 정보를 가져온다.
NlibLoginVO loginVO = getNlibLoginVO(authentication);
List<CollectionVO> operList = new ArrayList();
// 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM)
List<Map<String,String>> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION");
@ -197,11 +202,49 @@ public class NlibSearchController extends NlibCommonController {
model.addAttribute("firstClassList", firstClassList);
model.addAttribute("secondClassList", secondClassList);
//로그인 상태인지 확인
model.addAttribute("loginVO", loginVO);
model.addAttribute("pdfUri", NlibProperty.getProperty("pdf.uri"));
searchVO.setQuery(searchVO.getQuery().replaceAll("\\\"", "&quot;"));
return "nlib/collection/searchList";
}
/**
* 자료상세조회 원문보기시에 로그
* @param req
* @param authentication
* @param paramMap
* @param model
* @param searchVO
* @param request
* @param res
*/
@RequestMapping(value = "/search/InsertDataInquiryLog.ajax")
@ResponseBody
public void InsertDataInquiryLog(HttpServletRequest req
, Authentication authentication
, @RequestParam Map<String, String> paramMap
, ModelMap model
, @ModelAttribute("searchVO") NlibSearchVO searchVO
, HttpServletRequest request
, HttpServletResponse res
) throws Exception {
HttpSession session = request.getSession();
String masterId = request.getParameter("masterId");
String mbInfoId = getMbInfoId(request);
String councilCd = (String)session.getAttribute("councilCd");
CollectionVO colVO = new CollectionVO();
colVO.setMasterId(masterId);
colVO.setMbInfoId(StringUtil.getString(mbInfoId,""));
colVO.setMngOrgCd(councilCd);
collectionService.insertDataInquiryLog(colVO);
}
/**
* 소장자료 상세조회
*
@ -221,6 +264,9 @@ public class NlibSearchController extends NlibCommonController {
String masterId = request.getParameter("masterId");
String mbInfoId = getMbInfoId(request);
//사용자 정보를 가져온다.
NlibLoginVO loginVO = getNlibLoginVO(authentication);
CollectionVO vo = new CollectionVO();
vo.setMasterId(masterId);
vo.setMbInfoId(mbInfoId);
@ -238,6 +284,7 @@ public class NlibSearchController extends NlibCommonController {
}
model.addAttribute("result", vo);
model.addAttribute("searchVO", searchVO);
model.addAttribute("loginVO", loginVO);
model.addAttribute("pdfUri", NlibProperty.getProperty("pdf.uri"));
return "nlib/collection/searchItemDetail";
}

View File

@ -12,4 +12,17 @@
WHERE A.MASTER_ID = #{masterId}
</select>
<insert id="insertDataInquiryLog" parameterType="CollectionVO">
INSERT INTO MB_VIEW_LOG(
MNG_ORG_CD
, MASTER_ID
, MB_INFO_ID
, REG_DD
) VALUES (
#{mngOrgCd}
, #{masterId}
, #{mbInfoId}
, SYSDATE()
)
</insert>
</mapper>

View File

@ -247,7 +247,7 @@ function fn_listPops(typeDivCd) {
<li><em>생산년도</em><c:if test="${empty itemOnline.creatYyyy }">-</c:if>${itemOnline.creatYyyy }</li>
</ul>
<div class="btn-box">
<div class="view"><a href="javascript:void(0)" onclick="gfn_showDocPdf('${itemOnline.interfaceId }')">원문보기</a></div>
<div class="view"><a href="javascript:void(0)" onclick="gfn_showDocPdf('${itemOnline.interfaceId }','${itemOnline.masterId }')">원문보기</a></div>
<div class="RIS"><a href="javascript:void(0)" onclick="risShow('${itemOnline.masterId }')">RIS</a></div>
</div>
</div>

View File

@ -224,7 +224,7 @@
}
if(!fn_isEmpty(obj.interfaceId) && !fn_isEmpty(obj.openDivCd) && obj.openDivCd != '3' && obj.digitalReadYn == 'Y')
{
t_btn+= "<button type=\"button\" class=\"btn-color\" onclick=\"gfn_showDocPdf('" + obj.interfaceId + "');\">원문보기</button>";
t_btn+= "<button type=\"button\" class=\"btn-color\" onclick=\"gfn_showDocPdf('" + obj.interfaceId + "','" + obj.masterId + "');\">원문보기</button>";
}
t_btn+= "<button type=\"button\" class=\"btn-gray\" onclick=\"risShow('" + obj.masterId +"');\">RIS</button>";

View File

@ -46,6 +46,17 @@
</head>
<body>
<script>
$(document).ready(function(){
//로그
$.ajax({
type: "post",
url: "/search/InsertDataInquiryLog.ajax",
data: {"masterId" : '<c:out value="${result.masterId}"/>'}
}).done(function(response){
});
})
function goList(){
document.referenceDetailForm.action="/search/searchList.do";
document.referenceDetailForm.submit();
@ -109,7 +120,7 @@ function goList(){
<div class="right">
<div class="con-1">
<c:if test="${(!empty result.openDivCd) && (result.openDivCd ne '3') && (!empty result.interfaceId) && result.digitalReadYn eq 'Y'}">
<button type="button" class="view" onclick="gfn_showDocPdf('<c:out value="${result.interfaceId}"/>')";>원문보기</button>
<button type="button" class="view" onclick="gfn_showDocPdf('<c:out value="${result.interfaceId}"/>','<c:out value="${result.masterId}"/>')";>원문보기</button>
</c:if>
<button type="button" class="ris" onclick="risShow('<c:out value="${result.masterId}"/>')";>RIS</button>
<c:if test='${result.MUseYn == "Y"}'>
@ -266,15 +277,7 @@ function goList(){
<button type="button" class="down-btn">down-btn</button>
</div>
<div class="bottom h-down">
<p><span>1부</span> <c:out value="${result.bookIndex }"/></p>
<p><span>2부</span> 역사 속의 경주2 - 금오산을 바라본 조선문인의 시선</p>
<p><span>3부</span> 경주문화제 핫이슈 - 타향살이 100년 ‘청와대 미남석불’, 이제는 고향 경주의 품으로</p>
<p><span>4부</span> 경주문화제 핫이슈 - 타향살이 100년 ‘청와대 미남석불’, 이제는 고향 경주의 품으로</p>
<p><span>5부</span> 경주문화제 핫이슈 - 타향살이 100년 ‘청와대 미남석불’, 이제는 고향 경주의 품으로</p>
<p><span>6부</span> 경주문화제 핫이슈 - 타향살이 100년 ‘청와대 미남석불’, 이제는 고향 경주의 품으로</p>
<p><span>7부</span> 경주문화제 핫이슈 - 타향살이 100년 ‘청와대 미남석불’, 이제는 고향 경주의 품으로</p>
<p><span>8부</span> 경주문화제 핫이슈 - 타향살이 100년 ‘청와대 미남석불’, 이제는 고향 경주의 품으로</p>
<p><span>9부</span> 경주문화제 핫이슈 - 타향살이 100년 ‘청와대 미남석불’, 이제는 고향 경주의 품으로</p>
<p><c:out value="${result.bookIndex }"/></p>
</div>
</div>
@ -537,38 +540,6 @@ function goList(){
</div>
</form>
</div>
<footer id="footer">
<button type="button" id="btn-go-top" class="btn-go-top"><span><img src="/images/icon/icon-arr-top.png" alt="상단 화살표"></span><p>TOP</p></button>
<div class="inner">
<div class="row-top">
<div class="footer-logo">
<h1><a href="#"><img src="/images/img/img-footer-logo.png" alt="푸터 로고"></a></h1>
</div>
<div class="family_site">
<p class="site_name">관련 사이트</p>
<ul class="site_depth">
<li><a href="/" target="_blank">01</a></li>
<li><a href="/" target="_blank">02</a></li>
</ul>
</div>
</div>
<div class="row-bottom">
<div class="left-side">
<ul class="fnb">
<li><a href="/">이용약관</a></li>
<li><a href="/">개인정보처리방침</a></li>
<li><a href="/">찾아오시는 길</a></li>
</ul>
<p class="copy">
서울시 마포대로49 성우빌딩 308호 <span><a href="tel:02-704-2322">TEL. 02.704-2322</a></span> <span>FAX. 02.704-2377</span> <br>
COPYRIGHT (C)2018 The Federation of Korea Culture Center. ALL RIGHT RESERVED.
</p>
</div>
</div>
</div>
</footer>
</div>
<div class="popup pop-sharing" id="div_pop-sharing" style="display:none;">

View File

@ -436,7 +436,7 @@ function fn_search_article(pageIndex) {
</c:otherwise>
</c:choose>
<c:if test="${(!empty result.openDivCd) && (result.openDivCd ne '3') && (!empty result.interfaceId) && result.digitalReadYn eq 'Y'}">
<button type="button" class="btn-color" onclick="gfn_showDocPdf('${result.interfaceId}')";>원문보기</button>
<button type="button" class="btn-color" onclick="gfn_showDocPdf('${result.interfaceId}','${result.masterId}')";>원문보기</button>
</c:if>
<button type="button" class="btn-gray" onclick="risShow('${result.masterId}')";>RIS</button>
</div>

View File

@ -425,7 +425,15 @@ function fn_formatDateStr(yyyymmdd, defVal) {
// 원문보기
var DOC_VIEW_URL = "https://port.nculture.org/npdfView.do?npdf=N";
function gfn_showDocPdf(interfaceId) {
function gfn_showDocPdf(interfaceId,masterId) {
//로그
$.ajax({
type: "post",
url: "/search/InsertDataInquiryLog.ajax",
data: {"masterId" : masterId}
}).done(function(response){
});
var openNewWindow = window.open(DOC_VIEW_URL + interfaceId, "_blank");
}