알림톡 스미싱 의심 발송승인, 발송취소 기능 추가

This commit is contained in:
wyh 2023-07-04 15:28:45 +09:00
parent e969588851
commit 0297b5f2b9
13 changed files with 945 additions and 72 deletions

View File

@ -40,5 +40,7 @@ public interface MjonKakaoATService {
//회원 정보 알림톡 상세정보 리스트 팝업 통계 정보
KakaoVO selectMjonKakaoStatisticATData(KakaoVO searchVO) throws Exception;
//알림톡 지연문자 리스트 조회
List<KakaoVO> selectKakaoATDelaySentList(String userId) throws Exception;
}

View File

@ -88,4 +88,8 @@ public class MjonKakaoATDAO extends EgovAbstractDAO {
return result;
}
@SuppressWarnings("unchecked")
public List<KakaoVO> selectKakaoATDelaySentList(String userId) throws Exception{
return (List<KakaoVO>)list("mjonKakaoATDAO.selectKakaoATDelaySentList", userId);
}
}

View File

@ -184,4 +184,9 @@ public class MjonKakaoATServiceImpl extends EgovAbstractServiceImpl implements M
return result;
}
@Override
public List<KakaoVO> selectKakaoATDelaySentList(String userId) throws Exception {
return mjonKakaoATDAO.selectKakaoATDelaySentList(userId);
}
}

View File

@ -248,6 +248,8 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
mjonMsgVO.setBefCash(kakaoVO.getBefCash());
mjonMsgVO.setBefPoint(kakaoVO.getBefPoint());
mjonMsgVO.setKakaoSubMagOrgnlTxt(kakaoVO.getKakaoSubMagOrgnlTxt());
mjonMsgVO.setAtDelayYn(kakaoVO.getAtSmishingYn());
if(kakaoVO.getBizJsonYn().equals("Y")) {
mjonMsgVO.setFileCnt("1");

View File

@ -198,6 +198,12 @@ public interface MjonMsgService {
//스팸 / 스미싱 지연 문자 즉시 발송처리
int updateMsgDelaySendRealTimeData(MjonResvMsgVO mjonResvMsgVO) throws Exception;
//스팸 / 스미싱 지연 알림톡 발송 취소 처리
int deleteKakaoAtDelaySendCancelData(MjonResvMsgVO mjonResvMsgVO) throws Exception;
//스팸 / 스미싱 지연 알림톡 즉시 발송처리
int updateKakaoAtDelaySendRealTimeData(MjonResvMsgVO mjonResvMsgVO) throws Exception;
//문자 그룹아이디 리스트의 발송일자 정보 불러오기
List<MjonResvMsgVO> selectMsgGroupDataReqDateList(MjonResvMsgVO mjonResvMsgVO) throws Exception;
@ -212,6 +218,7 @@ public interface MjonMsgService {
//카카오 발송 횟수
List<MjonMsgVO> selectWithKakaoSendTotCnt(MjonMsgVO mjonMsgVO) throws Exception;
//문자 발송 횟수
List<MjonMsgVO> selectMsgSendTotCnt(MjonMsgVO mjonMsgVO) throws Exception;
}

View File

@ -354,7 +354,7 @@ public class MjonMsgVO extends ComDefaultVO{
private String delayYn; // 문자 30분 지연 처리 유무
private String delayCompleteYn; // 문자 30분 지연 처리 완료 유무
private String atDelayYn; // 알림 30분 지연 처리 유무
private String atDelayYn = "N"; // 알림 30분 지연 처리 유무
private String atDelayCompleteYn; // 알림톡 30분 지연 처리 완료 유무
private String atSmishingYn; // 알림 지연처리

View File

@ -431,6 +431,26 @@ public class MjonMsgDAO extends EgovAbstractDAO {
update("mjonMsgDAO.updateMsgDelaySendRealTimeMsgGroupDataFlag", mjonMsgVO);
}
// mj_msg_data 테이블 지연 알림톡 취소 수정
public void updateKakaoAtDelayCancelMsgDataFlag(MjonMsgVO mjonMsgVO) {
update("mjonMsgDAO.updateKakaoAtDelayCancelMsgDataFlag", mjonMsgVO);
}
// mj_msg_group_data 테이블 지연 알림톡 취소 수정
public void updateKakaoAtDelayCancelMsgGroupDataFlag(MjonMsgVO mjonMsgVO) {
update("mjonMsgDAO.updateKakaoAtDelayCancelMsgGroupDataFlag", mjonMsgVO);
}
// mj_msg_data 테이블 지연 알림톡 즉시발송 요청시간 수정
public void updateKakaoAtDelaySendRealTimeMsgDataFlag(MjonMsgVO mjonMsgVO) {
update("mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgDataFlag", mjonMsgVO);
}
// mj_msg_group_data 테이블 지연 알림톡 즉시발송 요청시간 수정
public void updateKakaoAtDelaySendRealTimeMsgGroupDataFlag(MjonMsgVO mjonMsgVO) {
update("mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgGroupDataFlag", mjonMsgVO);
}
//문자 그룹아이디 리스트의 발송일자 정보 불러오기
@SuppressWarnings("unchecked")
public List<MjonResvMsgVO> selectMsgGroupDataReqDateList(MjonResvMsgVO mjonResvMsgVO) throws Exception{

View File

@ -841,6 +841,119 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
return resultSts;
}
//스팸 / 스미싱 지연 알림톡 발송 취소 처리
@Override
public int deleteKakaoAtDelaySendCancelData(MjonResvMsgVO mjonResvMsgVO) throws Exception {
int resultSts = 0;
try {
System.out.println("++++++++++++++++++ deleteKakaoAtDelaySendCancelData groupId ::: "+mjonResvMsgVO.getMsgGroupId());
//삭제 문자 건수 MSG_SEQ 번호 받아오기
List<MjonResvMsgVO> resultMsgSeqList = mjonReservMsgDAO.selectMsgSeqListByGroupId(mjonResvMsgVO);
int size = resultMsgSeqList.size();
List<String> userDataList = new ArrayList<String>();
for(int i=0; i < size; i++) {
userDataList.add(resultMsgSeqList.get(i).getUserData());
System.out.println(resultMsgSeqList.get(i).getUserData());
}
mjonResvMsgVO.setUserDataList(userDataList);
//비즈뿌리오 딜레이 알림톡 삭제
resultSts = mjonReservMsgDAO.deleteBizMsgSeqListByMsgSeq(mjonResvMsgVO);
System.out.println("++++++++++++++++++++++++++++++ resultSts ::: "+resultSts);
//예약 취소 환불 처리
if(resultSts > 0) {
//그룹 데이터 정보 조회하기
MjonMsgVO mjonMsgVO = mjonMsgDAO.selectMsgGroupDataByGoupId(mjonResvMsgVO);
//mj_msg_data 테이블 지연 문자 취소 수정
mjonMsgDAO.updateKakaoAtDelayCancelMsgDataFlag(mjonMsgVO);
//mj_msg_group_data 테이블 예약 취소 수정
mjonMsgDAO.updateKakaoAtDelayCancelMsgGroupDataFlag(mjonMsgVO);
//문자 발송 캐시 환불 해주기
MjonPayVO mjonPayVO = new MjonPayVO();
mjonPayVO.setCashId(idgenMjonCashId.getNextStringId());
mjonPayVO.setUserId(mjonMsgVO.getUserId());
mjonPayVO.setCash(Float.parseFloat(mjonMsgVO.getTotPrice()));
mjonPayVO.setFrstRegisterId(mjonMsgVO.getUserId());
mjonPayVO.setMemo("스팸/스미싱 지연 알림톡 취소 " + resultSts + "건 환불");
mjonPayVO.setMsgGroupId(mjonMsgVO.getMsgGroupId());
mjonPayDAO.insertCash(mjonPayVO); //캐시 환불
mjonPayDAO.updateMemberCash(mjonPayVO); //회원정보 업데이트
}
} catch (Exception e) {
System.out.println("+++++++++++++++++++++++++++++++++++ deleteMsgDelaySendCancelData ServiceImpl Error !!!! "+e);
}
return resultSts;
}
//스팸 / 스미싱 지연 알림톡 즉시 발송처리
@Override
public int updateKakaoAtDelaySendRealTimeData(MjonResvMsgVO mjonResvMsgVO) throws Exception {
int resultSts = 0;
try {
System.out.println("++++++++++++++++++ updateKakaoAtDelaySendRealTimeData groupId ::: "+mjonResvMsgVO.getMsgGroupId());
//삭제 문자 건수 MSG_SEQ 번호 받아오기
List<MjonResvMsgVO> resultMsgSeqList = mjonReservMsgDAO.selectMsgSeqListByGroupId(mjonResvMsgVO);
int size = resultMsgSeqList.size();
List<String> userDataList = new ArrayList<String>();
for(int i=0; i < size; i++) {
userDataList.add(resultMsgSeqList.get(i).getUserData());
System.out.println(resultMsgSeqList.get(i).getUserData());
}
mjonResvMsgVO.setUserDataList(userDataList);
//비즈뿌리오 딜레이문자 즉시발송 처리
resultSts = mjonReservMsgDAO.updateRealTimeBizMsgSeqListByMsgSeq(mjonResvMsgVO);
System.out.println("++++++++++++++++++++++++++++++ resultSts ::: "+resultSts);
//예약 취소 환불 처리
if(resultSts > 0) {
//그룹 데이터 정보 조회하기
MjonMsgVO mjonMsgVO = mjonMsgDAO.selectMsgGroupDataByGoupId(mjonResvMsgVO);
//mj_msg_data 테이블 지연 문자 즉시발송 요청 수정
mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgDataFlag(mjonMsgVO);
//mj_msg_group_data 테이블 즉시발송 요청 수정
mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgGroupDataFlag(mjonMsgVO);
}
} catch (Exception e) {
System.out.println("+++++++++++++++++++++++++++++++++++ updateMsgDelaySendRealTimeDataAjax ServiceImpl Error !!!! "+e);
}
return resultSts;
}
//문자 그룹아이디 리스트의 발송일자 정보 불러오기
@Override
public List<MjonResvMsgVO> selectMsgGroupDataReqDateList(MjonResvMsgVO mjonResvMsgVO) throws Exception{

View File

@ -3618,6 +3618,161 @@ public class MjonMsgController {
return modelAndView;
}
/**
* 스팸 스미싱 30분 지연알림톡 전송 취소 처리
* @param mjonMsgVO
* @param model
* @return "/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do"
* @throws Exception
*/
@RequestMapping(value = {"/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do"})
public ModelAndView deleteKakaoATDelaySendCancelDataAjax(MjonMsgVO mjonMsgVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
String isStatus = "";
String msg = "";
//로그인 정보 획득
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(userId.equals("")) {
modelAndView.addObject("isStatus", "loginFail");
modelAndView.addObject("msg", "로그인이 필요합니다.");
return modelAndView;
}
try {
MjonResvMsgVO mjonResvMsgVO = new MjonResvMsgVO();
mjonResvMsgVO.setUserId(mjonMsgVO.getUserId());//회원 아이디
String[] arrMsgGroupId = mjonMsgVO.getMsgGroupId().split(",");
int resultSts = 0;
//문자 발송요청일자 체크해주기
boolean compareReqDate = getCompareReqDateList(arrMsgGroupId, mjonMsgVO.getUserId());
if(!compareReqDate) {
modelAndView.addObject("isStatus", "dateFail");
modelAndView.addObject("msg", "발송시간이 지난 문자가 있습니다. 문자 발송예정 시간을 확인해 주세요.");
return modelAndView;
}
for(String temp : arrMsgGroupId) {
mjonResvMsgVO.setMsgGroupId(temp);//취소 문자 그룹 아이디
int count = mjonMsgService.deleteKakaoAtDelaySendCancelData(mjonResvMsgVO);
resultSts = resultSts + count;
}
if(resultSts > 0) {
modelAndView.addObject("isStatus", "success");
modelAndView.addObject("msg", "발송취소가 정상적으로 처리되었습니다.");
}else {
modelAndView.addObject("isStatus", "fail");
modelAndView.addObject("msg", "발송취소에 오류가 발생하였습니다.");
}
} catch (Exception e) {
System.out.println("+++++++++++++++++++++++++++++++++++ deleteKakaoATDelaySendCancelDataAjax Controller Error !!!! "+e);
modelAndView.addObject("isStatus", "fail");
modelAndView.addObject("msg", "오류가 발생하였습니다.");
return modelAndView;
}
return modelAndView;
}
/**
* 스팸 스미싱 30분 지연알림톡 즉시 전송 처리
* @param mjonMsgVO
* @param model
* @return "/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do"
* @throws Exception
*/
@RequestMapping(value = {"/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do"})
public ModelAndView updateKakaoATDelaySendRealTimeDataAjax(MjonMsgVO mjonMsgVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
String isStatus = "";
String msg = "";
//로그인 정보 획득
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(userId.equals("")) {
modelAndView.addObject("isStatus", "loginFail");
modelAndView.addObject("msg", "로그인이 필요합니다.");
return modelAndView;
}
try {
MjonResvMsgVO mjonResvMsgVO = new MjonResvMsgVO();
mjonResvMsgVO.setUserId(mjonMsgVO.getUserId());//회원 아이디
String[] arrMsgGroupId = mjonMsgVO.getMsgGroupId().split(",");
int resultSts = 0;
//문자 발송요청일자 체크해주기
boolean compareReqDate = getCompareReqDateList(arrMsgGroupId, mjonMsgVO.getUserId());
if(!compareReqDate) {
modelAndView.addObject("isStatus", "dateFail");
modelAndView.addObject("msg", "발송시간이 지난 문자가 있습니다. 문자 발송예정 시간을 확인해 주세요.");
return modelAndView;
}
for(String temp : arrMsgGroupId) {
mjonResvMsgVO.setMsgGroupId(temp);//취소 문자 그룹 아이디
//문자 발송 지연 데이터 즉시 발송처리
int count = mjonMsgService.updateKakaoAtDelaySendRealTimeData(mjonResvMsgVO);
resultSts = resultSts + count;
}
if(resultSts > 0) {
modelAndView.addObject("isStatus", "success");
modelAndView.addObject("msg", "즉시 발송 처리가 완료되었습니다.");
}else {
modelAndView.addObject("isStatus", "fail");
modelAndView.addObject("msg", "즉시 발송 처리에 오류가 발생하였습니다.");
}
} catch (Exception e) {
System.out.println("+++++++++++++++++++++++++++++++++++ updateKakaoATDelaySendRealTimeDataAjax Controller Error !!!! "+e);
modelAndView.addObject("isStatus", "fail");
modelAndView.addObject("msg", "오류가 발생하였습니다.");
return modelAndView;
}
return modelAndView;
}
/**
* 전송사 발송 통계
* @param

View File

@ -1366,7 +1366,7 @@ public class EgovUserManageController {
/*
* 알림톡/친구톡 최근 발송내역 리스트 불러오기
* */
*/
KakaoVO sendKakaoVO = new KakaoVO();
sendKakaoVO.setSearchCondition2("N");//예약건은 제외하기
@ -1384,7 +1384,7 @@ public class EgovUserManageController {
/*
* 알림톡/친구톡 예약발송 리스트 불러오기
* */
*/
KakaoVO reserveKakaoVO = new KakaoVO();
reserveKakaoVO.setSearchCondition2("Y");//예약건만 불러오기
@ -1400,15 +1400,18 @@ public class EgovUserManageController {
model.addAttribute("kakaoReserveList", kakaoReserveList);
/*
* 팩스 발송 내역 리스트 불러오기
* */
* 알림톡 지연처리 알림톡 내용 불러오기(30분 지연처리된 알림톡 내역 불러오기)
*/
List<KakaoVO> kakaoATDelaySentList = mjonKakaoATService.selectKakaoATDelaySentList(reqMberManageVO.getMberId());
model.addAttribute("kakaoATDelaySentList", kakaoATDelaySentList);
}
{//팩스 발송 내역 리스트 불러오기
List<FaxGroupDataVO> faxSendListVO = faxService.selectFaxMainList(new FaxGroupDataVO(reqMberManageVO.getMberId()));
model.addAttribute("faxSendListVO", faxSendListVO);
//}
}
{//사용중인 전송사 정보 조회하기 - 사용자 전용 전송사 리스트 표시용

View File

@ -2252,10 +2252,101 @@
</select>
<select id="mjonKakaoATDAO.selectKakaoATDelaySentList" parameterClass="String" resultClass="KakaoVO">
SELECT
A.msgId AS msgId
, A.msgGroupId AS msgGroupId
, A.userId AS userId
, MGD.TOT_PRICE AS totPrice
, MGD.EACH_PRICE AS eachPrice
, MGD.MSG_GROUP_CNT AS msgGroupCnt
, MGD.MSG_TYPE AS msgType
, CASE
WHEN MGD.MSG_TYPE = '8'
THEN '알림톡'
WHEN MGD.MSG_TYPE = '9'
THEN '친구톡'
END msgTypeName
, (SELECT COUNT(0) FROM MJ_MSG_DATA A
WHERE 1=1
AND A.DEL_FLAG = 'N'
AND A.MSG_GROUP_ID = A.msgGroupId
AND (CASE
WHEN A.AGENT_CODE = '04' AND A.RSLT_CODE = '7000'
THEN 'S'
WHEN (A.RSLT_CODE IS NULL
AND A.RSLT_CODE2 IS NULL
AND A.SENT_DATE IS NULL
AND A.RSLT_DATE IS NULL
)
THEN 'W'
ELSE 'F'
END ) = 'S'
) AS successCnt
, MGD.SMS_TXT AS smsTxt
, A.userdata
, A.curState
, MKPI.YELLOW_ID AS yellowId
, DATE_FORMAT(A.sentDate, '%Y-%m-%d %T') AS sentDate
, DATE_FORMAT(A.reqDate, '%Y-%m-%d %T') AS reqdate
, DATE_FORMAT(MGD.REGDATE, '%Y-%m-%d %T') AS regdate
, A.result AS resultType
, MGD.AT_DELAY_YN AS atDelayYn
, MGD.AT_DELAY_COMPLETE_YN AS atDelayCompleteYn
FROM
(SELECT
a.MSG_ID AS msgId
, a.MSG_GROUP_ID AS msgGroupId
, a.USER_ID AS userId
, a.USERDATA AS userdata
, a.CUR_STATE AS curState
, a.SENT_DATE AS sentDate
, a.REQ_DATE AS reqDate
, (CASE
WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '7000')
THEN 'S'
WHEN( A.RSLT_CODE IS NULL
AND A.RSLT_CODE2 IS NULL
AND A.SENT_DATE IS NULL
AND A.RSLT_DATE IS NULL
)THEN 'W'
ELSE 'F'
END) AS result
, A.RSLT_CODE AS rsltCode
, A.RSLT_CODE2 AS rsltCode2
, A.RSLT_NET AS rsltNet
, A.CALL_FROM AS callFrom
, A.CALL_TO AS callTo
, A.SMS_TXT AS smsTxt
, A.MSG_TYPE AS msgType
, A.AGENT_CODE AS agentCode
, A.DEL_FLAG AS delFlag
, A.NEO_TYPE AS neoType
, A.RESERVE_C_YN AS reserveCYn
, A.REFUND_YN AS refundYn
, A.MSG_NOTICETALK_SENDER_KEY
, A.MSG_NOTICETALK_TMP_KEY
FROM
MJ_MSG_DATA A
WHERE 1=1
AND A.USER_ID = #userId#
AND A.MSG_TYPE IN (8)
GROUP BY A.MSG_GROUP_ID
)A
LEFT JOIN MJ_MSG_GROUP_DATA MGD
ON A.msgGroupId = MGD.MSG_GROUP_ID
LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI
ON A.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY
AND MKPI.USER_ID = A.userId
WHERE 1=1
AND MGD.USER_ID = #userId#
AND MGD.AT_DELAY_YN = 'Y'
AND MGD.AT_DELAY_COMPLETE_YN = 'N'
AND MGD.CANCELDATE IS NULL
AND A.curState = '0'
AND A.refundYn = 'N'
ORDER BY
reqDate DESC
,sentDate DESC
</select>
</sqlMap>

View File

@ -2209,8 +2209,9 @@
FILE_CNT,
TOT_PRICE,
EVENT_YN,
DELAY_YN
, BIZ_KAKAO_RESEND_ORGNL_TXT
DELAY_YN,
AT_DELAY_YN,
BIZ_KAKAO_RESEND_ORGNL_TXT
)
VALUES
@ -2234,8 +2235,9 @@
#fileCnt#,
#totPrice#,
#eventYn#,
#delayYn#
, #kakaoSubMagOrgnlTxt#
#delayYn#,
#atDelayYn#,
#kakaoSubMagOrgnlTxt#
)
</insert>
@ -6551,5 +6553,60 @@
ORDER BY M.orderByCode
</select>
<update id="mjonMsgDAO.updateKakaoAtDelayCancelMsgDataFlag" parameterClass="mjonMsgVO">
UPDATE
MJ_MSG_DATA
SET
REFUND_YN = 'Y'
, REQ_DATE = NOW()
, RESULT_LOG_UPDT_PNTTM = NOW()
, CUR_STATE = '3'
, RSLT_CODE = '7300'
WHERE 1=1
AND USER_ID = #userId#
AND MSG_GROUP_ID = #msgGroupId#
</update>
<update id="mjonMsgDAO.updateKakaoAtDelayCancelMsgGroupDataFlag" parameterClass="mjonMsgVO">
UPDATE
MJ_MSG_GROUP_DATA
SET
CANCELDATE = NOW()
, REQ_DATE = NOW()
, AT_DELAY_COMPLETE_YN = 'Y'
WHERE 1=1
AND USER_ID = #userId#
AND MSG_GROUP_ID = #msgGroupId#
</update>
<update id="mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgDataFlag" parameterClass="mjonMsgVO">
UPDATE
MJ_MSG_DATA
SET
REQ_DATE = NOW()
WHERE 1=1
AND USER_ID = #userId#
AND MSG_GROUP_ID = #msgGroupId#
</update>
<update id="mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgGroupDataFlag" parameterClass="mjonMsgVO">
UPDATE
MJ_MSG_GROUP_DATA
SET
REQ_DATE = NOW()
, AT_DELAY_COMPLETE_YN = 'Y'
WHERE 1=1
AND USER_ID = #userId#
AND MSG_GROUP_ID = #msgGroupId#
</update>
</sqlMap>

View File

@ -1183,44 +1183,6 @@ function fnMberSmishingYn(){
}
//알림톡 스미싱의심 여부
function fnMberAtSmishingYn(){
var form = document.mberManageVO;
var atSmishingYn = form.atSmishingYn.value;
if(confirm("알림톡 스미싱의심 여부를 변경하시겠습니까?")){
$.ajax({
type: "POST",
url: "/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do",
data: {"atSmishingYn" : atSmishingYn, "mberId" : "${mberManageVO.mberId}"},
dataType:'json',
async: false,
success: function (data, status) {
if (data.isSuccess) {
alert("변경 완료했습니다.");
}
else {
alert(data.msg);
}
},
beforeSend: function () {
//로딩창 show
$('.loading_layer').addClass('active');
},
complete: function () {
//로딩창 hide
$('.loading_layer').removeClass('active');
},
error: function (e) {
alert("에러가 발생했습니다."); console.log("ERROR : ", e);
}
});
}
}
// VIP 여부
function fnMberVIPYn(){
var form = document.mberManageVO;
@ -2422,6 +2384,331 @@ function fnMberExceptSpamYn(){
}
//알림톡 지연 기능추가 -------------------------------------------------------
//알림톡 스미싱의심 여부
function fnMberAtSmishingYn(){
var form = document.mberManageVO;
var atSmishingYn = form.atSmishingYn.value;
if(confirm("알림톡 스미싱의심 여부를 변경하시겠습니까?")){
$.ajax({
type: "POST",
url: "/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do",
data: {"atSmishingYn" : atSmishingYn, "mberId" : "${mberManageVO.mberId}"},
dataType:'json',
async: false,
success: function (data, status) {
if (data.isSuccess) {
alert("변경 완료했습니다.");
}
else {
alert(data.msg);
}
},
beforeSend: function () {
//로딩창 show
$('.loading_layer').addClass('active');
},
complete: function () {
//로딩창 hide
$('.loading_layer').removeClass('active');
},
error: function (e) {
alert("에러가 발생했습니다."); console.log("ERROR : ", e);
}
});
}
}
//지연 알림톡 전체선택
function kakaoATDelayCheckAll(){
var checkField = document.kakaoATDelayForm.kakaoATCheckDelayField;
if(document.kakaoATDelayForm.kakaoATCheckAll.checked) {
if(checkField) {
if(checkField.length > 1) {
for(var i=0; i < checkField.length; i++) {
checkField[i].checked = true;
}
} else {
checkField.checked = true;
}
}
} else {
if(checkField) {
if(checkField.length > 1) {
for(var j=0; j < checkField.length; j++) {
checkField[j].checked = false;
}
} else {
checkField.checked = false;
}
}
}
}
//지연 알림톡 즉시 발송 리스트
function kakaoATDelaySendArray(){
var userId = document.modiForm.mberId.value; //사용자 회원 아이디
var form = document.kakaoATDelayForm;
if($("input:checkbox[name='kakaoATCheckDelayField']").is(":checked")==false){
alert("선택된 알림톡이 없습니다.");
return;
}
var checkField = form.kakaoATCheckDelayField;
var id = form.kakaoATCheckDelayId;
var checkedIds = "";
var checkedCount = 0;
if(checkField) {
if(checkField.length > 1) {
for(var i=0; i < checkField.length; i++) {
if(checkField[i].checked) {
checkedIds += ((checkedCount==0? "" : ",") + id[i].value);
checkedCount++;
}
}
} else {
if(checkField.checked) {
checkedIds = id.value;
}
}
}
var msgGroupId = checkedIds;
var msg = "";
var url = "/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do";
var json = {"msgGroupId" : msgGroupId, "userId" : userId};
if(confirm("해당 지연 알림톡을 즉시 발송 하시겠습니까?")){
$.ajax({
type: "POST"
, url: url
, data: json
, dataType:'json'
, async: false
, success: function (data, status) {
var result = data.isStatus;
var msg = data.msg;
if (result == 'loginFail') {
alert(msg);
location.reload();
}else if(result == 'dateFail'){
alert(msg);
location.reload();
}else if(result == 'fail'){
alert(msg);
return false;
}else{
alert(msg);
location.reload();
}
}
, beforeSend: function () {
//로딩창 show
$('.loading_layer').addClass('active');
}
, complete: function () {
//로딩창 hide
$('.loading_layer').removeClass('active');
}
, error: function (e) {
alert("에러가 발생했습니다."); console.log("ERROR : ", e);
}
});
}
}
//지연 알림톡 즉시 발송
function kakaoATDelaySend(msgGroupId){
var userId = document.modiForm.mberId.value; //사용자 회원 아이디
var msg = "";
var url = "/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do";
var json = {"msgGroupId" : msgGroupId, "userId" : userId};
if(confirm("해당 지연 알림톡을 즉시 발송 하시겠습니까?")){
$.ajax({
type: "POST"
, url: url
, data: json
, dataType:'json'
, async: false
, success: function (data, status) {
var result = data.isStatus;
var msg = data.msg;
if (result == 'loginFail') {
alert(msg);
location.reload();
}else if(result == 'dateFail'){
alert(msg);
location.reload();
}else if(result == 'fail'){
alert(msg);
return false;
}else{
alert(msg);
location.reload();
}
}
, beforeSend: function () {
//로딩창 show
$('.loading_layer').addClass('active');
}
, complete: function () {
//로딩창 hide
$('.loading_layer').removeClass('active');
}
, error: function (e) {
alert("에러가 발생했습니다."); console.log("ERROR : ", e);
}
});
}
}
//지연 알림톡 발송취소 리스트
function kakaoATDelayCancelArray(){
var userId = document.modiForm.mberId.value; //사용자 회원 아이디
var form = document.kakaoATDelayForm;
if($("input:checkbox[name='kakaoATCheckDelayField']").is(":checked")==false){
alert("선택된 알림톡이 없습니다.");
return;
}
var checkField = form.kakaoATCheckDelayField;
var id = form.kakaoATCheckDelayId;
var checkedIds = "";
var checkedCount = 0;
if(checkField) {
if(checkField.length > 1) {
for(var i=0; i < checkField.length; i++) {
if(checkField[i].checked) {
checkedIds += ((checkedCount==0? "" : ",") + id[i].value);
checkedCount++;
}
}
} else {
if(checkField.checked) {
checkedIds = id.value;
}
}
}
var msgGroupId = checkedIds;
var msg = "";
var url = "/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do";
var json = {"msgGroupId" : msgGroupId, "userId" : userId};
if(confirm("해당 지연 알림톡을 발송취소 하시겠습니까?")){
$.ajax({
type: "POST"
, url: url
, data: json
, dataType:'json'
, async: false
, success: function (data, status) {
var result = data.isStatus;
var msg = data.msg;
if (result == 'loginFail') {
alert(msg);
location.reload();
}else if(result == 'dateFail'){
alert(msg);
location.reload();
}else if(result == 'fail'){
alert(msg);
return false;
}else{
alert(msg);
//회원 이용정지 처리하기
//fn_updateMberSttus(msgGroupId);
fn_MsgDelayCancel_after();
}
}
, beforeSend: function () {
//로딩창 show
$('.loading_layer').addClass('active');
}
, complete: function () {
//로딩창 hide
$('.loading_layer').removeClass('active');
}
, error: function (e) {
alert("에러가 발생했습니다."); console.log("ERROR : ", e);
}
});
}
}
//지연 알림톡 발송취소
function kakaoATDelayCancel(msgGroupId){
var userId = document.modiForm.mberId.value; //사용자 회원 아이디
var msg = "";
var url = "/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do";
var json = {"msgGroupId" : msgGroupId, "userId" : userId};
if(confirm("해당 지연 알림톡을 발송취소 하시겠습니까?")){
$.ajax({
type: "POST"
, url: url
, data: json
, dataType:'json'
, async: false
, success: function (data, status) {
var result = data.isStatus;
var msg = data.msg;
if (result == 'loginFail') {
alert(msg);
location.reload();
}else if(result == 'dateFail'){
alert(msg);
location.reload();
}else if(result == 'fail'){
alert(msg);
return false;
}else{
alert(msg);
//회원 이용정지 처리하기
//fn_updateMberSttus(msgGroupId);
fn_MsgDelayCancel_after();
}
}
, beforeSend: function () {
//로딩창 show
$('.loading_layer').addClass('active');
}
, complete: function () {
//로딩창 hide
$('.loading_layer').removeClass('active');
}
, error: function (e) {
alert("에러가 발생했습니다."); console.log("ERROR : ", e);
}
});
}
}
</script>
<style>
.fileView {border-bottom: inherit !important;}
@ -2574,7 +2861,6 @@ function fnMberExceptSpamYn(){
</select>
</td>
</tr>
<%--
<tr>
<th>스미싱 의심(카톡)</th>
<td>
@ -2585,9 +2871,8 @@ function fnMberExceptSpamYn(){
</td>
<th></th>
<td>
</td>
</td>
</tr>
--%>
<tr>
<th>전용 전송사</th>
<td>
@ -3022,7 +3307,6 @@ function fnMberExceptSpamYn(){
</select>
</td>
</tr>
<%--
<tr>
<th>스미싱 의심(카톡)</th>
<td>
@ -3035,7 +3319,6 @@ function fnMberExceptSpamYn(){
<td>
</td>
</tr>
--%>
<tr>
<th>전용 전송사</th>
<td>
@ -4105,23 +4388,23 @@ function fnMberExceptSpamYn(){
<c:otherwise>
-
</c:otherwise>
</c:choose>
</c:choose>
</c:otherwise>
</c:choose>
</c:choose>
</td>
</td>
<td><c:out value="${kakaoReserveList.yellowId}"/></td>
<td class="sms_detail" style="text-align: left;">
<c:choose>
<c:when test="${empty kakaoReserveList.smsTxt}">
-
-
</c:when>
<c:otherwise>
<div class="ellipsis_line">
<c:out value="${kakaoReserveList.smsTxt}"/>
</div>
</c:otherwise>
</c:choose>
</c:choose>
</td>
<td><fmt:formatNumber value="${kakaoReserveList.msgGroupCnt}" type="number" /></td>
<td><fmt:formatNumber value="${kakaoReserveList.successCount}" type="number" /></td>
@ -4143,7 +4426,138 @@ function fnMberExceptSpamYn(){
</div>
</div>
<!-- 최근 카카오톡 전송 내역 -->
<!-- 최근 알림톡 지연 내역 -->
<form id="kakaoATDelayForm" name="kakaoATDelayForm" mehoth="post">
<div class="title_box">
<p>최근 알림톡 지연 내역</p>
<div class="button_box">
<button type="button" onclick="kakaoATDelaySendArray(); return false;" class="fillBlue">발송승인</button>
<button type="button" onclick="kakaoATDelayCancelArray(); return false;" class="fillRed">발송취소</button>
</div>
</div>
<table class="user_table_col">
<colgroup>
<col style="width:5%;">
<col style="width:9%;">
<col style="width:13%;">
<col style="width:15%;">
<col style="width:auto;">
<col style="width:8%;">
<col style="width:8%;">
<col style="width:8%;">
<col style="width:8%;">
</colgroup>
<thead>
<tr>
<th>
<input type="checkbox" name="kakaoATCheckAll" id="kakaoATCheckAll" onclick="kakaoATDelayCheckAll();" />
<label for="kakaoATCheckAll"></label>
</th>
<th>종류</th>
<th>등록일시</th>
<th>전송일시</th>
<th>채널ID</th>
<th>내용</th>
<th>건수</th>
<th>발송</th>
<th>취소</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${not empty kakaoATDelaySentList}">
<c:forEach var="kakaoDelayInfo" items="${kakaoATDelaySentList}" varStatus="status">
<c:if test="${status.count < 4}">
<tr>
<td>
<input name="kakaoATCheckDelayField" id="<c:out value='${kakaoDelayInfo.msgGroupId}'/>" title="Check <c:out value="${status.count}"/>" type="checkbox"/>
<label for="<c:out value="${result.uniqId}"/>"></label>
<input name="kakaoATCheckDelayId" type="hidden" class="${result.userId}" value="<c:out value='${kakaoDelayInfo.msgGroupId}'/>"/>
</td>
<td>
<c:choose>
<c:when test="${kakaoDelayInfo.msgType == '8'}">
알림톡
</c:when>
<c:when test="${kakaoDelayInfo.msgType == '9'}">
친구톡
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${not empty kakaoDelayInfo.regDate}">
<fmt:parseDate value="${kakaoDelayInfo.regDate}" var="kakaoDelayRegdate" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${kakaoDelayRegdate}" pattern="MM-dd HH:mm"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${not empty kakaoDelayInfo.sentDate}">
<fmt:formatDate value="${kakaoDelayInfo.sentDate}" pattern="yyyy-MM-dd HH:mm"/>
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${kakaoDelayInfo.atDelayYn eq 'Y'}">
[스미싱의심]
<fmt:parseDate value="${kakaoDelayInfo.reqDate}" var="kakaoDelayReqDate" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${kakaoDelayReqDate}" pattern="MM-dd HH:mm"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>
</td>
<td>
<c:out value="${kakaoDelayInfo.yellowId}"/>
</td>
<td class="sms_detail" style="text-align: left;">
<c:choose>
<c:when test="${empty kakaoDelayInfo.smsTxt}">
-
</c:when>
<c:otherwise>
<div class="ellipsis_line">
<c:out value="${kakaoDelayInfo.smsTxt}"/>
</div>
</c:otherwise>
</c:choose>
</td>
<td>
<fmt:formatNumber value="${kakaoDelayInfo.msgGroupCnt}" type="number" />
</td>
<td>
<button type="button" class="thinfill" id="kakaoATDelaySend${status.count}" name="msgDelaySend"
onclick="kakaoATDelaySend('<c:out value="${kakaoDelayInfo.msgGroupId}"/>'); return false;">승인</button>
</td>
<td>
<button type="button" class="thinfill" id="kakaoATDelayCancel${status.count}" name="msgDelayCancel"
onclick="kakaoATDelayCancel('<c:out value="${kakaoDelayInfo.msgGroupId}"/>'); return false;">취소</button>
</td>
</tr>
</c:if>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="9">카카오톡 발송 내역이 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</form>
<!-- 최근 팩스 전송 내역 -->
<div class="title_box">
<p>최근 팩스 전송 내역</p>
<div class="button_box">
@ -4204,8 +4618,8 @@ function fnMberExceptSpamYn(){
<col style="width:calc(100%/2);">
<col style="width:calc(100%/2);">
<col style="width:calc(100%/2);">
<col style="width:calc(100%/2);">
<col style="width:calc(100%/2);">
<col style="width:calc(100%/2);">
<col style="width:calc(100%/2);">
</colgroup>
<thead>
<tr>
@ -4252,7 +4666,7 @@ function fnMberExceptSpamYn(){
<span class="c_999999">발신번호 차단</span>
</c:otherwise>
</c:choose>
</td>
</td>
</tr>
</c:forEach>
</c:when>
@ -4370,7 +4784,7 @@ function fnMberExceptSpamYn(){
<c:set var="userPriceL" value="${longPrice}"/>
<c:set var="userPriceP" value="${picturePrice}"/>
<c:set var="userPriceP2" value="${picture2Price}"/>
<c:set var="userPriceP3" value="${picture3Price}"/>
<c:set var="userPriceP3" value="${picture3Price}"/>
<tr>
<td>고객단가</td>
<td>
@ -4511,7 +4925,7 @@ function fnMberExceptSpamYn(){
</c:otherwise>
</c:choose>
</div>
</td>
</td>
<td>
<c:choose>
<c:when test="${userLogin.loginYn == 'Y'}">