--- src/main/java/itn/let/cert/phone/service/CertPhoneService.java
+++ src/main/java/itn/let/cert/phone/service/CertPhoneService.java
... | ... | @@ -3,6 +3,7 @@ |
| 3 | 3 |
import java.util.List; |
| 4 | 4 |
|
| 5 | 5 |
import itn.let.mail.service.StatusResponse; |
| 6 |
+import itn.let.uat.uia.web.SendLogVO; |
|
| 6 | 7 |
|
| 7 | 8 |
public interface CertPhoneService {
|
| 8 | 9 |
|
... | ... | @@ -28,6 +29,9 @@ |
| 28 | 29 |
|
| 29 | 30 |
public StatusResponse updateMberCertPhone(MberCertPhoneVO mberCertPhoneVO); |
| 30 | 31 |
|
| 32 |
+ public StatusResponse selectSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO); |
|
| 33 |
+ |
|
| 34 |
+ |
|
| 31 | 35 |
|
| 32 | 36 |
|
| 33 | 37 |
|
--- src/main/java/itn/let/cert/phone/service/MberCertPhoneVO.java
+++ src/main/java/itn/let/cert/phone/service/MberCertPhoneVO.java
... | ... | @@ -32,6 +32,8 @@ |
| 32 | 32 |
private String certMemo; |
| 33 | 33 |
private String certUseYn; |
| 34 | 34 |
|
| 35 |
+ private String checkNo; |
|
| 36 |
+ |
|
| 35 | 37 |
|
| 36 | 38 |
|
| 37 | 39 |
|
... | ... | @@ -66,6 +68,12 @@ |
| 66 | 68 |
public void setCertUseYn(String certUseYn) {
|
| 67 | 69 |
this.certUseYn = certUseYn; |
| 68 | 70 |
} |
| 71 |
+ public String getCheckNo() {
|
|
| 72 |
+ return checkNo; |
|
| 73 |
+ } |
|
| 74 |
+ public void setCheckNo(String checkNo) {
|
|
| 75 |
+ this.checkNo = checkNo; |
|
| 76 |
+ } |
|
| 69 | 77 |
|
| 70 | 78 |
|
| 71 | 79 |
|
--- src/main/java/itn/let/cert/phone/service/impl/CertPhoneDAO.java
+++ src/main/java/itn/let/cert/phone/service/impl/CertPhoneDAO.java
... | ... | @@ -34,4 +34,8 @@ |
| 34 | 34 |
public List<MberCertPhoneVO> selectMberCertPhoneListVO(MberCertPhoneVO mberCertPhoneVO) {
|
| 35 | 35 |
return (List<MberCertPhoneVO>) list("mberCertPhoneVO.selectMberCertPhoneListVO", mberCertPhoneVO);
|
| 36 | 36 |
} |
| 37 |
+ |
|
| 38 |
+ public int countSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO) {
|
|
| 39 |
+ return (int) select("mberCertPhoneVO.countSysMsgLogCheck", mberCertPhoneVO);
|
|
| 40 |
+ } |
|
| 37 | 41 |
} |
--- src/main/java/itn/let/cert/phone/service/impl/CertPhoneServiceImpl.java
+++ src/main/java/itn/let/cert/phone/service/impl/CertPhoneServiceImpl.java
... | ... | @@ -64,5 +64,22 @@ |
| 64 | 64 |
certPhoneDAO.updateMberCertPhone(mberCertPhoneVO); |
| 65 | 65 |
return new StatusResponse(HttpStatus.OK, "수정 하였습니다.", LocalDateTime.now()); |
| 66 | 66 |
} |
| 67 |
+ |
|
| 68 |
+ |
|
| 69 |
+ @Override |
|
| 70 |
+ public StatusResponse selectSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO) {
|
|
| 71 |
+ // TODO Auto-generated method stub |
|
| 72 |
+ |
|
| 73 |
+ int certCnt = 0; |
|
| 74 |
+ certCnt = certPhoneDAO.countSysMsgLogCheck(mberCertPhoneVO); |
|
| 75 |
+ |
|
| 76 |
+ if(certCnt < 1) {
|
|
| 77 |
+ return new StatusResponse(HttpStatus.BAD_REQUEST, "[인증번호 불일치] 입력하신 정보를 재확인 해주세요.", LocalDateTime.now()); |
|
| 78 |
+ } |
|
| 79 |
+ |
|
| 80 |
+ return new StatusResponse(HttpStatus.OK, "", LocalDateTime.now()); |
|
| 81 |
+ } |
|
| 82 |
+ |
|
| 83 |
+ |
|
| 67 | 84 |
|
| 68 | 85 |
} |
--- src/main/java/itn/let/cert/phone/web/CertPhoneController.java
+++ src/main/java/itn/let/cert/phone/web/CertPhoneController.java
... | ... | @@ -1,6 +1,8 @@ |
| 1 | 1 |
package itn.let.cert.phone.web; |
| 2 | 2 |
|
| 3 | 3 |
import java.time.LocalDateTime; |
| 4 |
+import java.util.HashMap; |
|
| 5 |
+import java.util.Map; |
|
| 4 | 6 |
|
| 5 | 7 |
import javax.annotation.Resource; |
| 6 | 8 |
|
... | ... | @@ -14,9 +16,13 @@ |
| 14 | 16 |
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; |
| 15 | 17 |
import itn.com.cmm.LoginVO; |
| 16 | 18 |
import itn.com.utl.fcc.service.EgovStringUtil; |
| 17 |
-import itn.let.cert.phone.service.MberCertPhoneVO; |
|
| 18 | 19 |
import itn.let.cert.phone.service.CertPhoneService; |
| 20 |
+import itn.let.cert.phone.service.MberCertPhoneVO; |
|
| 19 | 21 |
import itn.let.mail.service.StatusResponse; |
| 22 |
+import itn.let.mjo.msg.service.MjonMsgVO; |
|
| 23 |
+import itn.let.mjo.msgdata.service.MjonMsgDataService; |
|
| 24 |
+import itn.let.mjo.msgdata.service.MjonMsgReturnVO; |
|
| 25 |
+import itn.let.uat.uia.web.SendLogVO; |
|
| 20 | 26 |
|
| 21 | 27 |
/** |
| 22 | 28 |
* |
... | ... | @@ -40,8 +46,28 @@ |
| 40 | 46 |
@Resource(name = "CertPhoneService") |
| 41 | 47 |
private CertPhoneService certPhoneService; |
| 42 | 48 |
|
| 49 |
+ @Resource(name = "MjonMsgDataService") |
|
| 50 |
+ private MjonMsgDataService mjonMsgDataService; |
|
| 43 | 51 |
|
| 44 | 52 |
|
| 53 |
+ |
|
| 54 |
+ @RequestMapping(value = {"/cert/phone/selectMberCertPhoneList"})
|
|
| 55 |
+ public ResponseEntity<StatusResponse> selectMberCertPhoneList(MberCertPhoneVO mberCertPhoneVO) throws Exception {
|
|
| 56 |
+ |
|
| 57 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 58 |
+ modelAndView.setViewName("jsonView");
|
|
| 59 |
+ |
|
| 60 |
+ //로그인 권한정보 불러오기 |
|
| 61 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 62 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 63 |
+ |
|
| 64 |
+ if(userId == null) {
|
|
| 65 |
+ if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); |
|
| 66 |
+ } |
|
| 67 |
+ mberCertPhoneVO.setMberId(userId); |
|
| 68 |
+ |
|
| 69 |
+ return ResponseEntity.ok().body(certPhoneService.selectMberCertPhoneList(mberCertPhoneVO)); |
|
| 70 |
+ } |
|
| 45 | 71 |
|
| 46 | 72 |
@RequestMapping(value = {"/cert/phone/findByCertPhoneInfo.do"})
|
| 47 | 73 |
public ResponseEntity<StatusResponse> findByCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) throws Exception {
|
... | ... | @@ -73,6 +99,7 @@ |
| 73 | 99 |
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); |
| 74 | 100 |
} |
| 75 | 101 |
mberCertPhoneVO.setFrstRegisterId(userId); |
| 102 |
+ mberCertPhoneVO.setMberId(userId); |
|
| 76 | 103 |
|
| 77 | 104 |
|
| 78 | 105 |
return ResponseEntity.ok().body(certPhoneService.insertCertPhone(mberCertPhoneVO)); |
... | ... | @@ -121,25 +148,8 @@ |
| 121 | 148 |
|
| 122 | 149 |
|
| 123 | 150 |
|
| 124 |
- |
|
| 125 |
- |
|
| 126 |
- |
|
| 127 |
- |
|
| 128 |
- |
|
| 129 |
- |
|
| 130 |
- |
|
| 131 |
- |
|
| 132 |
- |
|
| 133 |
- |
|
| 134 |
- |
|
| 135 |
- |
|
| 136 |
- /* |
|
| 137 |
- |
|
| 138 |
- @RequestMapping(value = {"/uss/umt/user/updateCertPhone.do"})
|
|
| 139 |
- public ResponseEntity<StatusResponse> updateCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
|
|
| 140 |
- |
|
| 141 |
- ModelAndView modelAndView = new ModelAndView(); |
|
| 142 |
- modelAndView.setViewName("jsonView");
|
|
| 151 |
+ @RequestMapping(value = {"/cert/phone/sendSysMsgDataAjax.do"})
|
|
| 152 |
+ public ResponseEntity<StatusResponse> sendSysMsgDataAjax(MberCertPhoneVO mberCertPhoneVO) throws Exception {
|
|
| 143 | 153 |
|
| 144 | 154 |
//로그인 권한정보 불러오기 |
| 145 | 155 |
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
... | ... | @@ -148,31 +158,69 @@ |
| 148 | 158 |
if(userId == null) {
|
| 149 | 159 |
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); |
| 150 | 160 |
} |
| 151 |
- mberCertPhoneVO.setFrstRegisterId(userId); |
|
| 161 |
+ mberCertPhoneVO.setMberId(userId); |
|
| 162 |
+ |
|
| 163 |
+ |
|
| 152 | 164 |
|
| 153 | 165 |
|
| 154 |
- return ResponseEntity.ok().body(certPhoneService.updateMberCertPhoneInfo(mberCertPhoneVO)); |
|
| 166 |
+ |
|
| 167 |
+ MjonMsgVO mjonMsgVO = new MjonMsgVO(); |
|
| 168 |
+ mjonMsgVO.setCallTo(mberCertPhoneVO.getMbtlnum()); |
|
| 169 |
+ MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO); |
|
| 170 |
+ |
|
| 171 |
+ |
|
| 172 |
+ String resultSts = returnVO.getSendMsgCnt(); |
|
| 173 |
+ String resultBlockSts = returnVO.getSendMsgBlockCnt(); |
|
| 174 |
+ |
|
| 175 |
+ String msg= ""; |
|
| 176 |
+ Map<String, String> returnMap = new HashMap<>(); |
|
| 177 |
+ HttpStatus httpStatus = null; |
|
| 178 |
+ if (!resultSts.equals("0")) {
|
|
| 179 |
+ |
|
| 180 |
+ httpStatus = HttpStatus.OK; |
|
| 181 |
+ returnMap.put("msg", "문자 전송이 완료되었습니다.");
|
|
| 182 |
+ returnMap.put("resultSts", resultSts);
|
|
| 183 |
+ returnMap.put("resultBlockSts", resultBlockSts);
|
|
| 184 |
+ |
|
| 185 |
+ } else {
|
|
| 186 |
+ |
|
| 187 |
+ httpStatus = HttpStatus.BAD_REQUEST; |
|
| 188 |
+ returnMap.put("msg", "문자 전송에 오류가 발생하였습니다.");
|
|
| 189 |
+ returnMap.put("resultSts", "0");
|
|
| 190 |
+ returnMap.put("resultBlockSts", "0");
|
|
| 191 |
+ |
|
| 192 |
+ } |
|
| 193 |
+ return ResponseEntity.ok().body(new StatusResponse(httpStatus, returnMap, LocalDateTime.now())); |
|
| 194 |
+ |
|
| 155 | 195 |
} |
| 156 | 196 |
|
| 157 |
- @RequestMapping(value = {"/uss/umt/user/deleteCertPhone.do"})
|
|
| 158 |
- public ResponseEntity<StatusResponse> deleteCertPhone(MberCertPhoneVO mberCertPhoneVO) throws Exception {
|
|
| 159 |
- |
|
| 160 |
- ModelAndView modelAndView = new ModelAndView(); |
|
| 161 |
- modelAndView.setViewName("jsonView");
|
|
| 162 |
- |
|
| 197 |
+ |
|
| 198 |
+ |
|
| 199 |
+ @RequestMapping(value = {"/cert/phone/selectSysMsgLogCheck.do"})
|
|
| 200 |
+ public ResponseEntity<StatusResponse> selectSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO) throws Exception {
|
|
| 201 |
+ |
|
| 163 | 202 |
//로그인 권한정보 불러오기 |
| 164 | 203 |
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
| 165 | 204 |
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
| 166 |
- |
|
| 205 |
+ |
|
| 167 | 206 |
if(userId == null) {
|
| 168 | 207 |
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); |
| 169 | 208 |
} |
| 170 |
- mberCertPhoneVO.setLastUpdusrId(userId); |
|
| 171 |
- |
|
| 172 |
- |
|
| 173 |
- |
|
| 174 |
- return ResponseEntity.ok().body(certPhoneService.deleteCertPhoneInfo(mberCertPhoneVO)); |
|
| 175 |
- } |
|
| 176 |
- */ |
|
| 177 |
- |
|
| 209 |
+ mberCertPhoneVO.setMberId(userId); |
|
| 210 |
+// |
|
| 211 |
+ return ResponseEntity.ok().body(certPhoneService.selectSysMsgLogCheck(mberCertPhoneVO)); |
|
| 212 |
+ |
|
| 213 |
+ } |
|
| 214 |
+ |
|
| 215 |
+ |
|
| 216 |
+ |
|
| 217 |
+ |
|
| 218 |
+ |
|
| 219 |
+ |
|
| 220 |
+ |
|
| 221 |
+ |
|
| 222 |
+ |
|
| 223 |
+ |
|
| 224 |
+ |
|
| 225 |
+ |
|
| 178 | 226 |
}(No newline at end of file) |
--- src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
+++ src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
... | ... | @@ -177,6 +177,8 @@ |
| 177 | 177 |
//팩스 거래명세서 합산 정보 |
| 178 | 178 |
public List<MjonMsgVO> selectPayUserSumFaxList(MjonMsgVO mjonMsgVO) throws Exception; |
| 179 | 179 |
|
| 180 |
+ public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO) throws Exception; |
|
| 181 |
+ |
|
| 180 | 182 |
|
| 181 | 183 |
|
| 182 | 184 |
|
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 |
import java.util.Calendar; |
| 6 | 6 |
import java.util.Date; |
| 7 | 7 |
import java.util.List; |
| 8 |
+import java.util.Random; |
|
| 8 | 9 |
|
| 9 | 10 |
import javax.annotation.Resource; |
| 10 | 11 |
|
... | ... | @@ -3156,5 +3157,86 @@ |
| 3156 | 3157 |
return mjonMsgDataDAO.selectPayUserSumFaxList(mjonMsgVO); |
| 3157 | 3158 |
} |
| 3158 | 3159 |
|
| 3160 |
+ @Override |
|
| 3161 |
+ public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO) throws Exception {
|
|
| 3162 |
+ |
|
| 3163 |
+ |
|
| 3164 |
+ |
|
| 3165 |
+ // 비밀번호 찾기 문자내용 |
|
| 3166 |
+ String contents = "[문자온] 인증번호 : %code%"; |
|
| 3167 |
+ String code = ""; |
|
| 3168 |
+ long seed = System.currentTimeMillis(); |
|
| 3169 |
+ Random random = new Random(seed); |
|
| 3170 |
+ // code = Integer.toString(random.nextInt(4)); |
|
| 3171 |
+ StringBuffer randomCode = new StringBuffer(); |
|
| 3172 |
+ for (int i = 0; i < 6; i++) {
|
|
| 3173 |
+ code = randomCode.append(Integer.toString(random.nextInt(10))).toString(); |
|
| 3174 |
+ } |
|
| 3175 |
+ contents = contents.replace("%code%", code);
|
|
| 3176 |
+ System.out.println("contents : "+ contents);
|
|
| 3177 |
+ System.out.println("contents : "+ contents);
|
|
| 3178 |
+ System.out.println("contents : "+ contents);
|
|
| 3179 |
+ System.out.println("contents : "+ contents);
|
|
| 3180 |
+ System.out.println("contents : "+ contents);
|
|
| 3181 |
+ |
|
| 3182 |
+ mjonMsgVO.setSmsTxt(contents); |
|
| 3183 |
+ mjonMsgVO.setReserveYn("N");
|
|
| 3184 |
+ // 시스템 문자발송 번호 |
|
| 3185 |
+ mjonMsgVO.setCallFrom("15518011");
|
|
| 3186 |
+ |
|
| 3187 |
+ mjonMsgVO.setUserId("system");
|
|
| 3188 |
+ |
|
| 3189 |
+ String msgType = "4"; |
|
| 3190 |
+ |
|
| 3191 |
+ // 전송사 전송 배분 |
|
| 3192 |
+ MjonMsgVO pramVO = new MjonMsgVO(); |
|
| 3193 |
+ List<MjonMsgVO> sendRateList = mjonMsgDAO.selectTodayAgentSendCntList(pramVO); // 전송사 전송 배분률 및 현재 전송건수 |
|
| 3194 |
+ // 조회 |
|
| 3195 |
+ for (MjonMsgVO tmpVO : sendRateList) {
|
|
| 3196 |
+ float cnt = Float.parseFloat(tmpVO.getMsgGroupCnt()); |
|
| 3197 |
+ float totCnt = tmpVO.getTotCnt(); |
|
| 3198 |
+ tmpVO.setSendRateInfo(Float.parseFloat(tmpVO.getSendRate()) - (cnt / totCnt * 100)); // 배분률 - 현재전송 비율 |
|
| 3199 |
+ } |
|
| 3200 |
+ |
|
| 3201 |
+ String sendAgent = sendRateList.get(0).getAgentCode(); |
|
| 3202 |
+ float maxRate = sendRateList.get(0).getSendRateInfo(); |
|
| 3203 |
+ for (MjonMsgVO tmpVO : sendRateList) { // 배분률 대비 현재전송 비율이 가장 적은거 찾기
|
|
| 3204 |
+ if (maxRate < tmpVO.getSendRateInfo()) {
|
|
| 3205 |
+ maxRate = tmpVO.getSendRateInfo(); |
|
| 3206 |
+ sendAgent = tmpVO.getAgentCode(); |
|
| 3207 |
+ } |
|
| 3208 |
+ } |
|
| 3209 |
+ |
|
| 3210 |
+ mjonMsgVO.setMsgDiv("S"); // 단문
|
|
| 3211 |
+ |
|
| 3212 |
+ // 문자타입별 대표전송사 정보 |
|
| 3213 |
+ MjonMsgVO mjonMsgVO2 = new MjonMsgVO(); |
|
| 3214 |
+ mjonMsgVO2 = mjonMsgDAO.selectRepMsgAgetnInfo(mjonMsgVO); |
|
| 3215 |
+ // 전송사 구분 코드 - 01 : 아이하트, 02 : 현대 퓨쳐넷, 03 : 아이엠오, 04 : 다우기술 |
|
| 3216 |
+ mjonMsgVO.setAgentCode(mjonMsgVO2.getAgentCode()); //전송사 선택 |
|
| 3217 |
+ // 전송금액 |
|
| 3218 |
+ mjonMsgVO.setTotPrice(mjonMsgVO2.getAgentPrice().toString()); //총금액 |
|
| 3219 |
+ mjonMsgVO.setEachPrice(mjonMsgVO2.getAgentPrice().toString()); //한건 금액 |
|
| 3220 |
+ |
|
| 3221 |
+ mjonMsgVO.setMsgType("4");
|
|
| 3222 |
+ |
|
| 3223 |
+ MjonMsgReturnVO returnVO = mjonMsgDataService.insertSysMsgDataInfo(mjonMsgVO); |
|
| 3224 |
+ |
|
| 3225 |
+ |
|
| 3226 |
+ // 시스템 발송 로그 |
|
| 3227 |
+ SendLogVO sendLogVO = new SendLogVO(); |
|
| 3228 |
+ // SendType 1:문자로 발송 2:이메일로 발송 |
|
| 3229 |
+ sendLogVO.setSendId(returnVO.getMsgGroupId()); |
|
| 3230 |
+ sendLogVO.setSendType("1");
|
|
| 3231 |
+ sendLogVO.setFrstSendInfo(mjonMsgVO.getCallFrom()); |
|
| 3232 |
+ sendLogVO.setReceive(mjonMsgVO.getCallTo()); |
|
| 3233 |
+ sendLogVO.setCheckNo(code); |
|
| 3234 |
+ sendLogVO.setContents(contents); |
|
| 3235 |
+ |
|
| 3236 |
+ mjonMsgDataService.insertSysMsgLog(sendLogVO); |
|
| 3237 |
+ |
|
| 3238 |
+ return returnVO; |
|
| 3239 |
+ } |
|
| 3240 |
+ |
|
| 3159 | 3241 |
|
| 3160 | 3242 |
} |
--- src/main/java/itn/let/uat/uia/web/EgovLoginController.java
+++ src/main/java/itn/let/uat/uia/web/EgovLoginController.java
... | ... | @@ -3588,27 +3588,6 @@ |
| 3588 | 3588 |
String resultSts = "0"; |
| 3589 | 3589 |
String resultBlockSts = "0"; |
| 3590 | 3590 |
|
| 3591 |
- // 비밀번호 찾기 문자내용 |
|
| 3592 |
- String contents = "[문자온] 인증번호 : %code%"; |
|
| 3593 |
- String code = ""; |
|
| 3594 |
- long seed = System.currentTimeMillis(); |
|
| 3595 |
- Random random = new Random(seed); |
|
| 3596 |
- // code = Integer.toString(random.nextInt(4)); |
|
| 3597 |
- StringBuffer randomCode = new StringBuffer(); |
|
| 3598 |
- for (int i = 0; i < 6; i++) {
|
|
| 3599 |
- code = randomCode.append(Integer.toString(random.nextInt(10))).toString(); |
|
| 3600 |
- } |
|
| 3601 |
- contents = contents.replace("%code%", code);
|
|
| 3602 |
- System.out.println("contents : "+ contents);
|
|
| 3603 |
- System.out.println("contents : "+ contents);
|
|
| 3604 |
- System.out.println("contents : "+ contents);
|
|
| 3605 |
- System.out.println("contents : "+ contents);
|
|
| 3606 |
- System.out.println("contents : "+ contents);
|
|
| 3607 |
- |
|
| 3608 |
- mjonMsgVO.setSmsTxt(contents); |
|
| 3609 |
- mjonMsgVO.setReserveYn("N");
|
|
| 3610 |
- // 시스템 문자발송 번호 |
|
| 3611 |
- mjonMsgVO.setCallFrom("15518011");
|
|
| 3612 | 3591 |
// 문자 수신 번호 jsp에서 받아와야함! |
| 3613 | 3592 |
/* mjonMsgVO.setCallTo(callTo); */ |
| 3614 | 3593 |
|
... | ... | @@ -3619,22 +3598,6 @@ |
| 3619 | 3598 |
// 사용자 유효성 검사 |
| 3620 | 3599 |
// id, hp, nm |
| 3621 | 3600 |
try {
|
| 3622 |
- UserManageVO userManageVO = new UserManageVO(); |
|
| 3623 |
- |
|
| 3624 |
- userManageVO.setEmplyrId(mjonMsgVO.getUserId()); |
|
| 3625 |
- userManageVO.setEmplyrNm(mjonMsgVO.getSearchNm()); |
|
| 3626 |
- userManageVO.setMoblphonNo(mjonMsgVO.getCallTo()); |
|
| 3627 |
- |
|
| 3628 |
- |
|
| 3629 |
- |
|
| 3630 |
- |
|
| 3631 |
- |
|
| 3632 |
- |
|
| 3633 |
- |
|
| 3634 |
- |
|
| 3635 |
- MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO(); |
|
| 3636 |
- mberCertPhoneVO.setMbtlnum(mjonMsgVO.getCallTo()); |
|
| 3637 |
- mberCertPhoneVO.setMberId(mjonMsgVO.getUserId()); |
|
| 3638 | 3601 |
|
| 3639 | 3602 |
|
| 3640 | 3603 |
List<MberCertPhoneVO> mberCertPhoneList = certPhoneService.selectMberCertPhoneList(mjonMsgVO.getUserId()); |
... | ... | @@ -3655,7 +3618,13 @@ |
| 3655 | 3618 |
|
| 3656 | 3619 |
return modelAndView; |
| 3657 | 3620 |
} |
| 3658 |
- |
|
| 3621 |
+ |
|
| 3622 |
+ UserManageVO userManageVO = new UserManageVO(); |
|
| 3623 |
+ |
|
| 3624 |
+ userManageVO.setEmplyrId(mjonMsgVO.getUserId()); |
|
| 3625 |
+ userManageVO.setEmplyrNm(mjonMsgVO.getSearchNm()); |
|
| 3626 |
+ userManageVO.setMoblphonNo(mjonMsgVO.getCallTo()); |
|
| 3627 |
+ |
|
| 3659 | 3628 |
|
| 3660 | 3629 |
List<UserManageVO> usedNmList = userManageService.selectUserIdAjax2(userManageVO); |
| 3661 | 3630 |
if(!usedNmList.get(0).getMberSttus().equals("Y")) {
|
... | ... | @@ -3685,59 +3654,15 @@ |
| 3685 | 3654 |
} |
| 3686 | 3655 |
|
| 3687 | 3656 |
try {
|
| 3688 |
- |
|
| 3689 |
- mjonMsgVO.setUserId("system");
|
|
| 3690 |
- |
|
| 3691 |
- String msgType = "4"; |
|
| 3692 |
- |
|
| 3693 |
- // 전송사 전송 배분 |
|
| 3694 |
- MjonMsgVO pramVO = new MjonMsgVO(); |
|
| 3695 |
- List<MjonMsgVO> sendRateList = mjonMsgService.selectTodayAgentSendCntList(pramVO); // 전송사 전송 배분률 및 현재 전송건수 |
|
| 3696 |
- // 조회 |
|
| 3697 |
- for (MjonMsgVO tmpVO : sendRateList) {
|
|
| 3698 |
- float cnt = Float.parseFloat(tmpVO.getMsgGroupCnt()); |
|
| 3699 |
- float totCnt = tmpVO.getTotCnt(); |
|
| 3700 |
- tmpVO.setSendRateInfo(Float.parseFloat(tmpVO.getSendRate()) - (cnt / totCnt * 100)); // 배분률 - 현재전송 비율 |
|
| 3701 |
- } |
|
| 3702 |
- |
|
| 3703 |
- String sendAgent = sendRateList.get(0).getAgentCode(); |
|
| 3704 |
- float maxRate = sendRateList.get(0).getSendRateInfo(); |
|
| 3705 |
- for (MjonMsgVO tmpVO : sendRateList) { // 배분률 대비 현재전송 비율이 가장 적은거 찾기
|
|
| 3706 |
- if (maxRate < tmpVO.getSendRateInfo()) {
|
|
| 3707 |
- maxRate = tmpVO.getSendRateInfo(); |
|
| 3708 |
- sendAgent = tmpVO.getAgentCode(); |
|
| 3709 |
- } |
|
| 3710 |
- } |
|
| 3711 |
- |
|
| 3712 |
- mjonMsgVO.setMsgDiv("S"); // 단문
|
|
| 3713 | 3657 |
|
| 3714 |
- // 문자타입별 대표전송사 정보 |
|
| 3715 |
- MjonMsgVO mjonMsgVO2 = new MjonMsgVO(); |
|
| 3716 |
- mjonMsgVO2 = mjonMsgService.selectRepMsgAgetnInfo(mjonMsgVO); |
|
| 3717 |
- // 전송사 구분 코드 - 01 : 아이하트, 02 : 현대 퓨쳐넷, 03 : 아이엠오, 04 : 다우기술 |
|
| 3718 |
- mjonMsgVO.setAgentCode(mjonMsgVO2.getAgentCode()); //전송사 선택 |
|
| 3719 |
- // 전송금액 |
|
| 3720 |
- mjonMsgVO.setTotPrice(mjonMsgVO2.getAgentPrice().toString()); //총금액 |
|
| 3721 |
- mjonMsgVO.setEachPrice(mjonMsgVO2.getAgentPrice().toString()); //한건 금액 |
|
| 3722 |
- |
|
| 3723 |
- mjonMsgVO.setMsgType("4");
|
|
| 3724 |
- |
|
| 3725 |
- MjonMsgReturnVO returnVO = mjonMsgDataService.insertSysMsgDataInfo(mjonMsgVO); |
|
| 3658 |
+ |
|
| 3659 |
+ |
|
| 3660 |
+ |
|
| 3661 |
+ MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO); |
|
| 3726 | 3662 |
|
| 3727 | 3663 |
resultSts = returnVO.getSendMsgCnt(); |
| 3728 | 3664 |
resultBlockSts = returnVO.getSendMsgBlockCnt(); |
| 3729 | 3665 |
|
| 3730 |
- // 시스템 발송 로그 |
|
| 3731 |
- SendLogVO sendLogVO = new SendLogVO(); |
|
| 3732 |
- // SendType 1:문자로 발송 2:이메일로 발송 |
|
| 3733 |
- sendLogVO.setSendId(returnVO.getMsgGroupId()); |
|
| 3734 |
- sendLogVO.setSendType("1");
|
|
| 3735 |
- sendLogVO.setFrstSendInfo(mjonMsgVO.getCallFrom()); |
|
| 3736 |
- sendLogVO.setReceive(mjonMsgVO.getCallTo()); |
|
| 3737 |
- sendLogVO.setCheckNo(code); |
|
| 3738 |
- sendLogVO.setContents(contents); |
|
| 3739 |
- |
|
| 3740 |
- mjonMsgDataService.insertSysMsgLog(sendLogVO); |
|
| 3741 | 3666 |
|
| 3742 | 3667 |
} catch (Exception e) {
|
| 3743 | 3668 |
|
--- src/main/resources/egovframework/sqlmap/let/cert/MjonCertPhone_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/cert/MjonCertPhone_SQL_mysql.xml
... | ... | @@ -115,5 +115,20 @@ |
| 115 | 115 |
|
| 116 | 116 |
</update> |
| 117 | 117 |
|
| 118 |
+ <select id="mberCertPhoneVO.countSysMsgLogCheck" parameterClass="mberCertPhoneVO" resultClass="int"> |
|
| 119 |
+ SELECT |
|
| 120 |
+ COUNT(*) |
|
| 121 |
+ FROM |
|
| 122 |
+ MJ_SYSTEM_SEND |
|
| 123 |
+ WHERE |
|
| 124 |
+ CHECK_NO = #checkNo# |
|
| 125 |
+ AND |
|
| 126 |
+ RECEIVE = #mbtlnum# |
|
| 127 |
+ AND |
|
| 128 |
+ DATE_FORMAT(FRST_SEND_PNTTM, '%Y%m%d%H%i%s') > DATE_FORMAT( date_add(now(),interval -300 second), '%Y%m%d%H%i%s') |
|
| 129 |
+ |
|
| 130 |
+ |
|
| 131 |
+ |
|
| 132 |
+ </select> |
|
| 118 | 133 |
|
| 119 | 134 |
</sqlMap>(No newline at end of file) |
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
... | ... | @@ -3724,6 +3724,7 @@ |
| 3724 | 3724 |
</select> |
| 3725 | 3725 |
|
| 3726 | 3726 |
<select id="mjonMsgDAO.selectSysMsgLogCheck_new" parameterClass="SendLogVO" resultClass="SendLogVO"> |
| 3727 |
+ /*mjonMsgDAO.selectSysMsgLogCheck_new*/ |
|
| 3727 | 3728 |
SELECT a.SEND_ID AS sendId, |
| 3728 | 3729 |
a.SEND_TYPE AS sendType, |
| 3729 | 3730 |
a.FRST_SEND_INFO AS frstSendInfo, |
--- src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
... | ... | @@ -58,6 +58,72 @@ |
| 58 | 58 |
|
| 59 | 59 |
// 보안 로그인 |
| 60 | 60 |
$(document).ready(function(){
|
| 61 |
+ |
|
| 62 |
+ // 인증번호 발송 버튼 |
|
| 63 |
+ $('#certReqBtn').on('click', function(){
|
|
| 64 |
+ var certReqPhone = $('#certReqPhone').val();
|
|
| 65 |
+ |
|
| 66 |
+ if (certReqPhone==''){
|
|
| 67 |
+ alert("핸드폰번호를 입력해주세요.");
|
|
| 68 |
+ return; |
|
| 69 |
+ } |
|
| 70 |
+ var params = {"mbtlnum" : certReqPhone }
|
|
| 71 |
+ $.ajax({
|
|
| 72 |
+ type: "POST", |
|
| 73 |
+ url : "<c:url value='/cert/phone/sendSysMsgDataAjax.do' />", |
|
| 74 |
+ data: params, |
|
| 75 |
+ dataType:'json', |
|
| 76 |
+ async: false, |
|
| 77 |
+ success: function (returnData) {
|
|
| 78 |
+ console.log('returnData : ', returnData);
|
|
| 79 |
+ if(returnData.status == 'OK'){
|
|
| 80 |
+ alert(returnData.object.msg); |
|
| 81 |
+ $("#certReqPhone").prop("disabled", true);
|
|
| 82 |
+ } |
|
| 83 |
+ else |
|
| 84 |
+ {
|
|
| 85 |
+ alert("오류가 발생하였습니다.");
|
|
| 86 |
+ } |
|
| 87 |
+ }, |
|
| 88 |
+ error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
|
|
| 89 |
+ }); |
|
| 90 |
+ }); |
|
| 91 |
+ |
|
| 92 |
+ // 인증 버튼 |
|
| 93 |
+ $('#certConfirmBtn').on('click', function(){
|
|
| 94 |
+ var certReqPhone = $('#certReqPhone').val();
|
|
| 95 |
+ var certNumber = $('#certNumber').val();
|
|
| 96 |
+ |
|
| 97 |
+ if (certNumber==''){
|
|
| 98 |
+ alert("인증번호를 입력해주세요.");
|
|
| 99 |
+ return; |
|
| 100 |
+ } |
|
| 101 |
+ var params = {"mbtlnum" : certReqPhone, "checkNo" : certNumber }
|
|
| 102 |
+ $.ajax({
|
|
| 103 |
+ type: "POST", |
|
| 104 |
+ url : "<c:url value='/cert/phone/selectSysMsgLogCheck.do' />", |
|
| 105 |
+ data: params, |
|
| 106 |
+ dataType:'json', |
|
| 107 |
+ async: false, |
|
| 108 |
+ success: function (returnData) {
|
|
| 109 |
+ console.log('returnData : ', returnData);
|
|
| 110 |
+ if(returnData.status == 'OK'){
|
|
| 111 |
+// alert(returnData.object.msg); |
|
| 112 |
+ regCertPhone(params); |
|
| 113 |
+ } |
|
| 114 |
+ else if(returnData.status == 'BAD_REQUEST'){
|
|
| 115 |
+ alert(returnData.message); |
|
| 116 |
+ } |
|
| 117 |
+ else |
|
| 118 |
+ {
|
|
| 119 |
+ alert("오류가 발생하였습니다.");
|
|
| 120 |
+ } |
|
| 121 |
+ }, |
|
| 122 |
+ error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
|
|
| 123 |
+ }); |
|
| 124 |
+ }); |
|
| 125 |
+ |
|
| 126 |
+ |
|
| 61 | 127 |
|
| 62 | 128 |
$('#showLoginBtn').on('click', function() {
|
| 63 | 129 |
if ($('#securityLogin').is(':visible')) {
|
... | ... | @@ -152,7 +218,83 @@ |
| 152 | 218 |
}); |
| 153 | 219 |
|
| 154 | 220 |
|
| 221 |
+function regCertPhone(params){
|
|
| 222 |
+ |
|
| 223 |
+ $.ajax({
|
|
| 224 |
+ type: "POST", |
|
| 225 |
+ url: "/cert/phone/insertCertPhone.do", |
|
| 226 |
+ data: params, |
|
| 227 |
+ dataType:'json', |
|
| 228 |
+ async: false, |
|
| 229 |
+ success: function (returnData) {
|
|
| 230 |
+ if(returnData.status == 'OK'){
|
|
| 231 |
+ findAllCertIp(); |
|
| 232 |
+ }else if(returnData.status == 'CONFLICT'){
|
|
| 233 |
+ alert(returnData.message); |
|
| 234 |
+ return false; |
|
| 235 |
+ } |
|
| 236 |
+ else |
|
| 237 |
+ {
|
|
| 238 |
+ alert("오류가 발생하였습니다.");
|
|
| 239 |
+ } |
|
| 240 |
+ }, |
|
| 241 |
+ error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
|
|
| 242 |
+ }); |
|
| 243 |
+ |
|
| 244 |
+ |
|
| 245 |
+} |
|
| 246 |
+ |
|
| 155 | 247 |
function findAllCertIp(){
|
| 248 |
+ |
|
| 249 |
+ $.ajax({
|
|
| 250 |
+ type: "POST", |
|
| 251 |
+ url: "/cert/ip/selectMberCertIpList.do", |
|
| 252 |
+ data: null, |
|
| 253 |
+ dataType:'json', |
|
| 254 |
+ async: false, |
|
| 255 |
+ success: function (returnData) {
|
|
| 256 |
+ if (returnData.status === "OK") {
|
|
| 257 |
+ const objects = returnData.object; // 배열 데이터 |
|
| 258 |
+ |
|
| 259 |
+ // tbody의 기존 내용 삭제 |
|
| 260 |
+ const $tbody = $(".ip_table tbody");
|
|
| 261 |
+ $tbody.empty(); |
|
| 262 |
+ |
|
| 263 |
+ // 배열 데이터를 기반으로 tr 생성 후 tbody에 추가 |
|
| 264 |
+ $.each(objects, function(index, obj) {
|
|
| 265 |
+ const $tr = $("<tr></tr>"); // tr 요소 생성
|
|
| 266 |
+ |
|
| 267 |
+ // 각 td 요소 생성 |
|
| 268 |
+ const $certIp = $("<td></td>").text(obj.certIp || "");
|
|
| 269 |
+ const $certMemo = $("<td></td>").text(obj.certMemo || "");
|
|
| 270 |
+ const $frstRegistPnttm = $("<td></td>").text(obj.frstRegistPnttm || "등록되지 않음");
|
|
| 271 |
+ const $deleteBtn = $("<button></button>")
|
|
| 272 |
+ .addClass("btnType btn_text btn_lightgray fill btn_28")
|
|
| 273 |
+ .text("삭제")
|
|
| 274 |
+ .attr("type", "button")
|
|
| 275 |
+ .attr("id", "ipDelBtn")
|
|
| 276 |
+ .on("click", function() {
|
|
| 277 |
+ deleteRow(obj.certIp); // 삭제 버튼 클릭 시 실행 |
|
| 278 |
+ }); |
|
| 279 |
+ |
|
| 280 |
+ // 관리 버튼을 감쌀 td 생성 |
|
| 281 |
+ const $deleteTd = $("<td></td>").append($deleteBtn);
|
|
| 282 |
+ |
|
| 283 |
+ // tr에 td 추가 |
|
| 284 |
+ $tr.append($certIp, $certMemo, $frstRegistPnttm, $deleteTd); |
|
| 285 |
+ |
|
| 286 |
+ // tbody에 tr 추가 |
|
| 287 |
+ $tbody.append($tr); |
|
| 288 |
+ }); |
|
| 289 |
+ } else {
|
|
| 290 |
+ alert("데이터를 불러오는 데 실패했습니다.");
|
|
| 291 |
+ } |
|
| 292 |
+ }, |
|
| 293 |
+ error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); }
|
|
| 294 |
+ }); |
|
| 295 |
+} |
|
| 296 |
+ |
|
| 297 |
+function findAllCertPhone(){
|
|
| 156 | 298 |
|
| 157 | 299 |
$.ajax({
|
| 158 | 300 |
type: "POST", |
... | ... | @@ -565,6 +707,62 @@ |
| 565 | 707 |
</div> |
| 566 | 708 |
</div> |
| 567 | 709 |
<!-- //펙스 팝업 --> |
| 710 |
+ |
|
| 711 |
+ |
|
| 712 |
+ |
|
| 713 |
+ <div class="mask"></div> |
|
| 714 |
+ |
|
| 715 |
+ <!-- 휴대폰인증 팝업 --> |
|
| 716 |
+ <div class="tooltip-wrap"> |
|
| 717 |
+ <div class="popup-com certify_layer popup05" tabindex="0" data-tooltip-con="popup05" data-focus="popup05" data-focus-prev="popup05-close" style="width: 500px;"> |
|
| 718 |
+ <div class="popup_heading"> |
|
| 719 |
+ <p>휴대폰 인증</p> |
|
| 720 |
+ <button type="button" class="tooltip-close" data-focus="popup05-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button> |
|
| 721 |
+ </div> |
|
| 722 |
+ <div class="layer_in"> |
|
| 723 |
+ <div class="hascont"> |
|
| 724 |
+ <table class="layer_tType1"> |
|
| 725 |
+ <caption>본인인증(step1) 표</caption> |
|
| 726 |
+ <colgroup> |
|
| 727 |
+ <col style="width: 95px"> |
|
| 728 |
+ <col style="width: auto"> |
|
| 729 |
+ </colgroup> |
|
| 730 |
+ <tbody> |
|
| 731 |
+ <tr> |
|
| 732 |
+ <th>핸드폰번호</th> |
|
| 733 |
+ <td> |
|
| 734 |
+ <label for="" class="label">핸드폰번호 입력</label> |
|
| 735 |
+ <input type="text" placeholder="‘-’없이 번호만 입력 " id="certReqPhone" onfocus="this.placeholder=''" |
|
| 736 |
+ onblur="this.placeholder='‘-’없이 번호만 입력 '" class="inputLight" style="width: 200px;" |
|
| 737 |
+ oninput="this.value = this.value.replace(/[^0-9]/g, '');" maxlength="14"/> |
|
| 738 |
+ <button type="button" id="certReqBtn" class="btnType btnType6" style="width:90px">인증요청</button> |
|
| 739 |
+ </td> |
|
| 740 |
+ </tr> |
|
| 741 |
+ <tr> |
|
| 742 |
+ <th>인증번호</th> |
|
| 743 |
+ <td> |
|
| 744 |
+ <label for="" class="label">인증번호 입력</label> |
|
| 745 |
+ <input type="text" placeholder="인증번호 4자리 입력" id="certNumber" onfocus="this.placeholder=''" onblur="this.placeholder='인증번호 4자리 입력'" class="inputLight" style="width: 200px;"> |
|
| 746 |
+ <button type="button" id="certConfirmBtn" class="btnType btnType6" style="width:90px">확인</button> |
|
| 747 |
+ </td> |
|
| 748 |
+ </tr> |
|
| 749 |
+ </tbody> |
|
| 750 |
+ </table> |
|
| 751 |
+ <div class="popup_btn_wrap2"> |
|
| 752 |
+ <button type="button" class="tooltip-close" data-focus="popup05-close" data-focus-next="popup05">닫기</button> |
|
| 753 |
+ </div> |
|
| 754 |
+ </div> |
|
| 755 |
+ </div> |
|
| 756 |
+ </div> |
|
| 757 |
+ </div> |
|
| 758 |
+ <!--// 휴대폰인증 팝업 --> |
|
| 759 |
+ |
|
| 760 |
+ |
|
| 761 |
+ |
|
| 762 |
+ |
|
| 763 |
+ |
|
| 764 |
+ |
|
| 765 |
+ |
|
| 568 | 766 |
<input type="button" id="tooltopClick" data-tooltip="rev_popup01" style="display:none;"/> |
| 569 | 767 |
<div class="inner"> |
| 570 | 768 |
<!-- send top --> |
... | ... | @@ -775,7 +973,7 @@ |
| 775 | 973 |
<p>인증에 사용할 휴대폰번호를 추가로 등록하여 관리할 수 있습니다. <br> |
| 776 | 974 |
(등록 및 삭제 시 휴대폰 본인인증 필요)</p> |
| 777 | 975 |
</div> |
| 778 |
- <button type="button" class="btn_plus"><img src="/publish/images/content/mypage_plus.png" alt="더보기"></button> |
|
| 976 |
+ <button type="button" data-tooltip="popup05" class="btn_plus"><img src="/publish/images/content/mypage_plus.png" alt="더보기"></button> |
|
| 779 | 977 |
</div> |
| 780 | 978 |
|
| 781 | 979 |
<div class="table_wrap"> |
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?