diff --git a/src/main/java/itn/let/cert/phone/service/CertPhoneService.java b/src/main/java/itn/let/cert/phone/service/CertPhoneService.java index 53b89485..db97802c 100644 --- a/src/main/java/itn/let/cert/phone/service/CertPhoneService.java +++ b/src/main/java/itn/let/cert/phone/service/CertPhoneService.java @@ -3,6 +3,7 @@ package itn.let.cert.phone.service; import java.util.List; import itn.let.mail.service.StatusResponse; +import itn.let.uat.uia.web.SendLogVO; public interface CertPhoneService { @@ -28,6 +29,9 @@ public interface CertPhoneService { public StatusResponse updateMberCertPhone(MberCertPhoneVO mberCertPhoneVO); + public StatusResponse selectSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO); + + diff --git a/src/main/java/itn/let/cert/phone/service/MberCertPhoneVO.java b/src/main/java/itn/let/cert/phone/service/MberCertPhoneVO.java index 2eda23e9..81eb9ae2 100644 --- a/src/main/java/itn/let/cert/phone/service/MberCertPhoneVO.java +++ b/src/main/java/itn/let/cert/phone/service/MberCertPhoneVO.java @@ -32,6 +32,8 @@ public class MberCertPhoneVO extends UserDefaultVO{ private String certMemo; private String certUseYn; + private String checkNo; + @@ -66,6 +68,12 @@ public class MberCertPhoneVO extends UserDefaultVO{ public void setCertUseYn(String certUseYn) { this.certUseYn = certUseYn; } + public String getCheckNo() { + return checkNo; + } + public void setCheckNo(String checkNo) { + this.checkNo = checkNo; + } diff --git a/src/main/java/itn/let/cert/phone/service/impl/CertPhoneDAO.java b/src/main/java/itn/let/cert/phone/service/impl/CertPhoneDAO.java index d2a7931e..da5e107a 100644 --- a/src/main/java/itn/let/cert/phone/service/impl/CertPhoneDAO.java +++ b/src/main/java/itn/let/cert/phone/service/impl/CertPhoneDAO.java @@ -34,4 +34,8 @@ public class CertPhoneDAO extends EgovAbstractDAO { public List selectMberCertPhoneListVO(MberCertPhoneVO mberCertPhoneVO) { return (List) list("mberCertPhoneVO.selectMberCertPhoneListVO", mberCertPhoneVO); } + + public int countSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO) { + return (int) select("mberCertPhoneVO.countSysMsgLogCheck", mberCertPhoneVO); + } } diff --git a/src/main/java/itn/let/cert/phone/service/impl/CertPhoneServiceImpl.java b/src/main/java/itn/let/cert/phone/service/impl/CertPhoneServiceImpl.java index 4f59bc91..c2faf188 100644 --- a/src/main/java/itn/let/cert/phone/service/impl/CertPhoneServiceImpl.java +++ b/src/main/java/itn/let/cert/phone/service/impl/CertPhoneServiceImpl.java @@ -64,5 +64,22 @@ public class CertPhoneServiceImpl extends EgovAbstractServiceImpl implements Cer certPhoneDAO.updateMberCertPhone(mberCertPhoneVO); return new StatusResponse(HttpStatus.OK, "수정 하였습니다.", LocalDateTime.now()); } + + + @Override + public StatusResponse selectSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO) { + // TODO Auto-generated method stub + + int certCnt = 0; + certCnt = certPhoneDAO.countSysMsgLogCheck(mberCertPhoneVO); + + if(certCnt < 1) { + return new StatusResponse(HttpStatus.BAD_REQUEST, "[인증번호 불일치] 입력하신 정보를 재확인 해주세요.", LocalDateTime.now()); + } + + return new StatusResponse(HttpStatus.OK, "", LocalDateTime.now()); + } + + } diff --git a/src/main/java/itn/let/cert/phone/web/CertPhoneController.java b/src/main/java/itn/let/cert/phone/web/CertPhoneController.java index 3dff2eee..497102e3 100644 --- a/src/main/java/itn/let/cert/phone/web/CertPhoneController.java +++ b/src/main/java/itn/let/cert/phone/web/CertPhoneController.java @@ -1,6 +1,8 @@ package itn.let.cert.phone.web; import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; import javax.annotation.Resource; @@ -14,9 +16,13 @@ import org.springframework.web.servlet.ModelAndView; import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; import itn.com.cmm.LoginVO; import itn.com.utl.fcc.service.EgovStringUtil; -import itn.let.cert.phone.service.MberCertPhoneVO; import itn.let.cert.phone.service.CertPhoneService; +import itn.let.cert.phone.service.MberCertPhoneVO; import itn.let.mail.service.StatusResponse; +import itn.let.mjo.msg.service.MjonMsgVO; +import itn.let.mjo.msgdata.service.MjonMsgDataService; +import itn.let.mjo.msgdata.service.MjonMsgReturnVO; +import itn.let.uat.uia.web.SendLogVO; /** * @@ -40,8 +46,28 @@ public class CertPhoneController { @Resource(name = "CertPhoneService") private CertPhoneService certPhoneService; + @Resource(name = "MjonMsgDataService") + private MjonMsgDataService mjonMsgDataService; + + @RequestMapping(value = {"/cert/phone/selectMberCertPhoneList"}) + public ResponseEntity selectMberCertPhoneList(MberCertPhoneVO mberCertPhoneVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId == null) { + if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); + } + mberCertPhoneVO.setMberId(userId); + + return ResponseEntity.ok().body(certPhoneService.selectMberCertPhoneList(mberCertPhoneVO)); + } @RequestMapping(value = {"/cert/phone/findByCertPhoneInfo.do"}) public ResponseEntity findByCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) throws Exception { @@ -73,6 +99,7 @@ public class CertPhoneController { if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); } mberCertPhoneVO.setFrstRegisterId(userId); + mberCertPhoneVO.setMberId(userId); return ResponseEntity.ok().body(certPhoneService.insertCertPhone(mberCertPhoneVO)); @@ -121,25 +148,8 @@ public class CertPhoneController { - - - - - - - - - - - - - /* - - @RequestMapping(value = {"/uss/umt/user/updateCertPhone.do"}) - public ResponseEntity updateCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); + @RequestMapping(value = {"/cert/phone/sendSysMsgDataAjax.do"}) + public ResponseEntity sendSysMsgDataAjax(MberCertPhoneVO mberCertPhoneVO) throws Exception { //로그인 권한정보 불러오기 LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; @@ -148,31 +158,69 @@ public class CertPhoneController { if(userId == null) { if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); } - mberCertPhoneVO.setFrstRegisterId(userId); + mberCertPhoneVO.setMberId(userId); + + - return ResponseEntity.ok().body(certPhoneService.updateMberCertPhoneInfo(mberCertPhoneVO)); + + MjonMsgVO mjonMsgVO = new MjonMsgVO(); + mjonMsgVO.setCallTo(mberCertPhoneVO.getMbtlnum()); + MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO); + + + String resultSts = returnVO.getSendMsgCnt(); + String resultBlockSts = returnVO.getSendMsgBlockCnt(); + + String msg= ""; + Map returnMap = new HashMap<>(); + HttpStatus httpStatus = null; + if (!resultSts.equals("0")) { + + httpStatus = HttpStatus.OK; + returnMap.put("msg", "문자 전송이 완료되었습니다."); + returnMap.put("resultSts", resultSts); + returnMap.put("resultBlockSts", resultBlockSts); + + } else { + + httpStatus = HttpStatus.BAD_REQUEST; + returnMap.put("msg", "문자 전송에 오류가 발생하였습니다."); + returnMap.put("resultSts", "0"); + returnMap.put("resultBlockSts", "0"); + + } + return ResponseEntity.ok().body(new StatusResponse(httpStatus, returnMap, LocalDateTime.now())); + } - @RequestMapping(value = {"/uss/umt/user/deleteCertPhone.do"}) - public ResponseEntity deleteCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - + + + @RequestMapping(value = {"/cert/phone/selectSysMsgLogCheck.do"}) + public ResponseEntity selectSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO) throws Exception { + //로그인 권한정보 불러오기 LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); - + if(userId == null) { if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); } - mberCertPhoneVO.setLastUpdusrId(userId); - - - - return ResponseEntity.ok().body(certPhoneService.deleteCertPhoneInfo(mberCertPhoneVO)); - } - */ - + mberCertPhoneVO.setMberId(userId); +// + return ResponseEntity.ok().body(certPhoneService.selectSysMsgLogCheck(mberCertPhoneVO)); + + } + + + + + + + + + + + + } \ No newline at end of file diff --git a/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java b/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java index 7bb6990a..9b50c130 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java +++ b/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java @@ -177,6 +177,8 @@ public interface MjonMsgDataService { //팩스 거래명세서 합산 정보 public List selectPayUserSumFaxList(MjonMsgVO mjonMsgVO) throws Exception; + public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO) throws Exception; + diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java index 91a619ab..46cb334c 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.Random; import javax.annotation.Resource; @@ -3156,5 +3157,86 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M return mjonMsgDataDAO.selectPayUserSumFaxList(mjonMsgVO); } + @Override + public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO) throws Exception { + + + + // 비밀번호 찾기 문자내용 + String contents = "[문자온] 인증번호 : %code%"; + String code = ""; + long seed = System.currentTimeMillis(); + Random random = new Random(seed); + // code = Integer.toString(random.nextInt(4)); + StringBuffer randomCode = new StringBuffer(); + for (int i = 0; i < 6; i++) { + code = randomCode.append(Integer.toString(random.nextInt(10))).toString(); + } + contents = contents.replace("%code%", code); + System.out.println("contents : "+ contents); + System.out.println("contents : "+ contents); + System.out.println("contents : "+ contents); + System.out.println("contents : "+ contents); + System.out.println("contents : "+ contents); + + mjonMsgVO.setSmsTxt(contents); + mjonMsgVO.setReserveYn("N"); + // 시스템 문자발송 번호 + mjonMsgVO.setCallFrom("15518011"); + + mjonMsgVO.setUserId("system"); + + String msgType = "4"; + + // 전송사 전송 배분 + MjonMsgVO pramVO = new MjonMsgVO(); + List sendRateList = mjonMsgDAO.selectTodayAgentSendCntList(pramVO); // 전송사 전송 배분률 및 현재 전송건수 + // 조회 + for (MjonMsgVO tmpVO : sendRateList) { + float cnt = Float.parseFloat(tmpVO.getMsgGroupCnt()); + float totCnt = tmpVO.getTotCnt(); + tmpVO.setSendRateInfo(Float.parseFloat(tmpVO.getSendRate()) - (cnt / totCnt * 100)); // 배분률 - 현재전송 비율 + } + + String sendAgent = sendRateList.get(0).getAgentCode(); + float maxRate = sendRateList.get(0).getSendRateInfo(); + for (MjonMsgVO tmpVO : sendRateList) { // 배분률 대비 현재전송 비율이 가장 적은거 찾기 + if (maxRate < tmpVO.getSendRateInfo()) { + maxRate = tmpVO.getSendRateInfo(); + sendAgent = tmpVO.getAgentCode(); + } + } + + mjonMsgVO.setMsgDiv("S"); // 단문 + + // 문자타입별 대표전송사 정보 + MjonMsgVO mjonMsgVO2 = new MjonMsgVO(); + mjonMsgVO2 = mjonMsgDAO.selectRepMsgAgetnInfo(mjonMsgVO); + // 전송사 구분 코드 - 01 : 아이하트, 02 : 현대 퓨쳐넷, 03 : 아이엠오, 04 : 다우기술 + mjonMsgVO.setAgentCode(mjonMsgVO2.getAgentCode()); //전송사 선택 + // 전송금액 + mjonMsgVO.setTotPrice(mjonMsgVO2.getAgentPrice().toString()); //총금액 + mjonMsgVO.setEachPrice(mjonMsgVO2.getAgentPrice().toString()); //한건 금액 + + mjonMsgVO.setMsgType("4"); + + MjonMsgReturnVO returnVO = mjonMsgDataService.insertSysMsgDataInfo(mjonMsgVO); + + + // 시스템 발송 로그 + SendLogVO sendLogVO = new SendLogVO(); + // SendType 1:문자로 발송 2:이메일로 발송 + sendLogVO.setSendId(returnVO.getMsgGroupId()); + sendLogVO.setSendType("1"); + sendLogVO.setFrstSendInfo(mjonMsgVO.getCallFrom()); + sendLogVO.setReceive(mjonMsgVO.getCallTo()); + sendLogVO.setCheckNo(code); + sendLogVO.setContents(contents); + + mjonMsgDataService.insertSysMsgLog(sendLogVO); + + return returnVO; + } + } diff --git a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java index 23ea14b5..e5eda7b6 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java @@ -3588,27 +3588,6 @@ public class EgovLoginController { String resultSts = "0"; String resultBlockSts = "0"; - // 비밀번호 찾기 문자내용 - String contents = "[문자온] 인증번호 : %code%"; - String code = ""; - long seed = System.currentTimeMillis(); - Random random = new Random(seed); - // code = Integer.toString(random.nextInt(4)); - StringBuffer randomCode = new StringBuffer(); - for (int i = 0; i < 6; i++) { - code = randomCode.append(Integer.toString(random.nextInt(10))).toString(); - } - contents = contents.replace("%code%", code); - System.out.println("contents : "+ contents); - System.out.println("contents : "+ contents); - System.out.println("contents : "+ contents); - System.out.println("contents : "+ contents); - System.out.println("contents : "+ contents); - - mjonMsgVO.setSmsTxt(contents); - mjonMsgVO.setReserveYn("N"); - // 시스템 문자발송 번호 - mjonMsgVO.setCallFrom("15518011"); // 문자 수신 번호 jsp에서 받아와야함! /* mjonMsgVO.setCallTo(callTo); */ @@ -3619,22 +3598,6 @@ public class EgovLoginController { // 사용자 유효성 검사 // id, hp, nm try { - UserManageVO userManageVO = new UserManageVO(); - - userManageVO.setEmplyrId(mjonMsgVO.getUserId()); - userManageVO.setEmplyrNm(mjonMsgVO.getSearchNm()); - userManageVO.setMoblphonNo(mjonMsgVO.getCallTo()); - - - - - - - - - MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO(); - mberCertPhoneVO.setMbtlnum(mjonMsgVO.getCallTo()); - mberCertPhoneVO.setMberId(mjonMsgVO.getUserId()); List mberCertPhoneList = certPhoneService.selectMberCertPhoneList(mjonMsgVO.getUserId()); @@ -3655,7 +3618,13 @@ public class EgovLoginController { return modelAndView; } - + + UserManageVO userManageVO = new UserManageVO(); + + userManageVO.setEmplyrId(mjonMsgVO.getUserId()); + userManageVO.setEmplyrNm(mjonMsgVO.getSearchNm()); + userManageVO.setMoblphonNo(mjonMsgVO.getCallTo()); + List usedNmList = userManageService.selectUserIdAjax2(userManageVO); if(!usedNmList.get(0).getMberSttus().equals("Y")) { @@ -3685,59 +3654,15 @@ public class EgovLoginController { } try { - - mjonMsgVO.setUserId("system"); - - String msgType = "4"; - - // 전송사 전송 배분 - MjonMsgVO pramVO = new MjonMsgVO(); - List sendRateList = mjonMsgService.selectTodayAgentSendCntList(pramVO); // 전송사 전송 배분률 및 현재 전송건수 - // 조회 - for (MjonMsgVO tmpVO : sendRateList) { - float cnt = Float.parseFloat(tmpVO.getMsgGroupCnt()); - float totCnt = tmpVO.getTotCnt(); - tmpVO.setSendRateInfo(Float.parseFloat(tmpVO.getSendRate()) - (cnt / totCnt * 100)); // 배분률 - 현재전송 비율 - } - - String sendAgent = sendRateList.get(0).getAgentCode(); - float maxRate = sendRateList.get(0).getSendRateInfo(); - for (MjonMsgVO tmpVO : sendRateList) { // 배분률 대비 현재전송 비율이 가장 적은거 찾기 - if (maxRate < tmpVO.getSendRateInfo()) { - maxRate = tmpVO.getSendRateInfo(); - sendAgent = tmpVO.getAgentCode(); - } - } - - mjonMsgVO.setMsgDiv("S"); // 단문 - // 문자타입별 대표전송사 정보 - MjonMsgVO mjonMsgVO2 = new MjonMsgVO(); - mjonMsgVO2 = mjonMsgService.selectRepMsgAgetnInfo(mjonMsgVO); - // 전송사 구분 코드 - 01 : 아이하트, 02 : 현대 퓨쳐넷, 03 : 아이엠오, 04 : 다우기술 - mjonMsgVO.setAgentCode(mjonMsgVO2.getAgentCode()); //전송사 선택 - // 전송금액 - mjonMsgVO.setTotPrice(mjonMsgVO2.getAgentPrice().toString()); //총금액 - mjonMsgVO.setEachPrice(mjonMsgVO2.getAgentPrice().toString()); //한건 금액 - - mjonMsgVO.setMsgType("4"); - - MjonMsgReturnVO returnVO = mjonMsgDataService.insertSysMsgDataInfo(mjonMsgVO); + + + + MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO); resultSts = returnVO.getSendMsgCnt(); resultBlockSts = returnVO.getSendMsgBlockCnt(); - // 시스템 발송 로그 - SendLogVO sendLogVO = new SendLogVO(); - // SendType 1:문자로 발송 2:이메일로 발송 - sendLogVO.setSendId(returnVO.getMsgGroupId()); - sendLogVO.setSendType("1"); - sendLogVO.setFrstSendInfo(mjonMsgVO.getCallFrom()); - sendLogVO.setReceive(mjonMsgVO.getCallTo()); - sendLogVO.setCheckNo(code); - sendLogVO.setContents(contents); - - mjonMsgDataService.insertSysMsgLog(sendLogVO); } catch (Exception e) { diff --git a/src/main/resources/egovframework/sqlmap/let/cert/MjonCertPhone_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/cert/MjonCertPhone_SQL_mysql.xml index 6add6b57..a5e5ed0c 100644 --- a/src/main/resources/egovframework/sqlmap/let/cert/MjonCertPhone_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/cert/MjonCertPhone_SQL_mysql.xml @@ -115,5 +115,20 @@ + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml index eeb9130a..1c4cd0c4 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml @@ -3724,6 +3724,7 @@ + + + + + 인증번호 + + + + + + + + + + + + + + + + + + + + +
@@ -775,7 +973,7 @@ function callTo() {

인증에 사용할 휴대폰번호를 추가로 등록하여 관리할 수 있습니다.
(등록 및 삭제 시 휴대폰 본인인증 필요)

- +