환불관련 작업중
This commit is contained in:
parent
b75a76c1b5
commit
187f11057e
@ -296,6 +296,11 @@ public class MjonMsgDataDAO extends EgovAbstractDAO {
|
|||||||
select("MjonMsgDataDAO.updateMsgSentFailPayBack", mjonMsgVO);
|
select("MjonMsgDataDAO.updateMsgSentFailPayBack", mjonMsgVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateMsgSentFailPayBackBatch(String msgFailListJson) {
|
||||||
|
|
||||||
|
select("MjonMsgDataDAO.updateMsgSentFailPayBackBatch", msgFailListJson);
|
||||||
|
}
|
||||||
|
|
||||||
//현재 월 총 발송 건수 합계 구하기
|
//현재 월 총 발송 건수 합계 구하기
|
||||||
public String selectMsgSentSumData(String userId) throws Exception{
|
public String selectMsgSentSumData(String userId) throws Exception{
|
||||||
return (String) select("MjonMsgDataDAO.selectMsgSentSumData", userId);
|
return (String) select("MjonMsgDataDAO.selectMsgSentSumData", userId);
|
||||||
|
|||||||
@ -3098,6 +3098,8 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
|
|
||||||
List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailListOneByDay();
|
List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailListOneByDay();
|
||||||
|
|
||||||
|
System.out.println(" ++ msgFailList.size() : " + msgFailList.size());
|
||||||
|
|
||||||
for(MjonMsgVO vo : msgFailList) {
|
for(MjonMsgVO vo : msgFailList) {
|
||||||
|
|
||||||
mjonMsgDataDAO.updateMsgSentFailPayBack(vo);
|
mjonMsgDataDAO.updateMsgSentFailPayBack(vo);
|
||||||
|
|||||||
@ -55,6 +55,8 @@ import org.springframework.web.servlet.ModelAndView;
|
|||||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||||
import org.springframework.web.util.UriUtils;
|
import org.springframework.web.util.UriUtils;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
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 egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||||
@ -84,6 +86,7 @@ import itn.let.mjo.msg.service.MjonMsgService;
|
|||||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||||
|
import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO;
|
||||||
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;
|
||||||
@ -234,6 +237,9 @@ public class TestController {
|
|||||||
@Resource(name = "MsgHolidayService")
|
@Resource(name = "MsgHolidayService")
|
||||||
private MsgHolidayService msgHolidayService;
|
private MsgHolidayService msgHolidayService;
|
||||||
|
|
||||||
|
@Resource(name="MjonMsgDataDAO")
|
||||||
|
private MjonMsgDataDAO mjonMsgDataDAO;
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(TestController.class);
|
private static final Logger logger = LoggerFactory.getLogger(TestController.class);
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -3411,5 +3417,75 @@ public class TestController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/web/mjon/test/refundTest.do")
|
||||||
|
public ResponseEntity<StatusResponse> refundTest(
|
||||||
|
@RequestParam String p_type,
|
||||||
|
HttpServletRequest request,
|
||||||
|
ModelMap model) throws Exception {
|
||||||
|
System.out.println(" p_type :: "+p_type);
|
||||||
|
|
||||||
|
long startTime = System.nanoTime(); // 시작 시간 기록
|
||||||
|
// 문자 환불
|
||||||
|
if ("ONE".equals(p_type)) { //하루에 한번만 31일 대상으로 실행
|
||||||
|
schdlrManageService.msgFailPayBackOneByDay();
|
||||||
|
|
||||||
|
}else {
|
||||||
|
// 10분 마다 1주일 데이터에서 환불 대상을 찾아서 환불 한다.
|
||||||
|
//어플리케이션 트랜잭션 문제가 있어 Util 단으로 DB 호출을 가져옴 - 2024-03-14
|
||||||
|
//schdlrManageService.msgFailPayBack();
|
||||||
|
|
||||||
|
List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailList();
|
||||||
|
|
||||||
|
// 리스트가 비어있는 경우 종료
|
||||||
|
if (msgFailList == null || msgFailList.isEmpty()) {
|
||||||
|
System.out.println("No messages to process.");
|
||||||
|
return ResponseEntity.ok().body(new StatusResponse(HttpStatus.OK, "데이터 없음", ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
long forBeforeTime = System.currentTimeMillis(); // 코드 실행 전 시간
|
||||||
|
// int count = 0;
|
||||||
|
System.out.println("== msgFailList =============> : "+ msgFailList.size());
|
||||||
|
// for(MjonMsgVO vo : msgFailList) {
|
||||||
|
// System.out.println(count + " : "+ msgFailList.size());
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
// JSON 변환
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
String msgFailListJson = objectMapper.writeValueAsString(msgFailList);
|
||||||
|
|
||||||
|
System.out.println("JSON Data: " + msgFailListJson);
|
||||||
|
|
||||||
|
|
||||||
|
mjonMsgDataDAO.updateMsgSentFailPayBackBatch(msgFailListJson);
|
||||||
|
|
||||||
|
// mjonMsgDataDAO.updateMsgSentFailPayBack(vo);
|
||||||
|
}catch(Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
// count = count + 1;
|
||||||
|
// }
|
||||||
|
long forAfterTime = System.currentTimeMillis(); // 코드 실행 후 시간
|
||||||
|
long forSecDiffTime = (forAfterTime - forBeforeTime)/1000; // 코드 실행 전후 시간 차이 계산(초 단위)
|
||||||
|
System.out.println("==PayBack for 2 =============> 수량 : "+msgFailList.size()+" ===== " + forSecDiffTime +"초");
|
||||||
|
}
|
||||||
|
|
||||||
|
long endTime = System.nanoTime(); // 종료 시간 기록
|
||||||
|
long executionTimeInSeconds = (endTime - startTime) / 1_000_000_000; // 실행 시간 (초)
|
||||||
|
|
||||||
|
// 분과 초로 변환
|
||||||
|
long minutes = executionTimeInSeconds / 60; // 분
|
||||||
|
long seconds = executionTimeInSeconds % 60; // 초
|
||||||
|
|
||||||
|
System.out.println("Execution time: " + minutes + " minutes " + seconds + " seconds");
|
||||||
|
|
||||||
|
|
||||||
|
// return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "", ""));
|
||||||
|
return ResponseEntity.ok().body(new StatusResponse(HttpStatus.OK, "테스트", ""));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,7 +39,7 @@ import net.javacrumbs.shedlock.core.SchedulerLock;
|
|||||||
import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider;
|
import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider;
|
||||||
import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock;
|
import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock;
|
||||||
|
|
||||||
@Profile({"!local", "!dev"})
|
@Profile({"!local"})
|
||||||
@Service("SchedulerUtil")
|
@Service("SchedulerUtil")
|
||||||
@EnableScheduling
|
@EnableScheduling
|
||||||
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S") // Scheduler Lock 사용 가능 설정 (기본 30초동안 Lock)
|
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S") // Scheduler Lock 사용 가능 설정 (기본 30초동안 Lock)
|
||||||
@ -92,8 +92,8 @@ public class SchedulerUtil {
|
|||||||
* 10분 마다 1주일 데이터에서 환불 대상을 찾아서 환불 한다.
|
* 10분 마다 1주일 데이터에서 환불 대상을 찾아서 환불 한다.
|
||||||
* */
|
* */
|
||||||
// Schdule Lock (10분동안)
|
// Schdule Lock (10분동안)
|
||||||
@Scheduled(cron = "0 0/10 * * * ?")
|
// @Scheduled(cron = "0 0/10 * * * ?")
|
||||||
@SchedulerLock(name = "runScenarioOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
// @SchedulerLock(name = "runScenarioOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
||||||
public void runScenarioOneTime() throws Exception {
|
public void runScenarioOneTime() throws Exception {
|
||||||
|
|
||||||
// do something...
|
// do something...
|
||||||
@ -121,8 +121,8 @@ public class SchedulerUtil {
|
|||||||
/*
|
/*
|
||||||
* 매일 5시20분에 31일전 데이터에서 환불 대상을 찾아서 환불 한다.
|
* 매일 5시20분에 31일전 데이터에서 환불 대상을 찾아서 환불 한다.
|
||||||
* */
|
* */
|
||||||
@Scheduled(cron = "20 20 5 * * ?")
|
// @Scheduled(cron = "20 20 5 * * ?")
|
||||||
@SchedulerLock(name = "runScenarioOneTimeOneByDay", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
// @SchedulerLock(name = "runScenarioOneTimeOneByDay", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
||||||
public void runScenarioOneTimeOneByDay() throws Exception {
|
public void runScenarioOneTimeOneByDay() throws Exception {
|
||||||
|
|
||||||
// do something...
|
// do something...
|
||||||
|
|||||||
@ -4203,6 +4203,12 @@
|
|||||||
|
|
||||||
</procedure>
|
</procedure>
|
||||||
|
|
||||||
|
<procedure id="MjonMsgDataDAO.updateMsgSentFailPayBackBatch" parameterClass="string">
|
||||||
|
|
||||||
|
{call procMsgRefundBatch(#msgFailListJson#)}
|
||||||
|
|
||||||
|
</procedure>
|
||||||
|
|
||||||
<select id="mjonMsgDAO.selectMsgResultCodeAllList" parameterClass="mjonMsgResultCodeVO" resultClass="mjonMsgResultCodeVO">
|
<select id="mjonMsgDAO.selectMsgResultCodeAllList" parameterClass="mjonMsgResultCodeVO" resultClass="mjonMsgResultCodeVO">
|
||||||
|
|
||||||
SELECT RESULT_ID AS resultId,
|
SELECT RESULT_ID AS resultId,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user