diff --git a/src/main/java/nlib/cmm/service/CodeService.java b/src/main/java/nlib/cmm/service/CodeService.java index 96233569..0a767f7d 100644 --- a/src/main/java/nlib/cmm/service/CodeService.java +++ b/src/main/java/nlib/cmm/service/CodeService.java @@ -12,5 +12,7 @@ import nlib.restful.service.DataApiResVO; public interface CodeService { public List> listCodes(String iCodeId) throws Exception; + + public List> listCtClsfs() throws Exception; } diff --git a/src/main/java/nlib/cmm/service/PagingVO.java b/src/main/java/nlib/cmm/service/PagingVO.java index 3f3a67a5..9cd54164 100644 --- a/src/main/java/nlib/cmm/service/PagingVO.java +++ b/src/main/java/nlib/cmm/service/PagingVO.java @@ -6,10 +6,46 @@ public class PagingVO { int pageIndex = 1; /* 페이지 번호 */ int pageSize = DEFAULT_PAGE_SIZE; /* 페이지 크기 (1페이지당 보여줄 자료건수) */ - int totRecordCount; /* 총건수 */ + int totRecordCount = 0; /* 총건수 */ int pageStart = 0; /* 시작번호 (limit용)*/ + int startPage = 0; /*시작페이지 */ + int endPage = 0; /* 끝페이지 */ + int lastPage = 0; /* 마지막페이지 */ + private int cntPage = DEFAULT_PAGE_SIZE; /* 노출되는 페이지 개수 ex) << < 1 2 3 4 5 > >> */ + public int getStartPage() { + return startPage; + } + + public int getCntPage() { + return cntPage; + } + + public void setCntPage(int cntPage) { + this.cntPage = cntPage; + } + + public void setStartPage(int startPage) { + this.startPage = startPage; + } + + public int getEndPage() { + return endPage; + } + + public void setEndPage(int endPage) { + this.endPage = endPage; + } + + public int getLastPage() { + return lastPage; + } + + public void setLastPage(int lastPage) { + this.lastPage = lastPage; + } + public int getPageStart() { return pageStart; } @@ -67,4 +103,47 @@ public class PagingVO { return ((pageIndex - 1) * pageSize); } + + public void setPagingVO(int totRecordCount, int pageIndex, int pageSize) { + setPageIndex(pageIndex); + //현재 페이지 + setPageSize(pageSize); + //페이지 당 게시글수 + setTotRecordCount(totRecordCount); + //게시글 총 갯수 + calcLastPage(totRecordCount,pageSize); + //제일 마지막 페이지 계산 + + //시작 끝 페이지 계산 - 아래. + calcStartEndPage(pageIndex, cntPage); + setPageStart(pageIndex, pageSize); + + } + // 제일 마지막 페이지 계산 + public void calcLastPage(int totRecordCount, int pageSize) { + setLastPage((int) Math.ceil((double)totRecordCount / (double)pageSize)); + } + // 시작, 끝 페이지 계산 + public void calcStartEndPage(int pageIndex, int cntPage) { + setEndPage(((int)Math.ceil((double)pageIndex / (double)cntPage )) * cntPage ); + if (getLastPage() < getEndPage()) { + setEndPage(getLastPage()); + } + if(getTotRecordCount() > 0) + { + if(getEndPage() % cntPage == 0) + { + setStartPage( 1 + (getEndPage() / cntPage - 1) * cntPage); + }else { + setStartPage(getEndPage() / cntPage * cntPage +1); + } + } + if (getStartPage() < 1) { + setStartPage(1); + } + } + // DB 쿼리에서 사용할 start값 계산 + public void setPageStart(int pageIndex, int pageSize) { + this.pageStart = ((pageIndex - 1) * pageSize); + } } diff --git a/src/main/java/nlib/cmm/service/impl/CodeDAO.java b/src/main/java/nlib/cmm/service/impl/CodeDAO.java index a359989b..f6137ff5 100644 --- a/src/main/java/nlib/cmm/service/impl/CodeDAO.java +++ b/src/main/java/nlib/cmm/service/impl/CodeDAO.java @@ -31,4 +31,6 @@ import egovframework.rte.psl.dataaccess.mapper.Mapper; public interface CodeDAO { public List> listCodes(String iCodeId) throws Exception; + + public List> listCtClsfs() throws Exception; } diff --git a/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java b/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java index aea75c02..fb8390d6 100644 --- a/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java +++ b/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java @@ -27,4 +27,8 @@ public class CodeServiceImpl extends EgovAbstractServiceImpl implements CodeServ return codeDAO.listCodes(iCodeId.toUpperCase()); } + + public List> listCtClsfs() throws Exception { + return codeDAO.listCtClsfs(); + } } \ No newline at end of file diff --git a/src/main/java/nlib/cmm/snslogin/KakaoController.java b/src/main/java/nlib/cmm/snslogin/KakaoController.java index 821604db..401e9866 100644 --- a/src/main/java/nlib/cmm/snslogin/KakaoController.java +++ b/src/main/java/nlib/cmm/snslogin/KakaoController.java @@ -1,3 +1,4 @@ +<<<<<<< HEAD package nlib.cmm.snslogin; import java.io.IOException; @@ -78,4 +79,86 @@ public class KakaoController { // clear resources } return returnNode; } +======= +package nlib.cmm.snslogin; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpSession; + +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.message.BasicNameValuePair; +import org.springframework.stereotype.Controller; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +@Controller +public class KakaoController { + + private final static String K_CLIENT_ID = "dawsdasd"; + + public static String getAuthorizationUrl(HttpSession session,String K_REDIRECT_URI) { + String kakaoUrl = "https://kauth.kakao.com/oauth/authorize?" + "client_id=" + K_CLIENT_ID + + "&redirect_uri="+ K_REDIRECT_URI + "&response_type=code"; + return kakaoUrl; + } + + public static JsonNode getAccessToken(String autorize_code,String K_REDIRECT_URI) { + final String RequestUrl = "https://kauth.kakao.com/oauth/token"; + final List postParams = new ArrayList(); + postParams.add(new BasicNameValuePair("grant_type", "authorization_code")); + postParams.add(new BasicNameValuePair("client_id", K_CLIENT_ID)); // REST API KEY + postParams.add(new BasicNameValuePair("redirect_uri",K_REDIRECT_URI)); + // 리다이렉트 URI + postParams.add(new BasicNameValuePair("code",autorize_code)); // 로그인 과정중 얻은 code 값 + final HttpClient client = HttpClientBuilder.create().build(); + final HttpPost post = new HttpPost(RequestUrl); + JsonNode returnNode = null; + try { + post.setEntity(new UrlEncodedFormEntity(postParams)); + final HttpResponse response = client.execute(post); + // JSON 형태 반환값 처리 + ObjectMapper mapper = new ObjectMapper(); + returnNode = mapper.readTree(response.getEntity().getContent()); + } catch (UnsupportedEncodingException e){ + e.printStackTrace(); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); } + finally { + // clear resources + } return returnNode; + } + + public static JsonNode getKakaoUserInfo(JsonNode accessToken) { + final String RequestUrl = "https://kapi.kakao.com/v2/user/me"; + final HttpClient client = HttpClientBuilder.create().build(); + final HttpPost post = new HttpPost(RequestUrl); + // add header + post.addHeader("Authorization", "Bearer " + accessToken); + JsonNode returnNode = null; + try { + final HttpResponse response = client.execute(post); + // JSON 형태 반환값 처리 + ObjectMapper mapper = new ObjectMapper(); + returnNode = mapper.readTree(response.getEntity().getContent()); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + // clear resources + } return returnNode; + } +>>>>>>> refs/remotes/origin/master } \ No newline at end of file diff --git a/src/main/java/nlib/col/service/CollectionService_BK.java b/src/main/java/nlib/col/service/CollectionService_BK.java new file mode 100644 index 00000000..53f2d7d9 --- /dev/null +++ b/src/main/java/nlib/col/service/CollectionService_BK.java @@ -0,0 +1,27 @@ + +package nlib.col.service; + +import java.util.List; + +import nlib.restful.service.DataApiReqVO; +import nlib.restful.service.DataApiResVO; + +public interface CollectionService_BK +{ + public DataApiResVO listItems(DataApiReqVO reqVO); + + public DataApiResVO insertInterest(DataApiReqVO reqVO); + + public DataApiResVO reserveItem(DataApiReqVO reqVO); + + public DataApiResVO viewOriginalCopy(DataApiReqVO reqVO); + + public DataApiResVO requestViewingItem(DataApiReqVO reqVO); + + public DataApiResVO selectItemInfo(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/InterestService.java b/src/main/java/nlib/col/service/InterestService.java index 04f50bdc..a3e58d12 100644 --- a/src/main/java/nlib/col/service/InterestService.java +++ b/src/main/java/nlib/col/service/InterestService.java @@ -1,3 +1,4 @@ +<<<<<<< HEAD package nlib.col.service; import java.util.List; @@ -19,4 +20,27 @@ public interface InterestService public List selectOrgList(CollectionVO vo); +======= +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); + + public List selectOrgList(CollectionVO vo); + +>>>>>>> refs/remotes/origin/master } \ 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 723552c2..0d22c0a9 100644 --- a/src/main/java/nlib/col/service/impl/CollectionDAO.java +++ b/src/main/java/nlib/col/service/impl/CollectionDAO.java @@ -80,10 +80,28 @@ public class CollectionDAO extends EgovComAbstractDAO return selectOne("CollectionDAO.selectRisInfo", vo); } /** - * 문화원 목록 조회 + * 문화원 목록 조회(검색필터용) * @return */ - public List selectOrgList(CollectionVO vo) { - return selectList("CollectionDAO.selectOrgList",vo); + public List selectOrgList() { + return selectList("CollectionDAO.selectOrgList"); + } + + /** + * 소장자료 목록 조회 + * @param searchCollectionVO + * @return + */ + public List listItems(CollectionVO searchCollectionVO) { + return selectList("CollectionDAO.listItems",searchCollectionVO); + } + + /** + * 소장자료 목록 개수 조회 + * @param searchCollectionVO + * @return + */ + public int countListItems(CollectionVO searchCollectionVO) { + return selectOne("CollectionDAO.countListItems",searchCollectionVO); } } \ No newline at end of file diff --git a/src/main/java/nlib/col/service/impl/CollectionDAO_BK.java b/src/main/java/nlib/col/service/impl/CollectionDAO_BK.java new file mode 100644 index 00000000..0760f03e --- /dev/null +++ b/src/main/java/nlib/col/service/impl/CollectionDAO_BK.java @@ -0,0 +1,89 @@ + +package nlib.col.service.impl; + +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Repository; + +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_BK") +public class CollectionDAO_BK extends EgovComAbstractDAO +{ + private static final Logger log = LoggerFactory.getLogger(CollectionDAO_BK.class); + + /* + *//** + * 소장 자료 목록을 조회한다. + * + * @param reqVO + * @return + *//* + public DataApiResVO listItems(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/listItems/list"); + return get(reqVO); + }*/ + + public DataApiResVO insertInterest(DataApiReqVO reqVO) { + return null; + } + + public DataApiResVO reserveItem(DataApiReqVO reqVO) { + return null; + } + + public DataApiResVO viewOriginalCopy(DataApiReqVO reqVO) { + return null; + } + + public DataApiResVO requestViewingItem(DataApiReqVO reqVO) { + return null; + } + + /** + * 소장자료를 상세 조회한다. + * + * @param reqVO + * @return + *//* + public DataApiResVO selectItemInfo(DataApiReqVO 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_BK.java b/src/main/java/nlib/col/service/impl/CollectionServiceImpl_BK.java new file mode 100644 index 00000000..8e45d528 --- /dev/null +++ b/src/main/java/nlib/col/service/impl/CollectionServiceImpl_BK.java @@ -0,0 +1,79 @@ + +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.CollectionService_BK; +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; + +@Service("collectionService_BK") +public class CollectionServiceImpl_BK implements CollectionService_BK +{ + private static final Logger log = LoggerFactory.getLogger(CollectionServiceImpl_BK.class); + + @Resource(name = "collectionDAO_BK") + private CollectionDAO_BK collectionDAO_BK; + + /* + * 소장자료 목록을 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.CollectionService#listItems(nlib.restful.service.DataApiReqVO) + */ + public DataApiResVO listItems(DataApiReqVO reqVO) { + return ((CollectionService_BK) collectionDAO_BK).listItems(reqVO); + } + + public DataApiResVO insertInterest(DataApiReqVO reqVO) { + return null; + } + + public DataApiResVO reserveItem(DataApiReqVO reqVO) { + return null; + } + + public DataApiResVO viewOriginalCopy(DataApiReqVO reqVO) { + return null; + } + + public DataApiResVO requestViewingItem(DataApiReqVO reqVO) { + return null; + } + /* + * 소장자료를 상세 조회한다. + * + * (non-Javadoc) + * @see nlib.col.service.CollectionService#selectItemInfo(nlib.restful.service.DataApiReqVO) + */ + public DataApiResVO selectItemInfo(DataApiReqVO reqVO) { + return ((CollectionService_BK) collectionDAO_BK).selectItemInfo(reqVO); + } + + /* + * RIS파일 다운로드 데이터를 조회한다. + * (non-Javadoc) + * @see nlib.col.service.CollectionService#selectRisInfo(nlib.col.service.CollectionVO) + */ + public RisVO selectRisInfo(RisVO vo) { + return collectionDAO_BK.selectRisInfo(vo); + } + + /* + * 문화원 목록 조회 + * (non-Javadoc) + * @see nlib.col.service.CollectionService#selectOrgList() + */ + public List selectOrgList(CollectionVO vo) { + return collectionDAO_BK.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 index 36519b87..b017ff49 100644 --- a/src/main/java/nlib/col/service/impl/InterestDAO.java +++ b/src/main/java/nlib/col/service/impl/InterestDAO.java @@ -1,3 +1,4 @@ +<<<<<<< HEAD package nlib.col.service.impl; import java.util.List; @@ -68,4 +69,76 @@ public class InterestDAO extends EgovComAbstractDAO public List selectOrgList(CollectionVO vo) { return selectList("InterestDAO.selectOrgList",vo); } +======= +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.col.service.DeptVO; +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); + } + /** + * 문화원 목록 조회 + * @return + */ + public List selectOrgList(CollectionVO vo) { + return selectList("InterestDAO.selectOrgList",vo); + } +>>>>>>> refs/remotes/origin/master } \ 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 index efc32562..40443622 100644 --- a/src/main/java/nlib/col/service/impl/InterestServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/InterestServiceImpl.java @@ -1,3 +1,4 @@ +<<<<<<< HEAD package nlib.col.service.impl; import java.util.List; @@ -79,4 +80,87 @@ public class InterestServiceImpl implements InterestService public List selectOrgList(CollectionVO vo) { return interestDAO.selectOrgList(vo); } +======= +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.DeptVO; +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); + } + /* + * 문화원 목록 조회 + * (non-Javadoc) + * @see nlib.col.service.CollectionService#selectOrgList() + */ + public List selectOrgList(CollectionVO vo) { + return interestDAO.selectOrgList(vo); + } +>>>>>>> refs/remotes/origin/master } \ No newline at end of file diff --git a/src/main/java/nlib/col/web/CollectionController_BK1006.java b/src/main/java/nlib/col/web/CollectionController_BK1006.java new file mode 100644 index 00000000..5a089398 --- /dev/null +++ b/src/main/java/nlib/col/web/CollectionController_BK1006.java @@ -0,0 +1,234 @@ + +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; +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.bbs.service.ArticleVO; +import nlib.cmm.NlibCommonController; +import nlib.cmm.service.CodeService; +import nlib.cmm.service.NlibProperty; +import nlib.col.service.CollectionService_BK; +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.restful.service.DataApiVO; +import nlib.user.service.NlibLoginVO; +import nlib.util.StringUtil; + +/** + * @author JSYOO + * + */ +@Controller +public class CollectionController_BK1006 extends NlibCommonController +{ + private static final Logger log = LoggerFactory.getLogger(CollectionController_BK1006.class); + static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size"); + + @Resource(name = "codeService") + private CodeService codeService; + + @Resource(name="collectionService_BK") + private CollectionService_BK collectionService_BK; + + /** + * 소장자료 화면을 호출한다. + * + * @param req + * @return + */ + @RequestMapping("/collection/listItems.do") + public String listItems(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/listItems"; + } + + /** + * 소장자료를 조회한다. + * + * @param req + * @return + */ + @RequestMapping(value="/collection/listItemsAjax.do") + public ResponseEntity listItemsAjax(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.putInfoItem("searchKeyword", searchKeyword); + + // 요청 + DataApiResVO resVO = collectionService_BK.listItems(reqVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", resVO.getList(DataApiVO.XML_EL_NAME_RECORD)); + retMap.put("itemsCount", resVO.getRecordTotCount()); + + 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_BK.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")); + + int read = 0; + byte[] bytes = new byte[1024]; + OutputStream os = response.getOutputStream(); + + while ((read = input.read(bytes)) != -1) { + os.write(bytes, 0, read); + } + os.flush(); + os.close(); + } + + /** + * 소장자료 상세 내용 조회한다. + * + * @param req + * @return + */ + @RequestMapping("/collection/selectItemInfo.do") + public String selectItemInfo(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + // 목록 이동시 전달할 매개변수 + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = paramMap.get("pageIndex"); + String pageSize = paramMap.get("pageSize"); + String message = paramMap.get("message"); + + // 게시물 번호 + String articleNo = paramMap.get("articleNo"); + + log.debug("selectQnA > pageIndex = " + pageIndex); + log.debug("selectQnA > pageSize = " + pageSize); + log.debug("selectQnA > searchKeyword = " + searchKeyword); + log.debug("selectQnA > articleNo = " + articleNo); + log.debug("selectQnA > message = " + message); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.putInfoItem("boardNo", "QNA"); // 게시판ID + reqVO.putInfoItem("articleNo", articleNo); // 게시물번호 + + // 요청 + DataApiResVO resVO = collectionService_BK.selectItemInfo(reqVO); + + // 반환 정보 + model.addAttribute("articleNo" , articleNo); + model.addAttribute("article" , resVO.getInfo()); // 게시물 상세 + model.addAttribute("message" , message); + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + + return "nlib/collection/selectItemInfo"; + } +} \ 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 index df1343f1..5b6f45d1 100644 --- a/src/main/java/nlib/col/web/InterestController.java +++ b/src/main/java/nlib/col/web/InterestController.java @@ -1,3 +1,4 @@ +<<<<<<< HEAD package nlib.col.web; import java.util.ArrayList; @@ -171,4 +172,179 @@ public class InterestController extends NlibCommonController return message; } +======= +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 = interestService.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(), 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; + } + +>>>>>>> refs/remotes/origin/master } \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/cmm/CodeDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/cmm/CodeDAO_SQL.xml index 4918b00c..83c1f19b 100644 --- a/src/main/resources/egovframework/mapper/nlib/cmm/CodeDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/cmm/CodeDAO_SQL.xml @@ -5,7 +5,10 @@ + + \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml index b4557f96..f2124595 100644 --- a/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml @@ -1,3 +1,4 @@ +<<<<<<< HEAD @@ -57,4 +58,65 @@ AND MNG_ORG_CD = #{mngOrgCd} --> +======= + + + + + + + + + + + +>>>>>>> refs/remotes/origin/master \ 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 index 294488ee..157a86e5 100644 --- a/src/main/resources/egovframework/mapper/nlib/col/InterestDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/col/InterestDAO_SQL.xml @@ -1,3 +1,4 @@ +<<<<<<< HEAD @@ -107,4 +108,115 @@ GROUP BY ORG_CD,DEPT_NM ]]> +======= + + + + + + + + + + /* 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"); + + + + + +>>>>>>> refs/remotes/origin/master \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/context-oauth.xml b/src/main/resources/egovframework/spring/context-oauth.xml index 97ddb2de..3dc598f8 100644 --- a/src/main/resources/egovframework/spring/context-oauth.xml +++ b/src/main/resources/egovframework/spring/context-oauth.xml @@ -14,16 +14,16 @@ - - + + - - + + 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 208a4cb4..104479d5 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/collection/listItems.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/collection/listItems.jsp @@ -50,81 +50,11 @@ window.onload = function() { - - $("#jsGrid").jsGrid({ - pageSize : $("#pageSize").val(), - controller: { - loadData: function(filter) { - var data = $.Deferred(); - - var reqUrl = "${pageContext.request.contextPath}/collection/listItemsAjax.do"; - var searchKeyword = document.articleForm.searchKeyword.value; - var pageIndex = ( filter && filter.pageIndex ? filter.pageIndex : $("#pageIndex").val()); - var pageSize = ( filter && filter.pageSize ? filter.pageSize : $("#pageSize").val()); - - $("#pageIndex").val(pageIndex); - - var inputData = { - "searchKeyword" : searchKeyword - , "pageIndex" : pageIndex - , "pageSize": pageSize}; - $.ajax({ - type: "post", - contentType: "application/json; charset=utf-8", - url: reqUrl, - dataType: 'json', - data: JSON.stringify(inputData), - }).done(function(response){ - <% - // 그리드 데이터 예시 : - // (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }] - // (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255} - %> - data.resolve(JSON.parse(response)); - }); - return data.promise(); - } - }, - - rowRenderer: function(item) { - var user = item; - console.log(item); - 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","RIS")) - .append($("

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

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

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

").text("설명이 들어갑니다.설명이 들어갑니다.설명이 들어갑니다.설명이 들어갑니다.설명이 들어갑니다.설명이 들어갑니다.설명이 들어갑니다.")); - - return $("").append($("").append($photo).append($info)); - }, - rowClick: function(args) { // 행 클릭 시, 실행되는 이벤트 함수 - - // 클릭된 행의 자료 객체 - var getData = args.item; - - // 추출할 컬럼의 데이터 가져오기 - var articleNo = getData["articleNo"]; - - // 상세 내용 보기 - fn_view_detail(articleNo); - }, - fields: [ - { title: "소장자료" } - ] - }); - - - String.prototype.capitalize = function() { - return this.charAt(0).toUpperCase() + this.slice(1); - }; - + // 페이지 크기 변경시 재조회 $("#pageSize").on("change", function(e) { - fn_search_article($("#pageSize").val(), 1); + $("#pageIndex").val(1); + fn_search_article($("#pageIndex").val()); }); // 검색 버튼 클릭 @@ -133,12 +63,44 @@ window.onload = function() { }); //초기 자료 조회 - fn_search_article(); + fn_search_article($("#pageIndex").val()); }; // window.onload +<% //검색필터 서브메뉴 보이기%> +function fn_show_sub(subId,subClass){ + if($("#" + subId).css("display") == "none") + { + $("."+subClass).css("display","none"); + $("#" + subId).css("display","block"); + }else{ + $("#" + subId).css("display","none"); + } +} + +<%//검색필터 메뉴 더보기%> +function fn_show_more(showMoreId){ + if($("#" + showMoreId).html() == "더 보기") + { + $("."+showMoreId).css("display","block"); + $("#" + showMoreId).html("접기"); + } + else if($("#" + showMoreId).html() == "접기") + { + $("."+showMoreId).css("display","none"); + $("#" + showMoreId).html("더 보기"); + } +} + +//탭 이동 +function fn_tabMove_sch(itemType){ + $("#itemType").val(itemType); + fn_search_article($("#pageIndex").val()); +} + + function docView(){ alert("원문보기"); } @@ -155,12 +117,57 @@ function fn_view_detail(articleNo) { } // 그리드 데이터 조회 호출 -function fn_search_article(pageSize, pageIndex) { - $("#jsGrid").jsGrid("search" - , {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${pageSize})), - 'pageIndex': (pageIndex ? pageIndex : fn_getIntValue("pageIndex", 1)) - } - ); +function fn_search_article(pageIndex) { + var reqUrl = "${pageContext.request.contextPath}/collection/listItemsAjax.do"; + + $("#pageIndex").val(pageIndex); + + var inputData = { + "pageIndex" : pageIndex + , "pageSize": $("#pageSize").val() + , "searchKeyWord" : $("#searchKeyWord").val() + , "typeCodeNm" : $("#itemType").val() + }; + + + $.ajax({ + type: "post", + contentType: "application/json; charset=utf-8", + url: reqUrl, + dataType: 'json', + data: JSON.stringify(inputData), + }).done(function(response){ + var html = ""; + var jsonObj = JSON.parse(response); + console.log(jsonObj); + console.log(jsonObj.data.length); + + $("#itemList *").remove(); + html+="" + html+="" + html+="" + html+="" + html+="" + //jsonArray to jsonObject 형식 데이터 파싱 수행 + for(var i=0; i" */ + html+= "" + html+= "" + html+= ""; + } + html+="
자료정보이용
" + html+= jsonObject.title + "" + jsonObject.mngOrgNm + "
" + $("#itemList").append(html); + //페이징처리 + paging(jsonObj.pageVO); + <% + // 그리드 데이터 예시 : + // (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }] + // (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255} + %> + }); } @@ -181,15 +188,78 @@ function fn_search_article(pageSize, pageIndex) { - - + + + - -

+
+ + + + + +
+ + +
+
+
+ + +

    생산년도

    +
    + 전체
    + ~
    + (미상포함) + 적용 +
    +
+

    생산기관

    +
+
diff --git a/src/main/webapp/js/nlib.js b/src/main/webapp/js/nlib.js index e5602316..32232a40 100644 --- a/src/main/webapp/js/nlib.js +++ b/src/main/webapp/js/nlib.js @@ -222,4 +222,48 @@ function insertInterest(masterId){ }).done(function(result){ alert(result); }); -} \ No newline at end of file +} + +function paging(pageVO) +{ + $("#paging *").remove(); + + var html=""; + var startPage = pageVO.startPage; + var endPage = pageVO.endPage; + if(pageVO.totalCount != 0) + { + + if(pageVO.pageIndex != 1 ){ + html+="\<\< " + html+="\< "; + }else{ + html+="\<\< " + html+="\< "; + } + + for(startPage; startPage <= endPage; startPage++ ) + { + if(startPage != pageVO.pageIndex) + { + html+= "" + startPage + " " + }else{ + html+= "" + startPage + " " + } + } + + if(pageVO.pageIndex != pageVO.lastPage){ + html+="\> " + html+="\>\> "; + }else{ + html+="\> " + html+="\>\>"; + } + }else{ + html+= "데이터가 없습니다."; + } + + + $("#paging").append(html); +} +