diff --git a/src/main/java/nlib/col/service/CollectionService.java b/src/main/java/nlib/col/service/CollectionService.java index a6894bb8..79c151a6 100644 --- a/src/main/java/nlib/col/service/CollectionService.java +++ b/src/main/java/nlib/col/service/CollectionService.java @@ -1,5 +1,6 @@ package nlib.col.service; +import java.util.HashMap; import java.util.List; /** @@ -65,6 +66,17 @@ public interface CollectionService { * @throws Exception */ public List setDetailInfoForList(List list, String mbInfoId, String defaultThumbnailUrl) throws Exception; + + /** + * 목록의 자료정보에 상세정보를 조회하여 설정한 후 리턴한다. + * + * @param list + * @param mbInfoId + * @param defaultThumbnailUrl + * @return + * @throws Exception + */ + public List setDetailInfoForHashList(List> list, String mbInfoId, String defaultThumbnailUrl) throws Exception; /** * 자료 마스터ID 목록 문자열을 받아 CollectionVO 리스트 생성하여 리턴한다. diff --git a/src/main/java/nlib/col/service/CollectionVO.java b/src/main/java/nlib/col/service/CollectionVO.java index f4cd1fbf..f64debf5 100644 --- a/src/main/java/nlib/col/service/CollectionVO.java +++ b/src/main/java/nlib/col/service/CollectionVO.java @@ -43,13 +43,13 @@ public class CollectionVO extends PagingVO { protected String mngOrgNm; /* 관리처리과명 */ protected String mngOrgCd; /* 관리처리과코드 */ protected String typeDivCd; /* 상위자료유형코드 */ - protected String typeCodeNm; /* 상위자료유형명 (도서간행물/문서/도면 등) */ + protected String typeDivNm; /* 상위자료유형명 (도서간행물/문서/도면 등) : API 이름이 변경됨 typeCodeNm -> typeDivNm */ protected String dtlsTypeDivCd; /* 세부유형코드 */ protected String dtlsTypeDivNm; /* 세부유형명 */ - protected String subjectNmUp; /* 상위주제분야명*/ - protected String subjectCodeUp ; /* 상위주제분야코드*/ + protected String subjectNmUp; /* 상위주제분야명*/ + protected String subjectCodeUp ; /* 상위주제분야코드*/ protected String subjectNm; /* 주제분야명 */ - protected String subjectCode; /* 주제분야코드 */ + protected String subjectCode; /* 주제분야코드 */ protected String orgNm; /* 생산기관명 */ protected String creatYyyy; /* 생산년도 */ protected String interfaceId; /* 지역N문화서비스ID */ @@ -200,11 +200,11 @@ public class CollectionVO extends PagingVO { return rprsThumbUrl; } public void setRprsThumbUrl(String rprsThumbUrl) { - this.rprsThumbUrl = rprsThumbUrl; + this.rprsThumbUrl = NlibProperty.getString("thumbnail.image.url.prefix", "") + rprsThumbUrl; } public void setRprsThumbUrl(String rprsThumbUrl, String defaultImgUrl) { if(StringUtil.isEmpty(rprsThumbUrl) || !rprsThumbUrl.startsWith("/")) this.rprsThumbUrl = defaultImgUrl; - else this.rprsThumbUrl = rprsThumbUrl; + else this.rprsThumbUrl = NlibProperty.getString("thumbnail.image.url.prefix", "") + rprsThumbUrl; } public String getUseYn() { return useYn; @@ -237,10 +237,10 @@ public class CollectionVO extends PagingVO { this.typeDivCd = typeDivCd; } public String getTypeCodeNm() { - return typeCodeNm; + return typeDivNm; } public void setTypeCodeNm(String typeCodeNm) { - this.typeCodeNm = typeCodeNm; + this.typeDivNm = typeCodeNm; } public String getSubjectNm() { return subjectNm; @@ -811,6 +811,14 @@ public class CollectionVO extends PagingVO { public void setReqDd(String reqDd) { this.reqDd = reqDd; } + + public String getTypeDivNm() { + return typeDivNm; + } + + public void setTypeDivNm(String typeDivNm) { + this.typeDivNm = typeDivNm; + } } diff --git a/src/main/java/nlib/col/service/ReadService.java b/src/main/java/nlib/col/service/ReadService.java index 9c2e920b..4309af43 100644 --- a/src/main/java/nlib/col/service/ReadService.java +++ b/src/main/java/nlib/col/service/ReadService.java @@ -2,6 +2,7 @@ package nlib.col.service; import java.util.HashMap; import java.util.List; +import java.util.Map; import nlib.restful.service.DataApiResVO; @@ -74,4 +75,12 @@ public interface ReadService { */ public DataApiResVO cancelReadItem(CollectionVO searchVO); + /** + * 사용자의 방문열람현황을 조회한다. + * + * @param mbInfoId + * @return + */ + public Map getReadStats(String mbInfoId); + } diff --git a/src/main/java/nlib/col/service/RentService.java b/src/main/java/nlib/col/service/RentService.java index 8f6f82ea..0a1a7d59 100644 --- a/src/main/java/nlib/col/service/RentService.java +++ b/src/main/java/nlib/col/service/RentService.java @@ -3,6 +3,7 @@ package nlib.col.service; import java.util.HashMap; import java.util.List; +import java.util.Map; import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; @@ -45,6 +46,14 @@ public interface RentService */ public List insertRentItems(List list, String mbInfoId, String mngOrgCd, boolean fromCart) throws Exception; + /** + * 사용자의 대출현황을 조회한다. + * + * @param mbInfoId + * @return + */ + public Map getRentStats(String mbInfoId); + // // /** // * 반납 연기 목록을 조회한다. diff --git a/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java b/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java index 7e3d3c16..2a7ba1dc 100644 --- a/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java @@ -227,6 +227,32 @@ public class CollectionServiceImpl implements CollectionService { } + /** + * 목록의 자료정보에 상세정보를 조회하여 설정한 후 리턴한다. + * + * @param list + * @param mbInfoId + * @param defaultThumbnailUrl + * @return + * @throws Exception + */ + public List setDetailInfoForHashList(List> list, String mbInfoId, String defaultThumbnailUrl) throws Exception { + + List listObj = new ArrayList(); + + if(list == null || list.size() < 1) return null; + + for(HashMap record : list) { + CollectionVO cVO = (CollectionVO)XmlConverter.convertMapToObject(record, CollectionVO.class); + if(cVO != null && StringUtil.isNotEmpty(cVO.getMasterId())) { + listObj.add(cVO); + } + } + + return setDetailInfoForList(listObj, mbInfoId, defaultThumbnailUrl); + } + + /** * 자료 마스터ID 목록 문자열을 받아 CollectionVO 리스트 생성하여 리턴한다. * diff --git a/src/main/java/nlib/col/service/impl/ReadDAO.java b/src/main/java/nlib/col/service/impl/ReadDAO.java index 61b9e9d9..138a1bfc 100644 --- a/src/main/java/nlib/col/service/impl/ReadDAO.java +++ b/src/main/java/nlib/col/service/impl/ReadDAO.java @@ -3,6 +3,8 @@ package nlib.col.service.impl; import java.util.HashMap; import java.util.List; +import java.util.Map; + import egovframework.rte.psl.dataaccess.mapper.Mapper; @Mapper("readDAO") @@ -11,5 +13,13 @@ public interface ReadDAO { public List> listDates(); public List> listReadMngOrg(String mbInfoId); - + + /** + * 사용자의 방문열람현황을 조회한다. + * + * @param mbInfoId + * @return + */ + public Map getReadStats(String mbInfoId); + } diff --git a/src/main/java/nlib/col/service/impl/ReadServiceImpl.java b/src/main/java/nlib/col/service/impl/ReadServiceImpl.java index e59a9652..b199e81b 100644 --- a/src/main/java/nlib/col/service/impl/ReadServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/ReadServiceImpl.java @@ -2,6 +2,7 @@ package nlib.col.service.impl; import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.annotation.Resource; @@ -170,7 +171,7 @@ public class ReadServiceImpl implements ReadService { if(searchVO == null || StringUtil.isEmpty(searchVO.getMbInfoId())) { log.error("listRentItems > 대출 목록 조회 요청 정보가 없습니다."); - return null; + return new DataApiResVO("F", "대출 목록 조회 요청 정보가 없습니다."); } // API 호출 @@ -240,4 +241,14 @@ public class ReadServiceImpl implements ReadService { return dataApi.request(reqVO); } + /** + * 사용자의 방문열람현황을 조회한다. + * + * @param mbInfoId + * @return + */ + public Map getReadStats(String mbInfoId) { + return readDAO.getReadStats(mbInfoId); + } + } diff --git a/src/main/java/nlib/col/service/impl/RentDAO.java b/src/main/java/nlib/col/service/impl/RentDAO.java index ac3b5d20..ac5cca19 100644 --- a/src/main/java/nlib/col/service/impl/RentDAO.java +++ b/src/main/java/nlib/col/service/impl/RentDAO.java @@ -3,6 +3,8 @@ package nlib.col.service.impl; import java.util.HashMap; import java.util.List; +import java.util.Map; + import egovframework.rte.psl.dataaccess.mapper.Mapper; @Mapper("rentDAO") @@ -10,4 +12,12 @@ public interface RentDAO { public List> listRentMngOrg(String mbInfoId); + + /** + * 사용자의 대출현황을 조회한다. + * + * @param mbInfoId + * @return + */ + public Map getRentStats(String mbInfoId); } diff --git a/src/main/java/nlib/col/service/impl/RentServiceImpl.java b/src/main/java/nlib/col/service/impl/RentServiceImpl.java index ae82e268..d53670f2 100644 --- a/src/main/java/nlib/col/service/impl/RentServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/RentServiceImpl.java @@ -2,6 +2,7 @@ package nlib.col.service.impl; import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.annotation.Resource; @@ -58,7 +59,7 @@ public class RentServiceImpl implements RentService if(searchVO == null || StringUtil.isEmpty(searchVO.getMbInfoId())) { log.error("listRentItems > 대출 목록 조회 요청 정보가 없습니다."); - return null; + return new DataApiResVO("F", "회원정보가 부적합합니다."); } // API 호출 @@ -194,6 +195,16 @@ public class RentServiceImpl implements RentService return list; } + /** + * 사용자의 대출현황을 조회한다. + * + * @param mbInfoId + * @return + */ + public Map getRentStats(String mbInfoId) { + return rentDAO.getRentStats(mbInfoId); + } + // // /* diff --git a/src/main/java/nlib/user/service/UserInfoService.java b/src/main/java/nlib/user/service/UserInfoService.java index 7c492c22..267bfadd 100644 --- a/src/main/java/nlib/user/service/UserInfoService.java +++ b/src/main/java/nlib/user/service/UserInfoService.java @@ -1,55 +1,74 @@ - -package nlib.user.service; - -import java.util.List; - -import egovframework.com.ext.oauth.service.OAuthUniversalUser; - -/** - * Description : - * @author - * @since - * @version - * @see - * - *
- * << Modification Information >>
- *   
- *   Date     Modifier               Expression
- *  -------    --------    ---------------------------
- *  
- *
- * 
- * 
- */ -public interface UserInfoService -{ - - /** 사용자의 SNS 연동 리스트를 조회한다. - * @param vo - * @return - * @throws Exception - */ - public List selectSnsSignUpList(NlibLoginVO vo) throws Exception; - - /** 내 정보를 수정한다. - * @param vo - * @throws Exception - */ - public void updateMyInfo(NlibLoginVO vo) throws Exception; - - - /** SNS연동을 해지한다. - * @param oAuthVO - * @throws Exception - */ - public void deleteSnsLink(OAuthUniversalUser oAuthVO) throws Exception; - - /** 사용자의 정보를 조회한다. - * @param vo - * @return - * @throws Exception - */ - public NlibLoginVO selectMyInfo(NlibLoginVO vo) throws Exception; - + +package nlib.user.service; + +import java.util.List; +import java.util.Map; + +import egovframework.com.ext.oauth.service.OAuthUniversalUser; + +/** + * Description : + * @author + * @since + * @version + * @see + * + *
+ * << Modification Information >>
+ *   
+ *   Date     Modifier               Expression
+ *  -------    --------    ---------------------------
+ *  
+ *
+ * 
+ * 
+ */ +public interface UserInfoService +{ + + /** 사용자의 SNS 연동 리스트를 조회한다. + * @param vo + * @return + * @throws Exception + */ + public List selectSnsSignUpList(NlibLoginVO vo) throws Exception; + + /** 내 정보를 수정한다. + * @param vo + * @throws Exception + */ + public void updateMyInfo(NlibLoginVO vo) throws Exception; + + + /** SNS연동을 해지한다. + * @param oAuthVO + * @throws Exception + */ + public void deleteSnsLink(OAuthUniversalUser oAuthVO) throws Exception; + + /** 사용자의 정보를 조회한다. + * @param vo + * @return + * @throws Exception + */ + public NlibLoginVO selectMyInfo(NlibLoginVO vo) throws Exception; + + /** + * 직전 로그인 시간을 조회한다. + * + * @param mbInfoId + * @return + * @throws Exception + */ + public List> getLastLogin(String mbInfoId) throws Exception; + + /** + * 최근 1건이내 접속한 문화원 정보를 조회한다. + * + * @param mbInfoId + * @return + * @throws Exception + */ + public List> getVisitedOrgs(String mbInfoId) throws Exception; + } \ No newline at end of file diff --git a/src/main/java/nlib/user/service/impl/UserInfoDAO.java b/src/main/java/nlib/user/service/impl/UserInfoDAO.java index 96609d60..ea11eb88 100644 --- a/src/main/java/nlib/user/service/impl/UserInfoDAO.java +++ b/src/main/java/nlib/user/service/impl/UserInfoDAO.java @@ -1,58 +1,77 @@ -package nlib.user.service.impl; - -import java.util.List; - -import egovframework.com.ext.oauth.service.OAuthUniversalUser; -import egovframework.rte.psl.dataaccess.mapper.Mapper; -import nlib.user.service.NlibLoginVO; - -/** - *
- * @Class Name : UserInfoDAO.java
- * 
- * @Description : 사용자의 관련 정보 제공 DAO 
- * 
- * 
- * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
- *
- * 
- * - * @ ------------ -------- --------------------------- - * @ 수정일 수정자 수정내용 - * @ ------------ -------- --------------------------- - * @ 2021. 9. 7. JSYOO 최초 생성 - * - * - * @author 이씨플라자 * DIGITALSHIP JSYOO - * @since 2021. 9. 7. - * @version 1.0 - * - */ - -@Mapper("userInfoDAO") -public interface UserInfoDAO -{ - /** 사용자의 SNS 연동 리스트를 조회한다. - * @param vo - * @return - * @throws Exception - */ - public List selectSnsSignUpList(NlibLoginVO vo) throws Exception; - - /** 내 정보를 수정한다. - * @param vo - * @throws Exception - */ - public void updateMyInfo(NlibLoginVO vo) throws Exception; - - /** SNS연동을 해지한다. - * @param oAuthVO - */ - public void deleteSnsLink(OAuthUniversalUser oAuthVO) throws Exception; - - /** 사용자의 정보를 조회한다. - * @param vo - * @return - */ - public NlibLoginVO selectMyInfo(NlibLoginVO vo) throws Exception; +package nlib.user.service.impl; + +import java.util.List; +import java.util.Map; + +import egovframework.com.ext.oauth.service.OAuthUniversalUser; +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import nlib.user.service.NlibLoginVO; + +/** + *
+ * @Class Name : UserInfoDAO.java
+ * 
+ * @Description : 사용자의 관련 정보 제공 DAO 
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 9. 7. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 9. 7. + * @version 1.0 + * + */ + +@Mapper("userInfoDAO") +public interface UserInfoDAO +{ + /** 사용자의 SNS 연동 리스트를 조회한다. + * @param vo + * @return + * @throws Exception + */ + public List selectSnsSignUpList(NlibLoginVO vo) throws Exception; + + /** 내 정보를 수정한다. + * @param vo + * @throws Exception + */ + public void updateMyInfo(NlibLoginVO vo) throws Exception; + + /** SNS연동을 해지한다. + * @param oAuthVO + */ + public void deleteSnsLink(OAuthUniversalUser oAuthVO) throws Exception; + + /** 사용자의 정보를 조회한다. + * @param vo + * @return + */ + public NlibLoginVO selectMyInfo(NlibLoginVO vo) throws Exception; + + /** + * 직전 로그인 시간을 조회한다. + * + * @param mbInfoId + * @return + * @throws Exception + */ + public List> getLastLogin(String mbInfoId) throws Exception; + + /** + * 최근 1건이내 접속한 문화원 정보를 조회한다. + * + * @param mbInfoId + * @return + * @throws Exception + */ + public List> getVisitedOrgs(String mbInfoId) throws Exception; } \ No newline at end of file diff --git a/src/main/java/nlib/user/service/impl/UserInfoServiceImpl.java b/src/main/java/nlib/user/service/impl/UserInfoServiceImpl.java index f3904e33..52b8aed3 100644 --- a/src/main/java/nlib/user/service/impl/UserInfoServiceImpl.java +++ b/src/main/java/nlib/user/service/impl/UserInfoServiceImpl.java @@ -1,91 +1,115 @@ -package nlib.user.service.impl; - -import java.util.List; - -import javax.annotation.Resource; - -import org.springframework.stereotype.Service; - -import egovframework.com.ext.oauth.service.OAuthUniversalUser; -import egovframework.rte.fdl.cryptography.EgovPasswordEncoder; -import nlib.cmm.crypto.AriaCrypto; -import nlib.user.service.MemberService; -import nlib.user.service.NlibLoginVO; -import nlib.user.service.UserInfoService; - -/** - *
- * @Class Name : UserInfoServiceImpl.java
- * 
- * @Description : 사용자의 정보를 조회하는 서비스 
- * 
- * 
- * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
- *
- * 
- * - * @ ------------ -------- --------------------------- - * @ 수정일 수정자 수정내용 - * @ ------------ -------- --------------------------- - * @ 2021. 9. 7. JSYOO 최초 생성 - * - * - * @author 이씨플라자 * DIGITALSHIP JSYOO - * @since 2021. 9. 7. - * @version 1.0 - * - */ - -@Service("userInfoService") -public class UserInfoServiceImpl implements UserInfoService -{ - @Resource(name="userInfoDAO") - private UserInfoDAO userInfoDAO; - - @Resource(name = "egovEnvPasswordEncoderService") - EgovPasswordEncoder egovPasswordEncoder; - - @Resource(name = "ariaCrypto") - AriaCrypto ariaCrypto; - - /* 사용자의 SNS 연동 리스트를 조회한다. - * (non-Javadoc) - * @see nlib.user.service.UserInfoService#selectSnsSignUpList(nlib.user.service.NlibLoginVO) - */ - public List selectSnsSignUpList(NlibLoginVO vo) throws Exception { - return userInfoDAO.selectSnsSignUpList(vo); - } - /* 내 정보를 수정한다. - * (non-Javadoc) - * @see nlib.user.service.UserInfoService#updateMyInfo(nlib.user.service.NlibLoginVO) - */ - public void updateMyInfo(NlibLoginVO vo) throws Exception { - //회원정보 암호화 - vo.encodePrivateInfo(); - - userInfoDAO.updateMyInfo(vo); - } - - /* SNS연동을 해지한다. - * (non-Javadoc) - * @see nlib.user.service.UserInfoService#deleteSnsLink(egovframework.com.ext.oauth.service.OAuthUniversalUser) - */ - public void deleteSnsLink(OAuthUniversalUser oAuthVO) throws Exception { - userInfoDAO.deleteSnsLink(oAuthVO); - } - /* 사용자의 정보를 조회한다. - * (non-Javadoc) - * @see nlib.user.service.UserInfoService#selectMyInfo(nlib.user.service.NlibLoginVO) - */ - public NlibLoginVO selectMyInfo(NlibLoginVO vo) throws Exception { - vo.setMobileNo(ariaCrypto.encode(vo.getMobileNo())); - vo.setEmail(ariaCrypto.encode(vo.getEmail())); - NlibLoginVO loginVO =userInfoDAO.selectMyInfo(vo); - // 개인정보 암호화 내용 복호화 처리 - if(loginVO != null) { - loginVO.setMobileNo(AriaCrypto.decode(loginVO.getMobileNo())); - loginVO.setEmail(AriaCrypto.decode(loginVO.getEmail())); - } - return loginVO; - } +package nlib.user.service.impl; + +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.com.ext.oauth.service.OAuthUniversalUser; +import egovframework.rte.fdl.cryptography.EgovPasswordEncoder; +import nlib.cmm.crypto.AriaCrypto; +import nlib.user.service.MemberService; +import nlib.user.service.NlibLoginVO; +import nlib.user.service.UserInfoService; + +/** + *
+ * @Class Name : UserInfoServiceImpl.java
+ * 
+ * @Description : 사용자의 정보를 조회하는 서비스 
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 9. 7. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 9. 7. + * @version 1.0 + * + */ + +@Service("userInfoService") +public class UserInfoServiceImpl implements UserInfoService +{ + @Resource(name="userInfoDAO") + private UserInfoDAO userInfoDAO; + + @Resource(name = "egovEnvPasswordEncoderService") + EgovPasswordEncoder egovPasswordEncoder; + + @Resource(name = "ariaCrypto") + AriaCrypto ariaCrypto; + + /* 사용자의 SNS 연동 리스트를 조회한다. + * (non-Javadoc) + * @see nlib.user.service.UserInfoService#selectSnsSignUpList(nlib.user.service.NlibLoginVO) + */ + public List selectSnsSignUpList(NlibLoginVO vo) throws Exception { + return userInfoDAO.selectSnsSignUpList(vo); + } + /* 내 정보를 수정한다. + * (non-Javadoc) + * @see nlib.user.service.UserInfoService#updateMyInfo(nlib.user.service.NlibLoginVO) + */ + public void updateMyInfo(NlibLoginVO vo) throws Exception { + //회원정보 암호화 + vo.encodePrivateInfo(); + + userInfoDAO.updateMyInfo(vo); + } + + /* SNS연동을 해지한다. + * (non-Javadoc) + * @see nlib.user.service.UserInfoService#deleteSnsLink(egovframework.com.ext.oauth.service.OAuthUniversalUser) + */ + public void deleteSnsLink(OAuthUniversalUser oAuthVO) throws Exception { + userInfoDAO.deleteSnsLink(oAuthVO); + } + /* 사용자의 정보를 조회한다. + * (non-Javadoc) + * @see nlib.user.service.UserInfoService#selectMyInfo(nlib.user.service.NlibLoginVO) + */ + public NlibLoginVO selectMyInfo(NlibLoginVO vo) throws Exception { + vo.setMobileNo(ariaCrypto.encode(vo.getMobileNo())); + vo.setEmail(ariaCrypto.encode(vo.getEmail())); + NlibLoginVO loginVO =userInfoDAO.selectMyInfo(vo); + // 개인정보 암호화 내용 복호화 처리 + if(loginVO != null) { + loginVO.setMobileNo(AriaCrypto.decode(loginVO.getMobileNo())); + loginVO.setEmail(AriaCrypto.decode(loginVO.getEmail())); + } + return loginVO; + } + + + /** + * 직전 로그인 시간을 조회한다. + * + * @param mbInfoId + * @return + * @throws Exception + */ + public List> getLastLogin(String mbInfoId) throws Exception { + return userInfoDAO.getLastLogin(mbInfoId); + } + + /** + * 최근 1건이내 접속한 문화원 정보를 조회한다. + * + * @param mbInfoId + * @return + * @throws Exception + */ + public List> getVisitedOrgs(String mbInfoId) throws Exception { + return userInfoDAO.getVisitedOrgs(mbInfoId); + } } \ No newline at end of file diff --git a/src/main/java/nlib/user/web/UserInfoController.java b/src/main/java/nlib/user/web/UserInfoController.java index 11306429..cf974b20 100644 --- a/src/main/java/nlib/user/web/UserInfoController.java +++ b/src/main/java/nlib/user/web/UserInfoController.java @@ -4,7 +4,9 @@ package nlib.user.web; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.annotation.Resource; import javax.imageio.ImageIO; @@ -29,6 +31,13 @@ import egovframework.com.ext.oauth.service.OAuthUniversalUser; import egovframework.rte.fdl.cryptography.EgovPasswordEncoder; import nlib.cmm.NlibCommonController; import nlib.cmm.qrcode.QRCodeUtil; +import nlib.cmm.service.NlibProperty; +import nlib.col.service.CollectionService; +import nlib.col.service.CollectionVO; +import nlib.col.service.InterestService; +import nlib.col.service.ReadService; +import nlib.col.service.RentService; +import nlib.restful.service.DataApiResVO; import nlib.security.SecUserDetailsService; import nlib.user.service.LoginService; import nlib.user.service.NlibLoginVO; @@ -77,11 +86,24 @@ public class UserInfoController extends NlibCommonController { @Resource(name = "userDetailsService") private SecUserDetailsService SecUserDetailsService; + @Resource(name = "rentService") + private RentService rentService; + @Resource(name = "readService") + private ReadService readService; + + @Resource(name = "interestService") + private InterestService interestService; + + @Resource(name = "collectionService") + private CollectionService collectionService; + /** QRCodeService (2021.10.07) */ @Resource(name = "qrCodeService") private QRCodeUtil qrCodeService; + + //마이페이지 uri @Value("#{properties['mypage.uri']}") private String myPageUri; @@ -271,7 +293,7 @@ public class UserInfoController extends NlibCommonController { * @throws Exception */ @RequestMapping(value="/userInfo/getMyHome.do") - public String getMyHome(HttpServletRequest request, ModelMap model) { + public String getMyHome(HttpServletRequest request, ModelMap model) throws Exception { NlibLoginVO loginVO = getNlibLoginVO(request); log.debug("getMemberQrcode : loginVO=" + loginVO.toString()); @@ -280,19 +302,61 @@ public class UserInfoController extends NlibCommonController { model.addAttribute("loginVO", loginVO); // 이전접속정보 + Map lastLogin = null; + List> lastLoginList = userInfoService.getLastLogin(loginVO.getMbInfoId()); + if(lastLoginList == null || lastLoginList.size() < 1) { + lastLogin = new HashMap(); + lastLogin.put("dtStr", "(최초접속)"); + lastLogin.put("dtStr", " "); + } else if(lastLoginList.size() == 1) { + lastLogin = lastLoginList.get(0); + } else { + lastLogin = lastLoginList.get(1); + } + model.addAttribute("lastLogin", lastLogin); + + // 소장자료관 접속현황 (최근 5개) + List> visitedOrgs = userInfoService.getVisitedOrgs(loginVO.getMbInfoId()); + model.addAttribute("visitedOrgs", visitedOrgs); // 대출현황 + Map rentStats = rentService.getRentStats(loginVO.getMbInfoId()); + model.addAttribute("rentStats", rentStats); // 방문열람현황 + Map readStats = readService.getReadStats(loginVO.getMbInfoId()); + model.addAttribute("readStats", readStats); - // 소장자료관 접속현황 (최근 5개) + CollectionVO searchCollectionVO = new CollectionVO(); + searchCollectionVO.setMbInfoId(loginVO.getMbInfoId()); + searchCollectionVO.setPageSize(5); + // 관심자료 (최근 5개) + List interestList = interestService.listInterests(searchCollectionVO); + int interestTotalCount = interestService.countListInterests(searchCollectionVO); + + String mbInfoId = getMbInfoId(request); + interestList = collectionService.setDetailInfoForList(interestList, searchCollectionVO.getMbInfoId(), NlibProperty.getString("thumbnail.image.url.small")); + + model.addAttribute("interestList", interestList); + model.addAttribute("interestTotalCount", interestTotalCount); - // 대출내역 (최근 5개) + // 대출내역 (최근 5개) + // 조회 + // 대출상태구분코드("": 전체, A:신청, B:대출준비완료, C:취소, W:대출중, R0:정상반납, R1:연체반납, P:연체) + DataApiResVO resRentVO = rentService.listRentItems(searchCollectionVO); + List rentList = collectionService.setDetailInfoForHashList(resRentVO.getRecordList(), searchCollectionVO.getMbInfoId(), NlibProperty.getString("thumbnail.image.url.small")); + model.addAttribute("rentList", rentList); + model.addAttribute("rentTotalCount", resRentVO.getRecordTotCount()); // 방문열람내역 (최근 5개) - + searchCollectionVO.setReqStatusDivCd("A"); // API 변경될떄까지 임시 값 보냄 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD + DataApiResVO resReadVO = readService.listReadItems(searchCollectionVO); + List readList = collectionService.setDetailInfoForHashList(resReadVO.getRecordList(), searchCollectionVO.getMbInfoId(), NlibProperty.getString("thumbnail.image.url.small")); + model.addAttribute("readList", readList); + model.addAttribute("readTotalCount", resReadVO.getRecordTotCount()); + return "nlib/userInfo/getMyHome"; } } \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/col/ReadDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/col/ReadDAO_SQL.xml index 0026496c..1e4f885c 100644 --- a/src/main/resources/egovframework/mapper/nlib/col/ReadDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/col/ReadDAO_SQL.xml @@ -43,4 +43,17 @@ ORDER BY B.DEPT_NM + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/col/RentDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/col/RentDAO_SQL.xml index aab0fd5d..8682bbfb 100644 --- a/src/main/resources/egovframework/mapper/nlib/col/RentDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/col/RentDAO_SQL.xml @@ -19,5 +19,15 @@ JOIN SM_DEPT C ON (B.MNG_ORG_CD = C.ORG_CD) ORDER BY C.DEPT_NM - + + \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/user/LoginDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/user/LoginDAO_SQL.xml index 426fb60b..5a496088 100644 --- a/src/main/resources/egovframework/mapper/nlib/user/LoginDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/user/LoginDAO_SQL.xml @@ -118,6 +118,4 @@ ) - - \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/user/UserInfoDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/user/UserInfoDAO_SQL.xml index 9a3b440d..aece829b 100644 --- a/src/main/resources/egovframework/mapper/nlib/user/UserInfoDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/user/UserInfoDAO_SQL.xml @@ -105,5 +105,43 @@ AND MB_INFO_ID = #{mbInfoId}; - + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/nlib/nlib.properties b/src/main/resources/nlib/nlib.properties index 7149bb32..b6c12738 100644 --- a/src/main/resources/nlib/nlib.properties +++ b/src/main/resources/nlib/nlib.properties @@ -180,6 +180,7 @@ cart.cookie.path = / #---------------------------------------- # \uc378\ub124\uc77c \uae30\ubcf8 \uc774\ubbf8\uc9c0 (\uc378\ub124\uc77c \uc5c6\uc74c) #---------------------------------------- +thumbnail.image.url.prefix = https://iams-dev.nculture.org/uac thumbnail.image.url.small = /images/thumbnail/noimage-s.jpg thumbnail.image.url.middle = /images/thumbnail/noimage-m.jpg thumbnail.image.url.big = /images/thumbnail/noimage-b.jpg diff --git a/src/main/webapp/WEB-INF/jsp/nlib/userInfo/getMyHome.jsp b/src/main/webapp/WEB-INF/jsp/nlib/userInfo/getMyHome.jsp index e1e02f12..b51132c5 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/userInfo/getMyHome.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/userInfo/getMyHome.jsp @@ -63,33 +63,33 @@
- 최근 방문일: 2021.07.15 - 14:41:30 + 최근 방문일: ${lastLogin.dtStr } + ${lastLogin.tmStr }

대출현황

-
+
-

3/3

+

${rentStats.cntApp }/${rentStats.cntRes }

신청/예약

-

11

+

${rentStats.cntCancel }

취소

-

2

+

${rentStats.cntOut }

대출중

-

15

+

${rentStats.cntReturn }

반납

-

0

+

${rentStats.cntDelay }

연체

@@ -98,19 +98,19 @@

방문열람현황

-

5

+

${readStats.cntApp }

신청

-

0

+

${readStats.cntCancel }

취소

-

3

+

${readStats.cntProv }

승인

-

2

+

${readStats.cntRej }

반려

@@ -120,11 +120,9 @@

소장자료관 접속현황

- 경산문화원 - 고령문화원 - 구미문화원 - 군위문화원 - 김천문화원 + + ${itemVisitedOrgs.deptNm } +
@@ -135,85 +133,31 @@
-

관심자료

20
- +

관심자료

${interestTotalCount }
+
-
-
- 썸네일 -
-
-
양산예찬문집
-
-

자료유형 :도서간행물 > 연속간행물

-

주제분야 :자연과지리 > 자연환경

-

생산기관 :경북경주문화원

-

생산년도 :2021

-
-
-
- -
-
- 썸네일 -
-
-
三憂堂 文益漸先生 棉花展示館 竣工記念詩集
-
-

자료유형 :도서간행물 > 연속간행물

-

주제분야 :자연과지리 > 자연환경

-

생산기관 :경북경주문화원

-

생산년도 :2021

-
-
-
- -
-
- 썸네일 -
-
-
국역 慶州郡 (국역 경주군)
-
-

자료유형 :도서간행물 > 연속간행물

-

주제분야 :자연과지리 > 자연환경

-

생산기관 :경북경주문화원

-

생산년도 :2021

-
-
-
- -
-
- 썸네일 -
-
-
三憂堂 文益漸先生 棉花展示館 竣工記念詩集
-
-

자료유형 :도서간행물 > 연속간행물

-

주제분야 :자연과지리 > 자연환경

-

생산기관 :경북경주문화원

-

생산년도 :2021

-
-
-
- -
-
- 썸네일 -
-
-
국역 慶州郡 (국역 경주군)
-
-

자료유형 :도서간행물 > 연속간행물

-

주제분야 :자연과지리 > 자연환경

-

생산기관 :경북경주문화원

-

생산년도 :2021

-
-
-
+ + + +
+
+ 썸네일 +
+
+
${item.title }
+
+

자료유형 :${item.typeDivNm } > ${item.dtlsTypeDivNm }

+

주제분야 :${item.subjectNmUp } > ${item.subjectNm }

+

생산기관 :${item.orgNm }

+

생산년도 :${item.creatYyyy }

+
+
+
+ +
+
@@ -221,143 +165,39 @@
-

대출내역

20
- +

대출내역

${rentTotalCount }
+
-
-
-
-

[경북경주문화원]

-
-
-

경주읍성 남문 장례문의 옥루

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 신청 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

경주 골목길

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 예약 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

2014 한국의 역사마을 양동 충효예절교실 교육교재

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 예약취소 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

경주 골목길

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 반납 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

2014 한국의 역사마을 양동 충효예절교실 교육교재

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 반납 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

2014 한국의 역사마을 양동 충효예절교실 교육교재

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 대출중 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

2014 한국의 역사마을 양동 충효예절교실 교육교재

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 연체 -
-
-
+ + +
+
+
+

[${item.mngOrgNm }]

+
+
+

${item.title }

+

+ 자료유형 : ${item.typeDivNm } > ${item.dtlsTypeDivNm } + 주제분야 : ${item.subjectNmUp } > ${item.subjectNm } + 생산기관 : ${item.orgNm } + 생산년도 : ${item.creatYyyy } +

+
+
+ ${item.bookLtRvStatusNm} + ${item.bookLtRvStatusNm} + ${item.bookLtRvStatusNm} + ${item.bookLtRvStatusNm} + ${item.bookLtRvStatusNm} + ${item.bookLtRvStatusNm} + ${item.bookLtRvStatusNm} +
+
+
+ +
@@ -365,200 +205,38 @@
-

방문열람내역

20
- -
- -
-
-
-

[경북경주문화원]

-
-
-

경주읍성 남문 장례문의 옥루

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 승인대기 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

경주 골목길

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 승인 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

2014 한국의 역사마을 양동 충효예절교실 교육교재

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 반려 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

경주 골목길

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 반려 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

2014 한국의 역사마을 양동 충효예절교실 교육교재

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 반려 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

2014 한국의 역사마을 양동 충효예절교실 교육교재

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 신청 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

2014 한국의 역사마을 양동 충효예절교실 교육교재

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 승인대기 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

2014 한국의 역사마을 양동 충효예절교실 교육교재

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 취소 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

2014 한국의 역사마을 양동 충효예절교실 교육교재

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 열람완료 -
-
-
-
-
-
-

[경북경주문화원]

-
-
-

2014 한국의 역사마을 양동 충효예절교실 교육교재

-

- 주제분야 : 도서간행물 > 연속간행물 - 주제분야 : 자연과지리 > 자연환경 - 생산기관 : 경북경주문화원 - 생산년도 : 2021 -

-
-
- 미열람 -
-
+

방문열람내역

${readTotalCount }
+
+ + + +
+
+
+

[${item.mngOrgNm }]

+
+
+

${item.title }

+

+ 자료유형 : ${item.typeDivNm } > ${item.dtlsTypeDivNm } + 주제분야 : ${item.subjectNmUp } > ${item.subjectNm } + 생산기관 : ${item.orgNm } + 생산년도 : ${item.creatYyyy } +

+
+
+ ${item.reqStatusDivNm} + ${item.reqStatusDivNm} + ${item.reqStatusDivNm} + ${item.reqStatusDivNm} + ${item.reqStatusDivNm} + ${item.reqStatusDivNm} +
+
+
+ +
diff --git a/src/main/webapp/WEB-INF/tiles/inc/menu.jsp b/src/main/webapp/WEB-INF/tiles/inc/menu.jsp index 3dde879b..9bddecc3 100644 --- a/src/main/webapp/WEB-INF/tiles/inc/menu.jsp +++ b/src/main/webapp/WEB-INF/tiles/inc/menu.jsp @@ -1,6 +1,33 @@ <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%> + +
@@ -23,12 +50,12 @@ -
  • 마이페이지 +
  • 마이페이지