messagingt init
commit
cf0bb99581
@ -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
|
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<annotationProcessing>
|
||||
<profile name="Maven default annotation processors profile" enabled="true">
|
||||
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||
<outputRelativeToContentRoot value="true" />
|
||||
<module name="message-module" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
<bytecodeTargetLevel>
|
||||
<module name="untitled1" target="11" />
|
||||
</bytecodeTargetLevel>
|
||||
</component>
|
||||
<component name="JavacSettings">
|
||||
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
|
||||
<module name="message-module" options="" />
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RemoteRepositoriesConfiguration">
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="central" />
|
||||
<option name="url" value="https://repo.maven.apache.org/maven2" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="Central Repository" />
|
||||
<option name="url" value="https://repo.maven.apache.org/maven2" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="icomsys-release" />
|
||||
<option name="name" value="icomsys-release" />
|
||||
<option name="url" value="http://192.168.0.43:8081/repository/icomsys-repo-release/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="Maven Central repository" />
|
||||
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="icomsys-snapshot" />
|
||||
<option name="name" value="icomsys-snapshot" />
|
||||
<option name="url" value="http://192.168.0.43:8081/repository/icomsys-repo-snapshot/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="jboss.community" />
|
||||
<option name="name" value="JBoss Community repository" />
|
||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||
</remote-repository>
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/pom.xml" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Palette2">
|
||||
<group name="Swing">
|
||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
||||
</item>
|
||||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
|
||||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
||||
<initial-values>
|
||||
<property name="text" value="Button" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="RadioButton" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="CheckBox" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="Label" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
||||
<preferred-size width="-1" height="20" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
||||
</item>
|
||||
</group>
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.icomsys.message</groupId>
|
||||
<artifactId>message-module</artifactId>
|
||||
<version>0.0.8-SNAPSHOT</version>
|
||||
|
||||
<properties>
|
||||
<java.version>11</java.version>
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
<maven.compiler.target>11</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<distributionManagement>
|
||||
<snapshotRepository>
|
||||
<id>icomsys-repo-snapshot</id>
|
||||
<name>icomsys-repo-snapshot</name>
|
||||
<url>http://192.168.0.43:8081/repository/icomsys-repo-snapshot/</url>
|
||||
</snapshotRepository>
|
||||
<repository>
|
||||
<id>icomsys-repo-release</id>
|
||||
<name>icomsys-repo-release</name>
|
||||
<url>http://192.168.0.43:8081/repository/icomsys-repo-release/</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>central</id>
|
||||
<url>https://repo.maven.apache.org/maven2</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>icomsys-release</id>
|
||||
<url>http://192.168.0.43:8081/repository/icomsys-repo-release/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>icomsys-snapshot</id>
|
||||
<url>http://192.168.0.43:8081/repository/icomsys-repo-snapshot/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.25</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<version>1.2.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<version>2.15.2</version> <!-- 적합한 버전 선택 -->
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.icomsys.common</groupId>
|
||||
<artifactId>common-utils</artifactId>
|
||||
<version>0.0.8-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mybatis.spring.boot</groupId>
|
||||
<artifactId>mybatis-spring-boot-starter</artifactId>
|
||||
<version>2.1.3</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
@ -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<String, String> 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<String> 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<String, String> 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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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<MessageSendRequest> selectSendLog();
|
||||
|
||||
void updateSendLog(String userKey);
|
||||
|
||||
}
|
@ -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> T convertType(Object source, Class<T> targetType, String... ignoreProperties) {
|
||||
try {
|
||||
// T 타입의 객체 생성
|
||||
T target = targetType.getDeclaredConstructor().newInstance();
|
||||
|
||||
if (source != null) {
|
||||
List<String> 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 <T> List<T> convertListType(List<?> sourceList, Class<T> targetType, String... ignoreProperties) {
|
||||
List<T> 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> 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<String> getPropertyNames(Object obj) {
|
||||
return getPropertyNames(obj, null);
|
||||
}
|
||||
|
||||
public static List<String> getPropertyNames(Object obj, Class<?> findType) {
|
||||
Field[] fields = obj.getClass().getDeclaredFields();
|
||||
Stream<Field> fieldStream = Stream.of(fields);
|
||||
|
||||
if (findType != null) {
|
||||
fieldStream = fieldStream.filter(field -> field.getType().equals(findType));
|
||||
}
|
||||
|
||||
return fieldStream.map(Field::getName).collect(Collectors.toList());
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@ -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() + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.icomsys.cinnamon.share.mapper.message.MessageSendLogMapper">
|
||||
|
||||
<insert id="insertSendLog" parameterType="com.icomsys.cinnamon.core.api.informal.message.vo.MessageSendLogInfo"> <!--useGeneratedKeys="true" keyProperty="seqNo"-->
|
||||
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})
|
||||
</insert>
|
||||
|
||||
<select id="selectSendLog" parameterType="String" resultType="com.icomsys.cinnamon.core.api.informal.message.vo.MessageSendRequest">
|
||||
SELECT CALL_BACK, CONTENTS, RECEIVER_TEL_NO, USER_KEY, ADVERTISEMENT_YN, SEND_TYPE, SENDER_KEY,
|
||||
TEMPLATE_CODE, IMAGE_FILE1, IMAGE_FILE2, IMAGE_FILE3, VIDEO_FILE, INIT_CALL_NO, OPTION_YN
|
||||
FROM TB_UMS_SEND_LOG
|
||||
WHERE SEND_YN = 'N'
|
||||
</select>
|
||||
|
||||
<update id="updateSendLog" parameterType="String">
|
||||
UPDATE TB_UMS_SEND_LOG
|
||||
SET SEND_YN = 'Y'
|
||||
WHERE USER_KEY = #{userKey}
|
||||
</update>
|
||||
|
||||
|
||||
</mapper>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.icomsys.cinnamon.share.mapper.message.MessageSendLogMapper">
|
||||
|
||||
<insert id="insertSendLog" parameterType="com.icomsys.cinnamon.core.api.informal.message.vo.MessageSendLogInfo"> <!--useGeneratedKeys="true" keyProperty="seqNo"-->
|
||||
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})
|
||||
</insert>
|
||||
|
||||
<select id="selectSendLog" parameterType="String" resultType="com.icomsys.cinnamon.core.api.informal.message.vo.MessageSendRequest">
|
||||
SELECT CALL_BACK, CONTENTS, RECEIVER_TEL_NO, USER_KEY, ADVERTISEMENT_YN, SEND_TYPE, SENDER_KEY,
|
||||
TEMPLATE_CODE, IMAGE_FILE1, IMAGE_FILE2, IMAGE_FILE3, VIDEO_FILE, INIT_CALL_NO, OPTION_YN
|
||||
FROM TB_UMS_SEND_LOG
|
||||
WHERE SEND_YN = 'N'
|
||||
</select>
|
||||
|
||||
<update id="updateSendLog" parameterType="String">
|
||||
UPDATE TB_UMS_SEND_LOG
|
||||
SET SEND_YN = 'Y'
|
||||
WHERE USER_KEY = #{userKey}
|
||||
</update>
|
||||
|
||||
|
||||
</mapper>
|
@ -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
|
@ -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
|
@ -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
|
Binary file not shown.
Loading…
Reference in New Issue