messagingt init

main
seokjun jeon 3 weeks ago
commit cf0bb99581

8
.idea/.gitignore vendored

@ -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>

@ -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
Loading…
Cancel
Save