diff --git a/src/main/java/itn/let/cop/bbs/service/EgovBBSManageService.java b/src/main/java/itn/let/cop/bbs/service/EgovBBSManageService.java index 487a888e..2c43f145 100644 --- a/src/main/java/itn/let/cop/bbs/service/EgovBBSManageService.java +++ b/src/main/java/itn/let/cop/bbs/service/EgovBBSManageService.java @@ -217,6 +217,8 @@ public interface EgovBBSManageService { public List selectAdminMainBoardByDash(BoardVO boardVO) throws Exception; + public List selectUserBbsWriteList(BoardVO boardVO) throws Exception; + public int selectAdminMainNewBoardCnt(BoardVO boardVO) throws Exception; public int selectAdminMainYdaBoardCnt(BoardVO boardVO) throws Exception; diff --git a/src/main/java/itn/let/cop/bbs/service/impl/BBSManageDAO.java b/src/main/java/itn/let/cop/bbs/service/impl/BBSManageDAO.java index 8420f75d..0b1a44d1 100644 --- a/src/main/java/itn/let/cop/bbs/service/impl/BBSManageDAO.java +++ b/src/main/java/itn/let/cop/bbs/service/impl/BBSManageDAO.java @@ -350,6 +350,11 @@ public class BBSManageDAO extends EgovAbstractDAO { return (List) list("BBSManageDAO.selectAdminMainBoardByDash", boardVO); } + @SuppressWarnings("unchecked") + public List selectUserBbsWriteList(BoardVO boardVO) throws Exception { + return (List) list("BBSManageDAO.selectUserBbsWriteList", boardVO); + } + public int selectAdminMainNewBoardCnt(BoardVO boardVO) throws Exception{ return (Integer)select("BBSManageDAO.selectAdminMainNewBoardCnt", boardVO); } diff --git a/src/main/java/itn/let/cop/bbs/service/impl/EgovBBSManageServiceImpl.java b/src/main/java/itn/let/cop/bbs/service/impl/EgovBBSManageServiceImpl.java index 024772c6..e634f01e 100644 --- a/src/main/java/itn/let/cop/bbs/service/impl/EgovBBSManageServiceImpl.java +++ b/src/main/java/itn/let/cop/bbs/service/impl/EgovBBSManageServiceImpl.java @@ -331,6 +331,11 @@ public class EgovBBSManageServiceImpl extends EgovAbstractServiceImpl implements public List selectAdminMainBoardByDash(BoardVO boardVO) throws Exception { return bbsMngDAO.selectAdminMainBoardByDash(boardVO); } + + @Override + public List selectUserBbsWriteList(BoardVO boardVO) throws Exception { + return bbsMngDAO.selectUserBbsWriteList(boardVO); + } @Override public int selectAdminMainNewBoardCnt(BoardVO boardVO) throws Exception { diff --git a/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java b/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java index 818f20ab..be44c270 100644 --- a/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java +++ b/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java @@ -2242,6 +2242,20 @@ public class EgovBBSManageController { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); + // Start => bbsId를 변조해서 공지사항에 글 등록 방지 처리 + //boardVO.setBbsId("BBSMSTR_000000000651"); // 공지사항 + List userBbsWriteList = bbsMngService.selectUserBbsWriteList(boardVO); + System.out.println("boardVO.getBbsId : " + boardVO.getBbsId()); + System.out.println("userBbsWriteList.size() : " + userBbsWriteList.size()); + + if (userBbsWriteList.size() == 0) { + // 1:1문의, 불편사항 등 고객이 등록할수있는 게시판 목록이 아닐경우 + modelAndView.addObject("message", "잘못된 접근입니다.\n관리자에게 문의하세요."); + modelAndView.addObject("result", "fail"); + return modelAndView; + } + // End + if (bmVO == null || ("N").equals(bmVO.getUseAt())) { redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl")); //return "redirect:/web/main/mainPage.do"; @@ -2622,6 +2636,20 @@ public class EgovBBSManageController { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); + // Start => bbsId를 변조해서 공지사항에 글 등록 방지 처리 + //boardVO.setBbsId("BBSMSTR_000000000651"); // 공지사항 + List userBbsWriteList = bbsMngService.selectUserBbsWriteList(boardVO); + System.out.println("boardVO.getBbsId : " + boardVO.getBbsId()); + System.out.println("userBbsWriteList.size() : " + userBbsWriteList.size()); + + if (userBbsWriteList.size() == 0) { + // 1:1문의, 불편사항 등 고객이 등록할수있는 게시판 목록이 아닐경우 + modelAndView.addObject("message", "잘못된 접근입니다.\n관리자에게 문의하세요."); + modelAndView.addObject("result", "fail"); + return modelAndView; + } + // End + BoardMasterVO bmVO = new BoardMasterVO(); bmVO.setBbsId(boardVO.getBbsId()); bmVO = bbsAttrbService.selectBBSMasterInf(bmVO); 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 f372a0bd..ba5594d1 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 @@ -9,6 +9,9 @@ public interface MjonKakaoATService { //알림톡 전체 발송 리스트 List selectMjonKakaoATGroupCompleteList(KakaoVO searchVO) throws Exception; + //알림톡 전체 발송 리스트(대시보드용) + List selectMjonKakaoATGroupCompleteByUserList(KakaoVO searchVO) throws Exception; + //알림톡 발송 상세 리스트 List selectMjonKakaoATGroupDtList(KakaoVO searchVO) 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 94e1ea6e..9c7f9ca9 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 @@ -17,6 +17,11 @@ public class MjonKakaoATDAO extends EgovAbstractDAO { return (List)list("mjonKakaoATDAO.selectMjonKakaoATGroupCompleteList", p_mjonKakaoATVO); } + @SuppressWarnings("unchecked") + public List selectMjonKakaoATGroupCompleteByUserList(KakaoVO p_mjonKakaoATVO) throws Exception{ + return (List)list("mjonKakaoATDAO.selectMjonKakaoATGroupCompleteByUserList", p_mjonKakaoATVO); + } + @SuppressWarnings("unchecked") public List selectMjonKakaoATGroupDtList(KakaoVO p_mjonKakaoATVO) throws Exception{ return (List)list("mjonKakaoATDAO.selectMjonKakaoATGroupDtList", p_mjonKakaoATVO); 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 a9d93780..7b28abdc 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 @@ -74,6 +74,23 @@ public class MjonKakaoATServiceImpl extends EgovAbstractServiceImpl implements M return result; } + @Override + public List selectMjonKakaoATGroupCompleteByUserList(KakaoVO p_mjonKakaoATVO) throws Exception { + + List result = new ArrayList(); + + try { + + result = mjonKakaoATDAO.selectMjonKakaoATGroupCompleteByUserList(p_mjonKakaoATVO); + + } catch (Exception e) { + System.out.println("selectMjonKakaoATGroupCompleteByUserList ServiceImpl Error ::: " + e); + } + + + return result; + } + @Override public List selectMjonKakaoATGroupDtList(KakaoVO p_mjonKakaoATVO) throws Exception { diff --git a/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java b/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java index c4004bac..4189ec2f 100644 --- a/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java +++ b/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java @@ -20,6 +20,7 @@ import itn.com.cmm.ComDefaultCodeVO; import itn.com.cmm.LoginVO; import itn.com.cmm.service.EgovCmmUseService; import itn.com.cmm.service.FileVO; +import itn.com.cmm.util.MJUtil; import itn.com.cmm.util.StringUtil; import itn.let.kakao.admin.kakaoAt.service.ChannelIDVO; import itn.let.kakao.admin.kakaoAt.service.MjonKakaoATService; @@ -231,7 +232,15 @@ public class MjonKakaoATController { kakaoVO.setReserveCYn("N");//예약취소건은 제외하기 // 문자발송 완료건은 모두 보이도록 처리 //kakaoVO.setMsgType("8"); - resultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteList(kakaoVO); + + // 기간검색 설정 + String toDay = MJUtil.getTodayDate(); //오늘 + String beforeMonthDay = MJUtil.getBefore1MonthDate(); //한달 전 + if (null == kakaoVO.getNtceBgnde() || kakaoVO.getNtceBgnde().equals("")) { + kakaoVO.setNtceBgnde(beforeMonthDay); + } + + resultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(kakaoVO); model.addAttribute("resultList", resultList); diff --git a/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkTemplateController.java b/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkTemplateController.java index 6fda138b..e28d9590 100644 --- a/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkTemplateController.java +++ b/src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkTemplateController.java @@ -813,8 +813,8 @@ public class KakaoAlimTalkTemplateController { searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - searchVO.setSearchSortCnd("sampleTemplateId"); - searchVO.setSearchSortOrd("desc"); + searchVO.setSearchSortCnd("sampleTemplatePriority"); + searchVO.setSearchSortOrd("asc"); } List resultList = new ArrayList(); diff --git a/src/main/java/itn/let/mjo/conf/web/MjonConfController.java b/src/main/java/itn/let/mjo/conf/web/MjonConfController.java index 62858b7a..8f49e3e4 100644 --- a/src/main/java/itn/let/mjo/conf/web/MjonConfController.java +++ b/src/main/java/itn/let/mjo/conf/web/MjonConfController.java @@ -14,6 +14,8 @@ import itn.com.cmm.util.StringUtil; import itn.com.utl.fcc.service.EgovStringUtil; import itn.let.mjo.conf.service.MjonConfService; import itn.let.mjo.conf.service.MjonConfVO; +import itn.let.mjo.msgagent.service.MjonMsgAgentStsService; +import itn.let.mjo.msgagent.service.MjonMsgAgentStsVO; @Controller public class MjonConfController { @@ -21,7 +23,8 @@ public class MjonConfController { @Resource(name = "mjonConfService") private MjonConfService mjonConfService; - + @Resource(name = "mjonMsgAgentStsService") + private MjonMsgAgentStsService mjonMsgAgentStsService; /** @@ -96,5 +99,38 @@ public class MjonConfController { return modelAndView; } - + @RequestMapping(value = "/web/mjon/conf/selectBlineSendCheckAjax.do") + public ModelAndView selectBlineSendCheckAjax( + @ModelAttribute MjonMsgAgentStsVO mjonMsgAgentStsVO + , Model model) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + try { + + System.out.println(mjonMsgAgentStsVO.getAgentCode()); + if(mjonMsgAgentStsVO.getAgentCode().equals("b1")||mjonMsgAgentStsVO.getAgentCode().equals("B1")) { + mjonMsgAgentStsVO.setAgentCode("08"); + }else if(mjonMsgAgentStsVO.getAgentCode().equals("b2")||mjonMsgAgentStsVO.getAgentCode().equals("B2")) { + mjonMsgAgentStsVO.setAgentCode("09"); + } + + MjonMsgAgentStsVO vo = mjonMsgAgentStsService.selectMsgAgentBlineYnInfo(mjonMsgAgentStsVO); + + if(vo == null || "".equals(vo.getUseYn()) || !"Y".equals(vo.getUseYn())) { + modelAndView.addObject("message", "문자 발송 불가"); + modelAndView.addObject("result", "fail"); + } else { + modelAndView.addObject("message", "문자 발송 가능"); + modelAndView.addObject("result", "success"); + } + + }catch (Exception e) { + modelAndView.addObject("message", "오류가 발생하였습니다."); + modelAndView.addObject("result", "fail"); + } + + return modelAndView; + } } 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 aefa17e2..f67878fe 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 @@ -679,6 +679,8 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM int FHMmsResult = 0; int JJResult = 0; int IVTResult = 0; + int jjBline01Result = 0; + int jjBline02Result = 0; //아이하트 딜레이문자 삭제 ihResult = mjonReservMsgDAO.deleteIHeartMsgSeqListByMsgSeq(mjonResvMsgVO); @@ -701,9 +703,14 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM //인비토 딜레이문자 삭제 IVTResult = mjonReservMsgDAO.deleteIVTMsgSeqListByMsgSeq(mjonResvMsgVO); + //제이제이 딜레이문자 삭제 + jjBline01Result = mjonReservMsgDAO.deleteJJB01MsgSeqListByMsgSeq(mjonResvMsgVO); + + //제이제이 딜레이문자 삭제 + jjBline02Result = mjonReservMsgDAO.deleteJJB02MsgSeqListByMsgSeq(mjonResvMsgVO); //삭제 결과 합산 - resultSts = ihResult + FHSmsResult + FHMmsResult + imoResult +bizResult + JJResult + IVTResult; + resultSts = ihResult + FHSmsResult + FHMmsResult + imoResult +bizResult + JJResult + IVTResult + jjBline01Result + jjBline02Result; System.out.println("++++++++++++++++++++++++++++++ resultSts ::: "+resultSts); @@ -775,6 +782,9 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM int FHMmsResult = 0; int JJResult = 0; int IVTResult = 0; + int JJB01Result = 0; + int JJB02Result = 0; + //아이하트 딜레이문자 즉시발송 처리 //ihResult = mjonReservMsgDAO.deleteIHeartMsgSeqListByMsgSeq(mjonResvMsgVO); @@ -798,8 +808,14 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM //제이제이 딜레이문자 즉시발송 처리 IVTResult = mjonReservMsgDAO.updateRealTimeIVTMsgSeqListByMsgSeq(mjonResvMsgVO); + //제이제이 B01 딜레이문자 즉시발송 처리 + JJB01Result = mjonReservMsgDAO.updateRealTimeJJB01MsgSeqListByMsgSeq(mjonResvMsgVO); + + //제이제이 B02 딜레이문자 즉시발송 처리 + JJB02Result = mjonReservMsgDAO.updateRealTimeJJB02MsgSeqListByMsgSeq(mjonResvMsgVO); + //삭제 결과 합산 - resultSts = ihResult + FHSmsResult + FHMmsResult + imoResult +bizResult + JJResult + IVTResult; + resultSts = ihResult + FHSmsResult + FHMmsResult + imoResult +bizResult + JJResult + IVTResult + JJB01Result + JJB02Result; System.out.println("++++++++++++++++++++++++++++++ resultSts ::: "+resultSts); 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 482bb7d3..b5e67096 100644 --- a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java +++ b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java @@ -275,6 +275,29 @@ public class MjonMsgController { return redirectUrlMaker.getRedirectUrl(); } + /** + * 알림톡 리스트 스미싱 on off 처리 + * @param searchVO + * @param model + * @return "/uss/ion/msg/SendMsgTestList.do" + * @throws Exception + */ + @RequestMapping("/uss/ion/msg/MsgUsersAtSmishingUpdate.do") + public String msgUsersAtSmishingUpdate(@RequestParam("checkedIdForDel") String checkedIdForUpt, @ModelAttribute("userManageVO") UserManageVO userManageVO, RedirectAttributes redirectAttributes, Model model) throws Exception { + + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "uat/uia/EgovLoginUsr"; + } + + userManageService.updateUserAtSmishingYn(userManageVO, checkedIdForUpt); + + //redirectAttributes.addFlashAttribute("message", "알림톡 스미싱의심 여부가 정상적으로 수정되었습니다."); + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/ion/kakaoat/SendKakaoATList.do?pageIndex="+userManageVO.getPageIndex()); + return redirectUrlMaker.getRedirectUrl(); + } /** * 문자전송 테스트 리스트 diff --git a/src/main/java/itn/let/mjo/msgagent/service/impl/MjonMsgAgentStsServiceImpl.java b/src/main/java/itn/let/mjo/msgagent/service/impl/MjonMsgAgentStsServiceImpl.java index 36e669a2..dfbd02b7 100644 --- a/src/main/java/itn/let/mjo/msgagent/service/impl/MjonMsgAgentStsServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgagent/service/impl/MjonMsgAgentStsServiceImpl.java @@ -8,6 +8,7 @@ import javax.annotation.Resource; import org.springframework.stereotype.Service; import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; import itn.let.mjo.msgagent.service.MjonMsgAgentStsService; import itn.let.mjo.msgagent.service.MjonMsgAgentStsVO; import itn.let.uat.uia.service.impl.MberManageDAO; @@ -26,6 +27,10 @@ public class MjonMsgAgentStsServiceImpl extends EgovAbstractServiceImpl implemen @Resource(name = "mjonMsgAgentStsService") private MjonMsgAgentStsService mjonMsgAgentStsService; + /** 메모 idgen */ + @Resource(name="egovGnrlUserSelectMemoIdGnrService") + private EgovIdGnrService memoidgenService; + @Override public List selectMjonMsgAgentStsList() throws Exception{ return mjonMsgAgentStsDAO.selectMjonMsgAgentStsList(); @@ -174,6 +179,14 @@ public class MjonMsgAgentStsServiceImpl extends EgovAbstractServiceImpl implemen // B선라인 일경우 회원테이블 업데이트 int uCnt = mberManageDAO.updateUserBlineCodeByAdm(mberManageVO); + //보내는 아이디 회원 메모 insert + String memo = ""; + memo = "전용전송사 변경 : " + mberManageVO.getHotlineAgentName() + "(" + mberManageVO.getHotlineAgentCode() + ")"; + mberManageVO.setMemoId(memoidgenService.getNextStringId()); + mberManageVO.setMberId(mberManageVO.getMberId()); + mberManageVO.setMemoCn(memo); + mberManageVO.setFrstRegisterId(mberManageVO.getAdmUserId()); + mberManageDAO.insertMberMemo(mberManageVO); } catch (Exception e) { System.out.println("+++++++++++ updateMberHotlineAgentCodeInfo Service Imple Error!!! " + e); } diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java index 578585a9..a34ea544 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java @@ -185,11 +185,13 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M mberRepAgent = tmp.getRepAgent(); String useYn = tmp.getUseYn(); - //회원 전용 전송사의 전송 비율이 0 이면 대표전송사로 전송되도록 셋팅함. - if(mberSendRate.equals("0") || useYn.equals("N")) { - - hotlineAgentCode = mberRepAgent; - + if(userInfo.getBlineCode().equals("N")) { + //회원 전용 전송사의 전송 비율이 0 이면 대표전송사로 전송되도록 셋팅함. + if(mberSendRate.equals("0") || useYn.equals("N")) { + + hotlineAgentCode = mberRepAgent; + + } } } diff --git a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java index 007dcd5c..ba2d0444 100644 --- a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java +++ b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java @@ -504,6 +504,10 @@ public class MjonMsgDataController { mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); searchVO.setUserId(userId); + + model.addAttribute("blineCode", mberManageVO.getBlineCode()); + + } model.addAttribute("exceptSpamYn", mberManageVO.getExceptSpamYn()); @@ -904,6 +908,7 @@ public class MjonMsgDataController { mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); + model.addAttribute("blineCode", mberManageVO.getBlineCode()); } model.addAttribute("exceptSpamYn", mberManageVO.getExceptSpamYn()); diff --git a/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java b/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java index f2ac1e64..34cc94ae 100644 --- a/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java +++ b/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java @@ -138,6 +138,27 @@ public class MjonReservMsgDAO extends EgovAbstractDAO { return update("MjonReservMsgDAO.deleteIVTMsgSeqListByMsgSeq", mjonResvMsgVO); } + /** + * @Method Name : deleteJJB01MsgSeqListByMsgSeq + * @작성일 : 2023. 06. 19. + * @작성자 : WYH + * @Method 설명 : 제이제이 B01라인 예약취소 삭제 + */ + public int deleteJJB01MsgSeqListByMsgSeq(MjonResvMsgVO mjonResvMsgVO) throws Exception{ + + return update("MjonReservMsgDAO.deleteJJB01MsgSeqListByMsgSeq", mjonResvMsgVO); + } + + /** + * @Method Name : deleteJJB02MsgSeqListByMsgSeq + * @작성일 : 2023. 06. 19. + * @작성자 : WYH + * @Method 설명 : 제이제이 B02라인 예약취소 삭제 + */ + public int deleteJJB02MsgSeqListByMsgSeq(MjonResvMsgVO mjonResvMsgVO) throws Exception{ + + return update("MjonReservMsgDAO.deleteJJB02MsgSeqListByMsgSeq", mjonResvMsgVO); + } public void updateResvMsgCancelDataFlag(MjonResvMsgVO mjonResvMsgVO) throws Exception{ @@ -235,4 +256,25 @@ public class MjonReservMsgDAO extends EgovAbstractDAO { return update("MjonReservMsgDAO.updateRealTimeIVTMsgSeqListByMsgSeq", mjonResvMsgVO); } + /** + * @Method Name : updateRealTimeJJB01MsgSeqListByMsgSeq + * @작성일 : 2023. 06. 20. + * @작성자 : WYD + * @Method 설명 : 제이제이 B01라인 지연처리 문자 즉시 발송 + */ + public int updateRealTimeJJB01MsgSeqListByMsgSeq(MjonResvMsgVO mjonResvMsgVO) { + + return update("MjonReservMsgDAO.updateRealTimeJJB01MsgSeqListByMsgSeq", mjonResvMsgVO); + } + + /** + * @Method Name : updateRealTimeJJB02MsgSeqListByMsgSeq + * @작성일 : 2023. 06. 20. + * @작성자 : WYD + * @Method 설명 : 제이제이 B02라인 지연처리 문자 즉시 발송 + */ + public int updateRealTimeJJB02MsgSeqListByMsgSeq(MjonResvMsgVO mjonResvMsgVO) { + + return update("MjonReservMsgDAO.updateRealTimeJJB02MsgSeqListByMsgSeq", mjonResvMsgVO); + } } diff --git a/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgServiceImpl.java b/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgServiceImpl.java index e16de3a6..418cb100 100644 --- a/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgServiceImpl.java +++ b/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgServiceImpl.java @@ -109,6 +109,8 @@ public class MjonReservMsgServiceImpl extends EgovAbstractServiceImpl implements int ivtResult = 0; int FHSmsResult = 0; int FHMmsResult = 0; + int jjB01Result = 0; + int jjB02Result = 0; //아이하트 예약취소 삭제 ihResult = mjonReservMsgDAO.deleteIHeartMsgSeqListByMsgSeq(mjonResvMsgVO); @@ -131,8 +133,14 @@ public class MjonReservMsgServiceImpl extends EgovAbstractServiceImpl implements //인비토 예약취소 삭제 ivtResult = mjonReservMsgDAO.deleteIVTMsgSeqListByMsgSeq(mjonResvMsgVO); + //제이제이 B01 예약취소 삭제 + jjB01Result = mjonReservMsgDAO.deleteJJB01MsgSeqListByMsgSeq(mjonResvMsgVO); + + //제이제이 B02 예약취소 삭제 + jjB02Result = mjonReservMsgDAO.deleteJJB02MsgSeqListByMsgSeq(mjonResvMsgVO); + //삭제 결과 합산 - result = ihResult + FHSmsResult + FHMmsResult + imoResult + bizResult +jjResult + ivtResult; + result = ihResult + FHSmsResult + FHMmsResult + imoResult + bizResult +jjResult + ivtResult + jjB01Result + jjB02Result; //각 전송사별 문자 발송 테이블에서 데이터 삭제 처리 /*if(agentCode.equals("01")) { //아이하트 메세지 삭제 diff --git a/src/main/java/itn/let/uat/uia/service/impl/EgovMberManageServiceImpl.java b/src/main/java/itn/let/uat/uia/service/impl/EgovMberManageServiceImpl.java index c46e0466..09066cb7 100644 --- a/src/main/java/itn/let/uat/uia/service/impl/EgovMberManageServiceImpl.java +++ b/src/main/java/itn/let/uat/uia/service/impl/EgovMberManageServiceImpl.java @@ -122,6 +122,11 @@ public class EgovMberManageServiceImpl extends EgovAbstractServiceImpl implement return mberManageDAO.selectMberList(userSearchVO); } + @Override + public List selectMberDelTypeGrpList(UserDefaultVO userSearchVO) throws Exception { + return mberManageDAO.selectMberDelTypeGrpList(userSearchVO); + } + @Override public List selectMberLoginAddList(UserDefaultVO userSearchVO) throws Exception { return mberManageDAO.selectMberLoginAddList(userSearchVO); diff --git a/src/main/java/itn/let/uat/uia/service/impl/MberManageDAO.java b/src/main/java/itn/let/uat/uia/service/impl/MberManageDAO.java index 2b4ef5c7..217a13cf 100644 --- a/src/main/java/itn/let/uat/uia/service/impl/MberManageDAO.java +++ b/src/main/java/itn/let/uat/uia/service/impl/MberManageDAO.java @@ -75,6 +75,11 @@ public class MberManageDAO extends EgovComAbstractDAO{ return (List) list("mberManageDAO.selectMberList", userSearchVO); } + @SuppressWarnings("unchecked") + public List selectMberDelTypeGrpList(UserDefaultVO userSearchVO){ + return (List) list("mberManageDAO.selectMberDelTypeGrpList", userSearchVO); + } + @SuppressWarnings("unchecked") public List selectMberLoginAddList(UserDefaultVO userSearchVO){ return (List) list("mberManageDAO.selectMberLoginAddList", userSearchVO); diff --git a/src/main/java/itn/let/uss/umt/service/EgovMberManageService.java b/src/main/java/itn/let/uss/umt/service/EgovMberManageService.java index ab1082a2..bae73931 100644 --- a/src/main/java/itn/let/uss/umt/service/EgovMberManageService.java +++ b/src/main/java/itn/let/uss/umt/service/EgovMberManageService.java @@ -52,6 +52,8 @@ public interface EgovMberManageService { */ public List selectMberList(UserDefaultVO userSearchVO) throws Exception; + public List selectMberDelTypeGrpList(UserDefaultVO userSearchVO) throws Exception; + public List selectMberLoginAddList(UserDefaultVO userSearchVO) throws Exception; public List selectMberListNewUser(UserDefaultVO userSearchVO) throws Exception; diff --git a/src/main/java/itn/let/uss/umt/service/EgovUserManageService.java b/src/main/java/itn/let/uss/umt/service/EgovUserManageService.java index 489563a7..2d5b1956 100644 --- a/src/main/java/itn/let/uss/umt/service/EgovUserManageService.java +++ b/src/main/java/itn/let/uss/umt/service/EgovUserManageService.java @@ -177,12 +177,20 @@ public interface EgovUserManageService { public UserManageVO selectSmishingYnUserInfo(UserManageVO userManageVO) throws Exception; + public UserManageVO selectAtSmishingYnUserInfo(UserManageVO userManageVO) throws Exception; + // 스미싱의심 온/오프 public void updateUserSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception; // 스미싱의심 온/오프 - 상세에서 단일로 public void updateOneUserSmishingYn(UserManageVO userManageVO) throws Exception; + // 알림톡 스미싱의심 온/오프 + public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception; + + // 알림톡 스미싱의심 온/오프 - 상세에서 단일로 + public void updateOneUserAtSmishingYn(UserManageVO userManageVO) throws Exception; + // 후불제 여부 저장 public void updateUserPrePaymentYn(UserManageVO userManageVO) throws Exception; diff --git a/src/main/java/itn/let/uss/umt/service/MberManageVO.java b/src/main/java/itn/let/uss/umt/service/MberManageVO.java index 2fb01a0a..86243c45 100644 --- a/src/main/java/itn/let/uss/umt/service/MberManageVO.java +++ b/src/main/java/itn/let/uss/umt/service/MberManageVO.java @@ -488,9 +488,37 @@ public class MberManageVO extends UserDefaultVO{ private String spamKeyword; //스팸 필터링 문자단어들 private String spamRegistPnttm; //스팸 문자 발송 내용 등록일자 private String exceptSpamYn; //스팸 필터링 예외 처리 여부 - private String hotlineAgentCode; //회원 전용 전송사 코드 정보 + private String hotlineAgentName; //회원 전용 전송사 명 + private String admUserId; //관리자아이디 + private String deleteTypeName; // 탈퇴 사유 명 + private String deleteTypeCnt; // 탈퇴 사유 인원수 + public String getDeleteTypeName() { + return deleteTypeName; + } + public void setDeleteTypeName(String deleteTypeName) { + this.deleteTypeName = deleteTypeName; + } + public String getDeleteTypeCnt() { + return deleteTypeCnt; + } + public void setDeleteTypeCnt(String deleteTypeCnt) { + this.deleteTypeCnt = deleteTypeCnt; + } + + public String getAdmUserId() { + return admUserId; + } + public void setAdmUserId(String admUserId) { + this.admUserId = admUserId; + } + public String getHotlineAgentName() { + return hotlineAgentName; + } + public void setHotlineAgentName(String hotlineAgentName) { + this.hotlineAgentName = hotlineAgentName; + } private String blineCode; // B라인코드 private String recommendId; // 추천아이디 @@ -518,7 +546,14 @@ public class MberManageVO extends UserDefaultVO{ private String smishingYn; // 스미싱 의심여부 private String vipYn; // VIP 여부 + private String atSmishingYn; // 알림톡 스미싱 의심여부 + public String getAtSmishingYn() { + return atSmishingYn; + } + public void setAtSmishingYn(String atSmishingYn) { + this.atSmishingYn = atSmishingYn; + } public String getPrePaymentYn() { return prePaymentYn; } diff --git a/src/main/java/itn/let/uss/umt/service/UserManageVO.java b/src/main/java/itn/let/uss/umt/service/UserManageVO.java index 45345c0c..231c3598 100644 --- a/src/main/java/itn/let/uss/umt/service/UserManageVO.java +++ b/src/main/java/itn/let/uss/umt/service/UserManageVO.java @@ -204,7 +204,14 @@ public class UserManageVO extends UserDefaultVO{ private float cash; private String blineCode; // B라인코드 private String recommendId; // 추천아이디 - + private String atSmishingYn; // 알림톡 스미싱 의심여부 + + public String getAtSmishingYn() { + return atSmishingYn; + } + public void setAtSmishingYn(String atSmishingYn) { + this.atSmishingYn = atSmishingYn; + } public String getBlineCode() { return blineCode; } diff --git a/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java b/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java index 607ae02c..5f68842a 100644 --- a/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java +++ b/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java @@ -497,6 +497,11 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement return userManageDAO.selectSmishingYnUserInfo(userManageVO); } + @Override + public UserManageVO selectAtSmishingYnUserInfo(UserManageVO userManageVO) { + return userManageDAO.selectAtSmishingYnUserInfo(userManageVO); + } + // 스미싱의심 온/오프 public void updateUserSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception { if(!"".equals(checkedIdForUpt)) { @@ -560,6 +565,69 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement } + // 알림톡 스미싱의심 온/오프 + public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception { + if(!"".equals(checkedIdForUpt)) { + String [] uptIdAll = checkedIdForUpt.split(","); + String[] uptId = Arrays.stream(uptIdAll).distinct().toArray(String[]::new); + for (int i=0; i 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0); model.addAttribute("paginationInfo", paginationInfo); + // 탈퇴사유별 인원수 + List resultMberDelTypeGrpList = mberManageService.selectMberDelTypeGrpList(userSearchVO); + model.addAttribute("resultMberDelTypeGrpList", resultMberDelTypeGrpList); return "cmm/uss/umt/EgovDelUserManage"; } @@ -1168,8 +1170,8 @@ public class EgovUserManageController { * 최근 알리톡/친구톡 전송 내역 * */ //최근 발송 문자 내용 불러오기 - 최근 3개 내역만 - List mjonKakaoATSentList = mjonKakaoATService.selectMberKakaoATSentLatestList(userId); - model.addAttribute("mjonKakaoATSentList", mjonKakaoATSentList); + //List mjonKakaoATSentList = mjonKakaoATService.selectMberKakaoATSentLatestList(userId); + //model.addAttribute("mjonKakaoATSentList", mjonKakaoATSentList); } { @@ -1376,7 +1378,7 @@ public class EgovUserManageController { sendKakaoVO.setSearchSortOrd("desc"); sendKakaoVO.setFirstIndex(0); List kakaoResultList = new ArrayList(); - kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteList(sendKakaoVO); + kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(sendKakaoVO); model.addAttribute("kakaoResultList", kakaoResultList); @@ -1905,7 +1907,7 @@ public class EgovUserManageController { //searchVO.setReserveYn("N"); // 문자발송 완료건은 모두 보이도록 처리 - kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteList(searchVO); + kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(searchVO); model.addAttribute("kakaoResultList", kakaoResultList); //카카오톡 발송 통계 정보 불러오기 @@ -2419,6 +2421,38 @@ public class EgovUserManageController { return modelAndView; } + + // 알림톡 스미싱의심 여부 변경 + @RequestMapping("/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do") + public ModelAndView EgovGnrlUpdateUserAtSmishingAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + Boolean isSuccess = true; + String msg = ""; + + try { + // 미인증 사용자에 대한 보안처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + isSuccess = false; + msg = "로그인이 필요합니다."; + } + else { + userManageService.updateOneUserAtSmishingYn(userManageVO); + } + } catch (Exception e) { + isSuccess = false; + msg = e.getMessage(); + } + + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + + return modelAndView; + } + // VIP 여부 변경 @RequestMapping("/uss/umt/user/EgovGnrlUpdateUserVIPAjax.do") public ModelAndView EgovGnrlUpdateUserVIPAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception { @@ -2468,6 +2502,9 @@ public class EgovUserManageController { msg = "로그인이 필요합니다."; } else { + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + mberManageVO.setAdmUserId(userId); int result = mjonMsgAgentStsService.updateMberHotlineAgentCodeInfo(mberManageVO); if(result > 0) { diff --git a/src/main/resources/egovframework/sqlmap/let/agent/MjonAgent_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/agent/MjonAgent_SQL_mysql.xml index 372f92fc..e241888c 100644 --- a/src/main/resources/egovframework/sqlmap/let/agent/MjonAgent_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/agent/MjonAgent_SQL_mysql.xml @@ -73,7 +73,8 @@ + + + + /* mjonKakaoATDAO.selectMjonKakaoATGroupList - 알림톡 예약조회 */ SELECT - COUNT(M.USER_ID) OVER() AS totCnt , - M.USER_ID AS userId , - MSG_GROUP_ID AS msgGroupId , - MSG_GROUP_CNT AS msgGroupCnt , - SMS_TXT AS smsTxt , - M.SUBJECT AS subject , - DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regDate , - DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqDate , - DATE_FORMAT(RSLT_DATE, '%Y-%m-%d %T') AS rsltDate , - CALL_FROM AS callFrom , - CALL_TO AS callTo , - TOT_PRICE AS totPrice , - EACH_PRICE AS eachPrice , - CUR_STATE AS curState , - RSLT_CODE AS rsltCode , - RSLT_CODE2 AS rsltCode2 , - IF((RSLT_CODE != '7000'),'1','0') AS orderByrsltCode , - DEL_FLAG AS delFlag , - M.MSG_TYPE AS msgType , - FILE_CNT AS fileCnt , - AGENT_CODE AS agentCode , - RESERVE_YN AS reserveYn , - RESERVE_C_YN AS reserveCYn , - CANCELDATE AS cancelDate , - msgTypeName AS msgTypeName , - orderByCode AS orderByCode , - RESULT AS msgResult , - MSG_NOTICETALK_SENDER_KEY AS msgNoticetalkSenderKey , - MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey , - MKPI.YELLOW_ID AS yellowId , - LTM.MBER_NM AS userNm , - successCount, - atSuccessCount, - ftSuccessCount, - atFailCount, - ftFailCount, - BIZ_UMID AS bizUmid, - BL.CALL_STATUS AS callStatus, - M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn, + M2.totCnt , + M2.userId , + M2.msgGroupId , + M2.msgGroupCnt , + M2.smsTxt , + M2.subject , + M2.regDate , + M2.reqDate , + M2.rsltDate , + M2.callFrom , + M2.callTo , + M2.totPrice , + M2.eachPrice , + M2.curState , + M2.rsltCode , + M2.rsltCode2 , + M2.orderByrsltCode , + M2.delFlag , + M2.msgType , + M2.fileCnt , + M2.agentCode , + M2.reserveYn , + M2.reserveCYn , + M2.cancelDate , + M2.msgTypeName , + M2.orderByCode , + M2.msgResult , + M2.msgNoticetalkSenderKey , + M2.msgNoticetalkTmpKey , + M2.yellowId , + M2.userNm , + ( SELECT COUNT(0) + FROM MJ_MSG_DATA C + WHERE C.DEL_FLAG = 'N' + AND C.RESERVE_C_YN = 'N' + AND C.MSG_GROUP_ID = M2.msgGroupId + AND C.RSLT_CODE = '7000' + ) AS successCount , + ( SELECT COUNT(0) + FROM MJ_MSG_DATA C + WHERE C.DEL_FLAG = 'N' + AND C.RESERVE_C_YN = 'N' + AND C.MSG_GROUP_ID = M2.msgGroupId + AND C.RSLT_CODE = '7000' + AND C.MSG_TYPE = '8' + ) AS atSuccessCount , + ( SELECT COUNT(0) + FROM MJ_MSG_DATA C + WHERE C.DEL_FLAG = 'N' + AND C.RESERVE_C_YN = 'N' + AND C.MSG_GROUP_ID = M2.msgGroupId + AND C.RSLT_CODE != '7000' + AND C.MSG_TYPE = '8' + ) AS atFailCount , + + '0' AS ftSuccessCount, + '0' AS ftFailCount, + M2.bizUmid, + M2.callStatus, + M2.bizKakaoResendYn, ( SELECT COUNT(0) FROM BIZ_LOG BL1, MJ_MSG_DATA MMD1 - WHERE M.BIZ_KAKAO_RESEND_YN = 'Y' - AND M.MSG_GROUP_ID = MMD1.MSG_GROUP_ID + WHERE M2.bizKakaoResendYn = 'Y' + AND M2.msgGroupId = MMD1.MSG_GROUP_ID AND MMD1.BIZ_UMID = BL1.CMID AND ( CASE @@ -769,8 +1118,8 @@ ( SELECT COUNT(0) FROM BIZ_LOG BL1, MJ_MSG_DATA MMD1 - WHERE M.BIZ_KAKAO_RESEND_YN = 'Y' - AND M.MSG_GROUP_ID = MMD1.MSG_GROUP_ID + WHERE M2.bizKakaoResendYn = 'Y' + AND M2.msgGroupId = MMD1.MSG_GROUP_ID AND MMD1.BIZ_UMID = BL1.CMID AND ( CASE @@ -780,143 +1129,110 @@ END ) = 'F' ) kakaoResendFailCount FROM ( - SELECT MG.USER_ID , - MG.MSG_GROUP_ID , - MG.MSG_GROUP_CNT , - MG.SMS_TXT , - MG.SUBJECT , - MG.REGDATE , - MG.REQ_DATE , - MD.RSLT_DATE , - MG.CALL_FROM , - MG.TOT_PRICE , - MG.EACH_PRICE , - MG.DEL_FLAG , - MG.MSG_TYPE , - MG.FILE_CNT , - MG.AGENT_CODE , - MG.RESERVE_YN , - MG.RESERVE_C_YN , - MG.CANCELDATE , - MD.MSG_SEQ , - MD.CALL_TO , - MD.CUR_STATE , - MD.RSLT_CODE , - MD.RSLT_CODE2 , - CASE - WHEN MG.MSG_TYPE = '8' - THEN '알림톡' - WHEN MG.MSG_TYPE = '9' - THEN '친구톡' - END msgTypeName , - CASE - WHEN MG.MSG_TYPE = '8' - THEN '1' - ELSE '2' - END orderByCode , - ( + SELECT + COUNT(M.USER_ID) OVER() AS totCnt , + M.USER_ID AS userId , + MSG_GROUP_ID AS msgGroupId , + MSG_GROUP_CNT AS msgGroupCnt , + SMS_TXT AS smsTxt , + M.SUBJECT AS subject , + DATE_FORMAT(REGDATE, '%Y-%m-%d %T') AS regDate , + DATE_FORMAT(REQ_DATE, '%Y-%m-%d %T') AS reqDate , + DATE_FORMAT(RSLT_DATE, '%Y-%m-%d %T') AS rsltDate , + CALL_FROM AS callFrom , + CALL_TO AS callTo , + TOT_PRICE AS totPrice , + EACH_PRICE AS eachPrice , + CUR_STATE AS curState , + RSLT_CODE AS rsltCode , + RSLT_CODE2 AS rsltCode2 , + IF((RSLT_CODE != '7000'),'1','0') AS orderByrsltCode , + DEL_FLAG AS delFlag , + M.MSG_TYPE AS msgType , + FILE_CNT AS fileCnt , + AGENT_CODE AS agentCode , + RESERVE_YN AS reserveYn , + RESERVE_C_YN AS reserveCYn , + CANCELDATE AS cancelDate , + msgTypeName AS msgTypeName , + orderByCode AS orderByCode , + RESULT AS msgResult , + MSG_NOTICETALK_SENDER_KEY AS msgNoticetalkSenderKey , + MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey , + MKPI.YELLOW_ID AS yellowId , + LTM.MBER_NM AS userNm , + BIZ_UMID AS bizUmid, + BL.CALL_STATUS AS callStatus, + M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn + FROM ( + SELECT MG.USER_ID , + MG.MSG_GROUP_ID , + MG.MSG_GROUP_CNT , + MG.SMS_TXT , + MG.SUBJECT , + MG.REGDATE , + MG.REQ_DATE , + MD.RSLT_DATE , + MG.CALL_FROM , + MG.TOT_PRICE , + MG.EACH_PRICE , + MG.DEL_FLAG , + MG.MSG_TYPE , + MG.FILE_CNT , + MG.AGENT_CODE , + MG.RESERVE_YN , + MG.RESERVE_C_YN , + MG.CANCELDATE , + MD.MSG_SEQ , + MD.CALL_TO , + MD.CUR_STATE , + MD.RSLT_CODE , + MD.RSLT_CODE2 , CASE - WHEN MD.RSLT_CODE = '7000' - THEN 'S' - WHEN (MD.RSLT_CODE IS NULL AND MD.SENT_DATE IS NULL AND MD.RSLT_DATE IS NULL) - THEN 'W' - ELSE 'F' - END - ) AS result , - ( SELECT COUNT(0) - FROM MJ_MSG_DATA C - WHERE C.DEL_FLAG = 'N' - AND C.RESERVE_C_YN = 'N' - AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID - AND C.RSLT_CODE = '7000' - ) AS successCount , - ( SELECT COUNT(0) - FROM MJ_MSG_DATA C - WHERE C.DEL_FLAG = 'N' - AND C.RESERVE_C_YN = 'N' - AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID - AND C.RSLT_CODE = '7000' - AND C.MSG_TYPE = '8' - ) AS atSuccessCount , - ( SELECT COUNT(0) - FROM MJ_MSG_DATA C - WHERE C.DEL_FLAG = 'N' - AND C.RESERVE_C_YN = 'N' - AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID - AND C.RSLT_CODE = '7000' - AND C.MSG_TYPE = '9' - ) AS ftSuccessCount , - ( SELECT COUNT(0) - FROM MJ_MSG_DATA C - WHERE C.DEL_FLAG = 'N' - AND C.RESERVE_C_YN = 'N' - AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID - AND C.RSLT_CODE != '7000' - AND C.MSG_TYPE = '8' - ) AS atFailCount , - ( SELECT COUNT(0) - FROM MJ_MSG_DATA C - WHERE C.DEL_FLAG = 'N' - AND C.RESERVE_C_YN = 'N' - AND C.MSG_GROUP_ID = MG.MSG_GROUP_ID - AND C.RSLT_CODE != '7000' - AND C.MSG_TYPE = '9' - ) AS ftFailCount , - MSG_NOTICETALK_SENDER_KEY , - MSG_NOTICETALK_TMP_KEY, - MD.BIZ_UMID, - MD.BIZ_KAKAO_RESEND_YN - FROM MJ_MSG_DATA MD , - MJ_MSG_GROUP_DATA MG - WHERE MD.MSG_GROUP_ID = MG.MSG_GROUP_ID - AND IFNULL(MG.DEL_FLAG, 'N') = 'N' - AND MD.DEL_FLAG = 'N' - - AND MG.USER_ID = #userId# - - AND MG.DEL_FLAG ='N' - AND MG.RESERVE_C_YN = 'N' - )M - LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI - ON M.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY - AND MKPI.USER_ID = M.USER_ID - AND MKPI.DELETE_YN = 'N' - LEFT JOIN LETTNGNRLMBER LTM - ON M.USER_ID = LTM.MBER_ID - LEFT JOIN BIZ_LOG BL - ON M.BIZ_UMID = BL.CMID - WHERE 1=1 - - - AND ( - M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%') - OR MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%') - OR M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%') - ) - - - AND M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%') - - - AND MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%') - - - AND M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%') - - - - AND M.RESERVE_YN IN ('Y','N') - - - AND M.RESERVE_YN = 'N' - - - AND M.RESERVE_YN = 'Y' - - - - - + WHEN MG.MSG_TYPE = '8' + THEN '알림톡' + WHEN MG.MSG_TYPE = '9' + THEN '친구톡' + END msgTypeName , + CASE + WHEN MG.MSG_TYPE = '8' + THEN '1' + ELSE '2' + END orderByCode , + ( + CASE + WHEN MD.RSLT_CODE = '7000' + THEN 'S' + WHEN (MD.RSLT_CODE IS NULL AND MD.SENT_DATE IS NULL AND MD.RSLT_DATE IS NULL) + THEN 'W' + ELSE 'F' + END + ) AS result , + MSG_NOTICETALK_SENDER_KEY , + MSG_NOTICETALK_TMP_KEY, + MD.BIZ_UMID, + MD.BIZ_KAKAO_RESEND_YN + FROM MJ_MSG_DATA MD , + MJ_MSG_GROUP_DATA MG + WHERE MD.MSG_GROUP_ID = MG.MSG_GROUP_ID + AND IFNULL(MG.DEL_FLAG, 'N') = 'N' + AND MD.DEL_FLAG = 'N' + + AND MG.USER_ID = #userId# + + AND MG.DEL_FLAG ='N' + AND MG.RESERVE_C_YN = 'N' + AND MG.MSG_TYPE = '8' + )M + LEFT JOIN MJ_KAKAO_PROFILE_INFO MKPI + ON M.MSG_NOTICETALK_SENDER_KEY = MKPI.SENDER_KEY + AND MKPI.USER_ID = M.USER_ID + LEFT JOIN LETTNGNRLMBER LTM + ON M.USER_ID = LTM.MBER_ID + LEFT JOIN BIZ_LOG BL + ON M.BIZ_UMID = BL.CMID + WHERE 1=1 + AND ( M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%') @@ -933,8 +1249,7 @@ AND M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%') - - + AND M.RESERVE_YN IN ('Y','N') @@ -945,45 +1260,77 @@ AND M.RESERVE_YN = 'Y' - - - - - - AND M.MSG_TYPE = '8' - - - AND M.MSG_TYPE = '9' + + + + + AND ( + M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%') + OR MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%') + OR M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%') + ) + + + AND M.USER_ID LIKE CONCAT('%', #searchKeyword#, '%') + + + AND MKPI.YELLOW_ID LIKE CONCAT ('%', #searchKeyword#,'%') + + + AND M.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%') + + + + + AND M.RESERVE_YN IN ('Y','N') + + + AND M.RESERVE_YN = 'N' + + + AND M.RESERVE_YN = 'Y' + + + + + + + + AND M.MSG_TYPE = '8' + + + AND M.MSG_TYPE = '9' + + + + AND M.MSG_TYPE IN ('8','9') + + + = DATE_FORMAT(#ntceBgnde#, '%Y-%m-%d') + ]]> + + + + + GROUP BY MSG_GROUP_ID + ORDER BY 1=1 + + + , curState $searchSortOrd$ + , orderByrsltCode + + ,$searchSortCnd$ + - - AND M.MSG_TYPE IN ('8','9') - - - = DATE_FORMAT(#ntceBgnde#, '%Y-%m-%d') - ]]> + + $searchSortOrd$ - - - - GROUP BY MSG_GROUP_ID - ORDER BY 1=1 - - - , curState $searchSortOrd$ - , orderByrsltCode - - - ,$searchSortCnd$ - - - - $searchSortOrd$ - - LIMIT #recordCountPerPage# OFFSET #firstIndex# + LIMIT #recordCountPerPage# OFFSET #firstIndex# + ) M2 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 2f2f53f0..4bd0fcfd 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 @@ -202,45 +202,70 @@ @@ -956,46 +987,71 @@ \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml index 5e033a0a..29a04ade 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml @@ -572,6 +572,26 @@ + + + DELETE FROM MTMSG_B1_DATA + WHERE 1=1 + + #userDataList[]# + + + + + + + DELETE FROM MTMSG_B2_DATA + WHERE 1=1 + + #userDataList[]# + + + + + + + + UPDATE LETTNGNRLMBER @@ -1337,6 +1346,15 @@ AND MBER_ID = #mberId# + + UPDATE + LETTNGNRLMBER + SET + AT_SMISHING_YN = #atSmishingYn# + WHERE 1=1 + AND MBER_ID = #mberId# + + UPDATE LETTNGNRLMBER 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 69df99e4..7448d5b1 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 @@ -1182,6 +1182,45 @@ 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; @@ -1230,7 +1269,7 @@ function fnMberHotlineAgentYn(){ $.ajax({ type: "POST", url: "/uss/umt/user/EgovGnrlUpdateUserHotlineAgentCodeAjax.do", - data: {"hotlineAgentCode" : hotlineAgentCode, "mberId" : "${mberManageVO.mberId}"}, + data: {"hotlineAgentCode" : hotlineAgentCode, "mberId" : "${mberManageVO.mberId}", "hotlineAgentName" : $("select[name=hotlineAgentCode] option:selected").text()}, dataType:'json', async: false, success: function (data, status) { @@ -2535,6 +2574,20 @@ function fnMberExceptSpamYn(){ + <%-- + + 스미싱 의심(카톡) + + + + + + + + --%> 전용 전송사 @@ -2969,6 +3022,20 @@ function fnMberExceptSpamYn(){ + <%-- + + 스미싱 의심(카톡) + + + + + + + + --%> 전용 전송사 @@ -4810,27 +4877,27 @@ function fnMberExceptSpamYn(){ 단문 금액 - + 장문 금액 - + 그림1장 금액 - + 그림2장 금액 - + 그림3장 금액 - + 알림톡 금액 - + @@ -4854,7 +4921,7 @@ function fnMberExceptSpamYn(){ 팩스 금액 - + diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp index 76c7a720..cb358b3d 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATList.jsp @@ -295,8 +295,8 @@ function fnSetCalMonth(val) { } -//스미싱의심 온/오프 -function fnSmishingUpdate(flag) { +//알림톡 스미싱의심 온/오프 +function fnAtSmishingUpdate(flag) { if($("input:checkbox[name='checkField']").is(":checked")==false){ alert("선택된 항목이 없습니다."); return; @@ -322,15 +322,15 @@ function fnSmishingUpdate(flag) { if(checkedIds.length > 0) { var msg = ""; if(flag == 'on') { - document.listForm.smishingYn.value='Y'; - msg = "선택하신 사용자의 스미싱의심을 On 하시겠습니까?"; + document.listForm.atSmishingYn.value='Y'; + msg = "선택하신 사용자의 알림톡 스미싱의심을 On 하시겠습니까?"; } else { - document.listForm.smishingYn.value='N'; - msg = "선택하신 사용자의 스미싱의심을 Off 하시겠습니까?"; + document.listForm.atSmishingYn.value='N'; + msg = "선택하신 사용자의 알림톡 스미싱의심을 Off 하시겠습니까?"; } if(confirm(msg)){ document.listForm.checkedIdForDel.value=checkedIds; - document.listForm.action = ""; + document.listForm.action = ""; document.listForm.submit(); } } @@ -369,7 +369,7 @@ function fnSmishingUpdate(flag) { - +
@@ -506,7 +506,7 @@ function fnSmishingUpdate(flag) { - <%-- class="smishing" style="cursor:pointer;"style="cursor:pointer;"> + <%-- class="atSmishingYn" style="cursor:pointer;"style="cursor:pointer;"> --%> @@ -552,7 +552,7 @@ function fnSmishingUpdate(flag) { <%-- --%> - <%-- class="smishing"> + <%-- class="atSmishingYn"> --%> <%-- --%> @@ -565,10 +565,10 @@ function fnSmishingUpdate(flag) {
- +
diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/MsgSendStatistics.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/MsgSendStatistics.jsp index 3fb942d1..d2061b49 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/msg/MsgSendStatistics.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/msg/MsgSendStatistics.jsp @@ -212,7 +212,7 @@
- + diff --git a/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentAllListAjax.jsp b/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentAllListAjax.jsp index d6e6419b..a7aa7eb9 100644 --- a/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentAllListAjax.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentAllListAjax.jsp @@ -77,11 +77,11 @@ $(document).ready(function(){
- - + + + - diff --git a/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentSFDetailListAjax.jsp b/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentSFDetailListAjax.jsp index 0487a03f..fe17888e 100644 --- a/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentSFDetailListAjax.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentSFDetailListAjax.jsp @@ -97,6 +97,7 @@ function listSortOrd(obj){ " /> " /> + diff --git a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp index b36433b6..163602ae 100644 --- a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp @@ -451,6 +451,14 @@ function txtExport(event){ $(document).ready(function (){ + // Bline 확연 및 라디오 버튼 클릭 이벤트 추가 + var blineCodeYn = $("#blineCode").val(); + if(blineCodeYn != 'N' && blineCodeYn != ''){ + $('input[name="send_adYn"]').val(['Y']); + $(".send_adYnN").css('display', 'none'); + advMsgInsert(); + } + //미리보기 이미지 영역 숨김 처리 $('.preiew_img').hide(); $('.prePhoto').hide(); @@ -1497,6 +1505,13 @@ $(document).ready(function (){ //일반문자 라이오 선택해 주기 $("#send_adYnN").prop("checked", true); + // Bline 확연 및 라디오 버튼 클릭 이벤트 추가 + var blineCodeYn = $("#blineCode").val(); + if(blineCodeYn != 'N' && blineCodeYn != ''){ + $('input[name="send_adYn"]').val(['Y']); + $(".send_adYnN").css('display', 'none'); + } + $('.delLi').each(function(){ $(this).remove(); @@ -2948,6 +2963,14 @@ function fnTestSend(){ return false; } + var blineCodeYn = $("#blineCode").val(); + if(blineCodeYn != 'N'){ + if(!blineSendCheck(blineCodeYn)){ //문자온 conf-check + alert("현재 문자 발송하기 기능 점검 중입니다.\n\n잠시 후 다시 시도해주세요."); + return false; + } + } + //MJ_MSG_GROUP_DATA 누락데이터 체크 //if (getMsgGroupDataErrorCheck() == false) { // alert("고객님께서 발송한 최근문자가 발송결과에 표시되지않아, 문자발송이 임시로 차단되었습니다.\n문자온 고객센터에 문의해주세요."); @@ -3496,7 +3519,8 @@ $(".btn_event_cash").off().on("click", function(){ - + "/> +

문자전송

@@ -3525,8 +3549,8 @@ $(".btn_event_cash").off().on("click", function(){
diff --git a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp index 9917fb24..0c271dc1 100644 --- a/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp @@ -857,7 +857,28 @@ function checkConf() { return confCheck; } - +function blineSendCheck(blineCode) { + + var confCheck = false; + + $.ajax({ + type: "POST", + url: "/web/mjon/conf/selectBlineSendCheckAjax.do", + data: {"agentCode":blineCode}, + dataType:'json', + async: false, + success: function (returnData, status) { + if(returnData.result == "fail") { + console.log(returnData.message); + }else if(returnData.result == "success"){ + confCheck = true; + } + } + ,error: function (e) {console.log("ERROR : ", e); } + }); + + return confCheck; +} //문자발송 처리 함수 function fn_sendMsgData(){ @@ -905,6 +926,15 @@ function fn_sendMsgData(){ } + + var blineCodeYn = $("#blineCode").val(); + if(blineCodeYn != 'N'){ + if(!blineSendCheck(blineCodeYn)){ //문자온 conf-check + alert("현재 문자 발송하기 기능 점검 중입니다.\n\n잠시 후 다시 시도해주세요."); + return false; + } + } + //MJ_MSG_GROUP_DATA 누락데이터 체크 //if (getMsgGroupDataErrorCheck() == false) { // alert("고객님께서 발송한 최근문자가 발송결과에 표시되지않아, 문자발송이 임시로 차단되었습니다.\n문자온 고객센터에 문의해주세요."); diff --git a/src/main/webapp/WEB-INF/jsp/web/msgdata/excel/MsgExcelDataSMLView.jsp b/src/main/webapp/WEB-INF/jsp/web/msgdata/excel/MsgExcelDataSMLView.jsp index 5915407c..374086f2 100644 --- a/src/main/webapp/WEB-INF/jsp/web/msgdata/excel/MsgExcelDataSMLView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/msgdata/excel/MsgExcelDataSMLView.jsp @@ -595,8 +595,17 @@ function txtExport(event){ $(document).ready(function (){ + // Bline 확연 및 라디오 버튼 클릭 이벤트 추가 + var blineCodeYn = $("#blineCode").val(); + if(blineCodeYn != 'N' && blineCodeYn != ''){ + $('input[name="send_adYn"]').val(['Y']); + $(".send_adYnN").css('display', 'none'); + advMsgInsert(); + } + $('.bottom_content .area_total_count').hide(); + //미리보기 이미지 영역 숨김 처리 $('.preiew_img').hide(); $('.prePhoto').hide(); @@ -1685,6 +1694,13 @@ $(document).ready(function (){ //일반문자 라이오 선택해 주기 $("#send_adYnN").prop("checked", true); + // Bline 확연 및 라디오 버튼 클릭 이벤트 추가 + var blineCodeYn = $("#blineCode").val(); + if(blineCodeYn != 'N' && blineCodeYn != ''){ + $('input[name="send_adYn"]').val(['Y']); + $(".send_adYnN").css('display', 'none'); + } + $('.delLi').each(function(){ $(this).remove(); @@ -2675,6 +2691,13 @@ function fnTestSend(){ return false; } + var blineCodeYn = $("#blineCode").val(); + if(blineCodeYn != 'N'){ + if(!blineSendCheck(blineCodeYn)){ //문자온 conf-check + alert("현재 문자 발송하기 기능 점검 중입니다.\n\n잠시 후 다시 시도해주세요."); + return false; + } + } //MJ_MSG_GROUP_DATA 누락데이터 체크 //if (getMsgGroupDataErrorCheck() == false) { // alert("고객님께서 발송한 최근문자가 발송결과에 표시되지않아, 문자발송이 임시로 차단되었습니다.\n문자온 고객센터에 문의해주세요."); @@ -3014,6 +3037,8 @@ $(".btn_event_cash").off().on("click", function(){ + "/> +

대량문자/단체문자 전송

@@ -3043,8 +3068,8 @@ $(".btn_event_cash").off().on("click", function(){
diff --git a/src/main/webapp/WEB-INF/jsp/web/msgdata/excel/MsgExcelDataView.jsp b/src/main/webapp/WEB-INF/jsp/web/msgdata/excel/MsgExcelDataView.jsp index d56e6718..e2a404c6 100644 --- a/src/main/webapp/WEB-INF/jsp/web/msgdata/excel/MsgExcelDataView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/msgdata/excel/MsgExcelDataView.jsp @@ -471,6 +471,29 @@ function checkConf() { return confCheck; } +function blineSendCheck(blineCode) { + + var confCheck = false; + + $.ajax({ + type: "POST", + url: "/web/mjon/conf/selectBlineSendCheckAjax.do", + data: {"agentCode":blineCode}, + dataType:'json', + async: false, + success: function (returnData, status) { + if(returnData.result == "fail") { + console.log(returnData.message); + }else if(returnData.result == "success"){ + confCheck = true; + } + } + ,error: function (e) {console.log("ERROR : ", e); } + }); + + return confCheck; +} + //문자발송 처리 함수 function fn_sendMsgData(){ @@ -515,6 +538,14 @@ function fn_sendMsgData(){ } + var blineCodeYn = $("#blineCode").val(); + if(blineCodeYn != 'N'){ + if(!blineSendCheck(blineCodeYn)){ //문자온 conf-check + alert("현재 문자 발송하기 기능 점검 중입니다.\n\n잠시 후 다시 시도해주세요."); + return false; + } + } + //MJ_MSG_GROUP_DATA 누락데이터 체크 //if (getMsgGroupDataErrorCheck() == false) { // alert("고객님께서 발송한 최근문자가 발송결과에 표시되지않아, 문자발송이 임시로 차단되었습니다.\n문자온 고객센터에 문의해주세요."); diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PayEstimate.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PayEstimate.jsp index 33f7fee7..118dac39 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PayEstimate.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PayEstimate.jsp @@ -170,7 +170,16 @@ function winPrint() { - + diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp index c50f9837..3fd7009b 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp @@ -176,7 +176,12 @@ function setItemAddHtml() { else { sHtml += "
" + element.unitPrice + "
"; } - sHtml += "
" + numberWithCommas(element.caseNumber) + "
"; + if(element.smsItemName.includes('팩스')){ + sHtml += "
" + numberWithCommas(element.caseNumber * element.casePage) + "
"; + } + else { + sHtml += "
" + numberWithCommas(element.caseNumber) + "
"; + } sHtml += "
" + numberWithCommas(element.supplyPrice) + "
"; sHtml += "
" + numberWithCommas(element.vatPrice) + "
"; sHtml += "
" + numberWithCommas(element.totVatPrice) + "
"; diff --git a/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoAllListAjax.jsp b/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoAllListAjax.jsp index f5ab524c..d5703774 100644 --- a/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoAllListAjax.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoAllListAjax.jsp @@ -71,10 +71,10 @@ $(document).ready(function(){
문자분류 - - + +
문자분류 - - + + + + + + + + + + +
+ + + - - - @@ -92,9 +92,6 @@ $(document).ready(function(){ + + + + +
발송상태 -
- -
접수일자 diff --git a/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab1.jsp b/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab1.jsp index dd8c655b..b342746b 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab1.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab1.jsp @@ -209,6 +209,11 @@ 성공 건수 String
[data].test_yn테스트 데이터 여부String
@@ -233,10 +238,12 @@

, "data":[

"msgGroupId":"MSGGID_0000000000000"

-

, "msgType":"4"

+

, "msgType":"SMS"

+

, "resultCode":"0"

, "blockCnt":"0"

, "failCnt":"0"

, "successCnt":"3"

+

, "test_yn":null

]

} diff --git a/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab2.jsp b/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab2.jsp index 7a14201b..750bbe7e 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab2.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab2.jsp @@ -219,6 +219,11 @@ 성공 건수 String + + [data].test_yn + 테스트 데이터 여부 + String + @@ -239,20 +244,30 @@ { -

"resultCode":"0"

-

, "data":[

-
-

"msgGroupIdList":[

-

    0:"MSGGID_0000000000000"

-

    1:"MSGGID_0000000000001"

-

    2:"MSGGID_0000000000002"

-

]

-

, "msgType":"LMS"

-

, "blockCnt":"0"

-

, "failCnt":"0"

-

, "successCnt":"3"

-
-

]

+

 "resultCode":"0"

+

 , "data":[

+

  "msgGroupIdList":[

+

   {

+

    "MSGGID_0000000013451"

+

   }

+

   ,{

+

    "MSGGID_0000000013452"

+

   }

+

  ]

+

  ,"msgTypeList":[

+

   {

+

    "SMS"

+

   }

+

   ,{

+

    "SMS"

+

   }

+

  ]

+

  ,"resultCode":"0"

+

  ,"successCnt":"2"

+

  ,"failCnt":"0"

+

  ,"blockCnt":"0"

+

  ,"test_yn":null

+

 ]

} diff --git a/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab3.jsp b/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab3.jsp index 5f910512..4cc1893e 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab3.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab3.jsp @@ -4,11 +4,15 @@

전송내역조회

- 동일한 내용의 문자를 컴마(,)로 분기하여 동시 1천명에게 전송하실 수 있습니다. + 최근 요청 및 처리된 전송내역을 조회하실 수 있습니다.
- 발신번호는 사이트내에서 미리 등록된 번호만 사용하실 수 있습니다. + 사이트 내 전송결과 조회 페이지와 동일한 내역이 조회되며, 날짜 기준으로 조회가 가능합니다.
- 90byte를 초과하는 메시지 발송 시 LMS(첨부파일 없는 MMS) 형태로 자동 전환됩니다. + 발신번호별 조회 기능은 제공이 되지 않습니다. +
+ 조회 시작일을 지정하실 수 있으며, 시작일 이전 며칠까지 조회할지 설정이 가능합니다. +
+ 조회 시 최근 발송내역 순서로 소팅됩니다.


@@ -103,7 +107,7 @@ startDate 시작일자 String - O + X endDate @@ -119,7 +123,6 @@ - * 텍스트 용량(Byte)에 대한 안내 : 2Byte, 영문·숫자 1Byte를 차지.
    @@ -138,13 +141,13 @@ {
    -

    "mberId":"String"

    -

    ,"accessKey":"String"

    -

    ,"page":"String"

    -

    ,"pageSize":"String"

    -

    ,"startDate":"String"

    -

    ,"endDate":"String"

    -

    ,"test_yn":"( YS | YF )"

    +

    "mberId":"홍길동"

    +

    ,"accessKey":"XXXXXXXXXXXXXX414050694b953"

    +

    ,"page":""

    +

    ,"pageSize":""

    +

    ,"startDate":""

    +

    ,"endDate":""

    +

    ,"test_yn":""

    } @@ -185,11 +188,31 @@ 결과값 객체 ( 성공 : 데이터, 실패 : 메세지 ) Object + + [data].message + 문자 + String + + + [data].next_yn + 다음 페이지 여부 + String + + + [data].objectList + 결과값 목록 + Object List + [data].msgGroupId 메세지 그룹 ID String + + [data].msgId + 메세지 ID + String + [data].msgTypeName 문자 구분명(단문, 장문, 그림) @@ -206,8 +229,8 @@ String - [data].msgGroupCnt - 문자 발송 건수 + [data].callTo + 수신자 번호 String @@ -304,32 +327,65 @@ - { -

    "resultCode":"0"

    -

    , "data":[

    -
    -

    "msgGroupId":"MSGGID_0000000000000"

    -

    , "msgTypeName":"단문(SMS)"

    -

    , "msgType":"4"

    -

    , "callFrom":"01011112222"

    -

    , "msgGroupCnt":"2"

    -

    , "sCnt":"2"

    -

    , "fCnt":"0"

    -

    , "wCnt":"0"

    -

    , "msgResult":"S"

    -

    , "smsTxt":"문자 내용"

    -

    , "subject":""

    -

    , "reqdate":"2023-04-05 00:00:00"

    -

    , "curState":"3"

    -

    , "userId":"testuser"

    -

    , "regdate":"3"

    -

    , "successCnt":"2023-04-04 16:10:19"

    -

    , "reserveCYn":"N"

    -

    , "ttlCnt":"4"

    -

    , "remainMsgCnt":"0"

    -

    , "totMsgCnt":"3"

    -
    -

    ]

    + { +

     "resultCode":"0"

    +

     , "data":[

    +

      {

    +

       "resultCode":"0"

    +

       , "message": null

    +

       , "next_yn":"n"

    +

       , "msgGroupId":"MSGGID_0000000000000"

    +

       , "objectList":[

    +

        {

    +

         "msgTypeName":"단문(SMS)"

    +

         ,"msgType":"4"

    +

         ,"callFrom":"01011112222"

    +

         ,"callTo":"01011112223"

    +

         ,"msgGroupCnt":"2"

    +

         ,"msgGroupId":"MSGGID_0000000013340"

    +

         ,"msgId":"MSGID_0000000000001"

    +

         ,"scnt":"2"

    +

         ,"fcnt":"0"

    +

         ,"wcnt":"0"

    +

         ,"msgResult":"S"

    +

         ,"smsTxt":"문자 내용 단문 예제"

    +

         ,"subject":null

    +

         ,"reqdate":"2023-06-13 17:48:07"

    +

         ,"curState":"3"

    +

         ,"userId":"testuser"

    +

         ,"regdate":"2023-06-13 17:48:07"

    +

         ,"reserveCYn":"N"

    +

         ,"ttlCnt":"1"

    +

         ,"remainMsgCnt":40"

    +

         ,"totMsgCnt":"70"

    +

        }

    +

        , {

    +

         "msgTypeName":"장문(LMS)"

    +

         ,"msgType":"6"

    +

         ,"callFrom":"01011112222"

    +

         ,"callTo":"01011112223"

    +

         ,"msgGroupCnt":"1"

    +

         ,"msgGroupId":"MSGGID_0000000013341"

    +

         ,"msgId":"MSGID_0000000000002"

    +

         ,"scnt":"1"

    +

         ,"fcnt":"0"

    +

         ,"wcnt":"0"

    +

         ,"msgResult":"S"

    +

         ,"smsTxt":"문자 내용 장문 예제"

    +

         ,"subject":null

    +

         ,"reqdate":"2023-06-02 11:46:50"

    +

         ,"curState":"3"

    +

         ,"userId":"testuser"

    +

         ,"regdate":"2023-06-02 11:46:49"

    +

         ,"reserveCYn":"N"

    +

         ,"ttlCnt":"1"

    +

         ,"remainMsgCnt":"40"

    +

         ,"totMsgCnt":"70"

    +

        }

    +

       ]

    + +

      }

    +

     ]

    } @@ -355,8 +411,8 @@ { -

    "resultCode":"1040"

    -

    ,"data":"치환 데이터 오류"

    +

    "resultCode":"3099"

    +

    ,"data":"기타 시스템 오류"

    } diff --git a/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab4.jsp b/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab4.jsp index 8af345f0..5aa0fbb8 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab4.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab4.jsp @@ -4,16 +4,18 @@

    전송결과조회(상세)

    - 동일한 내용의 문자를 컴마(,)로 분기하여 동시 1천명에게 전송하실 수 있습니다. + msgGroupId를 사용하여 수신번호별 상태를 조회하실 수 있습니다.
    - 발신번호는 사이트내에서 미리 등록된 번호만 사용하실 수 있습니다. + 수신 전화번호별 전송상태를 조회하실 수 있으며 목록에 없거나 전송 중인 문자는 만 24시간 동안 전송 시도 중인 것입니다.
    - 90byte를 초과하는 메시지 발송 시 LMS(첨부파일 없는 MMS) 형태로 자동 전환됩니다. + 최종 24시간이 경과 후 조회하셔야 완료된 내역을 확인하실 수 있습니다.


    - +

    + 문자이미지 [Request] +

    • @@ -53,9 +55,6 @@ HTTPS 프로토콜을 사용하여 POST로 요청합니다. -

      - 문자이미지 문자 -

      @@ -86,26 +85,20 @@ - - + + - - + + - + - - - - - - - - + + @@ -117,7 +110,6 @@
      O
      callFrom발신자 번호 (아이디에 등록되어 있는 번호)msgGroupId메시지그룹 ID String O
      callToList수신자 번호 (콤마(,) 기준으로 입력)page페이지 번호 StringOX
      smsTxt메세지 내용String (1~2,000Byte)O
      nameStr메세지 내용에 [*이름*]이 있으면 치환용 이름 입력pageSize페이지당 출력개수 String X
      - * 텍스트 용량(Byte)에 대한 안내 : 2Byte, 영문·숫자 1Byte를 차지.
        @@ -136,14 +128,276 @@ {
        -

        "mberId":"String"

        -

        ,"accessKey":"String"

        -

        ,"callFrom":"String"

        -

        ,"callToList":"String"

        -

        ,"smsTxt":"String"

        -

        ,"nameStr":"String"

        -

        ,"callFrom":"String"

        -

        ,"test_yn":"( YS | YF )"

        +

        "mberId":"홍길동"

        +

        ,"accessKey":"XXXXXXXXXXXXXX414050694b953"

        +

        ,"msgGroupId":"MSGGID_0000000011452"

        +

        ,"page":""

        +

        ,"pageSize":""

        +

        ,"test_yn":""

        + } + + + + +
      +
    • +
    +

    + 문자이미지 [Response] +

    + + JSON 객체로 응답 합니다. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    설명타입
    resultCode성공 여부 ( "0" 아니면 실패 )String
    data결과값 객체 ( 성공 : 데이터, 실패 : 메세지 )Object
    [data].message문자String
    [data].next_yn다음 페이지 여부String
    [data].objectList결과값 목록Object List
    [data].msgGroupId메세지 그룹 IDString
    [data].msgId메세지 IDString
    [data].msgTypeName문자 구분명(단문, 장문, 그림)String
    [data].msgType메세지 타입 ( 4: 단문, 5: 장문 )String
    [data].callFrom발신자 번호String
    [data].callTo수신자 번호String
    [data].msgGroupCnt문자 발송 건수String
    [data].sCnt성공 건수String
    [data].fCnt실패 건수String
    [data].wCnt대기 건수String
    [data].msgResult발송결과( 성공 : S, 실패 : F)String
    [data].smsTxt문자내용String
    [data].subject제목String
    [data].reqdate발송 일자String
    [data].curState전송 처리 결과값String
    [data].userId사용자 IDString
    [data].regdate등록 일자String
    [data].reserveCYn예약 취소 여부String
    [data].ttlCnt전체 요청 수String
    [data].remainMsgCnt남은 문자 건수String
    [data].totMsgCnt전체 문자 개수String
    + + * 성공 예시 +
      +
    • +
      +
      + Example +
      +
      +
      + + + + + + + + + +
      + { +

       "resultCode":"0"

      +

       , "data":[

      +

        {

      +

         "resultCode":"0"

      +

         , "message":null

      +

         , "next_yn":null

      +

         , "objectList":[

      +

          {

      +

           msgTypeName":"단문(SMS)"

      +

           ,"msgType":"4"

      +

           ,"callFrom":"01011112222"

      +

           ,"callTo":"01011112223"

      +

           ,"msgGroupCnt":"2"

      +

           ,"msgGroupId":"MSGGID_0000000013340"

      +

           ,"msgId":"MSGID_0000000000001"

      +

           ,"scnt":null

      +

           ,"fcnt":null

      +

           ,"wcnt":null

      +

           ,"msgResult":"S"

      +

           ,"smsTxt":"문자 내용 단문 예제"

      +

           ,"subject":null

      +

           ,"reqdate":"2023-06-13 17:48:08"

      +

           ,"curState":"3"

      +

           ,"userId":"testuser"

      +

           ,"regdate":"2023-06-13 17:48:07"

      +

           ,"reserveCYn":"N"

      +

           ,"ttlCnt":"10"

      +

           ,"remainMsgCnt":"0"

      +

           ,"totMsgCnt":"10"

      +

          }

      +

          , {

      +

           msgTypeName":"단문(LMS)"

      +

           ,"msgType":"4"

      +

           ,"callFrom":"01011112222"

      +

           ,"callTo":"01011112224"

      +

           ,"msgGroupCnt":"2"

      +

           ,"msgGroupId":"MSGGID_0000000013340"

      +

           ,"msgId":"MSGID_0000000000002"

      +

           ,"scnt":null

      +

           ,"fcnt":null

      +

           ,"wcnt":null

      +

           ,"msgResult":"S"

      +

           ,"smsTxt":"문자 내용 단문 예제"

      +

           ,"subject":null

      +

           ,"reqdate":"2023-06-13 17:48:09"

      +

           ,"curState":"3"

      +

           ,"userId":"testuser"

      +

           ,"regdate":"2023-06-13 17:48:07"

      +

           ,"reserveCYn":"N"

      +

           ,"ttlCnt":"10"

      +

           ,"remainMsgCnt":"0"

      +

           ,"totMsgCnt":"10"

      +

          }

      +

         ]

      + +

        }

      +

       ]

      + } +
      +
      +
    • +
    + * 실패 예시 +
      +
    • +
      +
      + Example +
      +
      +
      + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab5.jsp b/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab5.jsp index f7199107..ff0d6c8c 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab5.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/sendRESTAPI_infoPage3_r1_tab5.jsp @@ -4,16 +4,18 @@

      발송가능건수

      - 동일한 내용의 문자를 컴마(,)로 분기하여 동시 1천명에게 전송하실 수 있습니다. + 보유한 잔여 포인트로 발송 가능한 잔여 건수를 문자 구분(유형) 별로 조회하실 수 있습니다.
      - 발신번호는 사이트내에서 미리 등록된 번호만 사용하실 수 있습니다. + SMS, LMS, MMS로 발송 시 가능한 잔여 건수이며 남은 충전금을 문자유형별로 보냈을 경우 가능한 잔여 건입니다.
      - 90byte를 초과하는 메시지 발송 시 LMS(첨부파일 없는 MMS) 형태로 자동 전환됩니다. + 예를 들어 단문 발송 가능 건수 : 20 , 장문 발송 가능 건수 : 7 인 경우 단문 전송 시 20건이 가능하고, 장문으로 전송 시 7건이 가능합니다.


      - +

      + 문자이미지 [Request] +

      • @@ -53,9 +55,6 @@ HTTPS 프로토콜을 사용하여 POST로 요청합니다. -

        - 문자이미지 문자 -

      + { +

      "resultCode":"4099"

      +

      ,"data":"기타 시스템 오류"

      }
      @@ -85,40 +84,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      String O
      callFrom발신자 번호 (아이디에 등록되어 있는 번호)StringO
      callToList수신자 번호 (콤마(,) 기준으로 입력)StringO
      smsTxt메세지 내용String (1~2,000Byte)O
      nameStr메세지 내용에 [*이름*]이 있으면 치환용 이름 입력StringX
      test_yn테스트 데이터 여부StringX
      - * 텍스트 용량(Byte)에 대한 안내 : 2Byte, 영문·숫자 1Byte를 차지. -
      • @@ -138,12 +105,146 @@ {

        "mberId":"String"

        ,"accessKey":"String"

        -

        ,"callFrom":"String"

        -

        ,"callToList":"String"

        -

        ,"smsTxt":"String"

        -

        ,"nameStr":"String"

        -

        ,"callFrom":"String"

        -

        ,"test_yn":"( YS | YF )"

        + } + + + + +
      +
    • +
    + +

    + 문자이미지 [Response] +

    + + JSON 객체로 응답 합니다. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    설명타입
    resultCode성공 여부 ( "0" 아니면 실패 )String
    data결과값 객체 ( 성공 : 데이터, 실패 : 메세지 )Object
    [data].longPrice장문 단가String
    [data].longSendPsbltEa장문 발송 가능 건수String
    [data].mberMoney현재 보유 금액String
    [data].message문자String
    [data].picturePrice그림문자 단가String
    [data].pictureSendPsbltEa그림문자 발송 가능 건수String
    [data].shortPrice단문 단가String
    [data].shortSendPsbltEa단문 발송 가능 건수String
    + + * 성공 예시 +
      +
    • +
      +
      + Example +
      +
      +
      + + + + + + + + + +
      + { +

       "resultCode":"0"

      +

       , "data":[

      +

        {

      +

         "longPrice":"50"

      +

         , "longSendPsbltEa": "19651"

      +

         , "mberMoney": "982586.7"

      +

         , "message": null

      +

         , "picturePrice": "90"

      +

         , "pictureSendPsbltEa": "10917"

      +

         , "shortPrice": "18"

      +

         , "shortSendPsbltEa": "54588"

      +

        }

      +

       ]

      + } +
      +
      +
    • +
    + * 실패 예시 +
      +
    • +
      +
      + Example +
      +
      +
      + + + + + + + diff --git a/src/main/webapp/sample_mjon/jsp_example_send_msg_form_r1.jsp b/src/main/webapp/sample_mjon/jsp_example_send_msg_form_r1.jsp index ed43599a..c8d92729 100644 --- a/src/main/webapp/sample_mjon/jsp_example_send_msg_form_r1.jsp +++ b/src/main/webapp/sample_mjon/jsp_example_send_msg_form_r1.jsp @@ -2,141 +2,75 @@ + }); + + }); + }); + +
      -

      돌아가기


      +

      문자발송(샘플-문자온)

      *mberId와 accessKey값은 실제 서비스시에는 jsp_example_send_msg_r1.jsp 파일에 작성하여 사용하세요
      (샘플 페이지에서는 월활한 테스트를 위해 파라미터 형식으로 제공합니다.) @@ -156,81 +90,73 @@
      +
      callFrom
      + +
      callToList
      + +
      smsTxt
      + +
      nameStr
      + +
      테스트여부 (기본값 없음, YF-테스트(실패), YS-테스트(성공)
      - - - +
        -
      +
      메세지ID :
      -
      성공수량 : +
      성공수량 :
      -
      실패수량 : +
      실패수량 :
      -
      block수량 : +
      block수량 :
      -
      메세지타입 : +
      메세지타입 :
      -
      -
      - +
      - -
      - -
      - + +
      + diff --git a/src/main/webapp/sample_mjon/jsp_example_send_msg_r1.jsp b/src/main/webapp/sample_mjon/jsp_example_send_msg_r1.jsp index 8cd30da6..93960ad6 100644 --- a/src/main/webapp/sample_mjon/jsp_example_send_msg_r1.jsp +++ b/src/main/webapp/sample_mjon/jsp_example_send_msg_r1.jsp @@ -19,62 +19,45 @@ <% try{ //기본 설정값 - //final String encodingType = "utf-8"; final String encodingType = "UTF-8"; final String boundary = "____boundary____"; - //회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용해주세요 + /******************** 전송 요청 URL ********************/ + //final String apiUrl = "http://localhost:8088/api/send/sendMsg"; + final String apiUrl = "https://apidev.munjaon.co.kr:9998/api/send/sendMsg"; //개발테스트용 URL + //final String apiUrl = "https://api.munjaon.co.kr:9998/api/send/sendMsg"; //실제 서비스 URL + + //회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용 //실제서비스용 - //final String mberId = "goodgkdus"; //문자온 로그인 아이디 + //final String mberId = "goodgkdus"; //문자온 로그인 아이디 //final String apiKey = "12e749877379aa7426275414050694b953"; //발급받은 api key //테스트용 String mberId = request.getParameter("p_mberId"); //문자온 로그인 아이디 String apiKey = request.getParameter("p_apiKey"); //발급받은 api key + /******************** 전송 정보 ********************/ + //필수 값 + String p_callFrom = request.getParameter("p_callFrom"); //발신자 번호 + String p_callToList = request.getParameter("p_callToList"); //수신자 번호 + String p_smsTxt = request.getParameter("p_smsTxt"); //문자 내용 - /**************** 문자전송하기 예제 ******************/ - /* "result_code":결과코드,"message":결과문구, */ - /* "msg_id":메세지ID,"error_cnt":에러갯수,"success_cnt":성공갯수 */ - /* 동일내용 > 전송용 입니다. - /******************** 인증정보 ********************/ - //String sms_url = "https://apis.aligo.in/send/"; // 전송요청 URL - //String sms_url = "https://api.munjaon.co.kr:9998/api/accessTest/Test"; // 전송요청 URL - //String sms_url = "https://api.munjaon.co.kr:9998/api/accessKey/SendMsg"; // 전송요청 URL - - final String apiUrl = "http://localhost:8088/api/send/sendMsg"; -// final String apiUrl = "https://apidev.munjaon.co.kr:9998/api/send/sendMsg"; + //선택 값 + String p_nameStr = request.getParameter("p_nameStr"); //치환용 이름 + String p_testYn = request.getParameter("p_testYn"); //테스트 데이터 여부 '', 'YF', 'YS' - Map params = new HashMap(); - /******************** 인증정보 ********************/ + /* 추후 사용을 위하여 주석 상태로 보존 - 사용자 샘플 JSP에는 해당 내용 삭제 */ - - //임시 - 테스트용 시작 - //String p_mberId = request.getParameter("p_mberId"); //발신번호 - //String p_accessKey = request.getParameter("p_accessKey"); //수신번호 - //sms.put("mberId", p_mberId); // SMS 아이디 - //sms.put("accessKey", p_accessKey); //인증키 - //임시 - 테스트용 끝 - /******************** 전송정보 ********************/ - //전달 받은 값 - //필수값 - String p_callFrom = request.getParameter("p_callFrom"); //발신번호 - String p_callToList = request.getParameter("p_callToList"); //수신번호 - String p_eachPrice = request.getParameter("p_eachPrice"); //전송문자 개별가격 - //String p_fileCnt = request.getParameter("p_fileCnt"); //첨부파일갯수 - String p_sPrice = request.getParameter("p_sPrice"); //단문문자단가 - //String p_totPrice = request.getParameter("p_totPrice"); //총결제금액 + //String p_sPrice = request.getParameter("p_sPrice"); //단문문자단가 + //String p_fileCnt = request.getParameter("p_fileCnt"); //첨부파일갯수 + //String p_totPrice = request.getParameter("p_totPrice"); //총결제금액 //String p_txtReplYn = request.getParameter("p_txtReplYn"); //치환문자 여부 Y//N - //String p_txtReplYn = "N"; //치환문자 여부 - 초기 지원안함 - //String p_msgType = request.getParameter("p_msgType"); //문자타입 4-단문,5-URL,6-MMS,7-BARCODE,8-카카오알림톡 - //String p_msgKind = request.getParameter("p_msgKind"); //N-일반,A-광고,C-선거 - //String p_msgKind = "N"; //N-일반,A-광고,C-선거 - 초기 지원안함 - String p_smsTxt = request.getParameter("p_smsTxt"); //SMS용 메시지본문 - String p_nameStr = request.getParameter("p_nameStr"); //치환문자 - String p_testYn = request.getParameter("p_testYn"); //테스트데이터여부 '', 'YF', 'YS' - - //선택값 - //String p_mmsPrice = request.getParameter("p_mmsPrice"); //mms단가 + //String p_txtReplYn = "N"; //치환문자 여부 - 초기 지원안함 + //String p_msgType = request.getParameter("p_msgType"); //문자타입 4-단문,5-URL,6-MMS,7-BARCODE,8-카카오알림톡 + //String p_msgKind = request.getParameter("p_msgKind"); //N-일반,A-광고,C-선거 + //String p_msgKind = "N"; //N-일반,A-광고,C-선거 - 초기 지원안함 + + //String p_mmsPrice = request.getParameter("p_mmsPrice"); //mms단가 //String p_mPrice = request.getParameter("p_mPrice"); //장문문자단가 //String p_spamStatus = request.getParameter("p_spamStatus"); //스팸문자 유무 @@ -84,19 +67,23 @@ //String p_divideTime = request.getParameter("p_divideTime"); //분할문자 간격 //String p_reqDate = request.getParameter("p_reqDate"); //예약시간 - // 필수 데이터 - params.put("mberId", mberId); // SMS 아이디 - params.put("accessKey", apiKey); //인증키 - //추가 전송 데이터 - params.put("callFrom" , p_callFrom); //발신번호 - params.put("callToList" , p_callToList); //수신번호 - //params.put("eachPrice" , p_eachPrice); //전송문자 개별가격 - //params.put("sPrice" , p_sPrice); //단문문자단가 - params.put("smsTxt" , p_smsTxt); //SMS용 메시지본문 - params.put("nameStr" , p_nameStr); //페이지당 출력갯수 - params.put("test_yn" , p_testYn); //테스트 여부 + /* 추후 사용을 위하여 주석 상태로 보존 - 사용자 샘플 JSP에는 해당 내용 삭제 */ + + Map params = new HashMap(); - + //필수 전송 데이터 + params.put("mberId", mberId); //회원 아이디 + params.put("accessKey", apiKey); //인증키 + params.put("callFrom" , p_callFrom); //발신자 번호 + params.put("callToList" , p_callToList); //수신자 번호 + params.put("smsTxt" , p_smsTxt); //문자 내용 + + //선택 전송 데이터 + params.put("nameStr" , p_nameStr); //치환용 이름 + params.put("test_yn" , p_testYn); //테스트 데이터 여부 + + + //REST API 전송 String result = ""; MultipartEntityBuilder builder = MultipartEntityBuilder.create(); @@ -111,17 +98,15 @@ //전달값이 없는 경우 오류 try{ builder.addTextBody(key, params.get(key) - , ContentType.create("Multipart/related", encodingType)); + , ContentType.create("Multipart/related", encodingType)); }catch(Exception ex){ ex.printStackTrace(); - - } - - } + } + } }catch(Exception ex){ ex.printStackTrace(); - } + } HttpEntity entity = builder.build(); @@ -146,4 +131,8 @@ out.print("{\"resultCode\":99,\"message\":\"WRONG API METHOD\"}"); } + + /**************** 문자발송 Response 예제 ******************/ + /* "result_code": 결과코드, "msgGroupId": 메세지 그룹 ID, "msgType": 메세지 타입 */ + /* "test_yn": 테스트 데이터 여부, "successCnt": 성공 건수 , "blockCnt" : 수신거부 건수*/ %> \ No newline at end of file diff --git a/src/main/webapp/sample_mjon/jsp_example_send_msgs_form_r1.jsp b/src/main/webapp/sample_mjon/jsp_example_send_msgs_form_r1.jsp index f28c8606..2bd959fe 100644 --- a/src/main/webapp/sample_mjon/jsp_example_send_msgs_form_r1.jsp +++ b/src/main/webapp/sample_mjon/jsp_example_send_msgs_form_r1.jsp @@ -2,110 +2,100 @@ - +
      -

      돌아가기

      -
      +
      +

      대량문자발송(샘플-문자온)

      *mberId와 accessKey값은 실제 서비스시에는 jsp_example_send_msg_r1.jsp 파일에 작성하여 사용하세요
      (샘플 페이지에서는 월활한 테스트를 위해 파라미터 형식으로 제공합니다.) @@ -115,7 +105,6 @@
      -
      @@ -136,29 +125,37 @@
      +
      callFrom
      + +
      테스트여부 (기본값 없음, YF-테스트(실패), YS-테스트(성공)
      + +
      p_callTo_1
      +
      p_smsTxt_1
      +
      +
      메세지ID : @@ -178,11 +175,7 @@
      - +
      -
      - - - diff --git a/src/main/webapp/sample_mjon/jsp_example_send_msgs_r1.jsp b/src/main/webapp/sample_mjon/jsp_example_send_msgs_r1.jsp index 62b1b8c3..992e73c3 100644 --- a/src/main/webapp/sample_mjon/jsp_example_send_msgs_r1.jsp +++ b/src/main/webapp/sample_mjon/jsp_example_send_msgs_r1.jsp @@ -18,94 +18,76 @@ <%@ page language="java" contentType="text/html; charset=utf-8 " pageEncoding="utf-8"%> <% try{ - //기본 설정값 - //final String encodingType = "utf-8"; + //기본 설정값’ final String encodingType = "UTF-8"; final String boundary = "____boundary____"; - //회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용해주세요 - //실제서비스용 - //final String mberId = "goodgkdus"; //문자온 로그인 아이디 - //final String apiKey = "12e749877379aa7426275414050694b953"; //발급받은 api key + /******************** 전송 요청 URL ********************/ + //String apiUrl = "http://localhost:8088/api/send/sendMsgs"; + //final String apiUrl = "https://api.munjaon.co.kr:9998/api/send/sendMsg"; //실제 서비스 URL + String apiUrl = "https://apidev.munjaon.co.kr:9998/api/send/sendMsgs"; //개발테스트용 URL - //테스트용 - String mberId = request.getParameter("p_mberId"); //문자온 로그인 아이디 - String apiKey = request.getParameter("p_apiKey"); //발급받은 api key + //회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용 + //실제서비스용 + //final String mberId = "goodgkdus"; //문자온 로그인 아이디 + //final String apiKey = "12e749877379aa7426275414050694b953"; //발급받은 api key + + //테스트용 + String mberId = request.getParameter("p_mberId"); //문자온 로그인 아이디 + String apiKey = request.getParameter("p_apiKey"); //발급받은 api key + /******************** 전송 정보 ********************/ + //필수 값’ + String p_callFrom = request.getParameter("p_callFrom"); //발신자 번호 + String p_callTo_1 = request.getParameter("p_callTo_1"); //수신자 번호 1 + String p_smsTxt_1 = request.getParameter("p_smsTxt_1"); //문자 내용 1 - /**************** 문자전송하기 예제 ******************/ - /* "result_code":결과코드,"message":결과문구, */ - /* "msg_id":메세지ID,"error_cnt":에러갯수,"success_cnt":성공갯수 */ - /* 동일내용 > 전송용 입니다. - /******************** 인증정보 ********************/ - //String sms_url = "https://apis.aligo.in/send/"; // 전송요청 URL - //String sms_url = "https://api.munjaon.co.kr:9998/api/accessTest/Test"; // 전송요청 URL - //String sms_url = "https://api.munjaon.co.kr:9998/api/accessKey/SendMsg"; // 전송요청 URL - String apiUrl = "http://localhost:8088/api/send/sendMsgs"; // 전송요청 URL + //선택 값 + String p_testYn = request.getParameter("p_testYn"); //테스트 데이터 여부 '', 'YF', 'YS' -// String apiUrl = "https://apidev.munjaon.co.kr:9998/api/send/sendMsgs"; // 전송요청 URL + /* 추후 사용을 위하여 주석 상태로 보존 - 사용자 샘플 JSP에는 해당 내용 삭제 */ - Map params = new HashMap(); - params.put("mberId", mberId); // SMS 아이디 - params.put("accessKey", apiKey); //인증키 - /******************** 인증정보 ********************/ + //String p_nameStr_1 = request.getParameter("p_nameStr_1"); //치환용 이름 1 + //String p_mmsPrice = request.getParameter("p_mmsPrice"); //mms 단가 + //String p_mPrice = request.getParameter("p_mPrice"); //장문문자단가 + //String p_spamStatus = request.getParameter("p_spamStatus"); //스팸문자 유무 - - //임시 - 테스트용 시작 - //String p_mberId = request.getParameter("p_mberId"); //발신번호 - //String p_accessKey = request.getParameter("p_accessKey"); //수신번호 - //sms.put("mberId", p_mberId); // SMS 아이디 - //sms.put("accessKey", p_accessKey); //인증키 - //임시 - 테스트용 끝 - /******************** 전송정보 ********************/ - //전달 받은 값 - //필수값 - String p_callFrom = request.getParameter("p_callFrom"); //발신번호 - String p_callTo_1 = request.getParameter("p_callTo_1"); //수신번호 - //String p_eachPrice = request.getParameter("p_eachPrice"); //전송문자 개별가격 - //String p_fileCnt = request.getParameter("p_fileCnt"); //첨부파일갯수 - //String p_sPrice = request.getParameter("p_sPrice"); //단문문자단가 - //String p_totPrice = request.getParameter("p_totPrice"); //총결제금액 - //String p_txtReplYn = request.getParameter("p_txtReplYn"); //치환문자 여부 Y//N - //String p_txtReplYn = "N"; //치환문자 여부 - 초기 지원안함 - //String p_msgType = request.getParameter("p_msgType"); //문자타입 4-단문,5-URL,6-MMS,7-BARCODE,8-카카오알림톡 - //String p_msgKind = request.getParameter("p_msgKind"); //N-일반,A-광고,C-선거 - //String p_msgKind = "N"; //N-일반,A-광고,C-선거 - 초기 지원안함 - String p_smsTxt_1 = request.getParameter("p_smsTxt_1"); //SMS용 메시지본문 - String p_testYn = request.getParameter("p_testYn"); //테스트데이터여부 '', 'YF', 'YS' - //String p_nameStr_1 = request.getParameter("p_nameStr_1"); //치환문자 + //String p_eachPrice = request.getParameter("p_eachPrice"); //개별 금액 + //String p_fileCnt = request.getParameter("p_fileCnt"); //첨부파일갯수 + //String p_sPrice = request.getParameter("p_sPrice"); //단문문자단가 + //String p_totPrice = request.getParameter("p_totPrice"); //총결제금액 + //String p_txtReplYn = request.getParameter("p_txtReplYn"); //치환문자 여부 Y//N + //String p_txtReplYn = "N"; //치환문자 여부 - 초기 지원안함 + //String p_msgType = request.getParameter("p_msgType"); //문자타입 4-단문,5-URL,6-MMS,7-BARCODE,8-카카오알림톡 + //String p_msgKind = request.getParameter("p_msgKind"); //N-일반,A-광고,C-선거 + //String p_msgKind = "N"; //N-일반,A-광고,C-선거 - 초기 지원안함 + + //예약문자의 경우(선택값) + //String p_reserveYn = request.getParameter("p_reserveYn"); //예약문자 여부 N or Y + //String p_divideCnt = request.getParameter("p_divideCnt"); //분할문자 건수 + //String p_divideTime = request.getParameter("p_divideTime"); //분할문자 간격 + //String p_reqDate = request.getParameter("p_reqDate"); //예약시간 - //선택값 - //String p_mmsPrice = request.getParameter("p_mmsPrice"); //mms단가 - //String p_mPrice = request.getParameter("p_mPrice"); //장문문자단가 - //String p_spamStatus = request.getParameter("p_spamStatus"); //스팸문자 유무 - - //예약문자의 경우(선택값) - //String p_reserveYn = request.getParameter("p_reserveYn"); //예약문자 여부 N or Y - //String p_divideCnt = request.getParameter("p_divideCnt"); //분할문자 건수 - //String p_divideTime = request.getParameter("p_divideTime"); //분할문자 간격 - //String p_reqDate = request.getParameter("p_reqDate"); //예약시간 - - - //추가 전송 데이터 + Map params = new HashMap(); + + //필수 전송 데이터 + params.put("mberId", mberId); //회원 아이디 + params.put("accessKey", apiKey); //인증키 params.put("callFrom" , p_callFrom); //발신번호 + + //선택 전송 데이터 params.put("test_yn" , p_testYn); //테스트 여부 - //params.put("callTo_1" , p_callTo_1); //수신번호 - //params.put("eachPrice" , p_eachPrice); //전송문자 개별가격 - //params.put("sPrice" , p_sPrice); //단문문자단가 - //params.put("smsTxt_1" , p_smsTxt_1); //SMS용 메시지본문 - - - for (int i=1;i<101;i++){ + //전송할 데이터에 수신자, 문자내용 개수만큼 추가해주기 + for (int i=1;i<101;i++){ //최대 수신자 100명 String p_callTo = "p_callTo_"+Integer.toString(i); String p_smsTxt = "p_smsTxt_"+Integer.toString(i); String s_callTo = "callTo_"+Integer.toString(i); String s_smsTxt = "smsTxt_"+Integer.toString(i); - p_callTo_1 = request.getParameter(p_callTo); //SMS용 메시지본문 - p_smsTxt_1 = request.getParameter(p_smsTxt); //SMS용 메시지본문 + p_callTo_1 = request.getParameter(p_callTo); + p_smsTxt_1 = request.getParameter(p_smsTxt); System.out.println("======i====="); @@ -113,18 +95,20 @@ System.out.println(p_callTo_1); System.out.println(p_smsTxt_1); + if (p_callTo_1 != null && p_smsTxt_1 != null && !"".equals(p_callTo_1) && !"".equals(p_smsTxt_1) ){ - params.put(s_callTo, p_callTo_1); //수신번호 - //params.put("eachPrice" , p_eachPrice); //전송문자 개별가격 - //params.put("sPrice" , p_sPrice); //단문문자단가 - params.put(s_smsTxt, p_smsTxt_1); //SMS용 메시지본문 + params.put(s_callTo, p_callTo_1); //수신자 추가 + params.put(s_smsTxt, p_smsTxt_1); //문자내용 추가 + } else{ + break; } } - + + //REST API 전송 String result = ""; MultipartEntityBuilder builder = MultipartEntityBuilder.create(); @@ -136,7 +120,7 @@ try{ for(Iterator i = params.keySet().iterator(); i.hasNext();){ String key = i.next(); - //전달값이 없는 경우 오류 + //전달값이 없는 경우 오류˜ try{ builder.addTextBody(key, params.get(key) , ContentType.create("Multipart/related", encodingType)); @@ -174,4 +158,7 @@ out.print("{\"resultCode\":99,\"message\":\"WRONG API METHOD\"}"); } + /**************** 문자발송 Response 예제 ******************/ + /* "result_code": 결과코드, "msgGroupIdList": 메세지 그룹 ID 리스트, "msgTypeList": 메세지 타입 리스트*/ + /* "test_yn": 테스트 데이터 여부, "successCnt": 성공 건수 , "blockCnt" : 수신거부 건수, "failCnt": 발송실패 건수*/ %> \ No newline at end of file diff --git a/src/main/webapp/sample_mjon/jsp_example_start_form_r1.jsp b/src/main/webapp/sample_mjon/jsp_example_start_form_r1.jsp index 9a6f2d27..34088872 100644 --- a/src/main/webapp/sample_mjon/jsp_example_start_form_r1.jsp +++ b/src/main/webapp/sample_mjon/jsp_example_start_form_r1.jsp @@ -1,102 +1,7 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> - - - - - -
      + { +

      "resultCode":"5099"

      +

      ,"data":"기타 시스템 오류"

      }