알림톡 api-> 채널ID조회 - 템플릿ID조회 - 템플릿상세조회 완료
This commit is contained in:
parent
2bcecc2199
commit
69d2cfb597
@ -4,10 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.itn.mjonApi.cmn.idgen.service.IdgenService;
|
||||
import com.itn.mjonApi.cmn.msg.FailRestResponse;
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.mjon.api.access.mapper.domain.AccessKeyVO;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgRequestVO;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgsRequestVO;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.SendSucRestResponse;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.mapper.domain.SendSucRestResponse;
|
||||
import com.itn.mjonApi.mjon.log.service.mapper.LettnAccessLogMapper;
|
||||
import com.itn.mjonApi.mjon.log.service.mapper.LettnApiSendMsgLogMapper;
|
||||
import com.itn.mjonApi.mjon.log.service.mapper.MjMsgGroupDataMapper;
|
||||
@ -59,6 +56,7 @@ public class LogAspect {
|
||||
|
||||
@Autowired
|
||||
MjMsgGroupDataMapper mjMsgGroupDataMapper;
|
||||
|
||||
@Resource(name = "apiAccessLog")
|
||||
private IdgenService idgenApiAccessLogId;
|
||||
|
||||
@ -81,7 +79,7 @@ public class LogAspect {
|
||||
// VO 객체를 가져옴
|
||||
Object objectVO = joinPoint.getArgs()[0];
|
||||
|
||||
log.info("joinPoint.getArgs()[0] :: [{}]", joinPoint.getArgs()[0]);
|
||||
// log.info("joinPoint.getArgs()[0] :: [{}]", joinPoint.getArgs()[0]);
|
||||
|
||||
|
||||
|
||||
@ -91,16 +89,25 @@ public class LogAspect {
|
||||
String mberId = "";
|
||||
String accessKey = "";
|
||||
for(Field field : objectVO.getClass().getDeclaredFields()){;
|
||||
field.setAccessible(true);
|
||||
try {
|
||||
// JDK 내부 클래스 필드는 무시
|
||||
if (field.getDeclaringClass().getName().startsWith("java.")) continue;
|
||||
field.setAccessible(true);
|
||||
|
||||
log.info("field.getName() :: [{}]", field.getName());
|
||||
log.info("field.get(objectVO) :: [{}]", field.get(objectVO));
|
||||
// log.info("field.getName() :: [{}]", field.getName());
|
||||
// log.info("field.get(objectVO) :: [{}]", field.get(objectVO));
|
||||
|
||||
|
||||
if("mberId".equals(field.getName())){ mberId=field.get(objectVO).toString(); }
|
||||
else if("accessKey".equals(field.getName())){ accessKey=field.get(objectVO).toString(); }
|
||||
if("mberId".equals(field.getName())){ mberId=field.get(objectVO).toString(); }
|
||||
else if("accessKey".equals(field.getName())){ accessKey=field.get(objectVO).toString(); }
|
||||
|
||||
if(StringUtils.isNotEmpty(mberId) && StringUtils.isNotEmpty(accessKey)){ break; }
|
||||
if(StringUtils.isNotEmpty(mberId) && StringUtils.isNotEmpty(accessKey)){ break; }
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.warn("접근 불가 필드 스킵: {}", field.getName());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
String nextStringId = idgenApiAccessLogId.getNextStringId();
|
||||
@ -252,6 +259,7 @@ public class LogAspect {
|
||||
@NotNull
|
||||
private static String getClassNmFromObject(Object returnValue) {
|
||||
String classNmTemp = returnValue.getClass().getName();
|
||||
log.info("getClassNmFromObject :: [{}]", classNmTemp);
|
||||
String classNm = classNmTemp.substring(classNmTemp.lastIndexOf(".")+1, classNmTemp.length());
|
||||
return classNm;
|
||||
}
|
||||
@ -312,37 +320,25 @@ public class LogAspect {
|
||||
* @return
|
||||
*/
|
||||
public String getJsonToString(Object returnValue) throws JsonProcessingException {
|
||||
|
||||
if(ObjectUtils.isEmpty(returnValue)){
|
||||
if (ObjectUtils.isEmpty(returnValue)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String classNm = this.getClassNmFromObject(returnValue);
|
||||
|
||||
/**
|
||||
* @description : return Class가 추가되면 여기에 추가
|
||||
*/
|
||||
if("AccessKeyVO".equals(classNm)) {
|
||||
AccessKeyVO accessKeyVO = (AccessKeyVO) returnValue;
|
||||
return ApiObjectUtil.getAccessKeyVOToJsonString(accessKeyVO);
|
||||
// 처리 대상 클래스 목록 (선택적으로 필터링하고 싶다면 여기에 조건)
|
||||
switch (classNm) {
|
||||
case "AccessKeyVO":
|
||||
case "RestResponse":
|
||||
case "MsgsRequestVO":
|
||||
case "MsgRequestVO":
|
||||
case "MjKakaoProfileInfoVO":
|
||||
case "BizTemplateRequest":
|
||||
return ApiObjectUtil.toJson(returnValue);
|
||||
default:
|
||||
log.info("데이터를 추가해 주세요");
|
||||
return "데이터를 추가해 주세요";
|
||||
}
|
||||
else if("RestResponse".equals(classNm)){
|
||||
RestResponse restResponse = (RestResponse) returnValue;
|
||||
return ApiObjectUtil.getRestResponseToJsonString(restResponse);
|
||||
}
|
||||
else if("MsgsRequestVO".equals(classNm)){
|
||||
MsgsRequestVO msgsRequestVO = (MsgsRequestVO) returnValue;
|
||||
return ApiObjectUtil.getMsgsRequestVOToJsonString(msgsRequestVO);
|
||||
}
|
||||
else if("MsgRequestVO".equals(classNm)){
|
||||
MsgRequestVO restResponse = (MsgRequestVO) returnValue;
|
||||
return ApiObjectUtil.getMsgRequestVOToJsonString(restResponse);
|
||||
}
|
||||
else{
|
||||
return "데이터를 추가해 주세요";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -3,11 +3,19 @@ package com.itn.mjonApi.cmn.apiServer;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.MjonResponseVO;
|
||||
import com.itn.mjonApi.cmn.domain.biz.template.detail.TemplateDetailResponse;
|
||||
import com.itn.mjonApi.cmn.domain.biz.template.BizTemplateRequest;
|
||||
import com.itn.mjonApi.cmn.domain.biz.template.list.TemplateListResponse;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.mapper.domain.MjonResponseVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
|
||||
|
||||
/**
|
||||
* packageName : com.itn.mjonApi.cmn.apiServer
|
||||
@ -64,4 +72,44 @@ public class ApiService <T> {
|
||||
return MjonResponseVO.getMjonResponse(apiReturnNode);
|
||||
}
|
||||
|
||||
public TemplateListResponse postForBizTemplateListEntity(String url, BizTemplateRequest requestDto) throws JsonProcessingException {
|
||||
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
|
||||
HttpEntity<BizTemplateRequest> requestEntity = new HttpEntity<>(requestDto, headers);
|
||||
|
||||
TemplateListResponse returnEntity = restTemplate.exchange(
|
||||
url,
|
||||
HttpMethod.POST,
|
||||
requestEntity,
|
||||
TemplateListResponse.class
|
||||
).getBody();
|
||||
|
||||
|
||||
|
||||
return returnEntity;
|
||||
}
|
||||
public TemplateDetailResponse postForBizTemplateDetailEntity(String url, BizTemplateRequest requestDto) throws JsonProcessingException {
|
||||
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
|
||||
HttpEntity<BizTemplateRequest> requestEntity = new HttpEntity<>(requestDto, headers);
|
||||
|
||||
TemplateDetailResponse returnEntity = restTemplate.exchange(
|
||||
url,
|
||||
HttpMethod.POST,
|
||||
requestEntity,
|
||||
TemplateDetailResponse.class
|
||||
).getBody();
|
||||
|
||||
log.info("returnEntity :: [{}]", returnEntity.toString());
|
||||
|
||||
|
||||
return returnEntity;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
18
src/main/java/com/itn/mjonApi/cmn/domain/CmnVO.java
Normal file
18
src/main/java/com/itn/mjonApi/cmn/domain/CmnVO.java
Normal file
@ -0,0 +1,18 @@
|
||||
package com.itn.mjonApi.cmn.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class CmnVO {
|
||||
|
||||
private String mberId; // 사용자 ID
|
||||
|
||||
private String accessKey; // Api Key
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class BizTemplateRequest {
|
||||
private String bizId;
|
||||
private String apiKey;
|
||||
private String senderKey;
|
||||
private String templateCode;
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.detail;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class CommentsAttachment {
|
||||
private String originalFileName;
|
||||
private String filePath;
|
||||
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.detail;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class TemplateButton {
|
||||
private String bizFormId;
|
||||
private String linkAnd;
|
||||
private String linkIos;
|
||||
private String linkMo;
|
||||
private String linkPc;
|
||||
private String linkType;
|
||||
private String name;
|
||||
private String ordering;
|
||||
private String pluginId;
|
||||
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.detail;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class TemplateComments {
|
||||
private String content;
|
||||
private String createdAt;
|
||||
private String status;
|
||||
private List<CommentsAttachment> attachment;
|
||||
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.detail;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class TemplateDetail {
|
||||
private String block;
|
||||
private String categoryCode;
|
||||
private String createdAt;
|
||||
private String dormant;
|
||||
private String inspectionStatus;
|
||||
private String modifiedAt;
|
||||
private String securityFlag;
|
||||
private String senderKey;
|
||||
private String senderKeyType;
|
||||
private String status;
|
||||
private String templateCode;
|
||||
private String templateContent;
|
||||
private String templateEmphasizeType;
|
||||
private String templateExtra;
|
||||
private String templateHeader;
|
||||
private String templateImageName;
|
||||
private String templateImageUrl;
|
||||
private String templateMessageType;
|
||||
private String templateName;
|
||||
private String templateSubtitle;
|
||||
private String templateTitle;
|
||||
private TemplateItemHighlight templateItemHighlight;
|
||||
private TemplateItem templateItem;
|
||||
private List<TemplateButton> buttons;
|
||||
private List<TemplateComments> comments;
|
||||
private List<TemplateQuickReplies> quickReplies;
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.detail;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class TemplateDetailResponse {
|
||||
|
||||
private String code;
|
||||
private String message;
|
||||
private TemplateDetail data;
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.detail;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class TemplateItem {
|
||||
private List<TemplateItemItem> list;
|
||||
private TemplateItemSummary summary;
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.detail;
|
||||
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class TemplateItemHighlight {
|
||||
private String title; // 아이템 타이틀
|
||||
private String description; // 상세 설명
|
||||
private String imageUrl; // 썸네일 이미지 주소
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.detail;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class TemplateItemItem {
|
||||
private String title;
|
||||
private String description;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.detail;
|
||||
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class TemplateItemSummary {
|
||||
private String title;
|
||||
private String description;
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.detail;
|
||||
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class TemplateQuickReplies {
|
||||
private String name;
|
||||
private String linkType;
|
||||
private String linkAnd;
|
||||
private String linkIos;
|
||||
private String linkMo;
|
||||
private String linkPc;
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.list;
|
||||
|
||||
/**
|
||||
* 템플릿 상태를 나타내는 열거형 클래스.
|
||||
* - API 응답의 상태 코드(EX: REG)를 사람이 읽기 쉽게 변환하는 데 사용됨.
|
||||
*/
|
||||
public enum ServiceStatusEnum {
|
||||
|
||||
REG("등록완료"), // REG: 등록 완료된 템플릿
|
||||
RDY("대기"), // RDY: 대기 상태
|
||||
ACT("활성"), // ACT: 활성화 상태
|
||||
DMT("중단"), // DMT: 중단된 템플릿
|
||||
REJ("반려"), // REJ: 반려된 템플릿
|
||||
UNKNOWN("알 수 없음"); // 정의되지 않은 상태
|
||||
|
||||
private final String label; // 한글 설명
|
||||
|
||||
/**
|
||||
* 생성자
|
||||
* @param label 상태의 한글 설명
|
||||
*/
|
||||
ServiceStatusEnum(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
/**
|
||||
* 한글 설명 반환
|
||||
*/
|
||||
public String getLabel() {
|
||||
return this.label;
|
||||
}
|
||||
|
||||
/**
|
||||
* 코드값을 받아 "[코드](한글설명)" 형태 문자열로 반환
|
||||
* @param code 상태 코드 (예: REG, ACT 등)
|
||||
* @return 예: "REG(등록완료)", "DMT(중단)", "FOO(알 수 없음)"
|
||||
*/
|
||||
public static String getLabelByCode(String code) {
|
||||
for (ServiceStatusEnum status : values()) {
|
||||
if (status.name().equalsIgnoreCase(code)) {
|
||||
return status.name() + "(" + status.getLabel() + ")";
|
||||
}
|
||||
}
|
||||
return code + "(알 수 없음)";
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.list;
|
||||
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
public class TemplateInfo {
|
||||
private String senderKey;
|
||||
private String senderKeyType;
|
||||
private String templateCode;
|
||||
private String templateName;
|
||||
private String createdAt;
|
||||
private String modifiedAt;
|
||||
private String categoryCode;
|
||||
private String serviceStatus;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.list;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
public class TemplateListData {
|
||||
private List<TemplateInfo> list;
|
||||
private boolean hasNext;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package com.itn.mjonApi.cmn.domain.biz.template.list;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
public class TemplateListResponse {
|
||||
private String code;
|
||||
private String message;
|
||||
private int totalCount;
|
||||
private int totalPage;
|
||||
private int currentPage;
|
||||
private TemplateListData data;
|
||||
}
|
||||
@ -58,7 +58,6 @@ public class IdgenServiceImpl implements IdgenService {
|
||||
// nextId 값 만들기
|
||||
String nextId = prefixTemp + idgenVO.getNextId();
|
||||
|
||||
log.info(" userId : [{}]", nextId);
|
||||
return nextId;
|
||||
}
|
||||
|
||||
|
||||
@ -152,7 +152,7 @@ public class CertifInterceptor implements HandlerInterceptor{
|
||||
referer = serverIp;
|
||||
}
|
||||
referer= "119.193.215.98";
|
||||
log.info("certi request.getParameter(\"accessKey\") :: [{}]", request.getParameter("accessKey"));
|
||||
// log.info("certi request.getParameter(\"accessKey\") :: [{}]", request.getParameter("accessKey"));
|
||||
// hylee Builder 패턴으로 변경 => 20230516
|
||||
AccessKeyVO accessKeyVO = accessKeyService.selectRKey(
|
||||
new AccessKeyVO().builder()
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package com.itn.mjonApi.cmn.model;
|
||||
|
||||
import com.itn.mjonApi.mjon.api.inqry.mapper.PriceMapper;
|
||||
import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.PriceMapper;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.PriceVO;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@ -53,6 +53,8 @@ public enum StatMsg {
|
||||
//발송가능건수======================================================================
|
||||
, STAT_5099("5099","기타 시스템 오류")
|
||||
|
||||
|
||||
|
||||
//======================================================================
|
||||
, msgType4("단문","SMS")
|
||||
, msgType6("장문","LMS")
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
package com.itn.mjonApi.mjon.api.kakao.inqry.mapper;
|
||||
|
||||
import com.itn.mjonApi.mjon.api.kakao.inqry.mapper.domain.MjKakaoProfileInfoVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.HstryDetailVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.HstryVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.MjonResponseVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* packageName : com.itn.mjonApi.mjon.api.kakao.inqry.mapper
|
||||
* fileName : InqryMapper
|
||||
* author : hylee
|
||||
* date : 2025-06-27
|
||||
* description :
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 2025-06-27 hylee 최초 생성
|
||||
*/
|
||||
@Mapper
|
||||
public interface InqryMapper {
|
||||
|
||||
List<MjKakaoProfileInfoVO> getChnlIds(MjKakaoProfileInfoVO mjKakaoProfileInfoVO);
|
||||
|
||||
//double selectUserMoney(String mberId);
|
||||
|
||||
// List<MjonResponseVO> selectApiInqryHstry(HstryVO hstryVO);
|
||||
//
|
||||
// List<MjonResponseVO> selectApiInqryHstryDetail(HstryDetailVO hstryDetailVO);
|
||||
//
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.itn.mjonApi.mjon.api.kakao.inqry.mapper.domain;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.itn.mjonApi.cmn.domain.CmnVO;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ToString
|
||||
public class MjKakaoProfileInfoVO extends CmnVO {
|
||||
private String profileId; // 회원 프로필 번호
|
||||
private String userId; // 회원 아이디
|
||||
private String senderKey; // 발신 프로필 키
|
||||
private String token; // 수신받은 인증 토큰정보
|
||||
private String phoneNumber; // 카카오톡 채널 핸드폰 번호
|
||||
private String yellowId; // 카카오톡 채널(@ID)
|
||||
private String categoryCode; // 카테고리 코드
|
||||
private String categoryName; // 카테고리 코드 명칭
|
||||
private String frstRegistPnttm; // 등록 일자
|
||||
private String frstRegisterId; // 등록자
|
||||
private String lastUpdtPnttm; // 수정 일자
|
||||
private String lastUpdusrId; // 수정자
|
||||
private String deleteYn; // 삭제 여부 (Y/N)
|
||||
}
|
||||
@ -0,0 +1,134 @@
|
||||
package com.itn.mjonApi.mjon.api.kakao.inqry.service.Impl;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.itn.mjonApi.cmn.apiServer.ApiService;
|
||||
import com.itn.mjonApi.cmn.domain.biz.template.BizTemplateRequest;
|
||||
import com.itn.mjonApi.cmn.domain.biz.template.detail.TemplateDetailResponse;
|
||||
import com.itn.mjonApi.cmn.domain.biz.template.list.ServiceStatusEnum;
|
||||
import com.itn.mjonApi.cmn.domain.biz.template.list.TemplateInfo;
|
||||
import com.itn.mjonApi.cmn.domain.biz.template.list.TemplateListResponse;
|
||||
import com.itn.mjonApi.cmn.msg.FailRestResponse;
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.mjon.api.kakao.inqry.mapper.InqryMapper;
|
||||
import com.itn.mjonApi.mjon.api.kakao.inqry.mapper.domain.MjKakaoProfileInfoVO;
|
||||
import com.itn.mjonApi.mjon.api.kakao.inqry.service.InqryService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.catalina.connector.Response;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* packageName : com.itn.mjonApi.mjon.api.kakao.inqry.service.Impl
|
||||
* fileName : InqryServiceImpl
|
||||
* author : hylee
|
||||
* date : 2025-06-27
|
||||
* description :
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 2025-06-27 hylee 최초 생성
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class InqryServiceImpl implements InqryService {
|
||||
|
||||
|
||||
private ApiService<Response> apiService;
|
||||
|
||||
@Value("${biz.root.url}")
|
||||
private String BIZ_ROOT_URL;
|
||||
@Value("${biz.api.key}")
|
||||
private String BIZ_API_KEY;
|
||||
@Value("${biz.id}")
|
||||
private String BIZ_ID;
|
||||
|
||||
|
||||
@Autowired
|
||||
InqryMapper inqryMapper;
|
||||
|
||||
@Autowired
|
||||
public InqryServiceImpl(ApiService<Response> apiService) {
|
||||
this.apiService = apiService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RestResponse getChnlId(MjKakaoProfileInfoVO mjKakaoProfileInfoVO) {
|
||||
|
||||
List<MjKakaoProfileInfoVO> voList = inqryMapper.getChnlIds(mjKakaoProfileInfoVO);
|
||||
|
||||
log.info(" mjKakaoProfileInfoVO toString [{}]", mjKakaoProfileInfoVO.toString());
|
||||
return new RestResponse(voList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RestResponse getTemplates(BizTemplateRequest bizTemplateRequest) throws JsonProcessingException {
|
||||
|
||||
|
||||
// 1. 템플릿 목록 조회 요청 DTO 생성 (BIZ ID, API Key, senderKey 포함)
|
||||
BizTemplateRequest requestDto= BizTemplateRequest.builder()
|
||||
.bizId(BIZ_ID)
|
||||
.apiKey(BIZ_API_KEY)
|
||||
.senderKey(bizTemplateRequest.getSenderKey())
|
||||
.build();
|
||||
|
||||
// 2. 외부 API 호출 - 템플릿 목록 요청 (/v3/kakao/template/list)
|
||||
TemplateListResponse response = apiService.postForBizTemplateListEntity(
|
||||
BIZ_ROOT_URL+"/v3/kakao/template/list"
|
||||
, requestDto
|
||||
);
|
||||
|
||||
|
||||
// 3. 응답 코드가 "0" (성공) 이 **아닌 경우** => 실패 처리 (STAT_4099 반환 : 기타 시스템 오류)
|
||||
if(!"200".equals(response.getCode()) )
|
||||
{
|
||||
// STAT_4099 = 템플릿 조회 실패 (내부 enum 기반 메시지 사용)
|
||||
return new RestResponse(new FailRestResponse("STAT_4099",""));
|
||||
}
|
||||
|
||||
// 4. 성공 시 템플릿 리스트 추출
|
||||
List<TemplateInfo> templateList = response.getData().getList();
|
||||
|
||||
// 5. 각 템플릿 객체에 대해 가공 처리
|
||||
templateList.forEach(t -> {
|
||||
// 서비스 상태 코드 → 한글 라벨로 변환 ( 예: REG → REG(등록완료) )
|
||||
String originalCode = t.getServiceStatus();
|
||||
String convertedLabel = ServiceStatusEnum.getLabelByCode(originalCode);
|
||||
t.setServiceStatus(convertedLabel);
|
||||
|
||||
// 응답에 불필요한 필드 제거 (null 처리)
|
||||
t.setSenderKeyType(null);
|
||||
t.setCategoryCode(null);
|
||||
});
|
||||
|
||||
// 6. 최종 응답 반환 (가공된 템플릿 리스트 포함)
|
||||
return new RestResponse(templateList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RestResponse getTemplateDetail(BizTemplateRequest bizTemplateRequest) throws JsonProcessingException {
|
||||
|
||||
// 1. 템플릿 목록 조회 요청 DTO 생성 (BIZ ID, API Key, senderKey 포함)
|
||||
BizTemplateRequest requestDto= BizTemplateRequest.builder()
|
||||
.bizId(BIZ_ID)
|
||||
.apiKey(BIZ_API_KEY)
|
||||
.senderKey(bizTemplateRequest.getSenderKey())
|
||||
.templateCode(bizTemplateRequest.getTemplateCode())
|
||||
.build();
|
||||
|
||||
// 2. 외부 API 호출 - 템플릿 목록 요청 (/v3/kakao/template/list)
|
||||
TemplateDetailResponse response = apiService.postForBizTemplateDetailEntity(
|
||||
BIZ_ROOT_URL+"/v3/kakao/template/detail"
|
||||
, requestDto
|
||||
);
|
||||
|
||||
log.info(" + response :: [{}]", response.toString());
|
||||
|
||||
// 6. 최종 응답 반환 (가공된 템플릿 리스트 포함)
|
||||
return new RestResponse(response);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.itn.mjonApi.mjon.api.kakao.inqry.service;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.itn.mjonApi.cmn.domain.biz.template.BizTemplateRequest;
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.mjon.api.kakao.inqry.mapper.domain.MjKakaoProfileInfoVO;
|
||||
|
||||
public interface InqryService {
|
||||
RestResponse getChnlId(MjKakaoProfileInfoVO mjKakaoProfileInfoVO);
|
||||
|
||||
RestResponse getTemplates(BizTemplateRequest bizTemplateRequest) throws JsonProcessingException;
|
||||
|
||||
RestResponse getTemplateDetail(BizTemplateRequest bizTemplateRequest) throws JsonProcessingException;
|
||||
}
|
||||
@ -0,0 +1,66 @@
|
||||
package com.itn.mjonApi.mjon.api.kakao.inqry.web;
|
||||
|
||||
|
||||
import com.itn.mjonApi.cmn.domain.biz.template.BizTemplateRequest;
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.mjon.api.kakao.inqry.mapper.domain.MjKakaoProfileInfoVO;
|
||||
import com.itn.mjonApi.mjon.api.kakao.inqry.service.InqryService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
||||
/**
|
||||
* fileName : InqryRestContoller.java
|
||||
* author : hylee
|
||||
* date : 2025-06-27
|
||||
* description :
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 2025-06-27 hylee 최초 생성
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
public class InqryRestContoller {
|
||||
|
||||
@Autowired
|
||||
private InqryService inqryService;
|
||||
|
||||
|
||||
/**
|
||||
* @param
|
||||
* @return
|
||||
* @throws Exception 처리 중 예외 발생 가능
|
||||
* @date 2025-06-27
|
||||
* @author hylee
|
||||
*/
|
||||
@CrossOrigin("*") // 모든 요청에 접근 허용
|
||||
@PostMapping("/api/kakao/inqry/chnlId")
|
||||
public ResponseEntity<RestResponse> getChnlId(MjKakaoProfileInfoVO mjKakaoProfileInfoVO) throws Exception {
|
||||
|
||||
return ResponseEntity.ok().body(inqryService.getChnlId(mjKakaoProfileInfoVO));
|
||||
|
||||
}
|
||||
|
||||
@CrossOrigin("*") // 모든 요청에 접근 허용
|
||||
@PostMapping("/api/kakao/inqry/templates/list")
|
||||
public ResponseEntity<RestResponse> getTemplates(BizTemplateRequest bizTemplateRequest) throws Exception {
|
||||
|
||||
return ResponseEntity.ok().body(inqryService.getTemplates(bizTemplateRequest));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@CrossOrigin("*") // 모든 요청에 접근 허용
|
||||
@PostMapping("/api/kakao/inqry/templates/detail")
|
||||
public ResponseEntity<RestResponse> getTemplateDetail(BizTemplateRequest bizTemplateRequest) throws Exception {
|
||||
|
||||
return ResponseEntity.ok().body(inqryService.getTemplateDetail(bizTemplateRequest));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -1,14 +1,14 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.mapper;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.mapper;
|
||||
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.HstryDetailVO;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.HstryVO;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.MjonResponseVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.HstryDetailVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.HstryVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.MjonResponseVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @packageName : com.itn.mjonApi.mjon.api.inqry.service.mapper
|
||||
* @packageName : com.itn.mjonApi.mjon.api.msg.inqry.service.mapper
|
||||
* @fileName : PriceMapper.java
|
||||
* @author : JunHo Lee
|
||||
* @date : 2023.05.15
|
||||
@ -1,11 +1,11 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.mapper;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.mapper;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @packageName : com.itn.mjonApi.mjon.api.inqry.service.mapper
|
||||
* @packageName : com.itn.mjonApi.mjon.api.msg.inqry.service.mapper
|
||||
* @fileName : PriceMapper.java
|
||||
* @author : JunHo Lee
|
||||
* @date : 2023.05.15
|
||||
@ -1,4 +1,4 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.service.mapper.domain;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.service.mapper.domain;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.service.mapper.domain;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.service.mapper.domain;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.mapper.domain;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.mapper.domain;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.service;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.service;
|
||||
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.HstryDetailVO;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.HstryVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.HstryDetailVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.HstryVO;
|
||||
|
||||
public interface HstryService {
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.service;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.service;
|
||||
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
|
||||
/**
|
||||
* @packageName : com.itn.mjonApi.mjon.api.inqry.service
|
||||
* @packageName : com.itn.mjonApi.mjon.api.msg.inqry.service
|
||||
* @fileName : PriceService.java
|
||||
* @author : JunHo Lee
|
||||
* @date : 2023.05.15
|
||||
@ -1,15 +1,15 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.service.impl;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.service.impl;
|
||||
|
||||
import com.itn.mjonApi.cmn.apiServer.ApiService;
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.cmn.msg.FailRestResponse;
|
||||
import com.itn.mjonApi.mjon.api.inqry.mapper.HstryMapper;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.HstryService;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.HstryDetailVO;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.HstryResponse;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.HstryVO;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.MjonResponseVO;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.SendMapper;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.HstryMapper;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.service.HstryService;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.HstryDetailVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.HstryResponse;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.HstryVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.MjonResponseVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.mapper.SendMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.catalina.connector.Response;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -28,9 +28,7 @@ public class HstryServiceImpl implements HstryService {
|
||||
|
||||
@Autowired
|
||||
HstryMapper hstryMapper;
|
||||
|
||||
@Autowired
|
||||
SendMapper sendMapper;
|
||||
|
||||
|
||||
@Autowired
|
||||
public HstryServiceImpl(ApiService<Response> apiService) {
|
||||
@ -1,13 +1,13 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.service.impl;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.service.impl;
|
||||
|
||||
import com.itn.mjonApi.cmn.model.Price;
|
||||
import com.itn.mjonApi.cmn.msg.FailRestResponse;
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.cmn.msg.StatMsg;
|
||||
import com.itn.mjonApi.mjon.api.inqry.mapper.PriceMapper;
|
||||
import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceResponse;
|
||||
import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceVO;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.PriceService;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.PriceMapper;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.PriceResponse;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.PriceVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.service.PriceService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@ -16,7 +16,7 @@ import org.springframework.stereotype.Service;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @packageName : com.itn.mjonApi.mjon.api.inqry.service.impl
|
||||
* @packageName : com.itn.mjonApi.mjon.api.msg.inqry.service.impl
|
||||
* @fileName : PriceServiceImpl.java
|
||||
* @author : JunHo Lee
|
||||
* @date : 2023.05.15
|
||||
@ -1,9 +1,9 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.web;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.web;
|
||||
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.HstryService;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.HstryDetailVO;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.HstryVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.service.HstryService;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.HstryDetailVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.HstryVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@ -24,7 +24,6 @@ import org.springframework.web.client.RestTemplate;
|
||||
* 2023-02-15 hylee 최초 생성
|
||||
*/
|
||||
|
||||
// 치환문자가 있으면 , => §로 치환
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@ -1,4 +1,4 @@
|
||||
package com.itn.mjonApi.mjon.api.inqry.web;
|
||||
package com.itn.mjonApi.mjon.api.msg.inqry.web;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@ -6,11 +6,11 @@ import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceVO;
|
||||
import com.itn.mjonApi.mjon.api.inqry.service.PriceService;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.PriceVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.service.PriceService;
|
||||
|
||||
/**
|
||||
* @packageName : com.itn.mjonApi.mjon.api.inqry.web
|
||||
* @packageName : com.itn.mjonApi.mjon.api.msg.inqry.web
|
||||
* @fileName : PriceRestController.java
|
||||
* @author : JunHo Lee
|
||||
* @date : 2023.05.15
|
||||
@ -1,10 +1,10 @@
|
||||
package com.itn.mjonApi.mjon.api.send.mapper;
|
||||
package com.itn.mjonApi.mjon.api.msg.send.mapper;
|
||||
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgRequestVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.mapper.domain.MsgRequestVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* packageName : com.itn.mjonApi.mjon.api.send.mapper.domain
|
||||
* packageName : com.itn.mjonApi.mjon.api.msg.send.mapper.domain
|
||||
* fileName : SendMapper
|
||||
* author : hylee
|
||||
* date : 2023-05-19
|
||||
@ -1,4 +1,4 @@
|
||||
package com.itn.mjonApi.mjon.api.send.mapper.domain;
|
||||
package com.itn.mjonApi.mjon.api.msg.send.mapper.domain;
|
||||
|
||||
|
||||
import lombok.Getter;
|
||||
@ -1,11 +1,10 @@
|
||||
package com.itn.mjonApi.mjon.api.send.mapper.domain;
|
||||
package com.itn.mjonApi.mjon.api.msg.send.mapper.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.*;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
||||
/**
|
||||
* packageName : com.itn.mjonApi.cmn.msg
|
||||
@ -1,4 +1,4 @@
|
||||
package com.itn.mjonApi.mjon.api.send.mapper.domain;
|
||||
package com.itn.mjonApi.mjon.api.msg.send.mapper.domain;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@ -6,7 +6,7 @@ import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* packageName : com.itn.mjonApi.mjon.api.send.mapper.domain
|
||||
* packageName : com.itn.mjonApi.mjon.api.msg.send.mapper.domain
|
||||
* fileName : MjonMsgVO
|
||||
* author : hylee
|
||||
* date : 2023-05-09
|
||||
@ -1,4 +1,4 @@
|
||||
package com.itn.mjonApi.mjon.api.send.mapper.domain;
|
||||
package com.itn.mjonApi.mjon.api.msg.send.mapper.domain;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@ -8,7 +8,7 @@ import lombok.Setter;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* packageName : com.itn.mjonApi.mjon.api.send.mapper.domain
|
||||
* packageName : com.itn.mjonApi.mjon.api.msg.send.mapper.domain
|
||||
* fileName : MjonMsgVO
|
||||
* author : hylee
|
||||
* date : 2023-05-23
|
||||
@ -1,4 +1,4 @@
|
||||
package com.itn.mjonApi.mjon.api.send.mapper.domain;
|
||||
package com.itn.mjonApi.mjon.api.msg.send.mapper.domain;
|
||||
|
||||
import com.itn.mjonApi.cmn.msg.StatMsg;
|
||||
import lombok.*;
|
||||
@ -1,8 +1,8 @@
|
||||
package com.itn.mjonApi.mjon.api.send.service;
|
||||
package com.itn.mjonApi.mjon.api.msg.send.service;
|
||||
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgRequestVO;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgsRequestVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.mapper.domain.MsgRequestVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.mapper.domain.MsgsRequestVO;
|
||||
|
||||
public interface SendService {
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
package com.itn.mjonApi.mjon.api.send.service.impl;
|
||||
package com.itn.mjonApi.mjon.api.msg.send.service.impl;
|
||||
|
||||
import com.itn.mjonApi.cmn.apiServer.ApiService;
|
||||
import com.itn.mjonApi.cmn.model.Price;
|
||||
import com.itn.mjonApi.cmn.msg.FailRestResponse;
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.cmn.msg.StatMsg;
|
||||
import com.itn.mjonApi.mjon.api.inqry.mapper.PriceMapper;
|
||||
import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceVO;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.SendMapper;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.*;
|
||||
import com.itn.mjonApi.mjon.api.send.service.SendService;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.PriceMapper;
|
||||
import com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.PriceVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.mapper.SendMapper;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.mapper.domain.*;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.service.SendService;
|
||||
import com.itn.mjonApi.util.MunjaUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.catalina.connector.Response;
|
||||
@ -17,7 +17,6 @@ import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.lang.reflect.Field;
|
||||
@ -1,9 +1,9 @@
|
||||
package com.itn.mjonApi.mjon.api.send.web;
|
||||
package com.itn.mjonApi.mjon.api.msg.send.web;
|
||||
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgRequestVO;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgsRequestVO;
|
||||
import com.itn.mjonApi.mjon.api.send.service.SendService;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.mapper.domain.MsgRequestVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.mapper.domain.MsgsRequestVO;
|
||||
import com.itn.mjonApi.mjon.api.msg.send.service.SendService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@ -3,10 +3,6 @@ package com.itn.mjonApi.util;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import com.itn.mjonApi.cmn.msg.RestResponse;
|
||||
import com.itn.mjonApi.mjon.api.access.mapper.domain.AccessKeyVO;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgRequestVO;
|
||||
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgsRequestVO;
|
||||
|
||||
/**
|
||||
* packageName : com.itn.mjonApi.util
|
||||
@ -21,45 +17,10 @@ import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgsRequestVO;
|
||||
*/
|
||||
public class ApiObjectUtil {
|
||||
|
||||
private static final ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule());
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @description : VO를 json으로 변환
|
||||
* @param restResponse
|
||||
* @return String
|
||||
* @throws JsonProcessingException
|
||||
*/
|
||||
public static String getRestResponseToJsonString(RestResponse restResponse) throws JsonProcessingException {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
// .registerModule(new JavaTimeModule()) : LocalDateTime을 json으로 변환하기 위함
|
||||
return objectMapper.registerModule(new JavaTimeModule()).writeValueAsString(restResponse);
|
||||
public static String toJson(Object obj) throws JsonProcessingException {
|
||||
if (obj == null) return null;
|
||||
return objectMapper.writeValueAsString(obj);
|
||||
}
|
||||
public static String getMsgsRequestVOToJsonString(MsgsRequestVO msgsRequestVO) throws JsonProcessingException {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
// .registerModule(new JavaTimeModule()) : LocalDateTime을 json으로 변환하기 위함
|
||||
return objectMapper.registerModule(new JavaTimeModule()).writeValueAsString(msgsRequestVO);
|
||||
}
|
||||
public static String getMsgRequestVOToJsonString(MsgRequestVO msgRequestVO) throws JsonProcessingException {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
// .registerModule(new JavaTimeModule()) : LocalDateTime을 json으로 변환하기 위함
|
||||
return objectMapper.registerModule(new JavaTimeModule()).writeValueAsString(msgRequestVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description : VO를 json으로 변환
|
||||
* @param accessKeyVO
|
||||
* @return String
|
||||
* @throws JsonProcessingException
|
||||
*/
|
||||
public static String getAccessKeyVOToJsonString(AccessKeyVO accessKeyVO) throws JsonProcessingException {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
// .registerModule(new JavaTimeModule()) : LocalDateTime을 json으로 변환하기 위함
|
||||
return objectMapper.registerModule(new JavaTimeModule()).writeValueAsString(accessKeyVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,9 +4,11 @@ spring.profiles.active=dev
|
||||
|
||||
|
||||
# mybatis setting
|
||||
mybatis.config-location=classpath:mybatis-config.xml
|
||||
mybatis.mapper-locations=classpath:mapper/**/*.xml
|
||||
# model camel case set
|
||||
mybatis.configuration.map-underscore-to-camel-case=true
|
||||
|
||||
spring.jackson.default-property-inclusion=non_null
|
||||
|
||||
|
||||
#sql \ucd9c\ub825 log \uc124\uc815
|
||||
logging.level.jdbc.sqlonly=off
|
||||
@ -34,4 +36,9 @@ spring.servlet.multipart.max-request-size=20MB
|
||||
#management.endpoints.web.exposure.include=*
|
||||
#management.endpoint.health.show-details=always
|
||||
#
|
||||
Ganpandaup.estimate.template.url=https://www.munjaon.co.kr/publish/email_form_ganpandaum_contact.html
|
||||
Ganpandaup.estimate.template.url=https://www.munjaon.co.kr/publish/email_form_ganpandaum_contact.html
|
||||
|
||||
|
||||
biz.root.url=https://kapi.ppurio.com
|
||||
biz.api.key=dheBWCONP6J5
|
||||
biz.id=itn0202
|
||||
29
src/main/resources/mapper/api/kakao/inqry/InqryMapper.xml
Normal file
29
src/main/resources/mapper/api/kakao/inqry/InqryMapper.xml
Normal file
@ -0,0 +1,29 @@
|
||||
<?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.itn.mjonApi.mjon.api.kakao.inqry.mapper.InqryMapper">
|
||||
|
||||
<select id="getChnlIds" resultType="MjKakaoProfileInfoVO">
|
||||
|
||||
SELECT
|
||||
-- USER_ID
|
||||
-- , PROFILE_ID
|
||||
SENDER_KEY
|
||||
-- , TOKEN
|
||||
, PHONE_NUMBER
|
||||
, YELLOW_ID
|
||||
-- , CATEGORY_CODE
|
||||
-- , CATEGORY_NAME
|
||||
, FRST_REGIST_PNTTM
|
||||
, FRST_REGISTER_ID
|
||||
-- , LAST_UPDT_PNTTM
|
||||
-- , LAST_UPDUSR_ID
|
||||
-- , DELETE_YN
|
||||
FROM mj_kakao_profile_info
|
||||
WHERE DELETE_YN = 'N'
|
||||
AND USER_ID = #{mberId}
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
@ -3,9 +3,9 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.itn.mjonApi.mjon.api.inqry.mapper.HstryMapper">
|
||||
<mapper namespace="com.itn.mjonApi.mjon.api.msg.inqry.mapper.HstryMapper">
|
||||
|
||||
<select id="selectApiInqryHstry" resultType="com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.MjonResponseVO">
|
||||
<select id="selectApiInqryHstry" resultType="com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.MjonResponseVO">
|
||||
|
||||
/* 문자온 발송결과 페이지 쿼리를 그대로 사용함 - http://localhost:9080/web/mjon/msgsent/selectMsgSentView.do */
|
||||
SELECT
|
||||
@ -336,7 +336,7 @@
|
||||
|
||||
|
||||
<select id="selectApiInqryHstryDetail"
|
||||
resultType="com.itn.mjonApi.mjon.api.inqry.service.mapper.domain.MjonResponseVO"
|
||||
resultType="com.itn.mjonApi.mjon.api.msg.inqry.mapper.domain.MjonResponseVO"
|
||||
>
|
||||
|
||||
/* 문자온 발송결과 페이지 실패 건수 팝업을 변형해서 사용함 - http://localhost:9080/web/mjon/msgsent/selectMsgSFDetailListAjax.do */
|
||||
@ -3,7 +3,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.itn.mjonApi.mjon.api.inqry.mapper.PriceMapper">
|
||||
<mapper namespace="com.itn.mjonApi.mjon.api.msg.inqry.mapper.PriceMapper">
|
||||
|
||||
<select id="selectMberMoney"
|
||||
resultType="double"
|
||||
@ -3,7 +3,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.itn.mjonApi.mjon.api.send.mapper.SendMapper">
|
||||
<mapper namespace="com.itn.mjonApi.mjon.api.msg.send.mapper.SendMapper">
|
||||
|
||||
<select id="findByCallFrom" resultType="boolean">
|
||||
SELECT IF(COUNT(*), 1, 0)
|
||||
14
src/main/resources/mybatis-config.xml
Normal file
14
src/main/resources/mybatis-config.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE configuration
|
||||
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-config.dtd">
|
||||
|
||||
<configuration>
|
||||
<settings>
|
||||
<setting name="mapUnderscoreToCamelCase" value="true"/>
|
||||
</settings>
|
||||
|
||||
<typeAliases>
|
||||
<package name="com.itn.mjonApi.mjon.api.kakao.inqry.mapper.domain"/>
|
||||
</typeAliases>
|
||||
</configuration>
|
||||
Loading…
Reference in New Issue
Block a user