From cf0bb995815df983b32765831597a94899b2bd06 Mon Sep 17 00:00:00 2001 From: seokjun jeon Date: Fri, 3 Jan 2025 14:59:17 +0900 Subject: [PATCH] messagingt init --- .idea/.gitignore | 8 + .idea/compiler.xml | 21 ++ .idea/encodings.xml | 7 + .idea/jarRepositories.xml | 35 +++ .idea/misc.xml | 14 + .idea/project.iml | 9 + .idea/uiDesigner.xml | 124 ++++++++ pom.xml | 70 +++++ .../java/com/icomsys/MessagingConnector.java | 160 +++++++++++ .../icomsys/dsl/MessageSendServiceDsl.java | 12 + .../dsl/MessageSendServiceDslImpl.java | 51 ++++ .../icomsys/message/MessageSendLogMapper.java | 16 ++ .../com/icomsys/util/CommonBeanUtils.java | 79 +++++ .../com/icomsys/vo/MessageSendLogInfo.java | 169 +++++++++++ .../com/icomsys/vo/MessageSendRequest.java | 269 ++++++++++++++++++ .../com/icomsys/vo/MessageSendResponse.java | 92 ++++++ .../icomsys/vo/SejongKakaoSendRequest.java | 107 +++++++ .../com/icomsys/vo/SejongLmsSendRequest.java | 77 +++++ .../icomsys/vo/SejongMessageSendResponse.java | 73 +++++ .../com/icomsys/vo/SejongMmsSendRequest.java | 69 +++++ .../com/icomsys/vo/SejongSmsSendRequest.java | 109 +++++++ .../mapper/message/MessageSendLog.xml | 30 ++ .../com/icomsys/MessagingConnector$1.class | Bin 0 -> 816 bytes .../com/icomsys/MessagingConnector$2.class | Bin 0 -> 816 bytes .../com/icomsys/MessagingConnector$3.class | Bin 0 -> 816 bytes .../com/icomsys/MessagingConnector$4.class | Bin 0 -> 816 bytes .../com/icomsys/MessagingConnector.class | Bin 0 -> 8510 bytes .../icomsys/dsl/MessageSendServiceDsl.class | Bin 0 -> 313 bytes .../dsl/MessageSendServiceDslImpl.class | Bin 0 -> 2870 bytes .../message/MessageSendLogMapper.class | Bin 0 -> 377 bytes .../com/icomsys/util/CommonBeanUtils.class | Bin 0 -> 5573 bytes .../vo/MessageSendLogInfo$Builder.class | Bin 0 -> 3126 bytes .../com/icomsys/vo/MessageSendLogInfo.class | Bin 0 -> 1494 bytes .../vo/MessageSendRequest$Builder.class | Bin 0 -> 2447 bytes .../com/icomsys/vo/MessageSendRequest.class | Bin 0 -> 5303 bytes .../vo/MessageSendResponse$Builder.class | Bin 0 -> 1152 bytes .../com/icomsys/vo/MessageSendResponse.class | Bin 0 -> 2110 bytes .../vo/SejongKakaoSendRequest$Builder.class | Bin 0 -> 1312 bytes .../icomsys/vo/SejongKakaoSendRequest.class | Bin 0 -> 2449 bytes .../vo/SejongLmsSendRequest$Builder.class | Bin 0 -> 1427 bytes .../com/icomsys/vo/SejongLmsSendRequest.class | Bin 0 -> 2010 bytes .../SejongMessageSendResponse$Builder.class | Bin 0 -> 1060 bytes .../vo/SejongMessageSendResponse.class | Bin 0 -> 1872 bytes .../com/icomsys/vo/SejongMmsSendRequest.class | Bin 0 -> 2882 bytes .../vo/SejongSmsSendRequest$Builder.class | Bin 0 -> 1302 bytes .../com/icomsys/vo/SejongSmsSendRequest.class | Bin 0 -> 2447 bytes .../classes/mapper/message/MessageSendLog.xml | 30 ++ target/maven-archiver/pom.properties | 5 + .../compile/default-compile/createdFiles.lst | 24 ++ .../compile/default-compile/inputFiles.lst | 13 + .../default-testCompile/inputFiles.lst | 0 target/message-module-0.0.8-SNAPSHOT.jar | Bin 0 -> 29559 bytes 52 files changed, 1673 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/project.iml create mode 100644 .idea/uiDesigner.xml create mode 100644 pom.xml create mode 100644 src/main/java/com/icomsys/MessagingConnector.java create mode 100644 src/main/java/com/icomsys/dsl/MessageSendServiceDsl.java create mode 100644 src/main/java/com/icomsys/dsl/MessageSendServiceDslImpl.java create mode 100644 src/main/java/com/icomsys/message/MessageSendLogMapper.java create mode 100644 src/main/java/com/icomsys/util/CommonBeanUtils.java create mode 100644 src/main/java/com/icomsys/vo/MessageSendLogInfo.java create mode 100644 src/main/java/com/icomsys/vo/MessageSendRequest.java create mode 100644 src/main/java/com/icomsys/vo/MessageSendResponse.java create mode 100644 src/main/java/com/icomsys/vo/SejongKakaoSendRequest.java create mode 100644 src/main/java/com/icomsys/vo/SejongLmsSendRequest.java create mode 100644 src/main/java/com/icomsys/vo/SejongMessageSendResponse.java create mode 100644 src/main/java/com/icomsys/vo/SejongMmsSendRequest.java create mode 100644 src/main/java/com/icomsys/vo/SejongSmsSendRequest.java create mode 100644 src/main/resources/mapper/message/MessageSendLog.xml create mode 100644 target/classes/com/icomsys/MessagingConnector$1.class create mode 100644 target/classes/com/icomsys/MessagingConnector$2.class create mode 100644 target/classes/com/icomsys/MessagingConnector$3.class create mode 100644 target/classes/com/icomsys/MessagingConnector$4.class create mode 100644 target/classes/com/icomsys/MessagingConnector.class create mode 100644 target/classes/com/icomsys/dsl/MessageSendServiceDsl.class create mode 100644 target/classes/com/icomsys/dsl/MessageSendServiceDslImpl.class create mode 100644 target/classes/com/icomsys/message/MessageSendLogMapper.class create mode 100644 target/classes/com/icomsys/util/CommonBeanUtils.class create mode 100644 target/classes/com/icomsys/vo/MessageSendLogInfo$Builder.class create mode 100644 target/classes/com/icomsys/vo/MessageSendLogInfo.class create mode 100644 target/classes/com/icomsys/vo/MessageSendRequest$Builder.class create mode 100644 target/classes/com/icomsys/vo/MessageSendRequest.class create mode 100644 target/classes/com/icomsys/vo/MessageSendResponse$Builder.class create mode 100644 target/classes/com/icomsys/vo/MessageSendResponse.class create mode 100644 target/classes/com/icomsys/vo/SejongKakaoSendRequest$Builder.class create mode 100644 target/classes/com/icomsys/vo/SejongKakaoSendRequest.class create mode 100644 target/classes/com/icomsys/vo/SejongLmsSendRequest$Builder.class create mode 100644 target/classes/com/icomsys/vo/SejongLmsSendRequest.class create mode 100644 target/classes/com/icomsys/vo/SejongMessageSendResponse$Builder.class create mode 100644 target/classes/com/icomsys/vo/SejongMessageSendResponse.class create mode 100644 target/classes/com/icomsys/vo/SejongMmsSendRequest.class create mode 100644 target/classes/com/icomsys/vo/SejongSmsSendRequest$Builder.class create mode 100644 target/classes/com/icomsys/vo/SejongSmsSendRequest.class create mode 100644 target/classes/mapper/message/MessageSendLog.xml create mode 100644 target/maven-archiver/pom.properties create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 target/message-module-0.0.8-SNAPSHOT.jar diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..2543c9a --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..7580bb2 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..accd629 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/project.iml b/.idea/project.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/project.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..8a54ebd --- /dev/null +++ b/pom.xml @@ -0,0 +1,70 @@ + + + 4.0.0 + + com.icomsys.message + message-module + 0.0.8-SNAPSHOT + + + 11 + 11 + 11 + UTF-8 + + + + icomsys-repo-snapshot + icomsys-repo-snapshot + http://192.168.0.43:8081/repository/icomsys-repo-snapshot/ + + + icomsys-repo-release + icomsys-repo-release + http://192.168.0.43:8081/repository/icomsys-repo-release/ + + + + + central + https://repo.maven.apache.org/maven2 + + + icomsys-release + http://192.168.0.43:8081/repository/icomsys-repo-release/ + + + icomsys-snapshot + http://192.168.0.43:8081/repository/icomsys-repo-snapshot/ + + + + + org.slf4j + slf4j-api + 1.7.25 + + + ch.qos.logback + logback-classic + 1.2.3 + + + com.fasterxml.jackson.core + jackson-databind + 2.15.2 + + + com.icomsys.common + common-utils + 0.0.8-SNAPSHOT + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.3 + + + \ No newline at end of file diff --git a/src/main/java/com/icomsys/MessagingConnector.java b/src/main/java/com/icomsys/MessagingConnector.java new file mode 100644 index 0000000..3159b3d --- /dev/null +++ b/src/main/java/com/icomsys/MessagingConnector.java @@ -0,0 +1,160 @@ +package com.icomsys; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.icomsys.dsl.MessageSendServiceDsl; +import com.icomsys.util.CommonBeanUtils; +import com.icomsys.vo.*; + +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import java.time.LocalDate; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +public class MessagingConnector { + + private final String sms; + private final String lms; + private final String mms; + private final String kakao; + private final String apiKey; + private final MessageSendServiceDsl messageSendServiceDsl; + private final HttpClient httpClient; + + public MessagingConnector(String sms, String lms, String mms, String kakao, String apiKey, MessageSendServiceDsl dsl) { + this.sms = sms; + this.lms = lms; + this.mms = mms; + this.kakao = kakao; + this.apiKey = apiKey; + this.messageSendServiceDsl = dsl; + this.httpClient = HttpClient.newHttpClient(); + } + + public MessageSendResponse messageDiv(MessageSendRequest messageSendRequest) throws IOException, InterruptedException { + String url = sms; + String key = UUID.randomUUID().toString().substring(0, 6); + LocalDate now = LocalDate.now(); + messageSendRequest.setUserKey(now.toString().substring(2).replace("-", "") + key); + + if (messageSendRequest.getSendType() == null || messageSendRequest.getSendType().isEmpty()) { + if (messageSendRequest.getContents().getBytes(StandardCharsets.UTF_8).length < 91) { + messageSendRequest.setSendType("SMS"); + return this.messageSend(messageSendRequest, url); + } else { + messageSendRequest.setSendType("LMS"); + url = lms; + return this.messageSend(messageSendRequest, url); + } + } else { + switch (messageSendRequest.getSendType()) { + case "SMS": + return this.messageSend(messageSendRequest, url); + case "LMS": + url = lms; + return this.messageSend(messageSendRequest, url); + case "MMS": + url = mms; + return this.messageSend(messageSendRequest, url); + case "KAKAO": + url = kakao; + return this.messageSend(messageSendRequest, url); + default: + return null; + } + } + } + + public MessageSendResponse messageSend(MessageSendRequest messageSendRequest, String url) throws IOException, InterruptedException { + MessageSendResponse messageSendResponse = new MessageSendResponse(); + SejongMessageSendResponse sejongMessageSendResponse = null; + + try { + ObjectMapper objectMapper = new ObjectMapper(); + Map body = prepareRequestBody(messageSendRequest, objectMapper); + + String jsonBody = objectMapper.writeValueAsString(body); + + HttpRequest request = HttpRequest.newBuilder() + .uri(URI.create(url)) + .header("Content-Type", "application/json") + .header("sejongApiKey", apiKey) + .POST(HttpRequest.BodyPublishers.ofString(jsonBody)) + .build(); + + HttpResponse response = httpClient.send(request, HttpResponse.BodyHandlers.ofString()); + + if (response.statusCode() == 200) { + sejongMessageSendResponse = objectMapper.readValue(response.body(), SejongMessageSendResponse.class); + } else { + messageSendResponse.setCode("500"); + messageSendResponse.setMessage("서버 통신 오류"); + } + } catch (Exception e) { + messageSendResponse.setCode("500"); + messageSendResponse.setMessage("서버 통신 오류"); + } + + messageSendResponse = this.responseChange(sejongMessageSendResponse, messageSendRequest); + messageSendServiceDsl.insertSendLog(sejongMessageSendResponse, messageSendRequest, messageSendResponse); + + if ("KAKAO".equals(messageSendRequest.getSendType()) && "Y".equals(messageSendRequest.getOptionYn())) { + if (!Objects.equals(sejongMessageSendResponse.getCode(), "200")) { + messageSendRequest.setSendType(""); + messageSendResponse = this.messageDiv(messageSendRequest); + } + } + + return messageSendResponse; + } + + private Map prepareRequestBody(MessageSendRequest messageSendRequest, ObjectMapper objectMapper) { + switch (messageSendRequest.getSendType()) { + case "SMS": + return objectMapper.convertValue(CommonBeanUtils.convertType(messageSendRequest, SejongSmsSendRequest.class), new TypeReference<>() {}); + case "LMS": + return objectMapper.convertValue(CommonBeanUtils.convertType(messageSendRequest, SejongLmsSendRequest.class), new TypeReference<>() {}); + case "MMS": + return objectMapper.convertValue(CommonBeanUtils.convertType(messageSendRequest, SejongMmsSendRequest.class), new TypeReference<>() {}); + case "KAKAO": + return objectMapper.convertValue(CommonBeanUtils.convertType(messageSendRequest, SejongKakaoSendRequest.class), new TypeReference<>() {}); + default: + throw new IllegalArgumentException("Unsupported send type"); + } + } + + public MessageSendResponse responseChange(SejongMessageSendResponse response, MessageSendRequest request) { + MessageSendResponse messageSendResponse = new MessageSendResponse(); + messageSendResponse.setSendType(request.getSendType()); + messageSendResponse.setSendCode(response != null ? response.getSendCode() : null); + + if (response == null || response.getCode() == null) { + messageSendResponse.setCode("500"); + messageSendResponse.setMessage("서버 오류"); + return messageSendResponse; + } + + int code = Integer.parseInt(response.getCode()); + if (code == 200) { + messageSendResponse.setCode("200"); + messageSendResponse.setMessage("메세지 전송 요청 성공"); + } else if (code >= 300 && code < 400) { + messageSendResponse.setCode("300"); + messageSendResponse.setMessage("Parameter 확인"); + } else if (code >= 400 && code < 500) { + messageSendResponse.setCode("400"); + messageSendResponse.setMessage("서버 통신 실패"); + } else if (code >= 500) { + messageSendResponse.setCode("600"); + messageSendResponse.setMessage("메세지 전송 오류"); + } + + return messageSendResponse; + } +} \ No newline at end of file diff --git a/src/main/java/com/icomsys/dsl/MessageSendServiceDsl.java b/src/main/java/com/icomsys/dsl/MessageSendServiceDsl.java new file mode 100644 index 0000000..e016367 --- /dev/null +++ b/src/main/java/com/icomsys/dsl/MessageSendServiceDsl.java @@ -0,0 +1,12 @@ +package com.icomsys.dsl; + +import com.icomsys.vo.MessageSendRequest; +import com.icomsys.vo.MessageSendResponse; +import com.icomsys.vo.SejongMessageSendResponse; + +public interface MessageSendServiceDsl { + + void insertSendLog(SejongMessageSendResponse response, MessageSendRequest request, MessageSendResponse messageSendResponse); + + void updateSendLog(int seq); +} \ No newline at end of file diff --git a/src/main/java/com/icomsys/dsl/MessageSendServiceDslImpl.java b/src/main/java/com/icomsys/dsl/MessageSendServiceDslImpl.java new file mode 100644 index 0000000..e94ce38 --- /dev/null +++ b/src/main/java/com/icomsys/dsl/MessageSendServiceDslImpl.java @@ -0,0 +1,51 @@ +package com.icomsys.dsl; + +import com.icomsys.message.MessageSendLogMapper; +import com.icomsys.vo.MessageSendLogInfo; +import com.icomsys.vo.MessageSendRequest; +import com.icomsys.vo.MessageSendResponse; +import com.icomsys.vo.SejongMessageSendResponse; + +import java.time.LocalDateTime; + +public class MessageSendServiceDslImpl implements MessageSendServiceDsl { + + private final MessageSendLogMapper messageSendLogMapper; + + public MessageSendServiceDslImpl(MessageSendLogMapper messageSendLogMapper) { + this.messageSendLogMapper = messageSendLogMapper; + } + + @Override + public void insertSendLog(SejongMessageSendResponse response, MessageSendRequest request, MessageSendResponse messageSendResponse) { + String sendYn = messageSendResponse.getCode().equals("200") ? "Y" : "N"; + + MessageSendLogInfo messageSendLogInfo = new MessageSendLogInfo.Builder() + .setSendYn(sendYn) + .setUserKey(request.getUserKey()) + .setCallBack(request.getCallback()) + .setReceiverTelNo(request.getReceiverTelNo()) + .setSendType(messageSendResponse.getSendType()) + .setContents(request.getContents()) + .setAdvertisementYn(request.getAdvertisementYn()) + .setImageFile1("") + .setImageFile2("") + .setImageFile3("") + .setVideoFile("") + .setSenderKey(request.getSenderKey()) + .setTemplateCode(request.getTemplateCode()) + .setInitCallNo("") + .setApiResponseCode(response.getCode()) + .setResultCode(messageSendResponse.getCode()) + .setRegistDate(LocalDateTime.now()) + .setOptionYn(request.getOptionYn()) + .build(); + + messageSendLogMapper.insertSendLog(messageSendLogInfo); + } + + @Override + public void updateSendLog(int seq) { + //messageSendLogMapper.updateSendLog(seq); + } +} \ No newline at end of file diff --git a/src/main/java/com/icomsys/message/MessageSendLogMapper.java b/src/main/java/com/icomsys/message/MessageSendLogMapper.java new file mode 100644 index 0000000..4c11060 --- /dev/null +++ b/src/main/java/com/icomsys/message/MessageSendLogMapper.java @@ -0,0 +1,16 @@ +package com.icomsys.message; + +import com.icomsys.vo.MessageSendLogInfo; +import com.icomsys.vo.MessageSendRequest; + +import java.util.List; + +public interface MessageSendLogMapper { + + void insertSendLog(MessageSendLogInfo messageSendLogInfo); + + List selectSendLog(); + + void updateSendLog(String userKey); + +} diff --git a/src/main/java/com/icomsys/util/CommonBeanUtils.java b/src/main/java/com/icomsys/util/CommonBeanUtils.java new file mode 100644 index 0000000..27abdc0 --- /dev/null +++ b/src/main/java/com/icomsys/util/CommonBeanUtils.java @@ -0,0 +1,79 @@ +package com.icomsys.util; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class CommonBeanUtils { + + public static T convertType(Object source, Class targetType, String... ignoreProperties) { + try { + // T 타입의 객체 생성 + T target = targetType.getDeclaredConstructor().newInstance(); + + if (source != null) { + List ignoredProperties = List.of(ignoreProperties); + Field[] sourceFields = source.getClass().getDeclaredFields(); + Field[] targetFields = targetType.getDeclaredFields(); + + for (Field sourceField : sourceFields) { + sourceField.setAccessible(true); + if (ignoredProperties.contains(sourceField.getName())) { + continue; + } + + for (Field targetField : targetFields) { + if (sourceField.getName().equals(targetField.getName()) && + sourceField.getType().equals(targetField.getType())) { + targetField.setAccessible(true); + targetField.set(target, sourceField.get(source)); + } + } + } + } + return target; + } catch (Exception ex) { + throw new RuntimeException("객체 변환 실패", ex); + } + } + + public static List convertListType(List sourceList, Class targetType, String... ignoreProperties) { + List targetList = new ArrayList<>(); + if (sourceList != null) { + for (Object source : sourceList) { + T target = convertType(source, targetType, ignoreProperties); + targetList.add(target); + } + } + return targetList; + } + + @SuppressWarnings("unchecked") + public static T getProperty(Object obj, String propertyName) { + try { + Field field = obj.getClass().getDeclaredField(propertyName); + field.setAccessible(true); + return (T) field.get(obj); + } catch (NoSuchFieldException | IllegalAccessException | ClassCastException e) { + throw new RuntimeException("속성 읽기 실패", e); + } + } + + public static List getPropertyNames(Object obj) { + return getPropertyNames(obj, null); + } + + public static List getPropertyNames(Object obj, Class findType) { + Field[] fields = obj.getClass().getDeclaredFields(); + Stream fieldStream = Stream.of(fields); + + if (findType != null) { + fieldStream = fieldStream.filter(field -> field.getType().equals(findType)); + } + + return fieldStream.map(Field::getName).collect(Collectors.toList()); + } +} diff --git a/src/main/java/com/icomsys/vo/MessageSendLogInfo.java b/src/main/java/com/icomsys/vo/MessageSendLogInfo.java new file mode 100644 index 0000000..7a4a394 --- /dev/null +++ b/src/main/java/com/icomsys/vo/MessageSendLogInfo.java @@ -0,0 +1,169 @@ +package com.icomsys.vo; + +import java.time.LocalDateTime; + +public class MessageSendLogInfo { + + private String seqNo; + private String sendYn; + private String userKey; + private String callBack; + private String receiverTelNo; + private String sendType; + private String contents; + private String advertisementYn; + private String imageFile1; + private String imageFile2; + private String imageFile3; + private String videoFile; + private String senderKey; + private String templateCode; + private String initCallNo; + private String apiResponseCode; + private String resultCode; + private LocalDateTime registDate; + private String optionYn; + + private MessageSendLogInfo(Builder builder) { + this.seqNo = builder.seqNo; + this.sendYn = builder.sendYn; + this.userKey = builder.userKey; + this.callBack = builder.callBack; + this.receiverTelNo = builder.receiverTelNo; + this.sendType = builder.sendType; + this.contents = builder.contents; + this.advertisementYn = builder.advertisementYn; + this.imageFile1 = builder.imageFile1; + this.imageFile2 = builder.imageFile2; + this.imageFile3 = builder.imageFile3; + this.videoFile = builder.videoFile; + this.senderKey = builder.senderKey; + this.templateCode = builder.templateCode; + this.initCallNo = builder.initCallNo; + this.apiResponseCode = builder.apiResponseCode; + this.resultCode = builder.resultCode; + this.registDate = builder.registDate; + this.optionYn = builder.optionYn; + } + + public static class Builder { + private String seqNo; + private String sendYn; + private String userKey; + private String callBack; + private String receiverTelNo; + private String sendType; + private String contents; + private String advertisementYn; + private String imageFile1; + private String imageFile2; + private String imageFile3; + private String videoFile; + private String senderKey; + private String templateCode; + private String initCallNo; + private String apiResponseCode; + private String resultCode; + private LocalDateTime registDate; + private String optionYn; + + public Builder setSeqNo(String seqNo) { + this.seqNo = seqNo; + return this; + } + + public Builder setSendYn(String sendYn) { + this.sendYn = sendYn; + return this; + } + + public Builder setUserKey(String userKey) { + this.userKey = userKey; + return this; + } + + public Builder setCallBack(String callBack) { + this.callBack = callBack; + return this; + } + + public Builder setReceiverTelNo(String receiverTelNo) { + this.receiverTelNo = receiverTelNo; + return this; + } + + public Builder setSendType(String sendType) { + this.sendType = sendType; + return this; + } + + public Builder setContents(String contents) { + this.contents = contents; + return this; + } + + public Builder setAdvertisementYn(String advertisementYn) { + this.advertisementYn = advertisementYn; + return this; + } + + public Builder setImageFile1(String imageFile1) { + this.imageFile1 = imageFile1; + return this; + } + + public Builder setImageFile2(String imageFile2) { + this.imageFile2 = imageFile2; + return this; + } + + public Builder setImageFile3(String imageFile3) { + this.imageFile3 = imageFile3; + return this; + } + + public Builder setVideoFile(String videoFile) { + this.videoFile = videoFile; + return this; + } + + public Builder setSenderKey(String senderKey) { + this.senderKey = senderKey; + return this; + } + + public Builder setTemplateCode(String templateCode) { + this.templateCode = templateCode; + return this; + } + + public Builder setInitCallNo(String initCallNo) { + this.initCallNo = initCallNo; + return this; + } + + public Builder setApiResponseCode(String apiResponseCode) { + this.apiResponseCode = apiResponseCode; + return this; + } + + public Builder setResultCode(String resultCode) { + this.resultCode = resultCode; + return this; + } + + public Builder setRegistDate(LocalDateTime registDate) { + this.registDate = registDate; + return this; + } + + public Builder setOptionYn(String optionYn) { + this.optionYn = optionYn; + return this; + } + + public MessageSendLogInfo build() { + return new MessageSendLogInfo(this); + } + } +} diff --git a/src/main/java/com/icomsys/vo/MessageSendRequest.java b/src/main/java/com/icomsys/vo/MessageSendRequest.java new file mode 100644 index 0000000..0b0ae6b --- /dev/null +++ b/src/main/java/com/icomsys/vo/MessageSendRequest.java @@ -0,0 +1,269 @@ +package com.icomsys.vo; + +public class MessageSendRequest { + private String callback; + private String contents; + private String receiverTelNo; + private String userKey; + private String advertisementYn; + private String sendType; + private String senderKey; + private String templateCode; + private byte[] imageFile1; + private byte[] imageFile2; + private byte[] imageFile3; + private byte[] videoFile; + private String initCallNo; + private String optionYn; + + public MessageSendRequest() {} + + public MessageSendRequest( + String callback, String contents, String receiverTelNo, String userKey, + String advertisementYn, String sendType, String senderKey, String templateCode, + byte[] imageFile1, byte[] imageFile2, byte[] imageFile3, byte[] videoFile, + String initCallNo, String optionYn + ) { + this.callback = callback; + this.contents = contents; + this.receiverTelNo = receiverTelNo; + this.userKey = userKey; + this.advertisementYn = advertisementYn; + this.sendType = sendType; + this.senderKey = senderKey; + this.templateCode = templateCode; + this.imageFile1 = imageFile1; + this.imageFile2 = imageFile2; + this.imageFile3 = imageFile3; + this.videoFile = videoFile; + this.initCallNo = initCallNo; + this.optionYn = optionYn; + } + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public String getContents() { + return contents; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public String getReceiverTelNo() { + return receiverTelNo; + } + + public void setReceiverTelNo(String receiverTelNo) { + this.receiverTelNo = receiverTelNo; + } + + public String getUserKey() { + return userKey; + } + + public void setUserKey(String userKey) { + this.userKey = userKey; + } + + public String getAdvertisementYn() { + return advertisementYn; + } + + public void setAdvertisementYn(String advertisementYn) { + this.advertisementYn = advertisementYn; + } + + public String getSendType() { + return sendType; + } + + public void setSendType(String sendType) { + this.sendType = sendType; + } + + public String getSenderKey() { + return senderKey; + } + + public void setSenderKey(String senderKey) { + this.senderKey = senderKey; + } + + public String getTemplateCode() { + return templateCode; + } + + public void setTemplateCode(String templateCode) { + this.templateCode = templateCode; + } + + public byte[] getImageFile1() { + return imageFile1; + } + + public void setImageFile1(byte[] imageFile1) { + this.imageFile1 = imageFile1; + } + + public byte[] getImageFile2() { + return imageFile2; + } + + public void setImageFile2(byte[] imageFile2) { + this.imageFile2 = imageFile2; + } + + public byte[] getImageFile3() { + return imageFile3; + } + + public void setImageFile3(byte[] imageFile3) { + this.imageFile3 = imageFile3; + } + + public byte[] getVideoFile() { + return videoFile; + } + + public void setVideoFile(byte[] videoFile) { + this.videoFile = videoFile; + } + + public String getInitCallNo() { + return initCallNo; + } + + public void setInitCallNo(String initCallNo) { + this.initCallNo = initCallNo; + } + + public String getOptionYn() { + return optionYn; + } + + public void setOptionYn(String optionYn) { + this.optionYn = optionYn; + } + + @Override + public String toString() { + return "MessageSendRequest{" + + "callback='" + callback + '\'' + + ", contents='" + contents + '\'' + + ", receiverTelNo='" + receiverTelNo + '\'' + + ", userKey='" + userKey + '\'' + + ", advertisementYn='" + advertisementYn + '\'' + + ", sendType='" + sendType + '\'' + + ", senderKey='" + senderKey + '\'' + + ", templateCode='" + templateCode + '\'' + + ", imageFile1=" + (imageFile1 != null ? "not null" : "null") + + ", imageFile2=" + (imageFile2 != null ? "not null" : "null") + + ", imageFile3=" + (imageFile3 != null ? "not null" : "null") + + ", videoFile=" + (videoFile != null ? "not null" : "null") + + ", initCallNo='" + initCallNo + '\'' + + ", optionYn='" + optionYn + '\'' + + '}'; + } + + public static class Builder { + private String callback; + private String contents; + private String receiverTelNo; + private String userKey; + private String advertisementYn; + private String sendType; + private String senderKey; + private String templateCode; + private byte[] imageFile1; + private byte[] imageFile2; + private byte[] imageFile3; + private byte[] videoFile; + private String initCallNo; + private String optionYn; + + public Builder callback(String callback) { + this.callback = callback; + return this; + } + + public Builder contents(String contents) { + this.contents = contents; + return this; + } + + public Builder receiverTelNo(String receiverTelNo) { + this.receiverTelNo = receiverTelNo; + return this; + } + + public Builder userKey(String userKey) { + this.userKey = userKey; + return this; + } + + public Builder advertisementYn(String advertisementYn) { + this.advertisementYn = advertisementYn; + return this; + } + + public Builder sendType(String sendType) { + this.sendType = sendType; + return this; + } + + public Builder senderKey(String senderKey) { + this.senderKey = senderKey; + return this; + } + + public Builder templateCode(String templateCode) { + this.templateCode = templateCode; + return this; + } + + public Builder imageFile1(byte[] imageFile1) { + this.imageFile1 = imageFile1; + return this; + } + + public Builder imageFile2(byte[] imageFile2) { + this.imageFile2 = imageFile2; + return this; + } + + public Builder imageFile3(byte[] imageFile3) { + this.imageFile3 = imageFile3; + return this; + } + + public Builder videoFile(byte[] videoFile) { + this.videoFile = videoFile; + return this; + } + + public Builder initCallNo(String initCallNo) { + this.initCallNo = initCallNo; + return this; + } + + public Builder optionYn(String optionYn) { + this.optionYn = optionYn; + return this; + } + + public MessageSendRequest build() { + return new MessageSendRequest( + callback, contents, receiverTelNo, userKey, advertisementYn, + sendType, senderKey, templateCode, imageFile1, imageFile2, + imageFile3, videoFile, initCallNo, optionYn + ); + } + } +} diff --git a/src/main/java/com/icomsys/vo/MessageSendResponse.java b/src/main/java/com/icomsys/vo/MessageSendResponse.java new file mode 100644 index 0000000..e1194f1 --- /dev/null +++ b/src/main/java/com/icomsys/vo/MessageSendResponse.java @@ -0,0 +1,92 @@ +package com.icomsys.vo; + +import java.util.Objects; + +public class MessageSendResponse { + private String code; + private String sendCode; + private String message; + private String sendType; + + public MessageSendResponse() {} + + public MessageSendResponse(String code, String sendCode, String message, String sendType) { + this.code = code; + this.sendCode = sendCode; + this.message = message; + this.sendType = sendType; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getSendCode() { + return sendCode; + } + + public void setSendCode(String sendCode) { + this.sendCode = sendCode; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getSendType() { + return sendType; + } + + public void setSendType(String sendType) { + this.sendType = sendType; + } + + @Override + public String toString() { + return "MessageSendResponse{" + + "code='" + code + '\'' + + ", sendCode='" + sendCode + '\'' + + ", message='" + message + '\'' + + ", sendType='" + sendType + '\'' + + '}'; + } + + public static class Builder { + private String code; + private String sendCode; + private String message; + private String sendType; + + public Builder code(String code) { + this.code = code; + return this; + } + + public Builder sendCode(String sendCode) { + this.sendCode = sendCode; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder sendType(String sendType) { + this.sendType = sendType; + return this; + } + + public MessageSendResponse build() { + return new MessageSendResponse(code, sendCode, message, sendType); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/icomsys/vo/SejongKakaoSendRequest.java b/src/main/java/com/icomsys/vo/SejongKakaoSendRequest.java new file mode 100644 index 0000000..b44931f --- /dev/null +++ b/src/main/java/com/icomsys/vo/SejongKakaoSendRequest.java @@ -0,0 +1,107 @@ +package com.icomsys.vo; + +public class SejongKakaoSendRequest { + private String senderKey; + private String templateCode; + private String contents; + private String receiverTelNo; + private String userKey; + + public SejongKakaoSendRequest() {} + + public SejongKakaoSendRequest(String senderKey, String templateCode, String contents, String receiverTelNo, String userKey) { + this.senderKey = senderKey; + this.templateCode = templateCode; + this.contents = contents; + this.receiverTelNo = receiverTelNo; + this.userKey = userKey; + } + + public String getSenderKey() { + return senderKey; + } + + public void setSenderKey(String senderKey) { + this.senderKey = senderKey; + } + + public String getTemplateCode() { + return templateCode; + } + + public void setTemplateCode(String templateCode) { + this.templateCode = templateCode; + } + + public String getContents() { + return contents; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public String getReceiverTelNo() { + return receiverTelNo; + } + + public void setReceiverTelNo(String receiverTelNo) { + this.receiverTelNo = receiverTelNo; + } + + public String getUserKey() { + return userKey; + } + + public void setUserKey(String userKey) { + this.userKey = userKey; + } + + @Override + public String toString() { + return "SejongKakaoSendRequest{" + + "senderKey='" + senderKey + '\'' + + ", templateCode='" + templateCode + '\'' + + ", contents='" + contents + '\'' + + ", receiverTelNo='" + receiverTelNo + '\'' + + ", userKey='" + userKey + '\'' + + '}'; + } + + public static class Builder { + private String senderKey; + private String templateCode; + private String contents; + private String receiverTelNo; + private String userKey; + + public Builder senderKey(String senderKey) { + this.senderKey = senderKey; + return this; + } + + public Builder templateCode(String templateCode) { + this.templateCode = templateCode; + return this; + } + + public Builder contents(String contents) { + this.contents = contents; + return this; + } + + public Builder receiverTelNo(String receiverTelNo) { + this.receiverTelNo = receiverTelNo; + return this; + } + + public Builder userKey(String userKey) { + this.userKey = userKey; + return this; + } + + public SejongKakaoSendRequest build() { + return new SejongKakaoSendRequest(senderKey, templateCode, contents, receiverTelNo, userKey); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/icomsys/vo/SejongLmsSendRequest.java b/src/main/java/com/icomsys/vo/SejongLmsSendRequest.java new file mode 100644 index 0000000..b43c43a --- /dev/null +++ b/src/main/java/com/icomsys/vo/SejongLmsSendRequest.java @@ -0,0 +1,77 @@ +package com.icomsys.vo; + +public class SejongLmsSendRequest extends SejongSmsSendRequest { + private String title; + + public SejongLmsSendRequest() { + super(); + } + + public SejongLmsSendRequest(String callback, String contents, String receiverTelNo, String userKey, String advertisementYn, String title) { + super(callback, contents, receiverTelNo, userKey, advertisementYn); + this.title = title; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + @Override + public String toString() { + return "SejongLmsSendRequest{" + + "title='" + title + '\'' + + ", callback='" + getCallback() + '\'' + + ", contents='" + getContents() + '\'' + + ", receiverTelNo='" + getReceiverTelNo() + '\'' + + ", userKey='" + getUserKey() + '\'' + + ", advertisementYn='" + getAdvertisementYn() + '\'' + + '}'; + } + + public static class Builder { + private String callback; + private String contents; + private String receiverTelNo; + private String userKey; + private String advertisementYn; + private String title; + + public Builder callback(String callback) { + this.callback = callback; + return this; + } + + public Builder contents(String contents) { + this.contents = contents; + return this; + } + + public Builder receiverTelNo(String receiverTelNo) { + this.receiverTelNo = receiverTelNo; + return this; + } + + public Builder userKey(String userKey) { + this.userKey = userKey; + return this; + } + + public Builder advertisementYn(String advertisementYn) { + this.advertisementYn = advertisementYn; + return this; + } + + public Builder title(String title) { + this.title = title; + return this; + } + + public SejongLmsSendRequest build() { + return new SejongLmsSendRequest(callback, contents, receiverTelNo, userKey, advertisementYn, title); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/icomsys/vo/SejongMessageSendResponse.java b/src/main/java/com/icomsys/vo/SejongMessageSendResponse.java new file mode 100644 index 0000000..c503aec --- /dev/null +++ b/src/main/java/com/icomsys/vo/SejongMessageSendResponse.java @@ -0,0 +1,73 @@ +package com.icomsys.vo; + +public class SejongMessageSendResponse { + private String code; + private String sendCode; + private String message; + + public SejongMessageSendResponse() {} + + public SejongMessageSendResponse(String code, String sendCode, String message) { + this.code = code; + this.sendCode = sendCode; + this.message = message; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getSendCode() { + return sendCode; + } + + public void setSendCode(String sendCode) { + this.sendCode = sendCode; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "SejongMessageSendResponse{" + + "code='" + code + '\'' + + ", sendCode='" + sendCode + '\'' + + ", message='" + message + '\'' + + '}'; + } + + public static class Builder { + private String code; + private String sendCode; + private String message; + + public Builder code(String code) { + this.code = code; + return this; + } + + public Builder sendCode(String sendCode) { + this.sendCode = sendCode; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public SejongMessageSendResponse build() { + return new SejongMessageSendResponse(code, sendCode, message); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/icomsys/vo/SejongMmsSendRequest.java b/src/main/java/com/icomsys/vo/SejongMmsSendRequest.java new file mode 100644 index 0000000..f7027e0 --- /dev/null +++ b/src/main/java/com/icomsys/vo/SejongMmsSendRequest.java @@ -0,0 +1,69 @@ +package com.icomsys.vo; + +import java.util.Arrays; + +public class SejongMmsSendRequest extends SejongLmsSendRequest { + private byte[] imageFile1; + private byte[] imageFile2; + private byte[] imageFile3; + private byte[] videoFile; + + public SejongMmsSendRequest() {} + + public SejongMmsSendRequest(String callback, String contents, String receiverTelNo, String userKey, String advertisementYn, + String title, byte[] imageFile1, byte[] imageFile2, byte[] imageFile3, byte[] videoFile) { + super(callback, contents, receiverTelNo, userKey, advertisementYn, title); // 부모 클래스 생성자 호출 + this.imageFile1 = imageFile1; + this.imageFile2 = imageFile2; + this.imageFile3 = imageFile3; + this.videoFile = videoFile; + } + + public byte[] getImageFile1() { + return imageFile1; + } + + public void setImageFile1(byte[] imageFile1) { + this.imageFile1 = imageFile1; + } + + public byte[] getImageFile2() { + return imageFile2; + } + + public void setImageFile2(byte[] imageFile2) { + this.imageFile2 = imageFile2; + } + + public byte[] getImageFile3() { + return imageFile3; + } + + public void setImageFile3(byte[] imageFile3) { + this.imageFile3 = imageFile3; + } + + public byte[] getVideoFile() { + return videoFile; + } + + public void setVideoFile(byte[] videoFile) { + this.videoFile = videoFile; + } + + @Override + public String toString() { + return "SejongMmsSendRequest{" + + "imageFile1=" + Arrays.toString(imageFile1) + + ", imageFile2=" + Arrays.toString(imageFile2) + + ", imageFile3=" + Arrays.toString(imageFile3) + + ", videoFile=" + Arrays.toString(videoFile) + + ", title='" + getTitle() + '\'' + + ", callback='" + getCallback() + '\'' + + ", contents='" + getContents() + '\'' + + ", receiverTelNo='" + getReceiverTelNo() + '\'' + + ", userKey='" + getUserKey() + '\'' + + ", advertisementYn='" + getAdvertisementYn() + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/src/main/java/com/icomsys/vo/SejongSmsSendRequest.java b/src/main/java/com/icomsys/vo/SejongSmsSendRequest.java new file mode 100644 index 0000000..609fd81 --- /dev/null +++ b/src/main/java/com/icomsys/vo/SejongSmsSendRequest.java @@ -0,0 +1,109 @@ +package com.icomsys.vo; + +import java.io.Serializable; + +public class SejongSmsSendRequest { + private String callback; + private String contents; + private String receiverTelNo; + private String userKey; + private String advertisementYn; + + public SejongSmsSendRequest() {} + + public SejongSmsSendRequest(String callback, String contents, String receiverTelNo, String userKey, String advertisementYn) { + this.callback = callback; + this.contents = contents; + this.receiverTelNo = receiverTelNo; + this.userKey = userKey; + this.advertisementYn = advertisementYn; + } + + public String getCallback() { + return callback; + } + + public void setCallback(String callback) { + this.callback = callback; + } + + public String getContents() { + return contents; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public String getReceiverTelNo() { + return receiverTelNo; + } + + public void setReceiverTelNo(String receiverTelNo) { + this.receiverTelNo = receiverTelNo; + } + + public String getUserKey() { + return userKey; + } + + public void setUserKey(String userKey) { + this.userKey = userKey; + } + + public String getAdvertisementYn() { + return advertisementYn; + } + + public void setAdvertisementYn(String advertisementYn) { + this.advertisementYn = advertisementYn; + } + + @Override + public String toString() { + return "SejongSmsSendRequest{" + + "callback='" + callback + '\'' + + ", contents='" + contents + '\'' + + ", receiverTelNo='" + receiverTelNo + '\'' + + ", userKey='" + userKey + '\'' + + ", advertisementYn='" + advertisementYn + '\'' + + '}'; + } + + public static class Builder { + private String callback; + private String contents; + private String receiverTelNo; + private String userKey; + private String advertisementYn; + + public Builder callback(String callback) { + this.callback = callback; + return this; + } + + public Builder contents(String contents) { + this.contents = contents; + return this; + } + + public Builder receiverTelNo(String receiverTelNo) { + this.receiverTelNo = receiverTelNo; + return this; + } + + public Builder userKey(String userKey) { + this.userKey = userKey; + return this; + } + + public Builder advertisementYn(String advertisementYn) { + this.advertisementYn = advertisementYn; + return this; + } + + public SejongSmsSendRequest build() { + return new SejongSmsSendRequest(callback, contents, receiverTelNo, userKey, advertisementYn); + } + } +} diff --git a/src/main/resources/mapper/message/MessageSendLog.xml b/src/main/resources/mapper/message/MessageSendLog.xml new file mode 100644 index 0000000..2fea81c --- /dev/null +++ b/src/main/resources/mapper/message/MessageSendLog.xml @@ -0,0 +1,30 @@ + + + + + + INSERT INTO TB_UMS_SEND_LOG + (SEND_YN, USER_KEY, CALL_BACK, RECEIVER_TEL_NO, SEND_TYPE, CONTENTS, ADVERTISEMENT_YN, + IMAGE_FILE1, IMAGE_FILE2, IMAGE_FILE3, VIDEO_FILE, SENDER_KEY, TEMPLATE_CODE, INIT_CALL_NO, + API_RESPONSE_CODE, RESULT_CODE, REIGST_DATE, OPTION_YN) + VALUES (#{sendYn}, #{userKey}, #{callBack}, #{receiverTelNo}, #{sendType}, #{contents}, #{advertisementYn}, + #{imageFile1}, #{imageFile2}, #{imageFile3}, #{videoFile}, #{senderKey}, #{templateCode}, #{initCallNo}, + #{apiResponseCode}, #{resultCode}, #{registDate}, #{optionYn}) + + + + + + UPDATE TB_UMS_SEND_LOG + SET SEND_YN = 'Y' + WHERE USER_KEY = #{userKey} + + + + \ No newline at end of file diff --git a/target/classes/com/icomsys/MessagingConnector$1.class b/target/classes/com/icomsys/MessagingConnector$1.class new file mode 100644 index 0000000000000000000000000000000000000000..1459e72a442730a633a4580ca0db154d427349c1 GIT binary patch literal 816 zcma)4O>fgc5Ph4NxG{!?QYfEo1vxZDu=K>iRSrZTkdh*iD))`ONjEsVW_MjRKZ^rG z;=m8!M(4pfL1Tb?h!o!NOaKYxAy0pJyOny6zdLV$ZA?uU55(C{b9wO=yq_ER(G ziiBG@K9J6dsnXM)(ORb7*o3f$N-N)Gc)E8LxHDo1dM1+$>wTr=Q8^z=do0E|MK<~- z75PY5Rr#x6P+f!}eoysmFBi^9a-UpLsC_{9Y7W&@3tw8wJy{-@2x{5VD;dysvR13&p|a=;u|~Q{Ru?sTfoT8PSFrtWsC^-?hKOWii9N%0 tvhSXw5aT9!gkNT3B-hESp@myZy@A`L18m|BovHq8;s)u6a@9%G^Bdl0;XwcZ literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/MessagingConnector$2.class b/target/classes/com/icomsys/MessagingConnector$2.class new file mode 100644 index 0000000000000000000000000000000000000000..703863d0b8c73e480722d8aea7db221ecb32085e GIT binary patch literal 816 zcma)4O>fgc5Ph4NxG{!?QYfEo1vxZDu&5Ufu5us(fs_=9RJm{LO}fF^HM{GI@UJ)^ zBo6!leiUMy=0JsLvE}*l+nJp=^YhpD9{^rpr-?eYA_TY-;%Cl0Za+11 zu1L6r;{)lOm?}N(8LegNjZFx9sI>B3hR1uCfjc9Hpl344u-;c%9+mU4w8vtcQ)HuW zQjw2@Rh7RA2GvCv;_;jiEv)pPxGA5MEb!Q z%~N9~_lrXEV-oM>L|Um+dDx$cQ^8BGay}5n%FTtI@}alXe{u%+Gty1ER5Tiz(x&pY zsyf>Go3Ce8V(R{tPIKcZ(?I$YlZCh+;{hHrtQ|?`-x%j(TtOp7h;5p}#Y1QxFg&dw z|J@+N_Qfe_9EFvIutdtolCJd9WD5pye#EC{wGwhDb+$q#|KK_kUW}E__`C6pc87Q^ zq)j^KsU`~Rdz}$>X(a>NPS$EwJX98aA=XGY$?Bp;FA(iN`3koG4Ye=i)ewVI!MQ5r%o47_gqFi;-^!x_m!r?^# literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/MessagingConnector$3.class b/target/classes/com/icomsys/MessagingConnector$3.class new file mode 100644 index 0000000000000000000000000000000000000000..1fe5b90c0af61f42c6adb866cca629fc51347254 GIT binary patch literal 816 zcma)4O>fgc5Ph4NxG{!?QYfEo1vxZDut+^{aFqiQ2&AM)q{@9`Z_*9UuGw8zMB-0z zKu8?;0sJV$IL(0y(PGQ<<+n3CZ|3K(?>_*%z)ll&Y()rgC&b+l_ZS-fM7j2JhTVQ@ z=3J3*3&#i2IWbjw+A~_q)Ek=+_E2f%y9|%_E(3Q)3_;Iil3~5Cv^*;3V`-1YIH$-) z-=rcR39Bl96%4A2FvM@Ep6%trIZ5uLOA56Q=w8jCnrh)oOSvb@0~6uAw4dfVpNaH? zGn%KyO70hh^4hssH2*@Mol(bg5`GG^I`D zYgKi$^*3M7s>Ia&E1l-XQKo_PCngJVKgI(*WLP_r&c89v$GCzQQAbVRx8r0Mw$=N;im literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/MessagingConnector$4.class b/target/classes/com/icomsys/MessagingConnector$4.class new file mode 100644 index 0000000000000000000000000000000000000000..18f193640e4d3b5e19eacebfec0d45e108b33e7b GIT binary patch literal 816 zcma)4O>fgc5Ph4NxG{!?QYfEo1vxZDupBCJaFqiQ2&AM)q{@9`Z_*9UuGw8zf* z%()`r7LE_3b7HFWv}d%IsW&zu?4i=icNre2)aZZtq zzDY$s5>{3IDi~B3VTj*SJ=@ELbCTRgmlSFr(7l>NHPynGmU2&)2PVRKX+O<#J`?E& zXEaZZmE121$&X3AmlJ8FPUT^LCQbz}y~_DO6e~9uddi31Qvb;r;Lk`m=~B^XXiA&P z*Q)Ah>uE zwU9RHoTr*7tnYP3*rk;WXggV}Rq;?+^o3X>-6X4v8ofZY|Kuy!{x{UVkXJ)Qva!T| v##OR!pP>-rI(dX&W@9AR$*ZA-8%w=`o1_D5;uf8${%qnJ>4v-W! literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/MessagingConnector.class b/target/classes/com/icomsys/MessagingConnector.class new file mode 100644 index 0000000000000000000000000000000000000000..82031c8624ef39d8262e659c12bb1a42c7c28056 GIT binary patch literal 8510 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 sa&MhTpR literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/dsl/MessageSendServiceDslImpl.class b/target/classes/com/icomsys/dsl/MessageSendServiceDslImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..cae189f43fa98dc39e2bfc336c9d0366dc072d9c GIT binary patch literal 2870 zcmb7G`F9gl6#ibiOqvd~gqBkFLJLV30!2kB7F!Svv_+dzEg~>Y9%0I4CS)eX;sP$X zuejn;cTs=y935QF@elBi@_6rL+D<~r!IP8wzWd&N_uY55H~;+m=idPK;^zo@aHIj< zI2yqSM#C73;2@5L@kkhtDo8~T#t|ly5j=*+8BH-d!RQG_CmB7-yH7DX&2wiMX^f^B zrNhYZD4CpPl4Wv^1$0I;jLtJMnB*cbG0Mndl8@j53XE))a~Ktw%r@d8o>DNU;F5x; z1zK{_wzaHGNi#EIWkcGFQgX&Jvw^FPOFM7Tu7R?HNU}`kLQ&dIbrD|;-!xqC zl~%g8ssRE@L3#%XY`X(%1XlZ@;`=V#L!h(jUf)cLqfNV}Om_c_HmfBJ&CDiJPC+-b z{Rfaip#h{n)-L`Qt>=qAazspA5-w6Ks=b%yRlJ0&3SL(63a+Sl6<1Zf#^`lMZ!mh3(OZn(X7moD zcNx9M=o+pHK*jq!^8u3&nS8|LV;1;?(RD_jGWv{<`&`8r%*-?MrHZfcwTf@>t%~nh z@OxhS0XG!{RB_X)RU**56z*fwGcxT6bOjxC+wEmrOPNBRk8vco1{IWhdMPoL ztaM5}pd}VxF6rti{WXKCzBLwDE*UuxKOxX@`(qZ9w855M1K`v?5Y*%6cDzb?RAdDu zbCnav7m77P_c~5}=ct^cOs3-(nMS^`W*E~{5CV;~#N4pQHPhO-OiO*18lg1CsJ@y> zpkj(OaCuM6<*71QLx5xLmgz{-A)k5L7r7{{4P{8RquVk^5?-a#_FE=b&}1@4j{+Cp zZmQKF-(SJ+5m0G;QqM@MRII9RpnrW{Wea__iB=~hHD{`Rzx|Uy`HXiUJt^!O_Cl;8 z$hU3T)TKz-P+nh1vC;{wk7kO7pKNVjzB_tOCcKB{5ZN+89ObTQT@+Zqkc_vAa5wX` zWp&%(eFBI5lv+mk|78|O_E_H0Et5mT(Ocr`rnxOqU6N@P-U#%@rIuUfGQV>NA254?l40110vlwA-a2hL+BUcLg**D zl4OA<)S?*;ScN^rttm<4F5FEV?enx!v!)idx1>{?CYgF#o9}Z`6RmYocOBtq{SDMb zm3_5;Av|>x4ec}^>2=ZQLZxAai&pj z+Tda%4VzqS=BX_`E;?Ln<%3;p`yHJwx@dj7iybav`|7%XMX0^*55z;@d)9dOJcTyG zt@LZdCalF)v?Gpnqu7jbY@x5S4xA*ZGuVbKI$@y;Hn!sucHjzP z^vJ~NDe0zHqnBQQKF@E1C66rnZ65dHKJpiN3HvbMd37H9aX;DAN{`bZ4v^ok(VO!C zhERuLl2i~{HKfp&tH2>Ls1!gB0|!tn#jW1c+aHLRSUi_<9}m%b2oHN3lQ>Regl58Y Iw+S@-2g7X&^Z)<= literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/message/MessageSendLogMapper.class b/target/classes/com/icomsys/message/MessageSendLogMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d5bca59fd82f39da88628321d5003ca031f81e1a GIT binary patch literal 377 zcmaJ-!AiqG5Pj3u##W<6@Zb+fdU20ER6GhoieSL|nvTnsbQ80ig1_d$5AdVJX`-kV zyzJ~e-pqS%-riqc0nBh5A&ziFh^_Nnhm74aEe+v3N%L~8tUUhNt4*mE?7cSp$+&Tk z<$QWCgPse{zXwl}X}Z!It(ss9m0BO>gi&UV)1j%EF#AKe{734JpBk1OSF$B;s-+HJ z4hW}7r&MTXR2FLMOlxVJl}(-VwJk*M?6>cQt}3oCwhjr&&xq?T-%iesPnfisTBX~E kl>{CV2t7F>&>s-`7ywfDFcdrzw1<7^M;ObWaL^)$A0X&!BLDyZ literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/util/CommonBeanUtils.class b/target/classes/com/icomsys/util/CommonBeanUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..cca1b02a55987ec93d3fc0ba22af28e41b1eff7e GIT binary patch literal 5573 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 SCXUD}rqSa+0e(_mmh695NAP|C literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/vo/MessageSendLogInfo.class b/target/classes/com/icomsys/vo/MessageSendLogInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..b5ad00bcaadf6096a947cd9fa032e219dc6dfab8 GIT binary patch literal 1494 zcmai!OLG%P6opUA!m@7SE^X#2k@g(Ik#;CRatm*zSFIq?t5;}=*_>c{{e6nk1MEQr3{VxWz2|Z zd@YWm@r^i&#shH_ja6|Jjixw?#<$`q8ZB`Yjqk)!G`<%{(Re71qVa<`ipG!PC>oE% zQ8a!MN749M97W?7aTJYT#ZfdOaZw5F5;`Sx6-o<38+T2nP+dwAlP$)PbH*v`aOUYs zsxZ-b60Jq`I7)i;)jYFFZ(d>4nWXzL;p0PRvU_G-VXPCy@j}%3U13*dI>xS*?l+pm9H6q~i0 z4zo_^y~4r&*FPsOfx^xeH~=2H6l!Rj*Wnsl*r?Bd=OSs!(T)4;M1L1_n zUg18E{lWtt2Ze_`4hxTX92Fk(I4(TlaZ-57V^Vn9V@f#faYlI7nWxEbzN{ts5{JH-G1 literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/vo/MessageSendRequest$Builder.class b/target/classes/com/icomsys/vo/MessageSendRequest$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..1b1184efe36280e8f53f34ef35e2ea1a58df7810 GIT binary patch literal 2447 zcmchZ%Wo4`6voeWVmmgI#0`*;Knmei+i5Wn9tBboobnQBDv>A>%4+OfrIXq-!84AO zzY35*NL1pnXcu(RE@06v+C{s71uS4e7f|ti*G55|84)&>b-pumAHO;GoO`eQ@ZURk zMdY|#$jW9pl94_+N;yV3PWh5@f^w2_iZV|5igKDVL7AkSp_J1ym6e=)otCp{Ij5wn zYS(HNyZXJ7zUgIq)h^X+cd0ZRG#q#76#G3l&~D%>>2Bz%c2;#`PS<8UCF!QG8<+H& zl3sfe&4J_VI)+|xG0oTR;@sMbR+8akd!QBQ`by0X^pv-VuB=nHm-IQOrVlAeER^4G zIsE?17%;2OqV_nJ9j+5hA#jG#<*fvc=klwmadw#2Sf$(w; za6cfyGg#UM&krowEBh?jB3mu#rwmZGQ3fePlg$S4C|7=+(w|*P>W?>$A>%;LE>5&9ekEaB) zZ#)WMJZfM(%3wSyVLXaqJnCUQN@6^!Vmu0CJZfV+%40k#1fLVdibMC~tpu;&lf~Pj zZkS=8K~tvjn&k0pwFXE*KF6CvxL-gyc>+Nv;M2v?TaqYV$74b`J!_ipOHv*fM1N~o z8-WRC&HQqIG^`^8`w_68Vqi=hVFS^y&JgS&U_Zyen0>;wMZ=OI*e`(n8Uteq2^)-t zr9!YrfIW_ZaUT#i6b(y4qIasV3IXW0_ygtD5;<_Z#- z{6TV8iZ^j_+>{PjCoBm|!P2lUSO%7bZGu^_Zdebj_qKepe%+YcN~KH$t=np{ebscx XA#*7mmNDaVGHR|T{98a2MajGc3KEZR literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/vo/MessageSendRequest.class b/target/classes/com/icomsys/vo/MessageSendRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..b4c67ad0f924338695d32a2d22f738120223af45 GIT binary patch literal 5303 zcmds*%X1V(9LIl??0aXkal^w!g&;waArM{)7=o}tOe7B=A%H<;vO6S0HZ#l4Y$SqJ zTIE5jJZO~%Ja84gX_Z@6anPFw{}C_#4dVCLvya)?-h`V~7R;|-zwZ5X_piU*l|TP^ z`Wq3Qq=yOGMhkK3qw8#Lu(`?RJvNJMZn1fv%?E5gWOJL1&Sr^Co=qV}MvU%cFz($b ztwyOBr8R}3xr$jV7-fajNy{?I<3-(Z3`e0@UN07x^!%zqnW?+_x;|3Wt>uw9w`^L= zqug#=u3@=wO_hzjVXhnHd80UEW6X+UlrI?@3Z?Y|s$J7D*5G>6LN~{-3iBH!L!mfl zYmTaGtd)woYmD0kG$qV6ec8BZ7LB6{buH%nHOKsg;}~Y$EEqQXa)V{M;{a!jm|b#B z+u~o1oZ*JE3Uv<-EhrT7ekDC+TEj-CT6*BDsQii zm@v+UGqP@vOdE~^$~ny9s&TJkI4+ju_rdnX`fqC%bKbw_q2R?yE*oMAy}jQyIMm(| zPLAJcyJXUhp&DT#`ZP+t_?fG%anp-I162ulU8_e^0_}}L1}*1<(UpNmTP073H_3}S zrf8PbT3bB~YmN2rMeBS^V5Z^FT9bm$q%T@SgF_szDLDG8!-I=CUXm7fgmQ}?m;J*b zx?9>&X5fWpz^nKfUs3e-9RbnXSLUUdZJY{Tie@S1+TP*DkIuO`_|tkxoPa3d1SRI| zN;xl%q(VE}L;o;K1ma=_$6(svBjuUNLiJ3v3ZHj%WPg@vzyHxHvMe&(yJ=% zV>7^JKbzOM;Q(cEm@V7ww<^UVPOq2r=4{(_+_GMpHry4v;G`pD$Ec*zJ%XI=-SV_5 z)Z5gx*`>Qi-c@L5%WeY=#q@ReRxUvfVT`}pm*+uUO~(!>2ZsCW+Ub>A|6J)AyO8`}Yb2T(r3y#peT4>^QD<7~_Nr04RK0b)sOMd~yb-03 zacxc6_G+c1&?En9);f7nKcQQNqTvj9o}-&CXiGe zb0>6GCIFpA-2!*k4pym48?I8fcBo1rEgPz0)NHs)5iJ|3QdG-Es}$3+u`0#2Y`jVd zEt{xPQp+Z*q-t5UN+~Uys#1@Z?Wt0_Nt2^q{K_s0L002X)gFjyA8RTmvj>X0AIo_V zlRXMeJqbx2L(Mn@brO0y3*Kv(F3;qVM_Zc-xW&@*^cTe9cZnP?f49i-282Y8w;(KX z{Hqa><86qF9B)KSa=HTu9|I1`H>4n;Ajlah$VoX!CPY$038fDFulHL8hc2qjHc)5acpIu5f)wPu93&nDSpkUI0faS(L2^*O zb{$CsL5fn43-orabBm57f*>V;-0J|s638GIr69>5h${toM-Gw^O1V0|iPr(^5)e5WeIBR8T7_prJ)1MCzsEtb(h=uDnjAz7ARWEYs~#pp>M8 zr|mEq`wL`hoT+frK*4NEq2d)1@SbZ)umi%OF1NtL}#ROVt4OD-JDxp3Lcvsu8Lz}m&#a`s~Z@8ZaRx(FS2}sRGq$@34`0BnZccDPt9ph{gJOiaQ9@d(8?z-$XnhS#5Wzb zoCg7$xJq+(8h~rKK`T-l4YHj4iY_t8+uoD!FubocHNfeP-hKlMI~uVv4a*Ufpljrt z-Evr^0DDic-5D@$lwtGbFtY&LC)mdsFjk9U3*|7Y0P7O$^9&eE&aj)fMV2+&(hmSM zexiEdosw*)sL(KJSZA=$MdXJ94m5fC28~?63T|tu@8GWXRjiPAD85GY>!|+)kY3hO literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/vo/MessageSendResponse.class b/target/classes/com/icomsys/vo/MessageSendResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..ae95f7adaeeb7586717c56f41a9c70daf2db9c9a GIT binary patch literal 2110 zcmbW1-A)rh6vxlB+iodU5T!sB1q6W=s2})QQ346kSTzxX7kaa_ld{t8lFmXxjERro zV`ySy;)M_3LmB^PXQ8zWYP{GpUuVwz&Yb`3kDuSZ6VV-7&QgY^d&s64HnVITHdhC* zUbN|&P1kL@A;@0Y^XgUE6qI}7`?9%Oca@S#kW~q)QqVy8t-J3Q>#kobu7^#}uayL4 zl=Q2s(YoD`O1U+7Mw1%{yXdALc)k}t6qKBq-9#wu+E?~``FyXjC7T=WRy_(HRNVTe z+w^!GPg>!&hw~@Pm7r1dVAO#s?gzzZ`k-|j{Zgvkz*iC|PiKw;{@)Cf+BF$!*mE

mmX!pK;Jy}tOt9|id^&f z_J$2NvcS~>#B-?-oUdBt=nM_yC`YGqbec^cn|?YasDC90LKQaM-Dfh~4yvjzO*b>N zn4?>CThPScD}WeneZ1IuD=VQO=kNO_W7%aP*1Lk%45_@UKwwMLVtQ`uP;PqE&_ZZ0 z@ip=2y`Z6nyCYWvzv70kyl@*m6}o;1J-sp1>v)C#WyT;3o9^+QJ%DW6*Wvm5!H$ey zjb>VND`C()unBJ?T@Hesy07Yz7d1_>y8MzSf$Qn z;t;EDy}s^+vSiaEK~u*PGO-D|_-8*F$KNM|pN~Ze)*^ZdmSfaHkx>g#qU|NYl7&5s zQ4y^`n{vLA_#C;NgH1=1y)=k^PCHPZhA`sI!?3*h0}e@{E%0XNYKs!iT#J&VOpsSFxZIZqej%@5(tN2H@P+Su7>b_8&RC_-L)9bu+pOhKbYkYqQ=s1f9% z86?>aG7gZ56F|7!T+B;G5UU$x$_O%M2C=$9W&z@y0K!FLkZ~hOsvBh92r^*?=}?p| z&2@m>I01w;!XTHAK$auT5ak_c1YZ)Lg)jAu<=IVkyMrtrm)xSsNLo{L1uZME2TzKi Y;skm&Wnu5r5|yCLIm~C^F^_NI7sQO7b^rhX literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/vo/SejongKakaoSendRequest$Builder.class b/target/classes/com/icomsys/vo/SejongKakaoSendRequest$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..3dff7350a3c94a5a02e2b8e3b3b6e014c7ca92bd GIT binary patch literal 1312 zcmbV~ZEMp|7>4iDx2!Q;>(u$O`7+(K?a+MmgQ8$zDl47XS(u=briU&wOEgIb`&SB+ zfr3B4A0^&TTG@xDQ2mhmIp^d&*YkFM{r>(Fz(Z`BFmbDlGS)YH3guV_108MaV}+&mfpg^8z7q`XZW4LH@R5R*=)+IGljv4B&R9!}pUY^fc(j^A@4Pxh0; zLbC6XZaf=#J~LwmFM~iwE#HY_%^!B#4G(RP5+BF*QD}GdK^P3TosUk~WihYy=aG(+ z^@%@AXw|0+Yy2~%*q4M98udAS8QJWHqsY};o>aS%o#+E;Ivd+z(l5d|v2Y$s7S6%4 zP!U-asfyHKDQwJDzEGM9_vgC&w^s_avlp<_KhSQX@Ghf!)BXIvlSU6~e3d3&ZV@@D znX8$ZLxU@^)h*SaAyWp0E!yVA6Vl)v{rwDVR&xUFjRcW@-&wp*4A@%m|lJ{sS9a^LGFM literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/vo/SejongKakaoSendRequest.class b/target/classes/com/icomsys/vo/SejongKakaoSendRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..e7b6ae663db975303c4cdb01a4d8202ea4e43d78 GIT binary patch literal 2449 zcmb`I-EI>{6vxll>-9&RI0OQ9C}{#olb8e-3Z)P*C8nqqCY5kXFAx_SXOwKR*-3ZD zks{Q$=tUo+m1i$69KgitT$%*UQN^E)&DWB>E-+rNqEE`3{~B3&<1 zfmYe9vAMyf&gP3LINi?EojiS&r@Mmk8(r7ik%6G{_r5QKrsssA30|wwJP|b2 z+INnfy65=2^|lUNe|H`JS{@#Gj+RZeBLx*Y%Gc7@*g77_j&zS@uqC}sg)_Qg63Bkw z`mSyW$}X?G6lBF)D=pWTo87~0>~OX{1eqNVp-L|~Ex&N;f#xL(m%_kUK@RBEek(2-AF zeu~TH>%GB>5Hz-lt9~x|>B2Idrwe5or-?FE*i5oH$7YHq1Wj%zr9&M!N6)3+Q#)bB zrmqWhuT1v|ueJC=&x$YuE&i~*FFRV$+6Qf2NTgn(2lP;oG$;0^ult8fVrg}5Smp7` zJE6z35v|8diQIYei=az~&H-w~?>PD=SMOmIYA31_-ynt43i`MegB0`B;H!QtXkl=L zu79i!WKz{JcMq97%)w ztDy+-1FsJ!lZ0qGp4WD@T+h=JXy;TyCN@E{@Asp5{6rS<3z?$~>lmX9OF8PH=BS6D zqaK<@KTd*W4?B%n9lb!GtNlgdkI3yJtQ{?u=n}@|*nvKwDrUTS29`JfioWQTX9mfpLFNH+^$ZY}0zdG)5yVP^EE++snnA2I z$O=GeXMpf?F~~I|NG=VsW&~L@>(7Bgp4wkRhSR8o39M z`)7c#SQ%ug5Ap=wEc2Nf#EO*rV$8(}*0_j@4Cy+Vv2Q*u3JD%)J#(iR0 zea`HI&UVfg)Fxr~0rn?;0;y0}SBSY)+VFb2oORc0`3tfK_*z(xndu}EjahH83 zt2=bu*M1loxPq$&46GVhV=1zfSk_s}SQV%)ad!r_1e!~v{lV0>|g6_a6^80;y*_7=d{J%*K%VOk8fPq2dpFn$7tttZ2>G1v=& z9WH?JJ2I@C4AWzr2$laAa~k0rw2Vpnp%dMMlDNCzd-)- knP*jUqIQ^7NoD@TY1~uAP@zKQqR8QH~~XxON)V)n1)m}LBau4RY+{?QL>4>lkScq zMF=U6(Z^^dJ|uqh0s2r?&+IOaja`H)A#3m6xjy&ab3bA2xM+~zNha9jLt7S5lB^4lhE;+=gYNDdqW26?ndma8gA=}8+hiN z7*l%7V}gsdhH95Rif}(H@2PTKZYzJY)(-2^Z$6U0b!4cSOU(~5_PEGwl$9k{y>q~21^a6E%b7PoBN28Vp%69)BPsCwTx1r|Rc)@*ktpABiv zU^oAt#k4rjIaRyEj!xZqPw>A-{UguO^!WYM9UkuX4?c(Q@q@tbumQb@zNg!BVs7c| z`~6BzNy_-tw`H*@S+w}@!LAwOOM#PZcSly0-*EL)Pj68RwHvMN!DnpYVB?4Ex`n%D zkM0S~9^NFLzo&L&a-qb$SKNkH!M=qR-Y+$!b~?KPzxT3FoZ=l_b^T^bhO;rUGDxMz z(&xCozbl8pf9=6P+}M^4UFj_*31OC{?rB-EaGzJ$KtaQ}2^2q$!#Uo}d0xx{Bj!t` zmZr|Hm-0AI*ZCI4T6zodCzTOQQs(#uEToXd6g4{r;RH_dWCDCaX#yM|Lmc3g7MCs; zQib$ejFbwQ*BCvFb`+yT-82y8wxEuol!NW>9%O1t0+#%Ye&6F1V=*P{NWYVc9!igBw zrJjj8YZ9OD5_ujG1BxXQDZN38Pnu7LkHshZ4o84PhQ+8I1?HIMAE()*Gi+6n`DUmU sdYBiJyeV9W>YK$yzEjL@<0v(U>}(EjjB%FnBdYYiLVK17)1IsU0xgR3jQ{`u literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/vo/SejongMessageSendResponse$Builder.class b/target/classes/com/icomsys/vo/SejongMessageSendResponse$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..3299b5c01a29c6d5985f51e4b4353e8c1f33c865 GIT binary patch literal 1060 zcmbVL?`zXg6g@9#nl_7W&N_cjrxV&LM*T9yIdOxc&`q#X@MD@jYD)SddFjCaN?|fk z@DK2h67PMfOh^mG4>|X}`|dsOo|EL)@9#eW?BJe<8gA6#;wHl;!z~xLJvi8MamU47 zfl8DPrNDZ393F>35~@+q%d=RGo(t5pRKo*v?oOoE;fN}$yRnM%JpsGf>QjGlzS@nI zJep1hGJ78m62q8AVbTw?nD?_}CI1*}0e62ICqtPD_-~Yw*+CL&E$QG%H%cc#OrSsO z;5ZF>a-6EsVR3nn#(5|8r&MXVJ)@v8JI(U&t^Xl%20WI)gXZ$>bidb2r&%OBG0Wau zIPpVvm`pvAI)9z&+{Zbb_fd!EV}-$oC(vBh0B+wFc(iQ&U&92}&R+G~!B|GQz_U3P zmQ5{ZT77KMS5>3$&4$HVXl1b+6G;(82ZE&%uF@``C^*|bh4^a9)(ER6`4|^y?H2`D z$0gbcqTL|m=9ffnQFPn)zrkvMp``_G_e^?+?s{q{Hj1(t1vQx2_~w=QWOj*cm&jf$ zAY*|{=Fcaql*nEY+5Q4Dc8SR@;|d|m+%uj5jURA6v`LH3E-dT(V_9RS X*Tz-j%r#s$(Luv_M1LMJUqt;6*PYb2 literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/vo/SejongMessageSendResponse.class b/target/classes/com/icomsys/vo/SejongMessageSendResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..fe0583cac47245dba6d64b42a930951260480bd5 GIT binary patch literal 1872 zcma)+-A)rh6vzM5F5S`=fm({FAZUTId=x(si(Jrzs419Of)`#b+eum2?lwDH5@LK0 zA43y~2^T(q4`n>FyU^Nh4QX~}=gc|(^P4%R`}@!3F8~`Tr=a4|FcK)pVO|akS=!Q6 zEUQ>ivC5$Cv`wqdU53nC+vaY?(uLrHK{1>2{-3^IX$zlo^tO+x3dS zuQs_5dV@R@Tc&M#+YIsI(jmnM`=eFU=KJmD5qA&tBgI$MhyV-S((i z-bECqzm)x!hM9a5uOB&jWj>GvEj Q@d8s=BzuxPiu5e~1szv`_W%F@ literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/vo/SejongMmsSendRequest.class b/target/classes/com/icomsys/vo/SejongMmsSendRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..0db3d259dae670c46af079e5c9c1795fcae69ca1 GIT binary patch literal 2882 zcmcgtZBrXn6n-}3jj#yP3Z|_smA4RRL!nwqfR>b@)fur)Klr)hk8*s@ZXho#9mg3vnLYQMbI+cA&Nq4yhJ;x$cGZemR(CXnwsXy% z>1Ja_L+6oMQntiuh|Zgq=`L#MNR4l42rt_udVBJwrPgbe9aY^lb|kJZZx@a7mQgju zt~7wRTY(a#KKj1-PRDRIjZ_t9kVG$ ziEh_)RE43>Ee#RZbfr1nyUJZ{>VG&jE)(c>THTS8%IzGjej>jVMBGyE#i+F-54ZS(rb{)5B9Ih#M&n`JVQG6E1=Q=h}&@l8bsB=+N zzJ*{K>^I6UnPjiWrJ8G&GfUN~aZLX7%aDV*9_Q3HeZF*2T|Q%^XPxn{mwOwn6im?d z^pu5tG?rS4n7}5UYWO*5lHWJ(g#~SL@XVTSv1Y_NyA{Onn7uHjjZF@oo}Ic?N9tQG zhsAf*&x>!g9T{={pkbh59H?d6DjM!H)7_)yxQ2K7UcJ!~o*&bH^90O0hAmC*$1kA_4)O$7)95v9>?$%@8Y~|AJh(cz*j9xRhP?#<0w+AbNGkpkztj} z${F@weEntG^5W+4p$Z7!ZmR#u&b}(T+2-2nDTKNO(^c6RzUJ+JuD&2_8m_-S4mbIq z*2}-NFhX+OPz%Y8HJAY*|*CWC=Q z+JQ_E$m9h;WJm(!Rv?gQJCIBuklVpPn%L-%W`;oSUI0WmB0w^jq7>%;=y3*^OOqpi zAjT!^FA;x<%JMtnd^-6g_;m5n`EiBYT7YOSp{A80PUP!uf`iy>kok)nc|%@{Xsc5!zT=)Y2^ z6cqdc{wVQ1n@BH`K=fkXGc$YUIbZwh_xGOw?xSwP#LYbN*b=!VvMsVBa@)Wi69#q- zR18!VRvg>&y0-I4q1+tUW4qzme!tOAn^O`Vbs=s?@)gp z=_uZrzGe+iDzlYU|B;dHN-_$&m8D)Xs@V=kp`-U*sdIf^iua`7Y;lX}J`1AQ!g-V} zoP%YdAhIe_6e+<{*j}P+Vbm1rOSt~+kV5Hf@GrUp?ZgW2=Jaf~i~o01?O==lqRIa? zi zl`4-PGgyk&sMWtARr|ti3i8}cu3s{%!vwK5ahoC}2gy|;7v{s#Gq4U}uNT0iV1cd9 zhh=79ZwPz4047}%SaCiqI|F-9n7sfdtru8nJ}fr_(}aCk0F(I%>>4(xGJySLn!v^n z7)P}e&fo-Tt_)X}D|d>Ov#CsmI!Ne3;=AcY(zu???glm!Yv2m4NuN9;Tt@y6EqCxc literal 0 HcmV?d00001 diff --git a/target/classes/com/icomsys/vo/SejongSmsSendRequest.class b/target/classes/com/icomsys/vo/SejongSmsSendRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..01946df801042ee6940668e2cd6ba4a550413de1 GIT binary patch literal 2447 zcmb`H-EI>{6vxll>$PK?kD8C*KtpIulQ;plK%0U?fS96IHK~LtRaNz3V~>(e?45LX z94V^$7F_TctyBw%3m%{kRrP;%H@35$AXN2Y&&(X3IrBR+|Kq>^dHart*6Hg!P0;ED zoYsM$ zVq@Pqa;hE2+pRXW?|Qp6{#|)mdK#gVzHCYNNct~iXImj>FOdFs@>tNc(}r8Sf$Spm zCr^;Q;d-v#6qH_Gc`3-MtF}a3!}a8Lue*aB&Q1rOVnYGorQ^H2j-8g?b8+5{MoV?8 zE=+J7RF71(DfgAP+w2BS>9wEBUwbmpK>THS9Q^#?9w*la%YG*L>4E~Crwav|q^SZ;vzcM@5t|}S37XkbN(b6^4xdTAr`o}^ zO<(2cUV-it-fQs#o)t-kV*Gw*U$(TM)eqQMj)k754SFC*no9cZMDq`p#M0WriNd4R zDUnC6Sm)6qA$4~CE@-yv9LT!zT8{qF)q9u)+6lYHGe}`vK>y8SP-2!g`I;XKDi1Hv z^^VkmjGH>5eCo8c@{hArN3%ARI_Mn=dOgY-Z;GDq8^>#RWKfPGYwyK9weiLAp)`d5 zJdz=L-r8s}aSHCbrmJNwOHc5BFjkO>P0;-N$eSl&;+DlT|5MePk_V`eYCD&QligQ)B^hf?Expb{>sZg1rVPK5sM18J~yjVPOop z5SEq-XS_EZ&bT})oN<8}uw9|6u&2xWi&B3eC`H5aW{u^2O!M*PO+@oyc39f5hBWYGwcNrF_3AZ0U1CJAx}Aa~CIVYM*G4I_x11X(wNd};<65qhMN8bCJA z0AaB*$kG7h38Go%a}|gcUmBl + + + + + INSERT INTO TB_UMS_SEND_LOG + (SEND_YN, USER_KEY, CALL_BACK, RECEIVER_TEL_NO, SEND_TYPE, CONTENTS, ADVERTISEMENT_YN, + IMAGE_FILE1, IMAGE_FILE2, IMAGE_FILE3, VIDEO_FILE, SENDER_KEY, TEMPLATE_CODE, INIT_CALL_NO, + API_RESPONSE_CODE, RESULT_CODE, REIGST_DATE, OPTION_YN) + VALUES (#{sendYn}, #{userKey}, #{callBack}, #{receiverTelNo}, #{sendType}, #{contents}, #{advertisementYn}, + #{imageFile1}, #{imageFile2}, #{imageFile3}, #{videoFile}, #{senderKey}, #{templateCode}, #{initCallNo}, + #{apiResponseCode}, #{resultCode}, #{registDate}, #{optionYn}) + + + + + + UPDATE TB_UMS_SEND_LOG + SET SEND_YN = 'Y' + WHERE USER_KEY = #{userKey} + + + + \ No newline at end of file diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..49c0fc4 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Jan 03 14:29:58 KST 2025 +groupId=com.icomsys.message +artifactId=message-module +version=0.0.8-SNAPSHOT diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..900c79e --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,24 @@ +com\icomsys\vo\SejongMessageSendResponse$Builder.class +com\icomsys\vo\MessageSendRequest$Builder.class +com\icomsys\vo\SejongKakaoSendRequest$Builder.class +com\icomsys\vo\SejongMessageSendResponse.class +com\icomsys\MessagingConnector$1.class +com\icomsys\vo\MessageSendLogInfo$Builder.class +com\icomsys\dsl\MessageSendServiceDslImpl.class +com\icomsys\MessagingConnector$3.class +com\icomsys\vo\SejongKakaoSendRequest.class +com\icomsys\vo\SejongLmsSendRequest$Builder.class +com\icomsys\vo\MessageSendResponse.class +com\icomsys\message\MessageSendLogMapper.class +com\icomsys\vo\MessageSendLogInfo.class +com\icomsys\util\CommonBeanUtils.class +com\icomsys\vo\SejongSmsSendRequest$Builder.class +com\icomsys\vo\SejongMmsSendRequest.class +com\icomsys\MessagingConnector$2.class +com\icomsys\vo\MessageSendRequest.class +com\icomsys\vo\MessageSendResponse$Builder.class +com\icomsys\MessagingConnector.class +com\icomsys\vo\SejongLmsSendRequest.class +com\icomsys\vo\SejongSmsSendRequest.class +com\icomsys\dsl\MessageSendServiceDsl.class +com\icomsys\MessagingConnector$4.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..1e62f32 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,13 @@ +C:\workspace\message\untitled1\src\main\java\com\icomsys\vo\SejongKakaoSendRequest.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\vo\SejongMmsSendRequest.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\vo\MessageSendLogInfo.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\message\MessageSendLogMapper.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\MessagingConnector.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\vo\SejongSmsSendRequest.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\vo\MessageSendRequest.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\dsl\MessageSendServiceDsl.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\vo\MessageSendResponse.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\vo\SejongMessageSendResponse.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\dsl\MessageSendServiceDslImpl.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\util\CommonBeanUtils.java +C:\workspace\message\untitled1\src\main\java\com\icomsys\vo\SejongLmsSendRequest.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/target/message-module-0.0.8-SNAPSHOT.jar b/target/message-module-0.0.8-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..ca9b72121e8d917a5e0e5dc7537f0e2c36f92dc9 GIT binary patch literal 29559 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 ScjuMp9<+k&fK=1Fzy2T9f^|dy literal 0 HcmV?d00001