diff --git a/db/ddl.sql b/db/ddl.sql
index a7782fd..df6d2e9 100644
--- a/db/ddl.sql
+++ b/db/ddl.sql
@@ -75,3 +75,65 @@ create table ENS_TMPLT_MNG_KKO_TALK
constraint FK_TMPLT_MNG_KKO_TALK
foreign key (ORG_CD, TMPLT_CD) references ENS_TMPLT_MNG
);
+
+create table ENS_SND_DTL_KKO_TALK_REQ_HIS
+(
+ ID NUMBER(19) not null
+ primary key,
+ ENVELOPE_ID VARCHAR2(255 char),
+ EXTERNAL_ID VARCHAR2(255 char),
+ RESP_RAW_MSG VARCHAR2(1000 char),
+ SEND_DETAIL_ID NUMBER(19),
+ SEND_RAW_MSG VARCHAR2(4000 char) not null,
+ ERROR_CODE VARCHAR2(255 char),
+ ERROR_MESSAGE CLOB,
+ REGIST_DT TIMESTAMP(6)
+);
+create index IDX_SND_DTL_KKO_TALK_REQ_HIS_01
+ on ENS_SND_DTL_KKO_TALK_REQ_HIS (REGIST_DT);
+
+create table ENS_SND_DTL_KKO_TALK_STAT_HIS
+(
+ ID NUMBER(19) not null
+ primary key,
+ ENVELOPE_ID VARCHAR2(255 char),
+ EXTERNAL_ID VARCHAR2(255 char),
+ AUTHENTICATED_AT VARCHAR2(19),
+ READ_AT VARCHAR2(19),
+ RECEIVED_AT VARCHAR2(19),
+ SENT_AT VARCHAR2(19),
+ STATUS VARCHAR2(255 char),
+ DISTRIBUTION_RECEIVED_AT VARCHAR2(19),
+ PAYLOAD VARCHAR2(255 char),
+ SEND_DETAIL_ID NUMBER(19) not null,
+ TOKEN_USED_AT NUMBER(19),
+ USER_NOTIFIED_AT NUMBER(19),
+ ERROR_CODE VARCHAR2(255 char),
+ ERROR_MESSAGE CLOB,
+ REGIST_DT TIMESTAMP(6)
+);
+create index IDX_SND_DTL_KKO_TALK_STAT_HIS_01
+ on ENS_SND_DTL_KKO_TALK_STAT_HIS (REGIST_DT);
+
+create table ENS_SND_DTL_KKO_TALK_OTT_HIS
+(
+ ID NUMBER(19) not null
+ primary key,
+ ENVELOPE_ID VARCHAR2(255 char),
+ EXTERNAL_ID VARCHAR2(255 char),
+ AUTHENTICATED_AT VARCHAR2(19),
+ RECEIVED_AT VARCHAR2(19),
+ SENT_AT VARCHAR2(19),
+ PAYLOAD VARCHAR2(255 char),
+ SIGNED_AT VARCHAR2(255 char),
+ TOKEN VARCHAR2(255 char),
+ TOKEN_EXPIRES_AT VARCHAR2(19),
+ TOKEN_STATUS VARCHAR2(255 char),
+ TOKEN_USED_AT VARCHAR2(19),
+ USER_NOTIFIED_AT VARCHAR2(19),
+ ERROR_CODE VARCHAR2(255 char),
+ ERROR_MESSAGE CLOB,
+ REGIST_DT TIMESTAMP(6)
+);
+create index IDX_SND_DTL_KKO_TALK_OTT_HIS_01
+ on ENS_SND_DTL_KKO_TALK_OTT_HIS (REGIST_DT);
diff --git a/src/main/java/cokr/xit/ens/modules/common/code/PostSeCd.java b/src/main/java/cokr/xit/ens/modules/common/code/PostSeCd.java
index 363f519..12e37b7 100644
--- a/src/main/java/cokr/xit/ens/modules/common/code/PostSeCd.java
+++ b/src/main/java/cokr/xit/ens/modules/common/code/PostSeCd.java
@@ -1,26 +1,26 @@
package cokr.xit.ens.modules.common.code;
-import cokr.xit.ens.core.code.CodeMapperType;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+import cokr.xit.ens.core.code.*;
+import lombok.*;
@RequiredArgsConstructor
public enum PostSeCd implements CodeMapperType {
-
- testMblPage("모바일페이지 테스트")
+
+ testMblPage("모바일페이지 테스트")
,intgrnNoti("통합 전자고지")
,kkoMydoc("카카오페이 내문서함(인증톡)")
+ // FIXME: 카카오톡 추가
+ ,kkoTalk("카카오톡 인증톡")
,kkoAlimtalk("카카오페이 알림톡")
,nvSigntalk("네이버 고지서(인증톡)")
,ktSigntalk("KT 인증톡")
,ktGibis("KT 인증톡(지비스)")
- ,kkoTalk("카카오톡 인증톡")
;
-
+
@Getter
private final String codeNm;
-
+
@Override
public String getCode() {
return this.name();
diff --git a/src/main/java/cokr/xit/ens/modules/common/code/UseNativeQuery.java b/src/main/java/cokr/xit/ens/modules/common/code/UseNativeQuery.java
index 4d8bb70..f5e8486 100644
--- a/src/main/java/cokr/xit/ens/modules/common/code/UseNativeQuery.java
+++ b/src/main/java/cokr/xit/ens/modules/common/code/UseNativeQuery.java
@@ -1,7 +1,6 @@
package cokr.xit.ens.modules.common.code;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+import lombok.*;
/**
* Native Query를 사용하는 테이블을 관리한다.
@@ -10,6 +9,8 @@ import lombok.RequiredArgsConstructor;
public enum UseNativeQuery {
IntgrnSendDetail("ens_intgrn_snd_dtl")
,SendDetailKkoMydoc("ens_snd_dtl_kko_md")
+ // FIXME: 카카오톡 추가
+ ,SendDetailKkoTalk("ens_snd_dtl_kko_talk")
,SendDetailNvSigntalk("ens_snd_dtl_nv_st")
,SendDetailKtSigntalk("ens_snd_dtl_kt_st")
,SendDetailKtGibis("ens_snd_dtl_kt_gbs")
@@ -17,19 +18,24 @@ public enum UseNativeQuery {
,SendDetailKkoAlimtalkReqHist("ens_snd_dtl_kko_at_req_his")
,SendDetailKkoAlimtalkRsltHist("ens_snd_dtl_kko_at_rslt_his")
-
+
,SendDetailKkoMydocReqHist("ens_snd_dtl_kko_md_req_his")
,SendDetailKkoMydocStatHist("ens_snd_dtl_kko_md_stat_his")
,SendDetailKkoMydocTokenHist("ens_snd_dtl_kko_md_ott_his")
-
+
+ // FIXME: 카카오톡 추가
+ ,SendDetailKkoTalkReqHist("ens_snd_dtl_kko_talk_req_his")
+ ,SendDetailKkoTalkStatHist("ens_snd_dtl_kko_talk_stat_his")
+ ,SendDetailKkoTalkTokenHist("ens_snd_dtl_kko_talk_ott_his")
+
,SendDetailNvSigntalkReqHist("ens_snd_dtl_nv_st_req_his")
,SendDetailNvSigntalkStatHist("ens_snd_dtl_nv_st_stat_his")
,SendDetailNvSigntalkTokenHist("ens_snd_dtl_nv_st_ott_his")
-
+
,SendDetailKtSigntalkReqHist("ens_snd_dtl_kt_st_req_his")
,SendDetailKtSigntalkStatHist("ens_snd_dtl_kt_st_stat_his")
,SendDetailKtSigntalkTokenHist("ens_snd_dtl_kt_st_ott_his")
-
+
,SendDetailKtGibisReqHist("ens_snd_dtl_kt_gbs_req_his")
,SendDetailKtGibisStatHist("ens_snd_dtl_kt_gbs_stat_his")
,SendDetailKtGibisTokenHist("ens_snd_dtl_kt_gbs_ott_his")
diff --git a/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/domain/repository/TmpltMngKkoTalkMapper.java b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/domain/repository/TmpltMngKkoTalkMapper.java
new file mode 100644
index 0000000..603c019
--- /dev/null
+++ b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/domain/repository/TmpltMngKkoTalkMapper.java
@@ -0,0 +1,25 @@
+package cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.repository;
+
+import org.apache.ibatis.annotations.*;
+
+import cokr.xit.ens.core.repository.*;
+import cokr.xit.ens.modules.common.ctgy.sys.mng.domain.ids.*;
+import cokr.xit.ens.modules.kkotalk.domain.*;
+
+/**
+ *
+ * description :
+ * packageName : cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.repository
+ * fileName : TmpltMngKkoTalkMapper
+ * author : limju
+ * date : 2024 9월 09
+ * ======================================================================
+ * 변경일 변경자 변경 내용
+ * ----------------------------------------------------------------------
+ * 2024 9월 09 limju 최초 생성
+ *
+ *
+ */
+@Mapper
+public interface TmpltMngKkoTalkMapper extends MybatisCrudSupport {
+}
diff --git a/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/model/TmpltMngIntgrnDTO.java b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/model/TmpltMngIntgrnDTO.java
index e513689..fe7ac60 100644
--- a/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/model/TmpltMngIntgrnDTO.java
+++ b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/model/TmpltMngIntgrnDTO.java
@@ -1,22 +1,22 @@
package cokr.xit.ens.modules.common.ctgy.intgrnnoti.model;
-import cokr.xit.ens.modules.common.code.PostSeCd;
-import cokr.xit.ens.modules.common.ctgy.sys.mng.model.TmpltMngDTO;
-import cokr.xit.ens.modules.kkoalimtalk.model.TmpltMngKkoAlimtalkDTO;
-import cokr.xit.ens.modules.kkomydoc.model.TmpltMngKkoMydocDTO;
-import cokr.xit.ens.modules.ktsigntalk.direct.model.TmpltMngKtSigntalkDTO;
-import cokr.xit.ens.modules.ktsigntalk.gibis.model.TmpltMngKtGibisDTO;
-import cokr.xit.ens.modules.nvsigntalk.model.TmpltMngNvSigntalkDTO;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.SuperBuilder;
-
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
+import java.io.*;
+
+import javax.persistence.*;
+import javax.validation.*;
+import javax.validation.constraints.*;
+
+import cokr.xit.ens.modules.common.code.*;
+import cokr.xit.ens.modules.common.ctgy.sys.mng.model.*;
+import cokr.xit.ens.modules.kkoalimtalk.model.*;
+import cokr.xit.ens.modules.kkomydoc.model.*;
+import cokr.xit.ens.modules.kkotalk.model.*;
+import cokr.xit.ens.modules.ktsigntalk.direct.model.*;
+import cokr.xit.ens.modules.ktsigntalk.gibis.model.*;
+import cokr.xit.ens.modules.nvsigntalk.model.*;
+import io.swagger.v3.oas.annotations.media.*;
+import lombok.*;
+import lombok.experimental.*;
@Data
@SuperBuilder
@@ -43,6 +43,11 @@ public class TmpltMngIntgrnDTO extends TmpltMngDTO implements Serializable {
@Valid
private TmpltMngKkoMydocDTO kkoMydoc;
+ // FIXME: 카카오톡 추가
+ @Schema(required = false, title = "카카오톡 인증톡", example = " ")
+ @Valid
+ private TmpltMngKkoTalkDTO kkoTalk;
+
@Schema(required = false, title = "네이버 고지서(인증톡)", example = " ")
@Valid
private TmpltMngNvSigntalkDTO nvSigntalk;
diff --git a/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/presentation/IntgrnNotiMblPageController.java b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/presentation/IntgrnNotiMblPageController.java
index 38fbc0c..4450bb3 100644
--- a/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/presentation/IntgrnNotiMblPageController.java
+++ b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/presentation/IntgrnNotiMblPageController.java
@@ -1,20 +1,20 @@
package cokr.xit.ens.modules.common.ctgy.intgrnnoti.presentation;
-import cokr.xit.ens.core.exception.EnsException;
-import cokr.xit.ens.core.exception.code.EnsErrCd;
-import cokr.xit.ens.core.utils.CmmnUtil;
-import cokr.xit.ens.modules.common.code.PostSeCd;
-import cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.repository.IntgrnSendDetailRepository;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
+import java.util.*;
+
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.stereotype.*;
+import org.springframework.ui.*;
+import org.springframework.web.bind.annotation.*;
-import java.util.Map;
+import cokr.xit.ens.core.exception.*;
+import cokr.xit.ens.core.exception.code.*;
+import cokr.xit.ens.core.utils.*;
+import cokr.xit.ens.modules.common.code.*;
+import cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.repository.*;
+import io.swagger.v3.oas.annotations.tags.*;
+import lombok.*;
+import lombok.extern.slf4j.*;
@Tag(name = "IntgrnNotiMblPageController")
@Slf4j
@@ -26,6 +26,9 @@ public class IntgrnNotiMblPageController {
@Value("${xit.mblpage.postse.kkomd.path}")
private String KKOMD_MBL_PATH;
+ // FIXME: 카카오톡 추가
+ @Value("${xit.mblpage.postse.kkotalk.path}")
+ private String KKOTALK_MBL_PATH;
@Value("${xit.mblpage.postse.nvst.path}")
private String NVST_MBL_PATH;
@Value("${xit.mblpage.postse.ktst.path}")
@@ -38,10 +41,10 @@ public class IntgrnNotiMblPageController {
public String mblPagePrnt(@RequestParam Map mParam, ModelMap model) {
String docUuid = null;
- String linkedUuid = null;
- if (docUuid == null) docUuid = mParam.get("document_binder_uuid");
+ String linkedUuid = null;
+ if (docUuid == null) docUuid = mParam.get("document_binder_uuid");
if (linkedUuid == null) linkedUuid = mParam.get("external_document_uuid");
- if (docUuid == null) docUuid = mParam.get("docId");
+ if (docUuid == null) docUuid = mParam.get("docId");
if (linkedUuid == null) linkedUuid = mParam.get("clientDocId");
if (docUuid == null) {
docUuid = CmmnUtil.isEmpty(mParam.get("src_key")) ? null : mParam.get("src_key").replaceAll("[\\\"\\,\\[\\]]", "");
@@ -64,6 +67,8 @@ public class IntgrnNotiMblPageController {
String url = null;
if (PostSeCd.kkoMydoc.equals(postSeCd)) url = KKOMD_MBL_PATH;
+ // FIXME: 카카오톡 추가
+ else if (PostSeCd.kkoTalk.equals(postSeCd)) url = KKOTALK_MBL_PATH;
else if (PostSeCd.nvSigntalk.equals(postSeCd)) url = NVST_MBL_PATH;
else if (PostSeCd.ktSigntalk.equals(postSeCd)) url = KTST_MBL_PATH;
else if (PostSeCd.ktGibis.equals(postSeCd)) url = KTGBS_MBL_PATH;
diff --git a/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/strategy/TmpltMngStrategyIntegration.java b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/strategy/TmpltMngStrategyIntegration.java
index c429920..a2954c9 100644
--- a/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/strategy/TmpltMngStrategyIntegration.java
+++ b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/strategy/TmpltMngStrategyIntegration.java
@@ -1,37 +1,36 @@
package cokr.xit.ens.modules.common.ctgy.intgrnnoti.service.strategy;
-import cokr.xit.ens.core.exception.EnsException;
-import cokr.xit.ens.core.exception.code.EnsErrCd;
-import cokr.xit.ens.core.utils.CmmnUtil;
-import cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.TmpltMngIntgrn;
-import cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.repository.TmpltMngIntgrnRepository;
-import cokr.xit.ens.modules.common.ctgy.intgrnnoti.model.TmpltMngIntgrnDTO;
-import cokr.xit.ens.modules.common.ctgy.intgrnnoti.model.struct.TmpltMngIntgrnMapper;
-import cokr.xit.ens.modules.common.ctgy.sys.mng.domain.OrgMng;
-import cokr.xit.ens.modules.common.ctgy.sys.mng.domain.ids.TmpltMngIds;
-import cokr.xit.ens.modules.common.ctgy.sys.mng.domain.repository.OrgMngRepository;
-import cokr.xit.ens.modules.common.ctgy.sys.mng.domain.repository.TmpltMngRepository;
-import cokr.xit.ens.modules.common.ctgy.sys.mng.model.TmpltMngDTO;
-import cokr.xit.ens.modules.common.ctgy.sys.mng.model.TmpltMngSearchDTO;
-import cokr.xit.ens.modules.common.ctgy.sys.mng.service.strategy.TmpltMngStrategyTemplate;
-import cokr.xit.ens.modules.kkoalimtalk.domain.TmpltMngKkoAlimtalk;
+import java.util.*;
+import java.util.stream.*;
+
+import javax.validation.*;
+
+import org.mapstruct.factory.*;
+import org.springframework.stereotype.*;
+
+import com.fasterxml.jackson.core.*;
+
+import cokr.xit.ens.core.exception.*;
+import cokr.xit.ens.core.exception.code.*;
+import cokr.xit.ens.core.utils.*;
+import cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.*;
+import cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.repository.*;
+import cokr.xit.ens.modules.common.ctgy.intgrnnoti.model.*;
+import cokr.xit.ens.modules.common.ctgy.intgrnnoti.model.struct.*;
+import cokr.xit.ens.modules.common.ctgy.sys.mng.domain.*;
+import cokr.xit.ens.modules.common.ctgy.sys.mng.domain.ids.*;
+import cokr.xit.ens.modules.common.ctgy.sys.mng.domain.repository.*;
+import cokr.xit.ens.modules.common.ctgy.sys.mng.model.*;
+import cokr.xit.ens.modules.common.ctgy.sys.mng.service.strategy.*;
+import cokr.xit.ens.modules.kkoalimtalk.domain.*;
import cokr.xit.ens.modules.kkoalimtalk.model.struct.TmpltMngKkoAlimtalkMapper;
-import cokr.xit.ens.modules.kkomydoc.domain.TmpltMngKkoMydoc;
+import cokr.xit.ens.modules.kkomydoc.domain.*;
import cokr.xit.ens.modules.kkomydoc.model.struct.TmpltMngKkoMydocMapper;
-import cokr.xit.ens.modules.nvsigntalk.domain.TmpltMngNvSigntalk;
+import cokr.xit.ens.modules.kkotalk.domain.*;
+import cokr.xit.ens.modules.kkotalk.model.struct.TmpltMngKkoTalkMapper;
+import cokr.xit.ens.modules.nvsigntalk.domain.*;
import cokr.xit.ens.modules.nvsigntalk.model.struct.TmpltMngNvSigntalkMapper;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import lombok.RequiredArgsConstructor;
-import org.mapstruct.factory.Mappers;
-import org.springframework.data.redis.core.HashOperations;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-
-import javax.validation.ConstraintViolation;
-import javax.validation.Validation;
-import javax.validation.Validator;
-import java.util.*;
-import java.util.stream.Collectors;
+import lombok.*;
@Component("tmpltMngStrategy_intgrn")
@RequiredArgsConstructor
@@ -42,6 +41,7 @@ public class TmpltMngStrategyIntegration extends TmpltMngStrategyTemplate