환불관련 작업중
This commit is contained in:
parent
b75a76c1b5
commit
187f11057e
@ -296,6 +296,11 @@ public class MjonMsgDataDAO extends EgovAbstractDAO {
|
||||
select("MjonMsgDataDAO.updateMsgSentFailPayBack", mjonMsgVO);
|
||||
}
|
||||
|
||||
public void updateMsgSentFailPayBackBatch(String msgFailListJson) {
|
||||
|
||||
select("MjonMsgDataDAO.updateMsgSentFailPayBackBatch", msgFailListJson);
|
||||
}
|
||||
|
||||
//현재 월 총 발송 건수 합계 구하기
|
||||
public String selectMsgSentSumData(String userId) throws Exception{
|
||||
return (String) select("MjonMsgDataDAO.selectMsgSentSumData", userId);
|
||||
|
||||
@ -3097,6 +3097,8 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
||||
public void selectMsgSentFailListOneByDay()throws Exception{
|
||||
|
||||
List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailListOneByDay();
|
||||
|
||||
System.out.println(" ++ msgFailList.size() : " + msgFailList.size());
|
||||
|
||||
for(MjonMsgVO vo : msgFailList) {
|
||||
|
||||
|
||||
@ -55,6 +55,8 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
import org.springframework.web.util.UriUtils;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
||||
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.msgdata.service.MjonMsgDataService;
|
||||
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.MsgHolidayService;
|
||||
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||
@ -232,7 +235,10 @@ public class TestController {
|
||||
private EgovUserManageService egovUserManageService;
|
||||
|
||||
@Resource(name = "MsgHolidayService")
|
||||
private MsgHolidayService msgHolidayService;
|
||||
private MsgHolidayService msgHolidayService;
|
||||
|
||||
@Resource(name="MjonMsgDataDAO")
|
||||
private MjonMsgDataDAO mjonMsgDataDAO;
|
||||
|
||||
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.spring.annotation.EnableSchedulerLock;
|
||||
|
||||
@Profile({"!local", "!dev"})
|
||||
@Profile({"!local"})
|
||||
@Service("SchedulerUtil")
|
||||
@EnableScheduling
|
||||
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S") // Scheduler Lock 사용 가능 설정 (기본 30초동안 Lock)
|
||||
@ -92,8 +92,8 @@ public class SchedulerUtil {
|
||||
* 10분 마다 1주일 데이터에서 환불 대상을 찾아서 환불 한다.
|
||||
* */
|
||||
// Schdule Lock (10분동안)
|
||||
@Scheduled(cron = "0 0/10 * * * ?")
|
||||
@SchedulerLock(name = "runScenarioOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
||||
// @Scheduled(cron = "0 0/10 * * * ?")
|
||||
// @SchedulerLock(name = "runScenarioOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
||||
public void runScenarioOneTime() throws Exception {
|
||||
|
||||
// do something...
|
||||
@ -121,8 +121,8 @@ public class SchedulerUtil {
|
||||
/*
|
||||
* 매일 5시20분에 31일전 데이터에서 환불 대상을 찾아서 환불 한다.
|
||||
* */
|
||||
@Scheduled(cron = "20 20 5 * * ?")
|
||||
@SchedulerLock(name = "runScenarioOneTimeOneByDay", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
||||
// @Scheduled(cron = "20 20 5 * * ?")
|
||||
// @SchedulerLock(name = "runScenarioOneTimeOneByDay", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
||||
public void runScenarioOneTimeOneByDay() throws Exception {
|
||||
|
||||
// do something...
|
||||
|
||||
@ -4203,6 +4203,12 @@
|
||||
|
||||
</procedure>
|
||||
|
||||
<procedure id="MjonMsgDataDAO.updateMsgSentFailPayBackBatch" parameterClass="string">
|
||||
|
||||
{call procMsgRefundBatch(#msgFailListJson#)}
|
||||
|
||||
</procedure>
|
||||
|
||||
<select id="mjonMsgDAO.selectMsgResultCodeAllList" parameterClass="mjonMsgResultCodeVO" resultClass="mjonMsgResultCodeVO">
|
||||
|
||||
SELECT RESULT_ID AS resultId,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user