선거문자 후보자 등록 변경 및 세금계산서 동기화 기능 변경 예약 취소 오류시 문자발송 상태 및 환불 처리 되도록 로직 수정
예약 취소 오류시 문자발송 상태 및 환불 처리 되도록 로직 수정
@9ded699d5f4244e044da568b49c9ae5bf550b23b
--- src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateService.java
+++ src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateService.java
... | ... | @@ -13,4 +13,7 @@ |
| 13 | 13 |
|
| 14 | 14 |
// 선거문자 후보자 삭제 처리 |
| 15 | 15 |
public int deleteCandidateDataInfo(MjonCandidateVO mjonCandidateVO) throws Exception; |
| 16 |
+ |
|
| 17 |
+ // 선거문자 후보자 등록/수정시 회원정보 테이블 세금계산서 정보 수정해주기 |
|
| 18 |
+ public int updateTaxBillMemberInfo(MjonCandidateVO mjonCandidateVO) throws Exception; |
|
| 16 | 19 |
} |
--- src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateVO.java
+++ src/main/java/itn/let/mjo/msgcampain/service/MjonCandidateVO.java
... | ... | @@ -21,7 +21,8 @@ |
| 21 | 21 |
private String lastUpdusrId; |
| 22 | 22 |
|
| 23 | 23 |
private String dataType; |
| 24 |
- |
|
| 24 |
+ private String emailFullStr; |
|
| 25 |
+ private String regidentNoFullStr; |
|
| 25 | 26 |
|
| 26 | 27 |
public int getCandidateId() {
|
| 27 | 28 |
return candidateId; |
... | ... | @@ -120,10 +121,18 @@ |
| 120 | 121 |
public void setDataType(String dataType) {
|
| 121 | 122 |
this.dataType = dataType; |
| 122 | 123 |
} |
| 123 |
- |
|
| 124 |
- |
|
| 125 |
- |
|
| 126 |
- |
|
| 127 |
- |
|
| 124 |
+ public String getEmailFullStr() {
|
|
| 125 |
+ return emailFullStr; |
|
| 126 |
+ } |
|
| 127 |
+ public void setEmailFullStr(String emailFullStr) {
|
|
| 128 |
+ this.emailFullStr = emailFullStr; |
|
| 129 |
+ } |
|
| 130 |
+ public String getRegidentNoFullStr() {
|
|
| 131 |
+ return regidentNoFullStr; |
|
| 132 |
+ } |
|
| 133 |
+ public void setRegidentNoFullStr(String regidentNoFullStr) {
|
|
| 134 |
+ this.regidentNoFullStr = regidentNoFullStr; |
|
| 135 |
+ } |
|
| 136 |
+ |
|
| 128 | 137 |
|
| 129 | 138 |
} |
--- src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateDAO.java
+++ src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateDAO.java
... | ... | @@ -27,4 +27,10 @@ |
| 27 | 27 |
|
| 28 | 28 |
return update("mjonCandidateDAO.deleteCandidateDataInfo", mjonCandidateVO);
|
| 29 | 29 |
} |
| 30 |
+ |
|
| 31 |
+ // 선거문자 후보자 등록/수정시 회원정보 테이블 세금계산서 정보 수정해주기 |
|
| 32 |
+ public int updateTaxBillMemberInfo(MjonCandidateVO mjonCandidateVO) throws Exception{
|
|
| 33 |
+ |
|
| 34 |
+ return update("mjonCandidateDAO.updateTaxBillMemberInfo", mjonCandidateVO);
|
|
| 35 |
+ } |
|
| 30 | 36 |
} |
--- src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateServiceImpl.java
+++ src/main/java/itn/let/mjo/msgcampain/service/impl/MjonCandidateServiceImpl.java
... | ... | @@ -33,4 +33,9 @@ |
| 33 | 33 |
|
| 34 | 34 |
return mjonCandidateDAO.deleteCandidateDataInfo(mjonCandidateVO); |
| 35 | 35 |
} |
| 36 |
+ |
|
| 37 |
+ // 선거문자 후보자 등록/수정시 회원정보 테이블 세금계산서 정보 수정해주기 |
|
| 38 |
+ public int updateTaxBillMemberInfo(MjonCandidateVO mjonCandidateVO) throws Exception{
|
|
| 39 |
+ return mjonCandidateDAO.updateTaxBillMemberInfo(mjonCandidateVO); |
|
| 40 |
+ } |
|
| 36 | 41 |
} |
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
... | ... | @@ -570,6 +570,7 @@ |
| 570 | 570 |
model.addAttribute("resultPhoList", resultPhoList);
|
| 571 | 571 |
paginationInfo.setTotalRecordCount( resultPhoList.size()> 0 ? ((Long)((EgovMap)resultPhoList.get(0)).get("totCnt")).intValue() : 0);
|
| 572 | 572 |
model.addAttribute("paginationInfo", paginationInfo);
|
| 573 |
+ model.addAttribute("mberManageVO", mberManageVO);
|
|
| 573 | 574 |
|
| 574 | 575 |
return "web/msgcampain/MsgDataSMLView"; |
| 575 | 576 |
} |
... | ... | @@ -598,65 +599,97 @@ |
| 598 | 599 |
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
| 599 | 600 |
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
| 600 | 601 |
|
| 601 |
- if(userId.equals("")) {
|
|
| 602 |
+ try {
|
|
| 602 | 603 |
|
| 603 |
- modelAndView.addObject("result", "loginFail");
|
|
| 604 |
- modelAndView.addObject("message", "로그인이 필요합니다.");
|
|
| 605 |
- return modelAndView; |
|
| 604 |
+ if(userId.equals("")) {
|
|
| 605 |
+ |
|
| 606 |
+ modelAndView.addObject("result", "loginFail");
|
|
| 607 |
+ modelAndView.addObject("message", "로그인이 필요합니다.");
|
|
| 608 |
+ return modelAndView; |
|
| 609 |
+ |
|
| 610 |
+ }else {
|
|
| 611 |
+ |
|
| 612 |
+ mjonCandidateVO.setMberId(userId); |
|
| 613 |
+ |
|
| 614 |
+ } |
|
| 606 | 615 |
|
| 607 |
- }else {
|
|
| 616 |
+ MjonVOParamXssValues XssParam = new MjonVOParamXssValues(); |
|
| 617 |
+ |
|
| 618 |
+ int XssCnt = XssParam.buildUri(mjonCandidateVO); |
|
| 619 |
+ |
|
| 620 |
+ if(XssCnt > 0) {
|
|
| 621 |
+ |
|
| 622 |
+ modelAndView.addObject("result", "fail");
|
|
| 623 |
+ modelAndView.addObject("message", "후보자 등록 정보에 잘못된 문자열이 있습니다.");
|
|
| 624 |
+ return modelAndView; |
|
| 625 |
+ |
|
| 626 |
+ } |
|
| 627 |
+ |
|
| 628 |
+ int resultCnt = 0; |
|
| 629 |
+ String dataType = mjonCandidateVO.getDataType(); |
|
| 608 | 630 |
|
| 609 |
- mjonCandidateVO.setMberId(userId); |
|
| 631 |
+ //주민번호 앞, 뒷 자리 암호화 처리하기 |
|
| 632 |
+ String regidentNo1 = egovCryptoUtil.encrypt(mjonCandidateVO.getRegidentNo1()); |
|
| 633 |
+ String regidentNo2 = egovCryptoUtil.encrypt(mjonCandidateVO.getRegidentNo2()); |
|
| 610 | 634 |
|
| 611 |
- } |
|
| 612 |
- |
|
| 613 |
- MjonVOParamXssValues XssParam = new MjonVOParamXssValues(); |
|
| 614 |
- |
|
| 615 |
- int XssCnt = XssParam.buildUri(mjonCandidateVO); |
|
| 616 |
- |
|
| 617 |
- if(XssCnt > 0) {
|
|
| 635 |
+ mjonCandidateVO.setRegidentNo1(regidentNo1); |
|
| 636 |
+ mjonCandidateVO.setRegidentNo2(regidentNo2); |
|
| 618 | 637 |
|
| 619 |
- modelAndView.addObject("result", "fail");
|
|
| 620 |
- modelAndView.addObject("message", "후보자 등록 정보에 잘못된 문자열이 있습니다.");
|
|
| 621 |
- return modelAndView; |
|
| 638 |
+ if(dataType.equals("Upt")) {
|
|
| 639 |
+ |
|
| 640 |
+ resultCnt = mjonCandidateService.updateCandidateDataInfo(mjonCandidateVO); |
|
| 641 |
+ |
|
| 642 |
+ }else {
|
|
| 643 |
+ |
|
| 644 |
+ resultCnt = mjonCandidateService.insertCandidateDataInfo(mjonCandidateVO); |
|
| 645 |
+ |
|
| 646 |
+ } |
|
| 622 | 647 |
|
| 623 |
- } |
|
| 624 |
- |
|
| 625 |
- int resultCnt = 0; |
|
| 626 |
- String dataType = mjonCandidateVO.getDataType(); |
|
| 627 |
- |
|
| 628 |
- //주민번호 앞, 뒷 자리 암호화 처리하기 |
|
| 629 |
- String regidentNo1 = egovCryptoUtil.encrypt(mjonCandidateVO.getRegidentNo1()); |
|
| 630 |
- String regidentNo2 = egovCryptoUtil.encrypt(mjonCandidateVO.getRegidentNo2()); |
|
| 631 |
- |
|
| 632 |
- mjonCandidateVO.setRegidentNo1(regidentNo1); |
|
| 633 |
- mjonCandidateVO.setRegidentNo2(regidentNo2); |
|
| 634 |
- |
|
| 635 |
- if(dataType.equals("Upt")) {
|
|
| 648 |
+ /* |
|
| 649 |
+ * 20231122 우영두 수정 |
|
| 650 |
+ * 후보자 등록/수정시 후보자 정보에 대한 세금계산서 정보가 등록되어야 함. |
|
| 651 |
+ * 선거문자를 이용하는 개인 회원은 세금계산서를 후보자에 대한 것을 신청하기 때문에 회원정보의 세금계산서 정보를 업데이트 하도록 함. |
|
| 652 |
+ * |
|
| 653 |
+ * */ |
|
| 654 |
+ if(resultCnt > 0) {
|
|
| 655 |
+ |
|
| 656 |
+ //후보자 담당자 이메일 주소 합쳐주기 |
|
| 657 |
+ mjonCandidateVO.setEmailFullStr(mjonCandidateVO.getEmail() + "@" + mjonCandidateVO.getEmailDomain()); |
|
| 658 |
+ |
|
| 659 |
+ // 주민번호 복호화 하기 |
|
| 660 |
+ regidentNo1 = egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo1()); |
|
| 661 |
+ regidentNo2 = egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo2()); |
|
| 662 |
+ |
|
| 663 |
+ mjonCandidateVO.setRegidentNoFullStr(regidentNo1+regidentNo2); |
|
| 664 |
+ |
|
| 665 |
+ mjonCandidateService.updateTaxBillMemberInfo(mjonCandidateVO); |
|
| 666 |
+ |
|
| 667 |
+ } |
|
| 668 |
+ |
|
| 669 |
+ if(resultCnt > 0 && dataType.equals("Upt")) {
|
|
| 670 |
+ |
|
| 671 |
+ modelAndView.addObject("result", "success");
|
|
| 672 |
+ modelAndView.addObject("message", "후보자 정보의 수정이 완료되었습니다.");
|
|
| 673 |
+ |
|
| 674 |
+ }else if(resultCnt > 0 && dataType.equals("Reg")) {
|
|
| 675 |
+ |
|
| 676 |
+ modelAndView.addObject("result", "success");
|
|
| 677 |
+ modelAndView.addObject("message", "후보자 등록이 완료되었습니다.");
|
|
| 678 |
+ |
|
| 679 |
+ }else {
|
|
| 680 |
+ |
|
| 681 |
+ modelAndView.addObject("result", "fail");
|
|
| 682 |
+ modelAndView.addObject("message", "후보자 등록에 오류가 발생하였습니다.");
|
|
| 683 |
+ |
|
| 684 |
+ } |
|
| 636 | 685 |
|
| 637 |
- resultCnt = mjonCandidateService.updateCandidateDataInfo(mjonCandidateVO); |
|
| 638 |
- |
|
| 639 |
- }else {
|
|
| 640 |
- |
|
| 641 |
- resultCnt = mjonCandidateService.insertCandidateDataInfo(mjonCandidateVO); |
|
| 642 |
- |
|
| 643 |
- } |
|
| 644 |
- |
|
| 645 |
- |
|
| 646 |
- if(resultCnt > 0 && dataType.equals("Upt")) {
|
|
| 647 |
- |
|
| 648 |
- modelAndView.addObject("result", "success");
|
|
| 649 |
- modelAndView.addObject("message", "후보자 정보의 수정이 완료되었습니다.");
|
|
| 650 |
- |
|
| 651 |
- }else if(resultCnt > 0 && dataType.equals("Reg")) {
|
|
| 652 |
- |
|
| 653 |
- modelAndView.addObject("result", "success");
|
|
| 654 |
- modelAndView.addObject("message", "후보자 등록이 완료되었습니다.");
|
|
| 655 |
- |
|
| 656 |
- }else {
|
|
| 686 |
+ } catch (Exception e) {
|
|
| 687 |
+ System.out.println("insertCandidateDataInfoAjax Controller Error!!! " + e);
|
|
| 657 | 688 |
|
| 658 | 689 |
modelAndView.addObject("result", "fail");
|
| 659 | 690 |
modelAndView.addObject("message", "후보자 등록에 오류가 발생하였습니다.");
|
| 691 |
+ |
|
| 692 |
+ return modelAndView; |
|
| 660 | 693 |
|
| 661 | 694 |
} |
| 662 | 695 |
|
... | ... | @@ -686,40 +719,47 @@ |
| 686 | 719 |
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
| 687 | 720 |
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
| 688 | 721 |
|
| 689 |
- if(userId.equals("")) {
|
|
| 722 |
+ try {
|
|
| 723 |
+ |
|
| 724 |
+ if(userId.equals("")) {
|
|
| 725 |
+ |
|
| 726 |
+ modelAndView.addObject("result", "loginFail");
|
|
| 727 |
+ modelAndView.addObject("message", "로그인이 필요합니다.");
|
|
| 728 |
+ return modelAndView; |
|
| 729 |
+ |
|
| 730 |
+ }else {
|
|
| 731 |
+ |
|
| 732 |
+ mjonCandidateVO.setMberId(userId); |
|
| 733 |
+ |
|
| 734 |
+ } |
|
| 690 | 735 |
|
| 691 |
- modelAndView.addObject("result", "loginFail");
|
|
| 692 |
- modelAndView.addObject("message", "로그인이 필요합니다.");
|
|
| 693 |
- return modelAndView; |
|
| 736 |
+ MjonVOParamXssValues XssParam = new MjonVOParamXssValues(); |
|
| 737 |
+ |
|
| 738 |
+ int XssCnt = XssParam.buildUri(mjonCandidateVO); |
|
| 739 |
+ |
|
| 740 |
+ int resultCnt = 0; |
|
| 694 | 741 |
|
| 695 |
- }else {
|
|
| 742 |
+ resultCnt = mjonCandidateService.deleteCandidateDataInfo(mjonCandidateVO); |
|
| 743 |
+ |
|
| 744 |
+ if(resultCnt > 0 ) {
|
|
| 745 |
+ |
|
| 746 |
+ modelAndView.addObject("result", "success");
|
|
| 747 |
+ modelAndView.addObject("message", "후보자 정보의 삭제 완료되었습니다.");
|
|
| 748 |
+ |
|
| 749 |
+ |
|
| 750 |
+ }else {
|
|
| 751 |
+ |
|
| 752 |
+ modelAndView.addObject("result", "fail");
|
|
| 753 |
+ modelAndView.addObject("message", "후보자 삭제에 오류가 발생하였습니다.");
|
|
| 754 |
+ |
|
| 755 |
+ } |
|
| 696 | 756 |
|
| 697 |
- mjonCandidateVO.setMberId(userId); |
|
| 698 |
- |
|
| 699 |
- } |
|
| 700 |
- |
|
| 701 |
- MjonVOParamXssValues XssParam = new MjonVOParamXssValues(); |
|
| 702 |
- |
|
| 703 |
- int XssCnt = XssParam.buildUri(mjonCandidateVO); |
|
| 704 |
- |
|
| 705 |
- |
|
| 706 |
- int resultCnt = 0; |
|
| 707 |
- |
|
| 708 |
- |
|
| 709 |
- resultCnt = mjonCandidateService.deleteCandidateDataInfo(mjonCandidateVO); |
|
| 710 |
- |
|
| 711 |
- |
|
| 712 |
- |
|
| 713 |
- if(resultCnt > 0 ) {
|
|
| 714 |
- |
|
| 715 |
- modelAndView.addObject("result", "success");
|
|
| 716 |
- modelAndView.addObject("message", "후보자 정보의 삭제 완료되었습니다.");
|
|
| 717 |
- |
|
| 718 |
- |
|
| 719 |
- }else {
|
|
| 757 |
+ } catch (Exception e) {
|
|
| 758 |
+ System.out.println("deleteCandidateDataInfoAjax Controller Error!!! " + e);
|
|
| 720 | 759 |
|
| 721 | 760 |
modelAndView.addObject("result", "fail");
|
| 722 | 761 |
modelAndView.addObject("message", "후보자 삭제에 오류가 발생하였습니다.");
|
| 762 |
+ return modelAndView; |
|
| 723 | 763 |
|
| 724 | 764 |
} |
| 725 | 765 |
|
--- src/main/java/itn/let/mjo/pay/web/MjonPayController.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayController.java
... | ... | @@ -3425,10 +3425,77 @@ |
| 3425 | 3425 |
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
| 3426 | 3426 |
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId()); |
| 3427 | 3427 |
|
| 3428 |
- mberManageVO.setUniqId(userId); |
|
| 3429 |
- mberManageService.updateTaxbill(mberManageVO); |
|
| 3430 |
- |
|
| 3431 |
- redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
|
|
| 3428 |
+ if(userId.equals("")) {
|
|
| 3429 |
+ |
|
| 3430 |
+ redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
|
|
| 3431 |
+ return "redirect:/web/member/pay/BillPub.do"; |
|
| 3432 |
+ |
|
| 3433 |
+ } |
|
| 3434 |
+ |
|
| 3435 |
+ try {
|
|
| 3436 |
+ |
|
| 3437 |
+ //세금계산서 정보 수정해주기 |
|
| 3438 |
+ mberManageVO.setUniqId(userId); |
|
| 3439 |
+ mberManageService.updateTaxbill(mberManageVO); |
|
| 3440 |
+ |
|
| 3441 |
+ /* |
|
| 3442 |
+ * 20231122 우영두 기능 추가 |
|
| 3443 |
+ * 개인회원인 경우 |
|
| 3444 |
+ * 세금계산서 타입이 개인인 경우 |
|
| 3445 |
+ * 후보자 정보가 있는지 확인하여 후보자 정보가 있다면 세금계산서 정보와 일치하도록 변경된 정보를 후보자 정보도 수정해준다. |
|
| 3446 |
+ * */ |
|
| 3447 |
+ String mberId = loginVO.getId(); |
|
| 3448 |
+ String taxCNm = mberManageVO.getTaxCNm(); |
|
| 3449 |
+ |
|
| 3450 |
+ MberManageVO tmpMberManageVO = mjonMsgDataService.selectMberManageInfo(mberId); |
|
| 3451 |
+ String dept = tmpMberManageVO.getDept(); |
|
| 3452 |
+ |
|
| 3453 |
+ if(dept.equals("p") && taxCNm != null && taxCNm.length() > 0) {
|
|
| 3454 |
+ |
|
| 3455 |
+ MjonCandidateVO mjonCandidateVO = mjonCandidateService.selectCandidateDataInfo(mberId); |
|
| 3456 |
+ String candidateNm = mjonCandidateVO.getCandidateNm(); |
|
| 3457 |
+ if(candidateNm != null && candidateNm.length() > 0) {
|
|
| 3458 |
+ |
|
| 3459 |
+ MjonCandidateVO updtCandidateVO = new MjonCandidateVO(); |
|
| 3460 |
+ |
|
| 3461 |
+ //이메일 정보 아이디/도메인 정보 분리 |
|
| 3462 |
+ String email = mberManageVO.getTaxMngEmail().split("@")[0];
|
|
| 3463 |
+ String emailDomain = mberManageVO.getTaxMngEmail().split("@")[1];
|
|
| 3464 |
+ |
|
| 3465 |
+ /* |
|
| 3466 |
+ * 주민번호 앞, 뒷 자리 암호화 처리하기 |
|
| 3467 |
+ * 세금계산서에서 주민번호는 별도로 암/복호화 처리를 안하고 저장함 |
|
| 3468 |
+ * 기본 가비아 암호화 솔루션 처리로 안한것 같음, 후보자 정보 쪽에서는 전자정부 프레임워크의 암/복호화 적용하여 저장함. |
|
| 3469 |
+ * |
|
| 3470 |
+ * */ |
|
| 3471 |
+ String regidentNo1 = egovCryptoUtil.encrypt(mberManageVO.getTaxCIhidNum().substring(0, 6)); |
|
| 3472 |
+ String regidentNo2 = egovCryptoUtil.encrypt(mberManageVO.getTaxCIhidNum().substring(6, 13)); |
|
| 3473 |
+ |
|
| 3474 |
+ updtCandidateVO.setMberId(mberId); |
|
| 3475 |
+ updtCandidateVO.setCandidateNm(taxCNm); |
|
| 3476 |
+ updtCandidateVO.setRegidentNo1(regidentNo1); |
|
| 3477 |
+ updtCandidateVO.setRegidentNo2(regidentNo2); |
|
| 3478 |
+ updtCandidateVO.setCandidateAddr(mberManageVO.getTaxCAddr()); |
|
| 3479 |
+ updtCandidateVO.setManagerNm(mberManageVO.getTaxMngNm()); |
|
| 3480 |
+ updtCandidateVO.setPhoneNo(mberManageVO.getTaxMngPhoneNum()); |
|
| 3481 |
+ updtCandidateVO.setEmail(email); |
|
| 3482 |
+ updtCandidateVO.setEmailDomain(emailDomain); |
|
| 3483 |
+ updtCandidateVO.setLastUpdusrId(mberId); |
|
| 3484 |
+ |
|
| 3485 |
+ int resultCnt = mjonCandidateService.updateCandidateDataInfo(updtCandidateVO); |
|
| 3486 |
+ |
|
| 3487 |
+ } |
|
| 3488 |
+ |
|
| 3489 |
+ } |
|
| 3490 |
+ |
|
| 3491 |
+ redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
|
|
| 3492 |
+ |
|
| 3493 |
+ } catch (Exception e) {
|
|
| 3494 |
+ System.out.println("updateTaxbill Controller Error!!! " + e);
|
|
| 3495 |
+ |
|
| 3496 |
+ redirectAttributes.addFlashAttribute("message", "세금계산서 정보 수정 중 오류가 발생하였습니다.");
|
|
| 3497 |
+ return "redirect:/web/member/pay/BillPub.do"; |
|
| 3498 |
+ } |
|
| 3432 | 3499 |
|
| 3433 | 3500 |
return "redirect:/web/member/pay/BillPub.do"; |
| 3434 | 3501 |
} |
--- src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java
+++ src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgDAO.java
... | ... | @@ -356,4 +356,17 @@ |
| 356 | 356 |
|
| 357 | 357 |
return update("MjonReservMsgDAO.updateReserveTimeBizMsgSeqListByMsgSeq", mjonResvMsgVO);
|
| 358 | 358 |
} |
| 359 |
+ |
|
| 360 |
+ /** |
|
| 361 |
+ * @Method Name : selectMjonMsgGroupDataByGroupId |
|
| 362 |
+ * @작성일 : 2023. 11. 23. |
|
| 363 |
+ * @작성자 : 우영두 |
|
| 364 |
+ * @Method 설명 : 문자발송 그룹 데이터 테이블 데이터 조회 , 예약취소시 문자발송 정보 조회를 위해 사용 |
|
| 365 |
+ * 예약취소시 전송사별 발송테이블의 데이터 삭제는 완료되었으나, mj_msg_data 테이블의 Deadlock 상황으로 오류 발생시 처리를 위해서 사용 |
|
| 366 |
+ */ |
|
| 367 |
+ public MjonResvMsgVO selectMjonMsgGroupDataChkByGroupId(MjonResvMsgVO mjonResvMsgVO) {
|
|
| 368 |
+ |
|
| 369 |
+ return (MjonResvMsgVO) select("MjonReservMsgDAO.selectMjonMsgGroupDataChkByGroupId", mjonResvMsgVO);
|
|
| 370 |
+ } |
|
| 371 |
+ |
|
| 359 | 372 |
} |
--- src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgServiceImpl.java
+++ src/main/java/itn/let/mjo/reservmsg/service/impl/MjonReservMsgServiceImpl.java
... | ... | @@ -85,6 +85,9 @@ |
| 85 | 85 |
int result = 0; |
| 86 | 86 |
|
| 87 | 87 |
try {
|
| 88 |
+ System.out.println("================= 예약 취소 처리 시작============================");
|
|
| 89 |
+ System.out.println("================= 메세지 그룹 아이디============================" + mjonResvMsgVO.getMsgGroupId());
|
|
| 90 |
+ |
|
| 88 | 91 |
|
| 89 | 92 |
String agentCode = mjonResvMsgVO.getAgentCode(); //전송사 코드번호 |
| 90 | 93 |
String msgType = mjonResvMsgVO.getMsgType(); //문자 종류 - 4:단문, 6:장문 |
... | ... | @@ -102,72 +105,58 @@ |
| 102 | 105 |
|
| 103 | 106 |
mjonResvMsgVO.setUserDataList(userDataList); |
| 104 | 107 |
|
| 105 |
- int ihResult = 0; |
|
| 106 |
- int imoResult = 0; |
|
| 108 |
+ //int ihResult = 0; |
|
| 109 |
+ //int imoResult = 0; |
|
| 107 | 110 |
int bizResult = 0; |
| 108 | 111 |
int jjResult = 0; |
| 109 | 112 |
int ivtResult = 0; |
| 110 |
- int FHSmsResult = 0; |
|
| 111 |
- int FHMmsResult = 0; |
|
| 113 |
+ //int FHSmsResult = 0; |
|
| 114 |
+ //int FHMmsResult = 0; |
|
| 112 | 115 |
int jjB01Result = 0; |
| 113 | 116 |
int jjB02Result = 0; |
| 114 | 117 |
|
| 115 | 118 |
//아이하트 예약취소 삭제 |
| 116 |
- ihResult = mjonReservMsgDAO.deleteIHeartMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 119 |
+ //ihResult = mjonReservMsgDAO.deleteIHeartMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 117 | 120 |
|
| 118 | 121 |
//현대퓨처넷 단문예약취소 삭제 |
| 119 |
- FHSmsResult = mjonReservMsgDAO.deleteHFNSmsMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 122 |
+ //FHSmsResult = mjonReservMsgDAO.deleteHFNSmsMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 120 | 123 |
|
| 121 | 124 |
//현대퓨처넷 장문/그림 문예약취소 삭제 |
| 122 |
- FHMmsResult = mjonReservMsgDAO.deleteHFNMmsMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 125 |
+ //FHMmsResult = mjonReservMsgDAO.deleteHFNMmsMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 123 | 126 |
|
| 124 | 127 |
//아이엠오 예약취소 삭제 |
| 125 |
- imoResult = mjonReservMsgDAO.deleteIMOMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 128 |
+ //imoResult = mjonReservMsgDAO.deleteIMOMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 126 | 129 |
|
| 127 | 130 |
//비트뿌리오 예약취소 삭제 |
| 128 | 131 |
bizResult = mjonReservMsgDAO.deleteBizMsgSeqListByMsgSeq(mjonResvMsgVO); |
| 132 |
+ System.out.println("============================== 다우기술 예약 취소 건수 ::: "+bizResult);
|
|
| 129 | 133 |
|
| 130 | 134 |
//제이제이 예약취소 삭제 |
| 131 | 135 |
jjResult = mjonReservMsgDAO.deleteJJMsgSeqListByMsgSeq(mjonResvMsgVO); |
| 136 |
+ System.out.println("============================== 제이제이 예약 취소 건수 ::: "+jjResult);
|
|
| 132 | 137 |
|
| 133 | 138 |
//인비토 예약취소 삭제 |
| 134 | 139 |
ivtResult = mjonReservMsgDAO.deleteIVTMsgSeqListByMsgSeq(mjonResvMsgVO); |
| 140 |
+ System.out.println("============================== 인비토 예약 취소 건수 ::: "+ivtResult);
|
|
| 135 | 141 |
|
| 136 | 142 |
//제이제이 B01 예약취소 삭제 |
| 137 | 143 |
jjB01Result = mjonReservMsgDAO.deleteJJB01MsgSeqListByMsgSeq(mjonResvMsgVO); |
| 144 |
+ System.out.println("============================== 제이제이 B01 예약 취소 건수 ::: "+jjB01Result);
|
|
| 138 | 145 |
|
| 139 | 146 |
//제이제이 B02 예약취소 삭제 |
| 140 | 147 |
jjB02Result = mjonReservMsgDAO.deleteJJB02MsgSeqListByMsgSeq(mjonResvMsgVO); |
| 148 |
+ System.out.println("============================== 제이제이 B02 예약 취소 건수 ::: "+jjB02Result);
|
|
| 141 | 149 |
|
| 142 | 150 |
//삭제 결과 합산 |
| 143 |
- result = ihResult + FHSmsResult + FHMmsResult + imoResult + bizResult +jjResult + ivtResult + jjB01Result + jjB02Result; |
|
| 151 |
+ //result = ihResult + FHSmsResult + FHMmsResult + imoResult + bizResult +jjResult + ivtResult + jjB01Result + jjB02Result; |
|
| 152 |
+ result = bizResult +jjResult + ivtResult + jjB01Result + jjB02Result; |
|
| 153 |
+ System.out.println("============================== 총 예약 취소 건수 ::: "+result);
|
|
| 144 | 154 |
|
| 145 |
- //각 전송사별 문자 발송 테이블에서 데이터 삭제 처리 |
|
| 146 |
- /*if(agentCode.equals("01")) { //아이하트 메세지 삭제
|
|
| 147 |
- |
|
| 148 |
- result = mjonReservMsgDAO.deleteIHeartMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 149 |
- |
|
| 150 |
- }else if(agentCode.equals("02")) { //현대퓨쳐넷 메세지 삭제
|
|
| 151 |
- |
|
| 152 |
- if(msgType.equals("4")) { //단문 삭제
|
|
| 153 |
- |
|
| 154 |
- result = mjonReservMsgDAO.deleteHFNSmsMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 155 |
- |
|
| 156 |
- }else { //장문, 그림 삭제
|
|
| 157 |
- |
|
| 158 |
- result = mjonReservMsgDAO.deleteHFNMmsMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 159 |
- |
|
| 160 |
- } |
|
| 161 |
- |
|
| 162 |
- }else { //아이엠오 메세지 삭제
|
|
| 163 |
- |
|
| 164 |
- result = mjonReservMsgDAO.deleteIMOMsgSeqListByMsgSeq(mjonResvMsgVO); |
|
| 165 |
- |
|
| 166 |
- }*/ |
|
| 167 | 155 |
|
| 168 | 156 |
//예약 취소 환불 처리 |
| 169 | 157 |
if(result > 0) {
|
| 170 | 158 |
|
| 159 |
+ System.out.println("========================예약취소 상태값 변경 및 환불 처리============================");
|
|
| 171 | 160 |
//mj_msg_data 테이블 예약 취소 값 수정 |
| 172 | 161 |
mjonReservMsgDAO.updateResvMsgCancelDataFlag(mjonResvMsgVO); |
| 173 | 162 |
|
... | ... | @@ -252,6 +241,102 @@ |
| 252 | 241 |
|
| 253 | 242 |
} |
| 254 | 243 |
|
| 244 |
+ }else if(result == 0){
|
|
| 245 |
+ |
|
| 246 |
+ //문자 발송 그룹 테이블의 데이터에 예약 취소가 되었는지 조회 |
|
| 247 |
+ MjonResvMsgVO tmpMjonResvMsgVO = mjonReservMsgDAO.selectMjonMsgGroupDataChkByGroupId(mjonResvMsgVO); |
|
| 248 |
+ String reserveCYn = tmpMjonResvMsgVO.getReserveCYn(); |
|
| 249 |
+ |
|
| 250 |
+ if(reserveCYn.equals("N")) {
|
|
| 251 |
+ |
|
| 252 |
+ result = Integer.parseInt(tmpMjonResvMsgVO.getMsgGroupCnt()); |
|
| 253 |
+ |
|
| 254 |
+ System.out.println("========================예약취소 상태값 변경 및 환불 처리============================");
|
|
| 255 |
+ //mj_msg_data 테이블 예약 취소 값 수정 |
|
| 256 |
+ mjonReservMsgDAO.updateResvMsgCancelDataFlag(mjonResvMsgVO); |
|
| 257 |
+ |
|
| 258 |
+ //mj_msg_group_data 테이블 예약 취소 값 수정 |
|
| 259 |
+ mjonReservMsgDAO.updateResvMsgCancelGroupFlag(mjonResvMsgVO); |
|
| 260 |
+ |
|
| 261 |
+ MjonMsgVO mjonMsgVO = mjonReservMsgDAO.selectMjonMsgGroupData(mjonResvMsgVO); |
|
| 262 |
+ |
|
| 263 |
+ //문자 발송 캐시 차감 해주기 |
|
| 264 |
+ MjonPayVO mjonPayVO = new MjonPayVO(); |
|
| 265 |
+ |
|
| 266 |
+ mjonPayVO.setCashId(idgenMjonCashId.getNextStringId()); |
|
| 267 |
+ mjonPayVO.setUserId(mjonMsgVO.getUserId()); |
|
| 268 |
+ mjonPayVO.setCash(Float.parseFloat(mjonMsgVO.getTotPrice())); |
|
| 269 |
+ mjonPayVO.setFrstRegisterId(mjonMsgVO.getUserId()); |
|
| 270 |
+ mjonPayVO.setMemo("예약문자 취소 " + result + "건 환불");
|
|
| 271 |
+ mjonPayVO.setMsgGroupId(mjonMsgVO.getMsgGroupId()); |
|
| 272 |
+ |
|
| 273 |
+ mjonPayDAO.insertCash(mjonPayVO); //캐시 환불 |
|
| 274 |
+ mjonPayDAO.updateMemberCash(mjonPayVO); //회원정보 업데이트 |
|
| 275 |
+ |
|
| 276 |
+ String eventYn = mjonMsgVO.getEventYn(); |
|
| 277 |
+ |
|
| 278 |
+ if(eventYn.equals("Y")) {//이벤트 단가로 발송한 문자인 경우에만 이벤트 환불 처리해줌
|
|
| 279 |
+ |
|
| 280 |
+ //이벤트 회원의 경우 이벤트 캐시도 환불 처리해줌. |
|
| 281 |
+ MjonEventVO mjonEventVO = new MjonEventVO(); |
|
| 282 |
+ mjonEventVO.setMberId(mjonMsgVO.getUserId()); |
|
| 283 |
+ MjonEventVO eventMberInfo = mjonEventDAO.selectEventMsgMberDefaultInfo(mjonEventVO); |
|
| 284 |
+ |
|
| 285 |
+ float eventRemainCash = 0; |
|
| 286 |
+ boolean compareEndDate = false; |
|
| 287 |
+ |
|
| 288 |
+ if(eventMberInfo != null) {
|
|
| 289 |
+ |
|
| 290 |
+ String eventEndDate = eventMberInfo.getEventEndDate(); //이벤트 종료 일자 |
|
| 291 |
+ String eventStatus = eventMberInfo.getEventStatus(); //이벤트 진행 상태 |
|
| 292 |
+ |
|
| 293 |
+ |
|
| 294 |
+ /** |
|
| 295 |
+ * MJUtil.getCompareDate() |
|
| 296 |
+ * 현재 날짜와 파라미터 전달 날짜를 비교 |
|
| 297 |
+ * 전달날짜를 지난경우 False를 리턴함. |
|
| 298 |
+ * 현재날짜 이전 혹은 같은 날짜면 True를 리턴함. |
|
| 299 |
+ * |
|
| 300 |
+ * */ |
|
| 301 |
+ |
|
| 302 |
+ if(eventStatus.equals("Y") || eventStatus.equals("E")) {//현재 이벤트를 진행 중이거나, 종료 된경우 환불 처리해줌
|
|
| 303 |
+ |
|
| 304 |
+ if(eventEndDate != null) {//이벤트 종료일이 지나지 않은 회원만 환불 처리해줌.
|
|
| 305 |
+ compareEndDate = MJUtil.getCompareDate(eventEndDate); |
|
| 306 |
+ eventRemainCash = (float) eventMberInfo.getEventRemainCash(); |
|
| 307 |
+ |
|
| 308 |
+ |
|
| 309 |
+ if(compareEndDate) {//현재 시간이 이벤트 종료일이 지나지 않았다면
|
|
| 310 |
+ |
|
| 311 |
+ float totEventRemainCash = eventRemainCash + Float.parseFloat(mjonMsgVO.getTotPrice()); //남은 이벤트 캐시 금액에 환불해줄 캐시 금액을 더해준다. |
|
| 312 |
+ |
|
| 313 |
+ //이벤트 상태값을 종료로 변경한다. |
|
| 314 |
+ mjonEventVO.setEventInfoId(eventMberInfo.getEventInfoId()); |
|
| 315 |
+ |
|
| 316 |
+ if(eventStatus.equals("E")) {//이벤트가 종료 된 상태에서 예약 취소를 진행하는 경우 이벤트 종료에서 진행으로 변경 후 캐시 환불 처리
|
|
| 317 |
+ |
|
| 318 |
+ mjonEventVO.setEventStatus("Y");
|
|
| 319 |
+ mjonEventVO.setEventMemo("예약문자 취소로 인한 환물 및 종료되었던 이벤트 진행으로 변경");
|
|
| 320 |
+ |
|
| 321 |
+ }else {//진행중인 경우 기존 상태값 그대로 적용해준다.
|
|
| 322 |
+ |
|
| 323 |
+ mjonEventVO.setEventStatus(eventStatus); |
|
| 324 |
+ |
|
| 325 |
+ } |
|
| 326 |
+ |
|
| 327 |
+ mjonEventVO.setEventRemainCash(totEventRemainCash); |
|
| 328 |
+ mjonEventDAO.updateEventEndStatus(mjonEventVO); |
|
| 329 |
+ |
|
| 330 |
+ } |
|
| 331 |
+ } |
|
| 332 |
+ |
|
| 333 |
+ } |
|
| 334 |
+ |
|
| 335 |
+ } |
|
| 336 |
+ |
|
| 337 |
+ } |
|
| 338 |
+ } |
|
| 339 |
+ |
|
| 255 | 340 |
|
| 256 | 341 |
} |
| 257 | 342 |
|
--- src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java
+++ src/main/java/itn/let/mjo/reservmsg/web/MjonReservMsgController.java
... | ... | @@ -513,7 +513,7 @@ |
| 513 | 513 |
|
| 514 | 514 |
}else {
|
| 515 | 515 |
|
| 516 |
- modelAndView.addObject("message", "예약 발송 처리가 실패 되었습니다.");
|
|
| 516 |
+ modelAndView.addObject("message", "예약 발송 취소 처리가 실패 되었습니다. 잠시 후 다시 시도해 주세요.");
|
|
| 517 | 517 |
modelAndView.addObject("result", "fail");
|
| 518 | 518 |
|
| 519 | 519 |
} |
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgCampainData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgCampainData_SQL_mysql.xml
... | ... | @@ -37,7 +37,6 @@ |
| 37 | 37 |
REGIDENT_NO2, |
| 38 | 38 |
CANDIDATE_ADDR, |
| 39 | 39 |
MANAGER_NM, |
| 40 |
- OFFICE, |
|
| 41 | 40 |
PHONE_NO, |
| 42 | 41 |
EMAIL, |
| 43 | 42 |
EMAIL_DOMAIN, |
... | ... | @@ -54,7 +53,6 @@ |
| 54 | 53 |
#regidentNo2#, |
| 55 | 54 |
#candidateAddr#, |
| 56 | 55 |
#managerNm#, |
| 57 |
- #office#, |
|
| 58 | 56 |
#phoneNo#, |
| 59 | 57 |
#email#, |
| 60 | 58 |
#emailDomain#, |
... | ... | @@ -75,7 +73,6 @@ |
| 75 | 73 |
REGIDENT_NO2 = #regidentNo2#, |
| 76 | 74 |
CANDIDATE_ADDR = #candidateAddr#, |
| 77 | 75 |
MANAGER_NM = #managerNm#, |
| 78 |
- OFFICE = #office#, |
|
| 79 | 76 |
PHONE_NO = #phoneNo#, |
| 80 | 77 |
EMAIL = #email#, |
| 81 | 78 |
EMAIL_DOMAIN = #emailDomain#, |
... | ... | @@ -90,6 +87,19 @@ |
| 90 | 87 |
WHERE MBER_ID = #mberId# |
| 91 | 88 |
</delete> |
| 92 | 89 |
|
| 90 |
+ <update id="mjonCandidateDAO.updateTaxBillMemberInfo" parameterClass="mjonCandidateVO"> |
|
| 91 |
+ |
|
| 92 |
+ UPDATE LETTNGNRLMBER SET |
|
| 93 |
+ TAX_MNG_EMAIL = #emailFullStr#, |
|
| 94 |
+ TAX_MNG_NM = #managerNm#, |
|
| 95 |
+ TAX_MNG_PHONENUM = #phoneNo#, |
|
| 96 |
+ TAX_C_NM = #candidateNm#, |
|
| 97 |
+ TAX_C_IHIDNUM = #regidentNoFullStr#, |
|
| 98 |
+ TAX_C_ADDR = #candidateAddr# |
|
| 99 |
+ WHERE MBER_ID = #mberId# |
|
| 100 |
+ |
|
| 101 |
+ </update> |
|
| 102 |
+ |
|
| 93 | 103 |
</sqlMap> |
| 94 | 104 |
|
| 95 | 105 |
|
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgResv_SQL_mysql.xml
... | ... | @@ -938,6 +938,27 @@ |
| 938 | 938 |
|
| 939 | 939 |
</update> |
| 940 | 940 |
|
| 941 |
+ <select id="MjonReservMsgDAO.selectMjonMsgGroupDataChkByGroupId" parameterClass="mjonMsgResvVO" resultClass="mjonMsgResvVO"> |
|
| 942 |
+ |
|
| 943 |
+ SELECT MSG_GROUP_ID AS msgGroupId, |
|
| 944 |
+ USER_ID AS userId, |
|
| 945 |
+ MSG_GROUP_CNT AS msgGroupCnt, |
|
| 946 |
+ EACH_PRICE AS eachPrice, |
|
| 947 |
+ TOT_PRICE AS totPrice, |
|
| 948 |
+ RESERVE_YN AS reserveYn, |
|
| 949 |
+ RESERVE_C_YN AS reserveCYn, |
|
| 950 |
+ BEF_CASH AS befCash, |
|
| 951 |
+ BEF_POINT AS befPoint, |
|
| 952 |
+ CANCELDATE AS canceldate, |
|
| 953 |
+ EVENT_YN AS eventYn |
|
| 954 |
+ FROM MJ_MSG_GROUP_DATA A |
|
| 955 |
+ WHERE A.USER_ID = #userId# |
|
| 956 |
+ AND A.RESERVE_YN = 'Y' |
|
| 957 |
+ AND A.DEL_FLAG = 'N' |
|
| 958 |
+ AND A.MSG_GROUP_ID = #msgGroupId# |
|
| 959 |
+ |
|
| 960 |
+ </select> |
|
| 961 |
+ |
|
| 941 | 962 |
</sqlMap> |
| 942 | 963 |
|
| 943 | 964 |
|
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
... | ... | @@ -2839,6 +2839,13 @@ |
| 2839 | 2839 |
|
| 2840 | 2840 |
} |
| 2841 | 2841 |
|
| 2842 |
+function fn_mberDeptChk(){
|
|
| 2843 |
+ |
|
| 2844 |
+ alert("선거문자는 개인 회원만 이용 가능합니다.");
|
|
| 2845 |
+ return false; |
|
| 2846 |
+ |
|
| 2847 |
+} |
|
| 2848 |
+ |
|
| 2842 | 2849 |
|
| 2843 | 2850 |
function goToCustom(){
|
| 2844 | 2851 |
var form = document.goToCustomForm; |
... | ... | @@ -3254,11 +3261,9 @@ |
| 3254 | 3261 |
<input type="hidden" id="dataType" name="dataType" value="Reg"/> |
| 3255 | 3262 |
|
| 3256 | 3263 |
<div class="layer_in"> |
| 3257 |
- <p class="adr_pop_title">선거문자는 반드시 <span class="c_002c9a">후보자 등록</span>을 하셔야만 이용 가능합니다.</p> |
|
| 3264 |
+ <p class="adr_pop_title">선거문자는 반드시 <span class="c_002c9a">후보자 등록</span>을 하셔야만 이용 가능합니다. <br/>입력하신 내용은 세금계산서 발행을 위한 정보로만 사용됩니다.</p> |
|
| 3258 | 3265 |
<div class="candidate_table"> |
| 3259 | 3266 |
<p>후보자</p> |
| 3260 |
- |
|
| 3261 |
- |
|
| 3262 | 3267 |
<table> |
| 3263 | 3268 |
<caption>후보자 등록을 위한 성명, 주민등록번호, 주소를 입력하는 표</caption> |
| 3264 | 3269 |
<colgroup> |
... | ... | @@ -3309,13 +3314,13 @@ |
| 3309 | 3314 |
<input type="text" id="managerNm" name="managerNm" value="<c:out value='${mjonCandidateVO.managerNm}'/>" placeholder="담당자 성명 입력" onfocus="this.placeholder=''" onblur="this.placeholder='담당자 성명 입력'" class="inputLight">
|
| 3310 | 3315 |
</td> |
| 3311 | 3316 |
</tr> |
| 3312 |
- <tr> |
|
| 3317 |
+ <%-- <tr> |
|
| 3313 | 3318 |
<th scope="row">직위</th> |
| 3314 | 3319 |
<td> |
| 3315 | 3320 |
<label for="office" class="label"></label> |
| 3316 | 3321 |
<input type="text" id="office" name="office" value="<c:out value='${mjonCandidateVO.office}'/>" placeholder="직위 입력" onfocus="this.placeholder=''" onblur="this.placeholder='직위 입력'" class="inputLight">
|
| 3317 | 3322 |
</td> |
| 3318 |
- </tr> |
|
| 3323 |
+ </tr> --%> |
|
| 3319 | 3324 |
<tr> |
| 3320 | 3325 |
<th scope="row">휴대폰</th> |
| 3321 | 3326 |
<td> |
... | ... | @@ -3828,6 +3833,9 @@ |
| 3828 | 3833 |
<c:when test="${empty LoginVO}">
|
| 3829 | 3834 |
<button type="button" class="btnType" onclick="javascript:fn_candidateLoginChk(); return false;"><i class="election_btn1"></i>후보자 등록</button> |
| 3830 | 3835 |
</c:when> |
| 3836 |
+ <c:when test="${not empty mberManageVO && mberManageVO.dept eq 'c'}">
|
|
| 3837 |
+ <button type="button" class="btnType" onclick="javascript:fn_mberDeptChk(); return false;"><i class="election_btn1"></i>후보자 등록</button> |
|
| 3838 |
+ </c:when> |
|
| 3831 | 3839 |
<c:otherwise> |
| 3832 | 3840 |
<button type="button" class="btnType" data-tooltip="candidate_popup01"><i class="election_btn1"></i>후보자 등록</button> |
| 3833 | 3841 |
</c:otherwise> |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?