diff --git a/src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateService.java b/src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateService.java
index 4979ee36..47a12258 100644
--- a/src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateService.java
+++ b/src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateService.java
@@ -13,4 +13,7 @@ public interface MjonCandidateService {
// 선거문자 후보자 삭제 처리
public int deleteCandidateDataInfo(MjonCandidateVO mjonCandidateVO) throws Exception;
+
+ // 선거문자 후보자 등록/수정시 회원정보 테이블 세금계산서 정보 수정해주기
+ public int updateTaxBillMemberInfo(MjonCandidateVO mjonCandidateVO) throws Exception;
}
diff --git a/src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateVO.java b/src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateVO.java
index 4d1b94d6..03045b4c 100644
--- a/src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateVO.java
+++ b/src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateVO.java
@@ -21,7 +21,8 @@ public class MjonCandidateVO {
private String lastUpdusrId;
private String dataType;
-
+ private String emailFullStr;
+ private String regidentNoFullStr;
public int getCandidateId() {
return candidateId;
@@ -120,10 +121,18 @@ public class MjonCandidateVO {
public void setDataType(String dataType) {
this.dataType = dataType;
}
-
-
-
-
-
+ public String getEmailFullStr() {
+ return emailFullStr;
+ }
+ public void setEmailFullStr(String emailFullStr) {
+ this.emailFullStr = emailFullStr;
+ }
+ public String getRegidentNoFullStr() {
+ return regidentNoFullStr;
+ }
+ public void setRegidentNoFullStr(String regidentNoFullStr) {
+ this.regidentNoFullStr = regidentNoFullStr;
+ }
+
}
diff --git a/src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateDAO.java b/src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateDAO.java
index 44daff91..6d9879f1 100644
--- a/src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateDAO.java
+++ b/src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateDAO.java
@@ -27,4 +27,10 @@ public class MjonCandidateDAO extends EgovAbstractDAO {
return update("mjonCandidateDAO.deleteCandidateDataInfo", mjonCandidateVO);
}
+
+ // 선거문자 후보자 등록/수정시 회원정보 테이블 세금계산서 정보 수정해주기
+ public int updateTaxBillMemberInfo(MjonCandidateVO mjonCandidateVO) throws Exception{
+
+ return update("mjonCandidateDAO.updateTaxBillMemberInfo", mjonCandidateVO);
+ }
}
diff --git a/src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateServiceImpl.java b/src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateServiceImpl.java
index de2b2f3e..037608d9 100644
--- a/src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateServiceImpl.java
+++ b/src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateServiceImpl.java
@@ -33,4 +33,9 @@ public class MjonCandidateServiceImpl extends EgovAbstractServiceImpl implement
return mjonCandidateDAO.deleteCandidateDataInfo(mjonCandidateVO);
}
+
+ // 선거문자 후보자 등록/수정시 회원정보 테이블 세금계산서 정보 수정해주기
+ public int updateTaxBillMemberInfo(MjonCandidateVO mjonCandidateVO) throws Exception{
+ return mjonCandidateDAO.updateTaxBillMemberInfo(mjonCandidateVO);
+ }
}
diff --git a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
index 84bb44af..28bd1cf4 100644
--- a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
+++ b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
@@ -570,6 +570,7 @@ public class MjonMsgCampainDataController {
model.addAttribute("resultPhoList", resultPhoList);
paginationInfo.setTotalRecordCount( resultPhoList.size()> 0 ? ((Long)((EgovMap)resultPhoList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
+ model.addAttribute("mberManageVO", mberManageVO);
return "web/msgcampain/MsgDataSMLView";
}
@@ -598,66 +599,98 @@ public class MjonMsgCampainDataController {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
- if(userId.equals("")) {
+ try {
- modelAndView.addObject("result", "loginFail");
- modelAndView.addObject("message", "로그인이 필요합니다.");
- return modelAndView;
+ if(userId.equals("")) {
+
+ modelAndView.addObject("result", "loginFail");
+ modelAndView.addObject("message", "로그인이 필요합니다.");
+ return modelAndView;
+
+ }else {
+
+ mjonCandidateVO.setMberId(userId);
+
+ }
- }else {
+ MjonVOParamXssValues XssParam = new MjonVOParamXssValues();
+
+ int XssCnt = XssParam.buildUri(mjonCandidateVO);
+
+ if(XssCnt > 0) {
+
+ modelAndView.addObject("result", "fail");
+ modelAndView.addObject("message", "후보자 등록 정보에 잘못된 문자열이 있습니다.");
+ return modelAndView;
+
+ }
+
+ int resultCnt = 0;
+ String dataType = mjonCandidateVO.getDataType();
- mjonCandidateVO.setMberId(userId);
+ //주민번호 앞, 뒷 자리 암호화 처리하기
+ String regidentNo1 = egovCryptoUtil.encrypt(mjonCandidateVO.getRegidentNo1());
+ String regidentNo2 = egovCryptoUtil.encrypt(mjonCandidateVO.getRegidentNo2());
- }
-
- MjonVOParamXssValues XssParam = new MjonVOParamXssValues();
-
- int XssCnt = XssParam.buildUri(mjonCandidateVO);
-
- if(XssCnt > 0) {
+ mjonCandidateVO.setRegidentNo1(regidentNo1);
+ mjonCandidateVO.setRegidentNo2(regidentNo2);
- modelAndView.addObject("result", "fail");
- modelAndView.addObject("message", "후보자 등록 정보에 잘못된 문자열이 있습니다.");
- return modelAndView;
+ if(dataType.equals("Upt")) {
+
+ resultCnt = mjonCandidateService.updateCandidateDataInfo(mjonCandidateVO);
+
+ }else {
+
+ resultCnt = mjonCandidateService.insertCandidateDataInfo(mjonCandidateVO);
+
+ }
- }
-
- int resultCnt = 0;
- String dataType = mjonCandidateVO.getDataType();
-
- //주민번호 앞, 뒷 자리 암호화 처리하기
- String regidentNo1 = egovCryptoUtil.encrypt(mjonCandidateVO.getRegidentNo1());
- String regidentNo2 = egovCryptoUtil.encrypt(mjonCandidateVO.getRegidentNo2());
-
- mjonCandidateVO.setRegidentNo1(regidentNo1);
- mjonCandidateVO.setRegidentNo2(regidentNo2);
-
- if(dataType.equals("Upt")) {
+ /*
+ * 20231122 우영두 수정
+ * 후보자 등록/수정시 후보자 정보에 대한 세금계산서 정보가 등록되어야 함.
+ * 선거문자를 이용하는 개인 회원은 세금계산서를 후보자에 대한 것을 신청하기 때문에 회원정보의 세금계산서 정보를 업데이트 하도록 함.
+ *
+ * */
+ if(resultCnt > 0) {
+
+ //후보자 담당자 이메일 주소 합쳐주기
+ mjonCandidateVO.setEmailFullStr(mjonCandidateVO.getEmail() + "@" + mjonCandidateVO.getEmailDomain());
+
+ // 주민번호 복호화 하기
+ regidentNo1 = egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo1());
+ regidentNo2 = egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo2());
+
+ mjonCandidateVO.setRegidentNoFullStr(regidentNo1+regidentNo2);
+
+ mjonCandidateService.updateTaxBillMemberInfo(mjonCandidateVO);
+
+ }
+
+ if(resultCnt > 0 && dataType.equals("Upt")) {
+
+ modelAndView.addObject("result", "success");
+ modelAndView.addObject("message", "후보자 정보의 수정이 완료되었습니다.");
+
+ }else if(resultCnt > 0 && dataType.equals("Reg")) {
+
+ modelAndView.addObject("result", "success");
+ modelAndView.addObject("message", "후보자 등록이 완료되었습니다.");
+
+ }else {
+
+ modelAndView.addObject("result", "fail");
+ modelAndView.addObject("message", "후보자 등록에 오류가 발생하였습니다.");
+
+ }
- resultCnt = mjonCandidateService.updateCandidateDataInfo(mjonCandidateVO);
-
- }else {
-
- resultCnt = mjonCandidateService.insertCandidateDataInfo(mjonCandidateVO);
-
- }
-
-
- if(resultCnt > 0 && dataType.equals("Upt")) {
-
- modelAndView.addObject("result", "success");
- modelAndView.addObject("message", "후보자 정보의 수정이 완료되었습니다.");
-
- }else if(resultCnt > 0 && dataType.equals("Reg")) {
-
- modelAndView.addObject("result", "success");
- modelAndView.addObject("message", "후보자 등록이 완료되었습니다.");
-
- }else {
+ } catch (Exception e) {
+ System.out.println("insertCandidateDataInfoAjax Controller Error!!! " + e);
modelAndView.addObject("result", "fail");
modelAndView.addObject("message", "후보자 등록에 오류가 발생하였습니다.");
+ return modelAndView;
+
}
return modelAndView;
@@ -686,40 +719,47 @@ public class MjonMsgCampainDataController {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
- if(userId.equals("")) {
+ try {
+
+ if(userId.equals("")) {
+
+ modelAndView.addObject("result", "loginFail");
+ modelAndView.addObject("message", "로그인이 필요합니다.");
+ return modelAndView;
+
+ }else {
+
+ mjonCandidateVO.setMberId(userId);
+
+ }
- modelAndView.addObject("result", "loginFail");
- modelAndView.addObject("message", "로그인이 필요합니다.");
- return modelAndView;
+ MjonVOParamXssValues XssParam = new MjonVOParamXssValues();
+
+ int XssCnt = XssParam.buildUri(mjonCandidateVO);
+
+ int resultCnt = 0;
- }else {
+ resultCnt = mjonCandidateService.deleteCandidateDataInfo(mjonCandidateVO);
+
+ if(resultCnt > 0 ) {
+
+ modelAndView.addObject("result", "success");
+ modelAndView.addObject("message", "후보자 정보의 삭제 완료되었습니다.");
+
+
+ }else {
+
+ modelAndView.addObject("result", "fail");
+ modelAndView.addObject("message", "후보자 삭제에 오류가 발생하였습니다.");
+
+ }
- mjonCandidateVO.setMberId(userId);
-
- }
-
- MjonVOParamXssValues XssParam = new MjonVOParamXssValues();
-
- int XssCnt = XssParam.buildUri(mjonCandidateVO);
-
-
- int resultCnt = 0;
-
-
- resultCnt = mjonCandidateService.deleteCandidateDataInfo(mjonCandidateVO);
-
-
-
- if(resultCnt > 0 ) {
-
- modelAndView.addObject("result", "success");
- modelAndView.addObject("message", "후보자 정보의 삭제 완료되었습니다.");
-
-
- }else {
+ } catch (Exception e) {
+ System.out.println("deleteCandidateDataInfoAjax Controller Error!!! " + e);
modelAndView.addObject("result", "fail");
modelAndView.addObject("message", "후보자 삭제에 오류가 발생하였습니다.");
+ return modelAndView;
}
diff --git a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java
index 87962f7d..46ebdacf 100644
--- a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java
+++ b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java
@@ -3425,10 +3425,77 @@ public class MjonPayController {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
- mberManageVO.setUniqId(userId);
- mberManageService.updateTaxbill(mberManageVO);
-
- redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
+ if(userId.equals("")) {
+
+ redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
+ return "redirect:/web/member/pay/BillPub.do";
+
+ }
+
+ try {
+
+ //세금계산서 정보 수정해주기
+ mberManageVO.setUniqId(userId);
+ mberManageService.updateTaxbill(mberManageVO);
+
+ /*
+ * 20231122 우영두 기능 추가
+ * 개인회원인 경우
+ * 세금계산서 타입이 개인인 경우
+ * 후보자 정보가 있는지 확인하여 후보자 정보가 있다면 세금계산서 정보와 일치하도록 변경된 정보를 후보자 정보도 수정해준다.
+ * */
+ String mberId = loginVO.getId();
+ String taxCNm = mberManageVO.getTaxCNm();
+
+ MberManageVO tmpMberManageVO = mjonMsgDataService.selectMberManageInfo(mberId);
+ String dept = tmpMberManageVO.getDept();
+
+ if(dept.equals("p") && taxCNm != null && taxCNm.length() > 0) {
+
+ MjonCandidateVO mjonCandidateVO = mjonCandidateService.selectCandidateDataInfo(mberId);
+ String candidateNm = mjonCandidateVO.getCandidateNm();
+ if(candidateNm != null && candidateNm.length() > 0) {
+
+ MjonCandidateVO updtCandidateVO = new MjonCandidateVO();
+
+ //이메일 정보 아이디/도메인 정보 분리
+ String email = mberManageVO.getTaxMngEmail().split("@")[0];
+ String emailDomain = mberManageVO.getTaxMngEmail().split("@")[1];
+
+ /*
+ * 주민번호 앞, 뒷 자리 암호화 처리하기
+ * 세금계산서에서 주민번호는 별도로 암/복호화 처리를 안하고 저장함
+ * 기본 가비아 암호화 솔루션 처리로 안한것 같음, 후보자 정보 쪽에서는 전자정부 프레임워크의 암/복호화 적용하여 저장함.
+ *
+ * */
+ String regidentNo1 = egovCryptoUtil.encrypt(mberManageVO.getTaxCIhidNum().substring(0, 6));
+ String regidentNo2 = egovCryptoUtil.encrypt(mberManageVO.getTaxCIhidNum().substring(6, 13));
+
+ updtCandidateVO.setMberId(mberId);
+ updtCandidateVO.setCandidateNm(taxCNm);
+ updtCandidateVO.setRegidentNo1(regidentNo1);
+ updtCandidateVO.setRegidentNo2(regidentNo2);
+ updtCandidateVO.setCandidateAddr(mberManageVO.getTaxCAddr());
+ updtCandidateVO.setManagerNm(mberManageVO.getTaxMngNm());
+ updtCandidateVO.setPhoneNo(mberManageVO.getTaxMngPhoneNum());
+ updtCandidateVO.setEmail(email);
+ updtCandidateVO.setEmailDomain(emailDomain);
+ updtCandidateVO.setLastUpdusrId(mberId);
+
+ int resultCnt = mjonCandidateService.updateCandidateDataInfo(updtCandidateVO);
+
+ }
+
+ }
+
+ redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
+
+ } catch (Exception e) {
+ System.out.println("updateTaxbill Controller Error!!! " + e);
+
+ redirectAttributes.addFlashAttribute("message", "세금계산서 정보 수정 중 오류가 발생하였습니다.");
+ return "redirect:/web/member/pay/BillPub.do";
+ }
return "redirect:/web/member/pay/BillPub.do";
}
diff --git a/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java b/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java
index 20fad5e5..010502ec 100644
--- a/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java
+++ b/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java
@@ -356,4 +356,17 @@ public class MjonReservMsgDAO extends EgovAbstractDAO {
return update("MjonReservMsgDAO.updateReserveTimeBizMsgSeqListByMsgSeq", mjonResvMsgVO);
}
+
+ /**
+ * @Method Name : selectMjonMsgGroupDataByGroupId
+ * @작성일 : 2023. 11. 23.
+ * @작성자 : 우영두
+ * @Method 설명 : 문자발송 그룹 데이터 테이블 데이터 조회 , 예약취소시 문자발송 정보 조회를 위해 사용
+ * 예약취소시 전송사별 발송테이블의 데이터 삭제는 완료되었으나, mj_msg_data 테이블의 Deadlock 상황으로 오류 발생시 처리를 위해서 사용
+ */
+ public MjonResvMsgVO selectMjonMsgGroupDataChkByGroupId(MjonResvMsgVO mjonResvMsgVO) {
+
+ return (MjonResvMsgVO) select("MjonReservMsgDAO.selectMjonMsgGroupDataChkByGroupId", mjonResvMsgVO);
+ }
+
}
diff --git a/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgServiceImpl.java b/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgServiceImpl.java
index 418cb100..988625d6 100644
--- a/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgServiceImpl.java
+++ b/src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgServiceImpl.java
@@ -85,6 +85,9 @@ public class MjonReservMsgServiceImpl extends EgovAbstractServiceImpl implements
int result = 0;
try {
+ System.out.println("================= 예약 취소 처리 시작============================");
+ System.out.println("================= 메세지 그룹 아이디============================" + mjonResvMsgVO.getMsgGroupId());
+
String agentCode = mjonResvMsgVO.getAgentCode(); //전송사 코드번호
String msgType = mjonResvMsgVO.getMsgType(); //문자 종류 - 4:단문, 6:장문
@@ -102,72 +105,58 @@ public class MjonReservMsgServiceImpl extends EgovAbstractServiceImpl implements
mjonResvMsgVO.setUserDataList(userDataList);
- int ihResult = 0;
- int imoResult = 0;
+ //int ihResult = 0;
+ //int imoResult = 0;
int bizResult = 0;
int jjResult = 0;
int ivtResult = 0;
- int FHSmsResult = 0;
- int FHMmsResult = 0;
+ //int FHSmsResult = 0;
+ //int FHMmsResult = 0;
int jjB01Result = 0;
int jjB02Result = 0;
//아이하트 예약취소 삭제
- ihResult = mjonReservMsgDAO.deleteIHeartMsgSeqListByMsgSeq(mjonResvMsgVO);
+ //ihResult = mjonReservMsgDAO.deleteIHeartMsgSeqListByMsgSeq(mjonResvMsgVO);
//현대퓨처넷 단문예약취소 삭제
- FHSmsResult = mjonReservMsgDAO.deleteHFNSmsMsgSeqListByMsgSeq(mjonResvMsgVO);
+ //FHSmsResult = mjonReservMsgDAO.deleteHFNSmsMsgSeqListByMsgSeq(mjonResvMsgVO);
//현대퓨처넷 장문/그림 문예약취소 삭제
- FHMmsResult = mjonReservMsgDAO.deleteHFNMmsMsgSeqListByMsgSeq(mjonResvMsgVO);
+ //FHMmsResult = mjonReservMsgDAO.deleteHFNMmsMsgSeqListByMsgSeq(mjonResvMsgVO);
//아이엠오 예약취소 삭제
- imoResult = mjonReservMsgDAO.deleteIMOMsgSeqListByMsgSeq(mjonResvMsgVO);
+ //imoResult = mjonReservMsgDAO.deleteIMOMsgSeqListByMsgSeq(mjonResvMsgVO);
//비트뿌리오 예약취소 삭제
bizResult = mjonReservMsgDAO.deleteBizMsgSeqListByMsgSeq(mjonResvMsgVO);
+ System.out.println("============================== 다우기술 예약 취소 건수 ::: "+bizResult);
//제이제이 예약취소 삭제
jjResult = mjonReservMsgDAO.deleteJJMsgSeqListByMsgSeq(mjonResvMsgVO);
+ System.out.println("============================== 제이제이 예약 취소 건수 ::: "+jjResult);
//인비토 예약취소 삭제
ivtResult = mjonReservMsgDAO.deleteIVTMsgSeqListByMsgSeq(mjonResvMsgVO);
+ System.out.println("============================== 인비토 예약 취소 건수 ::: "+ivtResult);
//제이제이 B01 예약취소 삭제
jjB01Result = mjonReservMsgDAO.deleteJJB01MsgSeqListByMsgSeq(mjonResvMsgVO);
+ System.out.println("============================== 제이제이 B01 예약 취소 건수 ::: "+jjB01Result);
//제이제이 B02 예약취소 삭제
jjB02Result = mjonReservMsgDAO.deleteJJB02MsgSeqListByMsgSeq(mjonResvMsgVO);
+ System.out.println("============================== 제이제이 B02 예약 취소 건수 ::: "+jjB02Result);
//삭제 결과 합산
- result = ihResult + FHSmsResult + FHMmsResult + imoResult + bizResult +jjResult + ivtResult + jjB01Result + jjB02Result;
+ //result = ihResult + FHSmsResult + FHMmsResult + imoResult + bizResult +jjResult + ivtResult + jjB01Result + jjB02Result;
+ result = bizResult +jjResult + ivtResult + jjB01Result + jjB02Result;
+ System.out.println("============================== 총 예약 취소 건수 ::: "+result);
- //각 전송사별 문자 발송 테이블에서 데이터 삭제 처리
- /*if(agentCode.equals("01")) { //아이하트 메세지 삭제
-
- result = mjonReservMsgDAO.deleteIHeartMsgSeqListByMsgSeq(mjonResvMsgVO);
-
- }else if(agentCode.equals("02")) { //현대퓨쳐넷 메세지 삭제
-
- if(msgType.equals("4")) { //단문 삭제
-
- result = mjonReservMsgDAO.deleteHFNSmsMsgSeqListByMsgSeq(mjonResvMsgVO);
-
- }else { //장문, 그림 삭제
-
- result = mjonReservMsgDAO.deleteHFNMmsMsgSeqListByMsgSeq(mjonResvMsgVO);
-
- }
-
- }else { //아이엠오 메세지 삭제
-
- result = mjonReservMsgDAO.deleteIMOMsgSeqListByMsgSeq(mjonResvMsgVO);
-
- }*/
//예약 취소 환불 처리
if(result > 0) {
+ System.out.println("========================예약취소 상태값 변경 및 환불 처리============================");
//mj_msg_data 테이블 예약 취소 값 수정
mjonReservMsgDAO.updateResvMsgCancelDataFlag(mjonResvMsgVO);
@@ -252,6 +241,102 @@ public class MjonReservMsgServiceImpl extends EgovAbstractServiceImpl implements
}
+ }else if(result == 0){
+
+ //문자 발송 그룹 테이블의 데이터에 예약 취소가 되었는지 조회
+ MjonResvMsgVO tmpMjonResvMsgVO = mjonReservMsgDAO.selectMjonMsgGroupDataChkByGroupId(mjonResvMsgVO);
+ String reserveCYn = tmpMjonResvMsgVO.getReserveCYn();
+
+ if(reserveCYn.equals("N")) {
+
+ result = Integer.parseInt(tmpMjonResvMsgVO.getMsgGroupCnt());
+
+ System.out.println("========================예약취소 상태값 변경 및 환불 처리============================");
+ //mj_msg_data 테이블 예약 취소 값 수정
+ mjonReservMsgDAO.updateResvMsgCancelDataFlag(mjonResvMsgVO);
+
+ //mj_msg_group_data 테이블 예약 취소 값 수정
+ mjonReservMsgDAO.updateResvMsgCancelGroupFlag(mjonResvMsgVO);
+
+ MjonMsgVO mjonMsgVO = mjonReservMsgDAO.selectMjonMsgGroupData(mjonResvMsgVO);
+
+ //문자 발송 캐시 차감 해주기
+ MjonPayVO mjonPayVO = new MjonPayVO();
+
+ mjonPayVO.setCashId(idgenMjonCashId.getNextStringId());
+ mjonPayVO.setUserId(mjonMsgVO.getUserId());
+ mjonPayVO.setCash(Float.parseFloat(mjonMsgVO.getTotPrice()));
+ mjonPayVO.setFrstRegisterId(mjonMsgVO.getUserId());
+ mjonPayVO.setMemo("예약문자 취소 " + result + "건 환불");
+ mjonPayVO.setMsgGroupId(mjonMsgVO.getMsgGroupId());
+
+ mjonPayDAO.insertCash(mjonPayVO); //캐시 환불
+ mjonPayDAO.updateMemberCash(mjonPayVO); //회원정보 업데이트
+
+ String eventYn = mjonMsgVO.getEventYn();
+
+ if(eventYn.equals("Y")) {//이벤트 단가로 발송한 문자인 경우에만 이벤트 환불 처리해줌
+
+ //이벤트 회원의 경우 이벤트 캐시도 환불 처리해줌.
+ MjonEventVO mjonEventVO = new MjonEventVO();
+ mjonEventVO.setMberId(mjonMsgVO.getUserId());
+ MjonEventVO eventMberInfo = mjonEventDAO.selectEventMsgMberDefaultInfo(mjonEventVO);
+
+ float eventRemainCash = 0;
+ boolean compareEndDate = false;
+
+ if(eventMberInfo != null) {
+
+ String eventEndDate = eventMberInfo.getEventEndDate(); //이벤트 종료 일자
+ String eventStatus = eventMberInfo.getEventStatus(); //이벤트 진행 상태
+
+
+ /**
+ * MJUtil.getCompareDate()
+ * 현재 날짜와 파라미터 전달 날짜를 비교
+ * 전달날짜를 지난경우 False를 리턴함.
+ * 현재날짜 이전 혹은 같은 날짜면 True를 리턴함.
+ *
+ * */
+
+ if(eventStatus.equals("Y") || eventStatus.equals("E")) {//현재 이벤트를 진행 중이거나, 종료 된경우 환불 처리해줌
+
+ if(eventEndDate != null) {//이벤트 종료일이 지나지 않은 회원만 환불 처리해줌.
+ compareEndDate = MJUtil.getCompareDate(eventEndDate);
+ eventRemainCash = (float) eventMberInfo.getEventRemainCash();
+
+
+ if(compareEndDate) {//현재 시간이 이벤트 종료일이 지나지 않았다면
+
+ float totEventRemainCash = eventRemainCash + Float.parseFloat(mjonMsgVO.getTotPrice()); //남은 이벤트 캐시 금액에 환불해줄 캐시 금액을 더해준다.
+
+ //이벤트 상태값을 종료로 변경한다.
+ mjonEventVO.setEventInfoId(eventMberInfo.getEventInfoId());
+
+ if(eventStatus.equals("E")) {//이벤트가 종료 된 상태에서 예약 취소를 진행하는 경우 이벤트 종료에서 진행으로 변경 후 캐시 환불 처리
+
+ mjonEventVO.setEventStatus("Y");
+ mjonEventVO.setEventMemo("예약문자 취소로 인한 환물 및 종료되었던 이벤트 진행으로 변경");
+
+ }else {//진행중인 경우 기존 상태값 그대로 적용해준다.
+
+ mjonEventVO.setEventStatus(eventStatus);
+
+ }
+
+ mjonEventVO.setEventRemainCash(totEventRemainCash);
+ mjonEventDAO.updateEventEndStatus(mjonEventVO);
+
+ }
+ }
+
+ }
+
+ }
+
+ }
+ }
+
}
diff --git a/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java b/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java
index d1355fb4..38025fc7 100644
--- a/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java
+++ b/src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java
@@ -513,7 +513,7 @@ public class MjonReservMsgController {
}else {
- modelAndView.addObject("message", "예약 발송 처리가 실패 되었습니다.");
+ modelAndView.addObject("message", "예약 발송 취소 처리가 실패 되었습니다. 잠시 후 다시 시도해 주세요.");
modelAndView.addObject("result", "fail");
}
diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgCampainData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgCampainData_SQL_mysql.xml
index 5374b6cb..293022e3 100644
--- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgCampainData_SQL_mysql.xml
+++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgCampainData_SQL_mysql.xml
@@ -37,7 +37,6 @@
REGIDENT_NO2,
CANDIDATE_ADDR,
MANAGER_NM,
- OFFICE,
PHONE_NO,
EMAIL,
EMAIL_DOMAIN,
@@ -54,7 +53,6 @@
#regidentNo2#,
#candidateAddr#,
#managerNm#,
- #office#,
#phoneNo#,
#email#,
#emailDomain#,
@@ -75,7 +73,6 @@
REGIDENT_NO2 = #regidentNo2#,
CANDIDATE_ADDR = #candidateAddr#,
MANAGER_NM = #managerNm#,
- OFFICE = #office#,
PHONE_NO = #phoneNo#,
EMAIL = #email#,
EMAIL_DOMAIN = #emailDomain#,
@@ -90,6 +87,19 @@
WHERE MBER_ID = #mberId#
+
선거문자는 반드시 후보자 등록을 하셔야만 이용 가능합니다.
+선거문자는 반드시 후보자 등록을 하셔야만 이용 가능합니다.
입력하신 내용은 세금계산서 발행을 위한 정보로만 사용됩니다.
후보자
- -| 직위 | - |
|---|---|
| 휴대폰 |
@@ -3828,6 +3833,9 @@ function getMjMsgSentListAll(pageNo) {
|