diff --git a/src/main/java/itn/let/kakao/user/kakaoAt/service/KakaoAlimTalkService.java b/src/main/java/itn/let/kakao/user/kakaoAt/service/KakaoAlimTalkService.java index 95a8160d..c19695ea 100644 --- a/src/main/java/itn/let/kakao/user/kakaoAt/service/KakaoAlimTalkService.java +++ b/src/main/java/itn/let/kakao/user/kakaoAt/service/KakaoAlimTalkService.java @@ -22,4 +22,7 @@ public interface KakaoAlimTalkService { //카카오 알림톡 전송 실패 환불리스트 조회 public void selectKakaoAtSentRefundList() throws Exception; + //카카오 친구톡 전송 실패 환불리스트 조회 + public void selectKakaoFtSentRefundList() throws Exception; + } diff --git a/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkDAO.java b/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkDAO.java index ed896167..6a661ac3 100644 --- a/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkDAO.java +++ b/src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkDAO.java @@ -7,7 +7,6 @@ import org.springframework.stereotype.Repository; import egovframework.rte.psl.dataaccess.EgovAbstractDAO; import itn.let.kakao.kakaoComm.KakaoVO; -import itn.let.mjo.msg.service.MjonMsgVO; @Repository("kakaoAlimTalkDAO") public class KakaoAlimTalkDAO extends EgovAbstractDAO { @@ -62,6 +61,11 @@ public class KakaoAlimTalkDAO extends EgovAbstractDAO { return (List) list("kakaoAlimTalkDAO.selectKakaoAtSentRefundList"); } + @SuppressWarnings("unchecked") + public List selectKakaoFtSentRefundList() throws Exception{ + return (List) list("kakaoAlimTalkDAO.selectKakaoFtSentRefundList"); + } + public KakaoVO selectKakaoAtUmid(KakaoVO kakaoVO) throws Exception{ return (KakaoVO) select("kakaoAlimTalkDAO.selectKakaoAtUmid", kakaoVO); } @@ -77,4 +81,17 @@ public class KakaoAlimTalkDAO extends EgovAbstractDAO { public void updateKakaoAtNotSend(KakaoVO kakaoVO) { select("kakaoAlimTalkDAO.updateKakaoAtNotSend", kakaoVO); } + + + public void updateKakaoFtSend(KakaoVO kakaoVO) { + select("kakaoAlimTalkDAO.updateKakaoFtSend", kakaoVO); + } + + public void updateKakaoFtSubMsgSend(KakaoVO kakaoVO) { + select("kakaoAlimTalkDAO.updateKakaoFtSubMsgSend", kakaoVO); + } + + public void updateKakaoFtNotSend(KakaoVO kakaoVO) { + select("kakaoAlimTalkDAO.updateKakaoFtNotSend", kakaoVO); + } } 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 57f01b11..71a171a3 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 @@ -599,7 +599,10 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements } - + /* + * 카카오 알림톡 발송 실패에 따른 금액 환불 처리 + * + * */ @Override public void selectKakaoAtSentRefundList() throws Exception { @@ -629,4 +632,45 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements } } } + + + /* + * 카카오 친구톡 발송 실패에 따른 금액 환불 처리 + * 카카오 친구톡 대체문자 선택에 대해 성공시 친구톡과 문자 간 금액 차액의 환불도 처리 됨. + * */ + @Override + public void selectKakaoFtSentRefundList() throws Exception { + + /** + * 1. 카카오 FT 전송성공 확인 + * 2. 카카오 FT 전송실패, 대채문자 전송확인 + * 3. 카카오 FT 전송 실패 확인 + */ + List kakaoFtSentRefundList = kakaoAlimTalkDAO.selectKakaoFtSentRefundList(); + + for(KakaoVO vo : kakaoFtSentRefundList) { + System.out.println(vo.getMsgGroupId() +"________결과 : " +vo.getRsltCode() +" 대체문자 전송 : "+vo.getSubMsgSendYn()); + + if(vo.getRsltCode().equals("7000")) {//친구톡 발송 성공시 + + kakaoAlimTalkDAO.updateKakaoFtSend(vo); + + }else if(vo.getSubMsgSendYn().equals("Y")) {//친구톡 발송 실패 했을 경우 + + //대체문자 발송 UMID 번호 조회 - 알림톡 쿼리 동일하게 사용 + KakaoVO info = kakaoAlimTalkDAO.selectKakaoAtUmid(vo); + + System.out.println("대체문자 전송 : " + info.getBizUmid()); + + if (info.getBizUmid() != null) {//대체문자 발송 완료인 경우 + kakaoAlimTalkDAO.updateKakaoAtSubMsgSend(vo); + }else { + kakaoAlimTalkDAO.updateKakaoFtNotSend(vo); + } + + }else { + kakaoAlimTalkDAO.updateKakaoFtNotSend(vo); + } + } + } } diff --git a/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java b/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java index 79d41766..e479e055 100644 --- a/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java +++ b/src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java @@ -25,19 +25,22 @@ import itn.com.cmm.EgovMessageSource; import itn.com.cmm.LoginVO; import itn.com.cmm.util.MJUtil; import itn.com.utl.fcc.service.EgovStringUtil; -import itn.let.kakao.kakaoComm.KakaoButtonVO; import itn.let.kakao.kakaoComm.KakaoSendUtil; import itn.let.kakao.kakaoComm.KakaoVO; import itn.let.kakao.kakaoComm.kakaoApi.service.KakaoApiService; import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService; import itn.let.kakao.user.kakaoFt.service.KakaoFriendsTalkTemplateService; +import itn.let.mjo.mjocommon.MjonCommon; import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.mjo.msgdata.service.MjonMsgDataVO; import itn.let.mjo.msgdata.service.MjonMsgReturnVO; import itn.let.mjo.symbol.service.MjonSymbolService; import itn.let.mjo.symbol.service.MjonSymbolVO; +import itn.let.sym.site.service.EgovSiteManagerService; +import itn.let.sym.site.service.JoinSettingVO; import itn.let.uss.umt.service.EgovUserManageService; import itn.let.uss.umt.service.MberManageVO; +import itn.let.uss.umt.service.UserManageVO; @Controller public class KakaoFriendsTalkSendController { @@ -68,6 +71,10 @@ public class KakaoFriendsTalkSendController { @Resource(name = "kakaoAlimTalkService") private KakaoAlimTalkService kakaoAlimTalkService; + /** 사이트 설정 */ + @Resource(name = "egovSiteManagerService") + EgovSiteManagerService egovSiteManagerService; + @Autowired KakaoSendUtil kakaoSendUtil; @@ -583,71 +590,74 @@ public class KakaoFriendsTalkSendController { } catch (Exception e) { System.out.println("kakaoFriendsTalkMsgSendAjax Controller Error !!!! "+e); + modelAndView.addObject("message", egovMessageSource.getMessage("fail.common.update")); + modelAndView.addObject("result", "fail"); + return modelAndView; } - System.out.println("++++++++++++++++++++++ senderKey ::: "+kakaoVO.getSenderKey()); - System.out.println("++++++++++++++++++++++ imageType ::: "+kakaoVO.getImageType()); - System.out.println("++++++++++++++++++++++ imageTitle ::: "+kakaoVO.getImageTitle()); - System.out.println("++++++++++++++++++++++ imageLink ::: "+kakaoVO.getImageLink()); - System.out.println("++++++++++++++++++++++ imageFileName ::: "+kakaoVO.getImageFileName()); - System.out.println("++++++++++++++++++++++ adFlag ::: "+kakaoVO.getAdFlag()); - System.out.println("++++++++++++++++++++++ templateContents ::: "+kakaoVO.getTemplateContent()); - System.out.println("++++++++++++++++++++++ templateImageUrl ::: "+kakaoVO.getTemplateImageUrl()); - System.out.println("++++++++++++++++++++++ kakaoFtPrice ::: "+kakaoVO.getKakaoFtPrice()); - System.out.println("++++++++++++++++++++++ eachPrice ::: "+kakaoVO.getEachPrice()); - System.out.println("++++++++++++++++++++++ totPrice ::: "+kakaoVO.getTotalPrice()); + modelAndView.addObject("message", "친구톡 전송이 완료되었습니다."); + modelAndView.addObject("result", "success"); + modelAndView.addObject("resultSts", resultSts); - for(KakaoButtonVO buttonVO : kakaoVO.getButtonVOList()) { +/** 카카오 친구톡 발송 내용 법인폰, 친구톡 결과 처리 --------------------------------------------------*/ + try { + String adminSmsNoticeYn = "Y"; + String spamStatus = kakaoVO.getAtSmishingYn(); // 스미싱 의심으로 체크된 고객 정보 - System.out.println("++++++++++++++ button Name ::: "+buttonVO.getName()); - System.out.println("++++++++++++++ button type :::"+ buttonVO.getLinkType()); - System.out.println("++++++++++++++ button pc :::"+ buttonVO.getLinkPc()); - System.out.println("++++++++++++++ button mobile :::"+ buttonVO.getLinkMo()); - System.out.println("++++++++++++++ button android :::"+ buttonVO.getLinkAnd()); - System.out.println("++++++++++++++ button ios :::"+ buttonVO.getLinkIos()); + UserManageVO userManageVO = new UserManageVO(); + userManageVO.setMberId(userId); + if(!userId.equals("")) { + userManageVO = userManageService.selectAdminSmsNoticeYn(userManageVO); + adminSmsNoticeYn = userManageVO.getAdminSmsNoticeYn(); + } + + //법인폰 알림 온 이거나 스미싱의심 문자인 경우 법인폰으로 발송 + if(adminSmsNoticeYn.equals("Y") || spamStatus.equals("Y")) { + + if(spamStatus.equals("Y")) { + kakaoVO.setAtDelayYn("Y"); + } + + // 법인폰 알람여부 체크 + JoinSettingVO joinSettingVO = new JoinSettingVO(); + joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); + + // SLACK 체크 + if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) { + //Slack으로 메세지 전송 처리 + MjonCommon comm = new MjonCommon(); + comm.getAdminKakaoAtSandSlack(kakaoVO); + } + } + + } catch (Exception e) { + throw new Exception("++++++++++++++++++++++ getAdminPhoneSendMsgData Error !!! " + e); } - List varValList = new ArrayList(); - System.out.println("+++++++++++++++ txtReplYn ::: "+kakaoVO.getTxtReplYn()); - - varValList = kakaoVO.getVarValList(); - - for(int i=0; i < varValList.size(); i++) { - - - String tmpVar = varValList.get(i)[0]; - System.out.println("+++++++++++++ tmpVar ::: "+tmpVar); - - } - - for(String callTo : kakaoVO.getCallToList()) { - - System.out.println("++++++++++++ callTo ::: "+callTo); - - } - - System.out.println("++++++++++++++++ spamStatus ::: "+kakaoVO.getSpamStatus()); - - System.out.println("++++++++++++++++ 대체문자 사용 여부 ::: "+kakaoVO.getSubMsgSendYn()); - - System.out.println("++++++++++++++++ 발신번호 ::: "+kakaoVO.getCallFrom()); - System.out.println("++++++++++++++++ 대체문자 내용 ::: "+kakaoVO.getSmsTxtArea()); - - System.out.println("++++++++++++++++ 대체문자 타입 ::: "+kakaoVO.getSubMsgType()); - - System.out.println("++++++++++++++++ 예약문자 여부 ::: "+kakaoVO.getReserveYn()); - - System.out.println("++++++++++++++++ 예약 시간 ::: "+kakaoVO.getReqDate()); - - System.out.println("++++++++++++++++ json 필요 유무 ::: "+kakaoVO.getBizJsonYn()); + return modelAndView; + } + + + /** + * @Method Name : kakaoFriendsTalkMsgSendRefundTestAjax + * @작성일 : 2024. 1. 18. + * @작성자 : 우영두 + * @Method 설명 : 카카오 친구톡 전송 환불 스케줄러 서비스 테스트 + */ + @RequestMapping(value= {"/web/mjon/kakao/friendstalk/kakaoFriendsTalkMsgSendRefundTestAjax.do"}) + public ModelAndView kakaoFriendsTalkMsgSendRefundTestAjax(ModelMap model + , HttpServletRequest request + , @ModelAttribute("kakaoVO") KakaoVO kakaoVO) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + kakaoAlimTalkService.selectKakaoFtSentRefundList(); modelAndView.addObject("result", "success"); - modelAndView.addObject("resultSts", kakaoVO.getCallToList().length); return modelAndView; } diff --git a/src/main/java/itn/let/mjo/mjocommon/MjonCommon.java b/src/main/java/itn/let/mjo/mjocommon/MjonCommon.java index 05fe6224..72e3d3f7 100644 --- a/src/main/java/itn/let/mjo/mjocommon/MjonCommon.java +++ b/src/main/java/itn/let/mjo/mjocommon/MjonCommon.java @@ -280,7 +280,7 @@ public class MjonCommon { if(kakaoVO.getMsgType().equals("8")) { msgType = "[알림톡]"; }else if(kakaoVO.getMsgType().equals("9")){ - + msgType = "[테스트중][친구톡]"; } sandName = "[" + userId + "]" + "[" + sandName + "]" + msgType; diff --git a/src/main/resources/egovframework/sqlmap/let/mjo/kakao/Kakao_AT_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/mjo/kakao/Kakao_AT_SQL_Mysql.xml index 77ea6d3a..9ff146a3 100644 --- a/src/main/resources/egovframework/sqlmap/let/mjo/kakao/Kakao_AT_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/mjo/kakao/Kakao_AT_SQL_Mysql.xml @@ -103,6 +103,32 @@ AND MMD.MSG_TYPE = 8 + +