Merge branch 'master' of http://alfk8281@vcs.iten.co.kr:9999/hylee/mjon_git
@29ed297f10d043d32bde5f2ea29c5440c83758b1
--- src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java
+++ src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java
... | ... | @@ -40,5 +40,7 @@ |
| 40 | 40 |
//회원 정보 알림톡 상세정보 리스트 팝업 통계 정보 |
| 41 | 41 |
KakaoVO selectMjonKakaoStatisticATData(KakaoVO searchVO) throws Exception; |
| 42 | 42 |
|
| 43 |
+ //알림톡 지연문자 리스트 조회 |
|
| 44 |
+ List<KakaoVO> selectKakaoATDelaySentList(String userId) throws Exception; |
|
| 43 | 45 |
} |
| 44 | 46 |
|
--- src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java
+++ src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java
... | ... | @@ -88,4 +88,8 @@ |
| 88 | 88 |
|
| 89 | 89 |
return result; |
| 90 | 90 |
} |
| 91 |
+ @SuppressWarnings("unchecked")
|
|
| 92 |
+ public List<KakaoVO> selectKakaoATDelaySentList(String userId) throws Exception{
|
|
| 93 |
+ return (List<KakaoVO>)list("mjonKakaoATDAO.selectKakaoATDelaySentList", userId);
|
|
| 94 |
+ } |
|
| 91 | 95 |
} |
--- src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java
+++ src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java
... | ... | @@ -184,4 +184,9 @@ |
| 184 | 184 |
|
| 185 | 185 |
return result; |
| 186 | 186 |
} |
| 187 |
+ |
|
| 188 |
+ @Override |
|
| 189 |
+ public List<KakaoVO> selectKakaoATDelaySentList(String userId) throws Exception {
|
|
| 190 |
+ return mjonKakaoATDAO.selectKakaoATDelaySentList(userId); |
|
| 191 |
+ } |
|
| 187 | 192 |
} |
--- src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
+++ src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
... | ... | @@ -157,6 +157,32 @@ |
| 157 | 157 |
kakaoSandInfo.setReqDate(sdFormat.format(now)); |
| 158 | 158 |
|
| 159 | 159 |
} |
| 160 |
+ |
|
| 161 |
+ if(kakaoVO.getAtSmishingYn().equals("Y")) {
|
|
| 162 |
+ String sandDate = ""; |
|
| 163 |
+ |
|
| 164 |
+ if(kakaoVO.getDivideChk().equals("Y")) {
|
|
| 165 |
+ //분할 문자 예약 시간 입력해주기 |
|
| 166 |
+ sandDate = dividDayList.get(i); |
|
| 167 |
+ }else {
|
|
| 168 |
+ //예약 시간 입력해주기 |
|
| 169 |
+ sandDate = kakaoVO.getReqDate(); |
|
| 170 |
+ } |
|
| 171 |
+ |
|
| 172 |
+ SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
|
| 173 |
+ Date date = sdFormat.parse(sandDate); |
|
| 174 |
+ |
|
| 175 |
+ Calendar cal1 = Calendar.getInstance(); |
|
| 176 |
+ cal1.setTime(date); // 시간 설정 |
|
| 177 |
+ cal1.add(Calendar.MINUTE, 30); // 30분 연산 |
|
| 178 |
+ |
|
| 179 |
+ String reqDate = sdFormat.format(cal1.getTime()); |
|
| 180 |
+ |
|
| 181 |
+ System.out.println("@@@@@@@@@@@@@@ reqDate : "+reqDate);
|
|
| 182 |
+ kakaoVO.setReqDate(reqDate); |
|
| 183 |
+ kakaoSandInfo.setReqDate(reqDate); |
|
| 184 |
+ } |
|
| 185 |
+ |
|
| 160 | 186 |
/**전송시간 설정 (끝)------------------------------------------------*/ |
| 161 | 187 |
|
| 162 | 188 |
/**카카오 전송 데이터 추가*/ |
... | ... | @@ -231,6 +257,8 @@ |
| 231 | 257 |
mjonMsgVO.setBefCash(kakaoVO.getBefCash()); |
| 232 | 258 |
mjonMsgVO.setBefPoint(kakaoVO.getBefPoint()); |
| 233 | 259 |
mjonMsgVO.setKakaoSubMagOrgnlTxt(kakaoVO.getKakaoSubMagOrgnlTxt()); |
| 260 |
+ mjonMsgVO.setAtDelayYn(kakaoVO.getAtSmishingYn()); |
|
| 261 |
+ |
|
| 234 | 262 |
|
| 235 | 263 |
if(kakaoVO.getBizJsonYn().equals("Y")) {
|
| 236 | 264 |
mjonMsgVO.setFileCnt("1");
|
--- src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java
+++ src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java
... | ... | @@ -49,11 +49,16 @@ |
| 49 | 49 |
import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiTemplate; |
| 50 | 50 |
import itn.let.kakao.kakaoComm.kakaoApi.service.KakaoApiService; |
| 51 | 51 |
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService; |
| 52 |
+import itn.let.mjo.mjocommon.MjonCommon; |
|
| 53 |
+import itn.let.mjo.msg.service.MjonMsgVO; |
|
| 52 | 54 |
import itn.let.mjo.msgdata.service.MjonMsgDataService; |
| 53 | 55 |
import itn.let.mjo.msgdata.service.MjonMsgDataVO; |
| 54 | 56 |
import itn.let.mjo.msgdata.service.MjonMsgReturnVO; |
| 57 |
+import itn.let.sym.site.service.EgovSiteManagerService; |
|
| 55 | 58 |
import itn.let.sym.site.service.JoinSettingVO; |
| 59 |
+import itn.let.uss.umt.service.EgovUserManageService; |
|
| 56 | 60 |
import itn.let.uss.umt.service.MberManageVO; |
| 61 |
+import itn.let.uss.umt.service.UserManageVO; |
|
| 57 | 62 |
|
| 58 | 63 |
/** |
| 59 | 64 |
* |
... | ... | @@ -86,10 +91,18 @@ |
| 86 | 91 |
|
| 87 | 92 |
@Resource(name = "MjonMsgDataService") |
| 88 | 93 |
private MjonMsgDataService mjonMsgDataService; |
| 94 |
+ |
|
| 95 |
+ /** userManageService */ |
|
| 96 |
+ @Resource(name = "userManageService") |
|
| 97 |
+ private EgovUserManageService userManageService; |
|
| 89 | 98 |
|
| 90 | 99 |
/** EgovMessageSource */ |
| 91 | 100 |
@Resource(name="egovMessageSource") |
| 92 | 101 |
EgovMessageSource egovMessageSource; |
| 102 |
+ |
|
| 103 |
+ /** 사이트 설정 */ |
|
| 104 |
+ @Resource(name = "egovSiteManagerService") |
|
| 105 |
+ EgovSiteManagerService egovSiteManagerService; |
|
| 93 | 106 |
|
| 94 | 107 |
@Autowired |
| 95 | 108 |
KakaoApiProfile kakaoApiProfile; |
... | ... | @@ -154,6 +167,7 @@ |
| 154 | 167 |
|
| 155 | 168 |
mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); |
| 156 | 169 |
|
| 170 |
+ model.addAttribute("atSmishingYn", mberManageVO.getAtSmishingYn());
|
|
| 157 | 171 |
} |
| 158 | 172 |
|
| 159 | 173 |
//3.사용자 개인단가 정보가 0이 아니면 개인단가 사용, 없으면 시스템 기본 단가 사용 |
... | ... | @@ -479,10 +493,9 @@ |
| 479 | 493 |
int resultSts = 0; //발송결과 건수 |
| 480 | 494 |
int resultBlockSts = 0; //수신거부 등록번호로 발송을 안한 건수 |
| 481 | 495 |
|
| 496 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 497 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 482 | 498 |
try {
|
| 483 |
- |
|
| 484 |
- LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 485 |
- String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 486 | 499 |
|
| 487 | 500 |
if(userId == "") {
|
| 488 | 501 |
modelAndView.addObject("message", "로그인 후 이용이 가능합니다.");
|
... | ... | @@ -491,7 +504,9 @@ |
| 491 | 504 |
}else {
|
| 492 | 505 |
/** 카카오톡 전송 기본 설정 -------------------------------------------*/ |
| 493 | 506 |
kakaoVO.setSendType("AT");
|
| 507 |
+ kakaoVO.setMsgType("8");
|
|
| 494 | 508 |
kakaoVO.setUserId(userId); |
| 509 |
+ |
|
| 495 | 510 |
} |
| 496 | 511 |
|
| 497 | 512 |
/** 전송금액 설정 --------------------------------------------------*/ |
... | ... | @@ -709,6 +724,43 @@ |
| 709 | 724 |
modelAndView.addObject("result", "success");
|
| 710 | 725 |
modelAndView.addObject("resultSts", resultSts);
|
| 711 | 726 |
|
| 727 |
+ |
|
| 728 |
+/** 카카오톡 발송 내용 법인폰, 알림톡 결과 처리 --------------------------------------------------*/ |
|
| 729 |
+ try {
|
|
| 730 |
+ String adminSmsNoticeYn = "Y"; |
|
| 731 |
+ String spamStatus = kakaoVO.getAtSmishingYn(); // 스미싱 의심으로 체크된 고객 정보 |
|
| 732 |
+ |
|
| 733 |
+ UserManageVO userManageVO = new UserManageVO(); |
|
| 734 |
+ userManageVO.setMberId(userId); |
|
| 735 |
+ |
|
| 736 |
+ if(!userId.equals("")) {
|
|
| 737 |
+ userManageVO = userManageService.selectAdminSmsNoticeYn(userManageVO); |
|
| 738 |
+ adminSmsNoticeYn = userManageVO.getAdminSmsNoticeYn(); |
|
| 739 |
+ } |
|
| 740 |
+ |
|
| 741 |
+ //법인폰 알림 온 이거나 스미싱의심 문자인 경우 법인폰으로 발송 |
|
| 742 |
+ if(adminSmsNoticeYn.equals("Y") || spamStatus.equals("Y")) {
|
|
| 743 |
+ |
|
| 744 |
+ if(spamStatus.equals("Y")) {
|
|
| 745 |
+ kakaoVO.setAtDelayYn("Y");
|
|
| 746 |
+ } |
|
| 747 |
+ |
|
| 748 |
+ // 법인폰 알람여부 체크 |
|
| 749 |
+ JoinSettingVO joinSettingVO = new JoinSettingVO(); |
|
| 750 |
+ joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); |
|
| 751 |
+ |
|
| 752 |
+ // SLACK 체크 |
|
| 753 |
+ if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
|
| 754 |
+ //Slack으로 메세지 전송 처리 |
|
| 755 |
+ MjonCommon comm = new MjonCommon(); |
|
| 756 |
+// comm.getAdminKakaoAtSandSlack(kakaoVO); |
|
| 757 |
+ } |
|
| 758 |
+ } |
|
| 759 |
+ |
|
| 760 |
+ } catch (Exception e) {
|
|
| 761 |
+ throw new Exception("++++++++++++++++++++++ getAdminPhoneSendMsgData Error !!! " + e);
|
|
| 762 |
+ } |
|
| 763 |
+ |
|
| 712 | 764 |
return modelAndView; |
| 713 | 765 |
} |
| 714 | 766 |
} |
--- src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
+++ src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
... | ... | @@ -12,6 +12,7 @@ |
| 12 | 12 |
|
| 13 | 13 |
import com.mysql.jdbc.StringUtils; |
| 14 | 14 |
|
| 15 |
+import itn.let.kakao.kakaoComm.KakaoVO; |
|
| 15 | 16 |
import itn.let.mjo.msg.service.MjonMsgVO; |
| 16 | 17 |
|
| 17 | 18 |
@Service("MjonCommon")
|
... | ... | @@ -242,4 +243,63 @@ |
| 242 | 243 |
return mjonMsgVO; |
| 243 | 244 |
} |
| 244 | 245 |
|
| 246 |
+ @SuppressWarnings("unchecked")
|
|
| 247 |
+ public void getAdminKakaoAtSandSlack(KakaoVO kakaoVO) {
|
|
| 248 |
+ |
|
| 249 |
+ HttpClient client = new HttpClient(); |
|
| 250 |
+ PostMethod post = new PostMethod(url); |
|
| 251 |
+ JSONObject json = new JSONObject(); |
|
| 252 |
+ try {
|
|
| 253 |
+ |
|
| 254 |
+ String reserveYn = kakaoVO.getReserveYn(); |
|
| 255 |
+ String atDelayYn = kakaoVO.getAtDelayYn(); |
|
| 256 |
+ String smsTxt = kakaoVO.getTemplateContent(); |
|
| 257 |
+ String reservSmsTxt = ""; |
|
| 258 |
+ String smisingSmsTxt = ""; |
|
| 259 |
+ //예약문자를 발송하는 경우 문자 내용 앞에 "[예약]" 표시되도록 처리 |
|
| 260 |
+ if(reserveYn.equals("Y")) {
|
|
| 261 |
+ reservSmsTxt = "[예약]" + smsTxt; |
|
| 262 |
+ smsTxt = reservSmsTxt; |
|
| 263 |
+ }else if(atDelayYn.equals("Y")) {
|
|
| 264 |
+ |
|
| 265 |
+ smisingSmsTxt = "[스미싱의심]" + smsTxt; |
|
| 266 |
+ smsTxt = smisingSmsTxt; |
|
| 267 |
+ } |
|
| 268 |
+ |
|
| 269 |
+ String sandName = kakaoVO.getCallFrom(); |
|
| 270 |
+ String userId = kakaoVO.getUserId(); |
|
| 271 |
+ String msgType = ""; |
|
| 272 |
+ |
|
| 273 |
+ if(kakaoVO.getMsgType().equals("8")) {
|
|
| 274 |
+ msgType = "[알림톡]"; |
|
| 275 |
+ }else if(kakaoVO.getMsgType().equals("9")){
|
|
| 276 |
+ |
|
| 277 |
+ } |
|
| 278 |
+ sandName = "[" + userId + "]" + "[" + sandName + "]" + msgType; |
|
| 279 |
+ |
|
| 280 |
+ json.put("channel", "mjon메시지");
|
|
| 281 |
+ json.put("text", smsTxt);
|
|
| 282 |
+ json.put("username", sandName);
|
|
| 283 |
+ |
|
| 284 |
+ |
|
| 285 |
+ post.addParameter("payload", json.toString());
|
|
| 286 |
+ // 처음에 utf-8로 content-type안넣어주니까 한글은 깨져서 content-type넣어줌 |
|
| 287 |
+ post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
|
|
| 288 |
+ int responseCode = client.executeMethod(post); |
|
| 289 |
+ String response = post.getResponseBodyAsString(); |
|
| 290 |
+ if (responseCode != HttpStatus.SC_OK) {
|
|
| 291 |
+ System.out.println("Response: " + response);
|
|
| 292 |
+ } |
|
| 293 |
+ } catch (IllegalArgumentException e) {
|
|
| 294 |
+ System.out.println("IllegalArgumentException posting to Slack " + e);
|
|
| 295 |
+ } catch (IOException e) {
|
|
| 296 |
+ System.out.println("IOException posting to Slack " + e);
|
|
| 297 |
+ } catch (Exception e) {
|
|
| 298 |
+ System.out.println("Exception posting to Slack " + e);
|
|
| 299 |
+ } finally {
|
|
| 300 |
+ post.releaseConnection(); |
|
| 301 |
+ } |
|
| 302 |
+ |
|
| 303 |
+ } |
|
| 304 |
+ |
|
| 245 | 305 |
} |
--- src/main/java/itn/let/mjo/msg/service/MjonMsgService.java
+++ src/main/java/itn/let/mjo/msg/service/MjonMsgService.java
... | ... | @@ -198,6 +198,12 @@ |
| 198 | 198 |
//스팸 / 스미싱 지연 문자 즉시 발송처리 |
| 199 | 199 |
int updateMsgDelaySendRealTimeData(MjonResvMsgVO mjonResvMsgVO) throws Exception; |
| 200 | 200 |
|
| 201 |
+ //스팸 / 스미싱 지연 알림톡 발송 취소 처리 |
|
| 202 |
+ int deleteKakaoAtDelaySendCancelData(MjonResvMsgVO mjonResvMsgVO) throws Exception; |
|
| 203 |
+ |
|
| 204 |
+ //스팸 / 스미싱 지연 알림톡 즉시 발송처리 |
|
| 205 |
+ int updateKakaoAtDelaySendRealTimeData(MjonResvMsgVO mjonResvMsgVO) throws Exception; |
|
| 206 |
+ |
|
| 201 | 207 |
//문자 그룹아이디 리스트의 발송일자 정보 불러오기 |
| 202 | 208 |
List<MjonResvMsgVO> selectMsgGroupDataReqDateList(MjonResvMsgVO mjonResvMsgVO) throws Exception; |
| 203 | 209 |
|
... | ... | @@ -212,6 +218,7 @@ |
| 212 | 218 |
|
| 213 | 219 |
//카카오 발송 횟수 |
| 214 | 220 |
List<MjonMsgVO> selectWithKakaoSendTotCnt(MjonMsgVO mjonMsgVO) throws Exception; |
| 221 |
+ |
|
| 215 | 222 |
//문자 발송 횟수 |
| 216 | 223 |
List<MjonMsgVO> selectMsgSendTotCnt(MjonMsgVO mjonMsgVO) throws Exception; |
| 217 | 224 |
} |
--- src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
+++ src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
... | ... | @@ -354,6 +354,10 @@ |
| 354 | 354 |
private String delayYn; // 문자 30분 지연 처리 유무 |
| 355 | 355 |
private String delayCompleteYn; // 문자 30분 지연 처리 완료 유무 |
| 356 | 356 |
|
| 357 |
+ private String atDelayYn = "N"; // 알림 30분 지연 처리 유무 |
|
| 358 |
+ private String atDelayCompleteYn; // 알림톡 30분 지연 처리 완료 유무 |
|
| 359 |
+ private String atSmishingYn; // 알림톡 스메싱 여부 |
|
| 360 |
+ |
|
| 357 | 361 |
private int totalCallCnt; //수신자 전체 갯 |
| 358 | 362 |
|
| 359 | 363 |
private String bizLogCallStatus; //다우기술 biz_log 테이블의 발송결과 코드 값. |
... | ... | @@ -1375,5 +1379,22 @@ |
| 1375 | 1379 |
public void setAccessKey(String accessKey) {
|
| 1376 | 1380 |
this.accessKey = accessKey; |
| 1377 | 1381 |
} |
| 1378 |
- |
|
| 1382 |
+ public String getAtDelayYn() {
|
|
| 1383 |
+ return atDelayYn; |
|
| 1384 |
+ } |
|
| 1385 |
+ public void setAtDelayYn(String atDelayYn) {
|
|
| 1386 |
+ this.atDelayYn = atDelayYn; |
|
| 1387 |
+ } |
|
| 1388 |
+ public String getAtDelayCompleteYn() {
|
|
| 1389 |
+ return atDelayCompleteYn; |
|
| 1390 |
+ } |
|
| 1391 |
+ public void setAtDelayCompleteYn(String atDelayCompleteYn) {
|
|
| 1392 |
+ this.atDelayCompleteYn = atDelayCompleteYn; |
|
| 1393 |
+ } |
|
| 1394 |
+ public String getAtSmishingYn() {
|
|
| 1395 |
+ return atSmishingYn; |
|
| 1396 |
+ } |
|
| 1397 |
+ public void setAtSmishingYn(String atSmishingYn) {
|
|
| 1398 |
+ this.atSmishingYn = atSmishingYn; |
|
| 1399 |
+ } |
|
| 1379 | 1400 |
} |
--- src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java
+++ src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java
... | ... | @@ -431,6 +431,26 @@ |
| 431 | 431 |
update("mjonMsgDAO.updateMsgDelaySendRealTimeMsgGroupDataFlag", mjonMsgVO);
|
| 432 | 432 |
} |
| 433 | 433 |
|
| 434 |
+ // mj_msg_data 테이블 지연 알림톡 취소 값 수정 |
|
| 435 |
+ public void updateKakaoAtDelayCancelMsgDataFlag(MjonMsgVO mjonMsgVO) {
|
|
| 436 |
+ update("mjonMsgDAO.updateKakaoAtDelayCancelMsgDataFlag", mjonMsgVO);
|
|
| 437 |
+ } |
|
| 438 |
+ |
|
| 439 |
+ // mj_msg_group_data 테이블 지연 알림톡 취소 값 수정 |
|
| 440 |
+ public void updateKakaoAtDelayCancelMsgGroupDataFlag(MjonMsgVO mjonMsgVO) {
|
|
| 441 |
+ update("mjonMsgDAO.updateKakaoAtDelayCancelMsgGroupDataFlag", mjonMsgVO);
|
|
| 442 |
+ } |
|
| 443 |
+ |
|
| 444 |
+ // mj_msg_data 테이블 지연 알림톡 즉시발송 요청시간 수정 |
|
| 445 |
+ public void updateKakaoAtDelaySendRealTimeMsgDataFlag(MjonMsgVO mjonMsgVO) {
|
|
| 446 |
+ update("mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgDataFlag", mjonMsgVO);
|
|
| 447 |
+ } |
|
| 448 |
+ |
|
| 449 |
+ // mj_msg_group_data 테이블 지연 알림톡 즉시발송 요청시간 수정 |
|
| 450 |
+ public void updateKakaoAtDelaySendRealTimeMsgGroupDataFlag(MjonMsgVO mjonMsgVO) {
|
|
| 451 |
+ update("mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgGroupDataFlag", mjonMsgVO);
|
|
| 452 |
+ } |
|
| 453 |
+ |
|
| 434 | 454 |
//문자 그룹아이디 리스트의 발송일자 정보 불러오기 |
| 435 | 455 |
@SuppressWarnings("unchecked")
|
| 436 | 456 |
public List<MjonResvMsgVO> selectMsgGroupDataReqDateList(MjonResvMsgVO mjonResvMsgVO) throws Exception{
|
--- src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java
+++ src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java
... | ... | @@ -2,6 +2,7 @@ |
| 2 | 2 |
|
| 3 | 3 |
import java.text.SimpleDateFormat; |
| 4 | 4 |
import java.util.ArrayList; |
| 5 |
+import java.util.Calendar; |
|
| 5 | 6 |
import java.util.Date; |
| 6 | 7 |
import java.util.List; |
| 7 | 8 |
|
... | ... | @@ -17,6 +18,7 @@ |
| 17 | 18 |
import egovframework.rte.fdl.security.intercept.EgovReloadableFilterInvocationSecurityMetadataSource; |
| 18 | 19 |
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; |
| 19 | 20 |
import itn.com.cmm.LoginVO; |
| 21 |
+import itn.com.cmm.util.MJUtil; |
|
| 20 | 22 |
import itn.com.utl.fcc.service.EgovDateUtil; |
| 21 | 23 |
import itn.let.mjo.msg.service.MjPhoneMemberVO; |
| 22 | 24 |
import itn.let.mjo.msg.service.MjonMapAddressVO; |
... | ... | @@ -841,6 +843,121 @@ |
| 841 | 843 |
return resultSts; |
| 842 | 844 |
} |
| 843 | 845 |
|
| 846 |
+ //스팸 / 스미싱 지연 알림톡 발송 취소 처리 |
|
| 847 |
+ @Override |
|
| 848 |
+ public int deleteKakaoAtDelaySendCancelData(MjonResvMsgVO mjonResvMsgVO) throws Exception {
|
|
| 849 |
+ |
|
| 850 |
+ int resultSts = 0; |
|
| 851 |
+ |
|
| 852 |
+ try {
|
|
| 853 |
+ |
|
| 854 |
+ System.out.println("++++++++++++++++++ deleteKakaoAtDelaySendCancelData groupId ::: "+mjonResvMsgVO.getMsgGroupId());
|
|
| 855 |
+ //삭제 문자 건수 MSG_SEQ 번호 받아오기 |
|
| 856 |
+ List<MjonResvMsgVO> resultMsgSeqList = mjonReservMsgDAO.selectMsgSeqListByGroupId(mjonResvMsgVO); |
|
| 857 |
+ |
|
| 858 |
+ int size = resultMsgSeqList.size(); |
|
| 859 |
+ List<String> userDataList = new ArrayList<String>(); |
|
| 860 |
+ for(int i=0; i < size; i++) {
|
|
| 861 |
+ userDataList.add(resultMsgSeqList.get(i).getUserData()); |
|
| 862 |
+ System.out.println(resultMsgSeqList.get(i).getUserData()); |
|
| 863 |
+ } |
|
| 864 |
+ |
|
| 865 |
+ mjonResvMsgVO.setUserDataList(userDataList); |
|
| 866 |
+ |
|
| 867 |
+ |
|
| 868 |
+ //비즈뿌리오 딜레이 알림톡 삭제 |
|
| 869 |
+ resultSts = mjonReservMsgDAO.deleteBizMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 870 |
+ |
|
| 871 |
+ System.out.println("++++++++++++++++++++++++++++++ resultSts ::: "+resultSts);
|
|
| 872 |
+ |
|
| 873 |
+ //예약 취소 환불 처리 |
|
| 874 |
+ if(resultSts > 0) {
|
|
| 875 |
+ |
|
| 876 |
+ //그룹 데이터 정보 조회하기 |
|
| 877 |
+ MjonMsgVO mjonMsgVO = mjonMsgDAO.selectMsgGroupDataByGoupId(mjonResvMsgVO); |
|
| 878 |
+ |
|
| 879 |
+ //mj_msg_data 테이블 지연 문자 취소 값 수정 |
|
| 880 |
+ mjonMsgDAO.updateKakaoAtDelayCancelMsgDataFlag(mjonMsgVO); |
|
| 881 |
+ |
|
| 882 |
+ //mj_msg_group_data 테이블 예약 취소 값 수정 |
|
| 883 |
+ mjonMsgDAO.updateKakaoAtDelayCancelMsgGroupDataFlag(mjonMsgVO); |
|
| 884 |
+ |
|
| 885 |
+ |
|
| 886 |
+ //문자 발송 캐시 환불 해주기 |
|
| 887 |
+ MjonPayVO mjonPayVO = new MjonPayVO(); |
|
| 888 |
+ |
|
| 889 |
+ mjonPayVO.setCashId(idgenMjonCashId.getNextStringId()); |
|
| 890 |
+ mjonPayVO.setUserId(mjonMsgVO.getUserId()); |
|
| 891 |
+ mjonPayVO.setCash(Float.parseFloat(mjonMsgVO.getTotPrice())); |
|
| 892 |
+ mjonPayVO.setFrstRegisterId(mjonMsgVO.getUserId()); |
|
| 893 |
+ mjonPayVO.setMemo("스팸/스미싱 지연 알림톡 취소 " + resultSts + "건 환불");
|
|
| 894 |
+ mjonPayVO.setMsgGroupId(mjonMsgVO.getMsgGroupId()); |
|
| 895 |
+ |
|
| 896 |
+ mjonPayDAO.insertCash(mjonPayVO); //캐시 환불 |
|
| 897 |
+ mjonPayDAO.updateMemberCash(mjonPayVO); //회원정보 업데이트 |
|
| 898 |
+ |
|
| 899 |
+ } |
|
| 900 |
+ |
|
| 901 |
+ |
|
| 902 |
+ } catch (Exception e) {
|
|
| 903 |
+ System.out.println("+++++++++++++++++++++++++++++++++++ deleteMsgDelaySendCancelData ServiceImpl Error !!!! "+e);
|
|
| 904 |
+ } |
|
| 905 |
+ return resultSts; |
|
| 906 |
+ |
|
| 907 |
+ } |
|
| 908 |
+ |
|
| 909 |
+ //스팸 / 스미싱 지연 알림톡 즉시 발송처리 |
|
| 910 |
+ @Override |
|
| 911 |
+ public int updateKakaoAtDelaySendRealTimeData(MjonResvMsgVO mjonResvMsgVO) throws Exception {
|
|
| 912 |
+ |
|
| 913 |
+ int resultSts = 0; |
|
| 914 |
+ |
|
| 915 |
+ try {
|
|
| 916 |
+ boolean timeType = true; |
|
| 917 |
+ |
|
| 918 |
+ System.out.println("++++++++++++++++++ updateKakaoAtDelaySendRealTimeData groupId ::: "+mjonResvMsgVO.getMsgGroupId());
|
|
| 919 |
+ //삭제 문자 건수 MSG_SEQ 번호 받아오기 |
|
| 920 |
+ List<MjonResvMsgVO> resultMsgSeqList = mjonReservMsgDAO.selectMsgSeqListByGroupId(mjonResvMsgVO); |
|
| 921 |
+ |
|
| 922 |
+ int size = resultMsgSeqList.size(); |
|
| 923 |
+ List<String> userDataList = new ArrayList<String>(); |
|
| 924 |
+ for(int i=0; i < size; i++) {
|
|
| 925 |
+ userDataList.add(resultMsgSeqList.get(i).getUserData()); |
|
| 926 |
+ System.out.println(resultMsgSeqList.get(i).getUserData()); |
|
| 927 |
+ } |
|
| 928 |
+ mjonResvMsgVO.setUserDataList(userDataList); |
|
| 929 |
+ |
|
| 930 |
+ if(resultMsgSeqList.get(0).getReserveYn().equals("N")) {
|
|
| 931 |
+ // 즉시 발송시 |
|
| 932 |
+ //비즈뿌리오 딜레이문자 즉시발송 처리 |
|
| 933 |
+ resultSts = mjonReservMsgDAO.updateRealTimeBizMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 934 |
+ |
|
| 935 |
+ }else {
|
|
| 936 |
+ // 예약 발송시 |
|
| 937 |
+ //비즈뿌리오 딜레이문자 예약발송 처리 |
|
| 938 |
+ resultSts = mjonReservMsgDAO.updateReserveTimeBizMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 939 |
+ } |
|
| 940 |
+ |
|
| 941 |
+ System.out.println("++++++++++++++++++++++++++++++ resultSts ::: "+resultSts);
|
|
| 942 |
+ |
|
| 943 |
+ //발송 시간 수정(mj_msg_data, mj_msg_group_data) |
|
| 944 |
+ if(resultSts > 0) {
|
|
| 945 |
+ //그룹 데이터 정보 조회하기 |
|
| 946 |
+ MjonMsgVO mjonMsgVO = mjonMsgDAO.selectMsgGroupDataByGoupId(mjonResvMsgVO); |
|
| 947 |
+ //mj_msg_data 테이블 지연 문자 즉시발송 요청 값 수정 |
|
| 948 |
+ mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgDataFlag(mjonMsgVO); |
|
| 949 |
+ //mj_msg_group_data 테이블 즉시발송 요청 값 수정 |
|
| 950 |
+ mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgGroupDataFlag(mjonMsgVO); |
|
| 951 |
+ } |
|
| 952 |
+ |
|
| 953 |
+ } catch (Exception e) {
|
|
| 954 |
+ System.out.println("+++++++++++++++++++++++++++++++++++ updateMsgDelaySendRealTimeDataAjax ServiceImpl Error !!!! "+e);
|
|
| 955 |
+ } |
|
| 956 |
+ |
|
| 957 |
+ |
|
| 958 |
+ return resultSts; |
|
| 959 |
+ } |
|
| 960 |
+ |
|
| 844 | 961 |
//문자 그룹아이디 리스트의 발송일자 정보 불러오기 |
| 845 | 962 |
@Override |
| 846 | 963 |
public List<MjonResvMsgVO> selectMsgGroupDataReqDateList(MjonResvMsgVO mjonResvMsgVO) throws Exception{
|
--- src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
+++ src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
... | ... | @@ -3619,6 +3619,161 @@ |
| 3619 | 3619 |
} |
| 3620 | 3620 |
|
| 3621 | 3621 |
/** |
| 3622 |
+ * 스팸 및 스미싱 30분 지연알림톡 전송 취소 처리 |
|
| 3623 |
+ * @param mjonMsgVO |
|
| 3624 |
+ * @param model |
|
| 3625 |
+ * @return "/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do" |
|
| 3626 |
+ * @throws Exception |
|
| 3627 |
+ */ |
|
| 3628 |
+ @RequestMapping(value = {"/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do"})
|
|
| 3629 |
+ public ModelAndView deleteKakaoATDelaySendCancelDataAjax(MjonMsgVO mjonMsgVO) throws Exception {
|
|
| 3630 |
+ |
|
| 3631 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 3632 |
+ modelAndView.setViewName("jsonView");
|
|
| 3633 |
+ |
|
| 3634 |
+ String isStatus = ""; |
|
| 3635 |
+ String msg = ""; |
|
| 3636 |
+ |
|
| 3637 |
+ //로그인 정보 획득 |
|
| 3638 |
+ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); |
|
| 3639 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 3640 |
+ |
|
| 3641 |
+ if(userId.equals("")) {
|
|
| 3642 |
+ |
|
| 3643 |
+ modelAndView.addObject("isStatus", "loginFail");
|
|
| 3644 |
+ modelAndView.addObject("msg", "로그인이 필요합니다.");
|
|
| 3645 |
+ return modelAndView; |
|
| 3646 |
+ |
|
| 3647 |
+ } |
|
| 3648 |
+ |
|
| 3649 |
+ try {
|
|
| 3650 |
+ |
|
| 3651 |
+ MjonResvMsgVO mjonResvMsgVO = new MjonResvMsgVO(); |
|
| 3652 |
+ mjonResvMsgVO.setUserId(mjonMsgVO.getUserId());//회원 아이디 |
|
| 3653 |
+ |
|
| 3654 |
+ |
|
| 3655 |
+ String[] arrMsgGroupId = mjonMsgVO.getMsgGroupId().split(",");
|
|
| 3656 |
+ int resultSts = 0; |
|
| 3657 |
+ |
|
| 3658 |
+ //문자 발송요청일자 체크해주기 |
|
| 3659 |
+ boolean compareReqDate = getCompareReqDateList(arrMsgGroupId, mjonMsgVO.getUserId()); |
|
| 3660 |
+ |
|
| 3661 |
+ if(!compareReqDate) {
|
|
| 3662 |
+ |
|
| 3663 |
+ modelAndView.addObject("isStatus", "dateFail");
|
|
| 3664 |
+ modelAndView.addObject("msg", "발송시간이 지난 문자가 있습니다. 문자 발송예정 시간을 확인해 주세요.");
|
|
| 3665 |
+ return modelAndView; |
|
| 3666 |
+ } |
|
| 3667 |
+ |
|
| 3668 |
+ for(String temp : arrMsgGroupId) {
|
|
| 3669 |
+ |
|
| 3670 |
+ mjonResvMsgVO.setMsgGroupId(temp);//취소 문자 그룹 아이디 |
|
| 3671 |
+ int count = mjonMsgService.deleteKakaoAtDelaySendCancelData(mjonResvMsgVO); |
|
| 3672 |
+ |
|
| 3673 |
+ resultSts = resultSts + count; |
|
| 3674 |
+ |
|
| 3675 |
+ } |
|
| 3676 |
+ |
|
| 3677 |
+ if(resultSts > 0) {
|
|
| 3678 |
+ |
|
| 3679 |
+ modelAndView.addObject("isStatus", "success");
|
|
| 3680 |
+ modelAndView.addObject("msg", "발송취소가 정상적으로 처리되었습니다.");
|
|
| 3681 |
+ |
|
| 3682 |
+ }else {
|
|
| 3683 |
+ |
|
| 3684 |
+ modelAndView.addObject("isStatus", "fail");
|
|
| 3685 |
+ modelAndView.addObject("msg", "발송취소에 오류가 발생하였습니다.");
|
|
| 3686 |
+ } |
|
| 3687 |
+ |
|
| 3688 |
+ } catch (Exception e) {
|
|
| 3689 |
+ System.out.println("+++++++++++++++++++++++++++++++++++ deleteKakaoATDelaySendCancelDataAjax Controller Error !!!! "+e);
|
|
| 3690 |
+ modelAndView.addObject("isStatus", "fail");
|
|
| 3691 |
+ modelAndView.addObject("msg", "오류가 발생하였습니다.");
|
|
| 3692 |
+ return modelAndView; |
|
| 3693 |
+ } |
|
| 3694 |
+ return modelAndView; |
|
| 3695 |
+ } |
|
| 3696 |
+ |
|
| 3697 |
+ |
|
| 3698 |
+ /** |
|
| 3699 |
+ * 스팸 및 스미싱 30분 지연알림톡 즉시 전송 처리 |
|
| 3700 |
+ * @param mjonMsgVO |
|
| 3701 |
+ * @param model |
|
| 3702 |
+ * @return "/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do" |
|
| 3703 |
+ * @throws Exception |
|
| 3704 |
+ */ |
|
| 3705 |
+ @RequestMapping(value = {"/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do"})
|
|
| 3706 |
+ public ModelAndView updateKakaoATDelaySendRealTimeDataAjax(MjonMsgVO mjonMsgVO) throws Exception {
|
|
| 3707 |
+ |
|
| 3708 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 3709 |
+ modelAndView.setViewName("jsonView");
|
|
| 3710 |
+ |
|
| 3711 |
+ String isStatus = ""; |
|
| 3712 |
+ String msg = ""; |
|
| 3713 |
+ |
|
| 3714 |
+ //로그인 정보 획득 |
|
| 3715 |
+ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); |
|
| 3716 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 3717 |
+ |
|
| 3718 |
+ if(userId.equals("")) {
|
|
| 3719 |
+ |
|
| 3720 |
+ modelAndView.addObject("isStatus", "loginFail");
|
|
| 3721 |
+ modelAndView.addObject("msg", "로그인이 필요합니다.");
|
|
| 3722 |
+ return modelAndView; |
|
| 3723 |
+ |
|
| 3724 |
+ } |
|
| 3725 |
+ |
|
| 3726 |
+ try {
|
|
| 3727 |
+ |
|
| 3728 |
+ MjonResvMsgVO mjonResvMsgVO = new MjonResvMsgVO(); |
|
| 3729 |
+ mjonResvMsgVO.setUserId(mjonMsgVO.getUserId());//회원 아이디 |
|
| 3730 |
+ |
|
| 3731 |
+ String[] arrMsgGroupId = mjonMsgVO.getMsgGroupId().split(",");
|
|
| 3732 |
+ int resultSts = 0; |
|
| 3733 |
+ |
|
| 3734 |
+ //문자 발송요청일자 체크해주기 |
|
| 3735 |
+ boolean compareReqDate = getCompareReqDateList(arrMsgGroupId, mjonMsgVO.getUserId()); |
|
| 3736 |
+ |
|
| 3737 |
+ if(!compareReqDate) {
|
|
| 3738 |
+ |
|
| 3739 |
+ modelAndView.addObject("isStatus", "dateFail");
|
|
| 3740 |
+ modelAndView.addObject("msg", "발송시간이 지난 문자가 있습니다. 문자 발송예정 시간을 확인해 주세요.");
|
|
| 3741 |
+ return modelAndView; |
|
| 3742 |
+ } |
|
| 3743 |
+ |
|
| 3744 |
+ for(String temp : arrMsgGroupId) {
|
|
| 3745 |
+ |
|
| 3746 |
+ mjonResvMsgVO.setMsgGroupId(temp);//취소 문자 그룹 아이디 |
|
| 3747 |
+ |
|
| 3748 |
+ //문자 발송 지연 데이터 즉시 발송처리 |
|
| 3749 |
+ int count = mjonMsgService.updateKakaoAtDelaySendRealTimeData(mjonResvMsgVO); |
|
| 3750 |
+ |
|
| 3751 |
+ resultSts = resultSts + count; |
|
| 3752 |
+ |
|
| 3753 |
+ } |
|
| 3754 |
+ |
|
| 3755 |
+ if(resultSts > 0) {
|
|
| 3756 |
+ |
|
| 3757 |
+ modelAndView.addObject("isStatus", "success");
|
|
| 3758 |
+ modelAndView.addObject("msg", "즉시 발송 처리가 완료되었습니다.");
|
|
| 3759 |
+ |
|
| 3760 |
+ }else {
|
|
| 3761 |
+ |
|
| 3762 |
+ modelAndView.addObject("isStatus", "fail");
|
|
| 3763 |
+ modelAndView.addObject("msg", "즉시 발송 처리에 오류가 발생하였습니다.");
|
|
| 3764 |
+ } |
|
| 3765 |
+ |
|
| 3766 |
+ } catch (Exception e) {
|
|
| 3767 |
+ System.out.println("+++++++++++++++++++++++++++++++++++ updateKakaoATDelaySendRealTimeDataAjax Controller Error !!!! "+e);
|
|
| 3768 |
+ modelAndView.addObject("isStatus", "fail");
|
|
| 3769 |
+ modelAndView.addObject("msg", "오류가 발생하였습니다.");
|
|
| 3770 |
+ return modelAndView; |
|
| 3771 |
+ } |
|
| 3772 |
+ |
|
| 3773 |
+ return modelAndView; |
|
| 3774 |
+ } |
|
| 3775 |
+ |
|
| 3776 |
+ /** |
|
| 3622 | 3777 |
* 전송사 발송 통계 |
| 3623 | 3778 |
* @param |
| 3624 | 3779 |
* @param |
--- src/main/java/itn/let/mjo/reservmsg/service/MjonResvMsgVO.java
+++ src/main/java/itn/let/mjo/reservmsg/service/MjonResvMsgVO.java
... | ... | @@ -29,6 +29,7 @@ |
| 29 | 29 |
private String fileCnt; //첨부 이미지 갯수 - 0: 장문, 1 이상은 그림문자 |
| 30 | 30 |
private String totMsgCnt; //전체 전송문자 갯수 |
| 31 | 31 |
private String curState; //전송 처리 결과값 |
| 32 |
+ private String reserveYn; //예약 여부 |
|
| 32 | 33 |
private String reserveCYn; //예약 취소 여부 |
| 33 | 34 |
private String filePath1; //그림 이미지 1 |
| 34 | 35 |
private String filePath2; //그림 이미지 2 |
... | ... | @@ -290,5 +291,10 @@ |
| 290 | 291 |
public void setStrReqDate(String strReqDate) {
|
| 291 | 292 |
this.strReqDate = strReqDate; |
| 292 | 293 |
} |
| 293 |
- |
|
| 294 |
+ public String getReserveYn() {
|
|
| 295 |
+ return reserveYn; |
|
| 296 |
+ } |
|
| 297 |
+ public void setReserveYn(String reserveYn) {
|
|
| 298 |
+ this.reserveYn = reserveYn; |
|
| 299 |
+ } |
|
| 294 | 300 |
} |
--- src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java
+++ src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java
... | ... | @@ -277,4 +277,15 @@ |
| 277 | 277 |
|
| 278 | 278 |
return update("MjonReservMsgDAO.updateRealTimeJJB02MsgSeqListByMsgSeq", mjonResvMsgVO);
|
| 279 | 279 |
} |
| 280 |
+ |
|
| 281 |
+ /** |
|
| 282 |
+ * @Method Name : updateReserveTimeBizMsgSeqListByMsgSeq |
|
| 283 |
+ * @작성일 : 2023. 07. 06. |
|
| 284 |
+ * @작성자 : WYD |
|
| 285 |
+ * @Method 설명 : 비즈뿌리오 지연처리 문자 예약 발송 |
|
| 286 |
+ */ |
|
| 287 |
+ public int updateReserveTimeBizMsgSeqListByMsgSeq(MjonResvMsgVO mjonResvMsgVO) {
|
|
| 288 |
+ |
|
| 289 |
+ return update("MjonReservMsgDAO.updateReserveTimeBizMsgSeqListByMsgSeq", mjonResvMsgVO);
|
|
| 290 |
+ } |
|
| 280 | 291 |
} |
--- src/main/java/itn/let/mjo/test/web/TestController.java
+++ src/main/java/itn/let/mjo/test/web/TestController.java
... | ... | @@ -1157,21 +1157,10 @@ |
| 1157 | 1157 |
|
| 1158 | 1158 |
try {
|
| 1159 | 1159 |
|
| 1160 |
- LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 1161 |
- userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 1162 |
- |
|
| 1163 |
- |
|
| 1164 |
- // api인지 확인 |
|
| 1165 |
- ApiKeyVO apiKeyVO = new ApiKeyVO(); |
|
| 1166 |
- apiKeyVO.setAccessKey(mjonMsgVO.getAccessKey()); |
|
| 1167 |
- List<ApiKeyVO> resultList = apiKeyMngService.selectCheckApiKeyDup(apiKeyVO); |
|
| 1168 |
- |
|
| 1169 |
- if(resultList.size() >= 1) {
|
|
| 1170 |
- userId = resultList.get(0).getMberId(); |
|
| 1171 |
- } |
|
| 1172 |
- |
|
| 1160 |
+// LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 1161 |
+// userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 1173 | 1162 |
|
| 1174 |
- |
|
| 1163 |
+ userId = mjonMsgVO.getMberId(); |
|
| 1175 | 1164 |
if(userId.equals("")) {
|
| 1176 | 1165 |
|
| 1177 | 1166 |
modelAndView.addObject("message", "로그인 후 이용이 가능합니다.");
|
... | ... | @@ -1388,6 +1377,9 @@ |
| 1388 | 1377 |
|
| 1389 | 1378 |
} |
| 1390 | 1379 |
|
| 1380 |
+ // 토탈금액 "," 리플레이스 처리 |
|
| 1381 |
+ mjonMsgVO.setTotPrice(mjonMsgVO.getTotPrice().replaceAll(",", ""));
|
|
| 1382 |
+ |
|
| 1391 | 1383 |
float tmpOrgEachPrice = Float.parseFloat(mjonMsgVO.getEachPrice()); |
| 1392 | 1384 |
float tmpOrgTotPrice = Float.parseFloat(mjonMsgVO.getTotPrice()); |
| 1393 | 1385 |
|
... | ... | @@ -1517,8 +1509,6 @@ |
| 1517 | 1509 |
shortMsgVO = mjonMsgVO; |
| 1518 | 1510 |
longMsgVO = mjonMsgVO; |
| 1519 | 1511 |
imgMsgVO = mjonMsgVO; |
| 1520 |
- System.out.println("shortMsgVO :: "+ shortMsgVO.getsPrice());
|
|
| 1521 |
- System.out.println("mjonMsgVO :: "+ mjonMsgVO.getsPrice());
|
|
| 1522 | 1512 |
|
| 1523 | 1513 |
int shortMsgCnt = Integer.parseInt(mjonMsgVO.getShortMsgCnt()); |
| 1524 | 1514 |
int longMsgCnt = Integer.parseInt(mjonMsgVO.getLongMsgCnt()); |
... | ... | @@ -1768,7 +1758,14 @@ |
| 1768 | 1758 |
imgMsgVO.setRep4List(imgRep4); |
| 1769 | 1759 |
|
| 1770 | 1760 |
//개별단가 계산하기 |
| 1771 |
- String eachPrice = shortMsgVO.getsPrice(); |
|
| 1761 |
+ String eachPrice = imgMsgVO.getpPrice(); |
|
| 1762 |
+ |
|
| 1763 |
+ //api 서버에서 pPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가 |
|
| 1764 |
+ if(eachPrice == null) {
|
|
| 1765 |
+ |
|
| 1766 |
+ eachPrice = imgMsgVO.getEachPrice(); |
|
| 1767 |
+ |
|
| 1768 |
+ } |
|
| 1772 | 1769 |
|
| 1773 | 1770 |
/** |
| 1774 | 1771 |
* 그림문자에 치환 내용이 포함되어 있는 경우 단가 계산하기. |
... | ... | @@ -1813,9 +1810,12 @@ |
| 1813 | 1810 |
|
| 1814 | 1811 |
//개별단가 계산하기 |
| 1815 | 1812 |
String eachPrice = shortMsgVO.getsPrice(); |
| 1816 |
- if(StringUtils.isEmpty(eachPrice)) |
|
| 1817 |
- {
|
|
| 1813 |
+ |
|
| 1814 |
+ //api 서버에서 sPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가 |
|
| 1815 |
+ if(eachPrice == null) {
|
|
| 1816 |
+ |
|
| 1818 | 1817 |
eachPrice = shortMsgVO.getEachPrice(); |
| 1818 |
+ |
|
| 1819 | 1819 |
} |
| 1820 | 1820 |
|
| 1821 | 1821 |
/** |
... | ... | @@ -1845,7 +1845,6 @@ |
| 1845 | 1845 |
shortMsgVO.setMsgType("4");
|
| 1846 | 1846 |
} |
| 1847 | 1847 |
|
| 1848 |
- System.out.println("shortMsgVO.getEachPrice() :: "+ shortMsgVO.getEachPrice());
|
|
| 1849 | 1848 |
//총금액 계산하기 |
| 1850 | 1849 |
Float sTotPrice = Float.parseFloat(shortMsgVO.getEachPrice()) * shortCnt; |
| 1851 | 1850 |
shortMsgVO.setTotPrice(sTotPrice.toString()); |
... | ... | @@ -1870,6 +1869,13 @@ |
| 1870 | 1869 |
* */ |
| 1871 | 1870 |
|
| 1872 | 1871 |
String eachPrice = longMsgVO.getmPrice(); |
| 1872 |
+ |
|
| 1873 |
+ //api 서버에서 mPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가 |
|
| 1874 |
+ if(eachPrice == null) {
|
|
| 1875 |
+ |
|
| 1876 |
+ eachPrice = longMsgVO.getEachPrice(); |
|
| 1877 |
+ |
|
| 1878 |
+ } |
|
| 1873 | 1879 |
|
| 1874 | 1880 |
if(fileCount > 2) {//그림 이미지가 3개
|
| 1875 | 1881 |
|
... | ... | @@ -2001,9 +2007,7 @@ |
| 2001 | 2007 |
}else {
|
| 2002 | 2008 |
|
| 2003 | 2009 |
//문자발송 함수 호출 - 일괄변환이 없거나, 그림문자 일괄변환의 경우 한번에 전송 처리 |
| 2004 |
- System.out.println("???????");
|
|
| 2005 | 2010 |
modelAndView = fncSendMsg(mjonMsgVO); |
| 2006 |
- System.out.println("!!!!!!!!!!!!");
|
|
| 2007 | 2011 |
|
| 2008 | 2012 |
} |
| 2009 | 2013 |
|
... | ... | @@ -2060,16 +2064,13 @@ |
| 2060 | 2064 |
// 법인폰 알람여부 체크 |
| 2061 | 2065 |
JoinSettingVO joinSettingVO = new JoinSettingVO(); |
| 2062 | 2066 |
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); |
| 2063 |
- // SMS 체크 |
|
| 2064 |
- if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
|
| 2065 |
-// getAdminPhoneSendMsgData(mjonMsgVO); |
|
| 2066 |
- } |
|
| 2067 | 2067 |
|
| 2068 | 2068 |
// SLACK 체크 |
| 2069 | 2069 |
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
| 2070 | 2070 |
//Slack으로 메세지 전송 처리 |
| 2071 | 2071 |
MjonCommon comm = new MjonCommon(); |
| 2072 |
- comm.getAdminSandSlack(mjonMsgVO); |
|
| 2072 |
+ System.out.println("slack noti");
|
|
| 2073 |
+// comm.getAdminSandSlack(mjonMsgVO); |
|
| 2073 | 2074 |
} |
| 2074 | 2075 |
} |
| 2075 | 2076 |
|
... | ... | @@ -2079,11 +2080,6 @@ |
| 2079 | 2080 |
} |
| 2080 | 2081 |
|
| 2081 | 2082 |
return modelAndView; |
| 2082 |
- |
|
| 2083 |
- |
|
| 2084 |
- |
|
| 2085 |
- |
|
| 2086 |
- |
|
| 2087 | 2083 |
} |
| 2088 | 2084 |
/** |
| 2089 | 2085 |
* 문자발송시 치환문자가 있거나 단문, 장문 일경우 타는 로직 |
--- src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
+++ src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
... | ... | @@ -1366,7 +1366,7 @@ |
| 1366 | 1366 |
|
| 1367 | 1367 |
/* |
| 1368 | 1368 |
* 알림톡/친구톡 최근 발송내역 리스트 불러오기 |
| 1369 |
- * */ |
|
| 1369 |
+ */ |
|
| 1370 | 1370 |
|
| 1371 | 1371 |
KakaoVO sendKakaoVO = new KakaoVO(); |
| 1372 | 1372 |
sendKakaoVO.setSearchCondition2("N");//예약건은 제외하기
|
... | ... | @@ -1380,35 +1380,38 @@ |
| 1380 | 1380 |
List<KakaoVO> kakaoResultList = new ArrayList<KakaoVO>(); |
| 1381 | 1381 |
kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(sendKakaoVO); |
| 1382 | 1382 |
|
| 1383 |
- model.addAttribute("kakaoResultList", kakaoResultList);
|
|
| 1383 |
+ model.addAttribute("kakaoResultList", kakaoResultList);
|
|
| 1384 | 1384 |
|
| 1385 | 1385 |
/* |
| 1386 | 1386 |
* 알림톡/친구톡 예약발송 리스트 불러오기 |
| 1387 |
- * */ |
|
| 1388 |
- |
|
| 1389 |
- KakaoVO reserveKakaoVO = new KakaoVO(); |
|
| 1390 |
- reserveKakaoVO.setSearchCondition2("Y");//예약건만 불러오기
|
|
| 1391 |
- reserveKakaoVO.setReserveCYn("N");//예약취소건은 제외하기
|
|
| 1392 |
- reserveKakaoVO.setUserId(reqMberManageVO.getMberId()); |
|
| 1387 |
+ */ |
|
| 1388 |
+ |
|
| 1389 |
+ KakaoVO reserveKakaoVO = new KakaoVO(); |
|
| 1390 |
+ reserveKakaoVO.setSearchCondition2("Y");//예약건만 불러오기
|
|
| 1391 |
+ reserveKakaoVO.setReserveCYn("N");//예약취소건은 제외하기
|
|
| 1392 |
+ reserveKakaoVO.setUserId(reqMberManageVO.getMberId()); |
|
| 1393 | 1393 |
// 문자발송 완료건은 모두 보이도록 처리 |
| 1394 | 1394 |
//kakaoVO.setMsgType("8");
|
| 1395 |
- reserveKakaoVO.setSearchSortCnd("reqDate");
|
|
| 1396 |
- reserveKakaoVO.setSearchSortOrd("desc");
|
|
| 1397 |
- reserveKakaoVO.setFirstIndex(0); |
|
| 1395 |
+ reserveKakaoVO.setSearchSortCnd("reqDate");
|
|
| 1396 |
+ reserveKakaoVO.setSearchSortOrd("desc");
|
|
| 1397 |
+ reserveKakaoVO.setFirstIndex(0); |
|
| 1398 | 1398 |
List<KakaoVO> kakaoReserveList = new ArrayList<KakaoVO>(); |
| 1399 | 1399 |
kakaoReserveList = mjonKakaoATService.selectReserveMjonKakaoATGroupList(reserveKakaoVO); |
| 1400 | 1400 |
|
| 1401 |
- model.addAttribute("kakaoReserveList", kakaoReserveList);
|
|
| 1401 |
+ model.addAttribute("kakaoReserveList", kakaoReserveList);
|
|
| 1402 |
+ |
|
| 1402 | 1403 |
|
| 1403 | 1404 |
/* |
| 1404 |
- * 팩스 발송 내역 리스트 불러오기 |
|
| 1405 |
- * */ |
|
| 1406 |
- |
|
| 1405 |
+ * 알림톡 지연처리 알림톡 내용 불러오기(30분 지연처리된 알림톡 내역 불러오기) |
|
| 1406 |
+ */ |
|
| 1407 |
+ List<KakaoVO> kakaoATDelaySentList = mjonKakaoATService.selectKakaoATDelaySentList(reqMberManageVO.getMberId()); |
|
| 1408 |
+ |
|
| 1409 |
+ model.addAttribute("kakaoATDelaySentList", kakaoATDelaySentList);
|
|
| 1410 |
+ } |
|
| 1411 |
+ |
|
| 1412 |
+ {//팩스 발송 내역 리스트 불러오기
|
|
| 1407 | 1413 |
List<FaxGroupDataVO> faxSendListVO = faxService.selectFaxMainList(new FaxGroupDataVO(reqMberManageVO.getMberId())); |
| 1408 | 1414 |
model.addAttribute("faxSendListVO", faxSendListVO);
|
| 1409 |
- |
|
| 1410 |
- //} |
|
| 1411 |
- |
|
| 1412 | 1415 |
} |
| 1413 | 1416 |
|
| 1414 | 1417 |
{//사용중인 전송사 정보 조회하기 - 사용자 전용 전송사 리스트 표시용
|
--- src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml
... | ... | @@ -348,6 +348,8 @@ |
| 348 | 348 |
M2.yellowId , |
| 349 | 349 |
M2.userNm , |
| 350 | 350 |
M2.atSmishingYn , |
| 351 |
+ M2.atDelayCompleteYn, |
|
| 352 |
+ M2.atDelayYn, |
|
| 351 | 353 |
( SELECT COUNT(0) |
| 352 | 354 |
FROM MJ_MSG_DATA C |
| 353 | 355 |
WHERE C.DEL_FLAG = 'N' |
... | ... | @@ -451,46 +453,49 @@ |
| 451 | 453 |
MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey , |
| 452 | 454 |
MKPI.YELLOW_ID AS yellowId , |
| 453 | 455 |
LTM.MBER_NM AS userNm , |
| 454 |
- LTM.AT_SMISHING_YN AS atSmishingYn, |
|
| 456 |
+ LTM.AT_SMISHING_YN AS atSmishingYn, |
|
| 455 | 457 |
BIZ_UMID AS bizUmid, |
| 456 | 458 |
BL.CALL_STATUS AS callStatus, |
| 457 |
- M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn |
|
| 458 |
- FROM ( |
|
| 459 |
- SELECT MG.USER_ID , |
|
| 460 |
- MG.MSG_GROUP_ID , |
|
| 461 |
- MG.MSG_GROUP_CNT , |
|
| 462 |
- MG.SMS_TXT , |
|
| 463 |
- MG.SUBJECT , |
|
| 464 |
- MG.REGDATE , |
|
| 465 |
- MG.REQ_DATE , |
|
| 466 |
- MD.RSLT_DATE , |
|
| 467 |
- MG.CALL_FROM , |
|
| 468 |
- MG.TOT_PRICE , |
|
| 469 |
- MG.EACH_PRICE , |
|
| 470 |
- MG.DEL_FLAG , |
|
| 471 |
- MG.MSG_TYPE , |
|
| 472 |
- MG.FILE_CNT , |
|
| 473 |
- MG.AGENT_CODE , |
|
| 474 |
- MG.RESERVE_YN , |
|
| 475 |
- MG.RESERVE_C_YN , |
|
| 476 |
- MG.CANCELDATE , |
|
| 477 |
- MD.MSG_SEQ , |
|
| 478 |
- MD.CALL_TO , |
|
| 479 |
- MD.CUR_STATE , |
|
| 480 |
- MD.RSLT_CODE , |
|
| 481 |
- MD.RSLT_CODE2 , |
|
| 482 |
- CASE |
|
| 459 |
+ M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn, |
|
| 460 |
+ M.AT_DELAY_COMPLETE_YN AS atDelayCompleteYn, |
|
| 461 |
+ M.AT_DELAY_YN AS atDelayYn |
|
| 462 |
+ FROM |
|
| 463 |
+ (SELECT |
|
| 464 |
+ MG.USER_ID |
|
| 465 |
+ , MG.MSG_GROUP_ID |
|
| 466 |
+ , MG.MSG_GROUP_CNT |
|
| 467 |
+ , MG.SMS_TXT |
|
| 468 |
+ , MG.SUBJECT |
|
| 469 |
+ , MG.REGDATE |
|
| 470 |
+ , MG.REQ_DATE |
|
| 471 |
+ , MD.RSLT_DATE |
|
| 472 |
+ , MG.CALL_FROM |
|
| 473 |
+ , MG.TOT_PRICE |
|
| 474 |
+ , MG.EACH_PRICE |
|
| 475 |
+ , MG.DEL_FLAG |
|
| 476 |
+ , MG.MSG_TYPE |
|
| 477 |
+ , MG.FILE_CNT |
|
| 478 |
+ , MG.AGENT_CODE |
|
| 479 |
+ , MG.RESERVE_YN |
|
| 480 |
+ , MG.RESERVE_C_YN |
|
| 481 |
+ , MG.CANCELDATE |
|
| 482 |
+ , MD.MSG_SEQ |
|
| 483 |
+ , MD.CALL_TO |
|
| 484 |
+ , MD.CUR_STATE |
|
| 485 |
+ , MD.RSLT_CODE |
|
| 486 |
+ , MD.RSLT_CODE2 |
|
| 487 |
+ , CASE |
|
| 483 | 488 |
WHEN MG.MSG_TYPE = '8' |
| 484 | 489 |
THEN '알림톡' |
| 485 | 490 |
WHEN MG.MSG_TYPE = '9' |
| 486 | 491 |
THEN '친구톡' |
| 487 |
- END msgTypeName , |
|
| 488 |
- CASE |
|
| 492 |
+ END msgTypeName |
|
| 493 |
+ , CASE |
|
| 489 | 494 |
WHEN MG.MSG_TYPE = '8' |
| 490 | 495 |
THEN '1' |
| 491 | 496 |
ELSE '2' |
| 492 |
- END orderByCode , |
|
| 493 |
- ( |
|
| 497 |
+ END orderByCode |
|
| 498 |
+ , ( |
|
| 494 | 499 |
CASE |
| 495 | 500 |
WHEN MD.RSLT_CODE = '7000' |
| 496 | 501 |
THEN 'S' |
... | ... | @@ -498,18 +503,24 @@ |
| 498 | 503 |
THEN 'W' |
| 499 | 504 |
ELSE 'F' |
| 500 | 505 |
END |
| 501 |
- ) AS result , |
|
| 502 |
- MSG_NOTICETALK_SENDER_KEY , |
|
| 503 |
- MSG_NOTICETALK_TMP_KEY, |
|
| 504 |
- MD.BIZ_UMID, |
|
| 505 |
- MD.BIZ_KAKAO_RESEND_YN |
|
| 506 |
- FROM MJ_MSG_DATA MD , |
|
| 507 |
- MJ_MSG_GROUP_DATA MG |
|
| 508 |
- WHERE MD.MSG_GROUP_ID = MG.MSG_GROUP_ID |
|
| 506 |
+ ) AS result |
|
| 507 |
+ , MSG_NOTICETALK_SENDER_KEY |
|
| 508 |
+ , MSG_NOTICETALK_TMP_KEY |
|
| 509 |
+ , MD.BIZ_UMID |
|
| 510 |
+ , MD.BIZ_KAKAO_RESEND_YN |
|
| 511 |
+ , MG.AT_DELAY_COMPLETE_YN |
|
| 512 |
+ , MG.AT_DELAY_YN |
|
| 513 |
+ FROM |
|
| 514 |
+ MJ_MSG_DATA MD |
|
| 515 |
+ , MJ_MSG_GROUP_DATA MG |
|
| 516 |
+ WHERE 1=1 |
|
| 517 |
+ AND MD.MSG_GROUP_ID = MG.MSG_GROUP_ID |
|
| 509 | 518 |
AND IFNULL(MG.DEL_FLAG, 'N') = 'N' |
| 510 | 519 |
AND MD.DEL_FLAG = 'N' |
| 511 | 520 |
<!-- JSPark 2023.03.24 알림톡 전송완료 목록은 (즉시 + 예약 발송완료) 노출 --> |
| 512 |
- <![CDATA[ AND MG.REQ_DATE <= NOW() ]]> |
|
| 521 |
+ <![CDATA[ |
|
| 522 |
+ AND MG.REQ_DATE <= DATE_ADD(NOW(), INTERVAL 60 MINUTE) |
|
| 523 |
+ ]]> |
|
| 513 | 524 |
<isNotEmpty property="userId"> |
| 514 | 525 |
AND MG.USER_ID = #userId# |
| 515 | 526 |
</isNotEmpty> |
... | ... | @@ -1058,6 +1069,9 @@ |
| 1058 | 1069 |
M2.msgNoticetalkTmpKey , |
| 1059 | 1070 |
M2.yellowId , |
| 1060 | 1071 |
M2.userNm , |
| 1072 |
+ M2.atSmishingYn, |
|
| 1073 |
+ M2.atDelayCompleteYn, |
|
| 1074 |
+ M2.atDelayYn, |
|
| 1061 | 1075 |
( SELECT COUNT(0) |
| 1062 | 1076 |
FROM MJ_MSG_DATA C |
| 1063 | 1077 |
WHERE C.DEL_FLAG = 'N' |
... | ... | @@ -1158,12 +1172,15 @@ |
| 1158 | 1172 |
orderByCode AS orderByCode , |
| 1159 | 1173 |
RESULT AS msgResult , |
| 1160 | 1174 |
MSG_NOTICETALK_SENDER_KEY AS msgNoticetalkSenderKey , |
| 1161 |
- MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey , |
|
| 1162 |
- MKPI.YELLOW_ID AS yellowId , |
|
| 1163 |
- LTM.MBER_NM AS userNm , |
|
| 1175 |
+ MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey , |
|
| 1176 |
+ MKPI.YELLOW_ID AS yellowId , |
|
| 1177 |
+ LTM.MBER_NM AS userNm , |
|
| 1178 |
+ LTM.AT_SMISHING_YN AS atSmishingYn, |
|
| 1164 | 1179 |
BIZ_UMID AS bizUmid, |
| 1165 | 1180 |
BL.CALL_STATUS AS callStatus, |
| 1166 |
- M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn |
|
| 1181 |
+ M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn, |
|
| 1182 |
+ M.AT_DELAY_COMPLETE_YN AS atDelayCompleteYn, |
|
| 1183 |
+ M.AT_DELAY_YN AS atDelayYn |
|
| 1167 | 1184 |
FROM ( |
| 1168 | 1185 |
SELECT MG.USER_ID , |
| 1169 | 1186 |
MG.MSG_GROUP_ID , |
... | ... | @@ -1207,16 +1224,19 @@ |
| 1207 | 1224 |
THEN 'W' |
| 1208 | 1225 |
ELSE 'F' |
| 1209 | 1226 |
END |
| 1210 |
- ) AS result , |
|
| 1211 |
- MSG_NOTICETALK_SENDER_KEY , |
|
| 1212 |
- MSG_NOTICETALK_TMP_KEY, |
|
| 1213 |
- MD.BIZ_UMID, |
|
| 1214 |
- MD.BIZ_KAKAO_RESEND_YN |
|
| 1227 |
+ ) AS result |
|
| 1228 |
+ , MSG_NOTICETALK_SENDER_KEY |
|
| 1229 |
+ , MSG_NOTICETALK_TMP_KEY |
|
| 1230 |
+ , MD.BIZ_UMID |
|
| 1231 |
+ , MD.BIZ_KAKAO_RESEND_YN |
|
| 1232 |
+ , MG.AT_DELAY_COMPLETE_YN |
|
| 1233 |
+ , MG.AT_DELAY_YN |
|
| 1215 | 1234 |
FROM MJ_MSG_DATA MD , |
| 1216 | 1235 |
MJ_MSG_GROUP_DATA MG |
| 1217 | 1236 |
WHERE MD.MSG_GROUP_ID = MG.MSG_GROUP_ID |
| 1218 | 1237 |
AND IFNULL(MG.DEL_FLAG, 'N') = 'N' |
| 1219 | 1238 |
AND MD.DEL_FLAG = 'N' |
| 1239 |
+ |
|
| 1220 | 1240 |
<isNotEmpty property="userId"> |
| 1221 | 1241 |
AND MG.USER_ID = #userId# |
| 1222 | 1242 |
</isNotEmpty> |
... | ... | @@ -1386,7 +1406,7 @@ |
| 1386 | 1406 |
, B.SMS_TXT |
| 1387 | 1407 |
, B.SUBJECT |
| 1388 | 1408 |
, B.REGDATE |
| 1389 |
- , B.REQ_DATE |
|
| 1409 |
+ , A.REQ_DATE |
|
| 1390 | 1410 |
, A.RSLT_DATE |
| 1391 | 1411 |
, B.CALL_FROM |
| 1392 | 1412 |
, B.TOT_PRICE |
... | ... | @@ -2252,10 +2272,101 @@ |
| 2252 | 2272 |
|
| 2253 | 2273 |
</select> |
| 2254 | 2274 |
|
| 2255 |
- |
|
| 2256 |
- |
|
| 2257 |
- |
|
| 2258 |
- |
|
| 2259 |
- |
|
| 2260 |
- |
|
| 2275 |
+ <select id="mjonKakaoATDAO.selectKakaoATDelaySentList" parameterClass="String" resultClass="KakaoVO"> |
|
| 2276 |
+ SELECT |
|
| 2277 |
+ A.msgId AS msgId |
|
| 2278 |
+ , A.msgGroupId AS msgGroupId |
|
| 2279 |
+ , A.userId AS userId |
|
| 2280 |
+ , MGD.TOT_PRICE AS totPrice |
|
| 2281 |
+ , MGD.EACH_PRICE AS eachPrice |
|
| 2282 |
+ , MGD.MSG_GROUP_CNT AS msgGroupCnt |
|
| 2283 |
+ , MGD.MSG_TYPE AS msgType |
|
| 2284 |
+ , CASE |
|
| 2285 |
+ WHEN MGD.MSG_TYPE = '8' |
|
| 2286 |
+ THEN '알림톡' |
|
| 2287 |
+ WHEN MGD.MSG_TYPE = '9' |
|
| 2288 |
+ THEN '친구톡' |
|
| 2289 |
+ END msgTypeName |
|
| 2290 |
+ , (SELECT COUNT(0) FROM MJ_MSG_DATA A |
|
| 2291 |
+ WHERE 1=1 |
|
| 2292 |
+ AND A.DEL_FLAG = 'N' |
|
| 2293 |
+ AND A.MSG_GROUP_ID = A.msgGroupId |
|
| 2294 |
+ AND (CASE |
|
| 2295 |
+ WHEN A.AGENT_CODE = '04' AND A.RSLT_CODE = '7000' |
|
| 2296 |
+ THEN 'S' |
|
| 2297 |
+ WHEN (A.RSLT_CODE IS NULL |
|
| 2298 |
+ AND A.RSLT_CODE2 IS NULL |
|
| 2299 |
+ AND A.SENT_DATE IS NULL |
|
| 2300 |
+ AND A.RSLT_DATE IS NULL |
|
| 2301 |
+ ) |
|
| 2302 |
+ THEN 'W' |
|
| 2303 |
+ ELSE 'F' |
|
| 2304 |
+ END ) = 'S' |
|
| 2305 |
+ ) AS successCnt |
|
| 2306 |
+ , MGD.SMS_TXT AS smsTxt |
|
| 2307 |
+ , A.userdata |
|
| 2308 |
+ , A.curState |
|
| 2309 |
+ , MKPI.YELLOW_ID AS yellowId |
|
| 2310 |
+ , DATE_FORMAT(A.sentDate, '%Y-%m-%d %T') AS sentDate |
|
| 2311 |
+ , DATE_FORMAT(A.reqDate, '%Y-%m-%d %T') AS reqdate |
|
| 2312 |
+ , DATE_FORMAT(MGD.REGDATE, '%Y-%m-%d %T') AS regdate |
|
| 2313 |
+ , A.result AS resultType |
|
| 2314 |
+ , MGD.AT_DELAY_YN AS atDelayYn |
|
| 2315 |
+ , MGD.AT_DELAY_COMPLETE_YN AS atDelayCompleteYn |
|
| 2316 |
+ FROM |
|
| 2317 |
+ (SELECT |
|
| 2318 |
+ a.MSG_ID AS msgId |
|
| 2319 |
+ , a.MSG_GROUP_ID AS msgGroupId |
|
| 2320 |
+ , a.USER_ID AS userId |
|
| 2321 |
+ , a.USERDATA AS userdata |
|
| 2322 |
+ , a.CUR_STATE AS curState |
|
| 2323 |
+ , a.SENT_DATE AS sentDate |
|
| 2324 |
+ , a.REQ_DATE AS reqDate |
|
| 2325 |
+ , (CASE |
|
| 2326 |
+ WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '7000') |
|
| 2327 |
+ THEN 'S' |
|
| 2328 |
+ WHEN( A.RSLT_CODE IS NULL |
|
| 2329 |
+ AND A.RSLT_CODE2 IS NULL |
|
| 2330 |
+ AND A.SENT_DATE IS NULL |
|
| 2331 |
+ AND A.RSLT_DATE IS NULL |
|
| 2332 |
+ )THEN 'W' |
|
| 2333 |
+ ELSE 'F' |
|
| 2334 |
+ END) AS result |
|
| 2335 |
+ , A.RSLT_CODE AS rsltCode |
|
| 2336 |
+ , A.RSLT_CODE2 AS rsltCode2 |
|
| 2337 |
+ , A.RSLT_NET AS rsltNet |
|
| 2338 |
+ , A.CALL_FROM AS callFrom |
|
| 2339 |
+ , A.CALL_TO AS callTo |
|
| 2340 |
+ , A.SMS_TXT AS smsTxt |
|
| 2341 |
+ , A.MSG_TYPE AS msgType |
|
| 2342 |
+ , A.AGENT_CODE AS agentCode |
|
| 2343 |
+ , A.DEL_FLAG AS delFlag |
|
| 2344 |
+ , A.NEO_TYPE AS neoType |
|
| 2345 |
+ , A.RESERVE_C_YN AS reserveCYn |
|
| 2346 |
+ , A.REFUND_YN AS refundYn |
|
| 2347 |
+ , A.MSG_NOTICETALK_SENDER_KEY |
|
| 2348 |
+ , A.MSG_NOTICETALK_TMP_KEY |
|
| 2349 |
+ FROM |
|
| 2350 |
+ MJ_MSG_DATA A |
|
| 2351 |
+ WHERE 1=1 |
|
| 2352 |
+ AND A.USER_ID = #userId# |
|
| 2353 |
+ AND A.MSG_TYPE IN (8) |
|
| 2354 |
+ GROUP BY A.MSG_GROUP_ID |
|
| 2355 |
+ )A |
|
| 2356 |
+ LEFT JOIN MJ_MSG_GROUP_DATA MGD |
|
| 2357 |
+ ON A.msgGroupId = MGD.MSG_GROUP_ID |
|
| 2358 |
+ LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI |
|
| 2359 |
+ ON A.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY |
|
| 2360 |
+ AND MKPI.USER_ID = A.userId |
|
| 2361 |
+ WHERE 1=1 |
|
| 2362 |
+ AND MGD.USER_ID = #userId# |
|
| 2363 |
+ AND MGD.AT_DELAY_YN = 'Y' |
|
| 2364 |
+ AND MGD.AT_DELAY_COMPLETE_YN = 'N' |
|
| 2365 |
+ AND MGD.CANCELDATE IS NULL |
|
| 2366 |
+ AND A.curState = '0' |
|
| 2367 |
+ AND A.refundYn = 'N' |
|
| 2368 |
+ ORDER BY |
|
| 2369 |
+ reqDate DESC |
|
| 2370 |
+ ,sentDate DESC |
|
| 2371 |
+ </select> |
|
| 2261 | 2372 |
</sqlMap>(No newline at end of file) |
--- src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
... | ... | @@ -375,7 +375,9 @@ |
| 375 | 375 |
AND MG.DEL_FLAG ='N' |
| 376 | 376 |
/* JSPark 2023.03.23 => 예약건중 발송완료건도 발송결과에 노출되도록 수정 */ |
| 377 | 377 |
/* AND MG.RESERVE_YN = 'N' */ |
| 378 |
- <![CDATA[ AND MG.REQ_DATE <= NOW() ]]> |
|
| 378 |
+ <![CDATA[ |
|
| 379 |
+ AND MG.REQ_DATE <= DATE_ADD(NOW(), INTERVAL 60 MINUTE) |
|
| 380 |
+ ]]> |
|
| 379 | 381 |
|
| 380 | 382 |
<isNotEmpty property="reserveCYn"> |
| 381 | 383 |
AND MG.RESERVE_C_YN = #reserveCYn# |
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
... | ... | @@ -2055,23 +2055,24 @@ |
| 2055 | 2055 |
<select id="mjonMsgDAO.selectMberManageInfo" parameterClass="String" resultClass="mberManageVO"> |
| 2056 | 2056 |
|
| 2057 | 2057 |
SELECT |
| 2058 |
- MBER_ID AS mberId |
|
| 2059 |
- , MBER_NM AS mberNm |
|
| 2060 |
- , SHORT_PRICE AS shortPrice |
|
| 2061 |
- , LONG_PRICE AS longPrice |
|
| 2062 |
- , PICTURE_PRICE AS picturePrice |
|
| 2063 |
- , PICTURE2_PRICE AS picture2Price |
|
| 2064 |
- , PICTURE3_PRICE AS picture3Price |
|
| 2065 |
- , KAKAO_AT_PRICE AS kakaoAtPrice |
|
| 2066 |
- , FAX_PRICE AS faxPrice |
|
| 2067 |
- , USER_MONEY AS userMoney |
|
| 2068 |
- , USER_POINT AS userPoint |
|
| 2069 |
- , DEPT AS dept |
|
| 2070 |
- , MBTLNUM AS moblphonNo |
|
| 2071 |
- , MANAGER_NM AS managerNm |
|
| 2072 |
- , EXCEPT_SPAM_YN AS exceptSpamYn |
|
| 2073 |
- , HOTLINE_AGENT_CODE AS hotlineAgentCode |
|
| 2074 |
- , BLINE_CODE AS blineCode |
|
| 2058 |
+ MBER_ID AS mberId |
|
| 2059 |
+ , MBER_NM AS mberNm |
|
| 2060 |
+ , SHORT_PRICE AS shortPrice |
|
| 2061 |
+ , LONG_PRICE AS longPrice |
|
| 2062 |
+ , PICTURE_PRICE AS picturePrice |
|
| 2063 |
+ , PICTURE2_PRICE AS picture2Price |
|
| 2064 |
+ , PICTURE3_PRICE AS picture3Price |
|
| 2065 |
+ , KAKAO_AT_PRICE AS kakaoAtPrice |
|
| 2066 |
+ , FAX_PRICE AS faxPrice |
|
| 2067 |
+ , USER_MONEY AS userMoney |
|
| 2068 |
+ , USER_POINT AS userPoint |
|
| 2069 |
+ , DEPT AS dept |
|
| 2070 |
+ , MBTLNUM AS moblphonNo |
|
| 2071 |
+ , MANAGER_NM AS managerNm |
|
| 2072 |
+ , EXCEPT_SPAM_YN AS exceptSpamYn |
|
| 2073 |
+ , HOTLINE_AGENT_CODE AS hotlineAgentCode |
|
| 2074 |
+ , BLINE_CODE AS blineCode |
|
| 2075 |
+ , AT_SMISHING_YN AS atSmishingYn |
|
| 2075 | 2076 |
FROM LETTNGNRLMBER |
| 2076 | 2077 |
WHERE MBER_ID = #userId# |
| 2077 | 2078 |
|
... | ... | @@ -2208,8 +2209,9 @@ |
| 2208 | 2209 |
FILE_CNT, |
| 2209 | 2210 |
TOT_PRICE, |
| 2210 | 2211 |
EVENT_YN, |
| 2211 |
- DELAY_YN |
|
| 2212 |
- , BIZ_KAKAO_RESEND_ORGNL_TXT |
|
| 2212 |
+ DELAY_YN, |
|
| 2213 |
+ AT_DELAY_YN, |
|
| 2214 |
+ BIZ_KAKAO_RESEND_ORGNL_TXT |
|
| 2213 | 2215 |
) |
| 2214 | 2216 |
VALUES |
| 2215 | 2217 |
|
... | ... | @@ -2233,8 +2235,9 @@ |
| 2233 | 2235 |
#fileCnt#, |
| 2234 | 2236 |
#totPrice#, |
| 2235 | 2237 |
#eventYn#, |
| 2236 |
- #delayYn# |
|
| 2237 |
- , #kakaoSubMagOrgnlTxt# |
|
| 2238 |
+ #delayYn#, |
|
| 2239 |
+ #atDelayYn#, |
|
| 2240 |
+ #kakaoSubMagOrgnlTxt# |
|
| 2238 | 2241 |
) |
| 2239 | 2242 |
</insert> |
| 2240 | 2243 |
|
... | ... | @@ -5773,15 +5776,18 @@ |
| 5773 | 5776 |
|
| 5774 | 5777 |
<select id="mjonMsgDAO.selectMsgGroupDataByGoupId" parameterClass="mjonResvMsgVO" resultClass="mjonMsgVO"> |
| 5775 | 5778 |
|
| 5776 |
- SELECT MSG_GROUP_ID AS msgGroupId, |
|
| 5777 |
- USER_ID AS userId, |
|
| 5778 |
- SMS_TXT AS smsTxt, |
|
| 5779 |
- EACH_PRICE AS eachPrice, |
|
| 5780 |
- TOT_PRICE AS totPrice, |
|
| 5781 |
- MSG_GROUP_CNT AS msgGroupCnt |
|
| 5782 |
- FROM MJ_MSG_GROUP_DATA |
|
| 5783 |
- WHERE USER_ID = #userId# |
|
| 5784 |
- AND MSG_GROUP_ID = #msgGroupId# |
|
| 5779 |
+ SELECT |
|
| 5780 |
+ MSG_GROUP_ID AS msgGroupId |
|
| 5781 |
+ , USER_ID AS userId |
|
| 5782 |
+ , SMS_TXT AS smsTxt |
|
| 5783 |
+ , EACH_PRICE AS eachPrice |
|
| 5784 |
+ , TOT_PRICE AS totPrice |
|
| 5785 |
+ , MSG_GROUP_CNT AS msgGroupCnt |
|
| 5786 |
+ FROM |
|
| 5787 |
+ MJ_MSG_GROUP_DATA |
|
| 5788 |
+ WHERE 1=1 |
|
| 5789 |
+ AND USER_ID = #userId# |
|
| 5790 |
+ AND MSG_GROUP_ID = #msgGroupId# |
|
| 5785 | 5791 |
ORDER BY MSG_GROUP_ID DESC |
| 5786 | 5792 |
LIMIT 1 |
| 5787 | 5793 |
|
... | ... | @@ -5830,10 +5836,12 @@ |
| 5830 | 5836 |
|
| 5831 | 5837 |
<select id="mjonMsgDAO.selectMsgGroupDataReqDateList" parameterClass="mjonMsgResvVO" resultClass="mjonMsgResvVO"> |
| 5832 | 5838 |
|
| 5833 |
- SELECT DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T' ) AS strReqDate |
|
| 5834 |
- FROM MJ_MSG_GROUP_DATA |
|
| 5839 |
+ SELECT |
|
| 5840 |
+ DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T' ) AS strReqDate |
|
| 5841 |
+ FROM |
|
| 5842 |
+ MJ_MSG_GROUP_DATA |
|
| 5835 | 5843 |
WHERE 1=1 |
| 5836 |
- AND USER_ID = #userId# |
|
| 5844 |
+ AND USER_ID = #userId# |
|
| 5837 | 5845 |
<iterate prepend="AND MSG_GROUP_ID IN" open="(" close=")" conjunction="," property="msgGroupIdList">
|
| 5838 | 5846 |
#msgGroupIdList[]# |
| 5839 | 5847 |
</iterate> |
... | ... | @@ -6563,5 +6571,74 @@ |
| 6563 | 6571 |
ORDER BY M.orderByCode |
| 6564 | 6572 |
</select> |
| 6565 | 6573 |
|
| 6574 |
+ <update id="mjonMsgDAO.updateKakaoAtDelayCancelMsgDataFlag" parameterClass="mjonMsgVO"> |
|
| 6575 |
+ |
|
| 6576 |
+ UPDATE |
|
| 6577 |
+ MJ_MSG_DATA |
|
| 6578 |
+ SET |
|
| 6579 |
+ REFUND_YN = 'Y' |
|
| 6580 |
+ , REQ_DATE = NOW() |
|
| 6581 |
+ , RESULT_LOG_UPDT_PNTTM = NOW() |
|
| 6582 |
+ , CUR_STATE = '3' |
|
| 6583 |
+ , RSLT_CODE = '7300' |
|
| 6584 |
+ WHERE 1=1 |
|
| 6585 |
+ AND USER_ID = #userId# |
|
| 6586 |
+ AND MSG_GROUP_ID = #msgGroupId# |
|
| 6587 |
+ |
|
| 6588 |
+ </update> |
|
| 6589 |
+ |
|
| 6590 |
+ <update id="mjonMsgDAO.updateKakaoAtDelayCancelMsgGroupDataFlag" parameterClass="mjonMsgVO"> |
|
| 6591 |
+ |
|
| 6592 |
+ UPDATE |
|
| 6593 |
+ MJ_MSG_GROUP_DATA |
|
| 6594 |
+ SET |
|
| 6595 |
+ CANCELDATE = NOW() |
|
| 6596 |
+ , REQ_DATE = NOW() |
|
| 6597 |
+ , AT_DELAY_COMPLETE_YN = 'Y' |
|
| 6598 |
+ WHERE 1=1 |
|
| 6599 |
+ AND USER_ID = #userId# |
|
| 6600 |
+ AND MSG_GROUP_ID = #msgGroupId# |
|
| 6601 |
+ |
|
| 6602 |
+ </update> |
|
| 6603 |
+ |
|
| 6604 |
+ <update id="mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgDataFlag" parameterClass="mjonMsgVO"> |
|
| 6605 |
+ UPDATE |
|
| 6606 |
+ MJ_MSG_DATA |
|
| 6607 |
+ SET |
|
| 6608 |
+ REQ_DATE = |
|
| 6609 |
+ <![CDATA[ |
|
| 6610 |
+ CASE |
|
| 6611 |
+ WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE) < 0 |
|
| 6612 |
+ THEN REQ_DATE |
|
| 6613 |
+ WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE) >= 30 |
|
| 6614 |
+ THEN DATE_ADD(REQ_DATE, INTERVAL -30 MINUTE) |
|
| 6615 |
+ ELSE DATE_ADD(REQ_DATE, INTERVAL -(TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE)) MINUTE) |
|
| 6616 |
+ END |
|
| 6617 |
+ ]]> |
|
| 6618 |
+ WHERE 1=1 |
|
| 6619 |
+ AND USER_ID = #userId# |
|
| 6620 |
+ AND MSG_GROUP_ID = #msgGroupId# |
|
| 6621 |
+ </update> |
|
| 6622 |
+ |
|
| 6623 |
+ <update id="mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgGroupDataFlag" parameterClass="mjonMsgVO"> |
|
| 6624 |
+ UPDATE |
|
| 6625 |
+ MJ_MSG_GROUP_DATA |
|
| 6626 |
+ SET |
|
| 6627 |
+ REQ_DATE = |
|
| 6628 |
+ <![CDATA[ |
|
| 6629 |
+ CASE |
|
| 6630 |
+ WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE) < 0 |
|
| 6631 |
+ THEN REQ_DATE |
|
| 6632 |
+ WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE) >= 30 |
|
| 6633 |
+ THEN DATE_ADD(REQ_DATE, INTERVAL -30 MINUTE) |
|
| 6634 |
+ ELSE DATE_ADD(REQ_DATE, INTERVAL -(TIMESTAMPDIFF(MINUTE, NOW(), REQ_DATE)) MINUTE) |
|
| 6635 |
+ END |
|
| 6636 |
+ ]]> |
|
| 6637 |
+ , AT_DELAY_COMPLETE_YN = 'Y' |
|
| 6638 |
+ WHERE 1=1 |
|
| 6639 |
+ AND USER_ID = #userId# |
|
| 6640 |
+ AND MSG_GROUP_ID = #msgGroupId# |
|
| 6641 |
+ </update> |
|
| 6642 |
+ |
|
| 6566 | 6643 |
</sqlMap> |
| 6567 | 6644 |
|
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml
... | ... | @@ -445,12 +445,17 @@ |
| 445 | 445 |
</select> |
| 446 | 446 |
|
| 447 | 447 |
<select id="MjonReservMsgDAO.selectMsgSeqListByGroupId" parameterClass="mjonMsgResvVO" resultClass="mjonMsgResvVO"> |
| 448 |
- |
|
| 449 |
- SELECT USERDATA AS userData |
|
| 450 |
- FROM MJ_MSG_DATA |
|
| 451 |
- WHERE USER_ID = #userId# |
|
| 452 |
- AND MSG_GROUP_ID = #msgGroupId# |
|
| 453 |
- |
|
| 448 |
+ SELECT |
|
| 449 |
+ A.USERDATA AS userData |
|
| 450 |
+ , DATE_FORMAT(A.REQ_DATE, '%Y-%m-%d %T' ) AS reqdate |
|
| 451 |
+ , B.RESERVE_YN AS reserveYn |
|
| 452 |
+ FROM |
|
| 453 |
+ MJ_MSG_DATA A |
|
| 454 |
+ , MJ_MSG_GROUP_DATA B |
|
| 455 |
+ WHERE A.MSG_GROUP_ID = B.MSG_GROUP_ID |
|
| 456 |
+ AND A.USER_ID = #userId# |
|
| 457 |
+ AND A.MSG_GROUP_ID = #msgGroupId# |
|
| 458 |
+ ORDER BY A.REQ_DATE ASC |
|
| 454 | 459 |
</select> |
| 455 | 460 |
|
| 456 | 461 |
<select id="MjonReservMsgDAO.selectMjonMsgGroupData" parameterClass="mjonMsgResvVO" resultClass="mjonMsgVO"> |
... | ... | @@ -681,7 +686,6 @@ |
| 681 | 686 |
|
| 682 | 687 |
</update> |
| 683 | 688 |
|
| 684 |
- |
|
| 685 | 689 |
<update id="MjonReservMsgDAO.updateRealTimeIVTMsgSeqListByMsgSeq" parameterClass="mjonMsgResvVO"> |
| 686 | 690 |
|
| 687 | 691 |
UPDATE SMSQ_SEND |
... | ... | @@ -717,6 +721,27 @@ |
| 717 | 721 |
|
| 718 | 722 |
</update> |
| 719 | 723 |
|
| 724 |
+ <update id="MjonReservMsgDAO.updateReserveTimeBizMsgSeqListByMsgSeq" parameterClass="mjonMsgResvVO"> |
|
| 725 |
+ UPDATE |
|
| 726 |
+ BIZ_MSG |
|
| 727 |
+ SET |
|
| 728 |
+ REQUEST_TIME = |
|
| 729 |
+ <![CDATA[ |
|
| 730 |
+ CASE |
|
| 731 |
+ WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQUEST_TIME) < 0 |
|
| 732 |
+ THEN REQUEST_TIME |
|
| 733 |
+ WHEN TIMESTAMPDIFF(MINUTE, NOW(), REQUEST_TIME) >= 30 |
|
| 734 |
+ THEN DATE_ADD(REQUEST_TIME, INTERVAL -30 MINUTE) |
|
| 735 |
+ ELSE DATE_ADD(REQUEST_TIME, INTERVAL -(TIMESTAMPDIFF(MINUTE, NOW(), REQUEST_TIME)) MINUTE) |
|
| 736 |
+ END |
|
| 737 |
+ ]]> |
|
| 738 |
+ WHERE 1=1 |
|
| 739 |
+ <iterate prepend="AND USER_KEY IN" open="(" close=")" conjunction="," property="userDataList">
|
|
| 740 |
+ #userDataList[]# |
|
| 741 |
+ </iterate> |
|
| 742 |
+ |
|
| 743 |
+ </update> |
|
| 744 |
+ |
|
| 720 | 745 |
</sqlMap> |
| 721 | 746 |
|
| 722 | 747 |
|
--- src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml
... | ... | @@ -1290,15 +1290,17 @@ |
| 1290 | 1290 |
</select> |
| 1291 | 1291 |
|
| 1292 | 1292 |
<select id="userManageDAO.selectAdminSmsNoticeYn" parameterClass="userVO" resultClass="userVO"> |
| 1293 |
- SELECT |
|
| 1294 |
- ADMIN_SMS_NOTICE_YN AS adminSmsNoticeYn, |
|
| 1295 |
- PRE_PAYMENT_YN AS prePaymentYn, |
|
| 1296 |
- SMISHING_YN AS smishingYn, |
|
| 1297 |
- AUTO_CASH AS autoCash, |
|
| 1298 |
- IFNULL(BLINE_CODE, 'N') AS blineCode, |
|
| 1299 |
- IFNULL(RECOMMEND_ID, '') AS recommendId |
|
| 1300 |
- FROM LETTNGNRLMBER |
|
| 1301 |
- WHERE MBER_ID = #mberId# |
|
| 1293 |
+ SELECT |
|
| 1294 |
+ ADMIN_SMS_NOTICE_YN AS adminSmsNoticeYn |
|
| 1295 |
+ ,PRE_PAYMENT_YN AS prePaymentYn |
|
| 1296 |
+ ,SMISHING_YN AS smishingYn |
|
| 1297 |
+ ,AUTO_CASH AS autoCash |
|
| 1298 |
+ ,IFNULL(BLINE_CODE, 'N') AS blineCode |
|
| 1299 |
+ ,IFNULL(RECOMMEND_ID, '') AS recommendId |
|
| 1300 |
+ FROM |
|
| 1301 |
+ LETTNGNRLMBER |
|
| 1302 |
+ WHERE |
|
| 1303 |
+ MBER_ID = #mberId# |
|
| 1302 | 1304 |
</select> |
| 1303 | 1305 |
|
| 1304 | 1306 |
<update id="userManageDAO.updateUserAdminSmsNoticeYn" parameterClass="userVO"> |
--- src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
+++ src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
... | ... | @@ -1183,44 +1183,6 @@ |
| 1183 | 1183 |
|
| 1184 | 1184 |
} |
| 1185 | 1185 |
|
| 1186 |
-//알림톡 스미싱의심 여부 |
|
| 1187 |
-function fnMberAtSmishingYn(){
|
|
| 1188 |
- var form = document.mberManageVO; |
|
| 1189 |
- var atSmishingYn = form.atSmishingYn.value; |
|
| 1190 |
- |
|
| 1191 |
- if(confirm("알림톡 스미싱의심 여부를 변경하시겠습니까?")){
|
|
| 1192 |
- |
|
| 1193 |
- $.ajax({
|
|
| 1194 |
- type: "POST", |
|
| 1195 |
- url: "/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do", |
|
| 1196 |
- data: {"atSmishingYn" : atSmishingYn, "mberId" : "${mberManageVO.mberId}"},
|
|
| 1197 |
- dataType:'json', |
|
| 1198 |
- async: false, |
|
| 1199 |
- success: function (data, status) {
|
|
| 1200 |
- if (data.isSuccess) {
|
|
| 1201 |
- alert("변경 완료했습니다.");
|
|
| 1202 |
- } |
|
| 1203 |
- else {
|
|
| 1204 |
- alert(data.msg); |
|
| 1205 |
- } |
|
| 1206 |
- }, |
|
| 1207 |
- beforeSend: function () {
|
|
| 1208 |
- //로딩창 show |
|
| 1209 |
- $('.loading_layer').addClass('active');
|
|
| 1210 |
- }, |
|
| 1211 |
- complete: function () {
|
|
| 1212 |
- //로딩창 hide |
|
| 1213 |
- $('.loading_layer').removeClass('active');
|
|
| 1214 |
- }, |
|
| 1215 |
- error: function (e) {
|
|
| 1216 |
- alert("에러가 발생했습니다."); console.log("ERROR : ", e);
|
|
| 1217 |
- } |
|
| 1218 |
- }); |
|
| 1219 |
- |
|
| 1220 |
- } |
|
| 1221 |
- |
|
| 1222 |
-} |
|
| 1223 |
- |
|
| 1224 | 1186 |
// VIP 여부 |
| 1225 | 1187 |
function fnMberVIPYn(){
|
| 1226 | 1188 |
var form = document.mberManageVO; |
... | ... | @@ -2422,6 +2384,331 @@ |
| 2422 | 2384 |
|
| 2423 | 2385 |
} |
| 2424 | 2386 |
|
| 2387 |
+//알림톡 지연 기능추가 ------------------------------------------------------- |
|
| 2388 |
+ |
|
| 2389 |
+//알림톡 스미싱의심 여부 |
|
| 2390 |
+function fnMberAtSmishingYn(){
|
|
| 2391 |
+ var form = document.mberManageVO; |
|
| 2392 |
+ var atSmishingYn = form.atSmishingYn.value; |
|
| 2393 |
+ |
|
| 2394 |
+ if(confirm("알림톡 스미싱의심 여부를 변경하시겠습니까?")){
|
|
| 2395 |
+ |
|
| 2396 |
+ $.ajax({
|
|
| 2397 |
+ type: "POST", |
|
| 2398 |
+ url: "/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do", |
|
| 2399 |
+ data: {"atSmishingYn" : atSmishingYn, "mberId" : "${mberManageVO.mberId}"},
|
|
| 2400 |
+ dataType:'json', |
|
| 2401 |
+ async: false, |
|
| 2402 |
+ success: function (data, status) {
|
|
| 2403 |
+ if (data.isSuccess) {
|
|
| 2404 |
+ alert("변경 완료했습니다.");
|
|
| 2405 |
+ } |
|
| 2406 |
+ else {
|
|
| 2407 |
+ alert(data.msg); |
|
| 2408 |
+ } |
|
| 2409 |
+ }, |
|
| 2410 |
+ beforeSend: function () {
|
|
| 2411 |
+ //로딩창 show |
|
| 2412 |
+ $('.loading_layer').addClass('active');
|
|
| 2413 |
+ }, |
|
| 2414 |
+ complete: function () {
|
|
| 2415 |
+ //로딩창 hide |
|
| 2416 |
+ $('.loading_layer').removeClass('active');
|
|
| 2417 |
+ }, |
|
| 2418 |
+ error: function (e) {
|
|
| 2419 |
+ alert("에러가 발생했습니다."); console.log("ERROR : ", e);
|
|
| 2420 |
+ } |
|
| 2421 |
+ }); |
|
| 2422 |
+ |
|
| 2423 |
+ } |
|
| 2424 |
+} |
|
| 2425 |
+ |
|
| 2426 |
+//지연 알림톡 전체선택 |
|
| 2427 |
+function kakaoATDelayCheckAll(){
|
|
| 2428 |
+ var checkField = document.kakaoATDelayForm.kakaoATCheckDelayField; |
|
| 2429 |
+ |
|
| 2430 |
+ if(document.kakaoATDelayForm.kakaoATCheckAll.checked) {
|
|
| 2431 |
+ if(checkField) {
|
|
| 2432 |
+ if(checkField.length > 1) {
|
|
| 2433 |
+ for(var i=0; i < checkField.length; i++) {
|
|
| 2434 |
+ checkField[i].checked = true; |
|
| 2435 |
+ } |
|
| 2436 |
+ } else {
|
|
| 2437 |
+ checkField.checked = true; |
|
| 2438 |
+ } |
|
| 2439 |
+ } |
|
| 2440 |
+ } else {
|
|
| 2441 |
+ if(checkField) {
|
|
| 2442 |
+ if(checkField.length > 1) {
|
|
| 2443 |
+ for(var j=0; j < checkField.length; j++) {
|
|
| 2444 |
+ checkField[j].checked = false; |
|
| 2445 |
+ } |
|
| 2446 |
+ } else {
|
|
| 2447 |
+ checkField.checked = false; |
|
| 2448 |
+ } |
|
| 2449 |
+ } |
|
| 2450 |
+ } |
|
| 2451 |
+} |
|
| 2452 |
+ |
|
| 2453 |
+//지연 알림톡 즉시 발송 리스트 |
|
| 2454 |
+function kakaoATDelaySendArray(){
|
|
| 2455 |
+ |
|
| 2456 |
+ var userId = document.modiForm.mberId.value; //사용자 회원 아이디 |
|
| 2457 |
+ var form = document.kakaoATDelayForm; |
|
| 2458 |
+ |
|
| 2459 |
+ if($("input:checkbox[name='kakaoATCheckDelayField']").is(":checked")==false){
|
|
| 2460 |
+ alert("선택된 알림톡이 없습니다.");
|
|
| 2461 |
+ return; |
|
| 2462 |
+ } |
|
| 2463 |
+ var checkField = form.kakaoATCheckDelayField; |
|
| 2464 |
+ var id = form.kakaoATCheckDelayId; |
|
| 2465 |
+ var checkedIds = ""; |
|
| 2466 |
+ var checkedCount = 0; |
|
| 2467 |
+ if(checkField) {
|
|
| 2468 |
+ if(checkField.length > 1) {
|
|
| 2469 |
+ for(var i=0; i < checkField.length; i++) {
|
|
| 2470 |
+ if(checkField[i].checked) {
|
|
| 2471 |
+ checkedIds += ((checkedCount==0? "" : ",") + id[i].value); |
|
| 2472 |
+ checkedCount++; |
|
| 2473 |
+ } |
|
| 2474 |
+ } |
|
| 2475 |
+ } else {
|
|
| 2476 |
+ if(checkField.checked) {
|
|
| 2477 |
+ checkedIds = id.value; |
|
| 2478 |
+ } |
|
| 2479 |
+ } |
|
| 2480 |
+ } |
|
| 2481 |
+ |
|
| 2482 |
+ var msgGroupId = checkedIds; |
|
| 2483 |
+ |
|
| 2484 |
+ var msg = ""; |
|
| 2485 |
+ var url = "/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do"; |
|
| 2486 |
+ var json = {"msgGroupId" : msgGroupId, "userId" : userId};
|
|
| 2487 |
+ |
|
| 2488 |
+ if(confirm("해당 지연 알림톡을 즉시 발송 하시겠습니까?")){
|
|
| 2489 |
+ $.ajax({
|
|
| 2490 |
+ type: "POST" |
|
| 2491 |
+ , url: url |
|
| 2492 |
+ , data: json |
|
| 2493 |
+ , dataType:'json' |
|
| 2494 |
+ , async: false |
|
| 2495 |
+ , success: function (data, status) {
|
|
| 2496 |
+ var result = data.isStatus; |
|
| 2497 |
+ var msg = data.msg; |
|
| 2498 |
+ if (result == 'loginFail') {
|
|
| 2499 |
+ alert(msg); |
|
| 2500 |
+ location.reload(); |
|
| 2501 |
+ }else if(result == 'dateFail'){
|
|
| 2502 |
+ alert(msg); |
|
| 2503 |
+ location.reload(); |
|
| 2504 |
+ }else if(result == 'fail'){
|
|
| 2505 |
+ alert(msg); |
|
| 2506 |
+ return false; |
|
| 2507 |
+ }else{
|
|
| 2508 |
+ alert(msg); |
|
| 2509 |
+ location.reload(); |
|
| 2510 |
+ } |
|
| 2511 |
+ } |
|
| 2512 |
+ , beforeSend: function () {
|
|
| 2513 |
+ //로딩창 show |
|
| 2514 |
+ $('.loading_layer').addClass('active');
|
|
| 2515 |
+ } |
|
| 2516 |
+ , complete: function () {
|
|
| 2517 |
+ //로딩창 hide |
|
| 2518 |
+ $('.loading_layer').removeClass('active');
|
|
| 2519 |
+ } |
|
| 2520 |
+ , error: function (e) {
|
|
| 2521 |
+ alert("에러가 발생했습니다."); console.log("ERROR : ", e);
|
|
| 2522 |
+ } |
|
| 2523 |
+ }); |
|
| 2524 |
+ } |
|
| 2525 |
+} |
|
| 2526 |
+ |
|
| 2527 |
+//지연 알림톡 즉시 발송 |
|
| 2528 |
+function kakaoATDelaySend(msgGroupId){
|
|
| 2529 |
+ |
|
| 2530 |
+ var userId = document.modiForm.mberId.value; //사용자 회원 아이디 |
|
| 2531 |
+ |
|
| 2532 |
+ var msg = ""; |
|
| 2533 |
+ var url = "/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do"; |
|
| 2534 |
+ var json = {"msgGroupId" : msgGroupId, "userId" : userId};
|
|
| 2535 |
+ |
|
| 2536 |
+ if(confirm("해당 지연 알림톡을 즉시 발송 하시겠습니까?")){
|
|
| 2537 |
+ $.ajax({
|
|
| 2538 |
+ type: "POST" |
|
| 2539 |
+ , url: url |
|
| 2540 |
+ , data: json |
|
| 2541 |
+ , dataType:'json' |
|
| 2542 |
+ , async: false |
|
| 2543 |
+ , success: function (data, status) {
|
|
| 2544 |
+ var result = data.isStatus; |
|
| 2545 |
+ var msg = data.msg; |
|
| 2546 |
+ if (result == 'loginFail') {
|
|
| 2547 |
+ alert(msg); |
|
| 2548 |
+ location.reload(); |
|
| 2549 |
+ }else if(result == 'dateFail'){
|
|
| 2550 |
+ alert(msg); |
|
| 2551 |
+ location.reload(); |
|
| 2552 |
+ }else if(result == 'fail'){
|
|
| 2553 |
+ alert(msg); |
|
| 2554 |
+ return false; |
|
| 2555 |
+ }else{
|
|
| 2556 |
+ alert(msg); |
|
| 2557 |
+ location.reload(); |
|
| 2558 |
+ } |
|
| 2559 |
+ } |
|
| 2560 |
+ , beforeSend: function () {
|
|
| 2561 |
+ //로딩창 show |
|
| 2562 |
+ $('.loading_layer').addClass('active');
|
|
| 2563 |
+ } |
|
| 2564 |
+ , complete: function () {
|
|
| 2565 |
+ //로딩창 hide |
|
| 2566 |
+ $('.loading_layer').removeClass('active');
|
|
| 2567 |
+ } |
|
| 2568 |
+ , error: function (e) {
|
|
| 2569 |
+ alert("에러가 발생했습니다."); console.log("ERROR : ", e);
|
|
| 2570 |
+ } |
|
| 2571 |
+ }); |
|
| 2572 |
+ } |
|
| 2573 |
+} |
|
| 2574 |
+ |
|
| 2575 |
+//지연 알림톡 발송취소 리스트 |
|
| 2576 |
+function kakaoATDelayCancelArray(){
|
|
| 2577 |
+ |
|
| 2578 |
+ var userId = document.modiForm.mberId.value; //사용자 회원 아이디 |
|
| 2579 |
+ var form = document.kakaoATDelayForm; |
|
| 2580 |
+ |
|
| 2581 |
+ if($("input:checkbox[name='kakaoATCheckDelayField']").is(":checked")==false){
|
|
| 2582 |
+ alert("선택된 알림톡이 없습니다.");
|
|
| 2583 |
+ return; |
|
| 2584 |
+ } |
|
| 2585 |
+ var checkField = form.kakaoATCheckDelayField; |
|
| 2586 |
+ var id = form.kakaoATCheckDelayId; |
|
| 2587 |
+ var checkedIds = ""; |
|
| 2588 |
+ var checkedCount = 0; |
|
| 2589 |
+ if(checkField) {
|
|
| 2590 |
+ if(checkField.length > 1) {
|
|
| 2591 |
+ for(var i=0; i < checkField.length; i++) {
|
|
| 2592 |
+ if(checkField[i].checked) {
|
|
| 2593 |
+ checkedIds += ((checkedCount==0? "" : ",") + id[i].value); |
|
| 2594 |
+ checkedCount++; |
|
| 2595 |
+ } |
|
| 2596 |
+ } |
|
| 2597 |
+ } else {
|
|
| 2598 |
+ if(checkField.checked) {
|
|
| 2599 |
+ checkedIds = id.value; |
|
| 2600 |
+ } |
|
| 2601 |
+ } |
|
| 2602 |
+ } |
|
| 2603 |
+ |
|
| 2604 |
+ var msgGroupId = checkedIds; |
|
| 2605 |
+ |
|
| 2606 |
+ var msg = ""; |
|
| 2607 |
+ var url = "/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do"; |
|
| 2608 |
+ var json = {"msgGroupId" : msgGroupId, "userId" : userId};
|
|
| 2609 |
+ |
|
| 2610 |
+ if(confirm("해당 지연 알림톡을 발송취소 하시겠습니까?")){
|
|
| 2611 |
+ $.ajax({
|
|
| 2612 |
+ type: "POST" |
|
| 2613 |
+ , url: url |
|
| 2614 |
+ , data: json |
|
| 2615 |
+ , dataType:'json' |
|
| 2616 |
+ , async: false |
|
| 2617 |
+ , success: function (data, status) {
|
|
| 2618 |
+ var result = data.isStatus; |
|
| 2619 |
+ var msg = data.msg; |
|
| 2620 |
+ |
|
| 2621 |
+ if (result == 'loginFail') {
|
|
| 2622 |
+ alert(msg); |
|
| 2623 |
+ location.reload(); |
|
| 2624 |
+ }else if(result == 'dateFail'){
|
|
| 2625 |
+ |
|
| 2626 |
+ alert(msg); |
|
| 2627 |
+ location.reload(); |
|
| 2628 |
+ |
|
| 2629 |
+ }else if(result == 'fail'){
|
|
| 2630 |
+ alert(msg); |
|
| 2631 |
+ return false; |
|
| 2632 |
+ }else{
|
|
| 2633 |
+ |
|
| 2634 |
+ alert(msg); |
|
| 2635 |
+ |
|
| 2636 |
+ //회원 이용정지 처리하기 |
|
| 2637 |
+ //fn_updateMberSttus(msgGroupId); |
|
| 2638 |
+ fn_MsgDelayCancel_after(); |
|
| 2639 |
+ |
|
| 2640 |
+ } |
|
| 2641 |
+ } |
|
| 2642 |
+ , beforeSend: function () {
|
|
| 2643 |
+ //로딩창 show |
|
| 2644 |
+ $('.loading_layer').addClass('active');
|
|
| 2645 |
+ } |
|
| 2646 |
+ , complete: function () {
|
|
| 2647 |
+ //로딩창 hide |
|
| 2648 |
+ $('.loading_layer').removeClass('active');
|
|
| 2649 |
+ } |
|
| 2650 |
+ , error: function (e) {
|
|
| 2651 |
+ alert("에러가 발생했습니다."); console.log("ERROR : ", e);
|
|
| 2652 |
+ } |
|
| 2653 |
+ }); |
|
| 2654 |
+ } |
|
| 2655 |
+} |
|
| 2656 |
+ |
|
| 2657 |
+//지연 알림톡 발송취소 |
|
| 2658 |
+function kakaoATDelayCancel(msgGroupId){
|
|
| 2659 |
+ |
|
| 2660 |
+ var userId = document.modiForm.mberId.value; //사용자 회원 아이디 |
|
| 2661 |
+ |
|
| 2662 |
+ var msg = ""; |
|
| 2663 |
+ var url = "/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do"; |
|
| 2664 |
+ var json = {"msgGroupId" : msgGroupId, "userId" : userId};
|
|
| 2665 |
+ |
|
| 2666 |
+ if(confirm("해당 지연 알림톡을 발송취소 하시겠습니까?")){
|
|
| 2667 |
+ $.ajax({
|
|
| 2668 |
+ type: "POST" |
|
| 2669 |
+ , url: url |
|
| 2670 |
+ , data: json |
|
| 2671 |
+ , dataType:'json' |
|
| 2672 |
+ , async: false |
|
| 2673 |
+ , success: function (data, status) {
|
|
| 2674 |
+ var result = data.isStatus; |
|
| 2675 |
+ var msg = data.msg; |
|
| 2676 |
+ |
|
| 2677 |
+ if (result == 'loginFail') {
|
|
| 2678 |
+ alert(msg); |
|
| 2679 |
+ location.reload(); |
|
| 2680 |
+ }else if(result == 'dateFail'){
|
|
| 2681 |
+ |
|
| 2682 |
+ alert(msg); |
|
| 2683 |
+ location.reload(); |
|
| 2684 |
+ |
|
| 2685 |
+ }else if(result == 'fail'){
|
|
| 2686 |
+ alert(msg); |
|
| 2687 |
+ return false; |
|
| 2688 |
+ }else{
|
|
| 2689 |
+ |
|
| 2690 |
+ alert(msg); |
|
| 2691 |
+ |
|
| 2692 |
+ //회원 이용정지 처리하기 |
|
| 2693 |
+ //fn_updateMberSttus(msgGroupId); |
|
| 2694 |
+ fn_MsgDelayCancel_after(); |
|
| 2695 |
+ |
|
| 2696 |
+ } |
|
| 2697 |
+ } |
|
| 2698 |
+ , beforeSend: function () {
|
|
| 2699 |
+ //로딩창 show |
|
| 2700 |
+ $('.loading_layer').addClass('active');
|
|
| 2701 |
+ } |
|
| 2702 |
+ , complete: function () {
|
|
| 2703 |
+ //로딩창 hide |
|
| 2704 |
+ $('.loading_layer').removeClass('active');
|
|
| 2705 |
+ } |
|
| 2706 |
+ , error: function (e) {
|
|
| 2707 |
+ alert("에러가 발생했습니다."); console.log("ERROR : ", e);
|
|
| 2708 |
+ } |
|
| 2709 |
+ }); |
|
| 2710 |
+ } |
|
| 2711 |
+} |
|
| 2425 | 2712 |
</script> |
| 2426 | 2713 |
<style> |
| 2427 | 2714 |
.fileView {border-bottom: inherit !important;}
|
... | ... | @@ -2574,7 +2861,6 @@ |
| 2574 | 2861 |
</select> |
| 2575 | 2862 |
</td> |
| 2576 | 2863 |
</tr> |
| 2577 |
- <%-- |
|
| 2578 | 2864 |
<tr> |
| 2579 | 2865 |
<th>스미싱 의심(카톡)</th> |
| 2580 | 2866 |
<td> |
... | ... | @@ -2585,9 +2871,8 @@ |
| 2585 | 2871 |
</td> |
| 2586 | 2872 |
<th></th> |
| 2587 | 2873 |
<td> |
| 2588 |
- </td> |
|
| 2874 |
+ </td> |
|
| 2589 | 2875 |
</tr> |
| 2590 |
- --%> |
|
| 2591 | 2876 |
<tr> |
| 2592 | 2877 |
<th>전용 전송사</th> |
| 2593 | 2878 |
<td> |
... | ... | @@ -3022,7 +3307,6 @@ |
| 3022 | 3307 |
</select> |
| 3023 | 3308 |
</td> |
| 3024 | 3309 |
</tr> |
| 3025 |
- <%-- |
|
| 3026 | 3310 |
<tr> |
| 3027 | 3311 |
<th>스미싱 의심(카톡)</th> |
| 3028 | 3312 |
<td> |
... | ... | @@ -3035,7 +3319,6 @@ |
| 3035 | 3319 |
<td> |
| 3036 | 3320 |
</td> |
| 3037 | 3321 |
</tr> |
| 3038 |
- --%> |
|
| 3039 | 3322 |
<tr> |
| 3040 | 3323 |
<th>전용 전송사</th> |
| 3041 | 3324 |
<td> |
... | ... | @@ -3406,7 +3689,7 @@ |
| 3406 | 3689 |
<c:otherwise> |
| 3407 | 3690 |
그림문자 |
| 3408 | 3691 |
</c:otherwise> |
| 3409 |
- </c:choose> |
|
| 3692 |
+ </c:choose> |
|
| 3410 | 3693 |
<div class="sms_detail_hover"> |
| 3411 | 3694 |
<c:if test="${not empty fn:split(mjonMsgSentList.atchFiles, '^')[0]}">
|
| 3412 | 3695 |
<img class="MyMsgImg1" src="/cmm/fms/getImage2.do?atchFileId=${fn:split(mjonMsgSentList.atchFiles, '^')[0]}&fileSn=0" style="width: 110px;">
|
... | ... | @@ -3602,7 +3885,7 @@ |
| 3602 | 3885 |
<c:otherwise> |
| 3603 | 3886 |
그림문자 |
| 3604 | 3887 |
</c:otherwise> |
| 3605 |
- </c:choose> |
|
| 3888 |
+ </c:choose> |
|
| 3606 | 3889 |
<div class="sms_detail_hover"> |
| 3607 | 3890 |
<c:if test="${not empty fn:split(mjonMsgSentList.atchFiles, '^')[0]}">
|
| 3608 | 3891 |
<img class="MyMsgImg1" src="/cmm/fms/getImage2.do?atchFileId=${fn:split(mjonMsgSentList.atchFiles, '^')[0]}&fileSn=0" style="width: 110px;">
|
... | ... | @@ -3800,14 +4083,7 @@ |
| 3800 | 4083 |
|
| 3801 | 4084 |
<c:choose> |
| 3802 | 4085 |
<c:when test="${empty mjonMsgDelaySentList.smsTxt}">
|
| 3803 |
- <c:choose> |
|
| 3804 |
- <c:when test="${mjonMsgDelaySentList.msgType eq '4'}">
|
|
| 3805 |
- 내용없음 |
|
| 3806 |
- </c:when> |
|
| 3807 |
- <c:otherwise> |
|
| 3808 |
- 그림문자 |
|
| 3809 |
- </c:otherwise> |
|
| 3810 |
- </c:choose> |
|
| 4086 |
+ 그림문자 |
|
| 3811 | 4087 |
<div class="sms_detail_hover"> |
| 3812 | 4088 |
<c:if test="${not empty fn:split(mjonMsgDelaySentList.atchFiles, '^')[0]}">
|
| 3813 | 4089 |
<img class="MyMsgImg1" src="/cmm/fms/getImage2.do?atchFileId=${fn:split(mjonMsgDelaySentList.atchFiles, '^')[0]}&fileSn=0" style="width: 120px;">
|
... | ... | @@ -4126,23 +4402,23 @@ |
| 4126 | 4402 |
<c:otherwise> |
| 4127 | 4403 |
- |
| 4128 | 4404 |
</c:otherwise> |
| 4129 |
- </c:choose> |
|
| 4405 |
+ </c:choose> |
|
| 4130 | 4406 |
</c:otherwise> |
| 4131 |
- </c:choose> |
|
| 4407 |
+ </c:choose> |
|
| 4132 | 4408 |
</td> |
| 4133 | 4409 |
</td> |
| 4134 | 4410 |
<td><c:out value="${kakaoReserveList.yellowId}"/></td>
|
| 4135 | 4411 |
<td class="sms_detail" style="text-align: left;"> |
| 4136 | 4412 |
<c:choose> |
| 4137 | 4413 |
<c:when test="${empty kakaoReserveList.smsTxt}">
|
| 4138 |
- - |
|
| 4414 |
+ - |
|
| 4139 | 4415 |
</c:when> |
| 4140 | 4416 |
<c:otherwise> |
| 4141 | 4417 |
<div class="ellipsis_line"> |
| 4142 | 4418 |
<c:out value="${kakaoReserveList.smsTxt}"/>
|
| 4143 | 4419 |
</div> |
| 4144 | 4420 |
</c:otherwise> |
| 4145 |
- </c:choose> |
|
| 4421 |
+ </c:choose> |
|
| 4146 | 4422 |
</td> |
| 4147 | 4423 |
<td><fmt:formatNumber value="${kakaoReserveList.msgGroupCnt}" type="number" /></td>
|
| 4148 | 4424 |
<td><fmt:formatNumber value="${kakaoReserveList.successCount}" type="number" /></td>
|
... | ... | @@ -4164,7 +4440,138 @@ |
| 4164 | 4440 |
</div> |
| 4165 | 4441 |
</div> |
| 4166 | 4442 |
|
| 4167 |
- <!-- 최근 카카오톡 전송 내역 --> |
|
| 4443 |
+ <!-- 최근 알림톡 지연 내역 --> |
|
| 4444 |
+ <form id="kakaoATDelayForm" name="kakaoATDelayForm" mehoth="post"> |
|
| 4445 |
+ <div class="title_box"> |
|
| 4446 |
+ <p>최근 알림톡 지연 내역</p> |
|
| 4447 |
+ <div class="button_box"> |
|
| 4448 |
+ <button type="button" onclick="kakaoATDelaySendArray(); return false;" class="fillBlue">발송승인</button> |
|
| 4449 |
+ <button type="button" onclick="kakaoATDelayCancelArray(); return false;" class="fillRed">발송취소</button> |
|
| 4450 |
+ </div> |
|
| 4451 |
+ </div> |
|
| 4452 |
+ <table class="user_table_col"> |
|
| 4453 |
+ <colgroup> |
|
| 4454 |
+ <col style="width:5%;"> |
|
| 4455 |
+ <col style="width:9%;"> |
|
| 4456 |
+ <col style="width:13%;"> |
|
| 4457 |
+ <col style="width:15%;"> |
|
| 4458 |
+ <col style="width:auto;"> |
|
| 4459 |
+ <col style="width:8%;"> |
|
| 4460 |
+ <col style="width:8%;"> |
|
| 4461 |
+ <col style="width:8%;"> |
|
| 4462 |
+ <col style="width:8%;"> |
|
| 4463 |
+ </colgroup> |
|
| 4464 |
+ <thead> |
|
| 4465 |
+ <tr> |
|
| 4466 |
+ <th> |
|
| 4467 |
+ <input type="checkbox" name="kakaoATCheckAll" id="kakaoATCheckAll" onclick="kakaoATDelayCheckAll();" /> |
|
| 4468 |
+ <label for="kakaoATCheckAll"></label> |
|
| 4469 |
+ </th> |
|
| 4470 |
+ <th>종류</th> |
|
| 4471 |
+ <th>등록일시</th> |
|
| 4472 |
+ <th>전송일시</th> |
|
| 4473 |
+ <th>채널ID</th> |
|
| 4474 |
+ <th>내용</th> |
|
| 4475 |
+ <th>건수</th> |
|
| 4476 |
+ <th>발송</th> |
|
| 4477 |
+ <th>취소</th> |
|
| 4478 |
+ </tr> |
|
| 4479 |
+ </thead> |
|
| 4480 |
+ <tbody> |
|
| 4481 |
+ <c:choose> |
|
| 4482 |
+ <c:when test="${not empty kakaoATDelaySentList}">
|
|
| 4483 |
+ <c:forEach var="kakaoDelayInfo" items="${kakaoATDelaySentList}" varStatus="status">
|
|
| 4484 |
+ <c:if test="${status.count < 4}">
|
|
| 4485 |
+ <tr> |
|
| 4486 |
+ <td> |
|
| 4487 |
+ <input name="kakaoATCheckDelayField" id="<c:out value='${kakaoDelayInfo.msgGroupId}'/>" title="Check <c:out value="${status.count}"/>" type="checkbox"/>
|
|
| 4488 |
+ <label for="<c:out value="${result.uniqId}"/>"></label>
|
|
| 4489 |
+ <input name="kakaoATCheckDelayId" type="hidden" class="${result.userId}" value="<c:out value='${kakaoDelayInfo.msgGroupId}'/>"/>
|
|
| 4490 |
+ </td> |
|
| 4491 |
+ <td> |
|
| 4492 |
+ <c:choose> |
|
| 4493 |
+ <c:when test="${kakaoDelayInfo.msgType == '8'}">
|
|
| 4494 |
+ 알림톡 |
|
| 4495 |
+ </c:when> |
|
| 4496 |
+ <c:when test="${kakaoDelayInfo.msgType == '9'}">
|
|
| 4497 |
+ 친구톡 |
|
| 4498 |
+ </c:when> |
|
| 4499 |
+ <c:otherwise> |
|
| 4500 |
+ - |
|
| 4501 |
+ </c:otherwise> |
|
| 4502 |
+ </c:choose> |
|
| 4503 |
+ </td> |
|
| 4504 |
+ <td> |
|
| 4505 |
+ <c:choose> |
|
| 4506 |
+ <c:when test="${not empty kakaoDelayInfo.regDate}">
|
|
| 4507 |
+ <fmt:parseDate value="${kakaoDelayInfo.regDate}" var="kakaoDelayRegdate" pattern="yyyy-MM-dd HH:mm:ss"/>
|
|
| 4508 |
+ <fmt:formatDate value="${kakaoDelayRegdate}" pattern="MM-dd HH:mm"/>
|
|
| 4509 |
+ </c:when> |
|
| 4510 |
+ <c:otherwise> |
|
| 4511 |
+ - |
|
| 4512 |
+ </c:otherwise> |
|
| 4513 |
+ </c:choose> |
|
| 4514 |
+ </td> |
|
| 4515 |
+ <td> |
|
| 4516 |
+ <c:choose> |
|
| 4517 |
+ <c:when test="${not empty kakaoDelayInfo.sentDate}">
|
|
| 4518 |
+ <fmt:formatDate value="${kakaoDelayInfo.sentDate}" pattern="yyyy-MM-dd HH:mm"/>
|
|
| 4519 |
+ </c:when> |
|
| 4520 |
+ <c:otherwise> |
|
| 4521 |
+ <c:choose> |
|
| 4522 |
+ <c:when test="${kakaoDelayInfo.atDelayYn eq 'Y'}">
|
|
| 4523 |
+ [스미싱의심] |
|
| 4524 |
+ <fmt:parseDate value="${kakaoDelayInfo.reqDate}" var="kakaoDelayReqDate" pattern="yyyy-MM-dd HH:mm:ss"/>
|
|
| 4525 |
+ <fmt:formatDate value="${kakaoDelayReqDate}" pattern="MM-dd HH:mm"/>
|
|
| 4526 |
+ </c:when> |
|
| 4527 |
+ <c:otherwise> |
|
| 4528 |
+ - |
|
| 4529 |
+ </c:otherwise> |
|
| 4530 |
+ </c:choose> |
|
| 4531 |
+ </c:otherwise> |
|
| 4532 |
+ </c:choose> |
|
| 4533 |
+ </td> |
|
| 4534 |
+ <td> |
|
| 4535 |
+ <c:out value="${kakaoDelayInfo.yellowId}"/>
|
|
| 4536 |
+ </td> |
|
| 4537 |
+ <td class="sms_detail" style="text-align: left;"> |
|
| 4538 |
+ <c:choose> |
|
| 4539 |
+ <c:when test="${empty kakaoDelayInfo.smsTxt}">
|
|
| 4540 |
+ - |
|
| 4541 |
+ </c:when> |
|
| 4542 |
+ <c:otherwise> |
|
| 4543 |
+ <div class="ellipsis_line"> |
|
| 4544 |
+ <c:out value="${kakaoDelayInfo.smsTxt}"/>
|
|
| 4545 |
+ </div> |
|
| 4546 |
+ </c:otherwise> |
|
| 4547 |
+ </c:choose> |
|
| 4548 |
+ </td> |
|
| 4549 |
+ <td> |
|
| 4550 |
+ <fmt:formatNumber value="${kakaoDelayInfo.msgGroupCnt}" type="number" />
|
|
| 4551 |
+ </td> |
|
| 4552 |
+ <td> |
|
| 4553 |
+ <button type="button" class="thinfill" id="kakaoATDelaySend${status.count}" name="msgDelaySend"
|
|
| 4554 |
+ onclick="kakaoATDelaySend('<c:out value="${kakaoDelayInfo.msgGroupId}"/>'); return false;">승인</button>
|
|
| 4555 |
+ </td> |
|
| 4556 |
+ <td> |
|
| 4557 |
+ <button type="button" class="thinfill" id="kakaoATDelayCancel${status.count}" name="msgDelayCancel"
|
|
| 4558 |
+ onclick="kakaoATDelayCancel('<c:out value="${kakaoDelayInfo.msgGroupId}"/>'); return false;">취소</button>
|
|
| 4559 |
+ </td> |
|
| 4560 |
+ </tr> |
|
| 4561 |
+ </c:if> |
|
| 4562 |
+ </c:forEach> |
|
| 4563 |
+ </c:when> |
|
| 4564 |
+ <c:otherwise> |
|
| 4565 |
+ <tr> |
|
| 4566 |
+ <td colspan="9">카카오톡 발송 내역이 없습니다.</td> |
|
| 4567 |
+ </tr> |
|
| 4568 |
+ </c:otherwise> |
|
| 4569 |
+ </c:choose> |
|
| 4570 |
+ </tbody> |
|
| 4571 |
+ </table> |
|
| 4572 |
+ </form> |
|
| 4573 |
+ |
|
| 4574 |
+ <!-- 최근 팩스 전송 내역 --> |
|
| 4168 | 4575 |
<div class="title_box"> |
| 4169 | 4576 |
<p>최근 팩스 전송 내역</p> |
| 4170 | 4577 |
<div class="button_box"> |
... | ... | @@ -4225,8 +4632,8 @@ |
| 4225 | 4632 |
<col style="width:calc(100%/2);"> |
| 4226 | 4633 |
<col style="width:calc(100%/2);"> |
| 4227 | 4634 |
<col style="width:calc(100%/2);"> |
| 4228 |
- <col style="width:calc(100%/2);"> |
|
| 4229 |
- <col style="width:calc(100%/2);"> |
|
| 4635 |
+ <col style="width:calc(100%/2);"> |
|
| 4636 |
+ <col style="width:calc(100%/2);"> |
|
| 4230 | 4637 |
</colgroup> |
| 4231 | 4638 |
<thead> |
| 4232 | 4639 |
<tr> |
... | ... | @@ -4273,7 +4680,7 @@ |
| 4273 | 4680 |
<span class="c_999999">발신번호 차단</span> |
| 4274 | 4681 |
</c:otherwise> |
| 4275 | 4682 |
</c:choose> |
| 4276 |
- </td> |
|
| 4683 |
+ </td> |
|
| 4277 | 4684 |
</tr> |
| 4278 | 4685 |
</c:forEach> |
| 4279 | 4686 |
</c:when> |
... | ... | @@ -4391,7 +4798,7 @@ |
| 4391 | 4798 |
<c:set var="userPriceL" value="${longPrice}"/>
|
| 4392 | 4799 |
<c:set var="userPriceP" value="${picturePrice}"/>
|
| 4393 | 4800 |
<c:set var="userPriceP2" value="${picture2Price}"/>
|
| 4394 |
- <c:set var="userPriceP3" value="${picture3Price}"/>
|
|
| 4801 |
+ <c:set var="userPriceP3" value="${picture3Price}"/>
|
|
| 4395 | 4802 |
<tr> |
| 4396 | 4803 |
<td>고객단가</td> |
| 4397 | 4804 |
<td> |
... | ... | @@ -4532,7 +4939,7 @@ |
| 4532 | 4939 |
</c:otherwise> |
| 4533 | 4940 |
</c:choose> |
| 4534 | 4941 |
</div> |
| 4535 |
- </td> |
|
| 4942 |
+ </td> |
|
| 4536 | 4943 |
<td> |
| 4537 | 4944 |
<c:choose> |
| 4538 | 4945 |
<c:when test="${userLogin.loginYn == 'Y'}">
|
--- src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/ReserveKakaoATDetailList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/ReserveKakaoATDetailList.jsp
... | ... | @@ -150,6 +150,7 @@ |
| 150 | 150 |
<input type="hidden" name="detailType" value="<c:out value="${searchVO.detailType}" />" />
|
| 151 | 151 |
<input type="hidden" name="ntceBgnde" id="ntceBgnde" value=""> |
| 152 | 152 |
<input type="hidden" name="ntceEndde" id="ntceEndde" value=""> |
| 153 |
+ <input type="hidden" name="userId" id="userId" value="<c:out value="${searchVO.userId}" />" />
|
|
| 153 | 154 |
|
| 154 | 155 |
<div class="contWrap"> |
| 155 | 156 |
<div class="pageTitle"> |
--- src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/ReserveKakaoATList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/ReserveKakaoATList.jsp
... | ... | @@ -351,10 +351,10 @@ |
| 351 | 351 |
if(checkedIds.length > 0) {
|
| 352 | 352 |
var msg = ""; |
| 353 | 353 |
if(flag == 'on') {
|
| 354 |
- document.listForm.smishingYn.value='Y'; |
|
| 354 |
+ document.listForm.atSmishingYn.value='Y'; |
|
| 355 | 355 |
msg = "선택하신 사용자의 스미싱의심을 On 하시겠습니까?"; |
| 356 | 356 |
} else {
|
| 357 |
- document.listForm.smishingYn.value='N'; |
|
| 357 |
+ document.listForm.atSmishingYn.value='N'; |
|
| 358 | 358 |
msg = "선택하신 사용자의 스미싱의심을 Off 하시겠습니까?"; |
| 359 | 359 |
} |
| 360 | 360 |
if(confirm(msg)){
|
... | ... | @@ -398,7 +398,7 @@ |
| 398 | 398 |
<input type="hidden" name="ntceEndde" id="ntceEndde" value=""> |
| 399 | 399 |
<input type="hidden" name="adminSmsNoticeYn" value=""/> |
| 400 | 400 |
<input name="checkedIdForDel" type="hidden" /> |
| 401 |
- <input type="hidden" name="smishingYn" value=""/> |
|
| 401 |
+ <input type="hidden" name="atSmishingYn" value=""/> |
|
| 402 | 402 |
|
| 403 | 403 |
<div class="contWrap"> |
| 404 | 404 |
<div class="pageTitle"> |
... | ... | @@ -484,9 +484,8 @@ |
| 484 | 484 |
<col style="width: 5%"> |
| 485 | 485 |
<col style="width: 13%"> |
| 486 | 486 |
<col style="width: 13%"> |
| 487 |
- <%-- <col style="width: 10%"> --%> |
|
| 488 | 487 |
<col style="width: 10%"> |
| 489 |
- <%-- <col style="width: 10%"> --%> |
|
| 488 |
+ <col style="width: 10%"> |
|
| 490 | 489 |
<col style="width: 10%"> |
| 491 | 490 |
<col style="width: 5%"> |
| 492 | 491 |
<col style="width: auto"> |
... | ... | @@ -498,15 +497,12 @@ |
| 498 | 497 |
<th>번호<input type="button" class="sort sortBtn" id="sort_msgGroupId"></th> |
| 499 | 498 |
<th>아이디<input type="button" class="sort sortBtn" id="sort_userId"></th> |
| 500 | 499 |
<th>채널ID<input type="button" class="sort sortBtn" id="sort_yellowId"></th> |
| 501 |
- <!-- <th>qkf<input type="button" class="sort sortBtn" id="sort_callFrom"></th> --> |
|
| 502 | 500 |
<th>발송건수<input type="button" class="sort sortBtn" id="sort_msgGroupCnt"></th> |
| 503 |
- <!-- <th>스미싱의심</th> --> |
|
| 501 |
+ <th>스미싱의심</th> |
|
| 504 | 502 |
<th>요청시간<input type="button" class="sort sortBtn" id="sort_reqDate"></th> |
| 505 | 503 |
<th>예약<input type="button" class="sort sortBtn" id="sort_reserveYn"></th> |
| 506 | 504 |
<th>내용<input type="button" class="sort sortBtn" id="sort_smsTxt"></th> |
| 507 | 505 |
<th>타입<input type="button" class="sort sortBtn" id="sort_msgType"></th> |
| 508 |
- <!-- <th>전송사<input type="button" class="sort sortBtn" id="sort_agentCodeTxt"></th> --> |
|
| 509 |
- <!-- <th>통신사<input type="button" class="sort sortBtn" id="sort_rsltNet"></th> --> |
|
| 510 | 506 |
</tr> |
| 511 | 507 |
</thead> |
| 512 | 508 |
<tbody> |
... | ... | @@ -516,7 +512,7 @@ |
| 516 | 512 |
<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>
|
| 517 | 513 |
<input name="checkId" type="hidden" class="${result.userId}" value="<c:out value='${result.userId}'/>:<c:out value='${result.userId}'/>"/>
|
| 518 | 514 |
</td> |
| 519 |
- <td> |
|
| 515 |
+ <td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
|
| 520 | 516 |
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
|
| 521 | 517 |
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
|
| 522 | 518 |
</c:if> |
... | ... | @@ -524,23 +520,17 @@ |
| 524 | 520 |
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
|
| 525 | 521 |
</c:if> |
| 526 | 522 |
</td> |
| 527 |
- <td> |
|
| 523 |
+ <td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
|
| 528 | 524 |
<div class="id_box <c:if test='${result.vipYn eq "Y" }'>vip</c:if>">
|
| 529 | 525 |
<a href="#" onclick="javascript:fnSelectMber('<c:out value="${result.userId}"/>'); return false;">
|
| 530 | 526 |
<c:out value="${result.userId}"/>(<c:out value="${result.userNm}"/>)
|
| 531 | 527 |
</a> |
| 532 | 528 |
</div> |
| 533 | 529 |
</td> |
| 534 |
- |
|
| 535 |
- <td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
|
| 536 |
- <c:out value="${result.yellowId}"/>
|
|
| 537 |
- </td> |
|
| 538 |
- |
|
| 539 |
- <%-- <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>>
|
|
| 540 |
- <c:out value="${result.callFrom}"/>
|
|
| 541 |
- </td> --%> |
|
| 542 |
- |
|
| 543 |
- <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;">
|
|
| 530 |
+ <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>>
|
|
| 531 |
+ <c:out value="${result.yellowId}"/>
|
|
| 532 |
+ </td> |
|
| 533 |
+ <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>>
|
|
| 544 | 534 |
<c:choose> |
| 545 | 535 |
<c:when test="${result.successCount > 0}">
|
| 546 | 536 |
<c:out value="${result.msgGroupCnt}"/>(<fmt:formatNumber value="${(result.successCount / result.msgGroupCnt) * 100}" pattern="#,###" />%)
|
... | ... | @@ -549,20 +539,50 @@ |
| 549 | 539 |
<span style="color: #0000FF;"> |
| 550 | 540 |
<c:out value="${result.msgGroupCnt}"/>(<fmt:formatNumber value="${(result.successCount / result.msgGroupCnt) * 100}" pattern="#,###" />%)
|
| 551 | 541 |
<c:if test="${result.msgGroupCnt eq result.callRejectionCount && result.callbackYn eq 'N' && result.userCallbackYn eq 'N' }">
|
| 552 |
- <%-- <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="문자" /> --%>
|
|
| 553 |
- </c:if> |
|
| 542 |
+ <%-- <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="문자" /> --%>
|
|
| 543 |
+ </c:if> |
|
| 554 | 544 |
<c:if test="${result.callbackYn eq 'Y' }">
|
| 555 |
- <span style="color: #0000FF;" title="번호도용 문자차단 안내문자 발송완료">안내완료</span> |
|
| 556 |
- </c:if> |
|
| 545 |
+ <span style="color: #0000FF;" title="번호도용 문자차단 안내문자 발송완료">안내완료</span> |
|
| 546 |
+ </c:if> |
|
| 557 | 547 |
</span> |
| 558 | 548 |
</c:otherwise> |
| 559 |
- </c:choose> |
|
| 549 |
+ </c:choose> |
|
| 560 | 550 |
</td> |
| 561 |
- <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}"/>">
|
|
| 551 |
+ <td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
|
| 552 |
+ <c:choose> |
|
| 553 |
+ <c:when test="${result.atDelayYn eq 'Y'}">
|
|
| 554 |
+ <c:choose> |
|
| 555 |
+ <c:when test="${result.atDelayCompleteYn eq 'Y' && not empty result.cancelDate}">
|
|
| 556 |
+ <span style="color: #0000FF;"> |
|
| 557 |
+ <c:if test="${result.smishingYn eq 'Y'}">온</c:if><c:if test="${result.smishingYn eq 'N'}">오프</c:if>[이용정지]
|
|
| 558 |
+ <span style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;margin-top:3px;" title="<c:out value="${result.cancelDate}"/>">
|
|
| 559 |
+ <fmt:parseDate value="${result.cancelDate}" var="cancelDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
|
| 560 |
+ <fmt:formatDate value="${cancelDateValue}" pattern="MM-dd HH:mm"/>
|
|
| 561 |
+ </span> |
|
| 562 |
+ </span> |
|
| 563 |
+ </c:when> |
|
| 564 |
+ <c:when test="${result.atDelayCompleteYn eq 'N'}">
|
|
| 565 |
+ <c:if test="${result.atSmishingYn eq 'Y'}">온</c:if>
|
|
| 566 |
+ <c:if test="${result.atSmishingYn eq 'N'}">오프</c:if>[미처리]
|
|
| 567 |
+ </c:when> |
|
| 568 |
+ <c:otherwise> |
|
| 569 |
+ <span style="color: #0000FF;"> |
|
| 570 |
+ <c:if test="${result.atSmishingYn eq 'Y'}">온</c:if>
|
|
| 571 |
+ <c:if test="${result.atSmishingYn eq 'N'}">오프</c:if>[승인]
|
|
| 572 |
+ </span> |
|
| 573 |
+ </c:otherwise> |
|
| 574 |
+ </c:choose> |
|
| 575 |
+ </c:when> |
|
| 576 |
+ <c:otherwise> |
|
| 577 |
+ - |
|
| 578 |
+ </c:otherwise> |
|
| 579 |
+ </c:choose> |
|
| 580 |
+ </td> |
|
| 581 |
+ <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>>
|
|
| 562 | 582 |
<fmt:parseDate value="${result.reqDate}" var="reqDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
| 563 |
- <fmt:formatDate value="${reqDateValue}" pattern="MM-dd HH:mm"/>
|
|
| 583 |
+ <fmt:formatDate value="${reqDateValue}" pattern="MM-dd HH:mm"/>
|
|
| 564 | 584 |
</td> |
| 565 |
- <td onclick="fn_detail_list('${result.msgGroupId}'); return false;" style="cursor:pointer;">
|
|
| 585 |
+ <td onclick="fn_detail_list('${result.msgGroupId}'); return false;" style="cursor:pointer;" <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
|
| 566 | 586 |
<c:choose> |
| 567 | 587 |
<c:when test="${result.reserveYn eq 'Y'}">
|
| 568 | 588 |
예약 |
... | ... | @@ -572,25 +592,20 @@ |
| 572 | 592 |
</c:otherwise> |
| 573 | 593 |
</c:choose> |
| 574 | 594 |
</td> |
| 575 |
- <td class="sms_detail left" onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
|
| 595 |
+ <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;">
|
|
| 576 | 596 |
<p><c:out value="${result.smsTxt}"/></p>
|
| 577 | 597 |
<div class="sms_detail_hover"> |
| 578 | 598 |
<c:out value="${fn:replace(fn:replace(result.smsTxt, newLineChar, '<br/>'), newLineChar2, '<br/>')}" escapeXml="false"/>
|
| 579 | 599 |
</div> |
| 580 | 600 |
</td> |
| 581 |
- <td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
|
| 601 |
+ <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>>
|
|
| 582 | 602 |
<c:out value="${result.msgTypeName}"/>
|
| 583 | 603 |
</td> |
| 584 |
- <%-- <td><c:out value="${result.conectMthdTxt}"/></td> --%>
|
|
| 585 |
- <%-- <td <c:if test="${result.smishingYn eq 'Y'}">class="smishing"</c:if>>
|
|
| 586 |
- <c:out value="${result.agentCodeTxt}"/>
|
|
| 587 |
- </td> --%> |
|
| 588 |
- <%-- <td><c:out value="${result.rsltNet}"/></td> --%>
|
|
| 589 | 604 |
</tr> |
| 590 | 605 |
</c:forEach> |
| 591 | 606 |
<c:if test="${empty resultList}">
|
| 592 |
- <tr><td colspan="8"><spring:message code="common.nodata.msg" /></td></tr> |
|
| 593 |
- </c:if> |
|
| 607 |
+ <tr><td colspan="10"><spring:message code="common.nodata.msg" /></td></tr> |
|
| 608 |
+ </c:if> |
|
| 594 | 609 |
</tbody> |
| 595 | 610 |
</table> |
| 596 | 611 |
</div> |
--- src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp
... | ... | @@ -456,7 +456,7 @@ |
| 456 | 456 |
<col style="width: 13%"> |
| 457 | 457 |
<%-- <col style="width: 10%"> --%> |
| 458 | 458 |
<col style="width: 10%"> |
| 459 |
- <%-- <col style="width: 10%"> --%> |
|
| 459 |
+ <col style="width: 10%"> |
|
| 460 | 460 |
<col style="width: 10%"> |
| 461 | 461 |
<col style="width: 5%"> |
| 462 | 462 |
<col style="width: auto"> |
... | ... | @@ -468,15 +468,12 @@ |
| 468 | 468 |
<th>번호<input type="button" class="sort sortBtn" id="sort_msgGroupId"></th> |
| 469 | 469 |
<th>아이디<input type="button" class="sort sortBtn" id="sort_userId"></th> |
| 470 | 470 |
<th>채널ID<input type="button" class="sort sortBtn" id="sort_yellowId"></th> |
| 471 |
- <!-- <th>qkf<input type="button" class="sort sortBtn" id="sort_callFrom"></th> --> |
|
| 472 | 471 |
<th>발송건수<input type="button" class="sort sortBtn" id="sort_msgGroupCnt"></th> |
| 473 |
- <!-- <th>스미싱의심</th> --> |
|
| 472 |
+ <th>스미싱의심</th> |
|
| 474 | 473 |
<th>요청시간<input type="button" class="sort sortBtn" id="sort_reqDate"></th> |
| 475 | 474 |
<th>예약<input type="button" class="sort sortBtn" id="sort_reserveYn"></th> |
| 476 | 475 |
<th>내용<input type="button" class="sort sortBtn" id="sort_smsTxt"></th> |
| 477 | 476 |
<th>타입<input type="button" class="sort sortBtn" id="sort_msgType"></th> |
| 478 |
- <!-- <th>전송사<input type="button" class="sort sortBtn" id="sort_agentCodeTxt"></th> --> |
|
| 479 |
- <!-- <th>통신사<input type="button" class="sort sortBtn" id="sort_rsltNet"></th> --> |
|
| 480 | 477 |
</tr> |
| 481 | 478 |
</thead> |
| 482 | 479 |
<tbody> |
... | ... | @@ -486,7 +483,7 @@ |
| 486 | 483 |
<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>
|
| 487 | 484 |
<input name="checkId" type="hidden" class="${result.userId}" value="<c:out value='${result.userId}'/>:<c:out value='${result.userId}'/>"/>
|
| 488 | 485 |
</td> |
| 489 |
- <td> |
|
| 486 |
+ <td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
|
| 490 | 487 |
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
|
| 491 | 488 |
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
|
| 492 | 489 |
</c:if> |
... | ... | @@ -494,23 +491,17 @@ |
| 494 | 491 |
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
|
| 495 | 492 |
</c:if> |
| 496 | 493 |
</td> |
| 497 |
- <td> |
|
| 494 |
+ <td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
|
| 498 | 495 |
<div class="id_box <c:if test='${result.vipYn eq "Y" }'>vip</c:if>">
|
| 499 | 496 |
<a href="#" onclick="javascript:fnSelectMber('<c:out value="${result.userId}"/>'); return false;">
|
| 500 | 497 |
<c:out value="${result.userId}"/>(<c:out value="${result.userNm}"/>)
|
| 501 | 498 |
</a> |
| 502 | 499 |
</div> |
| 503 | 500 |
</td> |
| 504 |
- |
|
| 505 |
- <td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
|
| 501 |
+ <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>>
|
|
| 506 | 502 |
<c:out value="${result.yellowId}"/>
|
| 507 |
- </td> |
|
| 508 |
- |
|
| 509 |
- <%-- <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>>
|
|
| 510 |
- <c:out value="${result.callFrom}"/>
|
|
| 511 |
- </td> --%> |
|
| 512 |
- |
|
| 513 |
- <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;">
|
|
| 503 |
+ </td> |
|
| 504 |
+ <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>>
|
|
| 514 | 505 |
<c:choose> |
| 515 | 506 |
<c:when test="${result.successCount > 0}">
|
| 516 | 507 |
<c:out value="${result.msgGroupCnt}"/>(<fmt:formatNumber value="${(result.successCount / result.msgGroupCnt) * 100}" pattern="#,###" />%)
|
... | ... | @@ -519,20 +510,51 @@ |
| 519 | 510 |
<span style="color: #0000FF;"> |
| 520 | 511 |
<c:out value="${result.msgGroupCnt}"/>(<fmt:formatNumber value="${(result.successCount / result.msgGroupCnt) * 100}" pattern="#,###" />%)
|
| 521 | 512 |
<c:if test="${result.msgGroupCnt eq result.callRejectionCount && result.callbackYn eq 'N' && result.userCallbackYn eq 'N' }">
|
| 522 |
- <%-- <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="문자" /> --%>
|
|
| 523 |
- </c:if> |
|
| 513 |
+ |
|
| 514 |
+ </c:if> |
|
| 524 | 515 |
<c:if test="${result.callbackYn eq 'Y' }">
|
| 525 |
- <span style="color: #0000FF;" title="번호도용 문자차단 안내문자 발송완료">안내완료</span> |
|
| 526 |
- </c:if> |
|
| 516 |
+ <span style="color: #0000FF;" title="번호도용 문자차단 안내문자 발송완료">안내완료</span> |
|
| 517 |
+ </c:if> |
|
| 527 | 518 |
</span> |
| 528 | 519 |
</c:otherwise> |
| 529 | 520 |
</c:choose> |
| 530 | 521 |
</td> |
| 531 |
- <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}"/>">
|
|
| 522 |
+ <td <c:if test="${result.atSmishingYn eq 'Y'}">class="smishing"</c:if>>
|
|
| 523 |
+ <c:choose> |
|
| 524 |
+ <c:when test="${result.atDelayYn eq 'Y'}">
|
|
| 525 |
+ <c:choose> |
|
| 526 |
+ <c:when test="${result.atDelayCompleteYn eq 'Y' && not empty result.cancelDate}">
|
|
| 527 |
+ <span style="color: #0000FF;"> |
|
| 528 |
+ <c:if test="${result.atSmishingYn eq 'Y'}">온</c:if>
|
|
| 529 |
+ <c:if test="${result.atSmishingYn eq 'N'}">오프</c:if>[이용정지]
|
|
| 530 |
+ <span style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;margin-top:3px;" title="<c:out value="${result.cancelDate}"/>">
|
|
| 531 |
+ <fmt:parseDate value="${result.cancelDate}" var="cancelDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
|
| 532 |
+ <fmt:formatDate value="${cancelDateValue}" pattern="MM-dd HH:mm"/>
|
|
| 533 |
+ </span> |
|
| 534 |
+ </span> |
|
| 535 |
+ </c:when> |
|
| 536 |
+ <c:when test="${result.atDelayCompleteYn eq 'N'}">
|
|
| 537 |
+ <c:if test="${result.atSmishingYn eq 'Y'}">온</c:if>
|
|
| 538 |
+ <c:if test="${result.atSmishingYn eq 'N'}">오프</c:if>[미처리]
|
|
| 539 |
+ </c:when> |
|
| 540 |
+ <c:otherwise> |
|
| 541 |
+ <span style="color: #0000FF;"> |
|
| 542 |
+ <c:if test="${result.atSmishingYn eq 'Y'}">온</c:if>
|
|
| 543 |
+ <c:if test="${result.atSmishingYn eq 'N'}">오프</c:if>[승인]
|
|
| 544 |
+ </span> |
|
| 545 |
+ </c:otherwise> |
|
| 546 |
+ </c:choose> |
|
| 547 |
+ </c:when> |
|
| 548 |
+ <c:otherwise> |
|
| 549 |
+ - |
|
| 550 |
+ </c:otherwise> |
|
| 551 |
+ </c:choose> |
|
| 552 |
+ </td> |
|
| 553 |
+ <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>>
|
|
| 532 | 554 |
<fmt:parseDate value="${result.reqDate}" var="reqDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
| 533 | 555 |
<fmt:formatDate value="${reqDateValue}" pattern="MM-dd HH:mm"/>
|
| 534 | 556 |
</td> |
| 535 |
- <td onclick="fn_detail_list('${result.msgGroupId}', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
|
| 557 |
+ <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>>
|
|
| 536 | 558 |
<c:choose> |
| 537 | 559 |
<c:when test="${result.reserveYn eq 'Y'}">
|
| 538 | 560 |
예약 |
... | ... | @@ -542,20 +564,15 @@ |
| 542 | 564 |
</c:otherwise> |
| 543 | 565 |
</c:choose> |
| 544 | 566 |
</td> |
| 545 |
- <td class="sms_detail left" onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
|
| 567 |
+ <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;">
|
|
| 546 | 568 |
<p><c:out value="${result.smsTxt}"/></p>
|
| 547 | 569 |
<div class="sms_detail_hover"> |
| 548 | 570 |
<c:out value="${fn:replace(fn:replace(result.smsTxt, newLineChar, '<br/>'), newLineChar2, '<br/>')}" escapeXml="false"/>
|
| 549 | 571 |
</div> |
| 550 | 572 |
</td> |
| 551 |
- <td onclick="fn_detail_list('<c:out value="${result.msgGroupId}"/>', '<c:out value="${result.userId}"/>'); return false;" style="cursor:pointer;">
|
|
| 573 |
+ <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>>
|
|
| 552 | 574 |
<c:out value="${result.msgTypeName}"/>
|
| 553 | 575 |
</td> |
| 554 |
- <%-- <td><c:out value="${result.conectMthdTxt}"/></td> --%>
|
|
| 555 |
- <%-- <td <c:if test="${result.atSmishingYn eq 'Y'}">class="atSmishingYn"</c:if>>
|
|
| 556 |
- <c:out value="${result.agentCodeTxt}"/>
|
|
| 557 |
- </td> --%> |
|
| 558 |
- <%-- <td><c:out value="${result.rsltNet}"/></td> --%>
|
|
| 559 | 576 |
</tr> |
| 560 | 577 |
</c:forEach> |
| 561 | 578 |
<c:if test="${empty resultList}">
|
--- src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
... | ... | @@ -51,6 +51,11 @@ |
| 51 | 51 |
return false; |
| 52 | 52 |
} |
| 53 | 53 |
|
| 54 |
+ if(!moneyChk()){
|
|
| 55 |
+ return false; |
|
| 56 |
+ } |
|
| 57 |
+ |
|
| 58 |
+ |
|
| 54 | 59 |
if(!valueChk()){
|
| 55 | 60 |
return false; |
| 56 | 61 |
} |
... | ... | @@ -152,6 +157,19 @@ |
| 152 | 157 |
|
| 153 | 158 |
} |
| 154 | 159 |
|
| 160 |
+ function moneyChk(){
|
|
| 161 |
+ |
|
| 162 |
+ //회원 보유 잔액 비교 |
|
| 163 |
+ var totPriceOnly = stringReplaceAll($('#totalPriceTxt').text() , ",", "");
|
|
| 164 |
+ var userMoneyOnly = stringReplaceAll($('#hdUserMoney').text(), ",", "");
|
|
| 165 |
+ |
|
| 166 |
+ if(parseFloat(userMoneyOnly) < parseFloat(totPriceOnly)){
|
|
| 167 |
+ alert("팩스 발송에 필요한 회원님의 보유 잔액이 부족 합니다.");
|
|
| 168 |
+ return false; |
|
| 169 |
+ } |
|
| 170 |
+ } |
|
| 171 |
+ |
|
| 172 |
+ |
|
| 155 | 173 |
function valueChk(){
|
| 156 | 174 |
if($('#title').val() == ''){
|
| 157 | 175 |
alert('제목을 입력해 주세요.');
|
--- src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/at/KakaoAlimtalkMsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/at/KakaoAlimtalkMsgDataView.jsp
... | ... | @@ -1055,6 +1055,8 @@ |
| 1055 | 1055 |
<input type="hidden" id="callToList" name="callToList" value=""> <!--완 받는사람 리스트--> |
| 1056 | 1056 |
<input type="hidden" id="varNmList" name="varNmList" value=""> <!--완 변수 이름 리스트--> |
| 1057 | 1057 |
<input type="hidden" id="varValList" name="varValList" value=""> <!--완 변수 리스트--> |
| 1058 |
+ |
|
| 1059 |
+ <input type="hidden" id="atSmishingYn" name="atSmishingYn" value="${atSmishingYn}"> <!--알림톡 스미싱 여부-->
|
|
| 1058 | 1060 |
</form> |
| 1059 | 1061 |
|
| 1060 | 1062 |
<form id="excelForm" name="excelForm" action="<c:url value='/web/mjon/alimtalk/kakaoApiNotityTalkSampleExcelDownload.do'/>"> |
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?