소스 충돌 동기화

This commit is contained in:
JSYOO 2021-09-03 17:01:37 +09:00
parent 30fa96a1e9
commit 2e7a4f2b8f

View File

@ -8,8 +8,10 @@ import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -70,6 +72,7 @@ import nlib.mail.service.EmailVO;
import nlib.restful.service.DataApiReqVO;
import nlib.user.service.MemberService;
import nlib.user.service.NlibLoginVO;
import nlib.user.service.MemberSiteVO;
import nlib.user.service.UserInfoService;
import nlib.util.StringUtil;
@ -194,6 +197,19 @@ public class MemberController {
*/
@RequestMapping(value="/member/selectMemberJoiningInfo.do")
public String selectMemberJoiningInfo(HttpServletRequest req,ModelMap model,HttpSession session) throws Exception {
String jsessionId = session.getId();
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
int count=0;
// 가입계정인지 확인
count=memberService.selectSnsIdCount(oauthUser);
if(count>0)
{
model.addAttribute("msg","이미 가입된 계정입니다. 로그인해주세요.");
model.addAttribute("url","/nlib"+NlibProperty.getString("login.url"));
return "nlib/cmm/alert";
}
return "/nlib/member/selectMemberJoiningInfo";
}
@ -226,10 +242,12 @@ public class MemberController {
*/
@RequestMapping(value="/member/insertMemberInfoForm.do")
public String insertMemberInfoForm(HttpServletRequest request,NlibLoginVO vo,HttpSession session,ModelMap model ) throws Exception{
MemberSiteVO msVO= new MemberSiteVO();
int siteCnt;
String jsessionId = session.getId();
//String councilCd = (String)session.getAttribute("councilCd");
String councilCd = (String)session.getAttribute("councilCd");
//String councilReturnUrl = (String)session.getAttribute("councilReturnUrl");
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
String mId = null;
@ -243,8 +261,20 @@ public class MemberController {
{
oauthUser.setMbInfoId(mId);
memberService.insertMemberSns(oauthUser);
//가입문화원정보 설정
msVO.setMbInfoId(mId);
msVO.setJoinType(oauthUser.getSnsType());
msVO.setJoinCouncilCd(councilCd);
msVO.setMasterYn("N");
siteCnt= memberService.selectMemberSiteCount(msVO);
//문화원에 가입하지않았을 insert
if(!(siteCnt>0))
{
memberService.insertMemberSite(msVO);
}
//통합처리 url
return "redirect:/member/accountConsolidationForm.do";
return "nlib/member/accountConsolidationForm";
}
model.addAttribute("loginVO",oauthUser);
return "nlib/member/insertMemberInfoForm";
@ -255,30 +285,79 @@ public class MemberController {
* @exception Exception
*/
@RequestMapping(value="/member/insertMemberInfo.do")
public String insertMemberInfo(NlibLoginVO vo,ModelMap model) throws Exception{
public String insertMemberInfo(NlibLoginVO vo,ModelMap model,HttpSession session) throws Exception{
MemberSiteVO msVO= new MemberSiteVO();
List<NlibLoginVO> voList = new ArrayList<NlibLoginVO>();
EmailVO email = new EmailVO();
//문화원코드
String councilCd = (String)session.getAttribute("councilCd");
// 등록된 전화번호가 있는 확인 (리스트)
voList = memberService.selectAlreadySignUpMobile(vo);
/* 등록된 ID가 있을때 통합처리 */
if(voList.size() > 0)
{
/* oauthUser.setMbInfoId(mId);
memberService.insertMemberSns(oauthUser);*/
//통합처리 url
System.out.println(voList.get(0).getEmail());
System.out.println(voList.get(0).getMbInfoId());
model.addAttribute("result",voList);
return "nlib/member/accountConsolidationForm";
}
//등록처리 요청 (data insert)
memberService.insertMemberInfo(vo);
String jsessionId = session.getId();
OAuthUniversalUser oauthUser = SessionConfig.popNewMemberInfo(jsessionId);
if(oauthUser.getNlibVO()!=null)
{
//핸드폰인증시 sns제공 번호와 회원가입폼 번호 비교
if(!(vo.getMobileNo().equals(oauthUser.getSnsMobileNo())))
{
if(!(vo.getMobileVrfctNo().equals(oauthUser.getNlibVO().getMobileVrfctNo()))
||oauthUser.getNlibVO().getMobileVrfctDd() == null)
{
model.addAttribute("msg","핸드폰인증에 문제가 있습니다. 다시 회원가입을 진행해주세요.");
model.addAttribute("url","${pageContext.request.contextPath}"+NlibProperty.getString("member.new.url"));
return "nlib/cmm/alert";
}
}
//이메일인증시 sns제공 이메일과 회원가입폼 이메일 비교
if(!(vo.getEmail().equals(oauthUser.getSnsUserId())))
{
if(!(vo.getEmailVrfctDd().equals(oauthUser.getNlibVO().getEmailVrfctDd()))
||oauthUser.getNlibVO().getEmailVrfctDd() == null)
{
model.addAttribute("msg","이메일인증에 문제가 있습니다. 다시 회원가입을 진행해주세요.");
model.addAttribute("url","${pageContext.request.contextPath}"+NlibProperty.getString("member.new.url"));
return "nlib/cmm/alert";
}
}
}
//회원정보 insert
NlibLoginVO result =memberService.insertMemberInfo(vo);
//sns 테이블 insert
oauthUser.setMbInfoId(result.getMbInfoId());
memberService.insertMemberSns(oauthUser);
//가입문화원정보 테이블 insert
msVO.setMbInfoId(result.getMbInfoId());
msVO.setJoinType(oauthUser.getSnsType());
msVO.setJoinCouncilCd(councilCd);
msVO.setMasterYn("Y");
memberService.insertMemberSite(msVO);
// 결과가 정상이면, 안내 메일 발송
// > 템플릿파일에서 내용 mailing.sender.membership.template
// > 치환 (사용자명, 이메일주소)
// > 발송처리 요청
String reciver = vo.getLoginUserId(); //받을사람의 이메일입니다.-> naver nate 등등
String subject = "온라인자료대출시스템 회원가입을 축하드립니다.";
Path path = Paths.get(template);
Charset cs = StandardCharsets.UTF_8;
List<String> list = new ArrayList<String>();
@ -293,30 +372,129 @@ public class MemberController {
contents+=readLine;
}
contents=contents.replace("${userName}",vo.getName());
email.setReciver(reciver);
email.setSubject(subject);
email.setContent(contents);
emailSender.SendEmail(email);
return "nlib/member/insertMemberInfoResult";
}
/**
* 이메일 인증번호 발송
* @exception Exception
*/
@RequestMapping(value="/member/emailCertNum.ajax" , method=RequestMethod.POST)
public @ResponseBody void emailCertNum(HttpServletResponse response,HttpServletRequest request,HttpSession session) throws Exception{
String email = request.getParameter("email");
EmailVO emailVO = new EmailVO();
//인증번호 생성
String CertNumber=memberService.numberGen(6,1);
System.out.println(CertNumber);
//세션에 저장
String jsessionId = session.getId();
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
NlibLoginVO vo=oauthUser.getNlibVO();
//이미 생성된 VO가 없을때
if(vo==null)
vo= new NlibLoginVO();
vo.setEmail(email);
vo.setEmailVrfctNo(CertNumber);
oauthUser.setNlibVO(vo);
SessionConfig.setNewMemberInfo(jsessionId,oauthUser);
//이메일 발송
// 결과가 정상이면, 안내 메일 발송
// > 템플릿파일에서 내용 mailing.sender.membership.template
// > 치환 (사용자명, 이메일주소)
// > 발송처리 요청
String reciver = email; //받을사람의 이메일입니다.-> naver nate 등등
String subject = "온라인자료대출시스템 이메일 인증번호";
Path path = Paths.get(template);
Charset cs = StandardCharsets.UTF_8;
List<String> list = new ArrayList<String>();
String contents = "";
try {
list = Files.readAllLines(path,cs);
}catch(IOException e) {
e.printStackTrace();
}
for(String readLine : list) {
contents+=readLine;
}
contents=contents.replace("${userName}",vo.getName()+"님의 인증번호는"+CertNumber+"입니다.");
emailVO.setReciver(reciver);
emailVO.setSubject(subject);
emailVO.setContent(contents);
emailSender.SendEmail(emailVO);
//------------
}
/**
* 이메일 인증번호 확인
* @exception Exception
*/
@RequestMapping(value="/member/emailCertNumChk.ajax" , method=RequestMethod.POST)
public @ResponseBody String emailCertNumChk(HttpServletResponse response,HttpServletRequest request,HttpSession session) throws Exception{
String email = request.getParameter("email");
String emailVrfctNo = request.getParameter("emailVrfctNo");
SimpleDateFormat format = new SimpleDateFormat ( "yyyy년 MM월dd일 HH시mm분ss초");
//세션에 저장
String jsessionId = session.getId();
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
//핸드폰번호와 인증번호 확인
if(oauthUser.getNlibVO().getEmail().equals(email) && oauthUser.getNlibVO().getEmailVrfctNo().equals(emailVrfctNo))
{
Date time = new Date();
NlibLoginVO sessionNlibLoginVO = oauthUser.getNlibVO();
sessionNlibLoginVO.setEmailVrfctDd(format.format(time));
oauthUser.setNlibVO(sessionNlibLoginVO);
SessionConfig.setNewMemberInfo(jsessionId,oauthUser);
return "true";
}else {
return "false";
}
}
/**
* 핸드폰 인증번호 발송
* @exception Exception
*/
@RequestMapping(value="/member/mobileCertNum.ajax" , method=RequestMethod.POST)
public @ResponseBody void phoneCertNum(HttpServletResponse response,HttpServletRequest request) throws Exception{
public @ResponseBody void phoneCertNum(HttpServletResponse response,HttpServletRequest request,HttpSession session) throws Exception{
String mobileNo = request.getParameter("mobileNo");
HashMap<String, Object> commandMap = new HashMap<String,Object>();
DataApiReqVO reqVO = new DataApiReqVO();
//인증번호 생성
String CertNumber=memberService.numberGen(6,1);
commandMap.put("CertNumber",CertNumber);
reqVO.setInfo(commandMap);
System.out.println(mobileNo);
System.out.println(CertNumber);
//세션에 저장
String jsessionId = session.getId();
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
NlibLoginVO vo=oauthUser.getNlibVO();
//이미 생성된 VO가 없을때
if(vo==null)
vo= new NlibLoginVO();
vo.setMobileNo(mobileNo);
vo.setMobileVrfctNo(CertNumber);
oauthUser.setNlibVO(vo);
SessionConfig.setNewMemberInfo(jsessionId,oauthUser);
//문자발송 솔루션
//------------
}
/**
@ -324,21 +502,28 @@ public class MemberController {
* @exception Exception
*/
@RequestMapping(value="/member/mobileCertNumChk.ajax" , method=RequestMethod.POST)
public @ResponseBody String mobileCertNumChk(HttpServletResponse response,HttpServletRequest request) throws Exception{
public @ResponseBody String mobileCertNumChk(HttpServletResponse response,HttpServletRequest request,HttpSession session) throws Exception{
String mobileNo = request.getParameter("mobileNo");
String mobileCertNum = request.getParameter("mobileCertNum");
String mobileVrfctNo = request.getParameter("mobileVrfctNo");
HashMap<String, Object> commandMap = new HashMap<String,Object>();
commandMap.put("phone", mobileNo);
commandMap.put("phoneCertNum", mobileCertNum);
DataApiReqVO reqVO = new DataApiReqVO();
SimpleDateFormat format = new SimpleDateFormat ( "yyyy년 MM월dd일 HH시mm분ss초");
reqVO.setInfo(commandMap);
System.out.println(mobileNo);
System.out.println(mobileCertNum);
//세션에 저장
String jsessionId = session.getId();
OAuthUniversalUser oauthUser = SessionConfig.getNewMemberInfo(jsessionId);
//핸드폰번호와 인증번호 확인
if(oauthUser.getNlibVO().getMobileNo().equals(mobileNo) && oauthUser.getNlibVO().getMobileVrfctNo().equals(mobileVrfctNo))
{
Date time = new Date();
NlibLoginVO sessionNlibLoginVO = oauthUser.getNlibVO();
sessionNlibLoginVO.setMobileVrfctDd(format.format(time));
oauthUser.setNlibVO(sessionNlibLoginVO);
SessionConfig.setNewMemberInfo(jsessionId,oauthUser);
return "true";
}else {
return "false";
}
}
/**
@ -393,13 +578,6 @@ public class MemberController {
for(String readLine : list) {
contents+=readLine;
}
contents=contents.replace("${userPwd}",InitPwd);
email.setReciver(reciver);
email.setSubject(subject);
email.setContent(contents);
emailSender.SendEmail(email);
encodedText = egovPasswordEncoder.encryptPassword(InitPwd);
vo.setPassword(encodedText);
@ -409,6 +587,16 @@ public class MemberController {
//암호화된 비밀번호로 수정
memberService.changePassword(vo);
contents=contents.replace("${userPwd}",InitPwd);
email.setReciver(reciver);
email.setSubject(subject);
email.setContent(contents);
emailSender.SendEmail(email);
message="초기화된 비밀번호가 이메일로 발송됐습니다.";
}else {
message="일치하는 아이디가 없습니다.";