refactor: restructure MCP tools without Controller layer, using UseCase pattern per Glow standards
Some checks failed
Deploy to OCIWP / deploy (push) Has been cancelled

This commit is contained in:
jade
2026-07-25 01:13:25 +09:00
parent 994f5b4348
commit 4dcc5a2978
71 changed files with 199 additions and 199 deletions

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import lombok.Builder;
import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import lombok.Builder;
import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import lombok.Builder;
import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import lombok.Builder;
import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import lombok.Builder;
import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import lombok.Builder;
import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import lombok.Builder;
import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import lombok.Builder;
import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import lombok.Builder;
import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.shinhanlife.glow.GlowMciFieldInfo;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import io.shinhanlife.glow.GlowMciFieldInfo;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.shinhanlife.glow.GlowTrgmField;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.common.dto;
import lombok.Builder;
import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.infra.itrf.mci.sample.io;
package io.shinhanlife.dap.mcc.biz.common.io;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.infra.itrf.mci.sample.io;
package io.shinhanlife.dap.mcc.biz.common.io;
import lombok.Data;

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.common.usecase;
import io.shinhanlife.dap.mcc.biz.common.dto.*;
public interface BalanceUseCase {
Object execute(BalanceRequest req);
}

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.common.usecase;
import io.shinhanlife.dap.mcc.biz.common.dto.*;
public interface BillingProcessUseCase {
Object getStatus(BillingStatusRequest req);
}

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.common.usecase;
import io.shinhanlife.dap.mcc.biz.common.dto.*;
public interface BondIssueUseCase {
Object check(BondCheckRequest req);
}

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.common.usecase;
import io.shinhanlife.dap.mcc.biz.common.dto.*;
public interface CommonUtilityUseCase {
Object registerVacation(VacationRegisterRequest req);
}

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.common.usecase;
import io.shinhanlife.dap.mcc.biz.common.dto.*;
public interface ContractInquiryUseCase {
Object getStatus(ContractStatusRequest req);
}

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.common.usecase;
import io.shinhanlife.dap.mcc.biz.common.dto.*;
public interface CustomerInfoUseCase {
Object getGrade(CustomerGradeRequest req);
}

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.common.usecase;
import io.shinhanlife.dap.mcc.biz.common.dto.*;
public interface SampleMciToolUseCase {
Object inquiryCustomerInfo(io.shinhanlife.dap.mcc.biz.common.usecase.impl.SampleMciToolUseCaseImpl.SampleMciRequest req);
}

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.common.usecase;
import io.shinhanlife.dap.mcc.biz.common.dto.*;
public interface SampleStringToolUseCase {
Object execute(SampleStringRequest req);
}

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.common.usecase;
import io.shinhanlife.dap.mcc.biz.common.dto.*;
public interface TemplateUtilityUseCase {
java.util.Map<String, Object> getTemplateFileUrl(TemplateDownloadRequest req);
}

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.common.usecase.impl;
/**
@@ -17,9 +17,9 @@ package io.shinhanlife.dap.mcc.service.impl;
*/
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.BalanceService;
import io.shinhanlife.dap.mcc.biz.common.usecase.BalanceUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.BalanceRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.BalanceRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -28,7 +28,7 @@ import java.util.Map;
@Slf4j
@Service
@McpTool(routingType = "MCI", categoryKey = "common")
public class BalanceServiceImpl extends AbstractMcpToolService implements BalanceService {
public class BalanceUseCaseImpl extends AbstractMcpToolService implements BalanceUseCase {
@McpFunction(register = false, displayName = "balance 툴", name = "balance",
description = "고객의 계좌 잔액을 조회합니다.",

View File

@@ -1,13 +1,13 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.common.usecase.impl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.BillingProcessService;
import io.shinhanlife.dap.mcc.biz.common.usecase.BillingProcessUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.BillingProcessRequest;
import io.shinhanlife.dap.mcc.dto.BillingStatusRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.BillingProcessRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.BillingStatusRequest;
import java.util.HashMap;
import java.util.Map;
@@ -31,7 +31,7 @@ import java.util.Map;
* </pre>
*/
@lombok.extern.slf4j.Slf4j
public class BillingProcessServiceImpl extends AbstractMcpToolService implements BillingProcessService {
public class BillingProcessUseCaseImpl extends AbstractMcpToolService implements BillingProcessUseCase {
@McpFunction(register = false, displayName = "status 툴", name = "status", description = "청구심사 상태 조회", prompt = "현재 접수된 청구건 상태를 알려줘.", mappingId = "BILL_001")
@Override

View File

@@ -1,11 +1,11 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.common.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.BondIssueService;
import io.shinhanlife.dap.mcc.biz.common.usecase.BondIssueUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.BondCheckRequest;
import io.shinhanlife.dap.mcc.dto.BondIssueRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.BondCheckRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.BondIssueRequest;
@McpTool(
routingType = "EAI",
@@ -25,7 +25,7 @@ import io.shinhanlife.dap.mcc.dto.BondIssueRequest;
*
* </pre>
*/
public class BondIssueServiceImpl extends AbstractMcpToolService implements BondIssueService {
public class BondIssueUseCaseImpl extends AbstractMcpToolService implements BondIssueUseCase {
@McpFunction(displayName = "check 툴", name = "check", register = false, description = "발행 가능 여부 조회 테스트", prompt = "디지털 증권 발행 한도가 충분한지 확인해줘.", mappingId = "BOND_001")
@Override

View File

@@ -1,11 +1,11 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.common.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.CommonUtilityService;
import io.shinhanlife.dap.mcc.biz.common.usecase.CommonUtilityUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.LeaveCountRequest;
import io.shinhanlife.dap.mcc.dto.VacationRegisterRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.LeaveCountRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.VacationRegisterRequest;
@McpTool(
routingType = "HTTP",
@@ -25,7 +25,7 @@ import io.shinhanlife.dap.mcc.dto.VacationRegisterRequest;
*
* </pre>
*/
public class CommonUtilityServiceImpl extends AbstractMcpToolService implements CommonUtilityService {
public class CommonUtilityUseCaseImpl extends AbstractMcpToolService implements CommonUtilityUseCase {
@McpFunction(register = false, displayName = "register_vacation 툴", name = "register_vacation", description = "휴가 등록", prompt = "내일 하루 연차 휴가를 등록해줘.", mappingId = "HR_VAC_01")
@Override

View File

@@ -1,11 +1,11 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.common.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.ContractInquiryService;
import io.shinhanlife.dap.mcc.biz.common.usecase.ContractInquiryUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.ContractDetailRequest;
import io.shinhanlife.dap.mcc.dto.ContractStatusRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.ContractDetailRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.ContractStatusRequest;
@McpTool(
routingType = "HTTP",
@@ -25,7 +25,7 @@ import io.shinhanlife.dap.mcc.dto.ContractStatusRequest;
*
* </pre>
*/
public class ContractInquiryServiceImpl extends AbstractMcpToolService implements ContractInquiryService {
public class ContractInquiryUseCaseImpl extends AbstractMcpToolService implements ContractInquiryUseCase {
@McpFunction(register = false, displayName = "contract_status 툴", name = "contract_status", description = "계약상태 조회", prompt = "김신한 고객의 현재 계약 상태를 조회해줘.", mappingId = "CNTR_001")
@Override

View File

@@ -1,11 +1,11 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.common.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.CustomerInfoService;
import io.shinhanlife.dap.mcc.biz.common.usecase.CustomerInfoUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.CustomerDetailRequest;
import io.shinhanlife.dap.mcc.dto.CustomerGradeRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.CustomerDetailRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.CustomerGradeRequest;
@McpTool(
routingType = "TCP",
@@ -25,7 +25,7 @@ import io.shinhanlife.dap.mcc.dto.CustomerGradeRequest;
*
* </pre>
*/
public class CustomerInfoServiceImpl extends AbstractMcpToolService implements CustomerInfoService {
public class CustomerInfoUseCaseImpl extends AbstractMcpToolService implements CustomerInfoUseCase {
@McpFunction(register = false, displayName = "grade 툴", name = "grade", description = "고객등급 조회", prompt = "이 고객의 VIP 등급을 조회해줘.", mappingId = "CRM_001")
@Override

View File

@@ -1,12 +1,12 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.common.usecase.impl;
import io.shinhanlife.dap.mcc.infra.itrf.mci.sample.io.CUST_INQ_001_I;
import io.shinhanlife.dap.mcc.biz.common.io.CUST_INQ_001_I;
import io.shinhanlife.dap.lib.adapter.sender.ShinhanMciSender;
import io.shinhanlife.dap.lib.integration.mci.dto.MciRequestWrapper;
import io.shinhanlife.dap.lib.integration.mci.dto.ShinhanCommonHeaderDto;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.SampleMciToolService;
import io.shinhanlife.dap.mcc.biz.common.usecase.SampleMciToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import lombok.Data;
import lombok.RequiredArgsConstructor;
@@ -30,7 +30,7 @@ import org.springframework.beans.factory.annotation.Value;
@Slf4j
@RequiredArgsConstructor
@McpTool(routingType = "MCI", categoryKey = "other") // MCP Tool 등록 어노테이션
public class SampleMciToolServiceImpl implements SampleMciToolService {
public class SampleMciToolUseCaseImpl implements SampleMciToolUseCase {
// EIMS/MCI 발송을 담당하는 Sender 주입
private final ShinhanMciSender shinhanMciSender;

View File

@@ -1,11 +1,11 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.common.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.SampleStringToolService;
import io.shinhanlife.dap.mcc.biz.common.usecase.SampleStringToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.MciSampleStringResponse;
import io.shinhanlife.dap.mcc.dto.SampleStringRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.MciSampleStringResponse;
import io.shinhanlife.dap.mcc.biz.common.dto.SampleStringRequest;
import io.shinhanlife.glow.util.GlowMciParser;
import org.springframework.stereotype.Service;
@@ -31,7 +31,7 @@ import java.util.Map;
routingType = "MCI",
categoryKey = "common"
)
public class SampleStringToolServiceImpl extends AbstractMcpToolService implements SampleStringToolService {
public class SampleStringToolUseCaseImpl extends AbstractMcpToolService implements SampleStringToolUseCase {
@McpFunction(register = false, displayName = "get_sample_string 툴", name = "get_sample_string",
description = "MCI String 버전과 GlowTrgmField 파싱을 테스트하는 샘플 툴입니다.",

View File

@@ -1,10 +1,10 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.common.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.TemplateUtilityService;
import io.shinhanlife.dap.mcc.biz.common.usecase.TemplateUtilityUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.TemplateDownloadRequest;
import io.shinhanlife.dap.mcc.biz.common.dto.TemplateDownloadRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -32,7 +32,7 @@ import java.util.Map;
*
* </pre>
*/
public class TemplateUtilityServiceImpl extends AbstractMcpToolService implements TemplateUtilityService {
public class TemplateUtilityUseCaseImpl extends AbstractMcpToolService implements TemplateUtilityUseCase {
@Override
@McpFunction(register = false, displayName = "get_template_file_url 툴", name = "get_template_file_url",

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.other.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io;
package io.shinhanlife.dap.mcc.biz.other.io;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io;
package io.shinhanlife.dap.mcc.biz.other.io;
import lombok.Data;

View File

@@ -1,9 +1,9 @@
package io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a;
package io.shinhanlife.dap.mcc.biz.other.io;
import io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io.CLCNNB00001_I;
import io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io.CLCNNB00001_O;
import io.shinhanlife.dap.mcc.biz.other.io.CLCNNB00001_I;
import io.shinhanlife.dap.mcc.biz.other.io.CLCNNB00001_O;
import io.shinhanlife.dap.lib.integration.mci.component.AxhubMciComponent;
import io.shinhanlife.dap.mcc.dto.Onnba3011Request;
import io.shinhanlife.dap.mcc.biz.other.dto.Onnba3011Request;
import io.shinhanlife.glow.communication.dto.Transfer;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.other.usecase;
import io.shinhanlife.dap.mcc.biz.other.dto.*;
public interface OnnbaMciToolUseCase {
Object callOnnba3011(Onnba3011Request req);
}

View File

@@ -1,11 +1,11 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.other.usecase.impl;
import io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.MciCfpaClient;
import io.shinhanlife.dap.mcc.biz.other.io.MciCfpaClient;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.OnnbaMciToolService;
import io.shinhanlife.dap.mcc.biz.other.usecase.OnnbaMciToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.Onnba3011Request;
import io.shinhanlife.dap.mcc.biz.other.dto.Onnba3011Request;
import io.shinhanlife.glow.communication.dto.Transfer;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -29,7 +29,7 @@ import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
@McpTool(routingType = "MCI", categoryKey = "other")
public class OnnbaMciToolServiceImpl implements OnnbaMciToolService {
public class OnnbaMciToolUseCaseImpl implements OnnbaMciToolUseCase {
private static final String INTERFACE_CODE_3011 = "CLCNNB00001";

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.sample.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.sample.dto;
/**
* @package io.shinhanlife.dap.mcc.dto

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.sample.usecase;
import io.shinhanlife.dap.mcc.biz.sample.dto.*;
public interface DailyQuoteToolUseCase {
io.shinhanlife.dap.mcc.biz.sample.usecase.impl.DailyQuoteToolUseCaseImpl.DailyQuoteResponse execute(io.shinhanlife.dap.mcc.biz.sample.usecase.impl.DailyQuoteToolUseCaseImpl.DailyQuoteRequest req);
}

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.sample.usecase;
import io.shinhanlife.dap.mcc.biz.sample.dto.*;
public interface ExchangeRateToolUseCase {
io.shinhanlife.dap.mcc.biz.sample.usecase.impl.ExchangeRateToolUseCaseImpl.ExchangeRateResponse execute(io.shinhanlife.dap.mcc.biz.sample.usecase.impl.ExchangeRateToolUseCaseImpl.ExchangeRateRequest req);
}

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.sample.usecase;
import io.shinhanlife.dap.mcc.biz.sample.dto.*;
public interface WeatherToolUseCase {
WeatherResponse execute(WeatherRequest req);
}

View File

@@ -1,8 +1,8 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.sample.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.DailyQuoteToolService;
import io.shinhanlife.dap.mcc.biz.sample.usecase.DailyQuoteToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -30,7 +30,7 @@ import java.util.Random;
routingType = "DIRECT",
categoryKey = "sample"
)
public class DailyQuoteToolServiceImpl extends AbstractMcpToolService implements DailyQuoteToolService {
public class DailyQuoteToolUseCaseImpl extends AbstractMcpToolService implements DailyQuoteToolUseCase {
public record DailyQuoteRequest(String category) {}
public record DailyQuoteResponse(String quote, String author) {}

View File

@@ -1,8 +1,8 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.sample.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.ExchangeRateToolService;
import io.shinhanlife.dap.mcc.biz.sample.usecase.ExchangeRateToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -28,14 +28,14 @@ import org.springframework.web.client.RestClient;
routingType = "DIRECT",
categoryKey = "sample"
)
public class ExchangeRateToolServiceImpl extends AbstractMcpToolService implements ExchangeRateToolService {
public class ExchangeRateToolUseCaseImpl extends AbstractMcpToolService implements ExchangeRateToolUseCase {
public record ExchangeRateRequest(String currencyCode) {}
public record ExchangeRateResponse(String baseCurrency, String targetCurrency, double rate) {}
private final RestClient restClient;
public ExchangeRateToolServiceImpl() {
public ExchangeRateToolUseCaseImpl() {
this.restClient = RestClient.create();
}

View File

@@ -1,13 +1,13 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.sample.usecase.impl;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.WeatherToolService;
import io.shinhanlife.dap.mcc.biz.sample.usecase.WeatherToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.WeatherRequest;
import io.shinhanlife.dap.mcc.dto.WeatherResponse;
import io.shinhanlife.dap.mcc.biz.sample.dto.WeatherRequest;
import io.shinhanlife.dap.mcc.biz.sample.dto.WeatherResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestClient;
@@ -35,11 +35,11 @@ import java.time.format.DateTimeFormatter;
routingType = "DIRECT",
categoryKey = "sample"
)
public class WeatherToolServiceImpl extends AbstractMcpToolService implements WeatherToolService {
public class WeatherToolUseCaseImpl extends AbstractMcpToolService implements WeatherToolUseCase {
private final RestClient restClient;
public WeatherToolServiceImpl() {
public WeatherToolUseCaseImpl() {
this.restClient = RestClient.create();
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface BalanceService {
Object execute(BalanceRequest req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface BillingProcessService {
Object getStatus(BillingStatusRequest req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface BondIssueService {
Object check(BondCheckRequest req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface CommonUtilityService {
Object registerVacation(VacationRegisterRequest req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface ContractInquiryService {
Object getStatus(ContractStatusRequest req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface CustomerInfoService {
Object getGrade(CustomerGradeRequest req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface DailyQuoteToolService {
io.shinhanlife.dap.mcc.service.impl.DailyQuoteToolServiceImpl.DailyQuoteResponse execute(io.shinhanlife.dap.mcc.service.impl.DailyQuoteToolServiceImpl.DailyQuoteRequest req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface ExchangeRateToolService {
io.shinhanlife.dap.mcc.service.impl.ExchangeRateToolServiceImpl.ExchangeRateResponse execute(io.shinhanlife.dap.mcc.service.impl.ExchangeRateToolServiceImpl.ExchangeRateRequest req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface OnnbaMciToolService {
Object callOnnba3011(Onnba3011Request req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface SampleMciToolService {
Object inquiryCustomerInfo(io.shinhanlife.dap.mcc.service.impl.SampleMciToolServiceImpl.SampleMciRequest req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface SampleStringToolService {
Object execute(SampleStringRequest req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface TemplateUtilityService {
java.util.Map<String, Object> getTemplateFileUrl(TemplateDownloadRequest req);
}

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface WeatherToolService {
WeatherResponse execute(WeatherRequest req);
}

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.converter;
package io.shinhanlife.dap.mcc.biz.sms.converter;
/**
@@ -15,8 +15,8 @@ package io.shinhanlife.dap.mcc.converter;
*
* </pre>
*/
import io.shinhanlife.dap.mcc.dto.SmsSendRequest;
import io.shinhanlife.dap.mcc.legacy.SmsLegacyRequest;
import io.shinhanlife.dap.mcc.biz.sms.dto.SmsSendRequest;
import io.shinhanlife.dap.mcc.biz.sms.legacy.SmsLegacyRequest;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.dto;
package io.shinhanlife.dap.mcc.biz.sms.dto;
import lombok.Builder;
import lombok.NoArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.legacy;
package io.shinhanlife.dap.mcc.biz.sms.legacy;
/**

View File

@@ -0,0 +1,7 @@
package io.shinhanlife.dap.mcc.biz.sms.usecase;
import io.shinhanlife.dap.mcc.biz.sms.dto.*;
public interface SmsToolUseCase {
Object sendSms(SmsSendRequest req);
}

View File

@@ -1,12 +1,12 @@
package io.shinhanlife.dap.mcc.service.impl;
package io.shinhanlife.dap.mcc.biz.sms.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.SmsToolService;
import io.shinhanlife.dap.mcc.biz.sms.usecase.SmsToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.converter.SmsLegacyConverter;
import io.shinhanlife.dap.mcc.dto.SmsSendRequest;
import io.shinhanlife.dap.mcc.legacy.SmsLegacyRequest;
import io.shinhanlife.dap.mcc.biz.sms.converter.SmsLegacyConverter;
import io.shinhanlife.dap.mcc.biz.sms.dto.SmsSendRequest;
import io.shinhanlife.dap.mcc.biz.sms.legacy.SmsLegacyRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -29,7 +29,7 @@ import java.util.Map;
@Slf4j
@RequiredArgsConstructor
@McpTool(routingType = "EAI", categoryKey = "notification")
public class SmsToolServiceImpl extends AbstractMcpToolService implements SmsToolService {
public class SmsToolUseCaseImpl extends AbstractMcpToolService implements SmsToolUseCase {
private final SmsLegacyConverter converter;

View File

@@ -1,7 +0,0 @@
package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface SmsToolService {
Object sendSms(SmsSendRequest req);
}

View File

@@ -20,8 +20,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
import org.springframework.cache.annotation.EnableCaching;
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib.adapter", "io.shinhanlife.dap.lib.mcp", "io.shinhanlife.dap.lib.config", "io.shinhanlife.dap.lib.integration"})
@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib.adapter", "io.shinhanlife.dap.lib.mcp", "io.shinhanlife.dap.lib.config", "io.shinhanlife.dap.lib.integration"})
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.common.adapter", "io.shinhanlife.dap.common.mcp", "io.shinhanlife.dap.common.config", "io.shinhanlife.dap.common.integration"})
@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.common.adapter", "io.shinhanlife.dap.common.mcp", "io.shinhanlife.dap.common.config", "io.shinhanlife.dap.common.integration"})
@EnableCaching
public class DapToolSmsApplication {
public static void main(String[] args) {