From 4df127ecf00049066778350577e1494221022fe4 Mon Sep 17 00:00:00 2001 From: KNKIM Date: Tue, 12 Oct 2021 08:35:46 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B6=A9=EB=8F=8C=20=EB=B3=91=ED=95=A9=20?= =?UTF-8?q?=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nlib/cmm/snslogin/KakaoController.java | 160 ++++---- .../nlib/col/service/CollectionService.java | 6 +- .../nlib/col/service/InterestService.java | 40 +- .../service/impl/CollectionServiceImpl.java | 24 +- .../nlib/col/service/impl/InterestDAO.java | 132 +++---- .../col/service/impl/InterestServiceImpl.java | 153 ++++---- .../nlib/col/web/CollectionController.java | 69 +++- .../java/nlib/col/web/InterestController.java | 346 +++++++++--------- .../mapper/nlib/col/CollectionDAO_SQL.xml | 98 +++-- .../mapper/nlib/col/InterestDAO_SQL.xml | 193 +++++----- 10 files changed, 672 insertions(+), 549 deletions(-) diff --git a/src/main/java/nlib/cmm/snslogin/KakaoController.java b/src/main/java/nlib/cmm/snslogin/KakaoController.java index 55732d1b..821604db 100644 --- a/src/main/java/nlib/cmm/snslogin/KakaoController.java +++ b/src/main/java/nlib/cmm/snslogin/KakaoController.java @@ -1,81 +1,81 @@ -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 = "e74d25210853313dd1fead4c6c1f06ec"; - - 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; - } +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; + } } \ 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 ce80fb46..d987c036 100644 --- a/src/main/java/nlib/col/service/CollectionService.java +++ b/src/main/java/nlib/col/service/CollectionService.java @@ -22,6 +22,10 @@ public interface CollectionService public RisVO selectRisInfo(RisVO vo); - public List selectOrgList(CollectionVO vo); + public List selectOrgList(); + + public List listItems(CollectionVO searchCollectionVO); + + public int countListItems(CollectionVO searchCollectionVO); } \ 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 3881343d..04f50bdc 100644 --- a/src/main/java/nlib/col/service/InterestService.java +++ b/src/main/java/nlib/col/service/InterestService.java @@ -1,20 +1,22 @@ -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); - +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); + } \ 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 9a66068f..f9d7b20f 100644 --- a/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java @@ -69,11 +69,29 @@ public class CollectionServiceImpl implements CollectionService } /* - * 문화원 목록 조회 + * 문화원 목록 조회(검색 필터용) * (non-Javadoc) * @see nlib.col.service.CollectionService#selectOrgList() */ - public List selectOrgList(CollectionVO vo) { - return collectionDAO.selectOrgList(vo); + public List selectOrgList() { + return collectionDAO.selectOrgList(); + } + + /* + * 소장자료 목록 조회 + * (non-Javadoc) + * @see nlib.col.service.CollectionService#listItems(nlib.col.service.CollectionVO) + */ + public List listItems(CollectionVO searchCollectionVO) { + return collectionDAO.listItems(searchCollectionVO); + } + + /* + * 소장자료 목록 개수 조회 + * (non-Javadoc) + * @see nlib.col.service.CollectionService#countListItems(nlib.col.service.CollectionVO) + */ + public int countListItems(CollectionVO searchCollectionVO) { + return collectionDAO.countListItems(searchCollectionVO); } } \ 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 c42b112a..36519b87 100644 --- a/src/main/java/nlib/col/service/impl/InterestDAO.java +++ b/src/main/java/nlib/col/service/impl/InterestDAO.java @@ -1,63 +1,71 @@ -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); - } +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); + } } \ 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 11d59087..efc32562 100644 --- a/src/main/java/nlib/col/service/impl/InterestServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/InterestServiceImpl.java @@ -1,73 +1,82 @@ -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); - } +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); + } } \ 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 6af2dc14..c2333c0a 100644 --- a/src/main/java/nlib/col/web/CollectionController.java +++ b/src/main/java/nlib/col/web/CollectionController.java @@ -30,13 +30,14 @@ import nlib.bbs.service.ArticleVO; import nlib.cmm.NlibCommonController; import nlib.cmm.service.CodeService; import nlib.cmm.service.NlibProperty; +import nlib.cmm.service.PagingVO; import nlib.col.service.CollectionService; import nlib.col.service.CollectionVO; import nlib.col.service.DeptVO; +import nlib.col.service.InterestService; 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; @@ -56,6 +57,9 @@ public class CollectionController extends NlibCommonController @Resource(name="collectionService") private CollectionService collectionService; + @Resource(name = "interestService") + private InterestService interestService; + /** * 소장자료 화면을 호출한다. * @@ -67,15 +71,31 @@ public class CollectionController extends NlibCommonController String searchKeyword = paramMap.get("searchKeyword"); String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); - + List vo = new ArrayList(); + // 페이징 사이즈 코드 목록 조회 (DB방식으로 변경 2021.08.06 KNKIM) List> pageSizeCodes = codeService.listCodes("PAGE_SIZE_OPTION"); + // 자료유형 코드 목록 조회 + List> masterType = codeService.listCodes("MASTER_TYPE_DIV_CD"); + List> dtlsType = codeService.listCodes("DTLS_TYPE_DIV_CD"); + + //주제분야 목록 조회 + List> clsf = codeService.listCtClsfs(); + + //문화원 목록 조회 + vo = collectionService.selectOrgList(); + // 반환 정보 model.addAttribute("pageIndex" , pageIndex); model.addAttribute("pageSize" , pageSize); model.addAttribute("searchKeyword", searchKeyword); model.addAttribute("pageSizeCodes", pageSizeCodes); + model.addAttribute("masterType", masterType); + model.addAttribute("dtlsType", dtlsType); + model.addAttribute("masterClsf", clsf); + model.addAttribute("dtlsClsf", clsf); + model.addAttribute("orgList",vo); return "nlib/collection/listItems"; } @@ -87,22 +107,37 @@ public class CollectionController extends NlibCommonController */ @RequestMapping(value="/collection/listItemsAjax.do") public ResponseEntity listItemsAjax(HttpServletRequest req, - Authentication authentication, @RequestBody Map paramMap) { + Authentication authentication, @RequestBody CollectionVO searchCollectionVO) { - String searchKeyword = paramMap.get("searchKeyword"); - String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); - String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + //String searchKeyword = paramMap.get("searchKeyword"); + if(searchCollectionVO.getPageIndex() < 1) searchCollectionVO.setPageIndex(1); + if(searchCollectionVO.getPageSize() < 1) searchCollectionVO.setPageSize(DEFUALT_PAGE_SIZE); + + int totalCount= 0; + //사용자 정보를 가져온다. + NlibLoginVO loginVO = getNlibLoginVO(authentication); + + searchCollectionVO.setPageStart(searchCollectionVO.getPageIndex(), searchCollectionVO.getPageSize()); + List List = new ArrayList(); + + // 요청 + List = collectionService.listItems(searchCollectionVO); + totalCount = collectionService.countListItems(searchCollectionVO); + + PagingVO pageVO = new PagingVO(); + pageVO.setPagingVO(totalCount, searchCollectionVO.getPageIndex(), searchCollectionVO.getPageSize()); + //------------------------------- // REQ VO 구성 //------------------------------- - DataApiReqVO reqVO = new DataApiReqVO(); + /*DataApiReqVO reqVO = new DataApiReqVO(); reqVO.setPageIndex(pageIndex); reqVO.setPageSize(pageSize); - reqVO.putInfoItem("searchKeyword", searchKeyword); + reqVO.putInfoItem("searchKeyword", searchKeyword);*/ // 요청 - DataApiResVO resVO = collectionService.listItems(reqVO); + //DataApiResVO resVO = collectionService.listItems(reqVO); //------------------------------- // JSON변환 응답 처리 @@ -112,8 +147,10 @@ public class CollectionController extends NlibCommonController // itemsCount: 255 // } HashMap retMap = new HashMap(); - retMap.put("data", resVO.getList(DataApiVO.XML_EL_NAME_RECORD)); - retMap.put("itemsCount", resVO.getRecordTotCount()); + /*retMap.put("data", resVO.getList(DataApiVO.XML_EL_NAME_RECORD)); + retMap.put("itemsCount", resVO.getRecordTotCount());*/ + retMap.put("data", List); + retMap.put("pageVO", pageVO); return makeResponseEntityJson(retMap); } @@ -159,7 +196,7 @@ public class CollectionController extends NlibCommonController if(Ty.length() > 3) { - Ty.replace("IT_", ""); + Ty = Ty.replaceFirst("IT_", ""); } String s = "TY - " + Ty; @@ -191,7 +228,7 @@ public class CollectionController extends NlibCommonController * * @param req * @return - */ + *//* @RequestMapping("/collection/selectItemInfo.do") public String selectItemInfo(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { // 목록 이동시 전달할 매개변수 @@ -215,8 +252,8 @@ public class CollectionController extends NlibCommonController DataApiReqVO reqVO = new DataApiReqVO(); reqVO.setPageIndex(pageIndex); reqVO.setPageSize(pageSize); - reqVO.putInfoItem("boardNo", "QNA"); // 게시판ID - reqVO.putInfoItem("articleNo", articleNo); // 게시물번호 + reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID + reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 // 요청 DataApiResVO resVO = collectionService.selectItemInfo(reqVO); @@ -230,5 +267,5 @@ public class CollectionController extends NlibCommonController 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 c2437c95..df1343f1 100644 --- a/src/main/java/nlib/col/web/InterestController.java +++ b/src/main/java/nlib/col/web/InterestController.java @@ -1,174 +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; - } - +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; + } + } \ 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 ac5752d7..b4557f96 100644 --- a/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/col/CollectionDAO_SQL.xml @@ -1,40 +1,60 @@ - - - - - - - + + + + + + + + + + + \ 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 f1681c7d..294488ee 100644 --- a/src/main/resources/egovframework/mapper/nlib/col/InterestDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/col/InterestDAO_SQL.xml @@ -1,85 +1,110 @@ - - - - - - - - - - /* 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"); - - - + + + + + + + + + + /* 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