diff --git a/src/main/java/nlib/cmm/qrcode/QRCodeUtil.java b/src/main/java/nlib/cmm/qrcode/QRCodeUtil.java index c35da018..a2774fe4 100644 --- a/src/main/java/nlib/cmm/qrcode/QRCodeUtil.java +++ b/src/main/java/nlib/cmm/qrcode/QRCodeUtil.java @@ -121,7 +121,7 @@ public class QRCodeUtil { * @return * @throws Exception */ - public static BufferedImage generateMemberQRCodeImage(NlibLoginVO loginVO) throws Exception { + public static BufferedImage generateMemberQrcodeImage(NlibLoginVO loginVO) throws Exception { if(loginVO == null) { throw new Exception("QR 2D바코드로 생성할 사용자 정보가 없습니다."); diff --git a/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java b/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java index e59153ec..e7daf76f 100644 --- a/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java +++ b/src/main/java/nlib/col/service/impl/CollectionServiceImpl.java @@ -61,31 +61,17 @@ public class CollectionServiceImpl implements CollectionService { String message = null; // 입력값 확인 - String mngOrgCd = searchVO.getMngOrgCd(); String masterId = searchVO.getMasterId(); - String typeDivCd = searchVO.getTypeDivCd(); String mbInfoId = searchVO.getMbInfoId(); - if(StringUtil.isEmpty(mngOrgCd)) { - message = "[필수값 미입력] 지방문화원정보가 입력되지 않았습니다."; - return new CollectionVO("E101", message); - } - if(StringUtil.isEmpty(masterId)) { message = "[필수값 미입력] 자료 ID 정보가 입력되지 않았습니다."; return new CollectionVO("E102", message); } - if(StringUtil.isEmpty(typeDivCd)) { - message = "[필수값 미입력] 자료유형코드가 입력되지 않았습니다."; - return new CollectionVO("E103", message); - } - // 변수 설정 DataApiReqVO reqVO = new DataApiReqVO("/uac/service/nlib/col/getItemInfo", HttpMethod.GET); - reqVO.putInfoItem("mngOrgCd", mngOrgCd); reqVO.putInfoItem("masterId", masterId); - reqVO.putInfoItem("typeDivCd", typeDivCd); reqVO.setMbInfoId(mbInfoId); // 통신 시, 암호화되어 송수신됨 // API 호출 @@ -231,7 +217,6 @@ public class CollectionServiceImpl implements CollectionService { DataApiReqVO reqVO = new DataApiReqVO("/uac/service/nlib/col/listItemInfo", HttpMethod.GET); reqVO.setMbInfoId(mbInfoId); // 통신 시, 암호화되어 송수신됨 reqVO.putInfoItem("jsonMasterId", jsonMasterId); - reqVO.putInfoItem("mngOrgCd", "KCCF"); // DDDDDDDDDDDDDDDDDd API 개발서버 반영전까지 임시 처리 DataApiResVO resVO = dataApi.request(reqVO); @@ -279,14 +264,14 @@ public class CollectionServiceImpl implements CollectionService { vo.setInterestYn (cVO.getInterestYn()); } - - // DDDDDDDDDDDDDDDDDd 문화원 멀티 처리를 위해 테스트용으로 데이터 변경 - CollectionVO vo = list.get(cnt-2); - vo.setMngOrgCd("SU01"); - vo.setMngOrgNm("마포문화원"); - CollectionVO vo2 = list.get(cnt-1); - vo2.setMngOrgCd("SU01"); - vo2.setMngOrgNm("마포문화원"); +// +// // DDDDDDDDDDDDDDDDDd 문화원 멀티 처리를 위해 테스트용으로 데이터 변경 +// CollectionVO vo = list.get(cnt-2); +// vo.setMngOrgCd("SU01"); +// vo.setMngOrgNm("마포문화원"); +// CollectionVO vo2 = list.get(cnt-1); +// vo2.setMngOrgCd("SU01"); +// vo2.setMngOrgNm("마포문화원"); return list; } diff --git a/src/main/java/nlib/sample/web/BarcodeController.java b/src/main/java/nlib/sample/web/BarcodeController.java index 8434fdd9..0c0eec64 100644 --- a/src/main/java/nlib/sample/web/BarcodeController.java +++ b/src/main/java/nlib/sample/web/BarcodeController.java @@ -70,7 +70,7 @@ public class BarcodeController { log.debug("getMemberQRCode : loginVO=" + loginVO.toString()); - BufferedImage bufferedImage = qrCodeService.generateMemberQRCodeImage(loginVO); + BufferedImage bufferedImage = qrCodeService.generateMemberQrcodeImage(loginVO); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); ImageIO.write( bufferedImage , "jpg", byteArrayOutputStream); diff --git a/src/main/java/nlib/sample/web/SampleDataApiController.java b/src/main/java/nlib/sample/web/SampleDataApiController.java index c3c0b38f..95955993 100644 --- a/src/main/java/nlib/sample/web/SampleDataApiController.java +++ b/src/main/java/nlib/sample/web/SampleDataApiController.java @@ -141,7 +141,7 @@ public class SampleDataApiController extends NlibCommonController { reqVO.putInfoItem("rows", getParamStr(commandMap, "rows", "10")); reqVO.putInfoItem("page", getParamStr(commandMap, "rows", "1")); reqVO.putInfoItem("mngOrgCd", getParamStr(commandMap, "mngOrgCd", "KCCF")); - reqVO.putInfoItem("mbInfoId", getParamStr(commandMap, "mbInfoId", "BDCCAF34CF8AA365C660ADB121CE6741")); + reqVO.setMbInfoId("M1000000001"); //putInfoItem("mbInfoId", getParamStr(commandMap, "mbInfoId", "BDCCAF34CF8AA365C660ADB121CE6741")); // 사용자ID 설정 // NlibLoginVO nlibLoginVO = getNlibLoginVO(request); diff --git a/src/main/java/nlib/user/web/UserInfoController.java b/src/main/java/nlib/user/web/UserInfoController.java index 1106c361..e7a56269 100644 --- a/src/main/java/nlib/user/web/UserInfoController.java +++ b/src/main/java/nlib/user/web/UserInfoController.java @@ -1,18 +1,23 @@ package nlib.user.web; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import javax.annotation.Resource; +import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; @@ -21,15 +26,13 @@ import org.springframework.web.bind.annotation.ResponseBody; import egovframework.com.ext.oauth.service.OAuthUniversalUser; import egovframework.rte.fdl.cryptography.EgovPasswordEncoder; -import nlib.restful.service.DataApiReqVO; +import nlib.cmm.NlibCommonController; +import nlib.cmm.qrcode.QRCodeUtil; import nlib.security.SecUserDetailsService; -import nlib.security.SecUserVO; import nlib.user.service.LoginService; -import nlib.user.service.MemberService; import nlib.user.service.NlibLoginVO; import nlib.user.service.UserInfoService; -import nlib.cmm.NlibCommonController; -import nlib.cmm.service.NlibProperty; +import nlib.util.StringUtil; /** @@ -47,6 +50,7 @@ import nlib.cmm.service.NlibProperty; * @ 수정일 수정자 수정내용 * @ ------------ -------- --------------------------- * @ 2021. 7. 14. JSYOO 최초 생성 + * @ 2021.10. 7. KKN 회원증 조회 기능 추가 * * * @author 이씨플라자 * DIGITALSHIP JSYOO @@ -57,6 +61,8 @@ import nlib.cmm.service.NlibProperty; @Controller public class UserInfoController extends NlibCommonController { + private static final Logger log = LoggerFactory.getLogger(UserInfoController.class); + @Resource(name="userInfoService") private UserInfoService userInfoService; @@ -69,6 +75,11 @@ public class UserInfoController extends NlibCommonController { @Resource(name = "userDetailsService") private SecUserDetailsService SecUserDetailsService; + + /** QRCodeService (2021.10.07) */ + @Resource(name = "qrCodeService") + private QRCodeUtil qrCodeService; + /** * 내 정보 조회 @@ -188,4 +199,57 @@ public class UserInfoController extends NlibCommonController { userInfoService.deleteSnsLink(oAuthVO); } + + /** + * 회원증 QR코드를 조회한다. + * + * (2021.10.07 KKN 추가) + * + * @param request + * @param model + * @return + */ + @RequestMapping(value="/userInfo/getMemberQrcodeFormPopup.do") + public String getMemberQrcodeFormPopup(HttpServletRequest request, ModelMap model) { + + NlibLoginVO loginVO = getNlibLoginVO(request); + log.debug("getMemberQrcode : loginVO=" + loginVO.toString()); + + model.addAttribute("loginVO", loginVO); + + return "nlib/userInfo/getMemberQrcodeFormPopup"; + } + + /** + * 회원정보를 가지고 QR 2D 바코드를 생성하여 이미지(JPG)로 출력한다. + * (Zxing Lib 사용) + * + * (2021.10.07 KKN 추가) + * + * @param request + * @param response + * @return + * @throws Exception + */ + @RequestMapping(value="/userInfo/getMemberQrcode.do", produces=MediaType.IMAGE_JPEG_VALUE) + public ResponseEntity getMemberQrcode(HttpServletRequest request, HttpServletResponse response) throws Exception { + + NlibLoginVO loginVO = getNlibLoginVO(request); + + if(loginVO == null || StringUtil.isEmpty(loginVO.getMbInfoId())) { + throw new Exception("잘못된 접근입니다."); + } + + BufferedImage bufferedImage = qrCodeService.generateMemberQrcodeImage(loginVO); + + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + ImageIO.write( bufferedImage , "jpg", byteArrayOutputStream); + byte[] bs = byteArrayOutputStream.toByteArray(); + response.setContentLength(bs.length); + + final HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.IMAGE_JPEG); + return new ResponseEntity(bs , headers, HttpStatus.OK); + } + } \ No newline at end of file diff --git a/src/main/resources/nlib/nlib.properties b/src/main/resources/nlib/nlib.properties index 5bcc4653..324e3d38 100644 --- a/src/main/resources/nlib/nlib.properties +++ b/src/main/resources/nlib/nlib.properties @@ -50,15 +50,15 @@ nlib.council.dns.host = nlib # DataAPI \uc811\uc18d\uc815\ubcf4 #---------------------------------------- # \uac1c\ubc1c \uc11c\ubc84 -#dataapi.server.ip = 210.181.197.70 -#dataapi.server.port = 80 -#dataapi.server.protocol = http - -# \uc784\uc2dc PC \uac1c\ubc1c \uc11c\ubc84 -dataapi.server.ip = 192.168.25.87 +dataapi.server.ip = 210.181.197.70 dataapi.server.port = 8080 dataapi.server.protocol = http +# \uc784\uc2dc PC \uac1c\ubc1c \uc11c\ubc84 +#dataapi.server.ip = 192.168.25.87 +#dataapi.server.port = 8080 +#dataapi.server.protocol = http + # \ub85c\uceec \uc11c\ubc84 #dataapi.server.ip = localhost #dataapi.server.port = 8088 diff --git a/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml b/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml index 043ea1c2..c7230247 100644 --- a/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml +++ b/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml @@ -17,10 +17,12 @@ - + + + diff --git a/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp b/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp index 15723240..44b0290c 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/cart/listCartItems.jsp @@ -167,6 +167,8 @@ function fn_changeCartItems(cartTypeCd, cartTypeNm) { return; } $("#cartTypeCd").val(cartTypeCd); + $("#selItems").val(fn_getCheckedCartItemsValues()); + $("#frm").attr("action", "${pageContext.request.contextPath}/cart/changeCartType.do"); $("#frm").submit(); } diff --git a/src/main/webapp/WEB-INF/jsp/nlib/sample/listRentItem.jsp b/src/main/webapp/WEB-INF/jsp/nlib/sample/listRentItem.jsp index 729a95f6..67d31e54 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/sample/listRentItem.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/sample/listRentItem.jsp @@ -1,7 +1,7 @@ <% /** *
- * @Class Name : getSampleInfo.jsp
+ * @Class Name : listRentItem.jsp (샘플)
  * 
  * @Description : RESTful API 호출 샘플
  * 
@@ -59,6 +59,7 @@
 	    
Server PORT : ${serverPort}

  + 카트

 
@@ -82,6 +83,10 @@      > typeCodeNm = ${record.typeCodeNm}
     > awaiterCnt = ${record.awaiterCnt}
     > useStatus = ${record.useStatus}
+      > masterId = ${record.masterId}
+ + +

diff --git a/src/main/webapp/WEB-INF/jsp/nlib/userInfo/getMemberQrcodeFormPopup.jsp b/src/main/webapp/WEB-INF/jsp/nlib/userInfo/getMemberQrcodeFormPopup.jsp new file mode 100644 index 00000000..e68063ae --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/nlib/userInfo/getMemberQrcodeFormPopup.jsp @@ -0,0 +1,69 @@ +<% +/** + *
+ * @Class Name : getMemberQrcodeForm.jsp
+ * 
+ * @Description : 회원증 
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 10. 7. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 10. 7. + * @version 1.0 + * + */ + %> +<%@ page language="java" contentType="text/html; charset=UTF-8" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +지방문화원 소장자료관 회원증 + + + + +${pageTitle} + + + + + +
+ +

${pageTitle}

+ ${loginVO.name} | + + + + ${dateStr} +
+ + +
+  
+ 회원코드 : ${loginVO.mbInfoId} + +
+  
+ + ※ 캡쳐한 회원증을 통한 자료대출 및 열람을 불허합니다. + +
+ + + diff --git a/src/main/webapp/WEB-INF/tiles/inc-popup/menu-popup.jsp b/src/main/webapp/WEB-INF/tiles/inc-popup/menu-popup.jsp index eecc0221..34fa1259 100644 --- a/src/main/webapp/WEB-INF/tiles/inc-popup/menu-popup.jsp +++ b/src/main/webapp/WEB-INF/tiles/inc-popup/menu-popup.jsp @@ -1,4 +1,4 @@ <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> -닫기 +닫기 diff --git a/src/main/webapp/WEB-INF/tiles/inc/header.jsp b/src/main/webapp/WEB-INF/tiles/inc/header.jsp index eb3a3836..4a349cc9 100644 --- a/src/main/webapp/WEB-INF/tiles/inc/header.jsp +++ b/src/main/webapp/WEB-INF/tiles/inc/header.jsp @@ -26,7 +26,8 @@ String councilNm = (String)session.getAttribute("councilCd"); -
  • 내 정보
  • +
  • 내 정보
  • +
  • 회원증
  • 로그아웃
  • diff --git a/src/main/webapp/WEB-INF/tiles/tiles-layout.jsp b/src/main/webapp/WEB-INF/tiles/tiles-layout.jsp index 968a1c40..0076c250 100644 --- a/src/main/webapp/WEB-INF/tiles/tiles-layout.jsp +++ b/src/main/webapp/WEB-INF/tiles/tiles-layout.jsp @@ -19,6 +19,7 @@ + 온라인 자료대출관리 (N-LIB)