فهرست منبع

신세계아이앤씨 알림톡 모듈 추가 (SSG)

gagamel 5 سال پیش
والد
کامیت
c39cccfda4

+ 234 - 0
style24.admin/src/main/java/com/style24/admin/biz/service/TsaKakaoService.java

@@ -0,0 +1,234 @@
+package com.style24.admin.biz.service;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.style24.core.biz.thirdparty.SsgKakaoSender;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 카카오알림톡 Service. 모든 카카오알림톡 발송은 여기에서 처리한다.
+ *
+ * @author gagamel
+ * @since 2020. 11. 9
+ */
+@Service
+@Slf4j
+public class TsaKakaoService {
+
+	@Autowired
+	private SsgKakaoSender kakaoSender;
+
+//	/**
+//	 * 고객 임시비밀번호 알림톡 발송
+//	 * @param counsel - 상담 정보
+//	 * @author gagamel
+//	 * @since 2020. 11. 9
+//	 */
+//	@Transactional("shopTxnManager")
+//	public void sendCustomerTempPassword(AdmCustomer customer) {
+//		SsgDirectMessage dm = new SsgDirectMessage();
+//		dm.setFuserid(String.valueOf(TsaSession.getInfo().getUserNo())); // 발송자ID
+//		dm.setFdestine(customer.getCellPhnno());
+//		dm.setFkkoresendtype("LMS");
+//
+//		GagaMap replaceInfo = new GagaMap();
+//		replaceInfo.setString("siteNm", customer.getSiteNm());
+//		replaceInfo.setString("custNm", customer.getCustNm());
+//		replaceInfo.setString("passwd", customer.getPasswd());
+//
+//		kakaoSender.send(SsgKakaoSender.KakaoAnswerSq.TempPasswd.value(), dm, replaceInfo);
+//
+//		try {
+//			// 고객접촉이력 정보
+//			customer.setContactType("203"); // 접촉유형:임시비밀번호발급(공통코드G054)
+//			customer.setContactMethod(TscConstants.ContactMethod.KAKAOTALK.value()); // 접촉방법:알림톡+문자(공통코드G055)
+//			customer.setContactContents("고객 임시비밀번호 발송");
+//			customer.setReceiverId(customer.getCustNo());
+//			customerService.createCustomerContactHistory(customer);
+//		} catch (Exception e) {
+//			log.error("error", e);
+//			// Do nothing
+//		}
+//	}
+//
+//	/**
+//	 * 일대일문의 답변 알림톡 발송
+//	 * @param counsel - 상담 정보
+//	 * @author gagamel
+//	 * @since 2020. 4. 6
+//	 */
+//	@Transactional("shopTxnManager")
+//	public void sendOnetoOneAnswer(AdmCounsel counsel) {
+//		SsgDirectMessage dm = new SsgDirectMessage();
+//		dm.setFdestine(counsel.getCellPhnno());
+//		dm.setFkkoresendtype("LMS");
+//		dm.setButtonNm("마이페이지 > 1:1문의");
+//		dm.setButtonUrl("/mypage/counsel/detail/form/" + counsel.getCounselSq());
+//
+//		GagaMap replaceInfo = new GagaMap();
+//		replaceInfo.setString("siteNm", systemService.getSiteName(AdmConstants.SITE_CD));
+//		replaceInfo.setString("custNm", counsel.getCustNm());
+//
+//		kakaoSender.send(SsgKakaoSender.KakaoAnswerSq.OtoAnswer.value(), dm, replaceInfo);
+//
+//		try {
+//			// 고객접촉이력 정보
+//			AdmCustomer customer = new AdmCustomer();
+//			customer.setContactType("204"); // 접촉유형:1:1문의답변(공통코드G054)
+//			customer.setContactMethod(TscConstants.ContactMethod.KAKAOTALK.value()); // 접촉방법:알림톡+문자(공통코드G055)
+//			customer.setContactContents("1:1 문의 답변 발송");
+//			customer.setReceiverId(counsel.getCustNo());
+//			customerService.createCustomerContactHistory(customer);
+//		} catch (Exception e) {
+//			log.error("error", e);
+//			// Do nothing
+//		}
+//	}
+//
+//	/**
+//	 * 인증번호발송
+//	 * @param customer - 인증번호 발송
+//	 * @author jsshin
+//	 * @since 2020. 4. 8
+//	 */
+//	public void sendCustomerCertNo(AdmCustomer customer) {
+//		SsgDirectMessage dm = new SsgDirectMessage();
+//		dm.setFdestine(customer.getCellPhnno());
+//		dm.setFkkoresendtype("LMS");
+//
+//		GagaMap replaceInfo = new GagaMap();
+//		replaceInfo.setString("siteNm", customer.getSiteNm());
+//		replaceInfo.setString("custNm", customer.getCustNm());
+//		replaceInfo.setString("certNo", customer.getCertNo());
+//
+//		kakaoSender.send(SsgKakaoSender.KakaoAnswerSq.CertNoSend.value(), dm, replaceInfo);
+//
+//		try {
+//			// 고객접촉이력 정보
+//			customer.setContactType("209"); // 접촉유형:1:1문의답변(공통코드G054)
+//			customer.setContactMethod(TscConstants.ContactMethod.KAKAOTALK.value()); // 접촉방법:알림톡+문자(공통코드G055)
+//			customer.setContactContents("인증번호");
+//			customer.setReceiverId(customer.getCustNo());
+//			customerService.createCustomerContactHistory(customer);
+//		} catch (Exception e) {
+//			log.error("error", e);
+//			// Do nothing
+//		}
+//	}
+//
+//	/**
+//	 * 품절에의한 주문취소 안내
+//	 * @param delivery
+//	 * @author yujung
+//	 * @since 2020. 4. 23
+//	 */
+//	public void sendCancelBySoldout(String payMeans, AdmDelivery delivery) {
+//		SsgDirectMessage dm = new SsgDirectMessage();
+//		dm.setFdestine(delivery.getOrderPhnno());
+//		dm.setFkkoresendtype("LMS");
+//
+//		GagaMap replaceInfo = new GagaMap();
+//		replaceInfo.setString("siteNm", systemService.getSiteName(AdmConstants.SITE_CD));
+//		replaceInfo.setString("custNm", delivery.getOrderNm());
+//		replaceInfo.setString("goodsNm", delivery.getGoodsNm());
+//		replaceInfo.setString("callcenterTelNo", TscConstants.CALLCENTER_TEL_NO);
+//
+//		Integer KakaoAnswerSq = null;
+//		if (payMeans.equals(TscConstants.PayMeans.CREDIT_CARD.value())) { // 신용카드
+//			KakaoAnswerSq = SsgKakaoSender.KakaoAnswerSq.CardCancelBySoldout.value();
+//		} else if (payMeans.equals(TscConstants.PayMeans.ACCOUNT_TRANSFER.value())) { // 실시간계좌이체
+//			KakaoAnswerSq = SsgKakaoSender.KakaoAnswerSq.AtCancelBySoldout.value();
+//		} else if (payMeans.equals(TscConstants.PayMeans.BANK_DEPOSIT.value())) { // 무통장입금
+//			KakaoAnswerSq = SsgKakaoSender.KakaoAnswerSq.VaCancelBySoldout.value();
+//		}
+//
+//		kakaoSender.send(KakaoAnswerSq, dm, replaceInfo);
+//
+//		try {
+//			// 고객접촉이력 정보
+//			AdmCustomer customer = new AdmCustomer();
+//			customer.setContactType("304"); // 접촉유형 : 주문-품절안내(공통코드G054)
+//			customer.setContactMethod(TscConstants.ContactMethod.KAKAOTALK.value()); // 접촉방법 : 알림톡+문자(공통코드G055)
+//			customer.setContactContents("품절에의한 주문취소 안내");
+//			customer.setReceiverId(delivery.getCustNo());
+//			customerService.createCustomerContactHistory(customer);
+//		} catch (Exception e) {
+//			log.error("error", e);
+//			// Do nothing
+//		}
+//	}
+//
+//	/**
+//	 * 주문취소안내 알림톡
+//	 * @param customer - 고객 정보
+//	 * @author gagamel
+//	 * @since 2020. 11. 9
+//	 */
+//	@Transactional("shopTxnManager")
+//	public void sendOrderCancel(AdmCustomer customer, AdmOrder order) {
+//		SsgDirectMessage dm = new SsgDirectMessage();
+//		dm.setFdestine(customer.getCellPhnno());
+//		dm.setFkkoresendtype("LMS");
+//
+//		dm.setButtonNm("마이페이지 > 주문내역");
+//		dm.setButtonUrl("/mypage/order/list/form");
+//
+//		GagaMap replaceInfo = new GagaMap();
+//		replaceInfo.setString("siteNm", systemService.getSiteName(AdmConstants.SITE_CD));
+//		replaceInfo.setString("custNm", customer.getCustNm());
+//
+//		if (order.getPayMeans().equals(TscConstants.PayMeans.CREDIT_CARD.value())) { // 신용카드
+//			kakaoSender.send(SsgKakaoSender.KakaoAnswerSq.CardCancelRefund.value(), dm, replaceInfo);
+//		} else if (order.getPayMeans().equals(TscConstants.PayMeans.ACCOUNT_TRANSFER.value())) { // 실시간계좌이체
+//			kakaoSender.send(SsgKakaoSender.KakaoAnswerSq.AtCancelRefund.value(), dm, replaceInfo);
+//		} else if (order.getPayMeans().equals(TscConstants.PayMeans.BANK_DEPOSIT.value())) { // 무통장입금
+//			kakaoSender.send(SsgKakaoSender.KakaoAnswerSq.VaCancelRefund.value(), dm, replaceInfo);
+//		}
+//
+//		try {
+//			// 고객접촉이력 정보
+//			customer.setContactType("305"); // 접촉유형:주문안내(공통코드G054)
+//			customer.setContactMethod(TscConstants.ContactMethod.KAKAOTALK.value()); // 접촉방법:알림톡+문자(공통코드G055)
+//			customer.setContactContents("주문-취소안내");
+//			customer.setReceiverId(customer.getCustNo());
+//			customerService.createCustomerContactHistory(customer);
+//		} catch (Exception e) {
+//			log.error("error", e);
+//			// Do nothing
+//		}
+//	}
+//
+//	/**
+//	 * 기본 LMS 발송
+//	 * @param customer - LMS 정보
+//	 * @author gagamel
+//	 * @since 2020. 11. 9
+//	 */
+//	@Transactional("shopTxnManager")
+//	public void sendCustomerBasicLms(AdmCustomer customer) {
+//		SsgDirectMessage dm = new SsgDirectMessage();
+//		dm.setFdestine(customer.getCellPhnno());
+//
+//		GagaMap replaceInfo = new GagaMap();
+//		replaceInfo.setString("siteNm", customer.getSiteNm());
+//		replaceInfo.setString("custNm", customer.getCustNm());
+//		replaceInfo.setString("content", customer.getContent());
+//		replaceInfo.setString("callcenterTelNo", TscConstants.CALLCENTER_TEL_NO);
+//		kakaoSender.sendLms(SsgKakaoSender.KakaoAnswerSq.BasicLms.value(), dm, replaceInfo);
+//
+//		try {
+//			// 고객접촉이력 정보
+//			customer.setContactType("207"); // 접촉유형:회원-기본LMS안내발송
+//			customer.setContactMethod(TscConstants.ContactMethod.LMS.value()); // 접촉방법:LMS(공통코드G055)
+//			customer.setContactContents("기본LMS안내발송");
+//			customer.setReceiverId(customer.getCustNo());
+//			customerService.createCustomerContactHistory(customer);
+//		} catch (Exception e) {
+//			log.error("error", e);
+//			// Do nothing
+//		}
+//	}
+
+}

+ 39 - 0
style24.core/src/main/java/com/style24/core/biz/dao/SsgDirectMessageDao.java

@@ -0,0 +1,39 @@
+package com.style24.core.biz.dao;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.SsgDirectMessage;
+
+/**
+ * Direct Message(SMS, LMS, Kakao 등) Dao
+ * 
+ * @author gagamel
+ * @since 2020. 11. 9
+ */
+@ShopDs
+public interface SsgDirectMessageDao {
+
+	/**
+	 * SMS발송 생성
+	 * @param dm - Direct message 정보
+	 * @author gagamel
+	 * @since 2020. 11. 9
+	 */
+	void createSms(SsgDirectMessage dm);
+
+	/**
+	 * LMS발송 생성
+	 * @param dm - Direct message 정보
+	 * @author gagamel
+	 * @since 2020. 11. 9
+	 */
+	void createLms(SsgDirectMessage dm);
+
+	/**
+	 * 카카오알림톡발송 생성
+	 * @param dm - Direct message 정보
+	 * @author gagamel
+	 * @since 2020. 11. 9
+	 */
+	void createKakao(SsgDirectMessage dm);
+
+}

+ 235 - 0
style24.core/src/main/java/com/style24/core/biz/thirdparty/SsgKakaoSender.java

@@ -0,0 +1,235 @@
+package com.style24.core.biz.thirdparty;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.style24.core.biz.dao.SsgDirectMessageDao;
+import com.style24.core.biz.dao.TscAnswerPhaseDao;
+import com.style24.core.support.env.TscConstants;
+import com.style24.persistence.domain.AnswerPhase;
+import com.style24.persistence.domain.SsgDirectMessage;
+
+import lombok.extern.slf4j.Slf4j;
+
+import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.util.GagaStringUtil;
+
+/**
+ * 신세계아이앤씨 SSG 모듈을 이용한 카카오알림톡 Sender
+ * 
+ * @author gagamel
+ * @since 2020. 11. 9
+ */
+@Component
+@Slf4j
+public class SsgKakaoSender {
+
+	// 발신프로필키
+	private String profile = "95ed449aa61c05fb613253e740cceb7d3b5d0a64";
+
+	// 발신자전화번호
+	private String callbackTelNo;
+
+	private String domainUrl;
+
+	@Autowired
+	private Environment env;
+
+	@Autowired
+	private TscAnswerPhaseDao ansPhaseDao;
+
+	@Autowired
+	private SsgDirectMessageDao dmDao;
+
+	// 알림톡 답변일련번호
+	public enum KakaoAnswerSq {
+		JoinCongrat(1010),			// 회원가입축하 안내
+		CertNoSend(1011),			// 인증번호발송 안내
+		TempPasswd(1012),			// 임시비밀번호발급 안내
+		OtoAnswer(1013),			// 1:1문의답변등록 안내
+		DormantExpect(1014),		// 휴면계정전환예정 안내
+
+		CardOrderComplete(1020),	// 주문완료-신용카드 안내
+		BtOrderComplete(1021),		// 주문완료-계좌이체 안내
+		VaOrderComplete(1022),		// 주문완료-무통장 안내
+		VaDepositRequest(1023),		// 무통장입금요청 안내
+		VaDepositConfirm(1024),		// 무통장입금확인 안내
+		CardCancelRefund(1025),		// 주문취소 및 환불 안내-신용카드
+		AtCancelRefund(1026),		// 주문취소 및 환불 안내-계좌이체
+		VaCancelRefund(1027),		// 주문취소 및 환불 안내-무통장
+
+		SoldoutExpect(1030),		// 품절예정안내
+		CardCancelBySoldout(1031),	// 품절에 의한 주문취소 안내-신용카드
+		AtCancelBySoldout(1032),	// 품절에 의한 주문취소 안내-계좌이체
+		VaCancelBySoldout(1033),	// 품절에 의한 주문취소 안내-무통장
+
+		GoodsSend(1040),			// 상품 발송 안내
+		ExchGoodsSend(1041),		// 교환 상품 발송 안내
+
+		ExchRequestComplete(1050),	// 교환 신청 완료 안내
+		RtnRequestCompleted(1051),	// 반품 신청 완료 안내
+		WithdrawDelay(1060),		// 회수처리 지연 안내
+		ReviewWrite(1070),			// 상품평 작성 안내
+		BasicLms(1071);				// 기본안내
+
+		private Integer value;
+
+		private KakaoAnswerSq(Integer value) {
+			this.value = value;
+		}
+
+		public Integer value() {
+			return value;
+		}
+	}
+
+	@PostConstruct
+	public void init() {
+		domainUrl = env.getProperty("domain.front");
+		callbackTelNo = TscConstants.CALLCENTER_TEL_NO;
+
+		log.debug("\n\n---- SsgKakaoSender initialization started ----");
+		log.debug("profile: [{}]", profile);
+		log.debug("callbackTelNo: [{}]", callbackTelNo);
+		log.debug("domainUrl: [{}]", domainUrl);
+		log.debug("\n--- SsgKakaoSender initialization completed ----\n");
+	}
+
+	/**
+	 * 카카오알림톡 발송
+	 * @param ansSq - 답변일련번호
+	 * @param dm - 메시지 정보
+	 * @param replaceInfo - 메시지내용 중 대체할 정보
+	 * @author gagamel
+	 * @since 2020. 11. 9
+	 */
+	@Transactional("shopTxnManager")
+	public void send(Integer ansSq, SsgDirectMessage dm, GagaMap replaceInfo) {
+		// 답변문구 조회
+		AnswerPhase ansPhase = this.getAnswerPhase(ansSq, replaceInfo);
+
+		dm.setFyellowid(profile);
+		dm.setFkkosubject(ansPhase.getAnsTitle());
+		dm.setFtemplatekey(String.valueOf(ansSq));
+		dm.setFmessage(ansPhase.getAnsContent());
+
+		// kkoresendtype(재발송유형)이 "SMS"일 때만 kkoresendmsg(재발송메시지)에 값 설정
+		// "LMS"일 때는 fmessage(메시지본문) 값으로 발송되며 kkoresendmsg(재발송메시지)에는 값을 넣으면 안 된다.
+		if (dm.getFkkoresendtype().equals("SMS")) {
+			dm.setFkkoresendmsg(ansPhase.getAnsContent());
+		}
+
+		dm.setFcallback(callbackTelNo);
+
+		// 버튼생성
+//		if (StringUtils.isNotBlank(dm.getButtonNm())) {
+//			JSONObject button = new JSONObject();
+//			button.put("name", dm.getButtonNm());
+//			button.put("type", "WL");
+//			button.put("url_mobile", domainUrl + dm.getButtonUrl());
+//
+//			JSONObject jsonData = new JSONObject();
+//			jsonData.put("button", button);
+//
+//			JSONArray jsonArray = new JSONArray();
+//			jsonArray.add(button);
+//
+//			dm.setFkkobutton(jsonArray.toString());
+//		}
+
+		// 카카오 알림톡 발송
+		dmDao.createKakao(dm);
+	}
+
+	/**
+	 * LMS 발송
+	 * @param ansSq - 답변일련번호
+	 * @param dm - 메시지 정보
+	 * @param replaceInfo - 메시지내용 중 대체할 정보
+	 * @author gagamel
+	 * @since 2020. 11. 9
+	 */
+	@Transactional("shopTxnManager")
+	public void sendLms(Integer ansSq, SsgDirectMessage dm, GagaMap replaceInfo) {
+		// 답변문구 조회
+		AnswerPhase ansPhase = this.getAnswerPhase(ansSq, replaceInfo);
+		dm.setFsubject(ansPhase.getAnsTitle());
+		dm.setFmessage(ansPhase.getAnsContent());
+		dm.setFcallback(callbackTelNo);
+		dmDao.createLms(dm);
+	}
+
+	/**
+	 * 답변문구 조회
+	 * @param ansSq - 답변일련번호
+	 * @param replaceInfo - 메시지내용 중 대체할 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 11. 9
+	 */
+	@Cacheable(value = "common", key = "'answerPhase-'.concat(#ansSq)")
+	public AnswerPhase getAnswerPhase(Integer ansSq, GagaMap replaceInfo) {
+		AnswerPhase ansPhase = ansPhaseDao.getAnswerPhase(ansSq);
+		ansPhase.setAnsContent(GagaStringUtil.replace(this.mergeData(ansPhase.getAnsContent(), replaceInfo), ">", ">"));
+		return ansPhase;
+	}
+
+	/**
+	 * 메시지 문자열 중에 '#{'로 시작하고 '}'로 끝나는 부분을 대체할 정보(replaceInfo)로 대체해 반환한다.
+	 * @param message - 메시지 문자열
+	 * @param replaceInfo - 알림톡 메시지 중 대체할 정보
+	 * @return
+	 * @author gagamel
+	 * @date 2018. 1. 21.
+	 */
+	private String mergeData(String message, GagaMap replaceInfo) {
+		List<String> keyList = getKeyList(message, "#{", "}");
+
+		String key = "";
+		String value = "";
+
+		if (!keyList.isEmpty()) {
+			for (int i = 0; i < keyList.size(); i++) {
+				key = keyList.get(i);
+				value = replaceInfo.getString(key);
+				message = message.replace("#{" + key + "}", value);
+			}
+		}
+
+		return message;
+	}
+
+	/**
+	 * 입력 문자열로부터 시작 태그와 종료 태그 안의 key 목록을 반환한다.
+	 * @param inputStr - 입력 문자열
+	 * @param startTag - 시작 태그
+	 * @param endTag - 종료 태그
+	 * @return
+	 * @author gagamel
+	 * @date 2018. 1. 21.
+	 */
+	private List<String> getKeyList(String inputStr, String startTag, String endTag) {
+		List<String> keyList = new ArrayList<>();
+
+		String targetStr = inputStr;
+
+		while (targetStr.indexOf(startTag) > -1) {
+			int startPos = targetStr.indexOf(startTag) + startTag.length();
+			int endPos = targetStr.indexOf(endTag, startPos);
+
+			keyList.add(targetStr.substring(startPos, endPos));
+			targetStr = targetStr.substring(endPos + endTag.length());
+		}
+
+		return keyList;
+	}
+
+}

+ 40 - 36
style24.core/src/main/java/com/style24/core/support/env/TscConstants.java

@@ -43,6 +43,24 @@ public class TscConstants {
 		}
 	}
 
+	// 접촉방법
+	public enum ContactMethod {
+		SMS("G055_10"),
+		LMS("G055_11"),
+		KAKAOTALK("G055_12"),
+		EMAIL("G055_20");
+
+		private String value;
+
+		private ContactMethod(String value) {
+			this.value = value;
+		}
+
+		public String value() {
+			return value;
+		}
+	}
+
 //	// 외부몰벤더ID
 //	public enum VendorId {
 //		PASTEL("V001"),
@@ -214,24 +232,28 @@ public class TscConstants {
 //			return value;
 //		}
 //	}
-//
-//	// 결제수단
-//	public enum PayMeans {
-//		REALTIME_TRANSFER("10"),		// 실시간계좌이체
-//		ACCOUNT_DEPOSIT("20"),			// 무통장입금
-//		CARD("30");						// 신용카드
-//
-//		private String value;
-//
-//		private PayMeans(String value) {
-//			this.value = value;
-//		}
-//
-//		public String value() {
-//			return value;
-//		}
-//	}
-//
+
+	// 결제수단
+	public enum PayMeans {
+		ACCOUNT_TRANSFER("G014_10"),	// 실시간계좌이체
+		BANK_DEPOSIT("G014_20"),		// 무통장입금
+		CREDIT_CARD("G014_30"),			// 신용카드
+		POINT("G014_40"),				// 포인트
+		COUPON("G014_50"),				// 쿠폰
+		CELL_PHONE("G014_60"),			// 휴대전화
+		EXTMALL("G014_90");				// 외부몰입금
+
+		private String value;
+
+		private PayMeans(String value) {
+			this.value = value;
+		}
+
+		public String value() {
+			return value;
+		}
+	}
+
 //	// 배송비구분
 //	public enum DeliveryFeeGb {
 //		ORIGIN_DELIVERY_FEE("10"),		// 원주문배송비
@@ -429,24 +451,6 @@ public class TscConstants {
 //		}
 //	}
 //
-//	//접촉방법
-//	public enum ContactMethod {
-//		SMS("10"),
-//		LMS("11"),
-//		KAKAOTALK("12"),
-//		EMAIL("20");
-//
-//		private String value;
-//
-//		private ContactMethod(String value) {
-//			this.value = value;
-//		}
-//
-//		public String value() {
-//			return value;
-//		}
-//	}
-//
 //	// 회사 정보
 //	public enum PastelInfomation {
 //		COMPANY_NAME("(주)트라이본즈"),

+ 34 - 0
style24.core/src/main/java/com/style24/persistence/domain/SsgDirectMessage.java

@@ -0,0 +1,34 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * Direct Message(SMS, LMS, Kakao 등) Domain (신세계아이앤씨 SSG 모듈)
+ * 
+ * @author gagamel
+ * @since 2020. 11. 9
+ */
+@SuppressWarnings("serial")
+@Data
+public class SsgDirectMessage extends TscBaseDomain {
+
+	private String fuserid;			// 사용자계정
+	private String fsectioncode;	// 계층코드(SINC로부터 부여받은 코드값)
+	private String fcampcode;		// 캠페인코드(CRM전송 등에 이용)
+	private String fyellowid;		// KKO발신프로필키(카카오 전송을 위해 승인받은 프로필키)
+	private String fsubject;		// 메시지제목(LMS용)
+	private String fkkosubject;		// KKO친구툭전용제목
+	private String ftemplatekey;	// KKO템플릿키
+	private String fkkobutton;		// KKO버튼(링크기능, JSON 이용)
+	private String fmessage;		// 메시지본문
+	private String fkkoresendtype;	// KKO/KKF재발송메시지타입(SMS/LMS)
+	private String fkkoresendmsg;	// KKO/KKF재발송메시지내용
+	private String fdestine;		// 수신자전화번호
+	private String fcallback;		// 발신자전화번호(회신번호)
+
+	private String buttonNm;		// 버튼명
+	private String buttonUrl;		// 버튼 클릭 시 이동할 URL
+
+}