이지우 - 알림톡, 친구톡 환불 통합 처리 완료
@c3a5062b058c47cb2b6a4f29845fdd711edef32a
--- src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
+++ src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
... | ... | @@ -862,35 +862,38 @@ |
| 862 | 862 |
|
| 863 | 863 |
for(KakaoVO kakaoVO : kakaoFtSentRefundList) {
|
| 864 | 864 |
System.out.println(kakaoVO.getMsgGroupId() +"________결과 : " +kakaoVO.getRsltCode() +" 대체문자 전송 : "+kakaoVO.getSubMsgSendYn()); |
| 865 |
+ kakaoVO.setMsgTypeTxt(AT_MSG_TYPE.equals(kakaoVO.getMsgType()) ? "알림톡" : "친구톡"); |
|
| 865 | 866 |
|
| 866 |
- if(KAKAO_SUCCESS_CODE.equals(kakaoVO.getRsltCode())) {//친구톡 발송 성공시
|
|
| 867 |
- |
|
| 867 |
+ if(KAKAO_SUCCESS_CODE.equals(kakaoVO.getRsltCode())) {
|
|
| 868 |
+ //1.카카오톡 발송 성공 |
|
| 868 | 869 |
processKakaoSendCharge(kakaoVO); |
| 869 | 870 |
|
| 870 |
- }else if(RESEND_YN_YES.equals(kakaoVO.getSubMsgSendYn())) {
|
|
| 871 |
- //친구톡 발송 실패 했고, 대체문자 발송 했을 경우 |
|
| 871 |
+ }else if(RESEND_YN_YES.equals(kakaoVO.getSubMsgSendYn())) {//카카오톡 발송 실패, 대체문자 발송 신청 O
|
|
| 872 |
+ //2.카카오톡 발송 실패 + 대체문자 신청 O |
|
| 872 | 873 |
handleAlternativeMessageScenario(kakaoVO); |
| 873 | 874 |
|
| 874 | 875 |
}else {
|
| 875 |
- handleRefund(kakaoVO, "카카오 친구톡 전송 실패로 인한 결재 금액 환불"); |
|
| 876 |
+ //3.카카오톡 발송 실패 + 대체문자 신청 X : 전액 환불 |
|
| 877 |
+ handleRefund(kakaoVO, "카카오 " + kakaoVO.getMsgTypeTxt() + " 전송 실패로 인한 결제 금액 환불"); |
|
| 876 | 878 |
} |
| 879 |
+ |
|
| 880 |
+ //모든 유형 환불 완료 처리 |
|
| 881 |
+ mjonMsgDAO.updateRefundY(kakaoVO); |
|
| 877 | 882 |
} |
| 878 | 883 |
} |
| 879 | 884 |
|
| 880 | 885 |
|
| 881 | 886 |
private void processKakaoSendCharge(KakaoVO kakaoVO) throws Exception {
|
| 882 | 887 |
|
| 883 |
- |
|
| 888 |
+ //1-1.카카오톡 발송 성공 + 대체문자 신청 O : 대체문자 금액 환불 |
|
| 884 | 889 |
if(RESEND_YN_YES.equals(kakaoVO.getSubMsgSendYn())) {
|
| 885 | 890 |
|
| 886 | 891 |
BizKakaoPriceVO bizKakaoPriceVO = mjonPayDAO.selectBizKakaoPrice(kakaoVO.getMsgGroupId()); |
| 887 | 892 |
|
| 888 | 893 |
BigDecimal sendPrice = null; |
| 889 |
- String kakaoType = ""; |
|
| 890 | 894 |
|
| 891 | 895 |
if(AT_MSG_TYPE.equals(kakaoVO.getMsgType())){
|
| 892 | 896 |
sendPrice = new BigDecimal(bizKakaoPriceVO.getBizKakaoAtPrice()); |
| 893 |
- kakaoType = "알림톡"; |
|
| 894 | 897 |
}else {
|
| 895 | 898 |
if(StringUtils.isEmpty(kakaoVO.getBizKakaoImageType())){
|
| 896 | 899 |
sendPrice = new BigDecimal(bizKakaoPriceVO.getBizKakaoFtPrice()); |
... | ... | @@ -899,7 +902,6 @@ |
| 899 | 902 |
}else if("W".equals(kakaoVO.getBizKakaoImageType())){
|
| 900 | 903 |
sendPrice = new BigDecimal(bizKakaoPriceVO.getBizKakaoFtWideImgPrice()); |
| 901 | 904 |
} |
| 902 |
- kakaoType = "친구톡"; |
|
| 903 | 905 |
} |
| 904 | 906 |
// 예시: 각 건당 가격이 이미 String 형태라면 변환 |
| 905 | 907 |
BigDecimal eachPrice = new BigDecimal(kakaoVO.getEachPrice()); |
... | ... | @@ -907,33 +909,23 @@ |
| 907 | 909 |
// 차이 계산 |
| 908 | 910 |
BigDecimal diffPrice = eachPrice.subtract(sendPrice); |
| 909 | 911 |
|
| 910 |
- |
|
| 912 |
+ //대체문자 비용(eachPrace - sendPrice) |
|
| 911 | 913 |
if (diffPrice.compareTo(BigDecimal.ZERO) > 0) {
|
| 912 | 914 |
String result = diffPrice.toString(); |
| 913 | 915 |
kakaoVO.setEachPrice(result); |
| 914 |
- handleRefund(kakaoVO, "카카오 " + kakaoType + " 전송으로 인한 결재 차액 환불"); |
|
| 916 |
+ handleRefund(kakaoVO, "카카오 " + kakaoVO.getMsgTypeTxt() + " 발송 성공 후 대체문자 금액 환불"); |
|
| 915 | 917 |
} |
| 916 | 918 |
|
| 917 |
- }else {
|
|
| 918 |
- mjonMsgDAO.updateRefundY(kakaoVO); |
|
| 919 |
- |
|
| 920 | 919 |
} |
| 921 |
- // TODO Auto-generated method stub |
|
| 922 | 920 |
|
| 921 |
+ //1-2.카카오톡 발송 성공 + 대체문자 신청 X : 금액 환불 X |
|
| 923 | 922 |
} |
| 924 | 923 |
|
| 925 | 924 |
private void handleAlternativeMessageScenario(KakaoVO kakaoVO) throws Exception {
|
| 926 | 925 |
KakaoVO bizLogVO = kakaoAlimTalkDAO.selectBizLog(kakaoVO.getBizUmid()); |
| 927 | 926 |
log.info("대체문자 전송 UMID: {}", kakaoVO.getBizUmid());
|
| 928 | 927 |
|
| 929 |
- // 알림톡 or 친구톡 구분 |
|
| 930 |
- String kakaoType = ""; |
|
| 931 |
- if(AT_MSG_TYPE.equals(kakaoVO.getMsgType())){
|
|
| 932 |
- kakaoType = "알림톡"; |
|
| 933 |
- }else {
|
|
| 934 |
- kakaoType = "친구톡"; |
|
| 935 |
- } |
|
| 936 |
- // 대체문자가 성공적으로 발송되었는지 확인 (SMS 또는 MMS 성공) |
|
| 928 |
+ //2-1.카카오톡 발송 실패 + 대체문자 발송 성공 : 금액 환불 X |
|
| 937 | 929 |
boolean isAlternativeMessageSuccessful = false; |
| 938 | 930 |
if (bizLogVO != null && StringUtils.isNotEmpty(bizLogVO.getBizLogCallStatus())) {
|
| 939 | 931 |
if (SMS_SUCCESS_CODE.equals(bizLogVO.getBizLogCallStatus()) |
... | ... | @@ -945,13 +937,10 @@ |
| 945 | 937 |
} |
| 946 | 938 |
|
| 947 | 939 |
|
| 948 |
- // 대체문자 성공이면 환불 완료처리면 한다. |
|
| 949 |
- if (isAlternativeMessageSuccessful) {
|
|
| 950 |
- mjonMsgDAO.updateRefundY(kakaoVO); |
|
| 951 |
- } else {
|
|
| 952 |
- // 대체문자 발송 실패 된 경우 (친구톡 비용 환불 필요) |
|
| 953 |
- handleRefund(kakaoVO, "카카오 " + kakaoType + " 전송 실패로 인한 결재 금액 환불"); |
|
| 954 |
- } |
|
| 940 |
+ //2-2.카카오톡 발송 실패 + 대체문자 발송 실패 : 전액 환불 |
|
| 941 |
+ if (!isAlternativeMessageSuccessful) {
|
|
| 942 |
+ handleRefund(kakaoVO, "카카오 " + kakaoVO.getMsgTypeTxt() + " 전송 실패로 인한 결재 금액 환불"); |
|
| 943 |
+ } |
|
| 955 | 944 |
} |
| 956 | 945 |
|
| 957 | 946 |
private void handleRefund(KakaoVO vo, String msg) throws Exception {
|
... | ... | @@ -964,9 +953,6 @@ |
| 964 | 953 |
vo.getMsgGroupId(), |
| 965 | 954 |
vo.getUserData() |
| 966 | 955 |
); |
| 967 |
- |
|
| 968 |
- // 해당 row 환불 처리 (mj_msg_data.REFUND_YN = 'Y') |
|
| 969 |
- mjonMsgDAO.updateRefundY(vo); |
|
| 970 | 956 |
} |
| 971 | 957 |
|
| 972 | 958 |
@Override |
--- src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java
+++ src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java
... | ... | @@ -441,11 +441,14 @@ |
| 441 | 441 |
public void kakaoFailPayBack() throws Exception {
|
| 442 | 442 |
|
| 443 | 443 |
// 카카오 알림톡 환불 처리 |
| 444 |
- kakaoAlimTalkService.selectKakaoAtSentRefundList(); |
|
| 444 |
+ //kakaoAlimTalkService.selectKakaoAtSentRefundList(); |
|
| 445 | 445 |
|
| 446 | 446 |
// 카카오 친구톡 환불 처리 |
| 447 |
- kakaoAlimTalkService.selectKakaoFtSentRefundList(); |
|
| 448 |
- |
|
| 447 |
+ //kakaoAlimTalkService.selectKakaoFtSentRefundList(); |
|
| 448 |
+ |
|
| 449 |
+ // 카카오 알림톡, 친구톡 통합 환불 처리 |
|
| 450 |
+ kakaoAlimTalkService.selectKakaoSentRefundList(); |
|
| 451 |
+ |
|
| 449 | 452 |
} |
| 450 | 453 |
|
| 451 | 454 |
@Override |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?