이지우 - 알림톡, 친구톡 환불 통합 처리 완료
This commit is contained in:
parent
a3b1153049
commit
c3a5062b05
@ -862,35 +862,38 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
||||
|
||||
for(KakaoVO kakaoVO : kakaoFtSentRefundList) {
|
||||
System.out.println(kakaoVO.getMsgGroupId() +"________결과 : " +kakaoVO.getRsltCode() +" 대체문자 전송 : "+kakaoVO.getSubMsgSendYn());
|
||||
kakaoVO.setMsgTypeTxt(AT_MSG_TYPE.equals(kakaoVO.getMsgType()) ? "알림톡" : "친구톡");
|
||||
|
||||
if(KAKAO_SUCCESS_CODE.equals(kakaoVO.getRsltCode())) {//친구톡 발송 성공시
|
||||
|
||||
if(KAKAO_SUCCESS_CODE.equals(kakaoVO.getRsltCode())) {
|
||||
//1.카카오톡 발송 성공
|
||||
processKakaoSendCharge(kakaoVO);
|
||||
|
||||
}else if(RESEND_YN_YES.equals(kakaoVO.getSubMsgSendYn())) {
|
||||
//친구톡 발송 실패 했고, 대체문자 발송 했을 경우
|
||||
}else if(RESEND_YN_YES.equals(kakaoVO.getSubMsgSendYn())) {//카카오톡 발송 실패, 대체문자 발송 신청 O
|
||||
//2.카카오톡 발송 실패 + 대체문자 신청 O
|
||||
handleAlternativeMessageScenario(kakaoVO);
|
||||
|
||||
}else {
|
||||
handleRefund(kakaoVO, "카카오 친구톡 전송 실패로 인한 결재 금액 환불");
|
||||
//3.카카오톡 발송 실패 + 대체문자 신청 X : 전액 환불
|
||||
handleRefund(kakaoVO, "카카오 " + kakaoVO.getMsgTypeTxt() + " 전송 실패로 인한 결제 금액 환불");
|
||||
}
|
||||
|
||||
//모든 유형 환불 완료 처리
|
||||
mjonMsgDAO.updateRefundY(kakaoVO);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void processKakaoSendCharge(KakaoVO kakaoVO) throws Exception {
|
||||
|
||||
|
||||
//1-1.카카오톡 발송 성공 + 대체문자 신청 O : 대체문자 금액 환불
|
||||
if(RESEND_YN_YES.equals(kakaoVO.getSubMsgSendYn())) {
|
||||
|
||||
BizKakaoPriceVO bizKakaoPriceVO = mjonPayDAO.selectBizKakaoPrice(kakaoVO.getMsgGroupId());
|
||||
|
||||
BigDecimal sendPrice = null;
|
||||
String kakaoType = "";
|
||||
|
||||
if(AT_MSG_TYPE.equals(kakaoVO.getMsgType())){
|
||||
sendPrice = new BigDecimal(bizKakaoPriceVO.getBizKakaoAtPrice());
|
||||
kakaoType = "알림톡";
|
||||
}else {
|
||||
if(StringUtils.isEmpty(kakaoVO.getBizKakaoImageType())){
|
||||
sendPrice = new BigDecimal(bizKakaoPriceVO.getBizKakaoFtPrice());
|
||||
@ -899,7 +902,6 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
||||
}else if("W".equals(kakaoVO.getBizKakaoImageType())){
|
||||
sendPrice = new BigDecimal(bizKakaoPriceVO.getBizKakaoFtWideImgPrice());
|
||||
}
|
||||
kakaoType = "친구톡";
|
||||
}
|
||||
// 예시: 각 건당 가격이 이미 String 형태라면 변환
|
||||
BigDecimal eachPrice = new BigDecimal(kakaoVO.getEachPrice());
|
||||
@ -907,33 +909,23 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
||||
// 차이 계산
|
||||
BigDecimal diffPrice = eachPrice.subtract(sendPrice);
|
||||
|
||||
|
||||
//대체문자 비용(eachPrace - sendPrice)
|
||||
if (diffPrice.compareTo(BigDecimal.ZERO) > 0) {
|
||||
String result = diffPrice.toString();
|
||||
kakaoVO.setEachPrice(result);
|
||||
handleRefund(kakaoVO, "카카오 " + kakaoType + " 전송으로 인한 결재 차액 환불");
|
||||
handleRefund(kakaoVO, "카카오 " + kakaoVO.getMsgTypeTxt() + " 발송 성공 후 대체문자 금액 환불");
|
||||
}
|
||||
|
||||
}else {
|
||||
mjonMsgDAO.updateRefundY(kakaoVO);
|
||||
|
||||
}
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
//1-2.카카오톡 발송 성공 + 대체문자 신청 X : 금액 환불 X
|
||||
}
|
||||
|
||||
private void handleAlternativeMessageScenario(KakaoVO kakaoVO) throws Exception {
|
||||
KakaoVO bizLogVO = kakaoAlimTalkDAO.selectBizLog(kakaoVO.getBizUmid());
|
||||
log.info("대체문자 전송 UMID: {}", kakaoVO.getBizUmid());
|
||||
|
||||
// 알림톡 or 친구톡 구분
|
||||
String kakaoType = "";
|
||||
if(AT_MSG_TYPE.equals(kakaoVO.getMsgType())){
|
||||
kakaoType = "알림톡";
|
||||
}else {
|
||||
kakaoType = "친구톡";
|
||||
}
|
||||
// 대체문자가 성공적으로 발송되었는지 확인 (SMS 또는 MMS 성공)
|
||||
//2-1.카카오톡 발송 실패 + 대체문자 발송 성공 : 금액 환불 X
|
||||
boolean isAlternativeMessageSuccessful = false;
|
||||
if (bizLogVO != null && StringUtils.isNotEmpty(bizLogVO.getBizLogCallStatus())) {
|
||||
if (SMS_SUCCESS_CODE.equals(bizLogVO.getBizLogCallStatus())
|
||||
@ -945,12 +937,9 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
||||
}
|
||||
|
||||
|
||||
// 대체문자 성공이면 환불 완료처리면 한다.
|
||||
if (isAlternativeMessageSuccessful) {
|
||||
mjonMsgDAO.updateRefundY(kakaoVO);
|
||||
} else {
|
||||
// 대체문자 발송 실패 된 경우 (친구톡 비용 환불 필요)
|
||||
handleRefund(kakaoVO, "카카오 " + kakaoType + " 전송 실패로 인한 결재 금액 환불");
|
||||
//2-2.카카오톡 발송 실패 + 대체문자 발송 실패 : 전액 환불
|
||||
if (!isAlternativeMessageSuccessful) {
|
||||
handleRefund(kakaoVO, "카카오 " + kakaoVO.getMsgTypeTxt() + " 전송 실패로 인한 결재 금액 환불");
|
||||
}
|
||||
}
|
||||
|
||||
@ -964,9 +953,6 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
||||
vo.getMsgGroupId(),
|
||||
vo.getUserData()
|
||||
);
|
||||
|
||||
// 해당 row 환불 처리 (mj_msg_data.REFUND_YN = 'Y')
|
||||
mjonMsgDAO.updateRefundY(vo);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -441,10 +441,13 @@ public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements
|
||||
public void kakaoFailPayBack() throws Exception {
|
||||
|
||||
// 카카오 알림톡 환불 처리
|
||||
kakaoAlimTalkService.selectKakaoAtSentRefundList();
|
||||
//kakaoAlimTalkService.selectKakaoAtSentRefundList();
|
||||
|
||||
// 카카오 친구톡 환불 처리
|
||||
kakaoAlimTalkService.selectKakaoFtSentRefundList();
|
||||
//kakaoAlimTalkService.selectKakaoFtSentRefundList();
|
||||
|
||||
// 카카오 알림톡, 친구톡 통합 환불 처리
|
||||
kakaoAlimTalkService.selectKakaoSentRefundList();
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user