소셜회원가입 오류수정

dev_bert
jonghwan76 3 years ago
parent d27b7b5864
commit 29c5a87ea2

@ -9,11 +9,15 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="4099ff18-820b-4e43-a4c5-6159d58dccc4" name="변경" comment="- 체크리스트 오류사항 수정">
<list default="true" id="4099ff18-820b-4e43-a4c5-6159d58dccc4" name="변경" comment="- 기본음악파일 삭제불가처리">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/backoffice/m/login/M_LoginBO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/backoffice/m/login/M_LoginBO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/backoffice/m/login/M_LoginBOImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/backoffice/m/login/M_LoginBOImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/backoffice/m/login/M_LoginController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/backoffice/m/login/M_LoginController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/backoffice/m/util/M_Util.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/backoffice/m/util/M_Util.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/sqlmap/m/login/com.backoffice.m.login.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/sqlmap/m/login/com.backoffice.m.login.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/sqlmap/m/member_env/com.backoffice.m.member_env.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/sqlmap/m/member_env/com.backoffice.m.member_env.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/member_env/view_set_music.ftl" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/member_env/view_set_music.ftl" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/view_join_member_01.ftl" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/view_join_member_01.ftl" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/view_join_member_02.ftl" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/view_join_member_02.ftl" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -230,7 +234,9 @@
<workItem from="1650613105021" duration="532000" />
<workItem from="1650638814398" duration="7670000" />
<workItem from="1650687202332" duration="1688000" />
<workItem from="1650693305284" duration="10033000" />
<workItem from="1650693305284" duration="10783000" />
<workItem from="1650722240024" duration="593000" />
<workItem from="1650776418092" duration="11549000" />
</task>
<task id="LOCAL-00001" summary="최초 커밋">
<created>1645354476031</created>
@ -519,7 +525,14 @@
<option name="project" value="LOCAL" />
<updated>1650706673085</updated>
</task>
<option name="localTasksCounter" value="42" />
<task id="LOCAL-00042" summary="- 기본음악파일 삭제불가처리">
<created>1650709918086</created>
<option name="number" value="00042" />
<option name="presentableId" value="LOCAL-00042" />
<option name="project" value="LOCAL" />
<updated>1650709918086</updated>
</task>
<option name="localTasksCounter" value="43" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@ -539,7 +552,6 @@
<component name="VcsManagerConfiguration">
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_NEW_TODO" value="false" />
<MESSAGE value="데이터 연동작업" />
<MESSAGE value="퍼블리싱 기능 적용&#10;1. 설정하기&#10; - 인증코드 확인&#10; - 계정연동 하기&#10; - 기록 카테고리 수정&#10; - 자주쓰는 표현 수정&#10; &#10;2. 로그인화면" />
<MESSAGE value="index_bottom 공유관련 html 스크립트 분리" />
<MESSAGE value="index_bottom 공유관련 html 스크립트 분리-2" />
@ -564,6 +576,7 @@
<MESSAGE value="d-day 체크리스트 사항 수정" />
<MESSAGE value="- 전화번호 인증 만료시 재발행 버튼 적용&#10;- 메인화면 기록이미지 노출(대표이미지 관련 문의해야함)&#10;- 아기정보 성별 변경 오류 수정" />
<MESSAGE value="- 체크리스트 오류사항 수정" />
<option name="LAST_COMMIT_MESSAGE" value="- 체크리스트 오류사항 수정" />
<MESSAGE value="- 기본음악파일 삭제불가처리" />
<option name="LAST_COMMIT_MESSAGE" value="- 기본음악파일 삭제불가처리" />
</component>
</project>

@ -17,6 +17,7 @@ public interface M_LoginBO {
public abstract DataMap select_member(DataMap paramMap) throws Exception;
public abstract int select_member_check_pw(DataMap paramMap) throws Exception;
public abstract int select_member_check_nickname(DataMap paramMap) throws Exception;
int update_member_with_pwd(DataMap paramMap) throws Exception;
int update_member(DataMap paramMap) throws Exception;

@ -98,6 +98,18 @@ public class M_LoginBOImpl extends AbstractBOManager implements M_LoginBO {
return result;
}
public int select_member_check_nickname(DataMap paramMap) throws Exception{
int result = 0;
try {
generalDAO.setNamespace(SQLMAP_NAMESPACE);
result = generalDAO.select_item_to_number("select_member_check_nickname", paramMap);
} catch (SQLException e) {
throw e;
}
return result;
}
@Override
public int update_member_with_pwd(DataMap paramMap) throws Exception{

@ -113,9 +113,23 @@ public class M_LoginController extends AbstractControllerManager{
*/
@RequestMapping(value="view_join_member_01_confirm")
public String view_join_member_01_confirm(@ModelAttribute("model") ModelMap model, HttpServletRequest request){
DataMap paramMap = gmUtil.getDataMapFromRequest(request);
DataMap paramMap = gmUtil.getDataMapFromRequest(request); //페이지의 파라미터 값을 얻어옴.
HttpSession session = request.getSession(false); //현재 세션값을 얻어옴.
DataMap rm_mem = (DataMap) session.getAttribute(ConstantSystem.SESSION_RM_MEMBER); //SNS 가입정보(이름, 이메일, 닉네임 등) 확인
//소셜정보가 있다면 paramMap에 소셜가입정보 세팅
if(rm_mem != null) {
paramMap.put("sns_id", rm_mem.get("sns_id"));
paramMap.put("userEmail", rm_mem.get("userEmail"));
//소셜정보에 전화번호가 있다면 전화번호값 세팅
if(!rm_mem.get("phone").equals("")) {
paramMap.put("phone", rm_mem.get("phone"));
}
paramMap.put("social_type", rm_mem.get("social_type"));
}
HttpSession session = request.getSession(false);
session.setAttribute(M_Util.SESSION_RM_MEMBER, paramMap);
gmUtil.redirectParam(model, paramMap);
@ -590,6 +604,34 @@ public class M_LoginController extends AbstractControllerManager{
return redirect_url;
}
/**
*
* @param model
* @param request
* @param response
* @return
*/
@RequestMapping(value="ajax_check_nickname", method=RequestMethod.POST)
@ResponseBody
public HashMap<String, Object> ajax_check_nickname(@ModelAttribute("model") ModelMap model, HttpServletRequest request, HttpServletResponse response) {
DataMap paramMap = gmUtil.getDataMapFromRequest(request);
HashMap<String, Object> rm = new HashMap<String, Object>();
rm.put("RESULT", ConstantResultCode.RESULT_INIT);
try {
int check_cnt = loginBO.select_member_check_nickname(paramMap);
rm.put("RESULT", ConstantResultCode.RESULT_SUCCESS);
rm.put("check_cnt", check_cnt);
} catch (Exception ex1) {
ex1.printStackTrace();
rm.put("RESULT", ConstantResultCode.RESULT_EXCEPTION);
}
return rm;
}
@RequestMapping(value="nhnLogin_callback")
public String nhnLogin_callback(@ModelAttribute("model") ModelMap model, HttpServletRequest request){
return "m/login/nhnLogin_callback";
@ -657,8 +699,8 @@ public class M_LoginController extends AbstractControllerManager{
DataMap map_json = new DataMap();
ConstantResultCode.putResultCode(map_json, false, ConstantResultCode.RESULT_INIT); // json result code
DataMap paramMap = gmUtil.getDataMapFromRequest(request);
String socialType = request.getParameter("socialType");
String userPhone = "";
// String socialType = request.getParameter("socialType");
// String userPhone = "";
try {
paramMap = gmUtil.social_connect(request, paramMap);
@ -671,14 +713,18 @@ public class M_LoginController extends AbstractControllerManager{
//소셜아이디로 회원가입이 안되어 있을경우 회원가입페이지로 이동
if(socialMemberMap == null) {
// userPhone = paramMap.getString("phone"); //소셜회원가입정보 - 전화번호
redirect_url = "/m/login/view_join_member_01";
//소셜연동결과 전화번호값이 없으면 휴대폰 회원인증 1단계 회원가입페이지 이동
/*
if("".equals(userPhone)) {
redirect_url = "/m/login/view_join_member_01";
} else { //전화번호가 있으면 실명인증 없이 2단계 회원가입페이지 이동
redirect_url = "redirect:/m/login/view_join_member_02.do";
}
*/
session.setAttribute(M_Util.SESSION_RM_MEMBER, paramMap); //세션에 소셜에서 받은 회원정보 세팅
} else {
String member_id = RenaStringUtil.getData(socialMemberMap, "member_id"); //회원아이디
ConstantResultCode.putResultCode(socialMemberMap, true, ConstantResultCode.RESULT_SUCCESS); // json result code - 결과코드 세팅
@ -704,7 +750,7 @@ public class M_LoginController extends AbstractControllerManager{
}
} else {
redirect_url = "redirect:/m/login/view_join_member.do";
redirect_url = "redirect:/m/login/view_join_member_01.do";
}
} catch (final Exception e) {
e.printStackTrace();

@ -30,7 +30,6 @@ public class M_Util {
private static Log log = LogFactory.getLog(LogAdminLog.class);
public static final String SESSION_RM_MEMBER = "rm_member";
public static final String SESSION_MEMBER_ID = "member_id";
public static final String SESSION_MEMBER_PASSWORD_DEC = "password_dec";

@ -25,6 +25,14 @@
AND x.password = #password#
</select>
<select id="select_member_check_nickname" resultClass="Integer" parameterClass="dataMap">
SELECT
count(*)
FROM tbl_member x
WHERE x.nickname = #nickname#
</select>
<select id="select_member_confirm_for_check_social" resultClass="dataMap" parameterClass="dataMap">
SELECT
x.member_id,

@ -22,13 +22,23 @@
<div class="sign_up_chk">
<h5>이름</h5>
<div class="input_name">
<input type="text" id="name" name="name" placeholder="이름을 입력하세요" maxlength="30" class="input_box" onfocus="this.placeholder=''"
<#if Session['rm_member']?exists>
<input type="text" id="name" name="name" value="${Session.rm_member['name']!}" placeholder="이름을 입력하세요" maxlength="30" class="input_box" onfocus="this.placeholder=''"
onblur="this.placeholder='이름을 입력하세요'" />
<#else>
<input type="text" id="name" name="name" value="" placeholder="이름을 입력하세요" maxlength="30" class="input_box" onfocus="this.placeholder=''"
onblur="this.placeholder='이름을 입력하세요'" />
</#if>
</div>
<h5>전화번호</h5>
<div class="input_phone">
<input type="text" maxlength="15" id="phone" name="phone" onkeyup="this.value = phone_mask(this.value)" placeholder="010-xxxx-zzzz" value="" class="input_box" onfocus="this.placeholder=''"
<#if Session['rm_member']?exists>
<input type="text" maxlength="15" id="phone" name="phone" value="${Session.rm_member['phone']!}" onkeyup="this.value = phone_mask(this.value)" placeholder="010-xxxx-zzzz" value="" class="input_box" onfocus="this.placeholder=''"
onblur="this.placeholder='전화번호를 입력하세요'" />
<#else>
<input type="text" maxlength="15" id="phone" name="phone" value="" onkeyup="this.value = phone_mask(this.value)" placeholder="010-xxxx-zzzz" value="" class="input_box" onfocus="this.placeholder=''"
onblur="this.placeholder='전화번호를 입력하세요'" />
</#if>
</div>
<div class="input_search_phone_btn">

@ -34,9 +34,10 @@
<p>* 로그인과 비밀번호 분실 시 이용되므로 실제 사용하는 이메일 주소를 정확하게 입력해 주세요.</p>
<h6>닉네임</h6>
<div class="input_phone">
<input type="text" id="nickname" name="nickname" maxlength="25" value="${Session.rm_member['userNm']!}" placeholder="닉네임을 입력해주세요" class="input_box" onfocus="this.placeholder=''"
<input type="text" onkeyup="characterCheck(this)" onkeydown="characterCheck(this)" onfocusout="check_nickname()" id="nickname" name="nickname" maxlength="25" value="${Session.rm_member['userNm']!}" placeholder="닉네임을 입력해주세요" class="input_box" onfocus="this.placeholder=''"
onblur="this.placeholder='닉네임을 입력해주세요'" />
<p>* 닉네임은 커뮤니티 게시글 작성 시 사용됩니다.</p>
<p id="nickname_check_text"></p>
</div>
<h6 id="divPw">비밀번호</h6>
<div class="input_reset_pw">
@ -76,11 +77,15 @@
<script>
var b_check_nickname = false;
$(document).ready(function(){
if($("#sns_id").val() == "") {
// $("#divPassword").show();
$("#divPw").show();
$(".input_reset_pw").show();
} else {
$("#divPw").hide();
$(".input_reset_pw").hide();
}
});
@ -128,10 +133,52 @@
Swal.fire({text:"개인정보 취급방침에 동의하셔야 합니다"}).then((result) => {$('#agree_privacy').focus()})
}else if(agree_other == false){
Swal.fire({text:"이용약관에 동의하셔야 합니다"}).then((result) => {$('#agree_other').focus()})
}else if(b_check_nickname == false) {
Swal.fire({text:"다른 닉네임을 설정해 주세요."}).then((result) => {$('#nickname').focus()})
}else{
theForm.submit();
}
}
function characterCheck(obj){
var regExp = /[ \{\}\[\]\/?.,;:|\)*~`!^\-_+┼<>@\#$%&\'\"\\\(\=]/gi;
// 허용할 특수문자는 여기서 삭제하면 됨, 띄어쓰기도 특수문자 처리됨 참고하셈
if( regExp.test(obj.value) ){
Swal.fire({ text: "특수문자는 입력하실수 없습니다.", icon: 'warning', showConfirmButton: false, timer: 1500 }); // success
obj.value = obj.value.substring( 0 , obj.value.length - 1 ); // 입력한 특수문자 한자리 지움
}
}
/* 닉네임 중복검사 */
function check_nickname() {
if($("#nickname").val() == "") {
b_check_nickname = false;
$("#nickname_check_text").html("");
return;
}
$.ajax({
url:'${URL_ROOT}/m/login/ajax_check_nickname.do',
type:'post',
data:{
"nickname":$("#nickname").val()
},
dataType:'json',
error:function(request,status,error){
},
success:function(result){
if(result.RESULT==0) {
if(result.check_cnt == 0) {
b_check_nickname = true;
$("#nickname_check_text").html("<span style='color:green'>해당 닉네임은 사용 가능합니다.</span>");
} else {
b_check_nickname = false;
$("#nickname_check_text").html("<span style='color:red'>해당 닉네임은 사용 불가 합니다.</span>");
}
}
}
});
}
</script>
<#include "/m/include/index_bottom.ftl">
Loading…
Cancel
Save