Merge branch 'advc' of http://dudgusw@vcs.iten.co.kr:9999/hylee/mjon_git into advc
This commit is contained in:
commit
fb1882ed4f
@ -65,8 +65,7 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer
|
|||||||
private EgovIdGnrService idgenAddrTransHistId;
|
private EgovIdGnrService idgenAddrTransHistId;
|
||||||
|
|
||||||
|
|
||||||
|
private static final String PHONE_REGEX = "^(010-?\\d{3,4}-?\\d{4}|01[1-9]-?\\d{3}-?\\d{4}|050\\d-?\\d{3,4}-?\\d{4})$";
|
||||||
private static final String PHONE_REGEX = "^(01[016789]-?\\d{3,4}-?\\d{4})$";
|
|
||||||
private static final Pattern PHONE_PATTERN = Pattern.compile(PHONE_REGEX);
|
private static final Pattern PHONE_PATTERN = Pattern.compile(PHONE_REGEX);
|
||||||
private static final Charset EUC_KR = Charset.forName("EUC-KR");
|
private static final Charset EUC_KR = Charset.forName("EUC-KR");
|
||||||
// private static final int MAX_ADDR_CNT = 500000;
|
// private static final int MAX_ADDR_CNT = 500000;
|
||||||
@ -474,14 +473,11 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer
|
|||||||
AtomicInteger invalid = new AtomicInteger(0); // 스레드-안전(thread-safe)하게 정수 값을 업데이트할 수 있는 기능을 제공
|
AtomicInteger invalid = new AtomicInteger(0); // 스레드-안전(thread-safe)하게 정수 값을 업데이트할 수 있는 기능을 제공
|
||||||
addrListVO.removeIf(addr -> {
|
addrListVO.removeIf(addr -> {
|
||||||
String phoneNo = addr.getAddrPhoneNo();
|
String phoneNo = addr.getAddrPhoneNo();
|
||||||
// phoneNo = phoneNo != null ? phoneNo.replaceAll("-", "") : "";
|
|
||||||
// System.out.println("phoneNo : "+ phoneNo);
|
|
||||||
if (isValidPhoneNumber(phoneNo)) {
|
if (isValidPhoneNumber(phoneNo)) {
|
||||||
addr.setAddrPhoneNo(phoneNo); // 하이픈이 제거된 유효한 번호 설정
|
addr.setAddrPhoneNo(phoneNo); // 하이픈이 제거된 유효한 번호 설정
|
||||||
trimFieldsBytes(addr); // 다른 필드들에 대한 20바이트 체크 및 자르기
|
trimFieldsBytes(addr); // 다른 필드들에 대한 20바이트 체크 및 자르기
|
||||||
return false; // 유효한 번호는 제거하지 않음
|
return false; // 유효한 번호는 제거하지 않음
|
||||||
} else {
|
} else {
|
||||||
// System.out.println(phoneNo + " is an invalid phone number. Removing from list.");
|
|
||||||
invalid.getAndIncrement(); // 유효하지 않은 번호 개수 증가
|
invalid.getAndIncrement(); // 유효하지 않은 번호 개수 증가
|
||||||
return true; // 유효하지 않은 번호는 제거
|
return true; // 유효하지 않은 번호는 제거
|
||||||
}
|
}
|
||||||
|
|||||||
@ -265,6 +265,12 @@ public class MjonMsgDataDAO extends EgovAbstractDAO {
|
|||||||
return (List<MjonMsgVO>) list("MjonMsgDataDAO.selectMsgSentFailList");
|
return (List<MjonMsgVO>) list("MjonMsgDataDAO.selectMsgSentFailList");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public List<MjonMsgVO> selectMsgSentFailSchedulerList(MjonMsgVO mjonMsgVO)throws Exception{
|
||||||
|
|
||||||
|
return (List<MjonMsgVO>) list("MjonMsgDataDAO.selectMsgSentFailSchedulerList", mjonMsgVO);
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public List<MjonMsgVO> selectMsgSentFailListOneByDay()throws Exception{
|
public List<MjonMsgVO> selectMsgSentFailListOneByDay()throws Exception{
|
||||||
|
|
||||||
|
|||||||
@ -50,4 +50,6 @@ public interface SchdlrManageService {
|
|||||||
//문자온 카카오톡 실패 건수 환불 배치
|
//문자온 카카오톡 실패 건수 환불 배치
|
||||||
public void kakaoFailPayBack() throws Exception;
|
public void kakaoFailPayBack() throws Exception;
|
||||||
|
|
||||||
|
//문자온 문자전송 실패 건수 환불 배치
|
||||||
|
public void payBack(String type, int limitCout) throws Exception;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -91,8 +91,8 @@ public class SchedulerUtil {
|
|||||||
/*
|
/*
|
||||||
* 2분 마다 1주일 데이터에서 환불 대상을 찾아서 환불 한다.
|
* 2분 마다 1주일 데이터에서 환불 대상을 찾아서 환불 한다.
|
||||||
* */
|
* */
|
||||||
// Schdule Lock (2분동안)
|
// Schdule Lock (5분동안)
|
||||||
@Scheduled(cron = "0 0/2 * * * ?")
|
@Scheduled(cron = "0 0/5 * * * ?")
|
||||||
@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 {
|
||||||
|
|
||||||
@ -101,7 +101,10 @@ public class SchedulerUtil {
|
|||||||
System.out.println("=============SchedulerUtil=====runScenarioOneTime =============>");
|
System.out.println("=============SchedulerUtil=====runScenarioOneTime =============>");
|
||||||
|
|
||||||
//문자 환불, 팩스 환불
|
//문자 환불, 팩스 환불
|
||||||
PayBack("");
|
|
||||||
|
|
||||||
|
//PayBack("");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// 문자 환불
|
// 문자 환불
|
||||||
schdlrManageService.msgFailPayBack();
|
schdlrManageService.msgFailPayBack();
|
||||||
@ -481,18 +484,35 @@ public class SchedulerUtil {
|
|||||||
}else { //2분 마다는 7일을 대상으로 실행
|
}else { //2분 마다는 7일을 대상으로 실행
|
||||||
//어플리케이션 트랜잭션 문제가 있어 Util 단으로 DB 호출을 가져옴 - 2024-03-14
|
//어플리케이션 트랜잭션 문제가 있어 Util 단으로 DB 호출을 가져옴 - 2024-03-14
|
||||||
//schdlrManageService.msgFailPayBack();
|
//schdlrManageService.msgFailPayBack();
|
||||||
|
MjonMsgVO mjonMsgVO = new MjonMsgVO();
|
||||||
List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailList();
|
mjonMsgVO.setRecordCountPerPage(500);
|
||||||
|
List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailSchedulerList(mjonMsgVO);
|
||||||
for(MjonMsgVO vo : msgFailList) {
|
long forBeforeTime = System.currentTimeMillis(); // 코드 실행 전 시간
|
||||||
|
int batchSize = 300;
|
||||||
|
int totalSize = msgFailList.size();
|
||||||
|
int endj =0;
|
||||||
|
for (int i = 0; i < totalSize; i += batchSize) {
|
||||||
|
int end = Math.min(i + batchSize, totalSize);
|
||||||
|
long beforeTime = System.currentTimeMillis(); // 코드 실행 전 시간
|
||||||
|
for(int j=endj; j < end; j++) {
|
||||||
|
System.out.println(j+" : "+ end);
|
||||||
try {
|
try {
|
||||||
mjonMsgDataDAO.updateMsgSentFailPayBack(vo);
|
mjonMsgDataDAO.updateMsgSentFailPayBack(msgFailList.get(j));
|
||||||
}catch(Exception ex) {
|
}catch(Exception ex) {
|
||||||
System.out.println("=============SchedulerUtil=====PayBack Catch =============>");
|
System.out.println("=============SchedulerUtil=====PayBack Catch =============>");
|
||||||
System.out.println(vo.getUserId()+" : "+ vo.getMsgGroupId() +" : "+ vo.getUserData());
|
System.out.println(msgFailList.get(j).getUserId()+" : "+ msgFailList.get(j).getMsgGroupId() +" : "+ msgFailList.get(j).getUserData());
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
endj = end;
|
||||||
|
|
||||||
|
long afterTime = System.currentTimeMillis(); // 코드 실행 후 시간
|
||||||
|
long secDiffTime = (afterTime - beforeTime)/1000; // 코드 실행 전후 시간 차이 계산(초 단위)
|
||||||
|
System.out.println("==PayBack for 1 =============> : " + secDiffTime +"초");
|
||||||
|
}
|
||||||
|
long forAfterTime = System.currentTimeMillis(); // 코드 실행 후 시간
|
||||||
|
long forSecDiffTime = (forAfterTime - forBeforeTime)/1000; // 코드 실행 전후 시간 차이 계산(초 단위)
|
||||||
|
System.out.println("==PayBack for 2 =============> 수량 : "+msgFailList.size()+" ===== " + forSecDiffTime +"초");
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("==== faxFailPayBack ====");
|
System.out.println("==== faxFailPayBack ====");
|
||||||
|
|||||||
@ -20,7 +20,9 @@ import itn.com.cmm.service.impl.FileManageDAO;
|
|||||||
import itn.let.fax.user.service.impl.FaxDAO;
|
import itn.let.fax.user.service.impl.FaxDAO;
|
||||||
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService;
|
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService;
|
||||||
import itn.let.mjo.mjocommon.MjonCommon;
|
import itn.let.mjo.mjocommon.MjonCommon;
|
||||||
|
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.impl.MjonMsgDataDAO;
|
||||||
import itn.let.mjo.pay.service.MjonPayService;
|
import itn.let.mjo.pay.service.MjonPayService;
|
||||||
import itn.let.mjo.pay.service.StVcVO;
|
import itn.let.mjo.pay.service.StVcVO;
|
||||||
import itn.let.mjo.payva.service.VacsAhstService;
|
import itn.let.mjo.payva.service.VacsAhstService;
|
||||||
@ -63,6 +65,9 @@ public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
@Value("#{globalSettings['Globals.HOMPAGE_URL']}")
|
@Value("#{globalSettings['Globals.HOMPAGE_URL']}")
|
||||||
private String HOMPAGE_URL;
|
private String HOMPAGE_URL;
|
||||||
|
|
||||||
|
@Resource(name="MjonMsgDataDAO")
|
||||||
|
private MjonMsgDataDAO mjonMsgDataDAO;
|
||||||
|
|
||||||
//문자온 카카오 알림톡 발송 서비스
|
//문자온 카카오 알림톡 발송 서비스
|
||||||
@Resource(name = "kakaoAlimTalkService")
|
@Resource(name = "kakaoAlimTalkService")
|
||||||
private KakaoAlimTalkService kakaoAlimTalkService;
|
private KakaoAlimTalkService kakaoAlimTalkService;
|
||||||
@ -424,4 +429,44 @@ public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void payBack(String type, int limitCout) throws Exception {
|
||||||
|
// 문자 환불
|
||||||
|
if ("ONE".equals(type)) { //하루에 한번만 31일 대상으로 실행
|
||||||
|
msgFailPayBackOneByDay();
|
||||||
|
|
||||||
|
}else { //2분 마다는 7일을 대상으로 실행
|
||||||
|
MjonMsgVO mjonMsgVO = new MjonMsgVO();
|
||||||
|
mjonMsgVO.setRecordCountPerPage(limitCout);
|
||||||
|
|
||||||
|
List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailSchedulerList(mjonMsgVO);
|
||||||
|
long forBeforeTime = System.currentTimeMillis(); // 코드 실행 전 시간
|
||||||
|
int batchSize = 300;
|
||||||
|
int totalSize = msgFailList.size();
|
||||||
|
int endj =0;
|
||||||
|
for (int i = 0; i < totalSize; i += batchSize) {
|
||||||
|
int end = Math.min(i + batchSize, totalSize);
|
||||||
|
long beforeTime = System.currentTimeMillis(); // 코드 실행 전 시간
|
||||||
|
for(int j=endj; j < end; j++) {
|
||||||
|
System.out.println(j+" : "+ end);
|
||||||
|
try {
|
||||||
|
mjonMsgDataDAO.updateMsgSentFailPayBack(msgFailList.get(j));
|
||||||
|
}catch(Exception ex) {
|
||||||
|
System.out.println("=============SchedulerUtil=====PayBack Catch =============>");
|
||||||
|
System.out.println(msgFailList.get(j).getUserId()+" : "+ msgFailList.get(j).getMsgGroupId() +" : "+ msgFailList.get(j).getUserData());
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
endj = end;
|
||||||
|
|
||||||
|
long afterTime = System.currentTimeMillis(); // 코드 실행 후 시간
|
||||||
|
long secDiffTime = (afterTime - beforeTime)/1000; // 코드 실행 전후 시간 차이 계산(초 단위)
|
||||||
|
System.out.println("==PayBack for 1 =============> : " + secDiffTime +"초");
|
||||||
|
}
|
||||||
|
long forAfterTime = System.currentTimeMillis(); // 코드 실행 후 시간
|
||||||
|
long forSecDiffTime = (forAfterTime - forBeforeTime)/1000; // 코드 실행 전후 시간 차이 계산(초 단위)
|
||||||
|
System.out.println("==PayBack for 2 =============> 수량 : "+msgFailList.size()+" ===== " + forSecDiffTime +"초");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,6 +36,7 @@ import itn.let.lett.service.LetterService;
|
|||||||
import itn.let.lett.service.LetterVO;
|
import itn.let.lett.service.LetterVO;
|
||||||
import itn.let.mjo.pay.service.MjonPayVO;
|
import itn.let.mjo.pay.service.MjonPayVO;
|
||||||
import itn.let.schdlr.service.SchdlrManageService;
|
import itn.let.schdlr.service.SchdlrManageService;
|
||||||
|
import itn.let.schdlr.service.SchedulerUtil;
|
||||||
import itn.let.uss.ion.cnt.service.CntManageVO;
|
import itn.let.uss.ion.cnt.service.CntManageVO;
|
||||||
import itn.let.uss.ion.cnt.service.EgovCntManageService;
|
import itn.let.uss.ion.cnt.service.EgovCntManageService;
|
||||||
|
|
||||||
@ -768,4 +769,41 @@ public class ContentController{
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// 전용계좌 스케줄러 실행
|
||||||
|
@RequestMapping(value= {"/web/main/payBackAutoChargeAjax.do"})
|
||||||
|
public ModelAndView payBackAutoChargeAjax(HttpServletRequest request,
|
||||||
|
ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
ModelAndView modelAndView = new ModelAndView();
|
||||||
|
modelAndView.setViewName("jsonView");
|
||||||
|
|
||||||
|
boolean isSuccess = true;
|
||||||
|
String msg = "";
|
||||||
|
|
||||||
|
try {
|
||||||
|
String pageType = "";
|
||||||
|
if(request.getParameter("type") != null) {
|
||||||
|
pageType = request.getParameter("type");
|
||||||
|
}
|
||||||
|
|
||||||
|
int limitCout = 500;
|
||||||
|
if(request.getParameter("limitCout") != null) {
|
||||||
|
limitCout = Integer.parseInt(request.getParameter("limitCout"));
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("type : " + pageType);
|
||||||
|
System.out.println("limitCout : " + limitCout);
|
||||||
|
|
||||||
|
schdlrManageService.payBack(pageType, limitCout);
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
isSuccess = false;
|
||||||
|
msg = e.getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
modelAndView.addObject("isSuccess", isSuccess);
|
||||||
|
modelAndView.addObject("msg", msg);
|
||||||
|
|
||||||
|
return modelAndView;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4006,9 +4006,8 @@
|
|||||||
WHERE SEARCH_WORD = #searchKeyword#
|
WHERE SEARCH_WORD = #searchKeyword#
|
||||||
|
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 문자발송 실패건에 대한 환불 대상 리스트 : 발송 완료되었고, 결과코드가 실패이고, 예약 취소가 아닌건들 -->
|
<!-- 문자발송 실패건에 대한 환불 대상 리스트 : 발송 완료되었고, 결과코드가 실패이고, 예약 취소가 아닌건들 -->
|
||||||
<select id="MjonMsgDataDAO.selectMsgSentFailList" resultClass="mjonMsgVO">
|
<select id="MjonMsgDataDAO.selectMsgSentFailList">
|
||||||
|
|
||||||
SELECT USER_ID AS userId,
|
SELECT USER_ID AS userId,
|
||||||
MSG_GROUP_ID AS msgGroupId,
|
MSG_GROUP_ID AS msgGroupId,
|
||||||
@ -4057,7 +4056,59 @@
|
|||||||
THEN 'W'
|
THEN 'W'
|
||||||
ELSE 'F'
|
ELSE 'F'
|
||||||
END) IN ('F')
|
END) IN ('F')
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 문자발송 실패건에 대한 환불 대상 리스트 : 발송 완료되었고, 결과코드가 실패이고, 예약 취소가 아닌건들 -->
|
||||||
|
<select id="MjonMsgDataDAO.selectMsgSentFailSchedulerList" resultClass="mjonMsgVO">
|
||||||
|
|
||||||
|
SELECT USER_ID AS userId,
|
||||||
|
MSG_GROUP_ID AS msgGroupId,
|
||||||
|
MSG_SEQ AS msgSeq,
|
||||||
|
USERDATA AS userData,
|
||||||
|
REFUND_YN AS refundYn,
|
||||||
|
RSLT_CODE AS rsltCode,
|
||||||
|
RSLT_CODE2 AS rsltCode2,
|
||||||
|
AGENT_CODE AS agentCode,
|
||||||
|
DATE_FORMAT(SENT_DATE,'%Y-%m-%d %T') AS sentDate,
|
||||||
|
DATE_FORMAT(RSLT_DATE,'%Y-%m-%d %T') AS rsltDate
|
||||||
|
FROM MJ_MSG_DATA MMD
|
||||||
|
INNER JOIN LETTNGNRLMBER MB
|
||||||
|
ON MMD.USER_ID = MB.MBER_ID
|
||||||
|
WHERE 1=1
|
||||||
|
AND MMD.SENT_DATE > date_add(now(), interval -7 day)
|
||||||
|
AND MMD.CUR_STATE = '3'
|
||||||
|
AND MMD.REFUND_YN = 'N'
|
||||||
|
AND MMD.RESERVE_C_YN = 'N'
|
||||||
|
AND MMD.MSG_TYPE IN ('4','6')
|
||||||
|
AND MMD.USER_ID NOT IN ('hftest', 'itntest', 'imotest', 'itntestBatch')
|
||||||
|
AND
|
||||||
|
(CASE
|
||||||
|
WHEN MMD.AGENT_CODE = '01' AND ( MMD.RSLT_CODE = '100' AND (MMD.RSLT_CODE2 = '0'))
|
||||||
|
THEN 'S'
|
||||||
|
WHEN MMD.AGENT_CODE = '02' AND (MMD.RSLT_CODE = '0')
|
||||||
|
THEN 'S'
|
||||||
|
WHEN MMD.AGENT_CODE = '03' AND (MMD.RSLT_CODE = '100' OR MMD.RSLT_CODE = '101' OR MMD.RSLT_CODE = '110' OR MMD.RSLT_CODE = '800')
|
||||||
|
THEN 'S'
|
||||||
|
WHEN MMD.AGENT_CODE = '04' AND (MMD.RSLT_CODE = '4100' OR MMD.RSLT_CODE = '6600')
|
||||||
|
THEN 'S'
|
||||||
|
WHEN MMD.AGENT_CODE = '05' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
|
||||||
|
THEN 'S'
|
||||||
|
WHEN MMD.AGENT_CODE = '07' AND (MMD.RSLT_CODE = '6' OR MMD.RSLT_CODE = '1000')
|
||||||
|
THEN 'S'
|
||||||
|
WHEN MMD.AGENT_CODE = '08' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
|
||||||
|
THEN 'S'
|
||||||
|
WHEN MMD.AGENT_CODE = '09' AND (MMD.RSLT_CODE = '1000' OR MMD.RSLT_CODE = '1001')
|
||||||
|
THEN 'S'
|
||||||
|
WHEN (
|
||||||
|
MMD.RSLT_CODE IS NULL
|
||||||
|
AND MMD.RSLT_CODE2 IS NULL
|
||||||
|
AND MMD.SENT_DATE IS NULL
|
||||||
|
AND MMD.RSLT_DATE IS NULL
|
||||||
|
)
|
||||||
|
THEN 'W'
|
||||||
|
ELSE 'F'
|
||||||
|
END) IN ('F')
|
||||||
|
LIMIT #recordCountPerPage#
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 문자발송 실패건에 대한 환불 대상 리스트 : 발송 완료되었고, 결과코드가 실패이고, 예약 취소가 아닌건들(하루에 한번은 31일 실행) -->
|
<!-- 문자발송 실패건에 대한 환불 대상 리스트 : 발송 완료되었고, 결과코드가 실패이고, 예약 취소가 아닌건들(하루에 한번은 31일 실행) -->
|
||||||
|
|||||||
@ -472,17 +472,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="clause_list">
|
<ul class="clause_list">
|
||||||
|
<c:set var="clause_count" value="0" />
|
||||||
<c:forEach var="result" items="${termsList}" varStatus="status">
|
<c:forEach var="result" items="${termsList}" varStatus="status">
|
||||||
|
|
||||||
<!-- 광고성 정보 수신 제외한 약관 -->
|
<!-- 광고성 정보 수신 제외한 약관 -->
|
||||||
<c:if test="${result.termsId ne 'TERMS_00000025' && result.termsId ne 'TERMS_00000026' && result.termsId ne 'TERMS_00000027' && result.termsId ne 'TERMS_00000028' && result.termsId ne 'TERMS_00000029'}" >
|
<c:if test="${result.termsId ne 'TERMS_00000025' && result.termsId ne 'TERMS_00000026' && result.termsId ne 'TERMS_00000027' && result.termsId ne 'TERMS_00000028' && result.termsId ne 'TERMS_00000029'}" >
|
||||||
<c:if test="${status.index eq '0'}">
|
<c:if test="${clause_count eq '0'}">
|
||||||
<li class="list_open on">
|
<li class="list_open on">
|
||||||
</c:if>
|
</c:if>
|
||||||
<c:if test="${status.index ne '0'}">
|
<c:if test="${clause_count ne '0'}">
|
||||||
<li class="list_open">
|
<li class="list_open">
|
||||||
</c:if>
|
</c:if>
|
||||||
|
<c:set var="clause_count" value="${clause_count + 1}"/>
|
||||||
<!--필수인지 체크 후 본인인증 화면 전 필수 약관들 체크했는지 확인 -->
|
<!--필수인지 체크 후 본인인증 화면 전 필수 약관들 체크했는지 확인 -->
|
||||||
<c:set var="necCheck" value="" />
|
<c:set var="necCheck" value="" />
|
||||||
<c:if test="${result.necYn eq 'Y' }">
|
<c:if test="${result.necYn eq 'Y' }">
|
||||||
|
|||||||
@ -62,8 +62,8 @@ $(document).ready(function() {
|
|||||||
|
|
||||||
|
|
||||||
if(agreePrivatePopCk != null){//개인정보 및 이용약관 개정 팝업 노출, 3일안보기 쿠키 있으면 팝업 안모여준다.
|
if(agreePrivatePopCk != null){//개인정보 및 이용약관 개정 팝업 노출, 3일안보기 쿠키 있으면 팝업 안모여준다.
|
||||||
// $(".agreePrivatePop").css("display","none");
|
$(".agreePrivatePop").css("display","none");
|
||||||
// $(".agreePrivatePop").hide();
|
$(".agreePrivatePop").hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(evntPopCk != null && pointPopCk != null){//팝업 쿠키가 모두 있는 경우 안보여준다.
|
if(evntPopCk != null && pointPopCk != null){//팝업 쿠키가 모두 있는 경우 안보여준다.
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1060,40 +1060,12 @@ function fn_sendMsgData(){
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var loginVO = '${LoginVO}';
|
|
||||||
if (!loginVO) {
|
|
||||||
alert("문자발송 서비스는 로그인 후 이용 가능합니다.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 폼 유효성 검사
|
// 폼 유효성 검사
|
||||||
if (!validateForm(form)) return false;
|
if (!validateForm(form)) return false;
|
||||||
|
|
||||||
var adverYn = $("input[name='send_adYn']:checked").val();
|
|
||||||
var spamStatus = false;
|
var spamStatus = false;
|
||||||
var exceptSpamYn = $("#exceptSpamYn").val(); //금지어 필터링 예외 여부 - N 일 경우만 스팸 검사를 진행
|
var exceptSpamYn = $("#exceptSpamYn").val(); //금지어 필터링 예외 여부 - N 일 경우만 스팸 검사를 진행
|
||||||
|
|
||||||
//이벤트 진행중 회원의 경우 이벤트 잔여금액 비교 처리 필요.
|
|
||||||
/* var eventStatus = form.eventStatus.value;
|
|
||||||
var eventRemainCash = parseFloat(form.eventRemainCash.value);
|
|
||||||
|
|
||||||
if(eventStatus == 'Y'){
|
|
||||||
|
|
||||||
if(parseFloat(eventRemainCash) < parseFloat(totPriceOnly)){
|
|
||||||
|
|
||||||
alert("고객님의 이벤트 캐시 잔액은 " + eventRemainCash + "원으로 입력하신 수량의 문자를 전부 발송할 수 없습니다. 잔액 이하로 발송건수를 재설정하시기 바랍니다.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
} */
|
|
||||||
|
|
||||||
if(loginVO == "" || loginVO == null){
|
|
||||||
|
|
||||||
alert("문자발송 서비스는 로그인 후 이용 가능합니다.");
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var blineCodeYn = $("#blineCode").val();
|
var blineCodeYn = $("#blineCode").val();
|
||||||
if(blineCodeYn != 'N'){
|
if(blineCodeYn != 'N'){
|
||||||
@ -1112,22 +1084,11 @@ function fn_sendMsgData(){
|
|||||||
|
|
||||||
|
|
||||||
//광고 문자 내용 합쳐주기
|
//광고 문자 내용 합쳐주기
|
||||||
|
var adverYn = $("input[name='send_adYn']:checked").val();
|
||||||
if(adverYn == 'Y'){
|
if(adverYn == 'Y'){
|
||||||
|
|
||||||
var adTxt = $('.ad_txt').text();
|
|
||||||
var denyTxt = $('.deny_txt').text();
|
|
||||||
var smsTxt = form.smsTxtArea.value;
|
|
||||||
|
|
||||||
var adverTxt = adTxt + smsTxt + '\n' + denyTxt;
|
|
||||||
form.smsTxt.value = adverTxt;
|
|
||||||
form.msgKind.value = "A"; //광고문자 종류 설정
|
form.msgKind.value = "A"; //광고문자 종류 설정
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
var smsTxt = form.smsTxtArea.value;
|
|
||||||
form.smsTxt.value = smsTxt;
|
|
||||||
form.msgKind.value = "N"; //일반문자 종류 설정
|
form.msgKind.value = "N"; //일반문자 종류 설정
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//수신번호 리스트 체크하기
|
//수신번호 리스트 체크하기
|
||||||
@ -1141,75 +1102,7 @@ function fn_sendMsgData(){
|
|||||||
|
|
||||||
var selectedData = tableL.getRows();
|
var selectedData = tableL.getRows();
|
||||||
|
|
||||||
if(selectedData == "" || selectedData == null){
|
/*
|
||||||
|
|
||||||
alert("받는사람 주소를 한 건 이상 입력해주세요.");
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}else{ // 선택한 Row '-' 문자 삭제하기
|
|
||||||
|
|
||||||
for(var i=0; i < selectedData.length; i++){
|
|
||||||
|
|
||||||
//일괄변환 문자에 콤마(,)가 들어가있으면 배열로 넘길때 문제가 발생하여 특수문자(§)로 치환하여 넘겨주도록 한다.
|
|
||||||
var name = tableL.getRows()[i].getData().name;
|
|
||||||
var phone = removeDash(tableL.getRows()[i].getData().phone);
|
|
||||||
var rep1 = tableL.getRows()[i].getData().rep1;
|
|
||||||
var rep2 = tableL.getRows()[i].getData().rep2;
|
|
||||||
var rep3 = tableL.getRows()[i].getData().rep3;
|
|
||||||
var rep4 = tableL.getRows()[i].getData().rep4;
|
|
||||||
|
|
||||||
if(phone == ""){
|
|
||||||
|
|
||||||
alert("수신 목록에 핸드폰 번호가 없는 항목이 있습니다.");
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}else if(!checkHpNum(phone)){
|
|
||||||
|
|
||||||
alert("수신 목록에 잘 못된 핸드폰 번호가 있습니다. 핸드폰 번호 : " + phone + " 입니다.");
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}else{
|
|
||||||
|
|
||||||
if(typeof(name) != 'undefined' && name != null && name !=""){
|
|
||||||
if(!emojiCheck(name)){//이모지 체크 해주기
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
nameList[i] = name.replaceAll(",","§");
|
|
||||||
}
|
|
||||||
|
|
||||||
phoneNum[i] = phone;
|
|
||||||
|
|
||||||
if(typeof(rep1) != 'undefined' && rep1 != null){
|
|
||||||
if(!emojiCheck(rep1)){//이모지 체크 해주기
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
rep1List[i] = rep1.replaceAll(",","§");
|
|
||||||
}
|
|
||||||
if(typeof(rep2) != 'undefined' && rep2 != null){
|
|
||||||
if(!emojiCheck(rep2)){//이모지 체크 해주기
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
rep2List[i] = rep2.replaceAll(",","§");
|
|
||||||
}
|
|
||||||
if(typeof(rep3) != 'undefined' && rep3 != null){
|
|
||||||
if(!emojiCheck(rep3)){//이모지 체크 해주기
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
rep3List[i] = rep3.replaceAll(",","§");
|
|
||||||
}
|
|
||||||
if(typeof(rep4) != 'undefined' && rep4 != null){
|
|
||||||
if(!emojiCheck(rep4)){//이모지 체크 해주기
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
rep4List[i] = rep4.replaceAll(",","§");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
var reserYn = $("input[name=reserYn]:checked").val(); // 예약 발송 여부 확인
|
var reserYn = $("input[name=reserYn]:checked").val(); // 예약 발송 여부 확인
|
||||||
|
|
||||||
if(reserYn == 'Y'){
|
if(reserYn == 'Y'){
|
||||||
@ -1241,10 +1134,9 @@ function fn_sendMsgData(){
|
|||||||
|
|
||||||
form.reqDate.value = "";
|
form.reqDate.value = "";
|
||||||
|
|
||||||
}
|
} */
|
||||||
|
|
||||||
var fileLinks = document.getElementsByName("fileLinks");
|
|
||||||
|
|
||||||
|
/*
|
||||||
var conLeng = conByteLeng($('#smsTxt').val()); // 내용 문자 입력 바이트 수 계산하기
|
var conLeng = conByteLeng($('#smsTxt').val()); // 내용 문자 입력 바이트 수 계산하기
|
||||||
|
|
||||||
if(conLeng > 2000){
|
if(conLeng > 2000){
|
||||||
@ -1254,6 +1146,7 @@ function fn_sendMsgData(){
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
console.log(' : 전송하시겠습니까 : ')
|
console.log(' : 전송하시겠습니까 : ')
|
||||||
if(confirm("문자를 전송하시겠습니까?")){
|
if(confirm("문자를 전송하시겠습니까?")){
|
||||||
@ -1320,11 +1213,11 @@ function fn_sendMsgData(){
|
|||||||
form.reserveYn.value = reserYn; // 즉시 / 예약 문자 선택 여부
|
form.reserveYn.value = reserYn; // 즉시 / 예약 문자 선택 여부
|
||||||
form.templateYn.value = templateYn;
|
form.templateYn.value = templateYn;
|
||||||
form.imgFileId.value = imgFileId;
|
form.imgFileId.value = imgFileId;
|
||||||
form.nameList.value = nameList;
|
// form.nameList.value = nameList;
|
||||||
form.rep1List.value = rep1List;
|
// form.rep1List.value = rep1List;
|
||||||
form.rep2List.value = rep2List;
|
// form.rep2List.value = rep2List;
|
||||||
form.rep3List.value = rep3List;
|
// form.rep3List.value = rep3List;
|
||||||
form.rep4List.value = rep4List;
|
// form.rep4List.value = rep4List;
|
||||||
|
|
||||||
//총 결제금액 천단위 콤마 삭제 후 전송
|
//총 결제금액 천단위 콤마 삭제 후 전송
|
||||||
var totPrice = form.totPrice.value;
|
var totPrice = form.totPrice.value;
|
||||||
@ -1743,8 +1636,8 @@ function fn_sendMsgData(){
|
|||||||
form.eventStatus.value = 'N';
|
form.eventStatus.value = 'N';
|
||||||
form.eventYn.value = 'N';
|
form.eventYn.value = 'N';
|
||||||
|
|
||||||
// sendMsgAjax_advc(0,0);
|
sendMsgAjax_advc(0,0);
|
||||||
sendMsgAjax(0,0);
|
// sendMsgAjax(0,0);
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
@ -1765,16 +1658,16 @@ function fn_sendMsgData(){
|
|||||||
}else{
|
}else{
|
||||||
|
|
||||||
//발송 Ajax 호출해주기
|
//발송 Ajax 호출해주기
|
||||||
// sendMsgAjax_advc(0,0);
|
sendMsgAjax_advc(0,0);
|
||||||
sendMsgAjax(0,0);
|
// sendMsgAjax(0,0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
//발송 Ajax 호출해주기
|
//발송 Ajax 호출해주기
|
||||||
// sendMsgAjax_advc(0,0);
|
sendMsgAjax_advc(0,0);
|
||||||
sendMsgAjax(0,0);
|
// sendMsgAjax(0,0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,8 @@ function isValidPhoneNumber(phone) {
|
|||||||
// 유효한 형식 체크
|
// 유효한 형식 체크
|
||||||
return (
|
return (
|
||||||
(numberOnly.startsWith("010") && numberOnly.length === 11) || // 010으로 시작하고 11자리
|
(numberOnly.startsWith("010") && numberOnly.length === 11) || // 010으로 시작하고 11자리
|
||||||
(/^01[1-9]/.test(numberOnly) && numberOnly.length === 10) || // 011~019로 시작하고 10자리
|
(/^01[1-9]/.test(numberOnly) && numberOnly.length === 10 && // 011~019로 시작하고 10자리
|
||||||
|
!/^01[2-4]/.test(numberOnly)) || // 012, 013, 014는 유효하지 않음
|
||||||
(numberOnly.startsWith("050") && numberOnly.length === 12) // 050X로 시작하고 12자리
|
(numberOnly.startsWith("050") && numberOnly.length === 12) // 050X로 시작하고 12자리
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user