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