diff --git a/src/main/java/nlib/user/service/MemberService.java b/src/main/java/nlib/user/service/MemberService.java index 02201f4a..2a70657f 100644 --- a/src/main/java/nlib/user/service/MemberService.java +++ b/src/main/java/nlib/user/service/MemberService.java @@ -63,5 +63,7 @@ public interface MemberService public int selectSnsIdCount(OAuthUniversalUser oauthUser); + public void deleteMembership(NlibLoginVO loginVO) throws Exception;; + } \ No newline at end of file diff --git a/src/main/java/nlib/user/service/impl/MemberDAO.java b/src/main/java/nlib/user/service/impl/MemberDAO.java index 094e6fd6..dbbdd89d 100644 --- a/src/main/java/nlib/user/service/impl/MemberDAO.java +++ b/src/main/java/nlib/user/service/impl/MemberDAO.java @@ -47,4 +47,6 @@ public interface MemberDAO public int selectMemberSiteCount(MemberSiteVO msVO); public int selectSnsIdCount(OAuthUniversalUser oauthUser); + + public void deleteMembership(NlibLoginVO loginVO) throws Exception; } \ No newline at end of file diff --git a/src/main/java/nlib/user/service/impl/MemberServiceImpl.java b/src/main/java/nlib/user/service/impl/MemberServiceImpl.java index 9d0b1481..76d091e1 100644 --- a/src/main/java/nlib/user/service/impl/MemberServiceImpl.java +++ b/src/main/java/nlib/user/service/impl/MemberServiceImpl.java @@ -239,4 +239,8 @@ public class MemberServiceImpl implements MemberService return memberDAO.selectSnsIdCount(oauthUser); } + public void deleteMembership(NlibLoginVO loginVO) throws Exception { + memberDAO.deleteMembership(loginVO); + } + } \ No newline at end of file diff --git a/src/main/java/nlib/user/web/MemberController.java b/src/main/java/nlib/user/web/MemberController.java index 2547d6f9..3d0692d7 100644 --- a/src/main/java/nlib/user/web/MemberController.java +++ b/src/main/java/nlib/user/web/MemberController.java @@ -289,33 +289,33 @@ public class MemberController extends NlibCommonController{ return "nlib/member/insertMemberInfoForm"; } + /** + * 동일한 핸드폰번호로 가입한 계정있을 시 통합팝업 + * @exception Exception + */ + @RequestMapping(value="/member/selectAlreadySignUpMobile.do") + public String selectAlreadySignUpMobile(NlibLoginVO vo,ModelMap model,HttpSession session,HttpServletRequest request) throws Exception{ + List voList = new ArrayList(); + // 등록된 전화번호가 있는 지 확인 (리스트) + voList = memberService.selectAlreadySignUpMobile(vo); + //통합처리 url + model.addAttribute("cnt",voList.size()); + model.addAttribute("result",voList); + return "nlib/member/alreadySignUp"; + } + /** * 회원가입 * @exception Exception */ @RequestMapping(value="/member/insertMemberInfo.do") - public String insertMemberInfo(NlibLoginVO vo,ModelMap model,HttpSession session) throws Exception{ + public String insertMemberInfo(NlibLoginVO vo,ModelMap model,HttpSession session,HttpServletRequest request) throws Exception{ MemberSiteVO msVO= new MemberSiteVO(); - List voList = new ArrayList(); + EmailVO email = new EmailVO(); - //문화원코드 - String councilCd = (String)session.getAttribute("councilCd"); - - // 등록된 전화번호가 있는 지 확인 (리스트) - voList = memberService.selectAlreadySignUpMobile(vo); - - /* 등록된 ID가 있을때 통합처리 */ - if(voList.size() > 0) - { - //통합처리 url - model.addAttribute("result",voList); - return "nlib/member/accountConsolidationForm"; - } - String jsessionId = session.getId(); OAuthUniversalUser oauthUser = SessionConfig.popNewMemberInfo(jsessionId); - if(oauthUser.getNlibVO()!=null) { //핸드폰인증시 sns제공 번호와 회원가입폼 번호 비교 @@ -343,8 +343,10 @@ public class MemberController extends NlibCommonController{ } } } - //회원정보 insert + //문화원코드 + String councilCd = (String)session.getAttribute("councilCd"); + //회원정보 insert NlibLoginVO result =memberService.insertMemberInfo(vo); //sns 테이블 insert @@ -563,11 +565,47 @@ public class MemberController extends NlibCommonController{ public String deleteMembershipForm(HttpServletResponse response,Authentication authentication,HttpServletRequest request,ModelMap model) throws Exception{ //사용자 정보를 가져온다. NlibLoginVO loginVO = getNlibLoginVO(authentication); - loginVO.decodePrivateInfo(); + //이메일 마스킹 loginVO.setLoginUserId(maskingEmail(loginVO.getLoginUserId())); model.addAttribute("loginVO",loginVO); return "nlib/member/deleteMembershipForm"; } + + /** + * 회원탈퇴 + * @exception Exception + */ + @RequestMapping(value="/member/deleteMembership.ajax") + public @ResponseBody String deleteMembership(Authentication authentication,HttpServletResponse response,HttpServletRequest request,ModelMap model) throws Exception{ + //사용자 정보를 가져온다. + NlibLoginVO loginVO = getNlibLoginVO(authentication); + loginVO.setJoinCouncilCd(getCurCouncilCd(request)); + + loginVO = loginService.selectLoginUserInfo(loginVO); + + String password=egovPasswordEncoder.encryptPassword(loginVO.getLoginUserId()+request.getParameter("password")); + + String message=""; + + if(loginVO!=null && (loginVO.getPassword().equals(password))) + { + //회원탈퇴 + memberService.deleteMembership(loginVO); + + OAuthUniversalUser oAuthVO = new OAuthUniversalUser(); + oAuthVO.setMbInfoId(loginVO.getMbInfoId()); + + //sns 연동해제 + userInfoService.deleteSnsLink(oAuthVO); + + message="delete"; + }else { + message="mismatch"; + } + + return message; + } + /** * 비밀번호초기화 폼 * @exception Exception diff --git a/src/main/java/nlib/user/web/UserInfoController.java b/src/main/java/nlib/user/web/UserInfoController.java index 37bfb014..3ab2da65 100644 --- a/src/main/java/nlib/user/web/UserInfoController.java +++ b/src/main/java/nlib/user/web/UserInfoController.java @@ -22,6 +22,7 @@ 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.security.SecUserDetailsService; import nlib.security.SecUserVO; import nlib.user.service.LoginService; import nlib.user.service.MemberService; @@ -66,6 +67,10 @@ public class UserInfoController extends NlibCommonController { @Resource(name = "egovEnvPasswordEncoderService") EgovPasswordEncoder egovPasswordEncoder; + @Resource(name = "userDetailsService") + private SecUserDetailsService SecUserDetailsService; + + /** * 내 정보 조회 * @exception Exception @@ -126,7 +131,13 @@ public class UserInfoController extends NlibCommonController { encodedText = egovPasswordEncoder.encryptPassword(vo.getPassword()); vo.setPassword(encodedText); + // 내 정보 수정 userInfoService.updateMyInfo(vo); + NlibLoginVO loginVO=(NlibLoginVO) SecUserDetailsService.loadUserByUsername(vo.getLoginUserId()); + + //세션에 수정정보로 재 주입 + replaceNlibLoginVO(request,loginVO); + } /** diff --git a/src/main/resources/egovframework/mapper/nlib/user/MemberDAO_SQL.xml b/src/main/resources/egovframework/mapper/nlib/user/MemberDAO_SQL.xml index 09c972fb..b09f3984 100644 --- a/src/main/resources/egovframework/mapper/nlib/user/MemberDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/user/MemberDAO_SQL.xml @@ -207,4 +207,24 @@ AND UNLINK_DD IS NULL + + + + /* deleteMembership */ + UPDATE + MB_INFO + SET + LEAVE_SITE_DATE = DATE_FORMAT(CURDATE(), '%Y%m%d') + ,STATUS = "D" + ,MOBILE_NO = NULL + ,BIRTHDAY = NULL + ,ZIP_CODE = NULL + ,ADDRESS = NULL + ,ADDRESS_DETAIL = NULL + ,GENDER = NULL + ,EMAIL = NULL + ,PASSWORD = NULL + WHERE 1=1 + AND MB_INFO_ID = #{mbInfoId} + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/nlib/member/accountConsolidationForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/member/accountConsolidationForm.jsp index 939348f2..2bc01bf1 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/member/accountConsolidationForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/member/accountConsolidationForm.jsp @@ -36,12 +36,6 @@

계정이 통합되었습니다.

- - - - - - \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/nlib/member/alreadySignUpForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/member/alreadySignUpForm.jsp new file mode 100644 index 00000000..d112372d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/nlib/member/alreadySignUpForm.jsp @@ -0,0 +1,40 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +Insert title here + + + +
+서비스에 이미 가입된 계정이 있습니다. + + + + + + + + +
+ 아니요, 내가 아닙니다. +
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/nlib/member/deleteMembershipForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/member/deleteMembershipForm.jsp index 61ee3157..7e1a807c 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/member/deleteMembershipForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/member/deleteMembershipForm.jsp @@ -32,6 +32,30 @@ +
@@ -39,7 +63,7 @@ 이름 :
이메일 :

- + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp b/src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp index 1d688941..fdb6677c 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp @@ -75,6 +75,7 @@ function signUp(){ //연락받을 이메일 입력 %> $("#email").val($("#loginUserId").val()); + document.joinForm.action="/nlib/member/insertMemberInfo.do"; return true; }else{ return false; @@ -245,6 +246,8 @@ function certMobileCheck(){ { alert("인증되었습니다."); $("#mobileCertYn").val("Y"); + document.joinForm.action="/nlib/member/selectAlreadySignUpMobile.do"; + fn_layerPopFormSubmit(document.joinForm,false); }else { alert("인증번호가 일치하지않습니다."); @@ -421,7 +424,7 @@ label.error { 회원가입


-
+ diff --git a/src/main/webapp/WEB-INF/jsp/nlib/member/selectMemberJoiningInfo.jsp b/src/main/webapp/WEB-INF/jsp/nlib/member/selectMemberJoiningInfo.jsp index 5c129d51..524fd5c1 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/member/selectMemberJoiningInfo.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/member/selectMemberJoiningInfo.jsp @@ -38,25 +38,19 @@ Insert title here diff --git a/src/main/webapp/js/nlib.js b/src/main/webapp/js/nlib.js index 88adc2b4..6e97d25b 100644 --- a/src/main/webapp/js/nlib.js +++ b/src/main/webapp/js/nlib.js @@ -105,17 +105,24 @@ function fn_layerPop(url) { $("#NLIB_LAYER_POPUP").show(); } -function fn_layerPopFormSubmit(formName) { +function fn_showLayerPop() { + $("#NLIB_LAYER_POPUP").show(); +} + +function fn_layerPopFormSubmit(formName, display) { var dataList = $("#" + formName).serialize(); var url = $("#" + formName).attr('action'); - $("#NLIB_LAYER_POPUP").show(); + if(display) $("#NLIB_LAYER_POPUP").show(); + else $("#NLIB_LAYER_POPUP").hide(); $.ajax({ type: "post", url: url, data: dataList }).done(function(response){ - $("#" + formName).html(response); + $("#NLIB_LAYER_POPUP").html(response); }); } + +// 콜백
아이디