From 3b47bccccd36c57aa3932abebe72a3fe990c71d5 Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Thu, 9 Feb 2023 15:24:20 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=EB=B0=9C=EC=8B=A0=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EB=B0=98=EB=A0=A4=20=EB=A9=94=EC=9D=BC=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ez/api/sendNumMgt/SendNumMgtMapper.java | 2 + .../ez/api/sendNumMgt/SendNumMgtService.java | 76 ++++++++++++++++++- .../components/HubeasyApiComponents.java | 17 ++++- .../kr/co/uplus/ez/common/data/Const.java | 4 + src/main/resources/application-stg.yml | 1 + .../mysql/sendNumMgt/sendNumMgt-mapper.xml | 7 ++ 6 files changed, 103 insertions(+), 4 deletions(-) diff --git a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtMapper.java b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtMapper.java index 5303a6a..e785e8d 100644 --- a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtMapper.java +++ b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtMapper.java @@ -60,4 +60,6 @@ interface SendNumMgtMapper { InsertNumberFile selectDownload(InsertNumberFile insertNumberFile); List selectSndrnoListAll(InsertNumberReqDto insertNumberReqDto); + + String selectApiAuthToken(String apiApplicationId); } diff --git a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java index 0c2d358..7c84620 100644 --- a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java +++ b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java @@ -8,7 +8,9 @@ import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -16,6 +18,8 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import org.mybatis.spring.SqlSessionTemplate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; @@ -26,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; +import kr.co.uplus.ez.api.custMgt.CustMgtService; import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberReqDto; import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberResDto; import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumber; @@ -60,6 +65,7 @@ import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListResDto; import kr.co.uplus.ez.api.sendNumMgt.dto.UpdateApprReqDto; import kr.co.uplus.ez.api.sendNumMgt.dto.UpdateApprResDto; import kr.co.uplus.ez.api.sendNumMgt.dto.UpdateApprSendNumber; +import kr.co.uplus.ez.common.components.HubeasyApiComponents; import kr.co.uplus.ez.common.data.ApiResponseCode; import kr.co.uplus.ez.common.data.Const; import kr.co.uplus.ez.common.data.Paging; @@ -69,6 +75,8 @@ import kr.co.uplus.ez.common.utils.FileUtil; @Service public class SendNumMgtService { + + private static final Logger logger = LoggerFactory.getLogger(CustMgtService.class); @Autowired @Qualifier("sqlSessionTemplateDb1") @@ -77,9 +85,24 @@ public class SendNumMgtService { @Autowired @Qualifier("sqlSessionTemplateDb2") private SqlSessionTemplate sqlSessionSlave; + + @Autowired + private HubeasyApiComponents hubeasyApi; @Value("${file-resource.info.sendNumber.path:/efs/admin/sendNumber/}") private String sendNumUploadPath; + + @Value("${msghubez.applicationId:EZ_ADMIN}") + private String apiApplicationId; + + @Value("${mail.senrNoRejTempleteCode:E0007}") + private String templeteCode; + + @Value("${msghubez.homepage-url:https://mhez.uplus.co.kr}") + private String mailTempleteHomeUrl; + + @Value("${mail.from:msghubez@lguplus.co.kr}") + private String fromEmail; private static int BUFFERSIZE = 1024; /** @@ -597,7 +620,10 @@ public class SendNumMgtService { Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); UserDetails userDetails = (UserDetails) principal; String regId = userDetails.getUsername(); - + Map mailReqMap = new HashMap(); + + List sndrNoList = new ArrayList(); + // 발신번호 메모 업데이트. upddateSndrnoReg int totalCnt = updateApprReqDto.getList().size(); int apvCnt = 0; @@ -605,14 +631,62 @@ public class SendNumMgtService { for(UpdateApprSendNumber updateApprSendNumber: updateApprReqDto.getList()){ if(StringUtils.equals(Const.SNDRNO_STTUS_CD_COMPLETED, updateApprSendNumber.getSttusCd())){ apvCnt++; + logger.info("발신번호 승인, 건수 ={}",apvCnt); updateApprSendNumber.setUseYn(Const.COMM_YES); // 사용여부 : 승인완료 시 자동으로 Y 값으로 되며 승인대기, 반려, 관리자 변경 값은 N으로 표기 }else if(StringUtils.equals(Const.SNDRNO_STTUS_CD_REJECT, updateApprSendNumber.getSttusCd())){ rejtCnt++; + logger.info("발신번호 반려, 건수 ={}",rejtCnt); updateApprSendNumber.setUseYn(Const.COMM_NO); // 사용여부 : 승인완료 시 자동으로 Y 값으로 되며 승인대기, 반려, 관리자 변경 값은 N으로 표기 + logger.info("************************반려 값 오는지 확인 ********************"); + logger.info("발신번호={}",updateApprSendNumber.getSndrno()); + // ** 발신번호 반려 시에는 사용자에게 반려 메일 전송 ** + //1. for문 안에서는 반려 발신번호 리스트에 셋팅 + sndrNoList.add(updateApprSendNumber.getSndrno()); + } updateApprSendNumber.setAdminId(regId); sendNumMgtMapper.updateSndrno(updateApprSendNumber); } + + //2. 반려 발신번호 리스트에 값이 있을 경우 메일을 보냄 + if(sndrNoList.size()>0) { + //try catch 처리하기 + try { + String testEmail = "lmh3294@naver.com"; + Map mailResultMap = new HashMap(); + + // API authToken 조회 + String apiAuthToken = sendNumMgtMapper.selectApiAuthToken(apiApplicationId); + + //3. 메일에 담을 내용 셋팅 + mailReqMap.put("applicationId", apiApplicationId); + mailReqMap.put("apiAuthToken", apiAuthToken); + mailReqMap.put("rejectListSndrNo", sndrNoList); + mailReqMap.put("memo", updateApprReqDto.getMemo()); + //이메일 수신자 가져오는 쿼리 + mailReqMap.put("toEmail", testEmail); + mailReqMap.put("fromEmail", fromEmail); + mailReqMap.put("templeteCode", templeteCode); + mailReqMap.put("homeUrl", mailTempleteHomeUrl); + + + logger.debug("############## [Email Send Start] ###############"); + logger.debug("[Email Send Request - applicationId : {}]", mailReqMap.get("applicationId")); + logger.debug("[Email Send Request - authToken : {}]", mailReqMap.get("authToken")); + logger.debug("[Email Send Request - userId : {}]", mailReqMap.get("rejectListSndrNo")); + logger.debug("[Email Send Request - tmpPwd : {}]", mailReqMap.get("memo")); + logger.debug("[Email Send Request - toEmail : {}]", mailReqMap.get("toEmail")); + logger.debug("[Email Send Request - fromEmail : {}]", mailReqMap.get("fromEmail")); + logger.debug("[Email Send Request - templeteCode : {}]", mailReqMap.get("templeteCode")); + logger.debug("[Email Send Request - homeUrl : {}]", mailReqMap.get("homeUrl")); + + mailResultMap = hubeasyApi.sendTemplateMailApi(mailReqMap); + + } catch (Exception e) { + // TODO: handle exception + } + } + updateApprReqDto.setApvCnt(apvCnt); updateApprReqDto.setRejtCnt(rejtCnt); diff --git a/src/main/java/kr/co/uplus/ez/common/components/HubeasyApiComponents.java b/src/main/java/kr/co/uplus/ez/common/components/HubeasyApiComponents.java index c264693..ca29123 100644 --- a/src/main/java/kr/co/uplus/ez/common/components/HubeasyApiComponents.java +++ b/src/main/java/kr/co/uplus/ez/common/components/HubeasyApiComponents.java @@ -13,6 +13,8 @@ import org.springframework.http.client.MultipartBodyBuilder; import org.springframework.stereotype.Component; import org.springframework.util.MultiValueMap; +import kr.co.uplus.ez.common.data.Const; + @Component public class HubeasyApiComponents { @@ -37,9 +39,18 @@ public class HubeasyApiComponents { String applicationId = (String) apiReqMap.get("applicationId"); String authToken = (String) apiReqMap.get("authToken"); - jsonObject.put("userId", apiReqMap.get("userId")); - jsonObject.put("tmpPwd", apiReqMap.get("tmpPwd")); - jsonObject.put("homeUrl", apiReqMap.get("homeUrl")); + if(Const.TMPL_CODE_005.equals(apiReqMap.get("templeteCode"))) { + + jsonObject.put("userId", apiReqMap.get("userId")); + jsonObject.put("tmpPwd", apiReqMap.get("tmpPwd")); + jsonObject.put("homeUrl", apiReqMap.get("homeUrl")); + + } else if(Const.TMPL_CODE_007.equals(apiResultMap.get("templeteCode"))) { + + jsonObject.put("rejectListSndrNo", apiReqMap.get("rejectListSndrNo")); + jsonObject.put("rejectHtml", apiReqMap.get("rejectHtml")); + } + String jsonString = jsonObject.toString(); diff --git a/src/main/java/kr/co/uplus/ez/common/data/Const.java b/src/main/java/kr/co/uplus/ez/common/data/Const.java index e9e2ef6..036650e 100644 --- a/src/main/java/kr/co/uplus/ez/common/data/Const.java +++ b/src/main/java/kr/co/uplus/ez/common/data/Const.java @@ -153,4 +153,8 @@ public class Const { public static final String BATCH_RESULT_SUCCESS = "S"; public static final String BATCH_RESULT_FAIL = "F"; + + public static final String TMPL_CODE_005 = "E0005"; //U+메시지허브이지 이메일 인증 + public static final String TMPL_CODE_007 = "E0007"; //발신번호 반려 메일 + } diff --git a/src/main/resources/application-stg.yml b/src/main/resources/application-stg.yml index 9e74212..c9c249d 100644 --- a/src/main/resources/application-stg.yml +++ b/src/main/resources/application-stg.yml @@ -44,6 +44,7 @@ authentication: mail: from: msghubez@lguplus.co.kr templeteCode: E0005 + senrNoRejTempleteCode: E0007 msghubez: homepage-url: https://mhez-qa.uplus.co.kr diff --git a/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml b/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml index 7db9044..2fc0d23 100644 --- a/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml @@ -679,5 +679,12 @@ WHERE REG_REQ_NO = #{regReqNo} and DOC_NO = #{docNo} + + \ No newline at end of file From 753bbc6a4fd80349010abed36604164fc921d228 Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Thu, 9 Feb 2023 15:57:56 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=EB=B0=9C=EC=8B=A0=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EB=A9=94=EC=9D=BC=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../co/uplus/ez/api/sendNumMgt/SendNumMgtService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java index 7c84620..fbfc224 100644 --- a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java +++ b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java @@ -31,6 +31,7 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import kr.co.uplus.ez.api.custMgt.CustMgtService; +import kr.co.uplus.ez.api.custMgt.dto.InsertUserResDto; import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberReqDto; import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberResDto; import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumber; @@ -682,7 +683,16 @@ public class SendNumMgtService { mailResultMap = hubeasyApi.sendTemplateMailApi(mailReqMap); + if (mailResultMap != null) { + logger.debug("[Email Send API RESULT : {}]", mailResultMap.get("API_RSLT")); + if ("F".equals(mailResultMap.get("API_RSLT"))) { + logger.debug("[Email Send API ERROR : {}]", mailResultMap.get("API_RSLT_MSG")); + } + } + logger.debug("############## [Email Send End] ###############"); + } catch (Exception e) { + logger.error(e.getMessage()); // TODO: handle exception } } From c22d1930a72bd05535c330775a2a23f7d0fabbab Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Thu, 9 Feb 2023 16:36:36 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=EB=B0=9C=EC=8B=A0=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EB=B0=98=EB=A0=A4=20=EB=A9=94=EC=9D=BC=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ez/api/sendNumMgt/SendNumMgtService.java | 18 +++++++++--------- .../components/HubeasyApiComponents.java | 10 ++++++++-- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java index fbfc224..8160cd6 100644 --- a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java +++ b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java @@ -97,7 +97,7 @@ public class SendNumMgtService { private String apiApplicationId; @Value("${mail.senrNoRejTempleteCode:E0007}") - private String templeteCode; + private String senrNoRejTempleteCode; @Value("${msghubez.homepage-url:https://mhez.uplus.co.kr}") private String mailTempleteHomeUrl; @@ -632,14 +632,14 @@ public class SendNumMgtService { for(UpdateApprSendNumber updateApprSendNumber: updateApprReqDto.getList()){ if(StringUtils.equals(Const.SNDRNO_STTUS_CD_COMPLETED, updateApprSendNumber.getSttusCd())){ apvCnt++; - logger.info("발신번호 승인, 건수 ={}",apvCnt); + logger.debug("발신번호 승인, 건수 ={}",apvCnt); updateApprSendNumber.setUseYn(Const.COMM_YES); // 사용여부 : 승인완료 시 자동으로 Y 값으로 되며 승인대기, 반려, 관리자 변경 값은 N으로 표기 }else if(StringUtils.equals(Const.SNDRNO_STTUS_CD_REJECT, updateApprSendNumber.getSttusCd())){ rejtCnt++; - logger.info("발신번호 반려, 건수 ={}",rejtCnt); + logger.debug("발신번호 반려, 건수 ={}",rejtCnt); updateApprSendNumber.setUseYn(Const.COMM_NO); // 사용여부 : 승인완료 시 자동으로 Y 값으로 되며 승인대기, 반려, 관리자 변경 값은 N으로 표기 - logger.info("************************반려 값 오는지 확인 ********************"); - logger.info("발신번호={}",updateApprSendNumber.getSndrno()); + logger.debug("************************반려 값 오는지 확인 ********************"); + logger.debug("발신번호={}",updateApprSendNumber.getSndrno()); // ** 발신번호 반려 시에는 사용자에게 반려 메일 전송 ** //1. for문 안에서는 반려 발신번호 리스트에 셋팅 sndrNoList.add(updateApprSendNumber.getSndrno()); @@ -663,19 +663,19 @@ public class SendNumMgtService { mailReqMap.put("applicationId", apiApplicationId); mailReqMap.put("apiAuthToken", apiAuthToken); mailReqMap.put("rejectListSndrNo", sndrNoList); - mailReqMap.put("memo", updateApprReqDto.getMemo()); + mailReqMap.put("rejectHtml", updateApprReqDto.getMemo()); //이메일 수신자 가져오는 쿼리 mailReqMap.put("toEmail", testEmail); mailReqMap.put("fromEmail", fromEmail); - mailReqMap.put("templeteCode", templeteCode); + mailReqMap.put("templeteCode", senrNoRejTempleteCode); mailReqMap.put("homeUrl", mailTempleteHomeUrl); logger.debug("############## [Email Send Start] ###############"); logger.debug("[Email Send Request - applicationId : {}]", mailReqMap.get("applicationId")); logger.debug("[Email Send Request - authToken : {}]", mailReqMap.get("authToken")); - logger.debug("[Email Send Request - userId : {}]", mailReqMap.get("rejectListSndrNo")); - logger.debug("[Email Send Request - tmpPwd : {}]", mailReqMap.get("memo")); + logger.debug("[Email Send Request - rejectListSndrNo : {}]", mailReqMap.get("rejectListSndrNo")); + logger.debug("[Email Send Request - rejectHtml : {}]", mailReqMap.get("rejectHtml")); logger.debug("[Email Send Request - toEmail : {}]", mailReqMap.get("toEmail")); logger.debug("[Email Send Request - fromEmail : {}]", mailReqMap.get("fromEmail")); logger.debug("[Email Send Request - templeteCode : {}]", mailReqMap.get("templeteCode")); diff --git a/src/main/java/kr/co/uplus/ez/common/components/HubeasyApiComponents.java b/src/main/java/kr/co/uplus/ez/common/components/HubeasyApiComponents.java index ca29123..1f34ff4 100644 --- a/src/main/java/kr/co/uplus/ez/common/components/HubeasyApiComponents.java +++ b/src/main/java/kr/co/uplus/ez/common/components/HubeasyApiComponents.java @@ -39,16 +39,20 @@ public class HubeasyApiComponents { String applicationId = (String) apiReqMap.get("applicationId"); String authToken = (String) apiReqMap.get("authToken"); + log.debug("파라미터 확인하기 ={}",apiReqMap); if(Const.TMPL_CODE_005.equals(apiReqMap.get("templeteCode"))) { + log.debug("사용자 등록 메일 전송, 템플릿 코드={}",apiResultMap.get("templeteCode")); jsonObject.put("userId", apiReqMap.get("userId")); jsonObject.put("tmpPwd", apiReqMap.get("tmpPwd")); jsonObject.put("homeUrl", apiReqMap.get("homeUrl")); - } else if(Const.TMPL_CODE_007.equals(apiResultMap.get("templeteCode"))) { - + } else if(Const.TMPL_CODE_007.equals(apiReqMap.get("templeteCode"))) { + log.debug("발신번호 반려 메일 전송, 템플릿 코드={}",apiReqMap.get("templeteCode")); jsonObject.put("rejectListSndrNo", apiReqMap.get("rejectListSndrNo")); jsonObject.put("rejectHtml", apiReqMap.get("rejectHtml")); + } else { + log.debug("템플릿코드 확인 ={}",apiReqMap.get("templeteCode")); } @@ -60,6 +64,8 @@ public class HubeasyApiComponents { builder.part("templeteCode", apiReqMap.get("templeteCode")); builder.part("templeteReplace", jsonString); + log.debug("메일 내용 ={}",jsonString); + MultiValueMap> parts = builder.build(); try { From 8b801f6e483a871732f0aee82d59d51e115f0dd1 Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Mon, 13 Feb 2023 10:17:07 +0900 Subject: [PATCH 4/4] =?UTF-8?q?=EB=B0=9C=EC=8B=A0=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EB=B0=98=EB=A0=A4=20=EC=8B=9C=20=EB=A9=94=EC=9D=BC=20=EC=A0=84?= =?UTF-8?q?=EC=86=A1=20=ED=85=8C=EC=8A=A4=ED=8A=B82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java index 8160cd6..0e65881 100644 --- a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java +++ b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java @@ -661,7 +661,7 @@ public class SendNumMgtService { //3. 메일에 담을 내용 셋팅 mailReqMap.put("applicationId", apiApplicationId); - mailReqMap.put("apiAuthToken", apiAuthToken); + mailReqMap.put("authToken", apiAuthToken); mailReqMap.put("rejectListSndrNo", sndrNoList); mailReqMap.put("rejectHtml", updateApprReqDto.getMemo()); //이메일 수신자 가져오는 쿼리