From 9ded699d5f4244e044da568b49c9ae5bf550b23b Mon Sep 17 00:00:00 2001 From: rosewiper Date: Thu, 23 Nov 2023 14:36:39 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=A0=EA=B1=B0=EB=AC=B8=EC=9E=90=20?= =?UTF-8?q?=ED=9B=84=EB=B3=B4=EC=9E=90=20=EB=93=B1=EB=A1=9D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EB=B0=8F=20=EC=84=B8=EA=B8=88=EA=B3=84=EC=82=B0?= =?UTF-8?q?=EC=84=9C=20=EB=8F=99=EA=B8=B0=ED=99=94=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EC=98=88=EC=95=BD=20=EC=B7=A8=EC=86=8C=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=EC=8B=9C=20=EB=AC=B8=EC=9E=90=EB=B0=9C?= =?UTF-8?q?=EC=86=A1=20=EC=83=81=ED=83=9C=20=EB=B0=8F=20=ED=99=98=EB=B6=88?= =?UTF-8?q?=20=EC=B2=98=EB=A6=AC=20=EB=90=98=EB=8F=84=EB=A1=9D=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MjonCandidateService.java | 3 + .../msgcampain/service/MjonCandidateVO.java | 21 +- .../service/impl/MjonCandidateDAO.java | 6 + .../impl/MjonCandidateServiceImpl.java | 5 + .../web/MjonMsgCampainDataController.java | 194 +++++++++++------- .../let/mjo/pay/web/MjonPayController.java | 75 ++++++- .../service/impl/MjonReservMsgDAO.java | 13 ++ .../impl/MjonReservMsgServiceImpl.java | 147 ++++++++++--- .../web/MjonReservMsgController.java | 2 +- .../let/msg/MjonMsgCampainData_SQL_mysql.xml | 16 +- .../sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml | 21 ++ .../jsp/web/msgcampain/MsgDataSMLView.jsp | 18 +- 12 files changed, 394 insertions(+), 127 deletions(-) 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# + + + UPDATE LETTNGNRLMBER SET + TAX_MNG_EMAIL = #emailFullStr#, + TAX_MNG_NM = #managerNm#, + TAX_MNG_PHONENUM = #phoneNo#, + TAX_C_NM = #candidateNm#, + TAX_C_IHIDNUM = #regidentNoFullStr#, + TAX_C_ADDR = #candidateAddr# + WHERE MBER_ID = #mberId# + + + diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml index fbfa454d..61b93073 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml @@ -938,6 +938,27 @@ + + diff --git a/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp b/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp index 079fcfb5..1f2e1327 100644 --- a/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp @@ -2839,6 +2839,13 @@ function fn_candidateLoginChk(){ } +function fn_mberDeptChk(){ + + alert("선거문자는 개인 회원만 이용 가능합니다."); + return false; + +} + function goToCustom(){ var form = document.goToCustomForm; @@ -3254,11 +3261,9 @@ function getMjMsgSentListAll(pageNo) {
-

선거문자는 반드시 후보자 등록을 하셔야만 이용 가능합니다.

+

선거문자는 반드시 후보자 등록을 하셔야만 이용 가능합니다.
입력하신 내용은 세금계산서 발행을 위한 정보로만 사용됩니다.

후보자

- - @@ -3309,13 +3314,13 @@ function getMjMsgSentListAll(pageNo) { - + <%-- - + --%>
후보자 등록을 위한 성명, 주민등록번호, 주소를 입력하는 표
직위
휴대폰 @@ -3828,6 +3833,9 @@ function getMjMsgSentListAll(pageNo) { + + +