Merge branch 'sndrNoRejMail' into develop

This commit is contained in:
2023-02-13 10:50:13 +09:00
6 changed files with 119 additions and 4 deletions

View File

@@ -60,4 +60,6 @@ interface SendNumMgtMapper {
InsertNumberFile selectDownload(InsertNumberFile insertNumberFile);
List<InsertNumber> selectSndrnoListAll(InsertNumberReqDto insertNumberReqDto);
String selectApiAuthToken(String apiApplicationId);
}

View File

@@ -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,8 @@ 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.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;
@@ -60,6 +66,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;
@@ -70,6 +77,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")
private SqlSessionTemplate sqlSessionMaster;
@@ -78,9 +87,24 @@ public class SendNumMgtService {
@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 senrNoRejTempleteCode;
@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;
/**
* date : 2022. 4. 25.
@@ -597,6 +621,9 @@ public class SendNumMgtService {
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
UserDetails userDetails = (UserDetails) principal;
String regId = userDetails.getUsername();
Map<Object, Object> mailReqMap = new HashMap<Object,Object>();
List<String> sndrNoList = new ArrayList<String>();
// 발신번호 메모 업데이트. upddateSndrnoReg
int totalCnt = updateApprReqDto.getList().size();
@@ -605,15 +632,72 @@ public class SendNumMgtService {
for(UpdateApprSendNumber updateApprSendNumber: updateApprReqDto.getList()){
if(StringUtils.equals(Const.SNDRNO_STTUS_CD_COMPLETED, updateApprSendNumber.getSttusCd())){
apvCnt++;
logger.debug("발신번호 승인, 건수 ={}",apvCnt);
updateApprSendNumber.setUseYn(Const.COMM_YES); // 사용여부 : 승인완료 시 자동으로 Y 값으로 되며 승인대기, 반려, 관리자 변경 값은 N으로 표기
}else if(StringUtils.equals(Const.SNDRNO_STTUS_CD_REJECT, updateApprSendNumber.getSttusCd())){
rejtCnt++;
logger.debug("발신번호 반려, 건수 ={}",rejtCnt);
updateApprSendNumber.setUseYn(Const.COMM_NO); // 사용여부 : 승인완료 시 자동으로 Y 값으로 되며 승인대기, 반려, 관리자 변경 값은 N으로 표기
logger.debug("************************반려 값 오는지 확인 ********************");
logger.debug("발신번호={}",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<Object, Object> mailResultMap = new HashMap<Object, Object>();
// API authToken 조회
String apiAuthToken = sendNumMgtMapper.selectApiAuthToken(apiApplicationId);
//3. 메일에 담을 내용 셋팅
mailReqMap.put("applicationId", apiApplicationId);
mailReqMap.put("authToken", apiAuthToken);
mailReqMap.put("rejectListSndrNo", sndrNoList);
mailReqMap.put("rejectHtml", updateApprReqDto.getMemo());
//이메일 수신자 가져오는 쿼리
mailReqMap.put("toEmail", testEmail);
mailReqMap.put("fromEmail", fromEmail);
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 - 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"));
logger.debug("[Email Send Request - homeUrl : {}]", mailReqMap.get("homeUrl"));
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
}
}
updateApprReqDto.setApvCnt(apvCnt);
updateApprReqDto.setRejtCnt(rejtCnt);

View File

@@ -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,10 +39,23 @@ 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(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"));
}
String jsonString = jsonObject.toString();
MultipartBodyBuilder builder = new MultipartBodyBuilder();
@@ -49,6 +64,8 @@ public class HubeasyApiComponents {
builder.part("templeteCode", apiReqMap.get("templeteCode"));
builder.part("templeteReplace", jsonString);
log.debug("메일 내용 ={}",jsonString);
MultiValueMap<String, HttpEntity<?>> parts = builder.build();
try {

View File

@@ -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"; //발신번호 반려 메일
}

View File

@@ -44,6 +44,7 @@ authentication:
mail:
from: msghubez@lguplus.co.kr
templeteCode: E0005
senrNoRejTempleteCode: E0007
msghubez:
homepage-url: https://mhez-qa.uplus.co.kr

View File

@@ -680,4 +680,11 @@
and DOC_NO = #{docNo}
</select>
<select id="selectApiAuthToken" parameterType="String" resultType="String">
/* sendNumMgt-mapper.xml(selectApiAuthToken) */
SELECT AUTHTKN
FROM hubez_common.EZ_IFSYS_INFO
WHERE SYS_ID = #{apiApplicationId}
</select>
</mapper>