From e410b9b79b2e4011756e71ef5ebd237e40370d6d Mon Sep 17 00:00:00 2001 From: Rinjae Date: Thu, 20 Nov 2025 10:50:33 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B4=EB=A9=94=EC=9D=BC=20=EB=B0=9C?= =?UTF-8?q?=EC=86=A1=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- obp.http | 463 ++++++++++++++++++ .../com/eactive/ext/kjb/ums/EmailJob.java | 16 +- .../ext/kjb/ums/KjbEmailSendModule.java | 6 +- .../com/eactive/ext/kjb/ums/test/UmsTest.java | 75 ++- 4 files changed, 541 insertions(+), 19 deletions(-) create mode 100644 obp.http diff --git a/obp.http b/obp.http new file mode 100644 index 0000000..ce3ab3e --- /dev/null +++ b/obp.http @@ -0,0 +1,463 @@ +POST http://192.168.246.15:8181/api/billing/findBillingForCondition +Content-Type: application/json; charset=UTF-8 +x-obp-trust-system: APIMPT-0002-QVBJTVBULTAwMDI= +x-obp-partnercode: 100001-01 + +{ + "partnerCode": "000002-01", + "targetOnMonth": "202503" +} + + +### + + curl -X POST --location "http://192.168.246.15:8181/api/billing/billing/findBillingForCondition" \ + -H "Content-Type: application/json; charset=UTF-8" \ + -H "x-obp-trust-system: APIMPT-0002-QVBJTVBULTAwMDI=" \ + -H "x-obp-partnercode: 100001-01" \ + -d '{ + "partnerCode": "000002-01", + "targetOnMonth": "202510" + }' +POST http://192.168.246.15:8181/api/billing/findBillingForCondition +x-obp-trust-system: APIMPT-0002-QVBJTVBULTAwMDI= +x-obp-partnercode: 100001-01 +Content-Type: application/json; charset=UTF-8 + +{ + "partnerCode": "000002-01", + "targetOnMonth": "202503" +} + +### + + + + +{ + "billingId" : "001-20250401-060001-0001467", + "status" : "01", + "apiTotalValueSum" : 0.00, + "apiSum" : 100000.00, + "apiTotalValueSum2" : 0.00, + "apiSum2" : 100000.00, + "productTotalValueCountSum" : 0, + "productTotalValueAmountSum" : 0.00, + "productSum" : 600000.00, + "productTotalValueCountSum2" : 0, + "productTotalValueAmountSum2" : 0.00, + "productSum2" : 600000.00, + "totalValueCountSum" : 0.00, + "totalValueCountSum2" : 0.00, + "totalValueAmountSum" : 0.00, + "totalValueAmountSum2" : 0.00, + "sum" : 700000.00, + "sum2" : 700000.00, + "list" : [ { + "id" : "001-20250401-060001-0001469", + "billingId" : "001-20250401-060001-0001467", + "paymentTargetName" : "[계좌] 실지명의조회", + "paymentTargetType" : "01", + "paymentTargetId" : "001-20180918-085325-0000353", + "detailFeeType" : "11", + "revision" : 0, + "contractAccountId" : "001-20180430-104631-0798825", + "feeId" : "001-20201012-154617-0000969", + "feeDetailId" : "001-20221115-105403-0011851", + "bank" : "034", + "accountNo" : "1107617597186", + "valueDivision" : "02", + "value" : 100.00, + "minimumAmount" : 0.00, + "maximumAmount" : null, + "paymentBase" : "01", + "paymentBaseValue" : 1.00, + "paymentTiming" : "02", + "totalValue" : 0.00, + "withdrawalAmount" : 0.00, + "totalCount" : 0, + "revision2" : 0, + "totalValue2" : 0.00, + "value2" : 100.00, + "minimumAmount2" : 0.00, + "maximumAmount2" : null, + "changeReason2" : "system billing", + "withdrawalAmount2" : 0.00, + "totalCount2" : 0, + "detailFeeTypeName" : null, + "paymentBaseName" : "건", + "paymentTimingName" : "사후부과", + "valueDivisionName" : "금액", + "sum" : 0.00, + "sum2" : 0.00 + }, { + "id" : "001-20250401-060001-0001468", + "billingId" : "001-20250401-060001-0001467", + "paymentTargetName" : "예금주성명조회 API", + "paymentTargetType" : "01", + "paymentTargetId" : "001-20180419-200001-0000100", + "detailFeeType" : "11", + "revision" : 0, + "contractAccountId" : "001-20180430-104631-0798825", + "feeId" : "101-20180516-131549-0085992", + "feeDetailId" : "101-20180516-131549-0085993", + "bank" : "034", + "accountNo" : "1107617597186", + "valueDivision" : "02", + "value" : 100.00, + "minimumAmount" : 100000.00, + "maximumAmount" : null, + "paymentBase" : "01", + "paymentBaseValue" : 1.00, + "paymentTiming" : "02", + "totalValue" : 0.00, + "withdrawalAmount" : 100000.00, + "totalCount" : 0, + "revision2" : 0, + "totalValue2" : 0.00, + "value2" : 100.00, + "minimumAmount2" : 100000.00, + "maximumAmount2" : null, + "changeReason2" : "system billing", + "withdrawalAmount2" : 100000.00, + "totalCount2" : 0, + "detailFeeTypeName" : null, + "paymentBaseName" : "건", + "paymentTimingName" : "사후부과", + "valueDivisionName" : "금액", + "sum" : 100000.00, + "sum2" : 100000.00 + }, { + "id" : "001-20250401-060002-0001472", + "billingId" : "001-20250401-060001-0001467", + "paymentTargetName" : "P2P 가상계좌(투자자용) API", + "paymentTargetType" : "02", + "paymentTargetId" : "001-20171227-110000-0000003", + "detailFeeType" : "21", + "revision" : 0, + "contractAccountId" : "001-20180430-104631-0798825", + "feeId" : "101-20180516-131550-0085994", + "feeDetailId" : "101-20180516-131550-0085995", + "bank" : "034", + "accountNo" : "1107617597186", + "valueDivision" : "02", + "value" : 300.00, + "minimumAmount" : 200000.00, + "maximumAmount" : null, + "paymentBase" : "01", + "paymentBaseValue" : 1.00, + "paymentTiming" : "02", + "totalValue" : 0.00, + "withdrawalAmount" : 200000.00, + "totalCount" : 0, + "revision2" : 0, + "totalValue2" : 0.00, + "value2" : 300.00, + "minimumAmount2" : 200000.00, + "maximumAmount2" : null, + "changeReason2" : "system billing", + "withdrawalAmount2" : 200000.00, + "totalCount2" : 0, + "detailFeeTypeName" : "상품수수료", + "paymentBaseName" : "건", + "paymentTimingName" : "사후부과", + "valueDivisionName" : "금액", + "sum" : 200000.00, + "sum2" : 200000.00 + }, { + "id" : "001-20250401-060002-0001476", + "billingId" : "001-20250401-060001-0001467", + "paymentTargetName" : "P2P 지급이체(당행_프로모션) API", + "paymentTargetType" : "02", + "paymentTargetId" : "001-20171227-110000-0000007", + "detailFeeType" : "21", + "revision" : 0, + "contractAccountId" : "001-20180430-104631-0798825", + "feeId" : "101-20180516-131550-0085996", + "feeDetailId" : "101-20180516-131550-0085997", + "bank" : "034", + "accountNo" : "1107617597186", + "valueDivision" : "02", + "value" : 0.00, + "minimumAmount" : 0.00, + "maximumAmount" : null, + "paymentBase" : "01", + "paymentBaseValue" : 1.00, + "paymentTiming" : "02", + "totalValue" : 0.00, + "withdrawalAmount" : 0.00, + "totalCount" : 0, + "revision2" : 0, + "totalValue2" : 0.00, + "value2" : 0.00, + "minimumAmount2" : 0.00, + "maximumAmount2" : null, + "changeReason2" : "system billing", + "withdrawalAmount2" : 0.00, + "totalCount2" : 0, + "detailFeeTypeName" : "상품수수료", + "paymentBaseName" : "건", + "paymentTimingName" : "사후부과", + "valueDivisionName" : "금액", + "sum" : 0.00, + "sum2" : 0.00 + }, { + "id" : "001-20250401-060002-0001474", + "billingId" : "001-20250401-060001-0001467", + "paymentTargetName" : "P2P 지급이체 API(타행)", + "paymentTargetType" : "02", + "paymentTargetId" : "001-20171227-110000-0000005", + "detailFeeType" : "21", + "revision" : 0, + "contractAccountId" : "001-20180430-104631-0798825", + "feeId" : "101-20180516-131550-0085998", + "feeDetailId" : "101-20180516-131550-0085999", + "bank" : "034", + "accountNo" : "1107617597186", + "valueDivision" : "02", + "value" : 300.00, + "minimumAmount" : 200000.00, + "maximumAmount" : null, + "paymentBase" : "01", + "paymentBaseValue" : 1.00, + "paymentTiming" : "02", + "totalValue" : 0.00, + "withdrawalAmount" : 200000.00, + "totalCount" : 0, + "revision2" : 0, + "totalValue2" : 0.00, + "value2" : 300.00, + "minimumAmount2" : 200000.00, + "maximumAmount2" : null, + "changeReason2" : "system billing", + "withdrawalAmount2" : 200000.00, + "totalCount2" : 0, + "detailFeeTypeName" : "상품수수료", + "paymentBaseName" : "건", + "paymentTimingName" : "사후부과", + "valueDivisionName" : "금액", + "sum" : 200000.00, + "sum2" : 200000.00 + }, { + "id" : "001-20250401-060002-0001473", + "billingId" : "001-20250401-060001-0001467", + "paymentTargetName" : "P2P 지급이체(대출실행집금용) API", + "paymentTargetType" : "02", + "paymentTargetId" : "001-20171227-110000-0000004", + "detailFeeType" : "21", + "revision" : 0, + "contractAccountId" : "001-20180430-104631-0798825", + "feeId" : "101-20180516-131550-0086000", + "feeDetailId" : "101-20180516-131550-0086001", + "bank" : "034", + "accountNo" : "1107617597186", + "valueDivision" : "02", + "value" : 50.00, + "minimumAmount" : 0.00, + "maximumAmount" : null, + "paymentBase" : "01", + "paymentBaseValue" : 1.00, + "paymentTiming" : "02", + "totalValue" : 0.00, + "withdrawalAmount" : 0.00, + "totalCount" : 0, + "revision2" : 0, + "totalValue2" : 0.00, + "value2" : 50.00, + "minimumAmount2" : 0.00, + "maximumAmount2" : null, + "changeReason2" : "system billing", + "withdrawalAmount2" : 0.00, + "totalCount2" : 0, + "detailFeeTypeName" : "상품수수료", + "paymentBaseName" : "건", + "paymentTimingName" : "사후부과", + "valueDivisionName" : "금액", + "sum" : 0.00, + "sum2" : 0.00 + }, { + "id" : "001-20250401-060002-0001475", + "billingId" : "001-20250401-060001-0001467", + "paymentTargetName" : "P2P 투자금 관리 API", + "paymentTargetType" : "02", + "paymentTargetId" : "001-20171227-110000-0000006", + "detailFeeType" : "21", + "revision" : 0, + "contractAccountId" : "001-20180430-104631-0798825", + "feeId" : "101-20180516-131550-0086002", + "feeDetailId" : "001-20231128-161411-0007408", + "bank" : "034", + "accountNo" : "1107617597186", + "valueDivision" : "01", + "value" : 0.05, + "minimumAmount" : 200000.00, + "maximumAmount" : null, + "paymentBase" : "02", + "paymentBaseValue" : 1.00, + "paymentTiming" : "02", + "totalValue" : 0.00, + "withdrawalAmount" : 200000.00, + "totalCount" : 0, + "revision2" : 0, + "totalValue2" : 0.00, + "value2" : 0.05, + "minimumAmount2" : 200000.00, + "maximumAmount2" : null, + "changeReason2" : "system billing", + "withdrawalAmount2" : 200000.00, + "totalCount2" : 0, + "detailFeeTypeName" : "상품수수료", + "paymentBaseName" : "금액", + "paymentTimingName" : "사후부과", + "valueDivisionName" : "율", + "sum" : 200000.00, + "sum2" : 200000.00 + }, { + "id" : "001-20250401-060001-0001470", + "billingId" : "001-20250401-060001-0001467", + "paymentTargetName" : "입금이체(당행) API", + "paymentTargetType" : "02", + "paymentTargetId" : "001-20171227-110000-0000001", + "detailFeeType" : "21", + "revision" : 0, + "contractAccountId" : "001-20180430-104631-0798825", + "feeId" : "101-20180516-131550-0086004", + "feeDetailId" : "101-20180516-131550-0086005", + "bank" : "034", + "accountNo" : "1107617597186", + "valueDivision" : "02", + "value" : 50.00, + "minimumAmount" : 0.00, + "maximumAmount" : null, + "paymentBase" : "01", + "paymentBaseValue" : 1.00, + "paymentTiming" : "02", + "totalValue" : 0.00, + "withdrawalAmount" : 0.00, + "totalCount" : 0, + "revision2" : 0, + "totalValue2" : 0.00, + "value2" : 50.00, + "minimumAmount2" : 0.00, + "maximumAmount2" : null, + "changeReason2" : "system billing", + "withdrawalAmount2" : 0.00, + "totalCount2" : 0, + "detailFeeTypeName" : "상품수수료", + "paymentBaseName" : "건", + "paymentTimingName" : "사후부과", + "valueDivisionName" : "금액", + "sum" : 0.00, + "sum2" : 0.00 + }, { + "id" : "001-20250401-060001-0001471", + "billingId" : "001-20250401-060001-0001467", + "paymentTargetName" : "입금이체(타행) API", + "paymentTargetType" : "02", + "paymentTargetId" : "001-20171227-110000-0000002", + "detailFeeType" : "21", + "revision" : 0, + "contractAccountId" : "001-20180430-104631-0798825", + "feeId" : "101-20180516-131550-0086006", + "feeDetailId" : "101-20180516-131550-0086007", + "bank" : "034", + "accountNo" : "1107617597186", + "valueDivision" : "02", + "value" : 300.00, + "minimumAmount" : 0.00, + "maximumAmount" : null, + "paymentBase" : "01", + "paymentBaseValue" : 1.00, + "paymentTiming" : "02", + "totalValue" : 0.00, + "withdrawalAmount" : 0.00, + "totalCount" : 0, + "revision2" : 0, + "totalValue2" : 0.00, + "value2" : 300.00, + "minimumAmount2" : 0.00, + "maximumAmount2" : null, + "changeReason2" : "system billing", + "withdrawalAmount2" : 0.00, + "totalCount2" : 0, + "detailFeeTypeName" : "상품수수료", + "paymentBaseName" : "건", + "paymentTimingName" : "사후부과", + "valueDivisionName" : "금액", + "sum" : 0.00, + "sum2" : 0.00 + } ] +} + + + + + +$ curl -X POST --location "http://192.168.246.15:8181/api/billing/billing/findBillingForCondition/print" -H "Content-Type: application/json; charset=UTF-8" -H "x-obp-trust-system: APIMPT-0002-QVBJTVBULTAwMDI=" -H "x-obp-partnercode: 100001-01" -d '{ + "partnerCode": "000014-01", + "targetOnMonth": "202503" + }' +{ + "billingId" : "001-20250401-060004-0001512", + "status" : "01", + "apiTotalValueSum" : 0, + "apiSum" : 0, + "apiTotalValueSum2" : 0, + "apiSum2" : 0, + "productTotalValueCountSum" : 0, + "productTotalValueAmountSum" : 0, + "productSum" : 0, + "productTotalValueCountSum2" : 0, + "productTotalValueAmountSum2" : 0, + "productSum2" : 0, + "totalValueCountSum" : 0, + "totalValueCountSum2" : 0, + "totalValueAmountSum" : 0, + "totalValueAmountSum2" : 0, + "sum" : 0, + "sum2" : 0, + "list" : [ ] +} + + + + + +curl -X POST --location "http://192.168.246.15:8181/api/billing/billing/findBillingForCondition/print" -H "Content-Type: application/json; charset=UTF-8" -H "x-obp-trust-system: APIMPT-0002-QVBJTVBULTAwMDI=" -H "x-obp-partnercode: 100001-01" -d '{ +> "partnerCode": "000014-01", +> "targetOnMonth": "202503" +> }' +{ + "error" : { + "code" : "E.BILLING.NOT_PRINT_BEFORE_CONFIRM", + "message" : "확정이전에는 출력이 안됩니다." + } +} + + + + + + +weblogic@apigwd01(DEV-eAPIM-GW#1):[/weblogic] +$ curl -X POST --location "http://192.168.246.15:8181/api/billing/billing/findBillingForCondition/print" -H "Content-Type: application/json; charset=UTF-8" -H "x-obp-trust-system: APIMPT-0002-QVBJTVBULTAwMDI=" -H "x-obp-partnercode: 100001-01" -d '{ + "partnerCode": "000002-02", + "targetOnMonth": "201803" + }' +{ + "error" : { + "code" : "E.BILLING.NOT_PRINT_BEFORE_CONFIRM", + "message" : "확정이전에는 출력이 안됩니다." + } +} +weblogic@apigwd01(DEV-eAPIM-GW#1):[/weblogic] +$ curl -X POST --location "http://192.168.246.15:8181/api/billing/billing/findBillingForCondition/print" -H "Content-Type: application/json; charset=UTF-8" -H "x-obp-trust-system: APIMPT-0002-QVBJTVBULTAwMDI=" -H "x-obp-partnercode: 100001-01" -d '{ + "partnerCode": "000002-02", + "targetOnMonth": "199603" + }' +{ + "error" : { + "code" : "E.BILLING.NOT_PRINT_BEFORE_CONFIRM", + "message" : "확정이전에는 출력이 안됩니다." + } +} diff --git a/src/main/java/com/eactive/ext/kjb/ums/EmailJob.java b/src/main/java/com/eactive/ext/kjb/ums/EmailJob.java index 7a38cde..2366639 100644 --- a/src/main/java/com/eactive/ext/kjb/ums/EmailJob.java +++ b/src/main/java/com/eactive/ext/kjb/ums/EmailJob.java @@ -50,7 +50,8 @@ public class EmailJob { this.messageRequest = messageRequest; this.prop = prop; - String filename = messageRequest.getServiceId() + "_" + DateTimeFormatter.ofPattern("yyyyMMddHHmmss").format(now) + ".dat"; +// String filename = messageRequest.getServiceId() + "_" + DateTimeFormatter.ofPattern("yyyyMMddHHmmss").format(now) + ".dat"; + String filename = messageRequest.getServiceId() + "_" + DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(now) + ".dat"; this.eaiFilePath = Paths.get(prop.getUmsEaiBatchSendDir(), filename); this.backupFilePath = Paths.get(prop.getUmsEaiBatchBackupDir(), filename); this.failedFilePath = Paths.get(prop.getUmsEaiBatchBackupDir(), filename + ".failed"); @@ -240,11 +241,14 @@ public class EmailJob { jsonObject.addProperty("ENCKEY", ""); // 보안메일용으로 기입 불필요 Gson gson = new Gson(); - log.debug("Template string to json: {}", messageRequest.getMessage()); - JsonObject contentJSon = gson.fromJson(messageRequest.getMessage(), JsonObject.class); - contentJSon.entrySet().forEach(entry -> { - jsonObject.add(entry.getKey(), entry.getValue()); - }); + String message = messageRequest.getMessage(); + log.debug("Template string to json: {}", message); + if (StringUtils.isNotEmpty(message)) { + JsonObject contentJSon = gson.fromJson(message, JsonObject.class); + contentJSon.entrySet().forEach(entry -> { + jsonObject.add(entry.getKey(), entry.getValue()); + }); + } // jsonObject.addProperty("SUBJECT", messageRequest.getSubject()); // jsonObject.addProperty("MESSAGE", messageRequest.getMessage()); diff --git a/src/main/java/com/eactive/ext/kjb/ums/KjbEmailSendModule.java b/src/main/java/com/eactive/ext/kjb/ums/KjbEmailSendModule.java index 159f554..99cd61b 100644 --- a/src/main/java/com/eactive/ext/kjb/ums/KjbEmailSendModule.java +++ b/src/main/java/com/eactive/ext/kjb/ums/KjbEmailSendModule.java @@ -117,8 +117,10 @@ public class KjbEmailSendModule { public void sendEmail(MessageRequest messageRequest) throws KjbEaiBatchException { String serviceId = "UNKNOWN"; - serviceId = messageRequest.getMessageCode().getServiceId(); - messageRequest.setServiceId(serviceId); + if (StringUtils.isEmpty(messageRequest.getServiceId())) { + serviceId = messageRequest.getMessageCode().getServiceId(); + messageRequest.setServiceId(serviceId); + } if (StringUtils.isEmpty(serviceId)) { throw new IllegalArgumentException("MessageRequest MessageCode serviceId is required"); diff --git a/src/test/java/com/eactive/ext/kjb/ums/test/UmsTest.java b/src/test/java/com/eactive/ext/kjb/ums/test/UmsTest.java index 5015ef9..1ebe47a 100644 --- a/src/test/java/com/eactive/ext/kjb/ums/test/UmsTest.java +++ b/src/test/java/com/eactive/ext/kjb/ums/test/UmsTest.java @@ -14,6 +14,8 @@ import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import java.util.ArrayList; +import java.util.List; import java.util.UUID; @@ -31,6 +33,8 @@ public class UmsTest { prop.setUmsApiKey("7cca6d58-e4f7-474d-9edd-525806bc99ff"); if (OsUtil.isWindows()) { + prop.setEaiBatchUrl(""); + prop.setUmsHostUrl(""); prop.setUmsEaiBatchSendDir("c:\\kjb-logs\\sendmail\\snd"); prop.setUmsEaiBatchBackupDir("c:\\kjb-logs\\sendmail\\bak"); prop.setUmsEaiBatchErrorDir("c:\\kjb-logs\\sendmail\\error"); @@ -71,6 +75,9 @@ public class UmsTest { log.info("done"); } + /** + * :eapim-admin-kjb:test --tests "com.eactive.ext.kjb.ums.test.UmsTest.testEmail" + */ @Test public void testEmail() { Assumptions.assumeTrue( @@ -83,24 +90,70 @@ public class UmsTest { }); KjbEmailSendModule service = KjbEmailSendModule.getInstance(prop, null); - MessageRequest messageRequest = new MessageRequest(); - messageRequest.setId(UUID.randomUUID().toString()); - messageRequest.setMessageCode(MessageCode.USER_VERIFICATION_EMAIL); - messageRequest.setEmail("dearmai@dearmai.net"); - messageRequest.setUmsUid(UUID.randomUUID().toString()); - messageRequest.setUsername("김광은"); - messageRequest.setSubject("제목 - test"); - messageRequest.setMessage("{\"ATHN_NO\": \"543216\"}"); - messageRequest.setServiceId("FM_APIM001"); - log.info("MessageRequest - {}", messageRequest); + List requestList = new ArrayList<>(); + + + log.info("#1 요청 생성 - 이메일 인증"); + requestList.add(createMessageRequest(MessageCode.USER_VERIFICATION_EMAIL, "{\"ATHN_NO\": \"543216\"}")); + + log.info("#2 요청 생성 - 비밀번호 초기화"); + requestList.add(createMessageRequest(MessageCode.USER_PASSWORD_RESET, "{\"ATHN_NO\": \"new-password\"}")); + + log.info("#3 요청 생성 - 비밀번호 변경 완료"); + requestList.add(createMessageRequest(MessageCode.USER_PASSWORD_CHANGED, "")); + + log.info("#4 요청 생성 - 로그인 제한"); + requestList.add(createMessageRequest(MessageCode.USER_ACCOUNT_LOCKED, "{\"RJCT_RSN\": \"%reason%\"}")); + + log.info("#5 요청 생성 - 이메일 초대"); + requestList.add(createMessageRequest(MessageCode.USER_INVITATION, + "{\"CRPT_NM\":\"%corpName%\",\"MNGR_NM\":\"%managerName%\",\"CUST_ID\":\"%loginId%\",\"PSWD\":\"%tempPassword%\"}")); + + log.info("#6 요청 생성 - 이메일 초대 취소"); + requestList.add(createMessageRequest(MessageCode.USER_INVITATION_CANCELED, + "{\"CRPT_NM\":\"%corpName%\",\"MNGR_NM\":\"%managerName%\"}")); + + log.info("#7 요청 생성 - 법인관리자 및 법인 등록 승인"); + requestList.add(createMessageRequest(MessageCode.MANAGER_WITH_ORG_REGISTER_APPROVED, "")); + + log.info("#8 요청 생성 - 법인관리자 및 법인 등록 거절"); + requestList.add(createMessageRequest(MessageCode.MANAGER_WITH_ORG_REGISTER_REJECTED, "{\"RJCT_RSN\": \"%reason%\"}")); + + log.info("#9 요청 생성 - 앱 승인"); + requestList.add(createMessageRequest(MessageCode.APP_REGISTER_APPROVED, "{\"APP_IDNT_NM\": \"%appName%\"}")); + + log.info("#10 요청 생성 - 앱 승인 거절"); + requestList.add(createMessageRequest(MessageCode.APP_REGISTER_REJECTED, "{\"RJCT_RSN\": \"%reason%\"}")); + + try { - service.sendEmail(messageRequest); + for (int i = 0; i < requestList.size(); i++) { + MessageRequest request = requestList.get(i); + log.info("#{} - 메일 전송 시도 - {}", i + 1, request.getServiceId()); + service.sendEmail(request); + } } catch (KjbEaiBatchException e) { throw new RuntimeException(e); } log.info("done"); } + + private MessageRequest createMessageRequest(MessageCode messageCode, String message) { + MessageRequest messageRequest = new MessageRequest(); + messageRequest.setId(UUID.randomUUID().toString()); + messageRequest.setMessageCode(messageCode); + messageRequest.setEmail("dearmai@dearmai.net"); + messageRequest.setUmsUid(UUID.randomUUID().toString()); + messageRequest.setUsername("김광은"); + messageRequest.setSubject("제목 - test"); + messageRequest.setMessage(message); +// messageRequest.setServiceId(serviceId); + + log.info("MessageRequest - {}", messageRequest); + + return messageRequest; + } }