From a1b237ca2741a5028cf65596b4e590fc13044a8e Mon Sep 17 00:00:00 2001 From: JSYOO Date: Fri, 1 Oct 2021 15:21:14 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EC=8B=AC=EC=9E=90=EB=A3=8C=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EA=B0=9C=EB=B0=9C=20=EB=B0=8F=20?= =?UTF-8?q?=EA=B4=80=EC=8B=AC=EC=B6=94=EA=B0=80=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=86=8C=EC=9E=A5=EC=9E=90=EB=A3=8C=20=EC=BB=A8=ED=8A=B8?= =?UTF-8?q?=EB=A1=A4=EB=9F=AC=EC=99=80=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/nlib/cmm/service/PagingVO.java | 10 + .../java/nlib/col/service/CartService.java | 10 + .../nlib/col/service/CollectionService.java | 9 +- .../java/nlib/col/service/CollectionVO.java | 100 +++++++ src/main/java/nlib/col/service/DeptVO.java | 244 ++++++++++++++++++ .../nlib/col/service/InterestService.java | 20 ++ .../java/nlib/col/service/ReserveService.java | 10 + src/main/java/nlib/col/service/RisVO.java | 163 ++++++------ .../java/nlib/col/service/impl/CartDAO.java | 16 ++ .../col/service/impl/CartServiceImpl.java | 20 ++ .../nlib/col/service/impl/CollectionDAO.java | 65 +++-- .../service/impl/CollectionServiceImpl.java | 32 ++- .../nlib/col/service/impl/InterestDAO.java | 63 +++++ .../col/service/impl/InterestServiceImpl.java | 73 ++++++ .../col/service/impl/RentServiceImpl.java | 1 - .../nlib/col/service/impl/ReserveDAO.java | 16 ++ .../col/service/impl/ReserveServiceImpl.java | 20 ++ .../java/nlib/col/web/CartController.java | 48 ++++ .../nlib/col/web/CollectionController.java | 162 ++++++------ .../java/nlib/col/web/InterestController.java | 174 +++++++++++++ .../java/nlib/col/web/ReserveController.java | 48 ++++ .../mapper/config/mapper-config.xml | 3 + .../mapper/nlib/col/CollectionDAO_SQL.xml | 40 +++ .../mapper/nlib/col/InterestDAO_SQL.xml | 85 ++++++ .../mapper/nlib/user/MemberDAO_SQL.xml | 12 +- .../jsp/nlib/collection/listInterests.jsp | 200 +++++++++++--- .../WEB-INF/jsp/nlib/collection/listItems.jsp | 16 +- src/main/webapp/WEB-INF/tiles/inc/menu.jsp | 4 +- src/main/webapp/js/nlib.js | 99 ++++++- 29 files changed, 1509 insertions(+), 254 deletions(-) create mode 100644 src/main/java/nlib/col/service/CartService.java create mode 100644 src/main/java/nlib/col/service/CollectionVO.java create mode 100644 src/main/java/nlib/col/service/DeptVO.java create mode 100644 src/main/java/nlib/col/service/InterestService.java create mode 100644 src/main/java/nlib/col/service/ReserveService.java create mode 100644 src/main/java/nlib/col/service/impl/CartDAO.java create mode 100644 src/main/java/nlib/col/service/impl/CartServiceImpl.java create mode 100644 src/main/java/nlib/col/service/impl/InterestDAO.java create mode 100644 src/main/java/nlib/col/service/impl/InterestServiceImpl.java create mode 100644 src/main/java/nlib/col/service/impl/ReserveDAO.java create mode 100644 src/main/java/nlib/col/service/impl/ReserveServiceImpl.java create mode 100644 src/main/java/nlib/col/web/CartController.java create mode 100644 src/main/java/nlib/col/web/InterestController.java create mode 100644 src/main/java/nlib/col/web/ReserveController.java create mode 100644 src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml create mode 100644 src/main/resources/egovframework/mapper/nlib/col/InterestDAO_SQL.xml diff --git a/src/main/java/nlib/cmm/service/PagingVO.java b/src/main/java/nlib/cmm/service/PagingVO.java index a14e66ad..3f3a67a5 100644 --- a/src/main/java/nlib/cmm/service/PagingVO.java +++ b/src/main/java/nlib/cmm/service/PagingVO.java @@ -7,7 +7,17 @@ public class PagingVO { int pageIndex = 1; /* 페이지 번호 */ int pageSize = DEFAULT_PAGE_SIZE; /* 페이지 크기 (1페이지당 보여줄 자료건수) */ int totRecordCount; /* 총건수 */ + int pageStart = 0; /* 시작번호 (limit용)*/ + + public int getPageStart() { + return pageStart; + } + + public void setPageStart(int pageStart) { + this.pageStart = pageStart; + } + public int getPageIndex() { return pageIndex; } diff --git a/src/main/java/nlib/col/service/CartService.java b/src/main/java/nlib/col/service/CartService.java new file mode 100644 index 00000000..6e266f6a --- /dev/null +++ b/src/main/java/nlib/col/service/CartService.java @@ -0,0 +1,10 @@ +package nlib.col.service; + +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +public interface CartService +{ + + +} \ No newline at end of file diff --git a/src/main/java/nlib/col/service/CollectionService.java b/src/main/java/nlib/col/service/CollectionService.java index 043b5c03..ce80fb46 100644 --- a/src/main/java/nlib/col/service/CollectionService.java +++ b/src/main/java/nlib/col/service/CollectionService.java @@ -1,6 +1,8 @@ package nlib.col.service; +import java.util.List; + import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; @@ -18,9 +20,8 @@ public interface CollectionService public DataApiResVO selectItemInfo(DataApiReqVO reqVO); - public DataApiResVO listInterests(DataApiReqVO reqVO); - - public DataApiResVO deleteInterest(DataApiReqVO reqVO); - + public RisVO selectRisInfo(RisVO vo); + + public List selectOrgList(CollectionVO vo); } \ No newline at end of file diff --git a/src/main/java/nlib/col/service/CollectionVO.java b/src/main/java/nlib/col/service/CollectionVO.java new file mode 100644 index 00000000..8dba34bc --- /dev/null +++ b/src/main/java/nlib/col/service/CollectionVO.java @@ -0,0 +1,100 @@ +package nlib.col.service; + +import nlib.cmm.service.PagingVO; + +import java.io.Serializable; + +/** + *
+ * @Class Name : CollectionVO.java
+ * 
+ * @Description : 소장자료 관련 VO
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 9. 23. JSYOO 최초 생성 + + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 9. 28. + * @version 1.0 + * + */ +public class CollectionVO extends PagingVO { + + private String masterId; /* 마스터id */ + private int mbInterestId; /* 관심 id */ + private String mbInfoId; /* 회원 id */ + private String title; /* 제목 */ + private String rprsThumbUrl; /* 대표썸네일URL */ + private String useYn; /* 사용여부 */ + private String regDd; /* 등록일자 */ + private String mngOrgNm; /* 관리처리과명 */ + private String mngOrgCd; /* 관리처리과코드 */ + + public String getMasterId() { + return masterId; + } + public void setMasterId(String masterId) { + this.masterId = masterId; + } + public int getMbInterestId() { + return mbInterestId; + } + public void setMbInterestId(int mbInterestId) { + this.mbInterestId = mbInterestId; + } + public void setMbInterestId(String mbInterestId) { + this.mbInterestId = Integer.parseInt(mbInterestId); + } + public String getMbInfoId() { + return mbInfoId; + } + public void setMbInfoId(String mbInfoId) { + this.mbInfoId = mbInfoId; + } + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + public String getRprsThumbUrl() { + return rprsThumbUrl; + } + public void setRprsThumbUrl(String rprsThumbUrl) { + this.rprsThumbUrl = rprsThumbUrl; + } + public String getUseYn() { + return useYn; + } + public void setUseYn(String useYn) { + this.useYn = useYn; + } + public String getRegDd() { + return regDd; + } + public void setRegDd(String regDd) { + this.regDd = regDd; + } + public String getMngOrgNm() { + return mngOrgNm; + } + public void setMngOrgNm(String mngOrgNm) { + this.mngOrgNm = mngOrgNm; + } + public String getMngOrgCd() { + return mngOrgCd; + } + public void setMngOrgCd(String mngOrgCd) { + this.mngOrgCd = mngOrgCd; + } + +} diff --git a/src/main/java/nlib/col/service/DeptVO.java b/src/main/java/nlib/col/service/DeptVO.java new file mode 100644 index 00000000..4e54943b --- /dev/null +++ b/src/main/java/nlib/col/service/DeptVO.java @@ -0,0 +1,244 @@ +package nlib.col.service; + +import nlib.cmm.service.PagingVO; + +import java.io.Serializable; + +/** + *
+ * @Class Name : DeptVO.java
+ * 
+ * @Description : 부서(문화원) VO
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 9. 30. JSYOO 최초 생성 + + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 9. 30. + * @version 1.0 + * + */ +public class DeptVO { + private String deptSeq; /* 조직코드 */ + private String orgCd; /* 처리과코드 */ + private String deptNm; /* 조직명 */ + private String deptAbbrNm; /* 조직약칭 */ + private String hupperDeptSeq; /* 최상위조직코드 */ + private String upDeptSeq; /* 상위조직코드 */ + private String topDeptYn; /* 최상위여부 */ + private String deptLv; /* 기관레벨-차수 */ + private String sortSeq; /* 서열 */ + private String closeFlag; /* 폐지여부(0:미폐지, 1:폐지) */ + private String chngRsn; /* 변경사유 */ + private String applyStartYmd; /* 적용시작일 */ + private String applyCloseYmd; /* 적용종료일 */ + private String syncYn; /* RMS연계여부 */ + private String useYn; /* 사용여부 */ + private String regId; /* 등록자 */ + private String regDd; /* 등록일자 */ + private String modId; /* 수정자 */ + private String modDd; /* 수정일자 */ + private String regionCd; /* 지역 */ + private String remark; /* 비고 */ + private String cloudId; /* 클라우드ID */ + private String zipCode; /* 우편번호 */ + private String address; /* 주소 */ + private String addressDetail; /* 상세주소 */ + private String phoneNo; /* 전화번호 */ + private String faxNo; /* 팩스번호 */ + private String latitude; /* 위도 */ + private String longitude; /* 경도 */ + private String domainHostNm; /* 도메인호스트명 */ + + public String getDeptSeq() { + return deptSeq; + } + public void setDeptSeq(String deptSeq) { + this.deptSeq = deptSeq; + } + public String getOrgCd() { + return orgCd; + } + public void setOrgCd(String orgCd) { + this.orgCd = orgCd; + } + public String getDeptNm() { + return deptNm; + } + public void setDeptNm(String deptNm) { + this.deptNm = deptNm; + } + public String getDeptAbbrNm() { + return deptAbbrNm; + } + public void setDeptAbbrNm(String deptAbbrNm) { + this.deptAbbrNm = deptAbbrNm; + } + public String getHupperDeptSeq() { + return hupperDeptSeq; + } + public void setHupperDeptSeq(String hupperDeptSeq) { + this.hupperDeptSeq = hupperDeptSeq; + } + public String getUpDeptSeq() { + return upDeptSeq; + } + public void setUpDeptSeq(String upDeptSeq) { + this.upDeptSeq = upDeptSeq; + } + public String getTopDeptYn() { + return topDeptYn; + } + public void setTopDeptYn(String topDeptYn) { + this.topDeptYn = topDeptYn; + } + public String getDeptLv() { + return deptLv; + } + public void setDeptLv(String deptLv) { + this.deptLv = deptLv; + } + public String getSortSeq() { + return sortSeq; + } + public void setSortSeq(String sortSeq) { + this.sortSeq = sortSeq; + } + public String getCloseFlag() { + return closeFlag; + } + public void setCloseFlag(String closeFlag) { + this.closeFlag = closeFlag; + } + public String getChngRsn() { + return chngRsn; + } + public void setChngRsn(String chngRsn) { + this.chngRsn = chngRsn; + } + public String getApplyStartYmd() { + return applyStartYmd; + } + public void setApplyStartYmd(String applyStartYmd) { + this.applyStartYmd = applyStartYmd; + } + public String getApplyCloseYmd() { + return applyCloseYmd; + } + public void setApplyCloseYmd(String applyCloseYmd) { + this.applyCloseYmd = applyCloseYmd; + } + public String getSyncYn() { + return syncYn; + } + public void setSyncYn(String syncYn) { + this.syncYn = syncYn; + } + public String getUseYn() { + return useYn; + } + public void setUseYn(String useYn) { + this.useYn = useYn; + } + public String getRegId() { + return regId; + } + public void setRegId(String regId) { + this.regId = regId; + } + public String getRegDd() { + return regDd; + } + public void setRegDd(String regDd) { + this.regDd = regDd; + } + public String getModId() { + return modId; + } + public void setModId(String modId) { + this.modId = modId; + } + public String getModDd() { + return modDd; + } + public void setModDd(String modDd) { + this.modDd = modDd; + } + public String getRegionCd() { + return regionCd; + } + public void setRegionCd(String regionCd) { + this.regionCd = regionCd; + } + public String getRemark() { + return remark; + } + public void setRemark(String remark) { + this.remark = remark; + } + public String getCloudId() { + return cloudId; + } + public void setCloudId(String cloudId) { + this.cloudId = cloudId; + } + public String getZipCode() { + return zipCode; + } + public void setZipCode(String zipCode) { + this.zipCode = zipCode; + } + public String getAddress() { + return address; + } + public void setAddress(String address) { + this.address = address; + } + public String getAddressDetail() { + return addressDetail; + } + public void setAddressDetail(String addressDetail) { + this.addressDetail = addressDetail; + } + public String getPhoneNo() { + return phoneNo; + } + public void setPhoneNo(String phoneNo) { + this.phoneNo = phoneNo; + } + public String getFaxNo() { + return faxNo; + } + public void setFaxNo(String faxNo) { + this.faxNo = faxNo; + } + public String getLatitude() { + return latitude; + } + public void setLatitude(String latitude) { + this.latitude = latitude; + } + public String getLongitude() { + return longitude; + } + public void setLongitude(String longitude) { + this.longitude = longitude; + } + public String getDomainHostNm() { + return domainHostNm; + } + public void setDomainHostNm(String domainHostNm) { + this.domainHostNm = domainHostNm; + } + + +} diff --git a/src/main/java/nlib/col/service/InterestService.java b/src/main/java/nlib/col/service/InterestService.java new file mode 100644 index 00000000..3881343d --- /dev/null +++ b/src/main/java/nlib/col/service/InterestService.java @@ -0,0 +1,20 @@ +package nlib.col.service; + +import java.util.List; + +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +public interface InterestService +{ + public List listInterests(CollectionVO vo); + + public int countListInterests(CollectionVO vo); + + public void deleteInterests(List mbInterestIdList, String mbInfoId); + + public void insertInterest(CollectionVO vo); + + public int countInterest(CollectionVO vo); + +} \ No newline at end of file diff --git a/src/main/java/nlib/col/service/ReserveService.java b/src/main/java/nlib/col/service/ReserveService.java new file mode 100644 index 00000000..456e343f --- /dev/null +++ b/src/main/java/nlib/col/service/ReserveService.java @@ -0,0 +1,10 @@ +package nlib.col.service; + +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +public interface ReserveService +{ + + +} \ No newline at end of file diff --git a/src/main/java/nlib/col/service/RisVO.java b/src/main/java/nlib/col/service/RisVO.java index d18f3cde..06be7b2e 100644 --- a/src/main/java/nlib/col/service/RisVO.java +++ b/src/main/java/nlib/col/service/RisVO.java @@ -28,61 +28,69 @@ import java.io.Serializable; public class RisVO implements Serializable { /* 기존 지역 n 문화 사이트 RIS 항목 */ - private String TY; /* 참조유형 (ex: BOOK) */ - private String TI; /* 표제 (ex: 수원사랑 259호) */ - private String AB; /* 요약 */ - private String DA; /* 날짜 */ - private String PY; /* 발행 년도 (YYYY) */ - private String LA; /* 언어 (ex: Korean) */ + private String typeDivCd; /* 참조유형 TY */ + private String title; /* 제목 TI */ + private String subTitle; /* 부제목 T2 */ + private String creatYyyy; /* 생산일자 (YYYY) PY */ + private String keyword; /* 키워드 (ex: 수원사랑) KW */ private String UR; /* URL */ - private String KW; /* 키워드 (ex: 수원사랑) */ - private String T2; /* 보조제목 (ex: 수원사랑 259호) */ - private String ER; /* 참조의 끝(비어있고 마지막 태그 여야 함) */ + + /*private String AB; 요약 + private String DA; 날짜 + private String LA; 언어 (ex: Korean) */ /* RIS 추가 항목 */ - private String ID; /* 자료번호 */ - private String T3; /* 자료제목 */ + private String masterId; /* 자료번호 ID */ private String M3; /* 주제분야명 */ - private String L4; /* 썸네일이미지 URL */ - private String M1; /* 관리 번호 */ - private String PB; /* 저자명 */ - private String LB; /* 상표 */ + private String rprsThumbUrl; /* 썸네일이미지 URL L4 */ + private String stakrmMngNo; /* 관리번호 M1 */ + private String producer; /* 생산자(저자) A1 */ + private String orgNm; /* 생산기관명 PP */ - public String getTY() { - return TY; + public String getTypeDivCd() { + return typeDivCd; } - public void setTY(String tY) { - TY = tY; + public String getTy() { + return typeDivCd; } - public String getTI() { - return TI; + public void setTypeDivCd(String typeDivCd) { + this.typeDivCd = typeDivCd; } - public void setTI(String tI) { - TI = tI; + public String getTitle() { + return title; } - public String getAB() { - return AB; + public String getTt() { + return title; } - public void setAB(String aB) { - AB = aB; + public void setTitle(String title) { + this.title = title; } - public String getDA() { - return DA; + public String getSubTitle() { + return subTitle; } - public void setDA(String dA) { - DA = dA; + public String getT2() { + return subTitle; } - public String getPY() { - return PY; + public void setSubTitle(String subTitle) { + this.subTitle = subTitle; } - public void setPY(String pY) { - PY = pY; + public String getCreatYyyy() { + return creatYyyy; } - public String getLA() { - return LA; + public String getPy() { + return creatYyyy; } - public void setLA(String lA) { - LA = lA; + public void setCreatYyyy(String creatYyyy) { + this.creatYyyy = creatYyyy; + } + public String getKeyword() { + return keyword; + } + public String getKw() { + return keyword; + } + public void setKeyword(String keyword) { + this.keyword = keyword; } public String getUR() { return UR; @@ -90,35 +98,14 @@ public class RisVO implements Serializable { public void setUR(String uR) { UR = uR; } - public String getKW() { - return KW; + public String getMasterId() { + return masterId; } - public void setKW(String kW) { - KW = kW; + public String getId() { + return masterId; } - public String getT2() { - return T2; - } - public void setT2(String t2) { - T2 = t2; - } - public String getER() { - return ER; - } - public void setER(String eR) { - ER = eR; - } - public String getID() { - return ID; - } - public void setID(String iD) { - ID = iD; - } - public String getT3() { - return T3; - } - public void setT3(String t3) { - T3 = t3; + public void setMasterId(String masterId) { + this.masterId = masterId; } public String getM3() { return M3; @@ -126,30 +113,40 @@ public class RisVO implements Serializable { public void setM3(String m3) { M3 = m3; } - public String getL4() { - return L4; + public String getRprsThumbUrl() { + return rprsThumbUrl; } - public void setL4(String l4) { - L4 = l4; + public String getL4() { + return rprsThumbUrl; + } + public void setRprsThumbUrl(String rprsThumbUrl) { + this.rprsThumbUrl = rprsThumbUrl; + } + public String getStakrmMngNo() { + return stakrmMngNo; } public String getM1() { - return M1; + return stakrmMngNo; } - public void setM1(String m1) { - M1 = m1; + public void setStakrmMngNo(String stakrmMngNo) { + this.stakrmMngNo = stakrmMngNo; } - public String getPB() { - return PB; + public String getProducer() { + return producer; } - public void setPB(String pB) { - PB = pB; + public String getA1() { + return producer; } - public String getLB() { - return LB; + public void setProducer(String producer) { + this.producer = producer; } - public void setLB(String lB) { - LB = lB; + public String getOrgNm() { + return orgNm; + } + public String getPp() { + return orgNm; + } + public void setOrgNm(String orgNm) { + this.orgNm = orgNm; } - - } diff --git a/src/main/java/nlib/col/service/impl/CartDAO.java b/src/main/java/nlib/col/service/impl/CartDAO.java new file mode 100644 index 00000000..442f2532 --- /dev/null +++ b/src/main/java/nlib/col/service/impl/CartDAO.java @@ -0,0 +1,16 @@ +package nlib.col.service.impl; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Repository; + +import nlib.restful.DataApi; +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +@Repository("cartDAO") +public class CartDAO extends DataApi +{ + private static final Logger log = LoggerFactory.getLogger(CartDAO.class); + +} \ No newline at end of file diff --git a/src/main/java/nlib/col/service/impl/CartServiceImpl.java b/src/main/java/nlib/col/service/impl/CartServiceImpl.java new file mode 100644 index 00000000..50c781bb --- /dev/null +++ b/src/main/java/nlib/col/service/impl/CartServiceImpl.java @@ -0,0 +1,20 @@ +package nlib.col.service.impl; + +import javax.annotation.Resource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import nlib.col.service.CartService; +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +@Service("cartService") +public class CartServiceImpl implements CartService +{ + private static final Logger log = LoggerFactory.getLogger(CartServiceImpl.class); + + @Resource(name="cartDAO") + private CartDAO cartDAO; +} \ No newline at end of file diff --git a/src/main/java/nlib/col/service/impl/CollectionDAO.java b/src/main/java/nlib/col/service/impl/CollectionDAO.java index b4d9ff11..723552c2 100644 --- a/src/main/java/nlib/col/service/impl/CollectionDAO.java +++ b/src/main/java/nlib/col/service/impl/CollectionDAO.java @@ -1,35 +1,47 @@ package nlib.col.service.impl; +import java.util.List; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Repository; -import nlib.bbs.service.impl.BoardDAOApi; +import nlib.col.service.CollectionVO; +import nlib.col.service.DeptVO; +import nlib.col.service.RisVO; import nlib.restful.DataApi; import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.stereotype.Repository; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import nlib.cmm.service.NotificationVO; +import nlib.cmm.service.NlibProperty; +import nlib.user.service.NlibLoginVO; +import nlib.util.StringUtil; @Repository("collectionDAO") -public class CollectionDAO extends DataApi +public class CollectionDAO extends EgovComAbstractDAO { private static final Logger log = LoggerFactory.getLogger(CollectionDAO.class); - /** - * 주 자원의 URI - */ - public static final String RESOURCE_URI = "/uac/service/col"; - - /** + /* + *//** * 소장 자료 목록을 조회한다. * * @param reqVO * @return - */ + *//* public DataApiResVO listItems(DataApiReqVO reqVO) { reqVO.setReqUrl(RESOURCE_URI + "/listItems/list"); return get(reqVO); - } + }*/ public DataApiResVO insertInterest(DataApiReqVO reqVO) { return null; @@ -52,25 +64,26 @@ public class CollectionDAO extends DataApi * * @param reqVO * @return - */ + *//* public DataApiResVO selectItemInfo(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/listItems"); - return get(reqVO); - } - /** - * 관심 자료 목록을 조회한다. - * - * @param reqVO - * @return - */ - public DataApiResVO listInterests(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/interests/list"); - return get(reqVO); - } + }*/ public DataApiResVO deleteInterest(DataApiReqVO reqVO) { return null; } - - + /** + * RIS파일 다운로드 데이터를 조회한다. + * @param vo + * @return + */ + public RisVO selectRisInfo(RisVO vo) { + return selectOne("CollectionDAO.selectRisInfo", vo); + } + /** + * 문화원 목록 조회 + * @return + */ + public List selectOrgList(CollectionVO vo) { + return selectList("CollectionDAO.selectOrgList",vo); + } } \ No newline at end of file diff --git a/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java b/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java index 02bd350d..9a66068f 100644 --- a/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java @@ -1,6 +1,8 @@ package nlib.col.service.impl; +import java.util.List; + import javax.annotation.Resource; import org.slf4j.Logger; @@ -8,6 +10,9 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import nlib.col.service.CollectionService; +import nlib.col.service.CollectionVO; +import nlib.col.service.DeptVO; +import nlib.col.service.RisVO; import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; @@ -26,7 +31,7 @@ public class CollectionServiceImpl implements CollectionService * @see nlib.col.service.CollectionService#listItems(nlib.restful.service.DataApiReqVO) */ public DataApiResVO listItems(DataApiReqVO reqVO) { - return collectionDAO.listItems(reqVO); + return ((CollectionService) collectionDAO).listItems(reqVO); } public DataApiResVO insertInterest(DataApiReqVO reqVO) { @@ -51,21 +56,24 @@ public class CollectionServiceImpl implements CollectionService * @see nlib.col.service.CollectionService#selectItemInfo(nlib.restful.service.DataApiReqVO) */ public DataApiResVO selectItemInfo(DataApiReqVO reqVO) { - return collectionDAO.selectItemInfo(reqVO); + return ((CollectionService) collectionDAO).selectItemInfo(reqVO); } + /* - * 관심 자료 목록을 조회한다. - * + * RIS파일 다운로드 데이터를 조회한다. * (non-Javadoc) - * @see nlib.col.service.CollectionService#listInterests(nlib.restful.service.DataApiReqVO) + * @see nlib.col.service.CollectionService#selectRisInfo(nlib.col.service.CollectionVO) */ - public DataApiResVO listInterests(DataApiReqVO reqVO) { - return collectionDAO.listInterests(reqVO); + public RisVO selectRisInfo(RisVO vo) { + return collectionDAO.selectRisInfo(vo); } - - public DataApiResVO deleteInterest(DataApiReqVO reqVO) { - return null; + + /* + * 문화원 목록 조회 + * (non-Javadoc) + * @see nlib.col.service.CollectionService#selectOrgList() + */ + public List selectOrgList(CollectionVO vo) { + return collectionDAO.selectOrgList(vo); } - - } \ No newline at end of file diff --git a/src/main/java/nlib/col/service/impl/InterestDAO.java b/src/main/java/nlib/col/service/impl/InterestDAO.java new file mode 100644 index 00000000..c42b112a --- /dev/null +++ b/src/main/java/nlib/col/service/impl/InterestDAO.java @@ -0,0 +1,63 @@ +package nlib.col.service.impl; + +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Repository; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import nlib.col.service.CollectionVO; +import nlib.restful.DataApi; +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +@Repository("interestDAO") +public class InterestDAO extends EgovComAbstractDAO +{ + private static final Logger log = LoggerFactory.getLogger(InterestDAO.class); + + /** + * 관심 자료 목록을 조회한다. + * + * @param CollectionVO + * @return + */ + public List listInterests(CollectionVO vo) { + return selectList("InterestDAO.listInterests", vo); + } + /** + * 관심 자료 목록의 개수를 조회한다. + * + * @param CollectionVO + * @return + */ + public int countListInterests(CollectionVO vo) { + return selectOne("InterestDAO.countListInterests", vo); + } + + /** + * 관심자료 목록 삭제 + * @param masterIdList + */ + public void deleteInterests(CollectionVO vo) { + delete("InterestDAO.deleteInterests", vo); + } + + /** + * 관심자료 추가시 중복체크용 count + * @param vo + * @return + */ + public int countInterest(CollectionVO vo) { + return selectOne("InterestDAO.countInterest",vo); + } + + /** + * 관심자료 추가 + * @param vo + */ + public void insertInterest(CollectionVO vo) { + insert("InterestDAO.insertInterest",vo); + } +} \ No newline at end of file diff --git a/src/main/java/nlib/col/service/impl/InterestServiceImpl.java b/src/main/java/nlib/col/service/impl/InterestServiceImpl.java new file mode 100644 index 00000000..11d59087 --- /dev/null +++ b/src/main/java/nlib/col/service/impl/InterestServiceImpl.java @@ -0,0 +1,73 @@ +package nlib.col.service.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import nlib.col.service.CartService; +import nlib.col.service.CollectionVO; +import nlib.col.service.InterestService; +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +@Service("interestService") +public class InterestServiceImpl implements InterestService +{ + private static final Logger log = LoggerFactory.getLogger(InterestServiceImpl.class); + + @Resource(name="interestDAO") + private InterestDAO interestDAO; + + /* + * 관심자료 목록을 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.CollectionService#listInterests(nlib.restful.service.DataApiReqVO) + */ + public List listInterests(CollectionVO vo) { + return interestDAO.listInterests(vo); + } + /* + * 관심자료목록의 총 개수를 조회한다. + * (non-Javadoc) + * @see nlib.col.service.CollectionService#countListInterests(nlib.col.service.CollectionVO) + */ + public int countListInterests(CollectionVO vo) { + return interestDAO.countListInterests(vo); + } + /* + * 관심자료 목록 삭제 + * (non-Javadoc) + * @see nlib.col.service.CollectionService#deleteInterests(java.util.List) + */ + public void deleteInterests(List mbInterestIdList,String mbInfoId) { + CollectionVO vo = new CollectionVO(); + vo.setMbInfoId(mbInfoId); + + for(Integer mbInterestId : mbInterestIdList) { + vo.setMbInterestId(mbInterestId); + interestDAO.deleteInterests(vo); + } + } + /* + * 관심자료 추가시 중복체크용 count + * (non-Javadoc) + * @see nlib.col.service.CollectionService#countInterest(nlib.col.service.CollectionVO) + */ + public int countInterest(CollectionVO vo) { + return interestDAO.countInterest(vo); + } + + /* + * 관심자료 추가 + * (non-Javadoc) + * @see nlib.col.service.CollectionService#insertInterest(nlib.col.service.CollectionVO) + */ + public void insertInterest(CollectionVO vo) { + interestDAO.insertInterest(vo); + } +} \ No newline at end of file diff --git a/src/main/java/nlib/col/service/impl/RentServiceImpl.java b/src/main/java/nlib/col/service/impl/RentServiceImpl.java index 4b694d57..eede3040 100644 --- a/src/main/java/nlib/col/service/impl/RentServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/RentServiceImpl.java @@ -1,4 +1,3 @@ - package nlib.col.service.impl; import javax.annotation.Resource; diff --git a/src/main/java/nlib/col/service/impl/ReserveDAO.java b/src/main/java/nlib/col/service/impl/ReserveDAO.java new file mode 100644 index 00000000..83563578 --- /dev/null +++ b/src/main/java/nlib/col/service/impl/ReserveDAO.java @@ -0,0 +1,16 @@ +package nlib.col.service.impl; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Repository; + +import nlib.restful.DataApi; +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +@Repository("reserveDAO") +public class ReserveDAO extends DataApi +{ + private static final Logger log = LoggerFactory.getLogger(ReserveDAO.class); + +} \ No newline at end of file diff --git a/src/main/java/nlib/col/service/impl/ReserveServiceImpl.java b/src/main/java/nlib/col/service/impl/ReserveServiceImpl.java new file mode 100644 index 00000000..5fc995a9 --- /dev/null +++ b/src/main/java/nlib/col/service/impl/ReserveServiceImpl.java @@ -0,0 +1,20 @@ +package nlib.col.service.impl; + +import javax.annotation.Resource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import nlib.col.service.ReserveService; +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +@Service("reserveService") +public class ReserveServiceImpl implements ReserveService +{ + private static final Logger log = LoggerFactory.getLogger(ReserveServiceImpl.class); + + @Resource(name="reserveDAO") + private ReserveDAO reserveDAO; +} \ No newline at end of file diff --git a/src/main/java/nlib/col/web/CartController.java b/src/main/java/nlib/col/web/CartController.java new file mode 100644 index 00000000..de492be2 --- /dev/null +++ b/src/main/java/nlib/col/web/CartController.java @@ -0,0 +1,48 @@ +package nlib.col.web; + +import javax.annotation.Resource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; + +import nlib.cmm.NlibCommonController; +import nlib.cmm.service.CodeService; +import nlib.cmm.service.NlibProperty; +import nlib.col.service.RentService; + +/** + *
+ * @Class Name : CartController.java
+ * 
+ * @Description : 소장자료 카트 컨트롤러
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 10. 01. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 10. 01. + * @version 1.0 + * + */ +@Controller +public class CartController extends NlibCommonController +{ + private static final Logger log = LoggerFactory.getLogger(CartController.class); + static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size"); + + @Resource(name = "rentService") + private RentService rentService; + + @Resource(name = "codeService") + private CodeService codeService; + +} \ No newline at end of file diff --git a/src/main/java/nlib/col/web/CollectionController.java b/src/main/java/nlib/col/web/CollectionController.java index a9504b53..789ab859 100644 --- a/src/main/java/nlib/col/web/CollectionController.java +++ b/src/main/java/nlib/col/web/CollectionController.java @@ -1,12 +1,19 @@ package nlib.col.web; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,15 +24,25 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import nlib.bbs.service.ArticleVO; import nlib.cmm.NlibCommonController; import nlib.cmm.service.CodeService; import nlib.cmm.service.NlibProperty; import nlib.col.service.CollectionService; +import nlib.col.service.CollectionVO; +import nlib.col.service.DeptVO; +import nlib.col.service.RisVO; import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; +import nlib.user.service.NlibLoginVO; import nlib.util.StringUtil; +/** + * @author JSYOO + * + */ @Controller public class CollectionController extends NlibCommonController { @@ -99,22 +116,75 @@ public class CollectionController extends NlibCommonController return makeResponseEntityJson(retMap); } + + + /** + * RIS파일 다운로드 + * @param vo + * @throws IOException + */ + @RequestMapping(value="/collection/risDownload.do") + public void risDownload(HttpServletRequest request,HttpServletResponse response) throws IOException { + RisVO vo = new RisVO(); + vo.setMasterId(request.getParameter("masterId")); + + vo = collectionService.selectRisInfo(vo); + + response.setContentType("text/plain"); + + String fileName = vo.getTt(); + String Ty=""; + // 브라우저 별 한글 인코딩 + String header = request.getHeader("User-Agent"); + if (header.contains("Edge")){ + fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + ".ris;\""); + } else if (header.contains("MSIE") || header.contains("Trident")) { // IE 11버전부터 Trident로 변경되었기때문에 추가해준다. + fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".ris;"); + } else if (header.contains("Chrome")) { + fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + ".ris\""); + } else if (header.contains("Opera")) { + fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + ".ris\""); + } else if (header.contains("Firefox")) { + fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1"); + response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".ris"); + } + + + Ty = StringUtil.getString(vo.getTy(), ""); + + if(Ty.length() > 3) + { + Ty.replace("IT_", ""); + } + + String s = "TY - " + Ty; + s+= "\nTI - " + StringUtil.getString(vo.getTt(), ""); + s+= "\nPY - " + StringUtil.getString(vo.getPy(), ""); + s+= "\nKW - " + StringUtil.getString(vo.getKw(), ""); + s+= "\nT2 - " + StringUtil.getString(vo.getT2(), ""); + s+= "\nA1 - " + StringUtil.getString(vo.getA1(), ""); + s+= "\nPP - " + StringUtil.getString(vo.getPp(), ""); + s+= "\nM1 - " + StringUtil.getString(vo.getM1(), ""); + s+= "\nL4 - " + StringUtil.getString(vo.getL4(), ""); + s+= "\nER - "; + + InputStream input = new ByteArrayInputStream(s.getBytes("UTF8")); - public ModelMap insertInterest(HttpServletRequest req) { - return null; - } + int read = 0; + byte[] bytes = new byte[1024]; + OutputStream os = response.getOutputStream(); - public ModelMap reserveItem(HttpServletRequest req) { - return null; - } - - public ModelMap viewOriginalCopy(HttpServletRequest req) { - return null; - } - - public ModelMap requestViewingItem(HttpServletRequest req) { - return null; + while ((read = input.read(bytes)) != -1) { + os.write(bytes, 0, read); + } + os.flush(); + os.close(); } + /** * 소장자료 상세 내용 조회한다. * @@ -160,70 +230,4 @@ public class CollectionController extends NlibCommonController return "nlib/collection/selectItemInfo"; } - /** - * 관심 자료 화면을 호출한다. - * - * @param req - * @return - */ - @RequestMapping("/collection/listInterests.do") - public String listInterests(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception { - String searchKeyword = paramMap.get("searchKeyword"); - String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); - String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); - - // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM) - List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION"); - - // 반환 정보 - model.addAttribute("pageIndex" , pageIndex); - model.addAttribute("pageSize" , pageSize); - model.addAttribute("searchKeyword", searchKeyword); - model.addAttribute("pageSizeCodes", pageSizeCodes); - return "nlib/collection/listInterests"; - } - - /** - * 관심 자료를 조회한다. - * - * @param req - * @return - */ - @RequestMapping(value="/collection/listInterestsAjax.do") - public ResponseEntity listInterestsAjax(HttpServletRequest req, - Authentication authentication, @RequestBody Map paramMap) { - - String searchKeyword = paramMap.get("searchKeyword"); - String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); - String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); - - //------------------------------- - // REQ VO 구성 - //------------------------------- - DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setPageIndex(pageIndex); - reqVO.setPageSize(pageSize); - reqVO.addInfoItem("searchKeyword", searchKeyword); - - // 요청 - DataApiResVO resVO = collectionService.listInterests(reqVO); - - //------------------------------- - // JSON변환 응답 처리 - //------------------------------- - // JS-GRID 페이징 처리를 포함한 응답값 처리 - // {data: [{...}], - // itemsCount: 255 - // } - HashMap retMap = new HashMap(); - retMap.put("data", resVO.getList()); - retMap.put("itemsCount", resVO.getRecordTotCount()); - - return makeResponseEntityJson(retMap); - } - public ModelMap deleteInterest(HttpServletRequest req) { - return null; - } - - } \ No newline at end of file diff --git a/src/main/java/nlib/col/web/InterestController.java b/src/main/java/nlib/col/web/InterestController.java new file mode 100644 index 00000000..c2437c95 --- /dev/null +++ b/src/main/java/nlib/col/web/InterestController.java @@ -0,0 +1,174 @@ +package nlib.col.web; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import nlib.cmm.NlibCommonController; +import nlib.cmm.service.CodeService; +import nlib.cmm.service.NlibProperty; +import nlib.col.service.CollectionService; +import nlib.col.service.CollectionVO; +import nlib.col.service.DeptVO; +import nlib.col.service.InterestService; +import nlib.col.service.RentService; +import nlib.user.service.NlibLoginVO; + +/** + *
+ * @Class Name : InterestController.java
+ * 
+ * @Description : 관심자료 컨트롤러
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 10. 01. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 10. 01. + * @version 1.0 + * + */ +@Controller +public class InterestController extends NlibCommonController +{ + private static final Logger log = LoggerFactory.getLogger(InterestController.class); + static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size"); + + @Resource(name = "interestService") + private InterestService interestService; + + @Resource(name = "collectionService") + private CollectionService collectionService; + + @Resource(name = "codeService") + private CodeService codeService; + + /** + * 관심 자료 화면을 호출한다. + * + * @param req + * @return + */ + @RequestMapping("/interest/listInterests.do") + public String listInterests(HttpServletRequest req, Authentication authentication, + @RequestParam Map paramMap, + CollectionVO searchCollectionVO, ModelMap model) throws Exception { + + List vo = new ArrayList(); + + //사용자 정보를 가져온다. + NlibLoginVO loginVO = getNlibLoginVO(authentication); + + searchCollectionVO.setMbInfoId(loginVO.getMbInfoId()); + + //문화원 목록 조회 + vo = collectionService.selectOrgList(searchCollectionVO); + + model.addAttribute("deptList",vo); + model.addAttribute("searchCollection", searchCollectionVO); + return "nlib/collection/listInterests"; + } + + /** + * 관심 자료를 조회한다. + * + * @param req + * @return + */ + @RequestMapping(value="/interest/listInterestsAjax.do") + public ResponseEntity listInterestsAjax(HttpServletRequest req, + Authentication authentication, @RequestBody CollectionVO searchCollectionVO) { + + if(searchCollectionVO.getPageIndex() < 1) searchCollectionVO.setPageIndex(1); + if(searchCollectionVO.getPageSize() < 1) searchCollectionVO.setPageSize(DEFUALT_PAGE_SIZE); + + int totalCount= 0; + //사용자 정보를 가져온다. + NlibLoginVO loginVO = getNlibLoginVO(authentication); + + searchCollectionVO.setMbInfoId(loginVO.getMbInfoId()); + searchCollectionVO.setPageStart((searchCollectionVO.getPageIndex()-1) * searchCollectionVO.getPageSize()); + List List = new ArrayList(); + + // 요청 + List = interestService.listInterests(searchCollectionVO); + totalCount = interestService.countListInterests(searchCollectionVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", List); + retMap.put("itemsCount", totalCount); + + return makeResponseEntityJson(retMap); + } + + /** + * 관심자료 목록 삭제 + * @param masterIdList + */ + @RequestMapping(value="/interest/deleteInterests.ajax") + @ResponseBody + public void deleteInterests(@RequestParam(value="mbInterestIdList[]") List mbInterestIdList,Authentication authentication) { + NlibLoginVO loginVO = getNlibLoginVO(authentication); + interestService.deleteInterests(mbInterestIdList,loginVO.getMbInfoId()); + } + + /** + * 관심자료 추가 + * @param masterIdList + */ + @RequestMapping(value="/interest/insertInterest.ajax") + @ResponseBody + public String insertInterest(@RequestParam(value="masterId") String masterId,HttpServletResponse response,Authentication authentication,HttpServletRequest request) { + NlibLoginVO loginVO = getNlibLoginVO(authentication); + + CollectionVO vo = new CollectionVO(); + vo.setMbInfoId(loginVO.getMbInfoId()); + vo.setMasterId(masterId); + + int count = 0; + String message = ""; + count = interestService.countInterest(vo); + + //중복된 관심자료가 있을시 + if(count > 0) + { + message="이미 추가된 관심자료입니다."; + }else { + interestService.insertInterest(vo); + message="관심자료에 추가되었습니다."; + } + return message; + } + +} \ No newline at end of file diff --git a/src/main/java/nlib/col/web/ReserveController.java b/src/main/java/nlib/col/web/ReserveController.java new file mode 100644 index 00000000..010d8dee --- /dev/null +++ b/src/main/java/nlib/col/web/ReserveController.java @@ -0,0 +1,48 @@ +package nlib.col.web; + +import javax.annotation.Resource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; + +import nlib.cmm.NlibCommonController; +import nlib.cmm.service.CodeService; +import nlib.cmm.service.NlibProperty; +import nlib.col.service.RentService; + +/** + *
+ * @Class Name : ReserveController.java
+ * 
+ * @Description : 자료열람 컨트롤러
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 10. 01. JSYOO 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 10. 01. + * @version 1.0 + * + */ +@Controller +public class ReserveController extends NlibCommonController +{ + private static final Logger log = LoggerFactory.getLogger(ReserveController.class); + static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size"); + + @Resource(name = "rentService") + private RentService rentService; + + @Resource(name = "codeService") + private CodeService codeService; + +} \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/config/mapper-config.xml b/src/main/resources/egovframework/mapper/config/mapper-config.xml index e1f3607a..5bff2bdd 100644 --- a/src/main/resources/egovframework/mapper/config/mapper-config.xml +++ b/src/main/resources/egovframework/mapper/config/mapper-config.xml @@ -19,6 +19,9 @@ + + + diff --git a/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml new file mode 100644 index 00000000..ac5752d7 --- /dev/null +++ b/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml @@ -0,0 +1,40 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/col/InterestDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/col/InterestDAO_SQL.xml new file mode 100644 index 00000000..f1681c7d --- /dev/null +++ b/src/main/resources/egovframework/mapper/nlib/col/InterestDAO_SQL.xml @@ -0,0 +1,85 @@ + + + + + + + + + + /* CollectionDAO.deleteInterests 관심자료 삭제 */ + UPDATE + MB_INTEREST + SET + USE_YN="N" + WHERE 1=1 + AND MB_INTEREST_ID = #{mbInterestId} + AND MB_INFO_ID = #{mbInfoId} + + + + /* CollectionDAO.insertInterest 관심자료 추가 */ + + SELECT MAX(MB_INTEREST_ID)+1 FROM MB_INTEREST; + + INSERT INTO + MB_INTEREST + VALUES + (#{mbInterestId},#{mbInfoId},#{masterId},NOW(),"Y"); + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/user/MemberDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/user/MemberDAO_SQL.xml index f46eaa15..a92f7707 100644 --- a/src/main/resources/egovframework/mapper/nlib/user/MemberDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/user/MemberDAO_SQL.xml @@ -2,7 +2,7 @@ - + - + SELECT CONCAT(LEFT(MAX(MB_INFO_ID),2), LPAD(RIGHT(MAX(MB_INFO_ID),9)+1,9,0)) FROM MB_INFO; @@ -79,7 +79,7 @@ - + UPDATE MB_INFO SET @@ -119,7 +119,7 @@ - SELECT MB_INFO_ID ,LOGIN_USER_ID @@ -183,7 +183,7 @@ - + /* deleteMembership */ UPDATE MB_INFO diff --git a/src/main/webapp/WEB-INF/jsp/nlib/collection/listInterests.jsp b/src/main/webapp/WEB-INF/jsp/nlib/collection/listInterests.jsp index 583be074..70ac4592 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/collection/listInterests.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/collection/listInterests.jsp @@ -57,15 +57,16 @@ window.onload = function() { //====================================== // 요청 정보 구성 : 시작 (각 요청에 맞게 조정) //====================================== - var reqUrl = "${pageContext.request.contextPath}/collection/listInterestsAjax.do"; - var searchKeyword = document.articleForm.searchKeyword.value; + var reqUrl = "${pageContext.request.contextPath}/interest/listInterestsAjax.do"; var pageIndex = ( filter && filter.pageIndex ? filter.pageIndex : $("#pageIndex").val()); var pageSize = ( filter && filter.pageSize ? filter.pageSize : $("#pageSize").val()); + var mngOrgCd = $("#mngOrgCd").val(); + $("#pageIndex").val(pageIndex); - + var inputData = { - "searchKeyword" : searchKeyword + "mngOrgCd" : mngOrgCd , "pageIndex" : pageIndex , "pageSize": pageSize}; @@ -80,37 +81,89 @@ window.onload = function() { dataType: "json", data: JSON.stringify(inputData), }).done(function(response){ + var jsonObj = JSON.parse(response); + //$("#itemsCount").val(jsonOjb.itemsCount); + console.log(jsonObj.itemsCount); + + if(jsonObj.itemsCount == undefined) { + $("#itemsCount").text("0"); + $("#searchItemsCount").text("0"); + } + else { + $("#itemsCount").text(jsonObj.itemsCount); + $("#searchItemsCount").text(jsonObj.itemsCount); + } <% // 그리드 데이터 예시 : // (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }] // (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255} %> - data.resolve(JSON.parse(response)); + + data.resolve(jsonObj); }); return data.promise(); } // loadData }, - + + rowRenderer: function(item) { + var user = item; + console.log(item); + var $check = $("
").addClass("client-photo") + .append($("")) + var $org = $("
").addClass("client-photo") + .append($("

" + user.mngOrgNm.capitalize() + "

")) + var $photo = $("
").addClass("client-photo").append($("") + .attr("src", "data:image/jpeg;base64,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")) + .append($("
")) + + var $info = $("
").addClass("client-info") + .append($("

").append($("").text(user.title.capitalize()))) + .append($("

").text("도서간행물 / OO 문화원(2018)")) + .append($("

").text("소장 : OO문화원, OO문화원")) + .append($("

").text("설명이 들어갑니다.설명이 들어갑니다.설명이 들어갑니다.설명이 들어갑니다.설명이 들어갑니다.설명이 들어갑니다.설명이 들어갑니다.")) + .append($("").attr("value","원문보기")) + .append($('').attr("value","RIS")); + + return $("").append($("").append($check).append($org).append($photo).append($info)); + }, + rowClick: function(args) { // 행 클릭 시, 실행되는 이벤트 함수 + + // 클릭된 행의 자료 객체 + var getData = args.item; + + // 추출할 컬럼의 데이터 가져오기 + var articleNo = getData["masterId"]; + + }, + //====================================== // 그리드 컬럼 정의 (각 요청에 맞게 조정) //====================================== fields: [ - { width: 80, align: "center" , itemTemplate: function (_, item) { - var btn = $("").click(function (e) { - alert("chk"); - e.stopPropagation(); - }); - return $("

").append(item.loanExtension).append("   ").append(btn); - } + { + headerTemplate: function() { + return $("").attr("type", "checkbox").attr("id","allChk") + .on("click", function () { + selectAllChk(); + }); + }, + align: "center", + width: 50 }, - { title:"번호", name: "articleNo" , type: "number" , width: 50, align: "center"}, - { title:"자료명", name: "rentItem", type: "text" , width: 200, align: "center" }, - { title:"관리번호", name: "ctrlNum", type: "number", width: 50, align: "center" }, - { title:"저자", name: "author", type: "text", width: 100, align: "center"}, - { title:"출판사", name: "publisher", type: "text", width: 100, align: "center"} + { title:"문화원", name: "masterId" , type: "text" , width: 50, align: "center"}, + { title:"자료 정보", name: "title", type: "text" , width: 400, align: "center" }, + /* { title:"관리번호", name: "ctrlNum", type: "number", width: 50, align: "center" }, */ + { title:"이용", name: "rprsThumbUrl", type: "text", width: 100, align: "center"}, + /* { title:"출판사", name: "publisher", type: "text", width: 100, align: "center"} */ + { name: "mngOrgNm", visible: false, width: 0}, + { name: "mbInterestId", visible: false, width: 0} ] }); + String.prototype.capitalize = function() { + return this.charAt(0).toUpperCase() + this.slice(1); + }; + // 페이지 크기 변경시 재조회 $("#pageSize").on("change", function(e) { fn_search_article($("#pageSize").val(), 1); @@ -121,6 +174,10 @@ window.onload = function() { fn_search_article($("#pageSize").val(), 1); }); + $("#mngOrgCd").on("change", function(e){ + fn_search_article($("#pageSize").val(), 1); + }) + //초기 자료 조회 fn_search_article(); @@ -130,35 +187,118 @@ window.onload = function() { // 그리드 데이터 조회 호출 function fn_search_article(pageSize, pageIndex) { $("#jsGrid").jsGrid("search" - , {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${pageSize})), - 'pageIndex': (pageIndex ? pageIndex : fn_getIntValue("pageIndex", 1)) + , {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${searchCollection.pageSize})), + 'pageIndex': (pageIndex ? pageIndex : fn_getIntValue("pageIndex", ${searchCollection.pageIndex})) } ); } +function selectAll(){ + if($("#allChk").is(":checked") == false) + { + $("#allChk").attr("checked", true); + selectAllChk(); + }else if($("#allChk").is(":checked") == true) + { + $("#allChk").attr("checked", false); + selectAllChk(); + } +} + +<% //체크박스로 전체선택 %> +function selectAllChk(){ + if($("#allChk").is(":checked") == false) + { + $("input:checkbox[name = 'interestChk']").attr("checked", false); + }else if($("#allChk").is(":checked") == true) + { + $("input:checkbox[name = 'interestChk']").attr("checked", true); + } +} + +function deleteInterests(type,mbInterestId){ + var mbInterestIdArray = []; + + <% //체크박스를 이용한 삭제 %> + if(type=="multiple") + { + if($("input:checkbox[name=interestChk]:checked").length==0) + { + alert("선택된 관심자료가 없습니다."); + return false; + } + $("input:checkbox[name=interestChk]").each(function(){ + if($(this).is(":checked") == true) { + mbInterestIdArray.push($(this).val()); + } + }); + } + else if(type=="single") + { + <% //관심버튼을 이용한 삭제 %> + mbInterestIdArray.push(mbInterestId); + } + + if(!confirm("삭제하시겠습니까?")) + { + return false; + } + + + $.ajax({ + url : "${pageContext.request.contextPath}/interest/deleteInterests.ajax", + type : "POST", + async: false, + data : {"mbInterestIdList" : mbInterestIdArray}, + success : function(){ + alert("선택하신 관심자료가 삭제되었습니다."); + fn_search_article($("#pageSize").val(), 1); + + },error : function(){ + } + }); + +} - +

${pageTitle }

-
+ 총
+
+ + - + <%-- - - - - - + --%> + + +
- + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/nlib/collection/listItems.jsp b/src/main/webapp/WEB-INF/jsp/nlib/collection/listItems.jsp index 8e3d2f5d..208a4cb4 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/collection/listItems.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/collection/listItems.jsp @@ -92,9 +92,8 @@ window.onload = function() { var $photo = $("
").addClass("client-photo").append($("") .attr("src", "data:image/jpeg;base64,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")); var $info = $("
").addClass("client-info") - .append($("").attr("value","열람요청")) - .append($("").attr("value","대출예약")) - .append($("").attr("value","관심")) + .append($("").attr("value","원문보기")) + .append($("").attr("value","RIS")) .append($("

").append($("").text(user.rentItem.capitalize()))) .append($("

").text("도서간행물 / OO 문화원(2018)")) .append($("

").text("소장 : OO문화원, OO문화원")) @@ -140,17 +139,14 @@ window.onload = function() { }; // window.onload -function interesting_item(){ - alert("관심"); +function docView(){ + alert("원문보기"); } -function reservation_item(){ - alert("예약"); +function risDownloadFile(){ + alert("RIS"); } -function viewing_item(){ - alert("열람"); -} // 선택한 게시글 상세 보기로 이동 function fn_view_detail(articleNo) { $("#articleNo").val(articleNo); diff --git a/src/main/webapp/WEB-INF/tiles/inc/menu.jsp b/src/main/webapp/WEB-INF/tiles/inc/menu.jsp index a7a20b16..7073e3a3 100644 --- a/src/main/webapp/WEB-INF/tiles/inc/menu.jsp +++ b/src/main/webapp/WEB-INF/tiles/inc/menu.jsp @@ -10,7 +10,7 @@

  • 자주하는질문
  • 자주하는질문(DB)
  • 묻고답하기
  • -
  • 묻고답하기(DB)
  • +
  • Q&A(DB)
  • 찾아오시는길
  • @@ -22,7 +22,7 @@
  • 대출
  • 예약
  • 열람요청
  • -
  • 관심자료
  • +
  • 관심자료
  • 알림
  • diff --git a/src/main/webapp/js/nlib.js b/src/main/webapp/js/nlib.js index 30ee1e44..e5602316 100644 --- a/src/main/webapp/js/nlib.js +++ b/src/main/webapp/js/nlib.js @@ -125,4 +125,101 @@ function fn_layerPopFormSubmit(formName, display) { }); } -// 콜백 +function fn_isEmpty(value) { + if(value == null) return true; + if(typeof value == "undefined") return true; + if(typeof value == "string" && value == "") return true; + if(Array.isArray(value) && value.length < 1) return true; + + return false; +} + +function fn_unescapeHtml(escapedStr) { + var doc = new DOMParser().parseFromString(escapedStr, "text/html"); + return doc.documentElement.textContent; +} + +function fn_lengthBytes(s) { + if(s != undefined && s != "") { + for(b=i=0;c=s.charCodeAt(i++);b+=c>>11?3:c>>7?2:1); + return b; + } else { + return 0; + } +} + +function fn_extractContentText(html) { + return new DOMParser().parseFromString(html, "text/html").documentElement.textContent; +} + +function risShow(risId){ + var tag = document.createElement("div"); + + tag.class="popup pop-user-set pop-export"; + tag.id = "export-data"; + tag.style="style='display: none;'"; + + document.body.prepend(tag); + + document.getElementById("export-data").className="popup pop-user-set pop-export"; + + var html=""; + html+='
    '; + html+='
    '; + html+='

    서지정보 내보내기 (Export)

    '; + html+='
    '; + html+='
    서지정보 내보내기 안내
    '; + html+='
    '; + html+='

    지역N문화 포털은 콘텐츠 생산자 및 연구자들을 위해 서지정보 내보내기 기능을 제공하고 있습니다.

    '; + html+='
      '; + html+='
    • 서지정보 내용
      : 형식, 제목, 저자, 시리즈, 언어, URL, 태그
    • '; + html+='
    • 제공 포멧
      : RIS : Search Information System (*.ris)
    • '; + html+='
    • RIS 지원 서지관리 프로그램
      : EndNote, Mendeley, Zotero) 외
    • '; + html+='
    '; + html+='
    '; + html+='
    '; + html+=''; + html+='
    '; + html+=''; + html+=''; + html+='
    '; + html+='
    '; + html+='
    '; + html+='
    '; + html+='
    '; + html+='
    '; + + $("#export-data").append(html); +} + +function risClose(){ + $("#export-data").remove(); +} + +function risDownload(risId){ + $("#masterId").val(risId); + + document.interestsForm.action="/collection/risDownload.do"; + document.interestsForm.submit(); +} + +function insertInterest(masterId){ + $.ajax({ + type: "post", + url: "/interest/insertInterest.ajax", + data: {"masterId" : masterId} + }).done(function(result){ + alert(result); + }); +} \ No newline at end of file