문자전송내역 발송승인, 승인취소 기능 작업중
@a6ea2795ff8dd3b8853d9ee7914b53066bdc116b
--- src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
+++ src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
... | ... | @@ -261,6 +261,11 @@ |
| 261 | 261 |
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MjonMsgVO)resultList.get(0)).getTotCnt() : 0); |
| 262 | 262 |
model.addAttribute("paginationInfo", paginationInfo);
|
| 263 | 263 |
|
| 264 |
+ // 로그인VO에서 사용자 정보 가져오기 |
|
| 265 |
+ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); |
|
| 266 |
+ String admId = loginVO == null ? "" : loginVO.getId(); |
|
| 267 |
+ model.addAttribute("admId", admId);
|
|
| 268 |
+ |
|
| 264 | 269 |
return "/uss/ion/msg/SendMsgList"; |
| 265 | 270 |
|
| 266 | 271 |
} |
--- src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendMsgList.jsp
... | ... | @@ -27,6 +27,8 @@ |
| 27 | 27 |
response.setDateHeader("Expires",0);
|
| 28 | 28 |
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
|
| 29 | 29 |
%> |
| 30 |
+<jsp:useBean id="now" class="java.util.Date" /> |
|
| 31 |
+ |
|
| 30 | 32 |
<!DOCTYPE html> |
| 31 | 33 |
<html lang="ko"> |
| 32 | 34 |
<head> |
... | ... | @@ -394,6 +396,158 @@ |
| 394 | 396 |
linkPage(1); |
| 395 | 397 |
} |
| 396 | 398 |
|
| 399 |
+ |
|
| 400 |
+//즉시 발송 |
|
| 401 |
+function fnMsgDelaySendArray(msgGroupId, userId) {
|
|
| 402 |
+ var msg = ""; |
|
| 403 |
+ var url = "/uss/ion/msg/updateMsgDelaySendRealTimeDataAjax.do"; |
|
| 404 |
+ var json = {"msgGroupId" : msgGroupId, "userId" : userId};
|
|
| 405 |
+ |
|
| 406 |
+ if(confirm("해당 지연 문자를 즉시 발송 하시겠습니까?")){
|
|
| 407 |
+ $.ajax({
|
|
| 408 |
+ type: "POST", |
|
| 409 |
+ url: url, |
|
| 410 |
+ data: json, |
|
| 411 |
+ dataType:'json', |
|
| 412 |
+ async: false, |
|
| 413 |
+ success: function (data, status) {
|
|
| 414 |
+ var result = data.isStatus; |
|
| 415 |
+ var msg = data.msg; |
|
| 416 |
+ |
|
| 417 |
+ if (result == 'loginFail') {
|
|
| 418 |
+ alert(msg); |
|
| 419 |
+ location.reload(); |
|
| 420 |
+ }else if(result == 'dateFail'){
|
|
| 421 |
+ alert(msg); |
|
| 422 |
+ location.reload(); |
|
| 423 |
+ }else if(result == 'fail'){
|
|
| 424 |
+ alert(msg); |
|
| 425 |
+ return false; |
|
| 426 |
+ }else{
|
|
| 427 |
+ alert(msg); |
|
| 428 |
+ location.reload(); |
|
| 429 |
+ } |
|
| 430 |
+ }, |
|
| 431 |
+ beforeSend: function () {
|
|
| 432 |
+ //로딩창 show |
|
| 433 |
+ $('.loading_layer').addClass('active');
|
|
| 434 |
+ }, |
|
| 435 |
+ complete: function () {
|
|
| 436 |
+ //로딩창 hide |
|
| 437 |
+ $('.loading_layer').removeClass('active');
|
|
| 438 |
+ }, |
|
| 439 |
+ error: function (e) {
|
|
| 440 |
+ alert("에러가 발생했습니다."); console.log("ERROR : ", e);
|
|
| 441 |
+ } |
|
| 442 |
+ }); |
|
| 443 |
+ |
|
| 444 |
+ } |
|
| 445 |
+ |
|
| 446 |
+} |
|
| 447 |
+ |
|
| 448 |
+// 발송 취소 |
|
| 449 |
+function fnMsgDelayCancelArray(msgGroupId, userId) {
|
|
| 450 |
+ var msg = ""; |
|
| 451 |
+ var url = "/uss/ion/msg/deleteMsgDelaySendCancelDataAjax.do"; |
|
| 452 |
+ var json = {"msgGroupId" : msgGroupId, "userId" : userId};
|
|
| 453 |
+ |
|
| 454 |
+ if(confirm("해당 지연 문자를 발송 취소 하시겠습니까?")){
|
|
| 455 |
+ $.ajax({
|
|
| 456 |
+ type: "POST", |
|
| 457 |
+ url: url, |
|
| 458 |
+ data: json, |
|
| 459 |
+ dataType:'json', |
|
| 460 |
+ async: false, |
|
| 461 |
+ success: function (data, status) {
|
|
| 462 |
+ var result = data.isStatus; |
|
| 463 |
+ var msg = data.msg; |
|
| 464 |
+ |
|
| 465 |
+ if (result == 'loginFail') {
|
|
| 466 |
+ alert(msg); |
|
| 467 |
+ location.reload(); |
|
| 468 |
+ }else if(result == 'dateFail'){
|
|
| 469 |
+ |
|
| 470 |
+ alert(msg); |
|
| 471 |
+ location.reload(); |
|
| 472 |
+ |
|
| 473 |
+ }else if(result == 'fail'){
|
|
| 474 |
+ alert(msg); |
|
| 475 |
+ return false; |
|
| 476 |
+ }else{
|
|
| 477 |
+ alert(msg); |
|
| 478 |
+ |
|
| 479 |
+ //회원 이용정지 처리하기 |
|
| 480 |
+ fn_MsgDelayCancel_after(userId); |
|
| 481 |
+ } |
|
| 482 |
+ }, |
|
| 483 |
+ beforeSend: function () {
|
|
| 484 |
+ //로딩창 show |
|
| 485 |
+ $('.loading_layer').addClass('active');
|
|
| 486 |
+ }, |
|
| 487 |
+ complete: function () {
|
|
| 488 |
+ //로딩창 hide |
|
| 489 |
+ $('.loading_layer').removeClass('active');
|
|
| 490 |
+ }, |
|
| 491 |
+ error: function (e) {
|
|
| 492 |
+ alert("에러가 발생했습니다."); console.log("ERROR : ", e);
|
|
| 493 |
+ } |
|
| 494 |
+ }); |
|
| 495 |
+ } |
|
| 496 |
+} |
|
| 497 |
+ |
|
| 498 |
+//문자 지연 내역 발송 취소를 통한 회원 이용정지시 |
|
| 499 |
+function fn_MsgDelayCancel_after(userId){
|
|
| 500 |
+ var mberSttus = $('#mberSttus').val();
|
|
| 501 |
+ mberSttus = "B"; //이용자 정지 처리 |
|
| 502 |
+ var smiMemo = "관리자가 최근 문자 지연 내역에서 스미싱의심으로 판단하여 발송취소를 한 후 이용자 정지 처리함"; |
|
| 503 |
+ |
|
| 504 |
+ fn_SpamMberUpdt(userId, mberSttus, smiMemo, "이용자 정지를 진행하시겠습니까?"); |
|
| 505 |
+} |
|
| 506 |
+ |
|
| 507 |
+//회원 이용정지 처리 |
|
| 508 |
+function fn_SpamMberUpdt(userId, p_mberSttus, p_smiMemo, p_confirm_msg) {
|
|
| 509 |
+ url = "/uss/umt/user/EgovGnrlUpdateUserMsttusAjax.do"; |
|
| 510 |
+ var json = {"mberId" : userId, "mberSttus" : p_mberSttus, "smiMemo" : p_smiMemo};
|
|
| 511 |
+ if(confirm(p_confirm_msg)){
|
|
| 512 |
+ $.ajax({
|
|
| 513 |
+ type: "POST", |
|
| 514 |
+ url: url, |
|
| 515 |
+ data: json, |
|
| 516 |
+ dataType:'json', |
|
| 517 |
+ async: false, |
|
| 518 |
+ success: function (returnData, status) {
|
|
| 519 |
+ if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
|
| 520 |
+ if("fail"==returnData.result){
|
|
| 521 |
+ alert(returnData.message); |
|
| 522 |
+ return false; |
|
| 523 |
+ }else if("loginFail"==returnData.result){
|
|
| 524 |
+ alert(returnData.message); |
|
| 525 |
+ return false; |
|
| 526 |
+ }else{ //이용자 상태 변경 성공시 처리
|
|
| 527 |
+ alert(returnData.message); |
|
| 528 |
+ location.reload(); |
|
| 529 |
+ } |
|
| 530 |
+ |
|
| 531 |
+ } else if(status== 'fail'){
|
|
| 532 |
+ alert("이용자 상태 변경에 실패하였습니다.");
|
|
| 533 |
+ } |
|
| 534 |
+ }, |
|
| 535 |
+ beforeSend: function () {
|
|
| 536 |
+ //로딩창 show |
|
| 537 |
+ $('.loading_layer').addClass('active');
|
|
| 538 |
+ }, |
|
| 539 |
+ complete: function () {
|
|
| 540 |
+ //로딩창 hide |
|
| 541 |
+ $('.loading_layer').removeClass('active');
|
|
| 542 |
+ }, |
|
| 543 |
+ error: function (e) { alert("이용자 상태 변경에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
| 544 |
+ }); |
|
| 545 |
+ } |
|
| 546 |
+ else {
|
|
| 547 |
+ location.reload(); |
|
| 548 |
+ } |
|
| 549 |
+} |
|
| 550 |
+ |
|
| 397 | 551 |
</script> |
| 398 | 552 |
<style> |
| 399 | 553 |
.calBtn{
|
... | ... | @@ -414,6 +568,10 @@ |
| 414 | 568 |
.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover {overflow:hidden;text-overflow:ellipsis;display:none;word-wrap:break-word;-webkit-line-clamp:20;-webkit-box-orient:vertical;position:absolute;left:-50px;top:45px;width:calc(100% + 150px);padding:15px;line-height:20px;white-space:normal;border:1px solid #e5e5e5;background:#fff;border-radius:5px;box-sizing:border-box;box-shadow:0px 3px 10px 0px rgb(0 0 0 / 0.2);z-index:1;font-size:14px;text-align:left;}
|
| 415 | 569 |
.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover:after {content:'';position:absolute;left:0;bottom:0;width:100%;height:10px;background:#fff;border-radius:0 0 5px 5px;}
|
| 416 | 570 |
.pageCont .tbType1 tbody tr td.sms_detail:hover .sms_detail_hover {display:-webkit-box;}
|
| 571 |
+ |
|
| 572 |
+.pageCont .tbType1 tbody tr td .fillBlue {margin-top:5px;height:25px;padding:3 3px;font-size:13px;text-align:center;color:#ffffff !important;background:#456ded;border-radius:3px;}
|
|
| 573 |
+.pageCont .tbType1 tbody tr td .fillRed {margin-top:5px;height:25px;padding:3 3px;font-size:13px;text-align:center;color:#ffffff !important;background:#e40000;border-radius:3px;}
|
|
| 574 |
+ |
|
| 417 | 575 |
</style> |
| 418 | 576 |
</head> |
| 419 | 577 |
<body> |
... | ... | @@ -526,11 +684,12 @@ |
| 526 | 684 |
<col style="width: 13%"> |
| 527 | 685 |
<col style="width: 4%"> |
| 528 | 686 |
<col style="width: 10%"> |
| 529 |
- <col style="width: 12%"> |
|
| 530 |
- <col style="width: 10%"> |
|
| 531 |
- <col style="width: 8%"> |
|
| 532 |
- <col style="width: 5%"> |
|
| 533 |
- <col style="width: auto"> |
|
| 687 |
+ <col style="width: 13%"> |
|
| 688 |
+ <col style="width: 14%"> |
|
| 689 |
+ <col style="width: 9%"> |
|
| 690 |
+ <col style="width: 4%"> |
|
| 691 |
+ <col style="width: *%"> |
|
| 692 |
+ <col style="width: 4%"> |
|
| 534 | 693 |
<col style="width: 4%"> |
| 535 | 694 |
</colgroup> |
| 536 | 695 |
<thead> |
... | ... | @@ -547,8 +706,6 @@ |
| 547 | 706 |
<th>내용<input type="button" class="sort sortBtn" id="sort_smsTxt"></th> |
| 548 | 707 |
<th>타입<input type="button" class="sort sortBtn" id="sort_msgTypeTxt"></th> |
| 549 | 708 |
<th>방식<input type="button" class="sort sortBtn" id="sort_sendKind"></th> |
| 550 |
- <!-- <th>전송사<input type="button" class="sort sortBtn" id="sort_agentCodeTxt"></th> --> |
|
| 551 |
- <!-- <th>통신사<input type="button" class="sort sortBtn" id="sort_rsltNet"></th> --> |
|
| 552 | 709 |
</tr> |
| 553 | 710 |
</thead> |
| 554 | 711 |
<tbody> |
... | ... | @@ -573,13 +730,15 @@ |
| 573 | 730 |
</a> |
| 574 | 731 |
</div> |
| 575 | 732 |
</td> |
| 576 |
- <%-- |
|
| 577 | 733 |
<td <c:if test="${result.smishingYn eq 'Y'}">class="smishing"</c:if><c:if test="${result.smishingYn eq 'N'}"></c:if>>
|
| 578 |
- --%> |
|
| 579 |
- <td onclick="fn_detail_list('${result.msgGroupId}'); return false;" <c:if test="${result.smishingYn eq 'Y'}">class="smishing" style="cursor:pointer;"</c:if><c:if test="${result.smishingYn eq 'N'}">style="cursor:pointer;"</c:if>>
|
|
| 580 | 734 |
<c:choose> |
| 581 | 735 |
<c:when test="${result.adminSmsNoticeYn eq 'Y'}">
|
| 582 |
- 온<%--<button class="btnType btnType20" onclick="setSmsNoticeUpdate('<c:out value="${result.userId}"/>', 'N'); return false;">온</button>--%>
|
|
| 736 |
+ <c:if test="${admId ne 'jsp'}">
|
|
| 737 |
+ 온 |
|
| 738 |
+ </c:if> |
|
| 739 |
+ <c:if test="${admId eq 'jsp'}">
|
|
| 740 |
+ <input type="button" style="margin-left:3px;margin-right:0;vertical-align:top;color:#ffffff !important;" class="btnType1" onclick="setSmsNoticeUpdate('<c:out value="${result.userId}"/>', 'N'); return false;" value="온" />
|
|
| 741 |
+ </c:if> |
|
| 583 | 742 |
</c:when> |
| 584 | 743 |
<c:when test="${result.adminSmsNoticeYn eq 'N'}">
|
| 585 | 744 |
오프 |
... | ... | @@ -600,7 +759,7 @@ |
| 600 | 759 |
<span style="color: #0000FF;"> |
| 601 | 760 |
<c:out value="${result.msgGroupCnt}"/>(<fmt:formatNumber value="${(result.successCount / result.msgGroupCnt) * 100}" pattern="#,###" />%)
|
| 602 | 761 |
<c:if test="${result.msgGroupCnt eq result.callRejectionCount && result.callbackYn eq 'N' && result.userCallbackYn eq 'N' }">
|
| 603 |
- <input type="button" style="margin-left:3px;margin-right:0;vertical-align:top;" class="btnType1" onclick="fn_sendMsgData('<c:out value="${result.msgGroupId}"/>','<c:out value="${result.callFrom}"/>','<c:out value="${result.userId}"/>');" value="문자" />
|
|
| 762 |
+ <input type="button" style="margin-left:3px;margin-right:0;vertical-align:top;color:#ffffff !important;" class="btnType1" onclick="fn_sendMsgData('<c:out value="${result.msgGroupId}"/>','<c:out value="${result.callFrom}"/>','<c:out value="${result.userId}"/>');" value="문자" />
|
|
| 604 | 763 |
</c:if> |
| 605 | 764 |
<c:if test="${result.callbackYn eq 'Y' }">
|
| 606 | 765 |
<span style="color: #0000FF;" title="번호도용 문자차단 안내문자 발송완료">안내완료</span> |
... | ... | @@ -624,6 +783,19 @@ |
| 624 | 783 |
</c:when> |
| 625 | 784 |
<c:when test="${result.delayCompleteYn eq 'N'}">
|
| 626 | 785 |
<c:if test="${result.smishingYn eq 'Y'}">온</c:if><c:if test="${result.smishingYn eq 'N'}">오프</c:if>[미처리]
|
| 786 |
+ |
|
| 787 |
+ <c:if test="${admId eq 'jsp'}">
|
|
| 788 |
+ <c:if test="${result.reserveCYn eq 'N' && result.delayYn eq 'Y' && result.delayCompleteYn eq 'N'}">
|
|
| 789 |
+ <br /> |
|
| 790 |
+ <fmt:formatDate value="${now}" pattern="yyyyMMddhhmm" var="nowDate" />
|
|
| 791 |
+ <fmt:parseDate value="${result.reqFullDate}" pattern="yyyy-MM-dd HH:mm" var="checkValue" />
|
|
| 792 |
+ <fmt:formatDate value="${checkValue}" pattern="yyyyMMddhhmm" var="checkDate"/>
|
|
| 793 |
+ <c:if test="${nowDate < checkDate}">
|
|
| 794 |
+ <button type="button" class="fillBlue" onclick="fnMsgDelaySendArray('<c:out value="${result.msgGroupId}"/>','<c:out value="${result.userId}"/>'); return false;">발송승인</button>
|
|
| 795 |
+ <button type="button" class="fillRed" onclick="fnMsgDelayCancelArray('<c:out value="${result.msgGroupId}"/>','<c:out value="${result.userId}"/>'); return false;">발송취소</button>
|
|
| 796 |
+ </c:if> |
|
| 797 |
+ </c:if> |
|
| 798 |
+ </c:if> |
|
| 627 | 799 |
</c:when> |
| 628 | 800 |
<c:otherwise> |
| 629 | 801 |
<span style="color: #0000FF;"> |
... | ... | @@ -723,11 +895,6 @@ |
| 723 | 895 |
</c:when> |
| 724 | 896 |
</c:choose> |
| 725 | 897 |
</td> |
| 726 |
- <%-- <td><c:out value="${result.conectMthdTxt}"/></td> --%>
|
|
| 727 |
- <%-- <td <c:if test="${result.smishingYn eq 'Y'}">class="smishing"</c:if>>
|
|
| 728 |
- <c:out value="${result.agentCodeTxt}"/>
|
|
| 729 |
- </td> --%> |
|
| 730 |
- <%-- <td><c:out value="${result.rsltNet}"/></td> --%>
|
|
| 731 | 898 |
</tr> |
| 732 | 899 |
</c:forEach> |
| 733 | 900 |
<c:if test="${empty resultList}">
|
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?