mirror of
http://git.mhez-qa.uplus.co.kr/hubez/hubez-admin.git
synced 2025-12-06 22:06:05 +09:00
Merge branch 'sndrNoRejMail' into develop
This commit is contained in:
@@ -60,4 +60,6 @@ interface SendNumMgtMapper {
|
|||||||
InsertNumberFile selectDownload(InsertNumberFile insertNumberFile);
|
InsertNumberFile selectDownload(InsertNumberFile insertNumberFile);
|
||||||
|
|
||||||
List<InsertNumber> selectSndrnoListAll(InsertNumberReqDto insertNumberReqDto);
|
List<InsertNumber> selectSndrnoListAll(InsertNumberReqDto insertNumberReqDto);
|
||||||
|
|
||||||
|
String selectApiAuthToken(String apiApplicationId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ import java.io.InputStream;
|
|||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -16,6 +18,8 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
import org.apache.commons.io.FilenameUtils;
|
import org.apache.commons.io.FilenameUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.mybatis.spring.SqlSessionTemplate;
|
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.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
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.MultipartFile;
|
||||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
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.DeleteNumberReqDto;
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberResDto;
|
import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberResDto;
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumber;
|
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.UpdateApprReqDto;
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.UpdateApprResDto;
|
import kr.co.uplus.ez.api.sendNumMgt.dto.UpdateApprResDto;
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.UpdateApprSendNumber;
|
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.ApiResponseCode;
|
||||||
import kr.co.uplus.ez.common.data.Const;
|
import kr.co.uplus.ez.common.data.Const;
|
||||||
import kr.co.uplus.ez.common.data.Paging;
|
import kr.co.uplus.ez.common.data.Paging;
|
||||||
@@ -70,6 +77,8 @@ import kr.co.uplus.ez.common.utils.FileUtil;
|
|||||||
@Service
|
@Service
|
||||||
public class SendNumMgtService {
|
public class SendNumMgtService {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(CustMgtService.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier("sqlSessionTemplateDb1")
|
@Qualifier("sqlSessionTemplateDb1")
|
||||||
private SqlSessionTemplate sqlSessionMaster;
|
private SqlSessionTemplate sqlSessionMaster;
|
||||||
@@ -78,9 +87,24 @@ public class SendNumMgtService {
|
|||||||
@Qualifier("sqlSessionTemplateDb2")
|
@Qualifier("sqlSessionTemplateDb2")
|
||||||
private SqlSessionTemplate sqlSessionSlave;
|
private SqlSessionTemplate sqlSessionSlave;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HubeasyApiComponents hubeasyApi;
|
||||||
|
|
||||||
@Value("${file-resource.info.sendNumber.path:/efs/admin/sendNumber/}")
|
@Value("${file-resource.info.sendNumber.path:/efs/admin/sendNumber/}")
|
||||||
private String sendNumUploadPath;
|
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;
|
private static int BUFFERSIZE = 1024;
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25.
|
||||||
@@ -597,6 +621,9 @@ public class SendNumMgtService {
|
|||||||
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||||
UserDetails userDetails = (UserDetails) principal;
|
UserDetails userDetails = (UserDetails) principal;
|
||||||
String regId = userDetails.getUsername();
|
String regId = userDetails.getUsername();
|
||||||
|
Map<Object, Object> mailReqMap = new HashMap<Object,Object>();
|
||||||
|
|
||||||
|
List<String> sndrNoList = new ArrayList<String>();
|
||||||
|
|
||||||
// 발신번호 메모 업데이트. upddateSndrnoReg
|
// 발신번호 메모 업데이트. upddateSndrnoReg
|
||||||
int totalCnt = updateApprReqDto.getList().size();
|
int totalCnt = updateApprReqDto.getList().size();
|
||||||
@@ -605,15 +632,72 @@ public class SendNumMgtService {
|
|||||||
for(UpdateApprSendNumber updateApprSendNumber: updateApprReqDto.getList()){
|
for(UpdateApprSendNumber updateApprSendNumber: updateApprReqDto.getList()){
|
||||||
if(StringUtils.equals(Const.SNDRNO_STTUS_CD_COMPLETED, updateApprSendNumber.getSttusCd())){
|
if(StringUtils.equals(Const.SNDRNO_STTUS_CD_COMPLETED, updateApprSendNumber.getSttusCd())){
|
||||||
apvCnt++;
|
apvCnt++;
|
||||||
|
logger.debug("발신번호 승인, 건수 ={}",apvCnt);
|
||||||
updateApprSendNumber.setUseYn(Const.COMM_YES); // 사용여부 : 승인완료 시 자동으로 Y 값으로 되며 승인대기, 반려, 관리자 변경 값은 N으로 표기
|
updateApprSendNumber.setUseYn(Const.COMM_YES); // 사용여부 : 승인완료 시 자동으로 Y 값으로 되며 승인대기, 반려, 관리자 변경 값은 N으로 표기
|
||||||
}else if(StringUtils.equals(Const.SNDRNO_STTUS_CD_REJECT, updateApprSendNumber.getSttusCd())){
|
}else if(StringUtils.equals(Const.SNDRNO_STTUS_CD_REJECT, updateApprSendNumber.getSttusCd())){
|
||||||
rejtCnt++;
|
rejtCnt++;
|
||||||
|
logger.debug("발신번호 반려, 건수 ={}",rejtCnt);
|
||||||
updateApprSendNumber.setUseYn(Const.COMM_NO); // 사용여부 : 승인완료 시 자동으로 Y 값으로 되며 승인대기, 반려, 관리자 변경 값은 N으로 표기
|
updateApprSendNumber.setUseYn(Const.COMM_NO); // 사용여부 : 승인완료 시 자동으로 Y 값으로 되며 승인대기, 반려, 관리자 변경 값은 N으로 표기
|
||||||
|
logger.debug("************************반려 값 오는지 확인 ********************");
|
||||||
|
logger.debug("발신번호={}",updateApprSendNumber.getSndrno());
|
||||||
|
// ** 발신번호 반려 시에는 사용자에게 반려 메일 전송 **
|
||||||
|
//1. for문 안에서는 반려 발신번호 리스트에 셋팅
|
||||||
|
sndrNoList.add(updateApprSendNumber.getSndrno());
|
||||||
|
|
||||||
}
|
}
|
||||||
updateApprSendNumber.setAdminId(regId);
|
updateApprSendNumber.setAdminId(regId);
|
||||||
sendNumMgtMapper.updateSndrno(updateApprSendNumber);
|
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.setApvCnt(apvCnt);
|
||||||
updateApprReqDto.setRejtCnt(rejtCnt);
|
updateApprReqDto.setRejtCnt(rejtCnt);
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import org.springframework.http.client.MultipartBodyBuilder;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
|
|
||||||
|
import kr.co.uplus.ez.common.data.Const;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class HubeasyApiComponents {
|
public class HubeasyApiComponents {
|
||||||
|
|
||||||
@@ -37,9 +39,22 @@ public class HubeasyApiComponents {
|
|||||||
String applicationId = (String) apiReqMap.get("applicationId");
|
String applicationId = (String) apiReqMap.get("applicationId");
|
||||||
String authToken = (String) apiReqMap.get("authToken");
|
String authToken = (String) apiReqMap.get("authToken");
|
||||||
|
|
||||||
jsonObject.put("userId", apiReqMap.get("userId"));
|
log.debug("파라미터 확인하기 ={}",apiReqMap);
|
||||||
jsonObject.put("tmpPwd", apiReqMap.get("tmpPwd"));
|
if(Const.TMPL_CODE_005.equals(apiReqMap.get("templeteCode"))) {
|
||||||
jsonObject.put("homeUrl", apiReqMap.get("homeUrl"));
|
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();
|
String jsonString = jsonObject.toString();
|
||||||
|
|
||||||
@@ -49,6 +64,8 @@ public class HubeasyApiComponents {
|
|||||||
builder.part("templeteCode", apiReqMap.get("templeteCode"));
|
builder.part("templeteCode", apiReqMap.get("templeteCode"));
|
||||||
builder.part("templeteReplace", jsonString);
|
builder.part("templeteReplace", jsonString);
|
||||||
|
|
||||||
|
log.debug("메일 내용 ={}",jsonString);
|
||||||
|
|
||||||
MultiValueMap<String, HttpEntity<?>> parts = builder.build();
|
MultiValueMap<String, HttpEntity<?>> parts = builder.build();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -153,4 +153,8 @@ public class Const {
|
|||||||
public static final String BATCH_RESULT_SUCCESS = "S";
|
public static final String BATCH_RESULT_SUCCESS = "S";
|
||||||
public static final String BATCH_RESULT_FAIL = "F";
|
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"; //발신번호 반려 메일
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ authentication:
|
|||||||
mail:
|
mail:
|
||||||
from: msghubez@lguplus.co.kr
|
from: msghubez@lguplus.co.kr
|
||||||
templeteCode: E0005
|
templeteCode: E0005
|
||||||
|
senrNoRejTempleteCode: E0007
|
||||||
|
|
||||||
msghubez:
|
msghubez:
|
||||||
homepage-url: https://mhez-qa.uplus.co.kr
|
homepage-url: https://mhez-qa.uplus.co.kr
|
||||||
|
|||||||
@@ -680,4 +680,11 @@
|
|||||||
and DOC_NO = #{docNo}
|
and DOC_NO = #{docNo}
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
Reference in New Issue
Block a user