diff --git a/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java b/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java index ba5594d1..dc4d986a 100644 --- a/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java +++ b/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java @@ -40,5 +40,7 @@ public interface MjonKakaoATService { //회원 정보 알림톡 상세정보 리스트 팝업 통계 정보 KakaoVO selectMjonKakaoStatisticATData(KakaoVO searchVO) throws Exception; + //알림톡 지연문자 리스트 조회 + List selectKakaoATDelaySentList(String userId) throws Exception; } diff --git a/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java b/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java index 9c7f9ca9..95a59740 100644 --- a/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java +++ b/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java @@ -88,4 +88,8 @@ public class MjonKakaoATDAO extends EgovAbstractDAO { return result; } + @SuppressWarnings("unchecked") + public List selectKakaoATDelaySentList(String userId) throws Exception{ + return (List)list("mjonKakaoATDAO.selectKakaoATDelaySentList", userId); + } } diff --git a/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java b/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java index 7b28abdc..fb8b4cbb 100644 --- a/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java +++ b/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java @@ -184,4 +184,9 @@ public class MjonKakaoATServiceImpl extends EgovAbstractServiceImpl implements M return result; } + + @Override + public List selectKakaoATDelaySentList(String userId) throws Exception { + return mjonKakaoATDAO.selectKakaoATDelaySentList(userId); + } } diff --git a/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java b/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java index ea28c920..7d6e61b7 100644 --- a/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java +++ b/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java @@ -157,6 +157,23 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements kakaoSandInfo.setReqDate(sdFormat.format(now)); } + + if(kakaoVO.getAtSmishingYn().equals("Y")) { + String sandDate = kakaoVO.getReqDate(); + SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + Date date = sdFormat.parse(sandDate); + + Calendar cal1 = Calendar.getInstance(); + cal1.setTime(date); // 시간 설정 + cal1.add(Calendar.MINUTE, 30); // 30분 연산 + + String reqDate = sdFormat.format(cal1.getTime()); + + System.out.println("@@@@@@@@@@@@@@ reqDate : "+reqDate); + kakaoVO.setReqDate(reqDate); + kakaoSandInfo.setReqDate(reqDate); + } + /**전송시간 설정 (끝)------------------------------------------------*/ /**카카오 전송 데이터 추가*/ @@ -231,6 +248,8 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements mjonMsgVO.setBefCash(kakaoVO.getBefCash()); mjonMsgVO.setBefPoint(kakaoVO.getBefPoint()); mjonMsgVO.setKakaoSubMagOrgnlTxt(kakaoVO.getKakaoSubMagOrgnlTxt()); + mjonMsgVO.setAtDelayYn(kakaoVO.getAtSmishingYn()); + if(kakaoVO.getBizJsonYn().equals("Y")) { mjonMsgVO.setFileCnt("1"); diff --git a/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java b/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java index 25b2b4d3..c909497a 100644 --- a/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java +++ b/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java @@ -154,6 +154,7 @@ public class KakaoAlimTalkSendController { mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); + model.addAttribute("atSmishingYn", mberManageVO.getAtSmishingYn()); } //3.사용자 개인단가 정보가 0이 아니면 개인단가 사용, 없으면 시스템 기본 단가 사용 diff --git a/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java b/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java index 36bc64c7..7d6b8299 100644 --- a/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java +++ b/src/main/java/itn/let/mjo/msg/service/MjonMsgService.java @@ -198,6 +198,12 @@ public interface MjonMsgService { //스팸 / 스미싱 지연 문자 즉시 발송처리 int updateMsgDelaySendRealTimeData(MjonResvMsgVO mjonResvMsgVO) throws Exception; + //스팸 / 스미싱 지연 알림톡 발송 취소 처리 + int deleteKakaoAtDelaySendCancelData(MjonResvMsgVO mjonResvMsgVO) throws Exception; + + //스팸 / 스미싱 지연 알림톡 즉시 발송처리 + int updateKakaoAtDelaySendRealTimeData(MjonResvMsgVO mjonResvMsgVO) throws Exception; + //문자 그룹아이디 리스트의 발송일자 정보 불러오기 List selectMsgGroupDataReqDateList(MjonResvMsgVO mjonResvMsgVO) throws Exception; @@ -212,6 +218,7 @@ public interface MjonMsgService { //카카오 발송 횟수 List selectWithKakaoSendTotCnt(MjonMsgVO mjonMsgVO) throws Exception; + //문자 발송 횟수 List selectMsgSendTotCnt(MjonMsgVO mjonMsgVO) throws Exception; } diff --git a/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java b/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java index d3513f0d..1c3527ff 100644 --- a/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java +++ b/src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java @@ -354,6 +354,10 @@ public class MjonMsgVO extends ComDefaultVO{ private String delayYn; // 문자 30분 지연 처리 유무 private String delayCompleteYn; // 문자 30분 지연 처리 완료 유무 + private String atDelayYn = "N"; // 알림 30분 지연 처리 유무 + private String atDelayCompleteYn; // 알림톡 30분 지연 처리 완료 유무 + private String atSmishingYn; // 알림 지연처리 + private int totalCallCnt; //수신자 전체 갯 private String bizLogCallStatus; //다우기술 biz_log 테이블의 발송결과 코드 값. @@ -1375,5 +1379,22 @@ public class MjonMsgVO extends ComDefaultVO{ public void setAccessKey(String accessKey) { this.accessKey = accessKey; } - + public String getAtDelayYn() { + return atDelayYn; + } + public void setAtDelayYn(String atDelayYn) { + this.atDelayYn = atDelayYn; + } + public String getAtDelayCompleteYn() { + return atDelayCompleteYn; + } + public void setAtDelayCompleteYn(String atDelayCompleteYn) { + this.atDelayCompleteYn = atDelayCompleteYn; + } + public String getAtSmishingYn() { + return atSmishingYn; + } + public void setAtSmishingYn(String atSmishingYn) { + this.atSmishingYn = atSmishingYn; + } } diff --git a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java index 2f0c8a94..81021f07 100644 --- a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java +++ b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgDAO.java @@ -431,6 +431,26 @@ public class MjonMsgDAO extends EgovAbstractDAO { update("mjonMsgDAO.updateMsgDelaySendRealTimeMsgGroupDataFlag", mjonMsgVO); } + // mj_msg_data 테이블 지연 알림톡 취소 값 수정 + public void updateKakaoAtDelayCancelMsgDataFlag(MjonMsgVO mjonMsgVO) { + update("mjonMsgDAO.updateKakaoAtDelayCancelMsgDataFlag", mjonMsgVO); + } + + // mj_msg_group_data 테이블 지연 알림톡 취소 값 수정 + public void updateKakaoAtDelayCancelMsgGroupDataFlag(MjonMsgVO mjonMsgVO) { + update("mjonMsgDAO.updateKakaoAtDelayCancelMsgGroupDataFlag", mjonMsgVO); + } + + // mj_msg_data 테이블 지연 알림톡 즉시발송 요청시간 수정 + public void updateKakaoAtDelaySendRealTimeMsgDataFlag(MjonMsgVO mjonMsgVO) { + update("mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgDataFlag", mjonMsgVO); + } + + // mj_msg_group_data 테이블 지연 알림톡 즉시발송 요청시간 수정 + public void updateKakaoAtDelaySendRealTimeMsgGroupDataFlag(MjonMsgVO mjonMsgVO) { + update("mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgGroupDataFlag", mjonMsgVO); + } + //문자 그룹아이디 리스트의 발송일자 정보 불러오기 @SuppressWarnings("unchecked") public List selectMsgGroupDataReqDateList(MjonResvMsgVO mjonResvMsgVO) throws Exception{ diff --git a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java index f67878fe..8db67237 100644 --- a/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java +++ b/src/main/java/itn/let/mjo/msg/service/impl/MjonMsgServiceImpl.java @@ -841,6 +841,119 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM return resultSts; } + //스팸 / 스미싱 지연 알림톡 발송 취소 처리 + @Override + public int deleteKakaoAtDelaySendCancelData(MjonResvMsgVO mjonResvMsgVO) throws Exception { + + int resultSts = 0; + + try { + + System.out.println("++++++++++++++++++ deleteKakaoAtDelaySendCancelData groupId ::: "+mjonResvMsgVO.getMsgGroupId()); + //삭제 문자 건수 MSG_SEQ 번호 받아오기 + List resultMsgSeqList = mjonReservMsgDAO.selectMsgSeqListByGroupId(mjonResvMsgVO); + + int size = resultMsgSeqList.size(); + List userDataList = new ArrayList(); + for(int i=0; i < size; i++) { + userDataList.add(resultMsgSeqList.get(i).getUserData()); + System.out.println(resultMsgSeqList.get(i).getUserData()); + } + + mjonResvMsgVO.setUserDataList(userDataList); + + + //비즈뿌리오 딜레이 알림톡 삭제 + resultSts = mjonReservMsgDAO.deleteBizMsgSeqListByMsgSeq(mjonResvMsgVO); + + System.out.println("++++++++++++++++++++++++++++++ resultSts ::: "+resultSts); + + //예약 취소 환불 처리 + if(resultSts > 0) { + + //그룹 데이터 정보 조회하기 + MjonMsgVO mjonMsgVO = mjonMsgDAO.selectMsgGroupDataByGoupId(mjonResvMsgVO); + + //mj_msg_data 테이블 지연 문자 취소 값 수정 + mjonMsgDAO.updateKakaoAtDelayCancelMsgDataFlag(mjonMsgVO); + + //mj_msg_group_data 테이블 예약 취소 값 수정 + mjonMsgDAO.updateKakaoAtDelayCancelMsgGroupDataFlag(mjonMsgVO); + + + //문자 발송 캐시 환불 해주기 + MjonPayVO mjonPayVO = new MjonPayVO(); + + mjonPayVO.setCashId(idgenMjonCashId.getNextStringId()); + mjonPayVO.setUserId(mjonMsgVO.getUserId()); + mjonPayVO.setCash(Float.parseFloat(mjonMsgVO.getTotPrice())); + mjonPayVO.setFrstRegisterId(mjonMsgVO.getUserId()); + mjonPayVO.setMemo("스팸/스미싱 지연 알림톡 취소 " + resultSts + "건 환불"); + mjonPayVO.setMsgGroupId(mjonMsgVO.getMsgGroupId()); + + mjonPayDAO.insertCash(mjonPayVO); //캐시 환불 + mjonPayDAO.updateMemberCash(mjonPayVO); //회원정보 업데이트 + + } + + + } catch (Exception e) { + System.out.println("+++++++++++++++++++++++++++++++++++ deleteMsgDelaySendCancelData ServiceImpl Error !!!! "+e); + } + return resultSts; + + } + + //스팸 / 스미싱 지연 알림톡 즉시 발송처리 + @Override + public int updateKakaoAtDelaySendRealTimeData(MjonResvMsgVO mjonResvMsgVO) throws Exception { + + int resultSts = 0; + + try { + + System.out.println("++++++++++++++++++ updateKakaoAtDelaySendRealTimeData groupId ::: "+mjonResvMsgVO.getMsgGroupId()); + //삭제 문자 건수 MSG_SEQ 번호 받아오기 + List resultMsgSeqList = mjonReservMsgDAO.selectMsgSeqListByGroupId(mjonResvMsgVO); + + int size = resultMsgSeqList.size(); + List userDataList = new ArrayList(); + for(int i=0; i < size; i++) { + + userDataList.add(resultMsgSeqList.get(i).getUserData()); + System.out.println(resultMsgSeqList.get(i).getUserData()); + + } + + mjonResvMsgVO.setUserDataList(userDataList); + + //비즈뿌리오 딜레이문자 즉시발송 처리 + resultSts = mjonReservMsgDAO.updateRealTimeBizMsgSeqListByMsgSeq(mjonResvMsgVO); + + System.out.println("++++++++++++++++++++++++++++++ resultSts ::: "+resultSts); + + //예약 취소 환불 처리 + if(resultSts > 0) { + + //그룹 데이터 정보 조회하기 + MjonMsgVO mjonMsgVO = mjonMsgDAO.selectMsgGroupDataByGoupId(mjonResvMsgVO); + + //mj_msg_data 테이블 지연 문자 즉시발송 요청 값 수정 + mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgDataFlag(mjonMsgVO); + + //mj_msg_group_data 테이블 즉시발송 요청 값 수정 + mjonMsgDAO.updateKakaoAtDelaySendRealTimeMsgGroupDataFlag(mjonMsgVO); + + } + + } catch (Exception e) { + System.out.println("+++++++++++++++++++++++++++++++++++ updateMsgDelaySendRealTimeDataAjax ServiceImpl Error !!!! "+e); + } + + + return resultSts; + } + //문자 그룹아이디 리스트의 발송일자 정보 불러오기 @Override public List selectMsgGroupDataReqDateList(MjonResvMsgVO mjonResvMsgVO) throws Exception{ diff --git a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java index b5e67096..072f9f47 100644 --- a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java +++ b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java @@ -3618,6 +3618,161 @@ public class MjonMsgController { return modelAndView; } + /** + * 스팸 및 스미싱 30분 지연알림톡 전송 취소 처리 + * @param mjonMsgVO + * @param model + * @return "/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do" + * @throws Exception + */ + @RequestMapping(value = {"/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do"}) + public ModelAndView deleteKakaoATDelaySendCancelDataAjax(MjonMsgVO mjonMsgVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + String isStatus = ""; + String msg = ""; + + //로그인 정보 획득 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + + modelAndView.addObject("isStatus", "loginFail"); + modelAndView.addObject("msg", "로그인이 필요합니다."); + return modelAndView; + + } + + try { + + MjonResvMsgVO mjonResvMsgVO = new MjonResvMsgVO(); + mjonResvMsgVO.setUserId(mjonMsgVO.getUserId());//회원 아이디 + + + String[] arrMsgGroupId = mjonMsgVO.getMsgGroupId().split(","); + int resultSts = 0; + + //문자 발송요청일자 체크해주기 + boolean compareReqDate = getCompareReqDateList(arrMsgGroupId, mjonMsgVO.getUserId()); + + if(!compareReqDate) { + + modelAndView.addObject("isStatus", "dateFail"); + modelAndView.addObject("msg", "발송시간이 지난 문자가 있습니다. 문자 발송예정 시간을 확인해 주세요."); + return modelAndView; + } + + for(String temp : arrMsgGroupId) { + + mjonResvMsgVO.setMsgGroupId(temp);//취소 문자 그룹 아이디 + int count = mjonMsgService.deleteKakaoAtDelaySendCancelData(mjonResvMsgVO); + + resultSts = resultSts + count; + + } + + if(resultSts > 0) { + + modelAndView.addObject("isStatus", "success"); + modelAndView.addObject("msg", "발송취소가 정상적으로 처리되었습니다."); + + }else { + + modelAndView.addObject("isStatus", "fail"); + modelAndView.addObject("msg", "발송취소에 오류가 발생하였습니다."); + } + + } catch (Exception e) { + System.out.println("+++++++++++++++++++++++++++++++++++ deleteKakaoATDelaySendCancelDataAjax Controller Error !!!! "+e); + modelAndView.addObject("isStatus", "fail"); + modelAndView.addObject("msg", "오류가 발생하였습니다."); + return modelAndView; + } + return modelAndView; + } + + + /** + * 스팸 및 스미싱 30분 지연알림톡 즉시 전송 처리 + * @param mjonMsgVO + * @param model + * @return "/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do" + * @throws Exception + */ + @RequestMapping(value = {"/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do"}) + public ModelAndView updateKakaoATDelaySendRealTimeDataAjax(MjonMsgVO mjonMsgVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + String isStatus = ""; + String msg = ""; + + //로그인 정보 획득 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId.equals("")) { + + modelAndView.addObject("isStatus", "loginFail"); + modelAndView.addObject("msg", "로그인이 필요합니다."); + return modelAndView; + + } + + try { + + MjonResvMsgVO mjonResvMsgVO = new MjonResvMsgVO(); + mjonResvMsgVO.setUserId(mjonMsgVO.getUserId());//회원 아이디 + + String[] arrMsgGroupId = mjonMsgVO.getMsgGroupId().split(","); + int resultSts = 0; + + //문자 발송요청일자 체크해주기 + boolean compareReqDate = getCompareReqDateList(arrMsgGroupId, mjonMsgVO.getUserId()); + + if(!compareReqDate) { + + modelAndView.addObject("isStatus", "dateFail"); + modelAndView.addObject("msg", "발송시간이 지난 문자가 있습니다. 문자 발송예정 시간을 확인해 주세요."); + return modelAndView; + } + + for(String temp : arrMsgGroupId) { + + mjonResvMsgVO.setMsgGroupId(temp);//취소 문자 그룹 아이디 + + //문자 발송 지연 데이터 즉시 발송처리 + int count = mjonMsgService.updateKakaoAtDelaySendRealTimeData(mjonResvMsgVO); + + resultSts = resultSts + count; + + } + + if(resultSts > 0) { + + modelAndView.addObject("isStatus", "success"); + modelAndView.addObject("msg", "즉시 발송 처리가 완료되었습니다."); + + }else { + + modelAndView.addObject("isStatus", "fail"); + modelAndView.addObject("msg", "즉시 발송 처리에 오류가 발생하였습니다."); + } + + } catch (Exception e) { + System.out.println("+++++++++++++++++++++++++++++++++++ updateKakaoATDelaySendRealTimeDataAjax Controller Error !!!! "+e); + modelAndView.addObject("isStatus", "fail"); + modelAndView.addObject("msg", "오류가 발생하였습니다."); + return modelAndView; + } + + return modelAndView; + } + /** * 전송사 발송 통계 * @param diff --git a/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java b/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java index 0408ace3..a5298ce5 100644 --- a/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java +++ b/src/main/java/itn/let/uss/umt/web/EgovUserManageController.java @@ -1366,7 +1366,7 @@ public class EgovUserManageController { /* * 알림톡/친구톡 최근 발송내역 리스트 불러오기 - * */ + */ KakaoVO sendKakaoVO = new KakaoVO(); sendKakaoVO.setSearchCondition2("N");//예약건은 제외하기 @@ -1380,35 +1380,38 @@ public class EgovUserManageController { List kakaoResultList = new ArrayList(); kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(sendKakaoVO); - model.addAttribute("kakaoResultList", kakaoResultList); + model.addAttribute("kakaoResultList", kakaoResultList); /* * 알림톡/친구톡 예약발송 리스트 불러오기 - * */ - - KakaoVO reserveKakaoVO = new KakaoVO(); - reserveKakaoVO.setSearchCondition2("Y");//예약건만 불러오기 - reserveKakaoVO.setReserveCYn("N");//예약취소건은 제외하기 - reserveKakaoVO.setUserId(reqMberManageVO.getMberId()); + */ + + KakaoVO reserveKakaoVO = new KakaoVO(); + reserveKakaoVO.setSearchCondition2("Y");//예약건만 불러오기 + reserveKakaoVO.setReserveCYn("N");//예약취소건은 제외하기 + reserveKakaoVO.setUserId(reqMberManageVO.getMberId()); // 문자발송 완료건은 모두 보이도록 처리 //kakaoVO.setMsgType("8"); - reserveKakaoVO.setSearchSortCnd("reqDate"); - reserveKakaoVO.setSearchSortOrd("desc"); - reserveKakaoVO.setFirstIndex(0); + reserveKakaoVO.setSearchSortCnd("reqDate"); + reserveKakaoVO.setSearchSortOrd("desc"); + reserveKakaoVO.setFirstIndex(0); List kakaoReserveList = new ArrayList(); kakaoReserveList = mjonKakaoATService.selectReserveMjonKakaoATGroupList(reserveKakaoVO); - model.addAttribute("kakaoReserveList", kakaoReserveList); + model.addAttribute("kakaoReserveList", kakaoReserveList); + /* - * 팩스 발송 내역 리스트 불러오기 - * */ - + * 알림톡 지연처리 알림톡 내용 불러오기(30분 지연처리된 알림톡 내역 불러오기) + */ + List kakaoATDelaySentList = mjonKakaoATService.selectKakaoATDelaySentList(reqMberManageVO.getMberId()); + + model.addAttribute("kakaoATDelaySentList", kakaoATDelaySentList); + } + + {//팩스 발송 내역 리스트 불러오기 List faxSendListVO = faxService.selectFaxMainList(new FaxGroupDataVO(reqMberManageVO.getMberId())); model.addAttribute("faxSendListVO", faxSendListVO); - - //} - } {//사용중인 전송사 정보 조회하기 - 사용자 전용 전송사 리스트 표시용 diff --git a/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml index a7d89202..cef8b5a8 100644 --- a/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml @@ -2252,10 +2252,101 @@ - - - - - - + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml index 4bd0fcfd..b7e54ab1 100644 --- a/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml @@ -375,7 +375,9 @@ AND MG.DEL_FLAG ='N' /* JSPark 2023.03.23 => 예약건중 발송완료건도 발송결과에 노출되도록 수정 */ /* AND MG.RESERVE_YN = 'N' */ - + AND MG.RESERVE_C_YN = #reserveCYn# diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml index 60cef67d..fde63259 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml @@ -2055,23 +2055,24 @@ + + + UPDATE + MJ_MSG_DATA + SET + REFUND_YN = 'Y' + , REQ_DATE = NOW() + , RESULT_LOG_UPDT_PNTTM = NOW() + , CUR_STATE = '3' + , RSLT_CODE = '7300' + WHERE 1=1 + AND USER_ID = #userId# + AND MSG_GROUP_ID = #msgGroupId# + + + + + + UPDATE + MJ_MSG_GROUP_DATA + SET + CANCELDATE = NOW() + , REQ_DATE = NOW() + , AT_DELAY_COMPLETE_YN = 'Y' + WHERE 1=1 + AND USER_ID = #userId# + AND MSG_GROUP_ID = #msgGroupId# + + + + + + UPDATE + MJ_MSG_DATA + SET + REQ_DATE = NOW() + WHERE 1=1 + AND USER_ID = #userId# + AND MSG_GROUP_ID = #msgGroupId# + + + + + + UPDATE + MJ_MSG_GROUP_DATA + SET + REQ_DATE = NOW() + , AT_DELAY_COMPLETE_YN = 'Y' + WHERE 1=1 + AND USER_ID = #userId# + AND MSG_GROUP_ID = #msgGroupId# + + + diff --git a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp index 29b53d00..db077c66 100644 --- a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp +++ b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp @@ -1183,44 +1183,6 @@ function fnMberSmishingYn(){ } -//알림톡 스미싱의심 여부 -function fnMberAtSmishingYn(){ - var form = document.mberManageVO; - var atSmishingYn = form.atSmishingYn.value; - - if(confirm("알림톡 스미싱의심 여부를 변경하시겠습니까?")){ - - $.ajax({ - type: "POST", - url: "/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do", - data: {"atSmishingYn" : atSmishingYn, "mberId" : "${mberManageVO.mberId}"}, - dataType:'json', - async: false, - success: function (data, status) { - if (data.isSuccess) { - alert("변경 완료했습니다."); - } - else { - alert(data.msg); - } - }, - beforeSend: function () { - //로딩창 show - $('.loading_layer').addClass('active'); - }, - complete: function () { - //로딩창 hide - $('.loading_layer').removeClass('active'); - }, - error: function (e) { - alert("에러가 발생했습니다."); console.log("ERROR : ", e); - } - }); - - } - -} - // VIP 여부 function fnMberVIPYn(){ var form = document.mberManageVO; @@ -2422,6 +2384,331 @@ function fnMberExceptSpamYn(){ } +//알림톡 지연 기능추가 ------------------------------------------------------- + +//알림톡 스미싱의심 여부 +function fnMberAtSmishingYn(){ + var form = document.mberManageVO; + var atSmishingYn = form.atSmishingYn.value; + + if(confirm("알림톡 스미싱의심 여부를 변경하시겠습니까?")){ + + $.ajax({ + type: "POST", + url: "/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do", + data: {"atSmishingYn" : atSmishingYn, "mberId" : "${mberManageVO.mberId}"}, + dataType:'json', + async: false, + success: function (data, status) { + if (data.isSuccess) { + alert("변경 완료했습니다."); + } + else { + alert(data.msg); + } + }, + beforeSend: function () { + //로딩창 show + $('.loading_layer').addClass('active'); + }, + complete: function () { + //로딩창 hide + $('.loading_layer').removeClass('active'); + }, + error: function (e) { + alert("에러가 발생했습니다."); console.log("ERROR : ", e); + } + }); + + } +} + +//지연 알림톡 전체선택 +function kakaoATDelayCheckAll(){ + var checkField = document.kakaoATDelayForm.kakaoATCheckDelayField; + + if(document.kakaoATDelayForm.kakaoATCheckAll.checked) { + if(checkField) { + if(checkField.length > 1) { + for(var i=0; i < checkField.length; i++) { + checkField[i].checked = true; + } + } else { + checkField.checked = true; + } + } + } else { + if(checkField) { + if(checkField.length > 1) { + for(var j=0; j < checkField.length; j++) { + checkField[j].checked = false; + } + } else { + checkField.checked = false; + } + } + } +} + +//지연 알림톡 즉시 발송 리스트 +function kakaoATDelaySendArray(){ + + var userId = document.modiForm.mberId.value; //사용자 회원 아이디 + var form = document.kakaoATDelayForm; + + if($("input:checkbox[name='kakaoATCheckDelayField']").is(":checked")==false){ + alert("선택된 알림톡이 없습니다."); + return; + } + var checkField = form.kakaoATCheckDelayField; + var id = form.kakaoATCheckDelayId; + var checkedIds = ""; + var checkedCount = 0; + if(checkField) { + if(checkField.length > 1) { + for(var i=0; i < checkField.length; i++) { + if(checkField[i].checked) { + checkedIds += ((checkedCount==0? "" : ",") + id[i].value); + checkedCount++; + } + } + } else { + if(checkField.checked) { + checkedIds = id.value; + } + } + } + + var msgGroupId = checkedIds; + + var msg = ""; + var url = "/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do"; + var json = {"msgGroupId" : msgGroupId, "userId" : userId}; + + if(confirm("해당 지연 알림톡을 즉시 발송 하시겠습니까?")){ + $.ajax({ + type: "POST" + , url: url + , data: json + , dataType:'json' + , async: false + , success: function (data, status) { + var result = data.isStatus; + var msg = data.msg; + if (result == 'loginFail') { + alert(msg); + location.reload(); + }else if(result == 'dateFail'){ + alert(msg); + location.reload(); + }else if(result == 'fail'){ + alert(msg); + return false; + }else{ + alert(msg); + location.reload(); + } + } + , beforeSend: function () { + //로딩창 show + $('.loading_layer').addClass('active'); + } + , complete: function () { + //로딩창 hide + $('.loading_layer').removeClass('active'); + } + , error: function (e) { + alert("에러가 발생했습니다."); console.log("ERROR : ", e); + } + }); + } +} + +//지연 알림톡 즉시 발송 +function kakaoATDelaySend(msgGroupId){ + + var userId = document.modiForm.mberId.value; //사용자 회원 아이디 + + var msg = ""; + var url = "/uss/ion/msg/updateKakaoATDelaySendRealTimeDataAjax.do"; + var json = {"msgGroupId" : msgGroupId, "userId" : userId}; + + if(confirm("해당 지연 알림톡을 즉시 발송 하시겠습니까?")){ + $.ajax({ + type: "POST" + , url: url + , data: json + , dataType:'json' + , async: false + , success: function (data, status) { + var result = data.isStatus; + var msg = data.msg; + if (result == 'loginFail') { + alert(msg); + location.reload(); + }else if(result == 'dateFail'){ + alert(msg); + location.reload(); + }else if(result == 'fail'){ + alert(msg); + return false; + }else{ + alert(msg); + location.reload(); + } + } + , beforeSend: function () { + //로딩창 show + $('.loading_layer').addClass('active'); + } + , complete: function () { + //로딩창 hide + $('.loading_layer').removeClass('active'); + } + , error: function (e) { + alert("에러가 발생했습니다."); console.log("ERROR : ", e); + } + }); + } +} + +//지연 알림톡 발송취소 리스트 +function kakaoATDelayCancelArray(){ + + var userId = document.modiForm.mberId.value; //사용자 회원 아이디 + var form = document.kakaoATDelayForm; + + if($("input:checkbox[name='kakaoATCheckDelayField']").is(":checked")==false){ + alert("선택된 알림톡이 없습니다."); + return; + } + var checkField = form.kakaoATCheckDelayField; + var id = form.kakaoATCheckDelayId; + var checkedIds = ""; + var checkedCount = 0; + if(checkField) { + if(checkField.length > 1) { + for(var i=0; i < checkField.length; i++) { + if(checkField[i].checked) { + checkedIds += ((checkedCount==0? "" : ",") + id[i].value); + checkedCount++; + } + } + } else { + if(checkField.checked) { + checkedIds = id.value; + } + } + } + + var msgGroupId = checkedIds; + + var msg = ""; + var url = "/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do"; + var json = {"msgGroupId" : msgGroupId, "userId" : userId}; + + if(confirm("해당 지연 알림톡을 발송취소 하시겠습니까?")){ + $.ajax({ + type: "POST" + , url: url + , data: json + , dataType:'json' + , async: false + , success: function (data, status) { + var result = data.isStatus; + var msg = data.msg; + + if (result == 'loginFail') { + alert(msg); + location.reload(); + }else if(result == 'dateFail'){ + + alert(msg); + location.reload(); + + }else if(result == 'fail'){ + alert(msg); + return false; + }else{ + + alert(msg); + + //회원 이용정지 처리하기 + //fn_updateMberSttus(msgGroupId); + fn_MsgDelayCancel_after(); + + } + } + , beforeSend: function () { + //로딩창 show + $('.loading_layer').addClass('active'); + } + , complete: function () { + //로딩창 hide + $('.loading_layer').removeClass('active'); + } + , error: function (e) { + alert("에러가 발생했습니다."); console.log("ERROR : ", e); + } + }); + } +} + +//지연 알림톡 발송취소 +function kakaoATDelayCancel(msgGroupId){ + + var userId = document.modiForm.mberId.value; //사용자 회원 아이디 + + var msg = ""; + var url = "/uss/ion/msg/deleteKakaoATDelaySendCancelDataAjax.do"; + var json = {"msgGroupId" : msgGroupId, "userId" : userId}; + + if(confirm("해당 지연 알림톡을 발송취소 하시겠습니까?")){ + $.ajax({ + type: "POST" + , url: url + , data: json + , dataType:'json' + , async: false + , success: function (data, status) { + var result = data.isStatus; + var msg = data.msg; + + if (result == 'loginFail') { + alert(msg); + location.reload(); + }else if(result == 'dateFail'){ + + alert(msg); + location.reload(); + + }else if(result == 'fail'){ + alert(msg); + return false; + }else{ + + alert(msg); + + //회원 이용정지 처리하기 + //fn_updateMberSttus(msgGroupId); + fn_MsgDelayCancel_after(); + + } + } + , beforeSend: function () { + //로딩창 show + $('.loading_layer').addClass('active'); + } + , complete: function () { + //로딩창 hide + $('.loading_layer').removeClass('active'); + } + , error: function (e) { + alert("에러가 발생했습니다."); console.log("ERROR : ", e); + } + }); + } +}