diff --git a/src/main/java/egovframework/com/ext/oauth/service/OAuthLogin.java b/src/main/java/egovframework/com/ext/oauth/service/OAuthLogin.java index 71636ba5..fe311808 100644 --- a/src/main/java/egovframework/com/ext/oauth/service/OAuthLogin.java +++ b/src/main/java/egovframework/com/ext/oauth/service/OAuthLogin.java @@ -52,8 +52,8 @@ public class OAuthLogin { scope.withScope("profile"); scope.withScope("openid"); scope.withScope("email"); - scope.withScope("https://www.googleapis.com/auth/user.phonenumbers.read"); - scope.withScope("https://www.googleapis.com/auth/user.birthday.read"); + //scope.withScope("https://www.googleapis.com/auth/user.phonenumbers.read"); + //scope.withScope("https://www.googleapis.com/auth/user.birthday.read"); this.oauthService = new ServiceBuilder(oauthVO.getClientId()) .apiSecret(oauthVO.getClientSecret()) @@ -152,6 +152,8 @@ public class OAuthLogin { if (rootNode.has("email")) user.setSnsUserId(StringUtil.getString(rootNode.get("email").asText(), "")); + if (rootNode.has("name")) + user.setSnsName(StringUtil.getString(rootNode.get("name").asText(), "")); } else if (this.oauthVO.isKakao()) { diff --git a/src/main/java/nlib/user/service/MemberService.java b/src/main/java/nlib/user/service/MemberService.java index 7a255bde..bff8aa78 100644 --- a/src/main/java/nlib/user/service/MemberService.java +++ b/src/main/java/nlib/user/service/MemberService.java @@ -59,7 +59,9 @@ public interface MemberService public int selectSnsIdCount(OAuthUniversalUser oauthUser); - public void deleteMembership(NlibLoginVO loginVO) throws Exception;; + public void deleteMembership(NlibLoginVO loginVO) throws Exception; + + public void sendSms(NlibSmsVO smsVO) throws Exception; } \ No newline at end of file diff --git a/src/main/java/nlib/user/service/NlibSmsVO.java b/src/main/java/nlib/user/service/NlibSmsVO.java new file mode 100644 index 00000000..5a2bc029 --- /dev/null +++ b/src/main/java/nlib/user/service/NlibSmsVO.java @@ -0,0 +1,81 @@ +package nlib.user.service; + +import java.io.Serializable; + +/** + *
+ * @Class Name : NlibSmsVO.java
+ * 
+ * @Description : SMS발송 VO
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 10. 19. JSYOO 최초 생성 + * + * @author 이씨플라자 * DIGITALSHIP JSYOO + * @since 2021. 7. 12. + * @version 1.0 + * + */ +public class NlibSmsVO implements Serializable { + + private static final long serialVersionUID = -8274004534207618049L; + + private String cmid; /* 데이터 ID */ + private String msgType; /* 데이터 타입 (SMS 0/FAX 2/PHONE 3 /MMS 5/AT 6/FT 7/RCS 8/BI 11/BW 12) */ + private String requestTime; /* 데이터 등록 시간 */ + private String sendTime; /* 발송 기준 시간 */ + private String destPhone; /* 수신번호 */ + private String sendPhone; /* 발신자번호 */ + private String msgBody; /* 메시지 내용 */ + + + public String getCmid() { + return cmid; + } + public void setCmid(String cmid) { + this.cmid = cmid; + } + public String getMsgType() { + return msgType; + } + public void setMsgType(String msgType) { + this.msgType = msgType; + } + public String getRequestTime() { + return requestTime; + } + public void setRequestTime(String requestTime) { + this.requestTime = requestTime; + } + public String getSendTime() { + return sendTime; + } + public void setSendTime(String sendTime) { + this.sendTime = sendTime; + } + public String getDestPhone() { + return destPhone; + } + public void setDestPhone(String destPhone) { + this.destPhone = destPhone; + } + public String getSendPhone() { + return sendPhone; + } + public void setSendPhone(String sendPhone) { + this.sendPhone = sendPhone; + } + public String getMsgBody() { + return msgBody; + } + public void setMsgBody(String msgBody) { + this.msgBody = msgBody; + } +} diff --git a/src/main/java/nlib/user/service/impl/MemberDAO.java b/src/main/java/nlib/user/service/impl/MemberDAO.java index 78913012..8932c12e 100644 --- a/src/main/java/nlib/user/service/impl/MemberDAO.java +++ b/src/main/java/nlib/user/service/impl/MemberDAO.java @@ -11,6 +11,7 @@ import egovframework.rte.psl.dataaccess.mapper.Mapper; import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; import nlib.user.service.NlibLoginVO; +import nlib.user.service.NlibSmsVO; @Mapper("memberDAO") public interface MemberDAO @@ -44,4 +45,6 @@ public interface MemberDAO public int selectSnsIdCount(OAuthUniversalUser oauthUser); public void deleteMembership(NlibLoginVO loginVO) throws Exception; + + public void sendSms(NlibSmsVO smsVO) 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 85286753..08084a59 100644 --- a/src/main/java/nlib/user/service/impl/MemberServiceImpl.java +++ b/src/main/java/nlib/user/service/impl/MemberServiceImpl.java @@ -18,6 +18,7 @@ import nlib.restful.service.DataApiReqVO; import nlib.restful.service.DataApiResVO; import nlib.user.service.MemberService; import nlib.user.service.NlibLoginVO; +import nlib.user.service.NlibSmsVO; import nlib.util.StringUtil; @Service("memberService") @@ -234,4 +235,8 @@ public class MemberServiceImpl implements MemberService memberDAO.deleteMembership(loginVO); } + public void sendSms(NlibSmsVO smsVO) throws Exception { + memberDAO.sendSms(smsVO); + } + } \ 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 c76ac044..7abf5cd4 100644 --- a/src/main/java/nlib/user/web/MemberController.java +++ b/src/main/java/nlib/user/web/MemberController.java @@ -13,6 +13,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import nlib.util.UUID; import javax.annotation.Resource; import javax.inject.Inject; @@ -45,6 +46,7 @@ import nlib.mail.service.EmailVO; import nlib.user.service.LoginService; import nlib.user.service.MemberService; import nlib.user.service.NlibLoginVO; +import nlib.user.service.NlibSmsVO; import nlib.user.service.UserInfoService; import nlib.util.StringUtil; @@ -127,6 +129,10 @@ public class MemberController extends NlibCommonController{ @Value("#{properties['mailing.sender.membership.name']}") private String senderName; + // SMS 보내는 사람 번호 + @Value("#{properties['sms.sender.phone.number']}") + private String senderNumber; + //게스트 USERID @Value("#{properties['guest.userid']}") private String gUserId; @@ -235,10 +241,12 @@ public class MemberController extends NlibCommonController{ String mId = null; - // 등록된 ID가 있는 지 확인 - if(!(StringUtil.getString(oauthUser.getSnsUserId(),"")== "")) - mId =memberService.selectAlreadySignUpId(oauthUser); - + if(!(oauthUser == null)) + { + // 등록된 ID가 있는 지 확인 + if(!(StringUtil.getString(oauthUser.getSnsUserId(),"")== "")) + mId =memberService.selectAlreadySignUpId(oauthUser); + } /* 등록된 ID가 있을때 통합처리 */ if(!StringUtil.getString(mId, "").equals("")) { @@ -454,17 +462,18 @@ public class MemberController extends NlibCommonController{ replaceNlibLoginVO(request, loginVO); }else { - //세션에 저장 OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId); NlibLoginVO vo=oauthUser.getNlibVO(); //이미 생성된 VO가 없을때 - if(vo==null) + if(vo == null) vo= new NlibLoginVO(); + vo.setEmail(email); vo.setEmailVrfctNo(CertNumber); oauthUser.setNlibVO(vo); SessionConfig.setNewMemberInfo(jsessionId,oauthUser); + } //이메일 발송 @@ -558,6 +567,7 @@ public class MemberController extends NlibCommonController{ } else { OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId); + NlibLoginVO vo=oauthUser.getNlibVO(); //이미 생성된 VO가 없을때 if(vo == null) @@ -569,9 +579,13 @@ public class MemberController extends NlibCommonController{ SessionConfig.setNewMemberInfo(jsessionId,oauthUser); } - + NlibSmsVO smsVO=new NlibSmsVO(); + smsVO.setCmid(UUID.getNlibCommonID("",32)); + smsVO.setDestPhone(mobileNo); + smsVO.setSendPhone(senderNumber); + smsVO.setMsgBody("인증번호는 " + CertNumber + " 입니다."); //문자발송 솔루션 - + memberService.sendSms(smsVO); //------------ } diff --git a/src/main/resources/egovframework/mapper/config/mapper-config.xml b/src/main/resources/egovframework/mapper/config/mapper-config.xml index 5bff2bdd..4eca5610 100644 --- a/src/main/resources/egovframework/mapper/config/mapper-config.xml +++ b/src/main/resources/egovframework/mapper/config/mapper-config.xml @@ -22,6 +22,7 @@ + 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 a92f7707..394e0ed6 100644 --- a/src/main/resources/egovframework/mapper/nlib/user/MemberDAO_SQL.xml +++ b/src/main/resources/egovframework/mapper/nlib/user/MemberDAO_SQL.xml @@ -200,4 +200,11 @@ WHERE 1=1 AND MB_INFO_ID = #{mbInfoId} + + + + /* MemberDAO.sendSms */ + INSERT INTO biz_msg ( CMID, REQUEST_TIME, SEND_TIME, DEST_PHONE, SEND_PHONE, MSG_BODY, NATION_CODE) + VALUES (#{cmid}, NOW(), NOW(), #{destPhone}, #{sendPhone},#{msgBody},'82') + \ No newline at end of file diff --git a/src/main/resources/nlib/nlib.properties b/src/main/resources/nlib/nlib.properties index 2baf8f24..1dfe42b6 100644 --- a/src/main/resources/nlib/nlib.properties +++ b/src/main/resources/nlib/nlib.properties @@ -107,7 +107,8 @@ mailing.sender.membership.email = no-reply@nlib.org #\uba54\uc77c \ubcf4\ub0b4\ub294\uc0ac\ub78c \uc774\ub984 mailing.sender.membership.name = Nlib - +#SMS \ubcf4\ub0b4\ub294\uc0ac\ub78c \ubc88\ud638 +sms.sender.phone.number = 027042322 #---------------------------------------- # \uac80\uc0c9\uc5d4\uc9c4 #---------------------------------------- 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 f6d7f560..a26fa0ff 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/member/insertMemberInfoForm.jsp @@ -76,16 +76,17 @@ function signUp(){ %> $("#loginUserId").val($("#email").val()); document.joinForm.action="${pageContext.request.contextPath}/member/insertMemberInfo.do"; - return true; - }else{ - return false; + document.joinForm.submit(); } + return false; + } $(document).ready(function() { $("input:radio[name='gender']:radio[value='${loginVO.snsGender}']").prop('checked', true); var birthday="${loginVO.snsBirthday}"; + console.log("${loginVO.snsBirthday}"); if(!birthday == "") {