카카오 친구톡 환불처리 서비스 추가
- 아직 스케줄러에는 추가 안했음 - 전송 컨트롤러에 테스트 URL로 테스트 중
This commit is contained in:
parent
11e92e351c
commit
e357b1436a
@ -22,4 +22,7 @@ public interface KakaoAlimTalkService {
|
||||
//카카오 알림톡 전송 실패 환불리스트 조회
|
||||
public void selectKakaoAtSentRefundList() throws Exception;
|
||||
|
||||
//카카오 친구톡 전송 실패 환불리스트 조회
|
||||
public void selectKakaoFtSentRefundList() throws Exception;
|
||||
|
||||
}
|
||||
|
||||
@ -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<KakaoVO>) list("kakaoAlimTalkDAO.selectKakaoAtSentRefundList");
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<KakaoVO> selectKakaoFtSentRefundList() throws Exception{
|
||||
return (List<KakaoVO>) 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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<KakaoVO> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<String[]> varValList = new ArrayList<String[]>();
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@ -280,7 +280,7 @@ public class MjonCommon {
|
||||
if(kakaoVO.getMsgType().equals("8")) {
|
||||
msgType = "[알림톡]";
|
||||
}else if(kakaoVO.getMsgType().equals("9")){
|
||||
|
||||
msgType = "[테스트중][친구톡]";
|
||||
}
|
||||
sandName = "[" + userId + "]" + "[" + sandName + "]" + msgType;
|
||||
|
||||
|
||||
@ -103,6 +103,32 @@
|
||||
AND MMD.MSG_TYPE = 8
|
||||
</select>
|
||||
|
||||
<select id="kakaoAlimTalkDAO.selectKakaoFtSentRefundList" resultClass="kakaoVO">
|
||||
SELECT
|
||||
MMD.USER_ID AS userId
|
||||
, MMD.MSG_GROUP_ID AS msgGroupId
|
||||
, MMD.MSG_SEQ AS msgSeq
|
||||
, MMD.USERDATA AS userData
|
||||
, MMD.REFUND_YN AS refundYn
|
||||
, MMD.RSLT_CODE AS rsltCode
|
||||
, MMD.RSLT_CODE2 AS rsltCode2
|
||||
, MMD.AGENT_CODE AS agentCode
|
||||
, DATE_FORMAT(MMD.SENT_DATE,'%Y-%m-%d %T') AS sentDate
|
||||
, DATE_FORMAT(MMD.RSLT_DATE,'%Y-%m-%d %T') AS rsltDate
|
||||
, MMD.BIZ_KAKAO_RESEND_YN AS subMsgSendYn
|
||||
, MMD.BIZ_KAKAO_RESEND_TYPE AS subMsgType
|
||||
|
||||
FROM
|
||||
MJ_MSG_DATA MMD
|
||||
INNER JOIN LETTNGNRLMBER MB
|
||||
ON MMD.USER_ID = MB.MBER_ID
|
||||
WHERE 1=1
|
||||
AND MMD.CUR_STATE = '3'
|
||||
AND MMD.REFUND_YN = 'N'
|
||||
AND MMD.RESERVE_C_YN = 'N'
|
||||
AND MMD.MSG_TYPE = 9
|
||||
</select>
|
||||
|
||||
<select id="kakaoAlimTalkDAO.selectKakaoAtUmid" resultClass="kakaoVO" parameterClass="kakaoVO">
|
||||
SELECT
|
||||
BIZ_UMID AS bizUmid
|
||||
@ -126,4 +152,22 @@
|
||||
<procedure id="kakaoAlimTalkDAO.updateKakaoAtNotSend" parameterClass="kakaoVO">
|
||||
{call kakaoAt_NotSend(#userId#, #msgGroupId#, #userData#)}
|
||||
</procedure>
|
||||
|
||||
|
||||
|
||||
<!-- 카카오 친구톡 전송 환불 프로시저 실행 (카카오 전송 성공 관련 - 대체문자 선택시 차액 환불 처리) -->
|
||||
<procedure id="kakaoAlimTalkDAO.updateKakaoFtSend" parameterClass="kakaoVO">
|
||||
{call kakaoFt_Send(#userId#, #msgGroupId#, #userData#)}
|
||||
</procedure>
|
||||
|
||||
<!-- 카카오 친구톡 전송 환불 프로시저 실행 (카카오 전송 실패시 대체문자 관련 - 대체문자 발송 완료 된 경우) -->
|
||||
<procedure id="kakaoAlimTalkDAO.updateKakaoFtSubMsgSend" parameterClass="kakaoVO">
|
||||
{call kakaoFt_SubMsg_Send(#userId#, #msgGroupId#, #userData#)}
|
||||
</procedure>
|
||||
|
||||
<!-- 카카오 친구톡 전송 환불 프로시저 실행 (카카오 전송 실패시 대체문자 관련 - 대체문자 발송 실패 된 경우) -->
|
||||
<procedure id="kakaoAlimTalkDAO.updateKakaoFtNotSend" parameterClass="kakaoVO">
|
||||
{call kakaoFt_NotSend(#userId#, #msgGroupId#, #userData#)}
|
||||
</procedure>
|
||||
|
||||
</sqlMap>
|
||||
@ -753,6 +753,15 @@ function fnSelectMinChk(){
|
||||
//친구톡 발송 금지 시간 처리
|
||||
function fn_noTimeSend(){
|
||||
|
||||
var id = '${loginVO.id}';
|
||||
|
||||
if(id == ""){
|
||||
|
||||
alert("로그인 후 이용이 가능합니다.");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
alert("친구톡은 20:50 ~ 익일 08:00까지 발송할 수 없습니다.");
|
||||
return false;
|
||||
|
||||
@ -1400,10 +1409,6 @@ function thisFnByteString(contents){
|
||||
$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
|
||||
$('.put_left').removeClass("short"); //내용 입력 박스 클래스 삭제
|
||||
$('.msg_com').addClass("msg_long"); // 장문 클래스 삽입
|
||||
// $('.put_left').addClass("long"); // 내용 입력 박스에 클래스 삽입
|
||||
// $('.msg_title').addClass('active');
|
||||
//document.getElementById("mmsSubject").disabled = false;
|
||||
|
||||
$("#subMsgType").val("LMS");
|
||||
|
||||
}else{
|
||||
@ -1415,8 +1420,6 @@ function thisFnByteString(contents){
|
||||
$('.msg_com').removeClass("msg_long"); //단문 클래스 삭제하고
|
||||
$('.put_left').removeClass("long"); //내용 입력 박스 클래스 삭제
|
||||
$('.msg_com').addClass("msg_short"); // 장문 클래스 삽입
|
||||
// $('.put_left').addClass("short"); // 내용 입력 박스에 클래스 삽입
|
||||
// $('.msg_title, .title_wrap .textbox').removeClass('active');
|
||||
$("#subMsgType").val("SMS");
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user