이지우 - 카카오 환불 수정. 트랜잭션 분리를 위하여 스케줄 Util에서 반복문으로 처리
This commit is contained in:
parent
28f520c8fa
commit
dbc1f2335a
@ -34,4 +34,8 @@ public interface KakaoAlimTalkService {
|
|||||||
//카카오(알림톡, 친구톡 통합) 전송 실패 환불리스트 조회
|
//카카오(알림톡, 친구톡 통합) 전송 실패 환불리스트 조회
|
||||||
public void selectKakaoSentRefundList() throws Exception;
|
public void selectKakaoSentRefundList() throws Exception;
|
||||||
|
|
||||||
|
//카카오(알림톡, 친구톡 통합) 전송 실패 환불리스트 조회
|
||||||
|
public List<KakaoVO> selectKakaoSentRefundListForSingle() throws Exception;
|
||||||
|
|
||||||
|
public void kakaoSingleRefund(KakaoVO kakaoVO) throws Exception;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
package itn.let.kakao.user.kakaoAt.service.impl;
|
package itn.let.kakao.user.kakaoAt.service.impl;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
@ -11,8 +10,6 @@ import java.util.Date;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@ -22,12 +19,13 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||||
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
||||||
import itn.com.cmm.LoginVO;
|
import itn.com.cmm.LoginVO;
|
||||||
import itn.com.cmm.MjonMsgSendVO;
|
|
||||||
import itn.com.utl.fcc.service.EgovStringUtil;
|
import itn.com.utl.fcc.service.EgovStringUtil;
|
||||||
import itn.let.kakao.kakaoComm.BizKakaoPriceVO;
|
import itn.let.kakao.kakaoComm.BizKakaoPriceVO;
|
||||||
import itn.let.kakao.kakaoComm.KakaoSendAdvcVO;
|
import itn.let.kakao.kakaoComm.KakaoSendAdvcVO;
|
||||||
@ -51,7 +49,6 @@ import itn.let.module.base.PriceAndPoint;
|
|||||||
import itn.let.sym.site.service.JoinSettingVO;
|
import itn.let.sym.site.service.JoinSettingVO;
|
||||||
import itn.let.sym.site.service.impl.SiteManagerDAO;
|
import itn.let.sym.site.service.impl.SiteManagerDAO;
|
||||||
import itn.let.uss.umt.service.EgovUserManageService;
|
import itn.let.uss.umt.service.EgovUserManageService;
|
||||||
import itn.let.uss.umt.service.UserManageVO;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -946,7 +943,7 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
private void handleRefund(KakaoVO vo, String msg) throws Exception {
|
private void handleRefund(KakaoVO vo, String msg) throws Exception {
|
||||||
// mj_cash 테이블에 환불 내역 추가 및 회원 금액 업데이트
|
// mj_cash 테이블에 환불 내역 추가 및 회원 금액 업데이트
|
||||||
// eachPrice는 환불될 금액이므로 양수여야 합니다.
|
// eachPrice는 환불될 금액이므로 양수여야 합니다.
|
||||||
priceAndPoint.insertCashAndPoint(
|
priceAndPoint.insertCashAndPointNoUpdate(
|
||||||
vo.getUserId(),
|
vo.getUserId(),
|
||||||
Float.parseFloat(vo.getEachPrice()), // 환불 금액은 양수
|
Float.parseFloat(vo.getEachPrice()), // 환불 금액은 양수
|
||||||
msg,
|
msg,
|
||||||
@ -1126,8 +1123,33 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
return statusResponse;
|
return statusResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<KakaoVO> selectKakaoSentRefundListForSingle() throws Exception{
|
||||||
|
return kakaoAlimTalkDAO.selectKakaoSentRefundList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void kakaoSingleRefund(KakaoVO kakaoVO) throws Exception {
|
||||||
|
|
||||||
|
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 boolean isCashSufficient(String userId, List<KakaoSendAdvcVO> kakaoSendAdvcListVO) throws Exception {
|
// private boolean isCashSufficient(String userId, List<KakaoSendAdvcVO> kakaoSendAdvcListVO) throws Exception {
|
||||||
@ -1151,33 +1173,4 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,9 +9,11 @@ import java.util.Arrays;
|
|||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@ -61,7 +63,6 @@ import itn.com.cmm.util.MJUtil;
|
|||||||
import itn.com.cmm.util.StringUtil;
|
import itn.com.cmm.util.StringUtil;
|
||||||
import itn.com.utl.fcc.service.EgovStringUtil;
|
import itn.com.utl.fcc.service.EgovStringUtil;
|
||||||
import itn.let.kakao.kakaoComm.KakaoReturnVO;
|
import itn.let.kakao.kakaoComm.KakaoReturnVO;
|
||||||
import itn.let.kakao.kakaoComm.KakaoSendAdvcVO;
|
|
||||||
import itn.let.kakao.kakaoComm.KakaoSendUtil;
|
import itn.let.kakao.kakaoComm.KakaoSendUtil;
|
||||||
import itn.let.kakao.kakaoComm.KakaoVO;
|
import itn.let.kakao.kakaoComm.KakaoVO;
|
||||||
import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiJsonSave;
|
import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiJsonSave;
|
||||||
@ -79,6 +80,9 @@ import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
|||||||
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
import itn.let.mjo.msgholiday.service.MsgHolidayService;
|
import itn.let.mjo.msgholiday.service.MsgHolidayService;
|
||||||
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
|
import itn.let.mjo.pay.service.MjonPayService;
|
||||||
|
import itn.let.mjo.pay.service.MjonPayVO;
|
||||||
|
import itn.let.org.web.OrgChartManageController;
|
||||||
import itn.let.sym.site.service.EgovSiteManagerService;
|
import itn.let.sym.site.service.EgovSiteManagerService;
|
||||||
import itn.let.sym.site.service.JoinSettingVO;
|
import itn.let.sym.site.service.JoinSettingVO;
|
||||||
import itn.let.uss.umt.service.EgovUserManageService;
|
import itn.let.uss.umt.service.EgovUserManageService;
|
||||||
@ -102,6 +106,8 @@ import itn.let.uss.umt.service.UserManageVO;
|
|||||||
@Controller
|
@Controller
|
||||||
public class KakaoAlimTalkSendController {
|
public class KakaoAlimTalkSendController {
|
||||||
|
|
||||||
|
private final OrgChartManageController orgChartManageController;
|
||||||
|
|
||||||
@Resource(name = "egovMjonMsgGroupIdGnrService")
|
@Resource(name = "egovMjonMsgGroupIdGnrService")
|
||||||
private EgovIdGnrService idgenMjonMsgGroupId;
|
private EgovIdGnrService idgenMjonMsgGroupId;
|
||||||
|
|
||||||
@ -149,6 +155,13 @@ public class KakaoAlimTalkSendController {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MjonCommon mjonCommon;
|
private MjonCommon mjonCommon;
|
||||||
|
|
||||||
|
@Resource(name = "mjonPayService")
|
||||||
|
private MjonPayService mjonPayService;
|
||||||
|
|
||||||
|
KakaoAlimTalkSendController(OrgChartManageController orgChartManageController) {
|
||||||
|
this.orgChartManageController = orgChartManageController;
|
||||||
|
}
|
||||||
|
|
||||||
@RequestMapping(value= {"/web/mjon/alimtalk/kakaoAlimtalkMsgDataView.do"})
|
@RequestMapping(value= {"/web/mjon/alimtalk/kakaoAlimtalkMsgDataView.do"})
|
||||||
public String KakaoAlimtalkMsgDataView(ModelMap model
|
public String KakaoAlimtalkMsgDataView(ModelMap model
|
||||||
@ -1541,6 +1554,25 @@ public class KakaoAlimTalkSendController {
|
|||||||
return "web/kakao/msgdata/at/KakaoAlimtalkMsgDataView_tmp";
|
return "web/kakao/msgdata/at/KakaoAlimtalkMsgDataView_tmp";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void kakaoRefundSingleTransaction() throws Exception{
|
||||||
|
System.out.println("=============카카오 환불 싱글 트랜잭션 수행 =============");
|
||||||
|
|
||||||
|
List<KakaoVO> kakaoRefundList = kakaoAlimTalkService.selectKakaoSentRefundListForSingle();
|
||||||
|
Set<String> targetIdSet = new HashSet<>();
|
||||||
|
|
||||||
|
for(KakaoVO kakaoVO : kakaoRefundList) {
|
||||||
|
kakaoAlimTalkService.kakaoSingleRefund(kakaoVO);
|
||||||
|
targetIdSet.add(kakaoVO.getUserId());
|
||||||
|
}
|
||||||
|
|
||||||
|
MjonPayVO mjonPayVO = new MjonPayVO();
|
||||||
|
for(String userId : targetIdSet) {
|
||||||
|
mjonPayVO.setUserId(userId);
|
||||||
|
mjonPayService.updateMemberCash(mjonPayVO); //회원정보 업데이트
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Method Name : kakaoMsgSendRefundTestAjax
|
* @Method Name : kakaoMsgSendRefundTestAjax
|
||||||
* @작성일 : 2025. 8. 6.
|
* @작성일 : 2025. 8. 6.
|
||||||
@ -1555,7 +1587,7 @@ public class KakaoAlimTalkSendController {
|
|||||||
ModelAndView modelAndView = new ModelAndView();
|
ModelAndView modelAndView = new ModelAndView();
|
||||||
modelAndView.setViewName("jsonView");
|
modelAndView.setViewName("jsonView");
|
||||||
|
|
||||||
kakaoAlimTalkService.selectKakaoSentRefundList();
|
this.kakaoRefundSingleTransaction();
|
||||||
|
|
||||||
modelAndView.addObject("result", "success");
|
modelAndView.addObject("result", "success");
|
||||||
return modelAndView;
|
return modelAndView;
|
||||||
|
|||||||
@ -213,6 +213,36 @@ public class PriceAndPoint {
|
|||||||
kakaoAlimTalkDAO.insertKakaoSendPrice(kakaoVO);
|
kakaoAlimTalkDAO.insertKakaoSendPrice(kakaoVO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @methodName : insertCashAndPoint
|
||||||
|
* @author : 이지우
|
||||||
|
* @date : 2025. 8. 14.
|
||||||
|
* @description : insertCashAndPoint 에서 updateMemberCash 제외
|
||||||
|
* @return : void
|
||||||
|
* @param userId
|
||||||
|
* @param totPrice
|
||||||
|
* @param memo
|
||||||
|
* @param msgGroupId
|
||||||
|
* @param userData
|
||||||
|
* @throws Exception
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void insertCashAndPointNoUpdate(
|
||||||
|
String userId
|
||||||
|
, float totPrice
|
||||||
|
, String memo
|
||||||
|
, String msgGroupId
|
||||||
|
, String userData
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
MjonPayVO mjonPayVO = buildPayVO(userId, totPrice, memo, msgGroupId);
|
||||||
|
|
||||||
|
// 환불로 인해 userData가 추후 사용될 경우 여기에 처리
|
||||||
|
if (StringUtils.isNotEmpty(userData)) { mjonPayVO.setOrderId(userData); }
|
||||||
|
|
||||||
|
mjonPayDAO.insertCash(mjonPayVO); //캐시
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,12 +1,16 @@
|
|||||||
package itn.let.schdlr.service;
|
package itn.let.schdlr.service;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Profile;
|
import org.springframework.context.annotation.Profile;
|
||||||
@ -24,12 +28,15 @@ import itn.let.fax.admin.service.FaxAdmService;
|
|||||||
import itn.let.fax.admin.service.FaxStatVO;
|
import itn.let.fax.admin.service.FaxStatVO;
|
||||||
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoAtStatVO;
|
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoAtStatVO;
|
||||||
import itn.let.kakao.admin.statistics.service.KakaoStatisticsService;
|
import itn.let.kakao.admin.statistics.service.KakaoStatisticsService;
|
||||||
|
import itn.let.kakao.kakaoComm.KakaoVO;
|
||||||
|
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService;
|
||||||
import itn.let.lett.service.LetterService;
|
import itn.let.lett.service.LetterService;
|
||||||
import itn.let.mail.service.MailTemplateService;
|
import itn.let.mail.service.MailTemplateService;
|
||||||
import itn.let.mjo.msg.service.MjonMsgService;
|
import itn.let.mjo.msg.service.MjonMsgService;
|
||||||
import itn.let.mjo.msg.service.MjonMsgStatVO;
|
import itn.let.mjo.msg.service.MjonMsgStatVO;
|
||||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
|
||||||
import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO;
|
import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO;
|
||||||
|
import itn.let.mjo.pay.service.MjonPayVO;
|
||||||
|
import itn.let.mjo.pay.service.impl.MjonPayDAO;
|
||||||
import itn.let.sts.com.StatsVO;
|
import itn.let.sts.com.StatsVO;
|
||||||
import itn.let.sts.cst.service.EgovConectStatsService;
|
import itn.let.sts.cst.service.EgovConectStatsService;
|
||||||
import itn.let.uss.umt.service.EgovUserManageService;
|
import itn.let.uss.umt.service.EgovUserManageService;
|
||||||
@ -82,6 +89,12 @@ public class SchedulerUtil {
|
|||||||
@Resource(name="MjonMsgDataDAO")
|
@Resource(name="MjonMsgDataDAO")
|
||||||
private MjonMsgDataDAO mjonMsgDataDAO;
|
private MjonMsgDataDAO mjonMsgDataDAO;
|
||||||
|
|
||||||
|
@Resource(name="KakaoAlimTalkService")
|
||||||
|
private KakaoAlimTalkService kakaoAlimTalkService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MjonPayDAO mjonPayDAO;
|
||||||
|
|
||||||
/** 설정값 가져오기 */
|
/** 설정값 가져오기 */
|
||||||
@Value("#{globalSettings['Globals.Env']}")
|
@Value("#{globalSettings['Globals.Env']}")
|
||||||
private String GlobalsEnv;
|
private String GlobalsEnv;
|
||||||
@ -466,20 +479,26 @@ public class SchedulerUtil {
|
|||||||
return new JdbcTemplateLockProvider(dataSource);
|
return new JdbcTemplateLockProvider(dataSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
@Scheduled(cron = "0 0/3 * * * ?") // 3분마다 실행
|
@Scheduled(cron = "0 0/3 * * * ?") // 3분마다 실행
|
||||||
@SchedulerLock(name = "runKakaoOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
@SchedulerLock(name = "runKakaoOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
||||||
public void runKakaoOneTime() throws Exception {
|
public void runKakaoOneTime() throws Exception {
|
||||||
|
|
||||||
// do something...
|
|
||||||
try {
|
|
||||||
System.out.println("=============SchedulerUtil=====runKakaoOneTime =============>");
|
System.out.println("=============SchedulerUtil=====runKakaoOneTime =============>");
|
||||||
schdlrManageService.kakaoFailPayBack();
|
List<KakaoVO> kakaoRefundList = kakaoAlimTalkService.selectKakaoSentRefundListForSingle();
|
||||||
}catch(Exception ex) {
|
Set<String> targetIdSet = new HashSet<>();
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
for(KakaoVO kakaoVO : kakaoRefundList) {
|
||||||
|
kakaoAlimTalkService.kakaoSingleRefund(kakaoVO);
|
||||||
|
targetIdSet.add(kakaoVO.getUserId());
|
||||||
|
}
|
||||||
|
|
||||||
|
MjonPayVO mjonPayVO = new MjonPayVO();
|
||||||
|
for(String userId : targetIdSet) {
|
||||||
|
mjonPayVO.setUserId(userId);
|
||||||
|
mjonPayDAO.updateMemberCash(mjonPayVO); //회원정보 업데이트
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
//환불 실행
|
//환불 실행
|
||||||
private void PayBack(String p_type) throws Exception {
|
private void PayBack(String p_type) throws Exception {
|
||||||
|
|
||||||
|
|||||||
@ -235,6 +235,7 @@
|
|||||||
AND MMD.REFUND_YN = 'N'
|
AND MMD.REFUND_YN = 'N'
|
||||||
AND MMD.RESERVE_C_YN = 'N'
|
AND MMD.RESERVE_C_YN = 'N'
|
||||||
AND MMD.MSG_TYPE IN(8, 9)
|
AND MMD.MSG_TYPE IN(8, 9)
|
||||||
|
ORDER BY MMD.USER_ID ASC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="kakaoAlimTalkDAO.selectKakaoAtSentRefundList" resultClass="kakaoVO">
|
<select id="kakaoAlimTalkDAO.selectKakaoAtSentRefundList" resultClass="kakaoVO">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user