다중 인증 휴대폰 번호 관리 로직 추가
This commit is contained in:
parent
780e8f14a5
commit
3e2e039c80
@ -3,9 +3,11 @@ package itn.let.mjo.msgdata.service;
|
||||
import java.util.List;
|
||||
|
||||
import itn.let.lett.service.LetterVO;
|
||||
import itn.let.mail.service.StatusResponse;
|
||||
import itn.let.mjo.addr.service.AddrVO;
|
||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||
import itn.let.sym.site.service.JoinSettingVO;
|
||||
import itn.let.uat.uia.service.MberCertPhoneVO;
|
||||
import itn.let.uat.uia.web.SendLogVO;
|
||||
import itn.let.uss.umt.service.MberManageVO;
|
||||
|
||||
@ -176,6 +178,12 @@ public interface MjonMsgDataService {
|
||||
|
||||
//팩스 거래명세서 합산 정보
|
||||
public List<MjonMsgVO> selectPayUserSumFaxList(MjonMsgVO mjonMsgVO) throws Exception;
|
||||
|
||||
public List<MberCertPhoneVO> selectMberCertPhoneList(String userId);
|
||||
|
||||
public StatusResponse insertMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO);
|
||||
|
||||
public StatusResponse deleteCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -6,10 +6,12 @@ import org.springframework.stereotype.Repository;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
|
||||
import itn.let.lett.service.LetterVO;
|
||||
import itn.let.mail.service.StatusResponse;
|
||||
import itn.let.mjo.addr.service.AddrVO;
|
||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
||||
import itn.let.sym.site.service.JoinSettingVO;
|
||||
import itn.let.uat.uia.service.MberCertPhoneVO;
|
||||
import itn.let.uat.uia.web.SendLogVO;
|
||||
import itn.let.uss.umt.service.MberManageVO;
|
||||
|
||||
@ -365,5 +367,21 @@ public class MjonMsgDataDAO extends EgovAbstractDAO {
|
||||
public List<MjonMsgVO> selectPayUserSumFaxList(MjonMsgVO mjonMsgVO) throws Exception{
|
||||
return (List<MjonMsgVO>) list("mjonMsgDAO.selectPayUserSumFaxList",mjonMsgVO);
|
||||
}
|
||||
|
||||
|
||||
public List<MberCertPhoneVO> selectMberCertPhoneList(String userId) {
|
||||
|
||||
return (List<MberCertPhoneVO>) list("mjonMsgDataDAO.selectMberCertPhoneList", userId);
|
||||
}
|
||||
|
||||
|
||||
public void insertMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
|
||||
insert("mjonMsgDataDAO.insertMberCertPhoneInfo", mberCertPhoneVO);
|
||||
}
|
||||
|
||||
|
||||
public void deleteCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
|
||||
update("mjonMsgDataDAO.deleteCertPhoneInfo", mberCertPhoneVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
65
src/main/java/itn/let/uat/uia/service/MberCertPhoneVO.java
Normal file
65
src/main/java/itn/let/uat/uia/service/MberCertPhoneVO.java
Normal file
@ -0,0 +1,65 @@
|
||||
package itn.let.uat.uia.service;
|
||||
|
||||
import itn.let.uss.umt.service.UserDefaultVO;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author : 이호영
|
||||
* @fileName : MberCertPhoneVO.java
|
||||
* @date : 2024.11.18
|
||||
* @description : 발신번호 lettngnrlmber_cert_phone 관련 vo
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* ----------------------------------------------------------- *
|
||||
* 2024.11.18 이호영 최초 생성
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class MberCertPhoneVO extends UserDefaultVO{
|
||||
|
||||
|
||||
/**
|
||||
* @description :
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
private String mberId;
|
||||
private String mbtlnum;
|
||||
private String certUseYn;
|
||||
private String certMbtlnum;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public String getMberId() {
|
||||
return mberId;
|
||||
}
|
||||
public void setMberId(String mberId) {
|
||||
this.mberId = mberId;
|
||||
}
|
||||
public String getMbtlnum() {
|
||||
return mbtlnum;
|
||||
}
|
||||
public void setMbtlnum(String mbtlnum) {
|
||||
this.mbtlnum = mbtlnum;
|
||||
}
|
||||
|
||||
public String getCertUseYn() {
|
||||
return certUseYn;
|
||||
}
|
||||
public void setCertUseYn(String certUseYn) {
|
||||
this.certUseYn = certUseYn;
|
||||
}
|
||||
public String getCertMbtlnum() {
|
||||
return certMbtlnum;
|
||||
}
|
||||
public void setCertMbtlnum(String certMbtlnum) {
|
||||
this.certMbtlnum = certMbtlnum;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -17,6 +17,7 @@ import java.security.PrivateKey;
|
||||
import java.security.PublicKey;
|
||||
import java.security.spec.RSAPublicKeySpec;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
@ -32,6 +33,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.CellStyle;
|
||||
import org.apache.poi.ss.usermodel.Font;
|
||||
@ -39,6 +41,8 @@ import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.ui.ModelMap;
|
||||
@ -85,6 +89,7 @@ import itn.let.kakao.kakaoComm.KakaoVO;
|
||||
import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiProfile;
|
||||
import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiTemplate;
|
||||
import itn.let.kakao.kakaoComm.kakaoApi.service.KakaoApiService;
|
||||
import itn.let.mail.service.StatusResponse;
|
||||
import itn.let.mjo.addr.service.AddrService;
|
||||
import itn.let.mjo.addr.service.AddrVO;
|
||||
import itn.let.mjo.event.service.MjonEventService;
|
||||
@ -126,6 +131,7 @@ import itn.let.sym.site.service.EgovSiteManagerService;
|
||||
import itn.let.sym.site.service.JoinSettingVO;
|
||||
import itn.let.sym.site.service.SiteManagerVO;
|
||||
import itn.let.uat.uia.service.EgovLoginService;
|
||||
import itn.let.uat.uia.service.MberCertPhoneVO;
|
||||
import itn.let.uat.uia.web.EmailVO;
|
||||
import itn.let.uat.uia.web.SendLogVO;
|
||||
import itn.let.uat.uia.web.SendMail;
|
||||
@ -1093,6 +1099,12 @@ public class EgovUserManageController {
|
||||
model.addAttribute("countNum", countNum);
|
||||
model.addAttribute("sendNumberList", sendNumberList);
|
||||
|
||||
|
||||
|
||||
|
||||
List<MberCertPhoneVO> mberCertPhoneList = mjonMsgDataService.selectMberCertPhoneList(userId);
|
||||
model.addAttribute("mberCertPhoneList", mberCertPhoneList);
|
||||
|
||||
//문자발송 단가 조회하기
|
||||
//1.시스템 기본 단가 정보 조회하기
|
||||
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
|
||||
@ -1645,6 +1657,46 @@ public class EgovUserManageController {
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"/uss/umt/user/insertCertPhone.do"})
|
||||
public ResponseEntity<StatusResponse> insertCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
//로그인 권한정보 불러오기
|
||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||
|
||||
if(userId == null) {
|
||||
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
|
||||
}
|
||||
mberCertPhoneVO.setFrstRegisterId(userId);
|
||||
|
||||
|
||||
|
||||
return ResponseEntity.ok().body(mjonMsgDataService.insertMberCertPhoneInfo(mberCertPhoneVO));
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"/uss/umt/user/deleteCertPhone.do"})
|
||||
public ResponseEntity<StatusResponse> deleteCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
//로그인 권한정보 불러오기
|
||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||
|
||||
if(userId == null) {
|
||||
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
|
||||
}
|
||||
mberCertPhoneVO.setLastUpdusrId(userId);
|
||||
|
||||
|
||||
|
||||
return ResponseEntity.ok().body(mjonMsgDataService.deleteCertPhoneInfo(mberCertPhoneVO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 회원정보 팝업 이벤트 정보 신규 추가 기능
|
||||
* @param eventVO
|
||||
|
||||
@ -20,6 +20,8 @@
|
||||
<typeAlias alias="mjonSwearWordVO" type="itn.let.mjo.msg.service.MjonSwearWordVO"/>
|
||||
<typeAlias alias="mjonMsgResvVO" type="itn.let.mjo.reservmsg.service.MjonResvMsgVO"/>
|
||||
<typeAlias alias="mjonMsgStatVO" type="itn.let.mjo.msg.service.MjonMsgStatVO"/>
|
||||
<typeAlias alias="mjonMsgStatVO" type="itn.let.mjo.msg.service.MjonMsgStatVO"/>
|
||||
<typeAlias alias="mberCertPhoneVO" type="itn.let.uat.uia.service.MberCertPhoneVO"/>
|
||||
|
||||
|
||||
<!-- 공통 쿼리 부분 문자 발송 관련 -->
|
||||
@ -3738,7 +3740,7 @@
|
||||
where MBER_ID=#sendId#
|
||||
union all
|
||||
select mber_id, mbtlnum
|
||||
from lettngnrlmber
|
||||
from lettngnrlmber_cert_phone
|
||||
where MBER_ID=#sendId#
|
||||
|
||||
) b
|
||||
@ -3753,6 +3755,58 @@
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<select id="mjonMsgDataDAO.selectMberCertPhoneList" parameterClass="String" resultClass="mberCertPhoneVO">
|
||||
SELECT
|
||||
MBTLNUM AS mbtlnum,
|
||||
'-' AS frstRegistPnttm
|
||||
FROM
|
||||
lettngnrlmber
|
||||
WHERE MBER_ID = #userId#
|
||||
UNION ALL
|
||||
SELECT
|
||||
MBTLNUM AS mbtlnum,
|
||||
FRST_REGIST_PNTTM AS frstRegistPnttm
|
||||
FROM
|
||||
lettngnrlmber_cert_phone
|
||||
WHERE MBER_ID = #userId#
|
||||
AND CERT_USE_YN = 'Y'
|
||||
</select>
|
||||
|
||||
|
||||
<insert id="mjonMsgDataDAO.insertMberCertPhoneInfo" parameterClass="mberCertPhoneVO">
|
||||
|
||||
INSERT
|
||||
INTO LETTNGNRLMBER_CERT_PHONE
|
||||
(
|
||||
MBER_ID
|
||||
, MBTLNUM
|
||||
, FRST_REGIST_PNTTM
|
||||
, FRST_REGISTER_ID
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#mberId#
|
||||
, #mbtlnum#
|
||||
, now()
|
||||
, #frstRegisterId#
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="mjonMsgDataDAO.deleteCertPhoneInfo" parameterClass="mberCertPhoneVO">
|
||||
|
||||
UPDATE LETTNGNRLMBER_CERT_PHONE
|
||||
SET CERT_USE_YN = 'N'
|
||||
, LAST_UPDUSR_ID = #lastUpdusrId#
|
||||
WHERE
|
||||
MBER_ID = #mberId#
|
||||
AND MBTLNUM = #mbtlnum#
|
||||
|
||||
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 발신번호 등록 여부 조회 -->
|
||||
<select id="mjonMsgDAO.selectSendPhonNumCheck" parameterClass="mjonMsgVO" resultClass="int">
|
||||
SELECT
|
||||
|
||||
@ -2072,6 +2072,90 @@ function fnEventEdit(){
|
||||
|
||||
}
|
||||
|
||||
//이벤트 수정하기
|
||||
function fn_certPhoneReg(){
|
||||
var mberId = $('#cashUserId').val();
|
||||
|
||||
var mbtlnum = $('#pop_mbtlnum').val();
|
||||
if(mbtlnum == ''){
|
||||
|
||||
alert("등록할 인증번호를 입력해주세요.");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
var params = {
|
||||
"mberId" : mberId
|
||||
, "mbtlnum" : mbtlnum
|
||||
}
|
||||
console.log('params : ', params);
|
||||
|
||||
if(!confirm("인증번호를 등록 하시겠습니까?")){
|
||||
return false;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/uss/umt/user/insertCertPhone.do",
|
||||
data: params,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
success: function (returnData) {
|
||||
|
||||
console.log('returnData : ', returnData);
|
||||
if(returnData.status == 'OK'){
|
||||
alert(returnData.message);
|
||||
location.reload();
|
||||
}else{
|
||||
alert("오류가 발생하였습니다.");
|
||||
}
|
||||
},
|
||||
error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//이벤트 수정하기
|
||||
function fn_certPhoneDel(mbtlnum){
|
||||
var mberId = $('#cashUserId').val();
|
||||
|
||||
var mbtlnum = mbtlnum;
|
||||
|
||||
|
||||
var params = {
|
||||
"mberId" : mberId
|
||||
, "mbtlnum" : mbtlnum
|
||||
}
|
||||
console.log('params : ', params);
|
||||
|
||||
if(!confirm(mbtlnum+" 번호를 정말 삭제하시겠습니까?")){
|
||||
return false;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/uss/umt/user/deleteCertPhone.do",
|
||||
data: params,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
success: function (returnData) {
|
||||
|
||||
console.log('returnData : ', returnData);
|
||||
if(returnData.status == 'OK'){
|
||||
alert(returnData.message);
|
||||
location.reload();
|
||||
}else{
|
||||
alert("오류가 발생하였습니다.");
|
||||
}
|
||||
},
|
||||
error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
function fnEventAdd(){
|
||||
|
||||
@ -5107,6 +5191,59 @@ function fnInputSmsTxt(){
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- //발신번호 리스트 -->
|
||||
<!-- 인증 번호 리스트 -->
|
||||
<div class="title_box">
|
||||
<p>인증 번호 리스트</p>
|
||||
<span style="float: right;">
|
||||
<span style="letter-spacing: 0em !important; margin-left: 5px;">
|
||||
<button type="button" onclick="layerPopOpen('certPhoneReg');" class="fill">등록</button>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<table class="user_table_col">
|
||||
<colgroup>
|
||||
<col style="width:calc(70%);">
|
||||
<col style="width:calc(30%);">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>인증번호</th>
|
||||
<th>삭제</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${not empty mberCertPhoneList}">
|
||||
<c:forEach var="list" items="${mberCertPhoneList}" varStatus="status">
|
||||
<tr>
|
||||
<td>
|
||||
<c:out value="${list.mbtlnum}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${list.frstRegistPnttm eq '-'}">
|
||||
대표번호
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<div class="button_box">
|
||||
<button type="button" class="thinfill" onclick="fn_certPhoneDel('<c:out value="${list.mbtlnum}"/>'); return false;">삭제</button>
|
||||
</div>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="2">등록된 인증번호가 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- //발신번호 리스트 -->
|
||||
|
||||
<!-- 문자전송금액 -->
|
||||
<div class="title_box">
|
||||
@ -6236,7 +6373,7 @@ function fnInputSmsTxt(){
|
||||
<th>첫결제 충전캐시</th>
|
||||
<td>
|
||||
<%-- <input type="text" name="eventRemainCash2" id="eventRemainCash2" value="<c:out value="${eventMberInfo.eventRemainCash}" />" maxlength="9"/> --%>
|
||||
<input type="text" step="0.01" id="eventRemainCash2" name="eventRemainCash2" value="<c:out value="${eventMberInfo.eventRemainCash}" />" title="캐시" maxlength="20" onblur="foucusOut(this)"/>
|
||||
<input type="text" step="0.01" id="eventRemainCash2" value="<c:out value="${eventMberInfo.eventRemainCash}" />" title="캐시" maxlength="20" onblur="foucusOut(this)"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -6260,6 +6397,31 @@ function fnInputSmsTxt(){
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 인증번호 등록 -->
|
||||
<div class="layer_popup layer_certPhoneReg">
|
||||
<div class="title_box">인증번호 등록<button type="button" class="close_btn" onclick="layerPopClose(this);"></button></div>
|
||||
<div class="layer_content">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width:150px;">
|
||||
<col style="width:auto;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>인증번호</th>
|
||||
<td>
|
||||
<input type="text" id="pop_mbtlnum" title="인증번호" maxlength="20" oninput="this.value=this.value.replace(/[^0-9]/g,'')"/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="button_box">
|
||||
<!-- <button type="button" onclick="fnEventEdit(); return false;">인증번호 등록</button> -->
|
||||
<button type="button" onclick="fn_certPhoneReg(); return false;">인증번호 등록</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 이벤트 정보 신규 추가해주기 -->
|
||||
<div class="layer_popup layer_eventAdd">
|
||||
|
||||
@ -587,13 +587,15 @@ function fn_click_banner_add_stat(bannerMenuCode){
|
||||
<div class="input_left">휴대폰번호</div>
|
||||
<div class="input_right">
|
||||
<label for="list_inputType1" class="label">휴대폰번호</label>
|
||||
<input type="text" id="hp_text2" class="list_inputType1" placeholder="가입휴대폰번호" style="width: 250px;"
|
||||
onfocus="this.placeholder=''" onblur="this.placeholder='가입휴대폰번호'" maxlength="20" readonly>
|
||||
<!-- <input type="text" id="hp_text2" class="list_inputType1" placeholder="가입휴대폰번호" style="width: 250px;" -->
|
||||
<!-- onfocus="this.placeholder=''" onblur="this.placeholder='가입휴대폰번호'" maxlength="20" readonly> -->
|
||||
<select id="hp_text2" name="callFromList" class="sel_number list_selType1" style="width:70%;">
|
||||
<option value="">등록된 발신 번호가 없습니다.</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="login_del">
|
||||
|
||||
|
||||
<button type="button" onclick="sendMsgYn();">인증번호 받기</button>
|
||||
<button type="button" class="btnType btnType3" onclick="sendMsgYn();">인증번호 받기</button>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user