Merge branch 'advc' of http://dudgusw@vcs.iten.co.kr:9999/hylee/mjon_git into advc
This commit is contained in:
commit
50e5811b9b
20
src/main/java/itn/com/cmm/MjonMsgTabulVO.java
Normal file
20
src/main/java/itn/com/cmm/MjonMsgTabulVO.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package itn.com.cmm;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
public class MjonMsgTabulVO{
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private String phone;
|
||||||
|
private String rep1;
|
||||||
|
private String rep2;
|
||||||
|
private String rep3;
|
||||||
|
private String rep4;
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@ -3987,7 +3987,7 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
@Override
|
@Override
|
||||||
public StatusResponse sendMsgData_advc(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception {
|
public StatusResponse sendMsgData_advc(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception {
|
||||||
|
|
||||||
|
log.info(" :: sendMsgData_advc :: ");
|
||||||
|
|
||||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
@ -4000,7 +4000,7 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
|
|
||||||
//발신번호가 등록된 유효한 번호인지 확인
|
//발신번호가 등록된 유효한 번호인지 확인
|
||||||
int sendCallFromCnt = mjonMsgDAO.selectCallFromNumberChk(mjonMsgVO);
|
int sendCallFromCnt = mjonMsgDAO.selectCallFromNumberChk(mjonMsgVO);
|
||||||
log.info("sendCallFromCnt :: [{}]", sendCallFromCnt);
|
System.out.println("sendCallFromCnt : "+ sendCallFromCnt);
|
||||||
if(sendCallFromCnt < 1) {
|
if(sendCallFromCnt < 1) {
|
||||||
return new StatusResponse(HttpStatus.BAD_REQUEST, "등록된 발신번호를 찾을 수 없습니다.");
|
return new StatusResponse(HttpStatus.BAD_REQUEST, "등록된 발신번호를 찾을 수 없습니다.");
|
||||||
}
|
}
|
||||||
@ -4014,19 +4014,42 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
request.getSession().invalidate();
|
request.getSession().invalidate();
|
||||||
// UNAUTHORIZED : 인증되지 않은 사용자가 접근하려고 할 때
|
// UNAUTHORIZED : 인증되지 않은 사용자가 접근하려고 할 때
|
||||||
return new StatusResponse(HttpStatus.UNAUTHORIZED, "현재 고객님께서는 문자온 서비스 이용이 정지된 상태로 문자를 발송하실 수 없습니다. 이용정지 해제를 원하시면 고객센터로 연락주시기 바랍니다.");
|
return new StatusResponse(HttpStatus.UNAUTHORIZED, "현재 고객님께서는 문자온 서비스 이용이 정지된 상태로 문자를 발송하실 수 없습니다. 이용정지 해제를 원하시면 고객센터로 연락주시기 바랍니다.");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
String smsTxt = mjonMsgVO.getSmsTxtArea();
|
||||||
* 어디에 사용하는지 모르겠음
|
// 광고문자면 처리 - 광고 A
|
||||||
* set 후에 사용하는 곳이 없음
|
if("A".equals(mjonMsgVO.getMsgKind())) {
|
||||||
* //회원정보에서 스미싱 회원 여부 정보 조회
|
smsTxt = "(광고)"+smsTxt
|
||||||
UserManageVO userManageVO = new UserManageVO();
|
+"\n"+"무료거부 0808800858";
|
||||||
|
}
|
||||||
|
|
||||||
userManageVO.setMberId(userId);
|
log.debug(" :: smsTxt :: [{}]", smsTxt);
|
||||||
UserManageVO resultUserVO = userManageService.selectSmishingYnUserInfo(userManageVO);
|
|
||||||
String smishingYn = resultUserVO.getSmishingYn();
|
StatusResponse statusResponse = new StatusResponse();
|
||||||
mjonMsgVO.setSmishingYn(smishingYn);
|
mjonMsgVO = setImagesSetting(mjonMsgVO, statusResponse);
|
||||||
|
|
||||||
|
if(mjonMsgVO == null) {
|
||||||
|
return statusResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
log.debug(" + mjonMsgVO.getFileCnt() :: [{}]", mjonMsgVO.getFileCnt());
|
||||||
|
|
||||||
|
//////////////////////////////////
|
||||||
|
//////////////////////////////////
|
||||||
|
//////////////////////////////////
|
||||||
|
if(true) {
|
||||||
|
return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 테스트 실패");
|
||||||
|
}
|
||||||
|
//////////////////////////////////
|
||||||
|
//////////////////////////////////
|
||||||
|
//////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 화면에서 넘어오는 단가 금액 및 총 결제 캐시 금액 체크 해주기
|
||||||
|
* 검증을 위해서 시스템 단가, 회원 협의 단가, 이벤트 단가 정보 조회
|
||||||
|
* 조회 단가를 이용하여 총 결제 캐시 금액 계산
|
||||||
|
* 파라미터로 넘어온 개별단가(eachPrice), 총 결제캐시(totPrice)를 비요하여 동일하지 않으면 컨트롤러에서 계산한 금액으로 입력해줌.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int smsTxtByte = MsgSendUtils.getSmsTxtBytes(mjonMsgVO.getSmsTxt());
|
int smsTxtByte = MsgSendUtils.getSmsTxtBytes(mjonMsgVO.getSmsTxt());
|
||||||
@ -4043,73 +4066,6 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
int fileCount = 0;
|
|
||||||
// 장문 메시지일 경우 + 그림 이미지가 첨부된 경우
|
|
||||||
if (msgType.equals("6")
|
|
||||||
&& mjonMsgVO.getImgFilePath() != null
|
|
||||||
&& mjonMsgVO.getImgFilePath().length > 0
|
|
||||||
)
|
|
||||||
{
|
|
||||||
|
|
||||||
//그림 이미지가 첨부된 경우
|
|
||||||
|
|
||||||
String[] path = mjonMsgVO.getImgFilePath();
|
|
||||||
String[] fileId = mjonMsgVO.getImgFileId();
|
|
||||||
String[] templateYn = mjonMsgVO.getTemplateYn();
|
|
||||||
|
|
||||||
for(int i=0; i<path.length; i++) {
|
|
||||||
|
|
||||||
if("Y".equals(templateYn[i])) {
|
|
||||||
//템플릿 사용누계 증가
|
|
||||||
letterDAO.updateTemplateUseCount(fileId[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
String imgFilePath = mjonMsgDAO.selectPhotoImgFileRealPath(fileId[i]);
|
|
||||||
|
|
||||||
if (StringUtils.isEmpty(imgFilePath)) {
|
|
||||||
return new StatusResponse(HttpStatus.NO_CONTENT, "문자 메세지 이미지 추가에 오류가 발생하여 문자 발송이 취소 되었습니다.");
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (i) {
|
|
||||||
case 0:
|
|
||||||
mjonMsgVO.setFileName1(imgFilePath);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
mjonMsgVO.setFileName2(imgFilePath);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
mjonMsgVO.setFileName3(imgFilePath);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fileCount ++;
|
|
||||||
|
|
||||||
//첨부파일 갯수 셋팅해주기
|
|
||||||
mjonMsgVO.setFileCnt(Integer.toString(fileCount));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 파일 갯수는 있는데 파일 경로가 없는 경우 문자발송이 안되도록 튕겨내도록 함 - 20220520 우영두
|
|
||||||
// 리펙토링 20240930 이호영
|
|
||||||
// StatusResponse returnStatusResponse = MsgSendUtils.validateFilesForMessageSending(fileCount, mjonMsgVO);
|
|
||||||
// if (returnStatusResponse != null) {
|
|
||||||
// return returnStatusResponse;
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 화면에서 넘어오는 단가 금액 및 총 결제 캐시 금액 체크 해주기
|
|
||||||
* 검증을 위해서 시스템 단가, 회원 협의 단가, 이벤트 단가 정보 조회
|
|
||||||
* 조회 단가를 이용하여 총 결제 캐시 금액 계산
|
|
||||||
* 파라미터로 넘어온 개별단가(eachPrice), 총 결제캐시(totPrice)를 비요하여 동일하지 않으면 컨트롤러에서 계산한 금액으로 입력해줌.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
MjonEventVO mjonEventVO = new MjonEventVO();
|
MjonEventVO mjonEventVO = new MjonEventVO();
|
||||||
mjonEventVO.setMberId(userId);
|
mjonEventVO.setMberId(userId);
|
||||||
|
|
||||||
@ -4176,7 +4132,6 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
////////////////////////////////////////////////
|
////////////////////////////////////////////////
|
||||||
// 치환 여부
|
// 치환 여부
|
||||||
////////////////////////////////////////////////
|
////////////////////////////////////////////////
|
||||||
StatusResponse statusResponse = new StatusResponse();
|
|
||||||
if (MsgSendUtils.isReplacementRequired(mjonMsgVO)) {
|
if (MsgSendUtils.isReplacementRequired(mjonMsgVO)) {
|
||||||
|
|
||||||
if (!MsgSendUtils.validateReplacementData(mjonMsgVO, statusResponse)) {
|
if (!MsgSendUtils.validateReplacementData(mjonMsgVO, statusResponse)) {
|
||||||
@ -4204,6 +4159,108 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
return statusResponse;
|
return statusResponse;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private MjonMsgVO setImagesSetting(MjonMsgVO mjonMsgVO, StatusResponse statusResponse) throws Exception {
|
||||||
|
|
||||||
|
int fileCount = 0;
|
||||||
|
// 장문 메시지일 경우 + 그림 이미지가 첨부된 경우
|
||||||
|
//
|
||||||
|
if (mjonMsgVO.getMsgType().equals("6")
|
||||||
|
&& mjonMsgVO.getImgFilePathAdvc() != null
|
||||||
|
&& mjonMsgVO.getImgFileIdAdvc() != null
|
||||||
|
)
|
||||||
|
{
|
||||||
|
|
||||||
|
//그림 이미지가 첨부된 경우
|
||||||
|
|
||||||
|
String[] path;
|
||||||
|
if(mjonMsgVO.getImgFilePathAdvc().contains(",")) {
|
||||||
|
path = mjonMsgVO.getImgFilePathAdvc().split(",");
|
||||||
|
}else {
|
||||||
|
path = new String[1]; // 크기 1의 배열로 초기화
|
||||||
|
path[0] = mjonMsgVO.getImgFilePathAdvc();
|
||||||
|
}
|
||||||
|
|
||||||
|
String[] fileId = null;
|
||||||
|
if(mjonMsgVO.getImgFileIdAdvc().contains(",")) {
|
||||||
|
fileId = mjonMsgVO.getImgFileIdAdvc().split(",");
|
||||||
|
}else {
|
||||||
|
fileId = new String[1]; // 크기 1의 배열로 초기화
|
||||||
|
fileId[0] = mjonMsgVO.getImgFileIdAdvc();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
String[] templateYn = null;
|
||||||
|
if(mjonMsgVO.getTemplateYnAdvc().contains(",")) {
|
||||||
|
templateYn = mjonMsgVO.getTemplateYnAdvc().split(",");
|
||||||
|
}else {
|
||||||
|
templateYn = new String[1]; // 크기 1의 배열로 초기화
|
||||||
|
templateYn[0] = mjonMsgVO.getTemplateYnAdvc();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for(int i=0; i<path.length; i++) {
|
||||||
|
|
||||||
|
if("Y".equals(templateYn[i])) {
|
||||||
|
//템플릿 사용누계 증가
|
||||||
|
letterDAO.updateTemplateUseCount(fileId[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
String imgFilePath = mjonMsgDAO.selectPhotoImgFileRealPath(fileId[i]);
|
||||||
|
|
||||||
|
if (StringUtils.isEmpty(imgFilePath)) {
|
||||||
|
statusResponse.setStatus(HttpStatus.NO_CONTENT);
|
||||||
|
statusResponse.setMessage("문자 메세지 이미지 추가에 오류가 발생하여 문자 발송이 취소 되었습니다.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (i) {
|
||||||
|
case 0:
|
||||||
|
mjonMsgVO.setFileName1(imgFilePath);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
mjonMsgVO.setFileName2(imgFilePath);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
mjonMsgVO.setFileName3(imgFilePath);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
fileCount ++;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//첨부파일 갯수 셋팅해주기
|
||||||
|
mjonMsgVO.setFileCnt(Integer.toString(fileCount));
|
||||||
|
|
||||||
|
|
||||||
|
return mjonMsgVO;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 그림 문자 발송 처리 메서드
|
// 그림 문자 발송 처리 메서드
|
||||||
|
|||||||
@ -42,6 +42,7 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
@ -50,6 +51,7 @@ import org.springframework.validation.BindingResult;
|
|||||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import org.springframework.web.bind.support.SessionStatus;
|
import org.springframework.web.bind.support.SessionStatus;
|
||||||
@ -58,6 +60,8 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
|
|||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||||
|
|
||||||
|
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.psl.dataaccess.util.EgovMap;
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
@ -65,6 +69,7 @@ import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
|||||||
import itn.com.cmm.EgovMessageSource;
|
import itn.com.cmm.EgovMessageSource;
|
||||||
import itn.com.cmm.JsonResult;
|
import itn.com.cmm.JsonResult;
|
||||||
import itn.com.cmm.LoginVO;
|
import itn.com.cmm.LoginVO;
|
||||||
|
import itn.com.cmm.MjonMsgTabulVO;
|
||||||
import itn.com.cmm.service.EgovFileMngService;
|
import itn.com.cmm.service.EgovFileMngService;
|
||||||
import itn.com.cmm.service.EgovFileMngUtil;
|
import itn.com.cmm.service.EgovFileMngUtil;
|
||||||
import itn.com.cmm.service.FileVO;
|
import itn.com.cmm.service.FileVO;
|
||||||
@ -2792,7 +2797,7 @@ public class MjonMsgDataController {
|
|||||||
imgMsgVO.setRep4List(imgRep4);
|
imgMsgVO.setRep4List(imgRep4);
|
||||||
|
|
||||||
//개별단가 계산하기
|
//개별단가 계산하기
|
||||||
String eachPrice = imgMsgVO.getpPrice();
|
String eachPrice = imgMsgVO.getPPrice();
|
||||||
|
|
||||||
//api 서버에서 pPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가
|
//api 서버에서 pPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가
|
||||||
if(eachPrice == null) {
|
if(eachPrice == null) {
|
||||||
@ -2815,7 +2820,7 @@ public class MjonMsgDataController {
|
|||||||
eachPrice = mjonMsgVO.getP2Price();
|
eachPrice = mjonMsgVO.getP2Price();
|
||||||
|
|
||||||
}else if(fileCount == 1) {//그림 이미지가 1개
|
}else if(fileCount == 1) {//그림 이미지가 1개
|
||||||
eachPrice = mjonMsgVO.getpPrice();
|
eachPrice = mjonMsgVO.getPPrice();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2843,7 +2848,7 @@ public class MjonMsgDataController {
|
|||||||
shortMsgVO.setRep4List(shortRep4);
|
shortMsgVO.setRep4List(shortRep4);
|
||||||
|
|
||||||
//개별단가 계산하기
|
//개별단가 계산하기
|
||||||
String eachPrice = shortMsgVO.getsPrice();
|
String eachPrice = shortMsgVO.getSPrice();
|
||||||
|
|
||||||
//api 서버에서 sPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가
|
//api 서버에서 sPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가
|
||||||
if(eachPrice == null) {
|
if(eachPrice == null) {
|
||||||
@ -2866,7 +2871,7 @@ public class MjonMsgDataController {
|
|||||||
eachPrice = mjonMsgVO.getP2Price();
|
eachPrice = mjonMsgVO.getP2Price();
|
||||||
|
|
||||||
}else if(fileCount == 1) {//그림 이미지가 1개
|
}else if(fileCount == 1) {//그림 이미지가 1개
|
||||||
eachPrice = mjonMsgVO.getpPrice();
|
eachPrice = mjonMsgVO.getPPrice();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2902,7 +2907,7 @@ public class MjonMsgDataController {
|
|||||||
* 그림문자의 경우 이로직을 타지 않지만 혹시 몰라서 추가해놓음
|
* 그림문자의 경우 이로직을 타지 않지만 혹시 몰라서 추가해놓음
|
||||||
* */
|
* */
|
||||||
|
|
||||||
String eachPrice = longMsgVO.getmPrice();
|
String eachPrice = longMsgVO.getMPrice();
|
||||||
|
|
||||||
//api 서버에서 mPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가
|
//api 서버에서 mPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가
|
||||||
if(eachPrice == null) {
|
if(eachPrice == null) {
|
||||||
@ -2920,7 +2925,7 @@ public class MjonMsgDataController {
|
|||||||
eachPrice = mjonMsgVO.getP2Price();
|
eachPrice = mjonMsgVO.getP2Price();
|
||||||
|
|
||||||
}else if(fileCount == 1) {//그림 이미지가 1개
|
}else if(fileCount == 1) {//그림 이미지가 1개
|
||||||
eachPrice = mjonMsgVO.getpPrice();
|
eachPrice = mjonMsgVO.getPPrice();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3159,14 +3164,19 @@ public class MjonMsgDataController {
|
|||||||
* @return "/web/mjon/msgdata/sendMsgDataAjax.do"
|
* @return "/web/mjon/msgdata/sendMsgDataAjax.do"
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value= {"/web/mjon/msgdata/sendMsgDataAjax_advc.do"})
|
|
||||||
public ResponseEntity<StatusResponse> sendMsgData_advc(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO,
|
@RequestMapping(value = "/web/mjon/msgdata/sendMsgDataAjax_advc.do")
|
||||||
RedirectAttributes redirectAttributes,
|
public ResponseEntity<StatusResponse> sendMsgData_advc(
|
||||||
|
@RequestBody MjonMsgVO mjonMsgVO,
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
ModelMap model) throws Exception {
|
ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
// 디버깅 출력
|
||||||
|
System.out.println("mjonMsgVO : " + mjonMsgVO.getMjonMsgTabulListVO().toString());
|
||||||
|
System.out.println("mjonMsgVO : " + mjonMsgVO.getMjonMsgTabulListVO().size());
|
||||||
|
|
||||||
return ResponseEntity.ok().body(mjonMsgDataService.sendMsgData_advc(mjonMsgVO, request)) ;
|
return ResponseEntity.ok().body(mjonMsgDataService.sendMsgData_advc(mjonMsgVO, request)) ;
|
||||||
|
// return null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -31,7 +31,7 @@
|
|||||||
<logger name="org.quartz.core.QuartzSchedulerThread" level="OFF"></logger>
|
<logger name="org.quartz.core.QuartzSchedulerThread" level="OFF"></logger>
|
||||||
<logger name="log4jdbc.debug" level="OFF"></logger>
|
<logger name="log4jdbc.debug" level="OFF"></logger>
|
||||||
|
|
||||||
<Root level="OFF">
|
<Root level="DEBUG">
|
||||||
<AppenderRef ref="console" />
|
<AppenderRef ref="console" />
|
||||||
</Root>
|
</Root>
|
||||||
|
|
||||||
|
|||||||
@ -3777,7 +3777,9 @@ function getMjMsgSentListAll(pageNo) {
|
|||||||
<form id="msgForm" name="msgForm" method="post">
|
<form id="msgForm" name="msgForm" method="post">
|
||||||
<input type="hidden" id="msgType" name="msgType" value="4" /><!-- 문자 종류 : 단문 - 4, 장문/그림 - 6 -->
|
<input type="hidden" id="msgType" name="msgType" value="4" /><!-- 문자 종류 : 단문 - 4, 장문/그림 - 6 -->
|
||||||
<input type="hidden" id="imgFilePath" name="imgFilePath" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 -->
|
<input type="hidden" id="imgFilePath" name="imgFilePath" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 -->
|
||||||
|
<input type="hidden" id="imgFilePathAdvc" name="imgFilePathAdvc" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 -->
|
||||||
<input type="hidden" id="imgFileId" name="imgFileId" value="" /><!-- 선택 이미지 파일 아이디 정보 , 로 구분 최대 3장까지 -->
|
<input type="hidden" id="imgFileId" name="imgFileId" value="" /><!-- 선택 이미지 파일 아이디 정보 , 로 구분 최대 3장까지 -->
|
||||||
|
<input type="hidden" id="imgFileIdAdvc" name="imgFileIdAdvc" value="" /><!-- 선택 이미지 파일 아이디 정보 , 로 구분 최대 3장까지 -->
|
||||||
<input type="hidden" id="fileCnt" name="fileCnt" value="0" /><!-- 첨부파일 추가 갯수 -->
|
<input type="hidden" id="fileCnt" name="fileCnt" value="0" /><!-- 첨부파일 추가 갯수 -->
|
||||||
<input type="hidden" id="callToList" name="callToList" value=""/><!-- 수신자 전화번호 리스트 -->
|
<input type="hidden" id="callToList" name="callToList" value=""/><!-- 수신자 전화번호 리스트 -->
|
||||||
<input type="hidden" id="callFrom" name="callFrom" value=""/> <!-- 발신자 전화번호 -->
|
<input type="hidden" id="callFrom" name="callFrom" value=""/> <!-- 발신자 전화번호 -->
|
||||||
@ -3794,6 +3796,7 @@ function getMjMsgSentListAll(pageNo) {
|
|||||||
<input type="hidden" id="rep3List" name="rep3List" value=""/><!-- 문자발송 문자 치환3 리스트 -->
|
<input type="hidden" id="rep3List" name="rep3List" value=""/><!-- 문자발송 문자 치환3 리스트 -->
|
||||||
<input type="hidden" id="rep4List" name="rep4List" value=""/><!-- 문자발송 문자 치환4 리스트 -->
|
<input type="hidden" id="rep4List" name="rep4List" value=""/><!-- 문자발송 문자 치환4 리스트 -->
|
||||||
<input type="hidden" name="templateYn" />
|
<input type="hidden" name="templateYn" />
|
||||||
|
<input type="hidden" name="templateYnAdvc" />
|
||||||
<input type="hidden" id="sPrice" name="sPrice" value="<c:out value="${shortPrice}"/>"/><!-- 단문문자 단가 -->
|
<input type="hidden" id="sPrice" name="sPrice" value="<c:out value="${shortPrice}"/>"/><!-- 단문문자 단가 -->
|
||||||
<input type="hidden" id="mPrice" name="mPrice" value="<c:out value="${longPrice}"/>"/><!-- 장문문자 단가 -->
|
<input type="hidden" id="mPrice" name="mPrice" value="<c:out value="${longPrice}"/>"/><!-- 장문문자 단가 -->
|
||||||
<input type="hidden" id="pPrice" name="pPrice" value="<c:out value="${picturePrice}"/>"/><!-- 그림문자 단가 -->
|
<input type="hidden" id="pPrice" name="pPrice" value="<c:out value="${picturePrice}"/>"/><!-- 그림문자 단가 -->
|
||||||
@ -4055,7 +4058,7 @@ function getMjMsgSentListAll(pageNo) {
|
|||||||
placeholder="번호를 입력하세요"
|
placeholder="번호를 입력하세요"
|
||||||
onfocus="this.placeholder=''"
|
onfocus="this.placeholder=''"
|
||||||
onblur="this.placeholder='번호를 입력하세요'"
|
onblur="this.placeholder='번호를 입력하세요'"
|
||||||
style="width:340px;"></textarea>
|
style="width:340px;">01083584250</textarea>
|
||||||
<!-- <button type="button" class="btnType btnType6">번호추가</button> -->
|
<!-- <button type="button" class="btnType btnType6">번호추가</button> -->
|
||||||
<div class="btn_popup_wrap">
|
<div class="btn_popup_wrap">
|
||||||
<button type="button" class="btnType btnType6 btn_add_number addCallToF">번호추가<i class="qmMark"></i></button>
|
<button type="button" class="btnType btnType6 btn_add_number addCallToF">번호추가<i class="qmMark"></i></button>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1055,10 +1055,13 @@ function fn_sendMsgData(){
|
|||||||
var totPriceOnly = stringReplaceAll(form.totPrice.value, ",", "");
|
var totPriceOnly = stringReplaceAll(form.totPrice.value, ",", "");
|
||||||
var userMoneyOnly = stringReplaceAll(form.myPrice.value, ",", "");
|
var userMoneyOnly = stringReplaceAll(form.myPrice.value, ",", "");
|
||||||
|
|
||||||
|
// test 주석
|
||||||
|
/*
|
||||||
if(parseFloat(userMoneyOnly) < parseFloat(totPriceOnly)){
|
if(parseFloat(userMoneyOnly) < parseFloat(totPriceOnly)){
|
||||||
alert("문자 발송에 필요한 회원님의 보유 잔액이 부족 합니다.");
|
alert("문자 발송에 필요한 회원님의 보유 잔액이 부족 합니다.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
// 폼 유효성 검사
|
// 폼 유효성 검사
|
||||||
if (!validateForm(form)) return false;
|
if (!validateForm(form)) return false;
|
||||||
@ -1075,81 +1078,41 @@ function fn_sendMsgData(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//MJ_MSG_GROUP_DATA 누락데이터 체크
|
|
||||||
//if (getMsgGroupDataErrorCheck() == false) {
|
|
||||||
// alert("고객님께서 발송한 최근문자가 발송결과에 표시되지않아, 문자발송이 임시로 차단되었습니다.\n문자온 고객센터에 문의해주세요.");
|
|
||||||
// return false;
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
if(!confirm("문자를 전송하시겠습니까?")){
|
||||||
|
|
||||||
//광고 문자 내용 합쳐주기
|
|
||||||
var adverYn = $("input[name='send_adYn']:checked").val();
|
|
||||||
if(adverYn == 'Y'){
|
|
||||||
form.msgKind.value = "A"; //광고문자 종류 설정
|
|
||||||
}else{
|
|
||||||
form.msgKind.value = "N"; //일반문자 종류 설정
|
|
||||||
}
|
|
||||||
|
|
||||||
//수신번호 리스트 체크하기
|
|
||||||
var numCnt = 0;
|
|
||||||
var nameList = []; //치환문자 이름
|
|
||||||
var phoneNum = []; //받는사람
|
|
||||||
var rep1List = []; //치환문자1
|
|
||||||
var rep2List = []; //치환문자2
|
|
||||||
var rep3List = []; //치환문자3
|
|
||||||
var rep4List = []; //치환문자4
|
|
||||||
|
|
||||||
var selectedData = tableL.getRows();
|
|
||||||
|
|
||||||
/*
|
|
||||||
var reserYn = $("input[name=reserYn]:checked").val(); // 예약 발송 여부 확인
|
|
||||||
|
|
||||||
if(reserYn == 'Y'){
|
|
||||||
|
|
||||||
var date = $(".resDate").val();//form.msgResDate.value;
|
|
||||||
var hour = form.msgResHour.value;
|
|
||||||
var min = form.msgResMin.value;
|
|
||||||
|
|
||||||
if(date == ""){
|
|
||||||
|
|
||||||
alert("예약전송 날짜를 선택해 주세요.");
|
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}else{
|
//총 결제금액 천단위 콤마 삭제 후 전송
|
||||||
|
var totPrice = form.totPrice.value;
|
||||||
|
form.totPrice.value = totPrice.replace(",","");
|
||||||
|
|
||||||
var now = new Date();
|
|
||||||
var reqDate = date + " " + hour + ":" + min + ":00";
|
|
||||||
var gapDate = getGapDayTime(date, hour, min);
|
|
||||||
|
|
||||||
if(gapDate < 0){ // 음수이면 이전날짜, 크면 이후 날짜.
|
//이벤트 진행중 회원의 경우 이벤트 잔여금액 비교 처리 필요.
|
||||||
alert("예약 날짜는 현재 시간 이후의 날짜 및 시간을 선택해 주세요.");
|
//이벤트 캐시가 부족한 경우 이벤트 캐시로 발송 가능한 만큼만 이벤트 금액으로 발송 처리해줌.
|
||||||
|
//이 후 나머지 발송 건수는 이벤트 캐시가 아닌 일반 단가로 발송 처리를 진행 함.
|
||||||
|
var eventStatus = form.eventStatus.value;
|
||||||
|
|
||||||
|
if(eventStatus == 'Y'){ //이벤트 진행 대상자이면 문자종류에 이벤트로 구분
|
||||||
|
|
||||||
|
form.eventYn.value = "Y"; //이벤트문자 종류 설정
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var eventRemainCash = parseFloat(form.eventRemainCash.value);
|
||||||
|
console.log('eventStatus : ', eventStatus);
|
||||||
|
|
||||||
|
if(eventStatus == 'Y'
|
||||||
|
&& parseFloat(eventRemainCash) < parseFloat(totPriceOnly))
|
||||||
|
{
|
||||||
|
if(!confirm("고객님의 이벤트 캐시 잔액(" + eventRemainCash + "원) 부족으로 요청하신 문자("+numberWithCommas($selectedData.length)+"건)를 모두 발송할 수 없습니다. 이벤트 캐시 초과 건에 대해서는 일반 단가를 적용하여 발송하시겠습니까?")){
|
||||||
return false;
|
return false;
|
||||||
}else{
|
|
||||||
form.reqDate.value = reqDate; //예약일자 파라미터 저장
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}else{
|
console.log(' !!! imgFilePath : ', imgFilePath);
|
||||||
|
|
||||||
form.reqDate.value = "";
|
// img 처리 영역
|
||||||
|
|
||||||
} */
|
|
||||||
|
|
||||||
/*
|
|
||||||
var conLeng = conByteLeng($('#smsTxt').val()); // 내용 문자 입력 바이트 수 계산하기
|
|
||||||
|
|
||||||
if(conLeng > 2000){
|
|
||||||
|
|
||||||
alert("문자 내용은 2000byte를 넘을 수 없습니다.");
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
console.log(' : 전송하시겠습니까 : ')
|
|
||||||
if(confirm("문자를 전송하시겠습니까?")){
|
|
||||||
imgFilePath = [];
|
imgFilePath = [];
|
||||||
$('.thumb_wrap').find('.thumb_img').each(function(idx, el) {
|
$('.thumb_wrap').find('.thumb_img').each(function(idx, el) {
|
||||||
if($("#delLi"+idx).hasClass("Template")){
|
if($("#delLi"+idx).hasClass("Template")){
|
||||||
@ -1185,6 +1148,7 @@ function fn_sendMsgData(){
|
|||||||
async: false,
|
async: false,
|
||||||
success: function (returnData, status) {
|
success: function (returnData, status) {
|
||||||
if(status == 'success'){
|
if(status == 'success'){
|
||||||
|
console.log('returnData : ',returnData)
|
||||||
// imgFilePath 에 배열로 담아주기(이미지 순서대로)
|
// imgFilePath 에 배열로 담아주기(이미지 순서대로)
|
||||||
//console.log(imgFilePath);
|
//console.log(imgFilePath);
|
||||||
imgFilePath.push(returnData.filefullPath);
|
imgFilePath.push(returnData.filefullPath);
|
||||||
@ -1198,417 +1162,126 @@ function fn_sendMsgData(){
|
|||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if(imgFilePath.length != imgFileId.length){
|
if(imgFilePath.length != imgFileId.length){
|
||||||
//에디터 안거친 템플릿 이미지면 바로 src 때림
|
//에디터 안거친 템플릿 이미지면 바로 src 때림
|
||||||
imgFilePath.push($(el).attr("src"));
|
imgFilePath.push($(el).attr("src"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
form.imgFilePath.value = imgFilePath; // 저장한 이미지 경로 담아주기
|
|
||||||
form.callToList.value = phoneNum; //수신자번호 리스트 저장해주기
|
|
||||||
form.callFrom.value = removeDash(form.callFromList.value); // 발신번호 대쉬(-) 문자 없애주기
|
|
||||||
form.reserveYn.value = reserYn; // 즉시 / 예약 문자 선택 여부
|
|
||||||
form.templateYn.value = templateYn;
|
|
||||||
form.imgFileId.value = imgFileId;
|
|
||||||
// form.nameList.value = nameList;
|
|
||||||
// form.rep1List.value = rep1List;
|
|
||||||
// form.rep2List.value = rep2List;
|
|
||||||
// form.rep3List.value = rep3List;
|
|
||||||
// form.rep4List.value = rep4List;
|
|
||||||
|
|
||||||
//총 결제금액 천단위 콤마 삭제 후 전송
|
//form.reserveYn.value = reserYn; // 즉시 / 예약 문자 선택 여부
|
||||||
var totPrice = form.totPrice.value;
|
form.templateYnAdvc.value = templateYn;
|
||||||
totPrice = totPrice.replace(",","");
|
console.log('imgFilePath : ', imgFilePath);
|
||||||
form.totPrice.value = totPrice;
|
console.log('imgFilePath : ', JSON.stringify(imgFilePath));
|
||||||
|
console.log('imgFileId : ', imgFileId);
|
||||||
|
console.log('imgFileId : ', JSON.stringify(imgFileId));
|
||||||
|
form.imgFilePathAdvc.value = imgFilePath;
|
||||||
|
form.imgFileIdAdvc.value = imgFileId;
|
||||||
|
// form.imgFilePath.value = JSON.stringify(imgFilePath).replace(/\\/g, '');
|
||||||
|
// form.imgFileId.value = JSON.stringify(imgFileId).replace(/\\/g, '');
|
||||||
|
form.callFrom.value = removeDash($('#callFromList').val()); // 발신번호 대쉬(-) 문자 없애주기
|
||||||
|
|
||||||
//문자내용이 입력된 경우 스팸 필터링 실행
|
//광고 종류 설정
|
||||||
if(!form.smsTxtArea.value == "" && exceptSpamYn == "N"){
|
var adverYn = $("input[name='send_adYn']:checked").val();
|
||||||
console.log(' : selectSpamTxtChkAjax : ')
|
if(adverYn == 'Y'){
|
||||||
var spmData = new FormData(form);
|
form.msgKind.value = "A"; //광고문자 종류 설정
|
||||||
url = "/web/mjon/msgdata/selectSpamTxtChkAjax.do";
|
}else{
|
||||||
|
form.msgKind.value = "N"; //일반문자 종류 설정
|
||||||
|
}
|
||||||
|
|
||||||
|
//발송 Ajax 호출해주기
|
||||||
|
sendMsgAjax_advc();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function sendMsgAjax_advc(){
|
||||||
|
// 타블레이터 호출
|
||||||
|
var $selectedData = tableL.getData(); // 데이터 가져오기
|
||||||
|
|
||||||
|
// 폼 데이터를 배열로 직렬화
|
||||||
|
var form = $('#msgForm');
|
||||||
|
var formDataArray = form.serializeArray();
|
||||||
|
|
||||||
|
// 배열을 객체로 변환
|
||||||
|
var formData = {};
|
||||||
|
$.each(formDataArray, function(index, field) {
|
||||||
|
formData[field.name] = field.value;
|
||||||
|
});
|
||||||
|
|
||||||
|
// 빈 값 제거
|
||||||
|
removeEmptyValues(formData);
|
||||||
|
|
||||||
|
// 선택된 데이터 추가
|
||||||
|
formData["mjonMsgTabulListVO"] = $selectedData;
|
||||||
|
|
||||||
|
// JSON 데이터 확인
|
||||||
|
console.log("최종 formData:", JSON.stringify(formData));
|
||||||
|
|
||||||
|
|
||||||
|
var url = "/web/mjon/msgdata/sendMsgDataAjax_advc.do";
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: url,
|
url: url,
|
||||||
data: spmData,
|
data: JSON.stringify(formData),
|
||||||
|
contentType: 'application/json',
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
async: false,
|
success: function (data) {
|
||||||
processData: false,
|
console.log('data : ', data);
|
||||||
contentType: false,
|
/* message:"특정문구 일괄변환 치환문자 데이터가 없습니다."
|
||||||
cache: false,
|
status:"BAD_REQUEST" */
|
||||||
success: function (returnData, status) {
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
var status = data.status;
|
||||||
|
if("OK" == status){
|
||||||
|
|
||||||
if("fail" == returnData.result){
|
var smsCnt = Number(data.object.resultSts);
|
||||||
|
var blockCnt = Number(data.object.resultBlockSts);
|
||||||
|
|
||||||
alert(returnData.message);
|
smsCnt = Number(smsCnt) + Number(paramSmsCnt);
|
||||||
return false;
|
blockCnt = Number(blockCnt) + Number(paramBlockCnt);
|
||||||
|
|
||||||
}else if("loginFail" == returnData.result){
|
if((smsCnt + blockCnt) == 0){
|
||||||
|
|
||||||
alert(returnData.message);
|
$('.pop_msg_spam').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
|
||||||
return false;
|
$('.pop_msg_spam .msg_text').html("문자 발송(예약)에 실패하였습니다.<br/> 다시 시도해주세요. <br/>* 정상적으로 발송 시도하였으나 실패하신 경우 혹시 문자내용에 사용불가 이모지 <br/>또는 복사-붙여넣기로 인한 보이지 않는 특수문자가 포함되었는지 확인 후 다시 시도해주세요.");
|
||||||
|
$('.mask').addClass('on');
|
||||||
}else if("spams" == returnData.result){
|
|
||||||
|
|
||||||
// var spmFilterTxt = returnData.spmFilterTxt;
|
|
||||||
spamStatus = true;
|
|
||||||
|
|
||||||
// form.spamKeyword.value = spmFilterTxt;
|
|
||||||
form.spamStatus.value='Y';
|
|
||||||
}else{
|
|
||||||
form.spamKeyword.value = '';
|
|
||||||
form.spamStatus.value='N';
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if(status== 'fail'){
|
|
||||||
alert(returnData.message);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error: function (e) { alert("문자 발송에 실패하였습니다."); console.log("ERROR : ", e); return false;}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//이벤트 진행중 회원의 경우 이벤트 잔여금액 비교 처리 필요.
|
|
||||||
//이벤트 캐시가 부족한 경우 이벤트 캐시로 발송 가능한 만큼만 이벤트 금액으로 발송 처리해줌.
|
|
||||||
//이 후 나머지 발송 건수는 이벤트 캐시가 아닌 일반 단가로 발송 처리를 진행 함.
|
|
||||||
var eventStatus = form.eventStatus.value;
|
|
||||||
|
|
||||||
if(eventStatus == 'Y'){ //이벤트 진행 대상자이면 문자종류에 이벤트로 구분
|
|
||||||
|
|
||||||
form.eventYn.value = "Y"; //이벤트문자 종류 설정
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
var eventRemainCash = parseFloat(form.eventRemainCash.value);
|
|
||||||
console.log('eventStatus : ', eventStatus);
|
|
||||||
|
|
||||||
if(eventStatus == 'Y'){
|
|
||||||
|
|
||||||
if(parseFloat(eventRemainCash) < parseFloat(totPriceOnly)){
|
|
||||||
|
|
||||||
if(confirm("고객님의 이벤트 캐시 잔액(" + eventRemainCash + "원) 부족으로 요청하신 문자("+numberWithCommas(phoneNum.length)+"건)를 모두 발송할 수 없습니다. 이벤트 캐시 초과 건에 대해서는 일반 단가를 적용하여 발송하시겠습니까?")){
|
|
||||||
|
|
||||||
var smsTxtArea = $('#smsTxtArea').val();
|
|
||||||
var evnMsgType = $("#msgType").val();
|
|
||||||
var evnEachPrice = $("#eachPrice").val(); //form 에 저장된 이벤트 개별 단가 불러오기
|
|
||||||
var evnSendCnt = Math.floor(eventRemainCash / evnEachPrice);
|
|
||||||
var norEachPrice = 0;
|
|
||||||
var imgCnt = $("#imgCnt").val(); //그림 이미지 갯수
|
|
||||||
var txtReplYn = $("#txtReplYn").val(); //치환문자 포함 여부
|
|
||||||
var evnPhoneNumCnt = Number($("#evnPhoneNumCnt").val()); //치환문자 체크하면서 단/장문 건수 카운팅하면서 이벤트 금액으로 발송가능한 수신자 갯수 정보
|
|
||||||
var myPrice = parseFloat($("#myPrice").val()); //회원보유 잔여 캐시 금액
|
|
||||||
|
|
||||||
//수신목록 저장 배열 변수
|
|
||||||
var evnPhoneNum = []; //이벤트 단가 받는사람
|
|
||||||
var norPhoneNum = []; //일반 단가 받는 사람
|
|
||||||
|
|
||||||
//치환문자 포함 문자 저장 배열 변수(이벤트 문자 저장)
|
|
||||||
var evnName = [];
|
|
||||||
var evnRep1 = [];
|
|
||||||
var evnRep2 = [];
|
|
||||||
var evnRep3 = [];
|
|
||||||
var evnRep4 = [];
|
|
||||||
|
|
||||||
//치환문자 포함 문자 저장 배열 변수(일반 문자 저장)
|
|
||||||
var norName = [];
|
|
||||||
var norRep1 = [];
|
|
||||||
var norRep2 = [];
|
|
||||||
var norRep3 = [];
|
|
||||||
var norRep4 = [];
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Desc: 1. 그림, 치환, 일반 문자에 대해서 각각 이벤트 단가로 전송할 리스트 와 일반단가로 전송할 리스트를 분리 하는 로직
|
|
||||||
2. 그림 및 일반 문자는 단순 이벤트 금액으로 보낼수 있는 건수를 계산하여 리스트[0] 부터 발송 건수만큼 추출하여 evnPhoneNum 배열에 입력 후 이벤트 금액으로 발송 진행
|
|
||||||
3. 이벤트 발송이 완료되면, 이벤트 건수를 제외한 나머지 건수를 norPhoneNum 배열에 입력 후 일반 금액으로 발송 진행
|
|
||||||
4. 일반 발송시에 전송 단가(eachPrice), 전체금액(totPrice) 등 변수 정보 변경
|
|
||||||
=====
|
|
||||||
5. 그림문자가 아닌 치환문자인 경우 치환 처리를 진행하면서 단문, 장문을 구분하고 이때 이벤트 금액에서 단문, 장문 가격을 차감하여 보낼 수량을 카운팅 함.
|
|
||||||
6. 치환 체크가 완료되면 치환시 나온 카운트 갯수만큼 이벤트 배열과 일반 배열에 분리처리 후 전송함.
|
|
||||||
7. 이벤트 발송 처리후 일반 단가 문자 발송시 보유 캐시 부족시 팝업으로 현재까지 발송된 이벤트 건수와 발송하지 못하는 일반단가 건수 정보를 표시해줌. 문자 발송은 중단 된다.
|
|
||||||
Param Array : evnPhoneNum, norPhoneNum
|
|
||||||
function : getNorEachPrice - 메세지 타입(msgType)에 따른 단문, 장문, 그림문자 개별 단가 금액 확인
|
|
||||||
sendMsgAjax - 문자 발송 요청 Ajax 처리
|
|
||||||
*/
|
|
||||||
|
|
||||||
//그림문자인 경우
|
|
||||||
if(imgCnt > 0){
|
|
||||||
|
|
||||||
//이벤트 가격으로 전송 할 받는 사람 리스트 저장처리
|
|
||||||
for(var i=0; i< evnSendCnt; i++){
|
|
||||||
evnPhoneNum[i]= phoneNum[i];
|
|
||||||
|
|
||||||
//그림문자에 치환문자가 포함된 경우
|
|
||||||
if(txtReplYn == 'Y'){
|
|
||||||
|
|
||||||
evnPhoneNum[i] = phoneNum[i];
|
|
||||||
evnName[i] = nameList[i];
|
|
||||||
evnRep1[i] = rep1List[i];
|
|
||||||
evnRep2[i] = rep2List[i];
|
|
||||||
evnRep3[i] = rep3List[i];
|
|
||||||
evnRep4[i] = rep4List[i];
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//일반 가격으로 전송 할 받는 사람 리스트 저장처리
|
|
||||||
for(var j=0; j < phoneNum.length - evnSendCnt; j++){
|
|
||||||
norPhoneNum[j]= phoneNum[j + evnSendCnt];
|
|
||||||
|
|
||||||
//그림문자에 치환문자가 포함된 경우
|
|
||||||
if(txtReplYn == 'Y'){
|
|
||||||
|
|
||||||
norPhoneNum[j]= phoneNum[j + evnSendCnt];
|
|
||||||
norName[j] = nameList[j + evnSendCnt];
|
|
||||||
norRep1[j] = rep1List[j + evnSendCnt];
|
|
||||||
norRep2[j] = rep2List[j + evnSendCnt];
|
|
||||||
norRep3[j] = rep3List[j + evnSendCnt];
|
|
||||||
norRep4[j] = rep4List[j + evnSendCnt];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
}else if(txtReplYn == 'Y'){//치환 문자가 있는 경우 , 그림문자에 치환이 있는 경우 그림문자 가격으로 발송
|
|
||||||
|
|
||||||
//이벤트 가격으로 전송 할 받는 사람 리스트 저장처리
|
|
||||||
for(var i=0; i< evnPhoneNumCnt; i++){
|
|
||||||
evnPhoneNum[i] = phoneNum[i];
|
|
||||||
evnName[i] = nameList[i];
|
|
||||||
evnRep1[i] = rep1List[i];
|
|
||||||
evnRep2[i] = rep2List[i];
|
|
||||||
evnRep3[i] = rep3List[i];
|
|
||||||
evnRep4[i] = rep4List[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
//일반 가격으로 전송 할 받는 사람 리스트 저장처리
|
|
||||||
for(var j=0; j < phoneNum.length - evnPhoneNumCnt; j++){
|
|
||||||
norPhoneNum[j]= phoneNum[j + evnPhoneNumCnt];
|
|
||||||
norName[j] = nameList[j + evnPhoneNumCnt];
|
|
||||||
norRep1[j] = rep1List[j + evnPhoneNumCnt];
|
|
||||||
norRep2[j] = rep2List[j + evnPhoneNumCnt];
|
|
||||||
norRep3[j] = rep3List[j + evnPhoneNumCnt];
|
|
||||||
norRep4[j] = rep4List[j + evnPhoneNumCnt];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}else{//치환문자 없는 경우 처리
|
|
||||||
|
|
||||||
//이벤트 가격으로 전송 할 받는 사람 리스트 저장처리
|
|
||||||
for(var i=0; i< evnSendCnt; i++){
|
|
||||||
evnPhoneNum[i]= phoneNum[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
//일반 가격으로 전송 할 받는 사람 리스트 저장처리
|
|
||||||
for(var j=0; j < phoneNum.length - evnSendCnt; j++){
|
|
||||||
norPhoneNum[j]= phoneNum[j + evnSendCnt];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
var orgShortMsgCnt = $("#shortMsgCnt").val(); //단문 총 건수 백업
|
|
||||||
var orgLongMsgCnt = $("#longMsgCnt").val(); //장문 총 건수 백업
|
|
||||||
//이벤트 단가 문자 전송 처리 시작
|
|
||||||
if(evnPhoneNum.length > 0){
|
|
||||||
|
|
||||||
form.callToList.value = evnPhoneNum; //수신자번호 리스트 저장해주기
|
|
||||||
form.totPrice.value = evnEachPrice * evnSendCnt; //이벤트 단가 총 결제금액 셋팅해주기
|
|
||||||
form.eventStatus.value = 'Y';
|
|
||||||
form.eventYn.value = 'Y';
|
|
||||||
|
|
||||||
|
|
||||||
var evnTotPrice = parseFloat(form.totPrice.value);
|
|
||||||
|
|
||||||
if(myPrice < evnTotPrice){
|
|
||||||
|
|
||||||
alert("문자 발송에 필요한 회원님의 보유 잔액이 부족 합니다.evn");
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
myPrice = myPrice - evnTotPrice;
|
$('.pop_msg_success').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
|
||||||
|
//예약발송 건의 경우 결과 팝업 문구 변경
|
||||||
|
if(reserYn == 'Y'){
|
||||||
|
$('.pop_msg_success .msg_text').html("예약 성공 : <strong>"+ smsCnt + "</strong>건,수신거부 : <span>" + blockCnt + "</span>건의<br>문자가 예약 되었습니다.");
|
||||||
|
}else{
|
||||||
|
$('.pop_msg_success .msg_text').html("발송 성공 : <strong>"+ smsCnt + "</strong>건,수신거부 : <span>" + blockCnt + "</span>건의<br>문자가 발송 되었습니다.");
|
||||||
|
}
|
||||||
|
|
||||||
|
$('.mask').addClass('on');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//치환문자가 있는 경우 변수 정보 담아주기(그림문자 아닌경우)
|
|
||||||
if(txtReplYn == 'Y' && imgCnt < 1){
|
|
||||||
|
|
||||||
var evnShortMsgCnt = $("#evnShortMsgCnt").val();
|
}else if("BAD_REQUEST" == status){
|
||||||
var evnLongMsgCnt = $("#evnLongMsgCnt").val();
|
|
||||||
|
|
||||||
form.shortMsgCnt.value = evnShortMsgCnt;
|
alert(data.message);
|
||||||
form.longMsgCnt.value = evnLongMsgCnt;
|
|
||||||
form.nameList.value = evnName;
|
|
||||||
form.rep1List.value = evnRep1;
|
|
||||||
form.rep2List.value = evnRep2;
|
|
||||||
form.rep3List.value = evnRep3;
|
|
||||||
form.rep4List.value = evnRep4;
|
|
||||||
|
|
||||||
}else if(txtReplYn == 'Y' && imgCnt > 0){//치환문자가 있는 경우 변수 정보 담아주기(그림문자인 경우)
|
|
||||||
|
|
||||||
form.nameList.value = evnName;
|
|
||||||
form.rep1List.value = evnRep1;
|
|
||||||
form.rep2List.value = evnRep2;
|
|
||||||
form.rep3List.value = evnRep3;
|
|
||||||
form.rep4List.value = evnRep4;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//이벤트 발송 실행 해주기
|
|
||||||
var form = document.msgForm;
|
|
||||||
|
|
||||||
var data = new FormData(form);
|
|
||||||
// url = "/web/mjon/msgdata/sendMsgDataAjax.do";
|
|
||||||
url = "/web/mjon/msgdata/sendMsgDataAjax_advc.do";
|
|
||||||
console.log('url :: ', url);
|
|
||||||
$.ajax({
|
|
||||||
type: "POST",
|
|
||||||
url: url,
|
|
||||||
data: data,
|
|
||||||
dataType:'json',
|
|
||||||
async: true,
|
|
||||||
processData: false,
|
|
||||||
contentType: false,
|
|
||||||
cache: false,
|
|
||||||
success: function (returnData, status) {
|
|
||||||
console.log('returnData : ', returnData);
|
|
||||||
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
|
||||||
if("fail" == returnData.result){
|
|
||||||
|
|
||||||
alert(returnData.message);
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}else if("loginFail" == returnData.result){
|
}else if("UNAUTHORIZED" == status){
|
||||||
|
|
||||||
alert(returnData.message);
|
alert(data.message);
|
||||||
|
//문자발송 URL Move
|
||||||
|
goMsgUrlMove();
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}else if("smsLengFail" == returnData.result){
|
}else if("NO_CONTENT" == status){
|
||||||
|
|
||||||
alert(returnData.message);
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}else if("imgSourceFail" == returnData.result){
|
|
||||||
|
|
||||||
$('.pop_msg_fails').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
|
$('.pop_msg_fails').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
|
||||||
$('.pop_msg_fails .msg_text').html(returnData.message);
|
$('.pop_msg_fails .msg_text').html(returnData.message);
|
||||||
$('.mask').addClass('on');
|
$('.mask').addClass('on');
|
||||||
|
|
||||||
}else if("spamKeyWordFail" == returnData.result){//스팸 및 스미싱 단어가 들어간 문자 발송시 회원 이용정지 처리
|
|
||||||
|
|
||||||
$('.pop_msg_spam').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
|
|
||||||
$('.pop_msg_spam .msg_text').html(returnData.message);
|
|
||||||
$('.mask').addClass('on');
|
|
||||||
|
|
||||||
}else if("statusFail" == returnData.result){
|
|
||||||
|
|
||||||
alert(returnData.message);
|
|
||||||
//문자발송 URL Move
|
|
||||||
goMsgUrlMove();
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}else{
|
|
||||||
|
|
||||||
var smsCnt = returnData.resultSts;
|
|
||||||
var blockCnt = returnData.resultBlockSts;
|
|
||||||
|
|
||||||
//이벤트 발송 처리가 완료 되면 나머지 일반 캐시로 발송할 문자 처리를 진행해 준다.
|
|
||||||
var norPhoneNumCnt = norPhoneNum.length;
|
|
||||||
if(norPhoneNumCnt > 0){
|
|
||||||
|
|
||||||
var norEachPrice = getNorEachPrice(evnMsgType); //일반 개별 단가 금액 셋팅해주기
|
|
||||||
|
|
||||||
form.callToList.value = norPhoneNum; //수신자번호 리스트 저장해주기
|
|
||||||
form.eachPrice.value = norEachPrice; //일반 개별 단가 금액 셋팅해주기
|
|
||||||
form.totPrice.value = norEachPrice * norPhoneNumCnt; //일반 단가 총 결제 금액 셋팅해주기
|
|
||||||
form.sPrice.value = $("#norsPrice").val();
|
|
||||||
form.mPrice.value = $("#normPrice").val();
|
|
||||||
form.pPrice.value = $("#norpPrice").val();
|
|
||||||
form.p2Price.value = $("#norp2Price").val();
|
|
||||||
form.p3Price.value = $("#norp3Price").val();
|
|
||||||
form.eventStatus.value = 'N';
|
|
||||||
form.eventYn.value = 'N';
|
|
||||||
|
|
||||||
var norTotPrice = parseFloat(form.totPrice.value);
|
|
||||||
|
|
||||||
if(myPrice < norTotPrice){//보유캐시 부족시 알림 레이어 팝업 보여주기, 발송된 이벤트 건수 및 미발송 일반 방송 건수 정보 표시해줌
|
|
||||||
|
|
||||||
var failMsg = "이벤트 캐시 잔액으로 발송한 문자("+smsCnt+"건)의 발송이 완료되었으나 일반 문자 발송("+norPhoneNumCnt+"건)에 필요한 회원님의 보유 잔액이 부족 합니다.";
|
|
||||||
|
|
||||||
$('.loading_layer').removeClass('active');
|
|
||||||
|
|
||||||
$('.pop_msg_fails').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
|
|
||||||
$('.pop_msg_fails .msg_text').html(failMsg);
|
|
||||||
$('.mask').addClass('on');
|
|
||||||
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//치환문자가 있는 경우 변수 정보 담아주기(그림문자가 아닌경우)
|
|
||||||
if(txtReplYn == 'Y' && imgCnt < 1){
|
|
||||||
|
|
||||||
//치환문자 단/장문 혼용된 경우 각 타입별 건수를 재 계산해준다.
|
|
||||||
//총 단/장문 각각 건수에서 이벤트로 발송한 건수를 빼준다.
|
|
||||||
var evnShortMsgCnt = $("#evnShortMsgCnt").val();
|
|
||||||
var evnLongMsgCnt = $("#evnLongMsgCnt").val();
|
|
||||||
|
|
||||||
//일반 장문/단문 발송 건수 계산해주기 총 건수에서 이벤트로 발송해준 건수를 빼준다.
|
|
||||||
var shortMsgCnt = Number(orgShortMsgCnt) - Number(evnShortMsgCnt);
|
|
||||||
var longMsgCnt = Number(orgLongMsgCnt) - Number(evnLongMsgCnt);
|
|
||||||
|
|
||||||
|
|
||||||
//계산 값이 음수로 나오는 경우 0건으로 간주한다.
|
|
||||||
if(shortMsgCnt <= 0){
|
|
||||||
|
|
||||||
shortMsgCnt = 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if(longMsgCnt <= 0){
|
|
||||||
|
|
||||||
longMsgCnt = 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
form.shortMsgCnt.value = shortMsgCnt;
|
|
||||||
form.longMsgCnt.value = longMsgCnt;
|
|
||||||
|
|
||||||
form.nameList.value = norName;
|
|
||||||
form.rep1List.value = norRep1;
|
|
||||||
form.rep2List.value = norRep2;
|
|
||||||
form.rep3List.value = norRep3;
|
|
||||||
form.rep4List.value = norRep4;
|
|
||||||
|
|
||||||
}else if(txtReplYn == 'Y' && imgCnt > 0){//치환문자가 있는 경우 변수 정보 담아주기(그림문자인 경우)
|
|
||||||
|
|
||||||
form.nameList.value = norName;
|
|
||||||
form.rep1List.value = norRep1;
|
|
||||||
form.rep2List.value = norRep2;
|
|
||||||
form.rep3List.value = norRep3;
|
|
||||||
form.rep4List.value = norRep4;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
sendMsgAjax(smsCnt, blockCnt);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if(status== 'fail'){
|
|
||||||
alert(returnData.message);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
beforeSend : function(xmlHttpRequest) {
|
beforeSend : function(xmlHttpRequest) {
|
||||||
//로딩창 show
|
//로딩창 show
|
||||||
@ -1616,67 +1289,13 @@ function fn_sendMsgData(){
|
|||||||
},
|
},
|
||||||
complete : function(xhr, textStatus) {
|
complete : function(xhr, textStatus) {
|
||||||
//로딩창 hide
|
//로딩창 hide
|
||||||
//$('.loading_layer').removeClass('active');
|
$('.loading_layer').removeClass('active');
|
||||||
},
|
},
|
||||||
error: function (e) { alert("문자 발송에 실패하였습니다."); console.log("ERROR : ", e); }
|
error: function (e) { alert("문자 발송에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||||
});
|
});
|
||||||
|
|
||||||
}else{
|
|
||||||
|
|
||||||
//이벤트 건수로 발송 할 수 없는 경우 일반 캐시 단가로 발송처리하기
|
|
||||||
if(norPhoneNum.length > 0){
|
|
||||||
|
|
||||||
form.callToList.value = norPhoneNum; //수신자번호 리스트 저장해주기
|
|
||||||
form.eachPrice.value = getNorEachPrice(evnMsgType); //일반 개별 단가 금액 셋팅해주기
|
|
||||||
form.sPrice.value = $("#norsPrice").val();
|
|
||||||
form.mPrice.value = $("#normPrice").val();
|
|
||||||
form.pPrice.value = $("#norpPrice").val();
|
|
||||||
form.p2Price.value = $("#norp2Price").val();
|
|
||||||
form.p3Price.value = $("#norp3Price").val();
|
|
||||||
form.eventStatus.value = 'N';
|
|
||||||
form.eventYn.value = 'N';
|
|
||||||
|
|
||||||
sendMsgAjax_advc(0,0);
|
|
||||||
// sendMsgAjax(0,0);
|
|
||||||
|
|
||||||
}else{
|
|
||||||
|
|
||||||
alert("문자 전송 중 오류가 발생하였습니다.!!");
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}else{
|
|
||||||
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}else{
|
|
||||||
|
|
||||||
//발송 Ajax 호출해주기
|
|
||||||
sendMsgAjax_advc(0,0);
|
|
||||||
// sendMsgAjax(0,0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}else{
|
|
||||||
|
|
||||||
//발송 Ajax 호출해주기
|
|
||||||
sendMsgAjax_advc(0,0);
|
|
||||||
// sendMsgAjax(0,0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//폼 유효성 검사 함수
|
//폼 유효성 검사 함수
|
||||||
function validateForm(form) {
|
function validateForm(form) {
|
||||||
|
|
||||||
@ -1757,98 +1376,16 @@ function getNorEachPrice(evnMsgType){
|
|||||||
return norEachPrice;
|
return norEachPrice;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//빈 값이나 null 값을 제거하는 함수
|
||||||
function sendMsgAjax_advc(paramSmsCnt, paramBlockCnt){
|
function removeEmptyValues(obj) {
|
||||||
console.log('sendMsgAjax : ');
|
Object.keys(obj).forEach(function(key) {
|
||||||
var form = document.msgForm;
|
if (obj[key] === null || obj[key] === '') {
|
||||||
var reserYn = $("#reserveYn").val();
|
delete obj[key];
|
||||||
|
|
||||||
var data = new FormData(form);
|
|
||||||
// url = "/web/mjon/msgdata/sendMsgDataAjax.do";
|
|
||||||
url = "/web/mjon/msgdata/sendMsgDataAjax_advc.do";
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
type: "POST",
|
|
||||||
url: url,
|
|
||||||
data: data,
|
|
||||||
dataType:'json',
|
|
||||||
async: true,
|
|
||||||
processData: false,
|
|
||||||
contentType: false,
|
|
||||||
cache: false,
|
|
||||||
success: function (data) {
|
|
||||||
console.log('data : ', data);
|
|
||||||
/* message:"특정문구 일괄변환 치환문자 데이터가 없습니다."
|
|
||||||
status:"BAD_REQUEST" */
|
|
||||||
|
|
||||||
var status = data.status;
|
|
||||||
// if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
|
||||||
if("OK" == status){
|
|
||||||
|
|
||||||
var smsCnt = Number(data.object.resultSts);
|
|
||||||
var blockCnt = Number(data.object.resultBlockSts);
|
|
||||||
|
|
||||||
smsCnt = Number(smsCnt) + Number(paramSmsCnt);
|
|
||||||
blockCnt = Number(blockCnt) + Number(paramBlockCnt);
|
|
||||||
|
|
||||||
if((smsCnt + blockCnt) == 0){
|
|
||||||
|
|
||||||
$('.pop_msg_spam').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
|
|
||||||
$('.pop_msg_spam .msg_text').html("문자 발송(예약)에 실패하였습니다.<br/> 다시 시도해주세요. <br/>* 정상적으로 발송 시도하였으나 실패하신 경우 혹시 문자내용에 사용불가 이모지 <br/>또는 복사-붙여넣기로 인한 보이지 않는 특수문자가 포함되었는지 확인 후 다시 시도해주세요.");
|
|
||||||
$('.mask').addClass('on');
|
|
||||||
|
|
||||||
}else{
|
|
||||||
|
|
||||||
$('.pop_msg_success').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
|
|
||||||
//예약발송 건의 경우 결과 팝업 문구 변경
|
|
||||||
if(reserYn == 'Y'){
|
|
||||||
$('.pop_msg_success .msg_text').html("예약 성공 : <strong>"+ smsCnt + "</strong>건,수신거부 : <span>" + blockCnt + "</span>건의<br>문자가 예약 되었습니다.");
|
|
||||||
}else{
|
|
||||||
$('.pop_msg_success .msg_text').html("발송 성공 : <strong>"+ smsCnt + "</strong>건,수신거부 : <span>" + blockCnt + "</span>건의<br>문자가 발송 되었습니다.");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$('.mask').addClass('on');
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}else if("BAD_REQUEST" == status){
|
|
||||||
|
|
||||||
alert(data.message);
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}else if("UNAUTHORIZED" == status){
|
|
||||||
|
|
||||||
alert(data.message);
|
|
||||||
//문자발송 URL Move
|
|
||||||
goMsgUrlMove();
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}else if("NO_CONTENT" == status){
|
|
||||||
|
|
||||||
$('.pop_msg_fails').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
|
|
||||||
$('.pop_msg_fails .msg_text').html(returnData.message);
|
|
||||||
$('.mask').addClass('on');
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// } else if(status== 'fail'){
|
|
||||||
// alert(returnData.message);
|
|
||||||
// }
|
|
||||||
},
|
|
||||||
beforeSend : function(xmlHttpRequest) {
|
|
||||||
//로딩창 show
|
|
||||||
$('.loading_layer').addClass('active');
|
|
||||||
},
|
|
||||||
complete : function(xhr, textStatus) {
|
|
||||||
//로딩창 hide
|
|
||||||
$('.loading_layer').removeClass('active');
|
|
||||||
},
|
|
||||||
error: function (e) { alert("문자 발송에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function sendMsgAjax(paramSmsCnt, paramBlockCnt){
|
function sendMsgAjax(paramSmsCnt, paramBlockCnt){
|
||||||
var form = document.msgForm;
|
var form = document.msgForm;
|
||||||
var reserYn = $("#reserveYn").val();
|
var reserYn = $("#reserveYn").val();
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user