알림톡 전송지연 기능 추가
This commit is contained in:
parent
e9c8cfe60e
commit
6c6bd1093c
@ -159,7 +159,16 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
||||
}
|
||||
|
||||
if(kakaoVO.getAtSmishingYn().equals("Y")) {
|
||||
String sandDate = kakaoVO.getReqDate();
|
||||
String sandDate = "";
|
||||
|
||||
if(kakaoVO.getDivideChk().equals("Y")) {
|
||||
//분할 문자 예약 시간 입력해주기
|
||||
sandDate = dividDayList.get(i);
|
||||
}else {
|
||||
//예약 시간 입력해주기
|
||||
sandDate = kakaoVO.getReqDate();
|
||||
}
|
||||
|
||||
SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
||||
Date date = sdFormat.parse(sandDate);
|
||||
|
||||
|
||||
@ -49,11 +49,16 @@ import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiProfileCategory;
|
||||
import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiTemplate;
|
||||
import itn.let.kakao.kakaoComm.kakaoApi.service.KakaoApiService;
|
||||
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService;
|
||||
import itn.let.mjo.mjocommon.MjonCommon;
|
||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||
import itn.let.sym.site.service.EgovSiteManagerService;
|
||||
import itn.let.sym.site.service.JoinSettingVO;
|
||||
import itn.let.uss.umt.service.EgovUserManageService;
|
||||
import itn.let.uss.umt.service.MberManageVO;
|
||||
import itn.let.uss.umt.service.UserManageVO;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -87,10 +92,18 @@ public class KakaoAlimTalkSendController {
|
||||
@Resource(name = "MjonMsgDataService")
|
||||
private MjonMsgDataService mjonMsgDataService;
|
||||
|
||||
/** userManageService */
|
||||
@Resource(name = "userManageService")
|
||||
private EgovUserManageService userManageService;
|
||||
|
||||
/** EgovMessageSource */
|
||||
@Resource(name="egovMessageSource")
|
||||
EgovMessageSource egovMessageSource;
|
||||
|
||||
/** 사이트 설정 */
|
||||
@Resource(name = "egovSiteManagerService")
|
||||
EgovSiteManagerService egovSiteManagerService;
|
||||
|
||||
@Autowired
|
||||
KakaoApiProfile kakaoApiProfile;
|
||||
|
||||
@ -480,11 +493,10 @@ public class KakaoAlimTalkSendController {
|
||||
int resultSts = 0; //발송결과 건수
|
||||
int resultBlockSts = 0; //수신거부 등록번호로 발송을 안한 건수
|
||||
|
||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||
try {
|
||||
|
||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||
|
||||
if(userId == "") {
|
||||
modelAndView.addObject("message", "로그인 후 이용이 가능합니다.");
|
||||
modelAndView.addObject("result", "loginFail");
|
||||
@ -492,7 +504,9 @@ public class KakaoAlimTalkSendController {
|
||||
}else {
|
||||
/** 카카오톡 전송 기본 설정 -------------------------------------------*/
|
||||
kakaoVO.setSendType("AT");
|
||||
kakaoVO.setMsgType("8");
|
||||
kakaoVO.setUserId(userId);
|
||||
|
||||
}
|
||||
|
||||
/** 전송금액 설정 --------------------------------------------------*/
|
||||
@ -710,6 +724,43 @@ public class KakaoAlimTalkSendController {
|
||||
modelAndView.addObject("result", "success");
|
||||
modelAndView.addObject("resultSts", resultSts);
|
||||
|
||||
|
||||
/** 카카오톡 발송 내용 법인폰, 알림톡 결과 처리 --------------------------------------------------*/
|
||||
try {
|
||||
String adminSmsNoticeYn = "Y";
|
||||
String spamStatus = kakaoVO.getAtSmishingYn(); // 스미싱 의심으로 체크된 고객 정보
|
||||
|
||||
UserManageVO userManageVO = new UserManageVO();
|
||||
userManageVO.setMberId(userId);
|
||||
|
||||
if(!userId.equals("")) {
|
||||
userManageVO = userManageService.selectAdminSmsNoticeYn(userManageVO);
|
||||
adminSmsNoticeYn = userManageVO.getAdminSmsNoticeYn();
|
||||
}
|
||||
|
||||
//법인폰 알림 온 이거나 스미싱의심 문자인 경우 법인폰으로 발송
|
||||
if(adminSmsNoticeYn.equals("Y") || spamStatus.equals("Y")) {
|
||||
|
||||
if(spamStatus.equals("Y")) {
|
||||
kakaoVO.setAtDelayYn("Y");
|
||||
}
|
||||
|
||||
// 법인폰 알람여부 체크
|
||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||
|
||||
// SLACK 체크
|
||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||
//Slack으로 메세지 전송 처리
|
||||
MjonCommon comm = new MjonCommon();
|
||||
// comm.getAdminKakaoAtSandSlack(kakaoVO);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new Exception("++++++++++++++++++++++ getAdminPhoneSendMsgData Error !!! " + e);
|
||||
}
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import com.mysql.jdbc.StringUtils;
|
||||
|
||||
import itn.let.kakao.kakaoComm.KakaoVO;
|
||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||
|
||||
@Service("MjonCommon")
|
||||
@ -242,4 +243,63 @@ public class MjonCommon {
|
||||
return mjonMsgVO;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void getAdminKakaoAtSandSlack(KakaoVO kakaoVO) {
|
||||
|
||||
HttpClient client = new HttpClient();
|
||||
PostMethod post = new PostMethod(url);
|
||||
JSONObject json = new JSONObject();
|
||||
try {
|
||||
|
||||
String reserveYn = kakaoVO.getReserveYn();
|
||||
String atDelayYn = kakaoVO.getAtDelayYn();
|
||||
String smsTxt = kakaoVO.getTemplateContent();
|
||||
String reservSmsTxt = "";
|
||||
String smisingSmsTxt = "";
|
||||
//예약문자를 발송하는 경우 문자 내용 앞에 "[예약]" 표시되도록 처리
|
||||
if(reserveYn.equals("Y")) {
|
||||
reservSmsTxt = "[예약]" + smsTxt;
|
||||
smsTxt = reservSmsTxt;
|
||||
}else if(atDelayYn.equals("Y")) {
|
||||
|
||||
smisingSmsTxt = "[스미싱의심]" + smsTxt;
|
||||
smsTxt = smisingSmsTxt;
|
||||
}
|
||||
|
||||
String sandName = kakaoVO.getCallFrom();
|
||||
String userId = kakaoVO.getUserId();
|
||||
String msgType = "";
|
||||
|
||||
if(kakaoVO.getMsgType().equals("8")) {
|
||||
msgType = "[알림톡]";
|
||||
}else if(kakaoVO.getMsgType().equals("9")){
|
||||
|
||||
}
|
||||
sandName = "[" + userId + "]" + "[" + sandName + "]" + msgType;
|
||||
|
||||
json.put("channel", "mjon메시지");
|
||||
json.put("text", smsTxt);
|
||||
json.put("username", sandName);
|
||||
|
||||
|
||||
post.addParameter("payload", json.toString());
|
||||
// 처음에 utf-8로 content-type안넣어주니까 한글은 깨져서 content-type넣어줌
|
||||
post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
|
||||
int responseCode = client.executeMethod(post);
|
||||
String response = post.getResponseBodyAsString();
|
||||
if (responseCode != HttpStatus.SC_OK) {
|
||||
System.out.println("Response: " + response);
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println("IllegalArgumentException posting to Slack " + e);
|
||||
} catch (IOException e) {
|
||||
System.out.println("IOException posting to Slack " + e);
|
||||
} catch (Exception e) {
|
||||
System.out.println("Exception posting to Slack " + e);
|
||||
} finally {
|
||||
post.releaseConnection();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -356,7 +356,7 @@ public class MjonMsgVO extends ComDefaultVO{
|
||||
|
||||
private String atDelayYn = "N"; // 알림 30분 지연 처리 유무
|
||||
private String atDelayCompleteYn; // 알림톡 30분 지연 처리 완료 유무
|
||||
private String atSmishingYn; // 알림 지연처리
|
||||
private String atSmishingYn; // 알림톡 스메싱 여부
|
||||
|
||||
private int totalCallCnt; //수신자 전체 갯
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ package itn.let.mjo.msg.service.impl;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@ -17,6 +18,7 @@ import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import egovframework.rte.fdl.security.intercept.EgovReloadableFilterInvocationSecurityMetadataSource;
|
||||
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
||||
import itn.com.cmm.LoginVO;
|
||||
import itn.com.cmm.util.MJUtil;
|
||||
import itn.com.utl.fcc.service.EgovDateUtil;
|
||||
import itn.let.mjo.msg.service.MjPhoneMemberVO;
|
||||
import itn.let.mjo.msg.service.MjonMapAddressVO;
|
||||
@ -911,6 +913,7 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
|
||||
int resultSts = 0;
|
||||
|
||||
try {
|
||||
boolean timeType = true;
|
||||
|
||||
System.out.println("++++++++++++++++++ updateKakaoAtDelaySendRealTimeData groupId ::: "+mjonResvMsgVO.getMsgGroupId());
|
||||
//삭제 문자 건수 MSG_SEQ 번호 받아오기
|
||||
@ -919,31 +922,32 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
|
||||
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);
|
||||
if(resultMsgSeqList.get(0).getReserveYn().equals("N")) {
|
||||
// 즉시 발송시
|
||||
//비즈뿌리오 딜레이문자 즉시발송 처리
|
||||
resultSts = mjonReservMsgDAO.updateRealTimeBizMsgSeqListByMsgSeq(mjonResvMsgVO);
|
||||
|
||||
}else {
|
||||
// 예약 발송시
|
||||
//비즈뿌리오 딜레이문자 예약발송 처리
|
||||
resultSts = mjonReservMsgDAO.updateReserveTimeBizMsgSeqListByMsgSeq(mjonResvMsgVO);
|
||||
}
|
||||
|
||||
System.out.println("++++++++++++++++++++++++++++++ resultSts ::: "+resultSts);
|
||||
|
||||
//예약 취소 환불 처리
|
||||
//발송 시간 수정(mj_msg_data, mj_msg_group_data)
|
||||
if(resultSts > 0) {
|
||||
|
||||
//그룹 데이터 정보 조회하기
|
||||
MjonMsgVO mjonMsgVO = mjonMsgDAO.selectMsgGroupDataByGoupId(mjonResvMsgVO);
|
||||
|
||||
//mj_msg_data 테이블 지연 문자 즉시발송 요청 값 수정
|
||||
mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgDataFlag(mjonMsgVO);
|
||||
|
||||
//mj_msg_group_data 테이블 즉시발송 요청 값 수정
|
||||
mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgGroupDataFlag(mjonMsgVO);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -29,6 +29,7 @@ public class MjonResvMsgVO extends UserDefaultVO{
|
||||
private String fileCnt; //첨부 이미지 갯수 - 0: 장문, 1 이상은 그림문자
|
||||
private String totMsgCnt; //전체 전송문자 갯수
|
||||
private String curState; //전송 처리 결과값
|
||||
private String reserveYn; //예약 여부
|
||||
private String reserveCYn; //예약 취소 여부
|
||||
private String filePath1; //그림 이미지 1
|
||||
private String filePath2; //그림 이미지 2
|
||||
@ -290,5 +291,10 @@ public class MjonResvMsgVO extends UserDefaultVO{
|
||||
public void setStrReqDate(String strReqDate) {
|
||||
this.strReqDate = strReqDate;
|
||||
}
|
||||
|
||||
public String getReserveYn() {
|
||||
return reserveYn;
|
||||
}
|
||||
public void setReserveYn(String reserveYn) {
|
||||
this.reserveYn = reserveYn;
|
||||
}
|
||||
}
|
||||
|
||||
@ -277,4 +277,15 @@ public class MjonReservMsgDAO extends EgovAbstractDAO {
|
||||
|
||||
return update("MjonReservMsgDAO.updateRealTimeJJB02MsgSeqListByMsgSeq", mjonResvMsgVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Method Name : updateReserveTimeBizMsgSeqListByMsgSeq
|
||||
* @작성일 : 2023. 07. 06.
|
||||
* @작성자 : WYD
|
||||
* @Method 설명 : 비즈뿌리오 지연처리 문자 예약 발송
|
||||
*/
|
||||
public int updateReserveTimeBizMsgSeqListByMsgSeq(MjonResvMsgVO mjonResvMsgVO) {
|
||||
|
||||
return update("MjonReservMsgDAO.updateReserveTimeBizMsgSeqListByMsgSeq", mjonResvMsgVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -348,6 +348,8 @@
|
||||
M2.yellowId ,
|
||||
M2.userNm ,
|
||||
M2.atSmishingYn ,
|
||||
M2.atDelayCompleteYn,
|
||||
M2.atDelayYn,
|
||||
( SELECT COUNT(0)
|
||||
FROM MJ_MSG_DATA C
|
||||
WHERE C.DEL_FLAG = 'N'
|
||||
@ -451,46 +453,49 @@
|
||||
MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey ,
|
||||
MKPI.YELLOW_ID AS yellowId ,
|
||||
LTM.MBER_NM AS userNm ,
|
||||
LTM.AT_SMISHING_YN AS atSmishingYn,
|
||||
LTM.AT_SMISHING_YN AS atSmishingYn,
|
||||
BIZ_UMID AS bizUmid,
|
||||
BL.CALL_STATUS AS callStatus,
|
||||
M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn
|
||||
FROM (
|
||||
SELECT MG.USER_ID ,
|
||||
MG.MSG_GROUP_ID ,
|
||||
MG.MSG_GROUP_CNT ,
|
||||
MG.SMS_TXT ,
|
||||
MG.SUBJECT ,
|
||||
MG.REGDATE ,
|
||||
MG.REQ_DATE ,
|
||||
MD.RSLT_DATE ,
|
||||
MG.CALL_FROM ,
|
||||
MG.TOT_PRICE ,
|
||||
MG.EACH_PRICE ,
|
||||
MG.DEL_FLAG ,
|
||||
MG.MSG_TYPE ,
|
||||
MG.FILE_CNT ,
|
||||
MG.AGENT_CODE ,
|
||||
MG.RESERVE_YN ,
|
||||
MG.RESERVE_C_YN ,
|
||||
MG.CANCELDATE ,
|
||||
MD.MSG_SEQ ,
|
||||
MD.CALL_TO ,
|
||||
MD.CUR_STATE ,
|
||||
MD.RSLT_CODE ,
|
||||
MD.RSLT_CODE2 ,
|
||||
CASE
|
||||
M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn,
|
||||
M.AT_DELAY_COMPLETE_YN AS atDelayCompleteYn,
|
||||
M.AT_DELAY_YN AS atDelayYn
|
||||
FROM
|
||||
(SELECT
|
||||
MG.USER_ID
|
||||
, MG.MSG_GROUP_ID
|
||||
, MG.MSG_GROUP_CNT
|
||||
, MG.SMS_TXT
|
||||
, MG.SUBJECT
|
||||
, MG.REGDATE
|
||||
, MG.REQ_DATE
|
||||
, MD.RSLT_DATE
|
||||
, MG.CALL_FROM
|
||||
, MG.TOT_PRICE
|
||||
, MG.EACH_PRICE
|
||||
, MG.DEL_FLAG
|
||||
, MG.MSG_TYPE
|
||||
, MG.FILE_CNT
|
||||
, MG.AGENT_CODE
|
||||
, MG.RESERVE_YN
|
||||
, MG.RESERVE_C_YN
|
||||
, MG.CANCELDATE
|
||||
, MD.MSG_SEQ
|
||||
, MD.CALL_TO
|
||||
, MD.CUR_STATE
|
||||
, MD.RSLT_CODE
|
||||
, MD.RSLT_CODE2
|
||||
, CASE
|
||||
WHEN MG.MSG_TYPE = '8'
|
||||
THEN '알림톡'
|
||||
WHEN MG.MSG_TYPE = '9'
|
||||
THEN '친구톡'
|
||||
END msgTypeName ,
|
||||
CASE
|
||||
END msgTypeName
|
||||
, CASE
|
||||
WHEN MG.MSG_TYPE = '8'
|
||||
THEN '1'
|
||||
ELSE '2'
|
||||
END orderByCode ,
|
||||
(
|
||||
END orderByCode
|
||||
, (
|
||||
CASE
|
||||
WHEN MD.RSLT_CODE = '7000'
|
||||
THEN 'S'
|
||||
@ -498,18 +503,24 @@
|
||||
THEN 'W'
|
||||
ELSE 'F'
|
||||
END
|
||||
) AS result ,
|
||||
MSG_NOTICETALK_SENDER_KEY ,
|
||||
MSG_NOTICETALK_TMP_KEY,
|
||||
MD.BIZ_UMID,
|
||||
MD.BIZ_KAKAO_RESEND_YN
|
||||
FROM MJ_MSG_DATA MD ,
|
||||
MJ_MSG_GROUP_DATA MG
|
||||
WHERE MD.MSG_GROUP_ID = MG.MSG_GROUP_ID
|
||||
) AS result
|
||||
, MSG_NOTICETALK_SENDER_KEY
|
||||
, MSG_NOTICETALK_TMP_KEY
|
||||
, MD.BIZ_UMID
|
||||
, MD.BIZ_KAKAO_RESEND_YN
|
||||
, MG.AT_DELAY_COMPLETE_YN
|
||||
, MG.AT_DELAY_YN
|
||||
FROM
|
||||
MJ_MSG_DATA MD
|
||||
, MJ_MSG_GROUP_DATA MG
|
||||
WHERE 1=1
|
||||
AND MD.MSG_GROUP_ID = MG.MSG_GROUP_ID
|
||||
AND IFNULL(MG.DEL_FLAG, 'N') = 'N'
|
||||
AND MD.DEL_FLAG = 'N'
|
||||
<!-- JSPark 2023.03.24 알림톡 전송완료 목록은 (즉시 + 예약 발송완료) 노출 -->
|
||||
<![CDATA[ AND MG.REQ_DATE <= NOW() ]]>
|
||||
<![CDATA[
|
||||
AND MG.REQ_DATE <= DATE_ADD(NOW(), INTERVAL 60 MINUTE)
|
||||
]]>
|
||||
<isNotEmpty property="userId">
|
||||
AND MG.USER_ID = #userId#
|
||||
</isNotEmpty>
|
||||
@ -1058,6 +1069,9 @@
|
||||
M2.msgNoticetalkTmpKey ,
|
||||
M2.yellowId ,
|
||||
M2.userNm ,
|
||||
M2.atSmishingYn,
|
||||
M2.atDelayCompleteYn,
|
||||
M2.atDelayYn,
|
||||
( SELECT COUNT(0)
|
||||
FROM MJ_MSG_DATA C
|
||||
WHERE C.DEL_FLAG = 'N'
|
||||
@ -1158,12 +1172,15 @@
|
||||
orderByCode AS orderByCode ,
|
||||
RESULT AS msgResult ,
|
||||
MSG_NOTICETALK_SENDER_KEY AS msgNoticetalkSenderKey ,
|
||||
MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey ,
|
||||
MKPI.YELLOW_ID AS yellowId ,
|
||||
LTM.MBER_NM AS userNm ,
|
||||
MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey ,
|
||||
MKPI.YELLOW_ID AS yellowId ,
|
||||
LTM.MBER_NM AS userNm ,
|
||||
LTM.AT_SMISHING_YN AS atSmishingYn,
|
||||
BIZ_UMID AS bizUmid,
|
||||
BL.CALL_STATUS AS callStatus,
|
||||
M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn
|
||||
M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn,
|
||||
M.AT_DELAY_COMPLETE_YN AS atDelayCompleteYn,
|
||||
M.AT_DELAY_YN AS atDelayYn
|
||||
FROM (
|
||||
SELECT MG.USER_ID ,
|
||||
MG.MSG_GROUP_ID ,
|
||||
@ -1207,16 +1224,19 @@
|
||||
THEN 'W'
|
||||
ELSE 'F'
|
||||
END
|
||||
) AS result ,
|
||||
MSG_NOTICETALK_SENDER_KEY ,
|
||||
MSG_NOTICETALK_TMP_KEY,
|
||||
MD.BIZ_UMID,
|
||||
MD.BIZ_KAKAO_RESEND_YN
|
||||
) AS result
|
||||
, MSG_NOTICETALK_SENDER_KEY
|
||||
, MSG_NOTICETALK_TMP_KEY
|
||||
, MD.BIZ_UMID
|
||||
, MD.BIZ_KAKAO_RESEND_YN
|
||||
, MG.AT_DELAY_COMPLETE_YN
|
||||
, MG.AT_DELAY_YN
|
||||
FROM MJ_MSG_DATA MD ,
|
||||
MJ_MSG_GROUP_DATA MG
|
||||
WHERE MD.MSG_GROUP_ID = MG.MSG_GROUP_ID
|
||||
AND IFNULL(MG.DEL_FLAG, 'N') = 'N'
|
||||
AND MD.DEL_FLAG = 'N'
|
||||
|
||||
<isNotEmpty property="userId">
|
||||
AND MG.USER_ID = #userId#
|
||||
</isNotEmpty>
|
||||
@ -1386,7 +1406,7 @@
|
||||
, B.SMS_TXT
|
||||
, B.SUBJECT
|
||||
, B.REGDATE
|
||||
, B.REQ_DATE
|
||||
, A.REQ_DATE
|
||||
, A.RSLT_DATE
|
||||
, B.CALL_FROM
|
||||
, B.TOT_PRICE
|
||||
|
||||
@ -5776,15 +5776,18 @@
|
||||
|
||||
<select id="mjonMsgDAO.selectMsgGroupDataByGoupId" parameterClass="mjonResvMsgVO" resultClass="mjonMsgVO">
|
||||
|
||||
SELECT MSG_GROUP_ID AS msgGroupId,
|
||||
USER_ID AS userId,
|
||||
SMS_TXT AS smsTxt,
|
||||
EACH_PRICE AS eachPrice,
|
||||
TOT_PRICE AS totPrice,
|
||||
MSG_GROUP_CNT AS msgGroupCnt
|
||||
FROM MJ_MSG_GROUP_DATA
|
||||
WHERE USER_ID = #userId#
|
||||
AND MSG_GROUP_ID = #msgGroupId#
|
||||
SELECT
|
||||
MSG_GROUP_ID AS msgGroupId
|
||||
, USER_ID AS userId
|
||||
, SMS_TXT AS smsTxt
|
||||
, EACH_PRICE AS eachPrice
|
||||
, TOT_PRICE AS totPrice
|
||||
, MSG_GROUP_CNT AS msgGroupCnt
|
||||
FROM
|
||||
MJ_MSG_GROUP_DATA
|
||||
WHERE 1=1
|
||||
AND USER_ID = #userId#
|
||||
AND MSG_GROUP_ID = #msgGroupId#
|
||||
ORDER BY MSG_GROUP_ID DESC
|
||||
LIMIT 1
|
||||
|
||||
@ -5833,10 +5836,12 @@
|
||||
|
||||
<select id="mjonMsgDAO.selectMsgGroupDataReqDateList" parameterClass="mjonMsgResvVO" resultClass="mjonMsgResvVO">
|
||||
|
||||
SELECT DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T' ) AS strReqDate
|
||||
FROM MJ_MSG_GROUP_DATA
|
||||
SELECT
|
||||
DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T' ) AS strReqDate
|
||||
FROM
|
||||
MJ_MSG_GROUP_DATA
|
||||
WHERE 1=1
|
||||
AND USER_ID = #userId#
|
||||
AND USER_ID = #userId#
|
||||
<iterate prepend="AND MSG_GROUP_ID IN" open="(" close=")" conjunction="," property="msgGroupIdList">
|
||||
#msgGroupIdList[]#
|
||||
</iterate>
|
||||
@ -6597,28 +6602,42 @@
|
||||
</update>
|
||||
|
||||
<update id="mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgDataFlag" parameterClass="mjonMsgVO">
|
||||
|
||||
UPDATE
|
||||
MJ_MSG_DATA
|
||||
SET
|
||||
REQ_DATE = NOW()
|
||||
REQ_DATE =
|
||||
<![CDATA[
|
||||
CASE
|
||||
WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE) < 0
|
||||
THEN REQ_DATE
|
||||
WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE) >= 30
|
||||
THEN DATE_ADD(REQ_DATE, INTERVAL -30 MINUTE)
|
||||
ELSE DATE_ADD(REQ_DATE, INTERVAL -(TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE)) MINUTE)
|
||||
END
|
||||
]]>
|
||||
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()
|
||||
REQ_DATE =
|
||||
<![CDATA[
|
||||
CASE
|
||||
WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE) < 0
|
||||
THEN REQ_DATE
|
||||
WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE) >= 30
|
||||
THEN DATE_ADD(REQ_DATE, INTERVAL -30 MINUTE)
|
||||
ELSE DATE_ADD(REQ_DATE, INTERVAL -(TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE)) MINUTE)
|
||||
END
|
||||
]]>
|
||||
, AT_DELAY_COMPLETE_YN = 'Y'
|
||||
WHERE 1=1
|
||||
AND USER_ID = #userId#
|
||||
AND MSG_GROUP_ID = #msgGroupId#
|
||||
|
||||
</update>
|
||||
|
||||
</sqlMap>
|
||||
|
||||
@ -445,12 +445,17 @@
|
||||
</select>
|
||||
|
||||
<select id="MjonReservMsgDAO.selectMsgSeqListByGroupId" parameterClass="mjonMsgResvVO" resultClass="mjonMsgResvVO">
|
||||
|
||||
SELECT USERDATA AS userData
|
||||
FROM MJ_MSG_DATA
|
||||
WHERE USER_ID = #userId#
|
||||
AND MSG_GROUP_ID = #msgGroupId#
|
||||
|
||||
SELECT
|
||||
A.USERDATA AS userData
|
||||
, DATE_FORMAT(A.REQ_DATE, '%Y-%m-%d %T' ) AS reqdate
|
||||
, B.RESERVE_YN AS reserveYn
|
||||
FROM
|
||||
MJ_MSG_DATA A
|
||||
, MJ_MSG_GROUP_DATA B
|
||||
WHERE A.MSG_GROUP_ID = B.MSG_GROUP_ID
|
||||
AND A.USER_ID = #userId#
|
||||
AND A.MSG_GROUP_ID = #msgGroupId#
|
||||
ORDER BY A.REQ_DATE ASC
|
||||
</select>
|
||||
|
||||
<select id="MjonReservMsgDAO.selectMjonMsgGroupData" parameterClass="mjonMsgResvVO" resultClass="mjonMsgVO">
|
||||
@ -681,7 +686,6 @@
|
||||
|
||||
</update>
|
||||
|
||||
|
||||
<update id="MjonReservMsgDAO.updateRealTimeIVTMsgSeqListByMsgSeq" parameterClass="mjonMsgResvVO">
|
||||
|
||||
UPDATE SMSQ_SEND
|
||||
@ -717,6 +721,27 @@
|
||||
|
||||
</update>
|
||||
|
||||
<update id="MjonReservMsgDAO.updateReserveTimeBizMsgSeqListByMsgSeq" parameterClass="mjonMsgResvVO">
|
||||
UPDATE
|
||||
BIZ_MSG
|
||||
SET
|
||||
REQUEST_TIME =
|
||||
<![CDATA[
|
||||
CASE
|
||||
WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQUEST_TIME) < 0
|
||||
THEN REQUEST_TIME
|
||||
WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQUEST_TIME) >= 30
|
||||
THEN DATE_ADD(REQUEST_TIME, INTERVAL -30 MINUTE)
|
||||
ELSE DATE_ADD(REQUEST_TIME, INTERVAL -(TIMESTAMPDIFF(MINUTE, NOW(), REQUEST_TIME)) MINUTE)
|
||||
END
|
||||
]]>
|
||||
WHERE 1=1
|
||||
<iterate prepend="AND USER_KEY IN" open="(" close=")" conjunction="," property="userDataList">
|
||||
#userDataList[]#
|
||||
</iterate>
|
||||
|
||||
</update>
|
||||
|
||||
</sqlMap>
|
||||
|
||||
|
||||
|
||||
@ -1290,15 +1290,17 @@
|
||||
</select>
|
||||
|
||||
<select id="userManageDAO.selectAdminSmsNoticeYn" parameterClass="userVO" resultClass="userVO">
|
||||
SELECT
|
||||
ADMIN_SMS_NOTICE_YN AS adminSmsNoticeYn,
|
||||
PRE_PAYMENT_YN AS prePaymentYn,
|
||||
SMISHING_YN AS smishingYn,
|
||||
AUTO_CASH AS autoCash,
|
||||
IFNULL(BLINE_CODE, 'N') AS blineCode,
|
||||
IFNULL(RECOMMEND_ID, '') AS recommendId
|
||||
FROM LETTNGNRLMBER
|
||||
WHERE MBER_ID = #mberId#
|
||||
SELECT
|
||||
ADMIN_SMS_NOTICE_YN AS adminSmsNoticeYn
|
||||
,PRE_PAYMENT_YN AS prePaymentYn
|
||||
,SMISHING_YN AS smishingYn
|
||||
,AUTO_CASH AS autoCash
|
||||
,IFNULL(BLINE_CODE, 'N') AS blineCode
|
||||
,IFNULL(RECOMMEND_ID, '') AS recommendId
|
||||
FROM
|
||||
LETTNGNRLMBER
|
||||
WHERE
|
||||
MBER_ID = #mberId#
|
||||
</select>
|
||||
|
||||
<update id="userManageDAO.updateUserAdminSmsNoticeYn" parameterClass="userVO">
|
||||
|
||||
@ -150,6 +150,7 @@ function fnSelectMber(mberId) {
|
||||
<input type="hidden" name="detailType" value="<c:out value="${searchVO.detailType}" />" />
|
||||
<input type="hidden" name="ntceBgnde" id="ntceBgnde" value="">
|
||||
<input type="hidden" name="ntceEndde" id="ntceEndde" value="">
|
||||
<input type="hidden" name="userId" id="userId" value="<c:out value="${searchVO.userId}" />" />
|
||||
|
||||
<div class="contWrap">
|
||||
<div class="pageTitle">
|
||||
|
||||
@ -351,10 +351,10 @@ function fnSmishingUpdate(flag) {
|
||||
if(checkedIds.length > 0) {
|
||||
var msg = "";
|
||||
if(flag == 'on') {
|
||||
document.listForm.smishingYn.value='Y';
|
||||
document.listForm.atSmishingYn.value='Y';
|
||||
msg = "선택하신 사용자의 스미싱의심을 On 하시겠습니까?";
|
||||
} else {
|
||||
document.listForm.smishingYn.value='N';
|
||||
document.listForm.atSmishingYn.value='N';
|
||||
msg = "선택하신 사용자의 스미싱의심을 Off 하시겠습니까?";
|
||||
}
|
||||
if(confirm(msg)){
|
||||
@ -398,7 +398,7 @@ function fnSmishingUpdate(flag) {
|
||||
<input type="hidden" name="ntceEndde" id="ntceEndde" value="">
|
||||
<input type="hidden" name="adminSmsNoticeYn" value=""/>
|
||||
<input name="checkedIdForDel" type="hidden" />
|
||||
<input type="hidden" name="smishingYn" value=""/>
|
||||
<input type="hidden" name="atSmishingYn" value=""/>
|
||||
|
||||
<div class="contWrap">
|
||||
<div class="pageTitle">
|
||||
@ -484,9 +484,8 @@ function fnSmishingUpdate(flag) {
|
||||
<col style="width: 5%">
|
||||
<col style="width: 13%">
|
||||
<col style="width: 13%">
|
||||
<%-- <col style="width: 10%"> --%>
|
||||
<col style="width: 10%">
|
||||
<%-- <col style="width: 10%"> --%>
|
||||
<col style="width: 10%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 5%">
|
||||
<col style="width: auto">
|
||||
@ -498,15 +497,12 @@ function fnSmishingUpdate(flag) {
|
||||
<th>번호<input type="button" class="sort sortBtn" id="sort_msgGroupId"></th>
|
||||
<th>아이디<input type="button" class="sort sortBtn" id="sort_userId"></th>
|
||||
<th>채널ID<input type="button" class="sort sortBtn" id="sort_yellowId"></th>
|
||||
<!-- <th>qkf<input type="button" class="sort sortBtn" id="sort_callFrom"></th> -->
|
||||
<th>발송건수<input type="button" class="sort sortBtn" id="sort_msgGroupCnt"></th>
|
||||
<!-- <th>스미싱의심</th> -->
|
||||
<th>스미싱의심</th>
|
||||
<th>요청시간<input type="button" class="sort sortBtn" id="sort_reqDate"></th>
|
||||
<th>예약<input type="button" class="sort sortBtn" id="sort_reserveYn"></th>
|
||||
<th>내용<input type="button" class="sort sortBtn" id="sort_smsTxt"></th>
|
||||
<th>타입<input type="button" class="sort sortBtn" id="sort_msgType"></th>
|
||||
<!-- <th>전송사<input type="button" class="sort sortBtn" id="sort_agentCodeTxt"></th> -->
|
||||
<!-- <th>통신사<input type="button" class="sort sortBtn" id="sort_rsltNet"></th> -->
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -516,7 +512,7 @@ function fnSmishingUpdate(flag) {
|
||||
<input name="checkField" id="<c:out value="${result.userId}"/>" title="Check <c:out value="${status.count}"/>" type="checkbox"/><label for="<c:out value="${result.userId}"/>"></label>
|
||||
<input name="checkId" type="hidden" class="${result.userId}" value="<c:out value='${result.userId}'/>:<c:out value='${result.userId}'/>"/>
|
||||
</td>
|
||||
<td>
|
||||
<td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
|
||||
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
|
||||
</c:if>
|
||||
@ -524,23 +520,17 @@ function fnSmishingUpdate(flag) {
|
||||
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
|
||||
</c:if>
|
||||
</td>
|
||||
<td>
|
||||
<td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<div class="id_box <c:if test='${result.vipYn eq "Y" }'>vip</c:if>">
|
||||
<a href="#" onclick="javascript:fnSelectMber('<c:out value="${result.userId}"/>'); return false;">
|
||||
<c:out value="${result.userId}"/>(<c:out value="${result.userNm}"/>)
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;" <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:out value="${result.yellowId}"/>
|
||||
</td>
|
||||
|
||||
<%-- <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>>
|
||||
<c:out value="${result.callFrom}"/>
|
||||
</td> --%>
|
||||
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;line-height:30px;text-align:right;">
|
||||
</td>
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;line-height:30px;text-align:right;" <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:choose>
|
||||
<c:when test="${result.successCount > 0}">
|
||||
<c:out value="${result.msgGroupCnt}"/>(<fmt:formatNumber value="${(result.successCount / result.msgGroupCnt) * 100}" pattern="#,###" />%)
|
||||
@ -549,20 +539,50 @@ function fnSmishingUpdate(flag) {
|
||||
<span style="color: #0000FF;">
|
||||
<c:out value="${result.msgGroupCnt}"/>(<fmt:formatNumber value="${(result.successCount / result.msgGroupCnt) * 100}" pattern="#,###" />%)
|
||||
<c:if test="${result.msgGroupCnt eq result.callRejectionCount && result.callbackYn eq 'N' && result.userCallbackYn eq 'N' }">
|
||||
<%-- <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="문자" /> --%>
|
||||
</c:if>
|
||||
<%-- <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="문자" /> --%>
|
||||
</c:if>
|
||||
<c:if test="${result.callbackYn eq 'Y' }">
|
||||
<span style="color: #0000FF;" title="번호도용 문자차단 안내문자 발송완료">안내완료</span>
|
||||
</c:if>
|
||||
<span style="color: #0000FF;" title="번호도용 문자차단 안내문자 발송완료">안내완료</span>
|
||||
</c:if>
|
||||
</span>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;" title="<c:out value="${result.rsltDate}"/>">
|
||||
<td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:choose>
|
||||
<c:when test="${result.atDelayYn eq 'Y'}">
|
||||
<c:choose>
|
||||
<c:when test="${result.atDelayCompleteYn eq 'Y' && not empty result.cancelDate}">
|
||||
<span style="color: #0000FF;">
|
||||
<c:if test="${result.smishingYn eq 'Y'}">온</c:if><c:if test="${result.smishingYn eq 'N'}">오프</c:if>[이용정지]
|
||||
<span style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;margin-top:3px;" title="<c:out value="${result.cancelDate}"/>">
|
||||
<fmt:parseDate value="${result.cancelDate}" var="cancelDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
||||
<fmt:formatDate value="${cancelDateValue}" pattern="MM-dd HH:mm"/>
|
||||
</span>
|
||||
</span>
|
||||
</c:when>
|
||||
<c:when test="${result.atDelayCompleteYn eq 'N'}">
|
||||
<c:if test="${result.atSmishingYn eq 'Y'}">온</c:if>
|
||||
<c:if test="${result.atSmishingYn eq 'N'}">오프</c:if>[미처리]
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<span style="color: #0000FF;">
|
||||
<c:if test="${result.atSmishingYn eq 'Y'}">온</c:if>
|
||||
<c:if test="${result.atSmishingYn eq 'N'}">오프</c:if>[승인]
|
||||
</span>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;" title="<c:out value="${result.rsltDate}"/>" <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<fmt:parseDate value="${result.reqDate}" var="reqDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
||||
<fmt:formatDate value="${reqDateValue}" pattern="MM-dd HH:mm"/>
|
||||
</td>
|
||||
<td onclick="fn_detail_list('${result.msgGroupId}'); return false;" style="cursor:pointer;">
|
||||
<td onclick="fn_detail_list('${result.msgGroupId}'); return false;" style="cursor:pointer;" <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:choose>
|
||||
<c:when test="${result.reserveYn eq 'Y'}">
|
||||
예약
|
||||
@ -572,25 +592,20 @@ function fnSmishingUpdate(flag) {
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td class="sms_detail left" onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
||||
<td class="sms_detail left <c:if test="${result.atSmishingYn eq 'Y'}">smishing</c:if>" onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
||||
<p><c:out value="${result.smsTxt}"/></p>
|
||||
<div class="sms_detail_hover">
|
||||
<c:out value="${fn:replace(fn:replace(result.smsTxt, newLineChar, '<br/>'), newLineChar2, '<br/>')}" escapeXml="false"/>
|
||||
</div>
|
||||
</td>
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;" <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:out value="${result.msgTypeName}"/>
|
||||
</td>
|
||||
<%-- <td><c:out value="${result.conectMthdTxt}"/></td> --%>
|
||||
<%-- <td <c:if test="${result.smishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:out value="${result.agentCodeTxt}"/>
|
||||
</td> --%>
|
||||
<%-- <td><c:out value="${result.rsltNet}"/></td> --%>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty resultList}">
|
||||
<tr><td colspan="8"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
<tr><td colspan="10"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@ -456,7 +456,7 @@ function fnAtSmishingUpdate(flag) {
|
||||
<col style="width: 13%">
|
||||
<%-- <col style="width: 10%"> --%>
|
||||
<col style="width: 10%">
|
||||
<%-- <col style="width: 10%"> --%>
|
||||
<col style="width: 10%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 5%">
|
||||
<col style="width: auto">
|
||||
@ -468,15 +468,12 @@ function fnAtSmishingUpdate(flag) {
|
||||
<th>번호<input type="button" class="sort sortBtn" id="sort_msgGroupId"></th>
|
||||
<th>아이디<input type="button" class="sort sortBtn" id="sort_userId"></th>
|
||||
<th>채널ID<input type="button" class="sort sortBtn" id="sort_yellowId"></th>
|
||||
<!-- <th>qkf<input type="button" class="sort sortBtn" id="sort_callFrom"></th> -->
|
||||
<th>발송건수<input type="button" class="sort sortBtn" id="sort_msgGroupCnt"></th>
|
||||
<!-- <th>스미싱의심</th> -->
|
||||
<th>스미싱의심</th>
|
||||
<th>요청시간<input type="button" class="sort sortBtn" id="sort_reqDate"></th>
|
||||
<th>예약<input type="button" class="sort sortBtn" id="sort_reserveYn"></th>
|
||||
<th>내용<input type="button" class="sort sortBtn" id="sort_smsTxt"></th>
|
||||
<th>타입<input type="button" class="sort sortBtn" id="sort_msgType"></th>
|
||||
<!-- <th>전송사<input type="button" class="sort sortBtn" id="sort_agentCodeTxt"></th> -->
|
||||
<!-- <th>통신사<input type="button" class="sort sortBtn" id="sort_rsltNet"></th> -->
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -486,7 +483,7 @@ function fnAtSmishingUpdate(flag) {
|
||||
<input name="checkField" id="<c:out value="${result.userId}"/>" title="Check <c:out value="${status.count}"/>" type="checkbox"/><label for="<c:out value="${result.userId}"/>"></label>
|
||||
<input name="checkId" type="hidden" class="${result.userId}" value="<c:out value='${result.userId}'/>:<c:out value='${result.userId}'/>"/>
|
||||
</td>
|
||||
<td>
|
||||
<td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
|
||||
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
|
||||
</c:if>
|
||||
@ -494,23 +491,17 @@ function fnAtSmishingUpdate(flag) {
|
||||
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
|
||||
</c:if>
|
||||
</td>
|
||||
<td>
|
||||
<td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<div class="id_box <c:if test='${result.vipYn eq "Y" }'>vip</c:if>">
|
||||
<a href="#" onclick="javascript:fnSelectMber('<c:out value="${result.userId}"/>'); return false;">
|
||||
<c:out value="${result.userId}"/>(<c:out value="${result.userNm}"/>)
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:out value="${result.yellowId}"/>
|
||||
</td>
|
||||
|
||||
<%-- <td onclick="fn_detail_list('${result.msgGroupId}'); return false;" <c:if test="${result.atSmishingYn eq 'Y'}">class="atSmishingYn" style="cursor:pointer;"</c:if><c:if test="${result.atSmishingYn eq 'N'}">style="cursor:pointer;"</c:if>>
|
||||
<c:out value="${result.callFrom}"/>
|
||||
</td> --%>
|
||||
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;line-height:30px;text-align:right;">
|
||||
</td>
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:choose>
|
||||
<c:when test="${result.successCount > 0}">
|
||||
<c:out value="${result.msgGroupCnt}"/>(<fmt:formatNumber value="${(result.successCount / result.msgGroupCnt) * 100}" pattern="#,###" />%)
|
||||
@ -519,20 +510,51 @@ function fnAtSmishingUpdate(flag) {
|
||||
<span style="color: #0000FF;">
|
||||
<c:out value="${result.msgGroupCnt}"/>(<fmt:formatNumber value="${(result.successCount / result.msgGroupCnt) * 100}" pattern="#,###" />%)
|
||||
<c:if test="${result.msgGroupCnt eq result.callRejectionCount && result.callbackYn eq 'N' && result.userCallbackYn eq 'N' }">
|
||||
<%-- <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="문자" /> --%>
|
||||
</c:if>
|
||||
|
||||
</c:if>
|
||||
<c:if test="${result.callbackYn eq 'Y' }">
|
||||
<span style="color: #0000FF;" title="번호도용 문자차단 안내문자 발송완료">안내완료</span>
|
||||
</c:if>
|
||||
<span style="color: #0000FF;" title="번호도용 문자차단 안내문자 발송완료">안내완료</span>
|
||||
</c:if>
|
||||
</span>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;" title="<c:out value="${result.rsltDate}"/>">
|
||||
<td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:choose>
|
||||
<c:when test="${result.atDelayYn eq 'Y'}">
|
||||
<c:choose>
|
||||
<c:when test="${result.atDelayCompleteYn eq 'Y' && not empty result.cancelDate}">
|
||||
<span style="color: #0000FF;">
|
||||
<c:if test="${result.atSmishingYn eq 'Y'}">온</c:if>
|
||||
<c:if test="${result.atSmishingYn eq 'N'}">오프</c:if>[이용정지]
|
||||
<span style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;margin-top:3px;" title="<c:out value="${result.cancelDate}"/>">
|
||||
<fmt:parseDate value="${result.cancelDate}" var="cancelDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
||||
<fmt:formatDate value="${cancelDateValue}" pattern="MM-dd HH:mm"/>
|
||||
</span>
|
||||
</span>
|
||||
</c:when>
|
||||
<c:when test="${result.atDelayCompleteYn eq 'N'}">
|
||||
<c:if test="${result.atSmishingYn eq 'Y'}">온</c:if>
|
||||
<c:if test="${result.atSmishingYn eq 'N'}">오프</c:if>[미처리]
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<span style="color: #0000FF;">
|
||||
<c:if test="${result.atSmishingYn eq 'Y'}">온</c:if>
|
||||
<c:if test="${result.atSmishingYn eq 'N'}">오프</c:if>[승인]
|
||||
</span>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" title="<c:out value="${result.rsltDate}"/>" <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<fmt:parseDate value="${result.reqDate}" var="reqDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
||||
<fmt:formatDate value="${reqDateValue}" pattern="MM-dd HH:mm"/>
|
||||
</td>
|
||||
<td onclick="fn_detail_list('${result.msgGroupId}', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
||||
<td onclick="fn_detail_list('${result.msgGroupId}', '<c:out value="${result.userId}"/>'); return false;" <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:choose>
|
||||
<c:when test="${result.reserveYn eq 'Y'}">
|
||||
예약
|
||||
@ -542,20 +564,15 @@ function fnAtSmishingUpdate(flag) {
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td class="sms_detail left" onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
||||
<td class="sms_detail left <c:if test="${result.atSmishingYn eq 'Y'}">smishing</c:if>" onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
||||
<p><c:out value="${result.smsTxt}"/></p>
|
||||
<div class="sms_detail_hover">
|
||||
<c:out value="${fn:replace(fn:replace(result.smsTxt, newLineChar, '<br/>'), newLineChar2, '<br/>')}" escapeXml="false"/>
|
||||
</div>
|
||||
</td>
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
||||
<td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;" <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
||||
<c:out value="${result.msgTypeName}"/>
|
||||
</td>
|
||||
<%-- <td><c:out value="${result.conectMthdTxt}"/></td> --%>
|
||||
<%-- <td <c:if test="${result.atSmishingYn eq 'Y'}">class="atSmishingYn"</c:if>>
|
||||
<c:out value="${result.agentCodeTxt}"/>
|
||||
</td> --%>
|
||||
<%-- <td><c:out value="${result.rsltNet}"/></td> --%>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty resultList}">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user