이지우 - 환불 스케줄러 소스 정리 및 스케줄러 임시 차단

This commit is contained in:
JIWOO 2025-08-14 18:22:06 +09:00
parent 4b81b2ee5a
commit 80b97b167a
7 changed files with 3 additions and 190 deletions

View File

@ -23,17 +23,8 @@ public interface KakaoAlimTalkService {
//카카오 친구톡 발신
public MjonMsgReturnVO insertKakaoFtSendAjax(KakaoVO kakaoVO) throws Exception;
//카카오 알림톡 전송 실패 환불리스트 조회
public void selectKakaoAtSentRefundList() throws Exception;
//카카오 친구톡 전송 실패 환불리스트 조회
public void selectKakaoFtSentRefundList() throws Exception;
StatusResponse insertKakaoAtSandAjax_advc(KakaoVO kakaoVO, HttpServletRequest request) throws Exception;
//카카오(알림톡, 친구톡 통합) 전송 실패 환불리스트 조회
public void selectKakaoSentRefundList() throws Exception;
//카카오(알림톡, 친구톡 통합) 전송 실패 환불리스트 조회
public List<KakaoVO> selectKakaoSentRefundListForSingle() throws Exception;

View File

@ -48,16 +48,6 @@ public class KakaoAlimTalkDAO extends EgovAbstractDAO {
insert("kakaoAlimTalkDAO.insertKakaoSendPrice",kakaoVO);
}
@SuppressWarnings("unchecked")
public List<KakaoVO> selectKakaoAtSentRefundList() throws Exception{
return (List<KakaoVO>) list("kakaoAlimTalkDAO.selectKakaoAtSentRefundList");
}
@SuppressWarnings("unchecked")
public List<KakaoVO> selectKakaoFtSentRefundList() throws Exception{
return (List<KakaoVO>) list("kakaoAlimTalkDAO.selectKakaoFtSentRefundList");
}
@SuppressWarnings("unchecked")
public List<KakaoVO> selectKakaoSentRefundList() throws Exception{
return (List<KakaoVO>) list("kakaoAlimTalkDAO.selectKakaoSentRefundList");

View File

@ -792,94 +792,6 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
return returnVO;
}
/*
* 카카오 알림톡 발송 실패에 따른 금액 환불 처리
*
* */
@Override
public void selectKakaoAtSentRefundList() throws Exception {
/**
* 1. 카카오 AT 전송성공 확인
* 2. 카카오 AT 전송실패, 대채문자 전송확인
* 3. 카카오 AT 전송 실패 확인
*/
List<KakaoVO> kakaoAtSentRefundList = kakaoAlimTalkDAO.selectKakaoAtSentRefundList();
for(KakaoVO kakaoVO : kakaoAtSentRefundList) {
if(KAKAO_SUCCESS_CODE.equals(kakaoVO.getRsltCode())) {//알림톡 발송 성공시
processKakaoSendCharge(kakaoVO);
}else if(RESEND_YN_YES.equals(kakaoVO.getSubMsgSendYn())) {
//알림톡 발송 실패 했고 , 대체문자 발송 했을 경우
handleAlternativeMessageScenario(kakaoVO);
}else {
handleRefund(kakaoVO, "카카오 알림톡 전송 실패로 인한 결제 금액 환불");
}
}
}
/**
* @ 카카오 친구톡 환불
*/
@Override
public void selectKakaoFtSentRefundList() throws Exception {
List<KakaoVO> kakaoFtSentRefundList = kakaoAlimTalkDAO.selectKakaoFtSentRefundList();
for(KakaoVO kakaoVO : kakaoFtSentRefundList) {
System.out.println(kakaoVO.getMsgGroupId() +"________결과 : " +kakaoVO.getRsltCode() +" 대체문자 전송 : "+kakaoVO.getSubMsgSendYn());
if(KAKAO_SUCCESS_CODE.equals(kakaoVO.getRsltCode())) {//친구톡 발송 성공시
processKakaoSendCharge(kakaoVO);
}else if(RESEND_YN_YES.equals(kakaoVO.getSubMsgSendYn())) {
//친구톡 발송 실패 했고, 대체문자 발송 했을 경우
handleAlternativeMessageScenario(kakaoVO);
}else {
handleRefund(kakaoVO, "카카오 친구톡 전송 실패로 인한 결제 금액 환불");
}
}
}
/**
* @ 카카오 알림톡, 친구톡 통합 환불
*/
@Override
public void selectKakaoSentRefundList() throws Exception {
List<KakaoVO> kakaoFtSentRefundList = kakaoAlimTalkDAO.selectKakaoSentRefundList();
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())) {
//1.카카오톡 발송 성공
processKakaoSendCharge(kakaoVO);
}else if(RESEND_YN_YES.equals(kakaoVO.getSubMsgSendYn())) {//카카오톡 발송 실패, 대체문자 발송 신청 O
//2.카카오톡 발송 실패 + 대체문자 신청 O
handleAlternativeMessageScenario(kakaoVO);
}else {
//3.카카오톡 발송 실패 + 대체문자 신청 X : 전액 환불
handleRefund(kakaoVO, "카카오 " + kakaoVO.getMsgTypeTxt() + " 전송 실패로 인한 결제 금액 환불");
}
//모든 유형 환불 완료 처리
mjonMsgDAO.updateRefundY(kakaoVO);
}
}
private void processKakaoSendCharge(KakaoVO kakaoVO) throws Exception {
//1-1.카카오톡 발송 성공 + 대체문자 신청 O : 대체문자 금액 환불

View File

@ -47,9 +47,6 @@ public interface SchdlrManageService {
//전용계좌 자동 충전 배치
public void vacsAutoCharge() throws Exception;
//문자온 카카오톡 실패 건수 환불 배치
public void kakaoFailPayBack() throws Exception;
//문자온 문자전송 실패 건수 환불 배치
public void payBack(String type, int limitCout) throws Exception;

View File

@ -479,10 +479,11 @@ public class SchedulerUtil {
return new JdbcTemplateLockProvider(dataSource);
}
@Scheduled(cron = "0 0/3 * * * ?") // 3분마다 실행
@SchedulerLock(name = "runKakaoOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
//@Scheduled(cron = "0 0/3 * * * ?") // 3분마다 실행
//@SchedulerLock(name = "runKakaoOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
public void runKakaoOneTime() throws Exception {
/* 회원 money 업데이트 처리 트랜잭션 분리를 위하여 impl이 아닌 현재 위치에서 반복문 실행 */
System.out.println("=============SchedulerUtil=====runKakaoOneTime =============>");
List<KakaoVO> kakaoRefundList = kakaoAlimTalkService.selectKakaoSentRefundListForSingle();
Set<String> targetIdSet = new HashSet<>();

View File

@ -437,20 +437,6 @@ public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements
}
// 카카오 환불 처리 리스트
public void kakaoFailPayBack() throws Exception {
// 카카오 알림톡 환불 처리
//kakaoAlimTalkService.selectKakaoAtSentRefundList();
// 카카오 친구톡 환불 처리
//kakaoAlimTalkService.selectKakaoFtSentRefundList();
// 카카오 알림톡, 친구톡 통합 환불 처리
kakaoAlimTalkService.selectKakaoSentRefundList();
}
@Override
public void payBack(String type, int limitCout) throws Exception {
// 문자 환불

View File

@ -238,70 +238,6 @@
ORDER BY MMD.USER_ID ASC
</select>
<select id="kakaoAlimTalkDAO.selectKakaoAtSentRefundList" resultClass="kakaoVO">
SELECT
MMD.USER_ID AS userId
, MMD.MSG_GROUP_ID AS msgGroupId
, MMD.MSG_SEQ AS msgSeq
, MMGD.BIZ_KAKAO_IMAGE_TYPE AS bizKakaoImageType
, MMGD.EACH_PRICE AS eachPrice
, 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
, MMD.FILE_CNT AS fileCnt
, MMD.BIZ_UMID AS bizUmid
, MMD.MSG_TYPE AS msgType
FROM
MJ_MSG_DATA MMD
INNER JOIN LETTNGNRLMBER MB
ON MMD.USER_ID = MB.MBER_ID
INNER JOIN mj_msg_group_data MMGD
on MMD.MSG_GROUP_ID = MMGD.MSG_GROUP_ID
WHERE 1=1
AND MMD.CUR_STATE = '3'
AND MMD.REFUND_YN = 'N'
AND MMD.RESERVE_C_YN = 'N'
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
, MMGD.BIZ_KAKAO_IMAGE_TYPE AS bizKakaoImageType
, MMGD.EACH_PRICE AS eachPrice
, 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
, MMD.FILE_CNT AS fileCnt
, MMD.BIZ_UMID AS bizUmid
, MMD.MSG_TYPE AS msgType
FROM
MJ_MSG_DATA MMD
INNER JOIN LETTNGNRLMBER MB
ON MMD.USER_ID = MB.MBER_ID
INNER JOIN mj_msg_group_data MMGD
on MMD.MSG_GROUP_ID = MMGD.MSG_GROUP_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