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