Merge branch 'rosewiper'

This commit is contained in:
rosewiper 2023-11-23 14:37:31 +09:00
commit 69f1480212
12 changed files with 394 additions and 127 deletions

View File

@ -13,4 +13,7 @@ public interface MjonCandidateService {
// 선거문자 후보자 삭제 처리
public int deleteCandidateDataInfo(MjonCandidateVO mjonCandidateVO) throws Exception;
// 선거문자 후보자 등록/수정시 회원정보 테이블 세금계산서 정보 수정해주기
public int updateTaxBillMemberInfo(MjonCandidateVO mjonCandidateVO) throws Exception;
}

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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;
}

View File

@ -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";
}

View File

@ -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);
}
}

View File

@ -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);
}
}
}
}
}
}
}

View File

@ -513,7 +513,7 @@ public class MjonReservMsgController {
}else {
modelAndView.addObject("message", "예약 발송 처리가 실패 되었습니다.");
modelAndView.addObject("message", "예약 발송 취소 처리가 실패 되었습니다. 잠시 후 다시 시도해 주세요.");
modelAndView.addObject("result", "fail");
}

View File

@ -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#
</delete>
<update id="mjonCandidateDAO.updateTaxBillMemberInfo" parameterClass="mjonCandidateVO">
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#
</update>
</sqlMap>

View File

@ -938,6 +938,27 @@
</update>
<select id="MjonReservMsgDAO.selectMjonMsgGroupDataChkByGroupId" parameterClass="mjonMsgResvVO" resultClass="mjonMsgResvVO">
SELECT MSG_GROUP_ID AS msgGroupId,
USER_ID AS userId,
MSG_GROUP_CNT AS msgGroupCnt,
EACH_PRICE AS eachPrice,
TOT_PRICE AS totPrice,
RESERVE_YN AS reserveYn,
RESERVE_C_YN AS reserveCYn,
BEF_CASH AS befCash,
BEF_POINT AS befPoint,
CANCELDATE AS canceldate,
EVENT_YN AS eventYn
FROM MJ_MSG_GROUP_DATA A
WHERE A.USER_ID = #userId#
AND A.RESERVE_YN = 'Y'
AND A.DEL_FLAG = 'N'
AND A.MSG_GROUP_ID = #msgGroupId#
</select>
</sqlMap>

View File

@ -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) {
<input type="hidden" id="dataType" name="dataType" value="Reg"/>
<div class="layer_in">
<p class="adr_pop_title">선거문자는 반드시 <span class="c_002c9a">후보자 등록</span>을 하셔야만 이용 가능합니다.</p>
<p class="adr_pop_title">선거문자는 반드시 <span class="c_002c9a">후보자 등록</span>을 하셔야만 이용 가능합니다. <br/>입력하신 내용은 세금계산서 발행을 위한 정보로만 사용됩니다.</p>
<div class="candidate_table">
<p>후보자</p>
<table>
<caption>후보자 등록을 위한 성명, 주민등록번호, 주소를 입력하는 표</caption>
<colgroup>
@ -3309,13 +3314,13 @@ function getMjMsgSentListAll(pageNo) {
<input type="text" id="managerNm" name="managerNm" value="<c:out value='${mjonCandidateVO.managerNm}'/>" placeholder="담당자 성명 입력" onfocus="this.placeholder=''" onblur="this.placeholder='담당자 성명 입력'" class="inputLight">
</td>
</tr>
<tr>
<%-- <tr>
<th scope="row">직위</th>
<td>
<label for="office" class="label"></label>
<input type="text" id="office" name="office" value="<c:out value='${mjonCandidateVO.office}'/>" placeholder="직위 입력" onfocus="this.placeholder=''" onblur="this.placeholder='직위 입력'" class="inputLight">
</td>
</tr>
</tr> --%>
<tr>
<th scope="row">휴대폰</th>
<td>
@ -3828,6 +3833,9 @@ function getMjMsgSentListAll(pageNo) {
<c:when test="${empty LoginVO}">
<button type="button" class="btnType" onclick="javascript:fn_candidateLoginChk(); return false;"><i class="election_btn1"></i>후보자 등록</button>
</c:when>
<c:when test="${not empty mberManageVO && mberManageVO.dept eq 'c'}">
<button type="button" class="btnType" onclick="javascript:fn_mberDeptChk(); return false;"><i class="election_btn1"></i>후보자 등록</button>
</c:when>
<c:otherwise>
<button type="button" class="btnType" data-tooltip="candidate_popup01"><i class="election_btn1"></i>후보자 등록</button>
</c:otherwise>