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

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 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) {
insert("mjonMsgDataDAO.insertMberCertPhoneInfo", mberCertPhoneVO);
}
public void updateMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
update("mjonMsgDataDAO.updateMberCertPhoneInfo", mberCertPhoneVO);
}
public void deleteCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
@ -388,5 +392,10 @@ public class MjonMsgDataDAO extends EgovAbstractDAO {
public List<MberCertPhoneVO> selectMberCertPhoneListVO(MberCertPhoneVO 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
public StatusResponse insertMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
MberCertPhoneVO mberCertPhoneReturnVO = mjonMsgDataDAO.findByCertPhoneInfo(mberCertPhoneVO);
if(mberCertPhoneReturnVO != null) {
return new StatusResponse(HttpStatus.CONFLICT, "중복 번호입니다.", LocalDateTime.now());
}
mjonMsgDataDAO.insertMberCertPhoneInfo(mberCertPhoneVO);
return new StatusResponse(HttpStatus.OK, "등록하였습니다.", LocalDateTime.now());
}
@Override
public StatusResponse updateMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
mjonMsgDataDAO.updateMberCertPhoneInfo(mberCertPhoneVO);
return new StatusResponse(HttpStatus.OK, "수정하였습니다.", LocalDateTime.now());
}
@Override
public StatusResponse deleteCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) {
@ -3183,4 +3196,10 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
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 mbtlnum;
private String certAlias;
private String certMemo;
private String certUseYn;
private String certMbtlnum;
@ -46,7 +48,18 @@ public class MberCertPhoneVO extends UserDefaultVO{
public void setMbtlnum(String 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() {
return certUseYn;
}

View File

@ -1657,6 +1657,22 @@ public class EgovUserManageController {
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"})
public ResponseEntity<StatusResponse> insertCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
@ -1673,10 +1689,28 @@ public class EgovUserManageController {
mberCertPhoneVO.setFrstRegisterId(userId);
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"})
public ResponseEntity<StatusResponse> deleteCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {

View File

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

View File

@ -2072,23 +2072,22 @@ 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
}
, "mbtlnum" : mbtlnum
, "certAlias" : $('#pop_certAlias').val()
, "certMemo" : $('#pop_certMemo').val()
}
console.log('params : ', params);
if(!confirm("인증번호를 등록 하시겠습니까?")){
@ -2096,27 +2095,133 @@ function fn_certPhoneReg(){
}
$.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'){
type: "POST",
url: "/uss/umt/user/insertCertPhone.do",
data: params,
dataType:'json',
async: false,
success: function (returnData) {
if(returnData.status == 'OK'){
alert(returnData.message);
location.reload();
}else{
}else if(returnData.status == 'CONFLICT'){
alert(returnData.message);
}else{
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){
@ -5202,12 +5307,16 @@ function fnInputSmsTxt(){
</div>
<table class="user_table_col">
<colgroup>
<col style="width:calc(70%);">
<col style="width:calc(30%);">
<col style="width:calc(20%);">
<col style="width:calc(20%);">
<col style="width:calc(45%);">
<col style="width:calc(15%);">
</colgroup>
<thead>
<tr>
<th>인증번호</th>
<th>별칭</th>
<th>메모</th>
<th>삭제</th>
</tr>
</thead>
@ -5216,8 +5325,25 @@ function fnInputSmsTxt(){
<c:when test="${not empty mberCertPhoneList}">
<c:forEach var="list" items="${mberCertPhoneList}" varStatus="status">
<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>
<c:out value="${list.mbtlnum}"/>
<c:out value="${list.certAlias}"/>
</td>
<td>
<c:out value="${list.certMemo}"/>
</td>
<td>
<c:choose>
@ -5236,7 +5362,7 @@ function fnInputSmsTxt(){
</c:when>
<c:otherwise>
<tr>
<td colspan="2">등록된 인증번호가 없습니다.</td>
<td colspan="4">등록된 인증번호가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
@ -6398,13 +6524,48 @@ function fnInputSmsTxt(){
</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="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:80px;">
<col style="width:auto;">
</colgroup>
<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,'')"/>
</td>
</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>
</table>
<div class="button_box">
<!-- <button type="button" onclick="fnEventEdit(); return false;">인증번호 등록</button> -->
<button type="button" onclick="fn_certPhoneReg(); return false;">인증번호 등록</button>
</div>
</div>

View File

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