관리자 - 인증번호 수정 및 별칭 추가

This commit is contained in:
hehihoho3@gmail.com 2024-11-19 12:12:49 +09:00
parent 4f2a0e28b6
commit d48ac05bec
8 changed files with 321 additions and 33 deletions

View File

@ -187,6 +187,10 @@ public interface MjonMsgDataService {
public List<MberCertPhoneVO> selectMberCertPhoneListVO(MberCertPhoneVO mberCertPhoneVO); public List<MberCertPhoneVO> selectMberCertPhoneListVO(MberCertPhoneVO mberCertPhoneVO);
public StatusResponse findByCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO);
public StatusResponse updateMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO);
} }

View File

@ -378,6 +378,10 @@ public class MjonMsgDataDAO extends EgovAbstractDAO {
public void insertMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) { public void insertMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
insert("mjonMsgDataDAO.insertMberCertPhoneInfo", mberCertPhoneVO); insert("mjonMsgDataDAO.insertMberCertPhoneInfo", mberCertPhoneVO);
} }
public void updateMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
update("mjonMsgDataDAO.updateMberCertPhoneInfo", mberCertPhoneVO);
}
public void deleteCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) { public void deleteCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
@ -388,5 +392,10 @@ public class MjonMsgDataDAO extends EgovAbstractDAO {
public List<MberCertPhoneVO> selectMberCertPhoneListVO(MberCertPhoneVO mberCertPhoneVO) { public List<MberCertPhoneVO> selectMberCertPhoneListVO(MberCertPhoneVO mberCertPhoneVO) {
return (List<MberCertPhoneVO>) list("mjonMsgDataDAO.selectMberCertPhoneListVO", mberCertPhoneVO); return (List<MberCertPhoneVO>) list("mjonMsgDataDAO.selectMberCertPhoneListVO", mberCertPhoneVO);
} }
public MberCertPhoneVO findByCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
return (MberCertPhoneVO) select("mjonMsgDataDAO.findByCertPhoneInfo", mberCertPhoneVO);
}
} }

View File

@ -3167,10 +3167,23 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
@Override @Override
public StatusResponse insertMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) { public StatusResponse insertMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
MberCertPhoneVO mberCertPhoneReturnVO = mjonMsgDataDAO.findByCertPhoneInfo(mberCertPhoneVO);
if(mberCertPhoneReturnVO != null) {
return new StatusResponse(HttpStatus.CONFLICT, "중복 번호입니다.", LocalDateTime.now());
}
mjonMsgDataDAO.insertMberCertPhoneInfo(mberCertPhoneVO); mjonMsgDataDAO.insertMberCertPhoneInfo(mberCertPhoneVO);
return new StatusResponse(HttpStatus.OK, "등록하였습니다.", LocalDateTime.now()); return new StatusResponse(HttpStatus.OK, "등록하였습니다.", LocalDateTime.now());
} }
@Override
public StatusResponse updateMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
mjonMsgDataDAO.updateMberCertPhoneInfo(mberCertPhoneVO);
return new StatusResponse(HttpStatus.OK, "수정하였습니다.", LocalDateTime.now());
}
@Override @Override
public StatusResponse deleteCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) { public StatusResponse deleteCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
@ -3183,4 +3196,10 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
return mjonMsgDataDAO.selectMberCertPhoneListVO(mberCertPhoneVO); return mjonMsgDataDAO.selectMberCertPhoneListVO(mberCertPhoneVO);
} }
@Override
public StatusResponse findByCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
MberCertPhoneVO mberCertPhoneReturnVO = mjonMsgDataDAO.findByCertPhoneInfo(mberCertPhoneVO);
return new StatusResponse(HttpStatus.OK, mberCertPhoneReturnVO, LocalDateTime.now());
}
} }

View File

@ -27,6 +27,8 @@ public class MberCertPhoneVO extends UserDefaultVO{
private String mberId; private String mberId;
private String mbtlnum; private String mbtlnum;
private String certAlias;
private String certMemo;
private String certUseYn; private String certUseYn;
private String certMbtlnum; private String certMbtlnum;
@ -46,7 +48,18 @@ public class MberCertPhoneVO extends UserDefaultVO{
public void setMbtlnum(String mbtlnum) { public void setMbtlnum(String mbtlnum) {
this.mbtlnum = mbtlnum; this.mbtlnum = mbtlnum;
} }
public String getCertAlias() {
return certAlias;
}
public void setCertAlias(String certAlias) {
this.certAlias = certAlias;
}
public String getCertMemo() {
return certMemo;
}
public void setCertMemo(String certMemo) {
this.certMemo = certMemo;
}
public String getCertUseYn() { public String getCertUseYn() {
return certUseYn; return certUseYn;
} }

View File

@ -1657,6 +1657,22 @@ public class EgovUserManageController {
return modelAndView; return modelAndView;
} }
@RequestMapping(value = {"/uss/umt/user/findByCertPhoneInfo.do"})
public ResponseEntity<StatusResponse> findByCertPhoneInfo(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()));
}
return ResponseEntity.ok().body(mjonMsgDataService.findByCertPhoneInfo(mberCertPhoneVO));
}
@RequestMapping(value = {"/uss/umt/user/insertCertPhone.do"}) @RequestMapping(value = {"/uss/umt/user/insertCertPhone.do"})
public ResponseEntity<StatusResponse> insertCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception { public ResponseEntity<StatusResponse> insertCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
@ -1673,10 +1689,28 @@ public class EgovUserManageController {
mberCertPhoneVO.setFrstRegisterId(userId); mberCertPhoneVO.setFrstRegisterId(userId);
return ResponseEntity.ok().body(mjonMsgDataService.insertMberCertPhoneInfo(mberCertPhoneVO)); return ResponseEntity.ok().body(mjonMsgDataService.insertMberCertPhoneInfo(mberCertPhoneVO));
} }
@RequestMapping(value = {"/uss/umt/user/updateCertPhone.do"})
public ResponseEntity<StatusResponse> updateCertPhone(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.updateMberCertPhoneInfo(mberCertPhoneVO));
}
@RequestMapping(value = {"/uss/umt/user/deleteCertPhone.do"}) @RequestMapping(value = {"/uss/umt/user/deleteCertPhone.do"})
public ResponseEntity<StatusResponse> deleteCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception { public ResponseEntity<StatusResponse> deleteCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {

View File

@ -3758,16 +3758,21 @@
<select id="mjonMsgDataDAO.selectMberCertPhoneList" parameterClass="String" resultClass="mberCertPhoneVO"> <select id="mjonMsgDataDAO.selectMberCertPhoneList" parameterClass="String" resultClass="mberCertPhoneVO">
/* mjonMsgDataDAO.selectMberCertPhoneList */
SELECT SELECT
MBTLNUM AS mbtlnum, MBTLNUM AS mbtlnum
'-' AS frstRegistPnttm , '-' AS certMemo
, '대표번호' AS certAlias
, '-' AS frstRegistPnttm
FROM FROM
lettngnrlmber lettngnrlmber
WHERE MBER_ID = #userId# WHERE MBER_ID = #userId#
UNION ALL UNION ALL
SELECT SELECT
MBTLNUM AS mbtlnum, MBTLNUM AS mbtlnum
FRST_REGIST_PNTTM AS frstRegistPnttm , CERT_MEMO AS certMemo
, CERT_ALIAS AS certAlias
, FRST_REGIST_PNTTM AS frstRegistPnttm
FROM FROM
lettngnrlmber_cert_phone lettngnrlmber_cert_phone
WHERE MBER_ID = #userId# WHERE MBER_ID = #userId#
@ -3792,6 +3797,20 @@
AND CERT_USE_YN = 'Y' AND CERT_USE_YN = 'Y'
</select> </select>
<select id="mjonMsgDataDAO.findByCertPhoneInfo" parameterClass="mberCertPhoneVO" resultClass="mberCertPhoneVO">
/*mjonMsgDataDAO.findByCertPhoneInfo*/
SELECT
MBTLNUM AS mbtlnum
, CERT_MEMO AS certMemo
, CERT_ALIAS AS certAlias
, FRST_REGIST_PNTTM AS frstRegistPnttm
FROM
lettngnrlmber_cert_phone
WHERE MBER_ID = #mberId#
AND MBTLNUM = #mbtlnum#
AND CERT_USE_YN = 'Y'
</select>
<insert id="mjonMsgDataDAO.insertMberCertPhoneInfo" parameterClass="mberCertPhoneVO"> <insert id="mjonMsgDataDAO.insertMberCertPhoneInfo" parameterClass="mberCertPhoneVO">
@ -3800,6 +3819,8 @@
( (
MBER_ID MBER_ID
, MBTLNUM , MBTLNUM
, CERT_ALIAS
, CERT_MEMO
, FRST_REGIST_PNTTM , FRST_REGIST_PNTTM
, FRST_REGISTER_ID , FRST_REGISTER_ID
) )
@ -3807,6 +3828,8 @@
( (
#mberId# #mberId#
, #mbtlnum# , #mbtlnum#
, #certAlias#
, #certMemo#
, now() , now()
, #frstRegisterId# , #frstRegisterId#
) )
@ -3820,6 +3843,20 @@
WHERE WHERE
MBER_ID = #mberId# MBER_ID = #mberId#
AND MBTLNUM = #mbtlnum# AND MBTLNUM = #mbtlnum#
</update>
<update id="mjonMsgDataDAO.updateMberCertPhoneInfo" parameterClass="mberCertPhoneVO">
UPDATE LETTNGNRLMBER_CERT_PHONE
SET
LAST_UPDUSR_ID = #lastUpdusrId#
, CERT_MEMO = #certMemo#
, CERT_ALIAS = #certAlias#
WHERE
MBER_ID = #mberId#
AND MBTLNUM = #mbtlnum#
</update> </update>

View File

@ -2072,23 +2072,22 @@ function fnEventEdit(){
} }
//이벤트 수정하기 //인증번호 등록
function fn_certPhoneReg(){ function fn_certPhoneReg(){
var mberId = $('#cashUserId').val(); var mberId = $('#cashUserId').val();
var mbtlnum = $('#pop_mbtlnum').val(); var mbtlnum = $('#pop_mbtlnum').val();
if(mbtlnum == ''){ if(mbtlnum == ''){
alert("등록할 인증번호를 입력해주세요."); alert("등록할 인증번호를 입력해주세요.");
return false; return false;
} }
var params = { var params = {
"mberId" : mberId "mberId" : mberId
, "mbtlnum" : mbtlnum , "mbtlnum" : mbtlnum
} , "certAlias" : $('#pop_certAlias').val()
, "certMemo" : $('#pop_certMemo').val()
}
console.log('params : ', params); console.log('params : ', params);
if(!confirm("인증번호를 등록 하시겠습니까?")){ if(!confirm("인증번호를 등록 하시겠습니까?")){
@ -2096,27 +2095,133 @@ function fn_certPhoneReg(){
} }
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/uss/umt/user/insertCertPhone.do", url: "/uss/umt/user/insertCertPhone.do",
data: params, data: params,
dataType:'json', dataType:'json',
async: false, async: false,
success: function (returnData) { success: function (returnData) {
if(returnData.status == 'OK'){
console.log('returnData : ', returnData);
if(returnData.status == 'OK'){
alert(returnData.message); alert(returnData.message);
location.reload(); location.reload();
}else{ }else if(returnData.status == 'CONFLICT'){
alert(returnData.message);
}else{
alert("오류가 발생하였습니다."); alert("오류가 발생하였습니다.");
} }
}, },
error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); } error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
}); });
}
//인증번호 수정
function fn_certPhoneUdt(){
var mberId = $('#cashUserId').val();
var mbtlnum = $('#pop_udt_mbtlnum').val();
var params = {
"mberId" : mberId
, "mbtlnum" : mbtlnum
, "certAlias" : $('#pop_udt_certAlias').val()
, "certMemo" : $('#pop_udt_certMemo').val()
}
console.log('params : ', params);
if(!confirm("수정 하시겠습니까?")){
return false;
}
$.ajax({
type: "POST",
url: "/uss/umt/user/updateCertPhone.do",
data: params,
dataType:'json',
async: false,
success: function (returnData) {
if(returnData.status == 'OK'){
alert(returnData.message);
location.reload();
}else{
alert("오류가 발생하였습니다.");
}
},
error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
});
}
function fn_certPhoneUpdatePopOpen(mbtlnum){
var mberId = $('#cashUserId').val();
var mbtlnum = mbtlnum;
var params = {
"mberId" : mberId
, "mbtlnum" : mbtlnum
}
$.ajax({
type: "POST",
url: "/uss/umt/user/findByCertPhoneInfo.do",
data: params,
dataType:'json',
async: false,
success: function (returnData) {
console.log('returnData : ', returnData);
if(returnData.status == 'OK'){
console.log('returnData.object.mbtlnum : ', returnData.object.mbtlnum);
$('#pop_udt_mbtlnum').val(returnData.object.mbtlnum);
$('#pop_udt_certAlias').val(returnData.object.certAlias);
$('#pop_udt_certMemo').val(returnData.object.certMemo);
layerPopOpen('certPhoneUdt');
}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 fn_certPhoneDel(mbtlnum){ function fn_certPhoneDel(mbtlnum){
@ -5202,12 +5307,16 @@ function fnInputSmsTxt(){
</div> </div>
<table class="user_table_col"> <table class="user_table_col">
<colgroup> <colgroup>
<col style="width:calc(70%);"> <col style="width:calc(20%);">
<col style="width:calc(30%);"> <col style="width:calc(20%);">
<col style="width:calc(45%);">
<col style="width:calc(15%);">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th>인증번호</th> <th>인증번호</th>
<th>별칭</th>
<th>메모</th>
<th>삭제</th> <th>삭제</th>
</tr> </tr>
</thead> </thead>
@ -5216,8 +5325,25 @@ function fnInputSmsTxt(){
<c:when test="${not empty mberCertPhoneList}"> <c:when test="${not empty mberCertPhoneList}">
<c:forEach var="list" items="${mberCertPhoneList}" varStatus="status"> <c:forEach var="list" items="${mberCertPhoneList}" varStatus="status">
<tr> <tr>
<c:choose>
<c:when test="${list.frstRegistPnttm eq '-'}">
<td>
<c:out value="${list.mbtlnum}" />
</td>
</c:when>
<c:otherwise>
<td onclick="fn_certPhoneUpdatePopOpen('${list.mbtlnum}')" style="cursor: pointer;">
<span style="text-decoration: underline; color: blue;">
<c:out value="${list.mbtlnum}" />
</span>
</td>
</c:otherwise>
</c:choose>
<td> <td>
<c:out value="${list.mbtlnum}"/> <c:out value="${list.certAlias}"/>
</td>
<td>
<c:out value="${list.certMemo}"/>
</td> </td>
<td> <td>
<c:choose> <c:choose>
@ -5236,7 +5362,7 @@ function fnInputSmsTxt(){
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<tr> <tr>
<td colspan="2">등록된 인증번호가 없습니다.</td> <td colspan="4">등록된 인증번호가 없습니다.</td>
</tr> </tr>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
@ -6398,13 +6524,48 @@ function fnInputSmsTxt(){
</div> </div>
</div> </div>
<!-- 인증번호 수정 -->
<div class="layer_popup layer_certPhoneUdt">
<div class="title_box">인증번호 등록<button type="button" class="close_btn" onclick="layerPopClose(this);"></button></div>
<div class="layer_content">
<table>
<colgroup>
<col style="width:80px;">
<col style="width:auto;">
</colgroup>
<tbody>
<tr>
<th>인증번호</th>
<td>
<input type="text" id="pop_udt_mbtlnum" title="인증번호" maxlength="20" readonly="readonly"/>
</td>
</tr>
<tr>
<th>별칭</th>
<td>
<input type="text" id="pop_udt_certAlias" title="별칭" maxlength="50"/>
</td>
</tr>
<tr>
<th>메모</th>
<td>
<input type="text" id="pop_udt_certMemo" title="메모" maxlength="100"/>
</td>
</tr>
</tbody>
</table>
<div class="button_box">
<button type="button" onclick="fn_certPhoneUdt(); return false;">인증번호 수정</button>
</div>
</div>
</div>
<!-- 인증번호 등록 --> <!-- 인증번호 등록 -->
<div class="layer_popup layer_certPhoneReg"> <div class="layer_popup layer_certPhoneReg">
<div class="title_box">인증번호 등록<button type="button" class="close_btn" onclick="layerPopClose(this);"></button></div> <div class="title_box">인증번호 등록<button type="button" class="close_btn" onclick="layerPopClose(this);"></button></div>
<div class="layer_content"> <div class="layer_content">
<table> <table>
<colgroup> <colgroup>
<col style="width:150px;"> <col style="width:80px;">
<col style="width:auto;"> <col style="width:auto;">
</colgroup> </colgroup>
<tbody> <tbody>
@ -6414,10 +6575,21 @@ function fnInputSmsTxt(){
<input type="text" id="pop_mbtlnum" title="인증번호" maxlength="20" oninput="this.value=this.value.replace(/[^0-9]/g,'')"/> <input type="text" id="pop_mbtlnum" title="인증번호" maxlength="20" oninput="this.value=this.value.replace(/[^0-9]/g,'')"/>
</td> </td>
</tr> </tr>
<tr>
<th>별칭</th>
<td>
<input type="text" id="pop_certAlias" title="별칭" maxlength="50"/>
</td>
</tr>
<tr>
<th>메모</th>
<td>
<input type="text" id="pop_certMemo" title="메모" maxlength="100"/>
</td>
</tr>
</tbody> </tbody>
</table> </table>
<div class="button_box"> <div class="button_box">
<!-- <button type="button" onclick="fnEventEdit(); return false;">인증번호 등록</button> -->
<button type="button" onclick="fn_certPhoneReg(); return false;">인증번호 등록</button> <button type="button" onclick="fn_certPhoneReg(); return false;">인증번호 등록</button>
</div> </div>
</div> </div>

View File

@ -197,7 +197,7 @@ function actionLogin(){
data.mberCertPhoneList.forEach(function(item) { data.mberCertPhoneList.forEach(function(item) {
$select.append($('<option>', { $select.append($('<option>', {
value: item.mbtlnum, // option의 value 값 value: item.mbtlnum, // option의 value 값
text: item.mbtlnum // option의 화면에 보이는 텍스트 text: item.mbtlnum+'('+item.certAlias+')' // option의 화면에 보이는 텍스트
})); }));
}); });