From b70ddcd63fc1941502da285e315dae249a54d777 Mon Sep 17 00:00:00 2001 From: JIWOO Date: Thu, 13 Feb 2025 16:52:50 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B4=EC=A7=80=EC=9A=B0=20-=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=EC=83=81=EC=84=B8=20=ED=8E=98=EC=9D=B4=EC=A7=80=20>?= =?UTF-8?q?=20SMS=20=ED=8C=9D=EC=97=85=20>=20=EB=AC=B8=EC=9E=90=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kcc/com/snd/service/SendService.java | 2 +- .../com/snd/service/impl/SendServiceImpl.java | 26 ++++++++++++---- src/main/java/seed/utils/FairnetUtils.java | 30 +++++++++++++------ .../WEB-INF/jsp/_extra/user/sms/process.jsp | 18 ++++++++--- 4 files changed, 57 insertions(+), 19 deletions(-) diff --git a/src/main/java/kcc/com/snd/service/SendService.java b/src/main/java/kcc/com/snd/service/SendService.java index 56e628d5..dcd98449 100644 --- a/src/main/java/kcc/com/snd/service/SendService.java +++ b/src/main/java/kcc/com/snd/service/SendService.java @@ -40,7 +40,7 @@ public interface SendService { */ void sendAt(String to, String templateCode, Map chihwan) throws Exception; - void sendSms(String to, String subject, String smsContent) throws Exception; + Map sendSms(String to, String subject, String smsContent, String type) throws Exception; SendSmsVO selectSendSet() throws Exception; diff --git a/src/main/java/kcc/com/snd/service/impl/SendServiceImpl.java b/src/main/java/kcc/com/snd/service/impl/SendServiceImpl.java index 544f34fc..514e9454 100644 --- a/src/main/java/kcc/com/snd/service/impl/SendServiceImpl.java +++ b/src/main/java/kcc/com/snd/service/impl/SendServiceImpl.java @@ -2,6 +2,7 @@ package kcc.com.snd.service.impl; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -68,11 +69,14 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ } @Override - public void sendSms( + public Map sendSms( String to , String subject , String smsContent + , String type ) throws Exception{ + Boolean success = true; + int successCnt = 0; SendAtVO vo = new SendAtVO(); vo = sendDAO.selectToken(); @@ -89,14 +93,26 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ } SendSmsVO smsVO = new SendSmsVO(); BeanUtils.copyProperties(smsVO, vo); - - smsVO.setTo(to); smsVO.setSubject(subject); smsVO.setSmsContent(smsContent); + smsVO.setType(type); - FairnetUtils.sendSms(smsVO); + String[] phoneNums = to.split(","); + for(String phone : phoneNums) { + smsVO.setTo(phone); + boolean result = FairnetUtils.sendSms(smsVO); + if(result) { + successCnt++; + }else { + success = false; + System.out.println("문자 발송 실패: " + phone); + } + } - System.out.println("test"); + Map resultMap = new HashMap<>(); + resultMap.put("success" , success); + resultMap.put("successCnt" , successCnt); + return resultMap; } @Override diff --git a/src/main/java/seed/utils/FairnetUtils.java b/src/main/java/seed/utils/FairnetUtils.java index b7e336b6..66250a8e 100644 --- a/src/main/java/seed/utils/FairnetUtils.java +++ b/src/main/java/seed/utils/FairnetUtils.java @@ -691,7 +691,9 @@ public class FairnetUtils { return at; } - public static String sendSms(SendSmsVO sendSmsVO) { + public static Boolean sendSms(SendSmsVO sendSmsVO) { + + Boolean success = true; StringBuffer result = new StringBuffer(); @@ -725,16 +727,22 @@ public class FairnetUtils { connection.setUseCaches(false); connection.setConnectTimeout(15000); - JSONObject lms = new JSONObject(); - lms.put("message", sendSmsVO.getSmsContent()); - lms.put("subject", sendSmsVO.getSubject()); - + /*SMS LMS 구분처리*/ + JSONObject sms = new JSONObject(); + sms.put("message", sendSmsVO.getSmsContent()); + if("LMS".equals(sendSmsVO.getType())) { + sms.put("subject", sendSmsVO.getSubject()); + } JSONObject content = new JSONObject(); - content.put("lms", lms); + if("SMS".equals(sendSmsVO.getType())) { + content.put("sms", sms); + }else { + content.put("lms", sms); + } JSONObject json = new JSONObject(); json.put("account", ppurioGlobalSet.getId()); - json.put("type", "lms"); + json.put("type", sendSmsVO.getType().toLowerCase()); json.put("from", "15881490"); json.put("to", sendSmsVO.getTo()); json.put("content", content); @@ -764,7 +772,8 @@ public class FairnetUtils { errorResponse.append(input); } System.out.println("Error Response: " + errorResponse.toString()); - return "Error: " + errorResponse.toString(); + success = false; + //return "Error: " + errorResponse.toString(); } } connection.disconnect(); @@ -778,14 +787,17 @@ public class FairnetUtils { } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); + success = false; } catch (KeyManagementException e) { // TODO Auto-generated catch block e.printStackTrace(); + success = false; } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); + success = false; } - return null; + return success; // return status; } diff --git a/src/main/webapp/WEB-INF/jsp/_extra/user/sms/process.jsp b/src/main/webapp/WEB-INF/jsp/_extra/user/sms/process.jsp index c5858518..a46753e7 100644 --- a/src/main/webapp/WEB-INF/jsp/_extra/user/sms/process.jsp +++ b/src/main/webapp/WEB-INF/jsp/_extra/user/sms/process.jsp @@ -11,6 +11,9 @@ <%@ include file="/WEB-INF/jsp/seed/_extra/dao/smsDao.jsp"%> <%@ include file="/WEB-INF/jsp/seed/_extra/dao/commonFileDao.jsp"%> <%@ include file="/WEB-INF/jsp/seed/_extra/common/commonFileUtil.jsp"%> +<%@ page import="org.springframework.web.context.WebApplicationContext" %> +<%@ page import="org.springframework.web.context.support.WebApplicationContextUtils" %> +<%@ page import="kcc.com.snd.service.SendService" %> <% @@ -60,7 +63,8 @@ String smsContents = SeedUtils.setReplaceNull(request.getParameter("smsContents")); String lmsContents = SeedUtils.setReplaceNull(request.getParameter("lmsContents")); String phone = SeedUtils.setReplaceNull(request.getParameter("phoneNums")); - + int successCnt = 0; + if((smsContents.equals("") && lmsContents.equals("")) || phone.equals("")){ message = "정상적인 요청이 아닙니다."; @@ -83,7 +87,13 @@ System.out.println("lmsContents:" + lmsContents); //실제 전송 DB에 저장 if(success){ - if(type.equals("SMS")){ + + WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(application); + SendService sendService = (SendService) context.getBean("SendService"); + Map resultMap = sendService.sendSms(phone, "", smsContents, type); + success = (Boolean)resultMap.get("success"); + successCnt = (Integer)resultMap.get("successCnt"); + /* if(type.equals("SMS")){ Object[] objData2 = { smsContents, phone }; @@ -93,14 +103,14 @@ smsContents, phone }; success = setLmsRealRegProc(seedSqlCon, objData2); - } + } */ } if(success){ message = "SMS이 발송 되었습니다."; }else{ - message = "SMS이 실패 되었습니다."; + message = "SMS이 실패 되었습니다."+successCnt+"건만 발송 되었습니다."; } }