발신번호 반려문자 추가

This commit is contained in:
2023-04-24 13:14:29 +09:00
parent 5b4273add6
commit 5757a653e6
7 changed files with 276 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
package kr.co.uplus.ez.api.comm; package kr.co.uplus.ez.api.comm;
import java.util.List; import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@@ -16,4 +17,8 @@ public interface CommMapper {
public List<Code> getCommCode(CodeReqDto codeReqDto); public List<Code> getCommCode(CodeReqDto codeReqDto);
public List<Auth> getAuthCode(); public List<Auth> getAuthCode();
public void insertWebMsgCli(Map<Object, Object> newezMsgMap);
public void insertNotiHst(Map<Object, Object> newMsgHistMap);
} }

View File

@@ -1,5 +1,6 @@
package kr.co.uplus.ez.api.comm; package kr.co.uplus.ez.api.comm;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
@@ -26,7 +27,10 @@ import kr.co.uplus.ez.api.comm.dto.MenuResDto;
import kr.co.uplus.ez.api.comm.dto.RefreshTokenReqDto; import kr.co.uplus.ez.api.comm.dto.RefreshTokenReqDto;
import kr.co.uplus.ez.api.comm.dto.RefreshTokenResDto; import kr.co.uplus.ez.api.comm.dto.RefreshTokenResDto;
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.jwt.JwtService; import kr.co.uplus.ez.common.jwt.JwtService;
import kr.co.uplus.ez.common.utils.CommonUtils;
import kr.co.uplus.ez.common.utils.DateUtil;
import kr.co.uplus.ez.common.utils.SpringUtils; import kr.co.uplus.ez.common.utils.SpringUtils;
@Service @Service
@@ -176,4 +180,63 @@ public class CommService {
} }
return root; return root;
} }
//알림문자 발송테이블
public static String WEB_REQ_ID = "WEB_REQ_ID";
public Map<Object, Object> sendMsg(Map<Object, Object> ezMsgMap) {
CommMapper commMapper = sqlSessionMaster.getMapper(CommMapper.class);
// webReqId 채번
String prefix = DateUtil.getCurrentDate("yyyyMMdd");
String webReqId = prefix + ezMsgMap.get(WEB_REQ_ID);
Map<Object, Object> newezMsgMap = new HashMap<Object, Object>();
newezMsgMap.put("tableName", Const.LineTpCd.LINE_TP_REAL);
newezMsgMap.put("trafficType", Const.LineTpCd.LINE_TP_REAL);
String clientKey = generateClientKey("R", 10);
newezMsgMap.put("clientKey", clientKey);
newezMsgMap.put("reqProduct", "LMS");
newezMsgMap.put("msgStatus", "ready");
newezMsgMap.put("callbackNumber", "15445992");
newezMsgMap.put("phone", ezMsgMap.get("phone"));
newezMsgMap.put("webReqId", webReqId);
newezMsgMap.put("orderId", "2");
newezMsgMap.put("msg", ezMsgMap.get("msg"));
commMapper.insertWebMsgCli(newezMsgMap);
return ezMsgMap ;
}
public Map<Object, Object> sendMsgHist(Map<Object, Object>msgHistMap) {
CommMapper commMapper = sqlSessionMaster.getMapper(CommMapper.class);
// webReqId 채번
String prefix = DateUtil.getCurrentDate("yyyyMMdd");
String webReqId = prefix + msgHistMap.get(WEB_REQ_ID);
//알림 이력 insert
Map<Object, Object> newMsgHistMap = new HashMap<Object, Object>();
newMsgHistMap.put("userSeq", msgHistMap.get("userSeq"));
newMsgHistMap.put("notiSeq", msgHistMap.get("notiSeq"));
newMsgHistMap.put("notiMsg", msgHistMap.get("notiMsg"));
newMsgHistMap.put("webReqId", webReqId);
newMsgHistMap.put("notiDiv", msgHistMap.get("notiDiv"));
commMapper.insertNotiHst(newMsgHistMap);
return msgHistMap;
}
// clientKey 생성
public String generateClientKey(String lineTpCdKey, int length) {
String prefix = DateUtil.getCurrentDate("yyyyMMddHHmmss") + lineTpCdKey;
String clientKey = "";
clientKey = CommonUtils.getCommonId(prefix, length);
return clientKey;
}
} }

View File

@@ -1,6 +1,7 @@
package kr.co.uplus.ez.api.sendNumMgt; package kr.co.uplus.ez.api.sendNumMgt;
import kr.co.uplus.ez.api.sendNumMgt.dto.*; import kr.co.uplus.ez.api.sendNumMgt.dto.*;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@@ -64,4 +65,11 @@ interface SendNumMgtMapper {
String selectApiAuthToken(String apiApplicationId); String selectApiAuthToken(String apiApplicationId);
String selectUserEmailByAdminId(String adminId); String selectUserEmailByAdminId(String adminId);
String selectSequence(String wEB_REQ_ID);
String selectUserPhoneByAdminId(String adminId);
String selectNotiSeq();
} }

View File

@@ -30,6 +30,7 @@ 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.comm.CommService;
import kr.co.uplus.ez.api.custMgt.CustMgtService; import kr.co.uplus.ez.api.custMgt.CustMgtService;
import kr.co.uplus.ez.api.custMgt.dto.InsertUserResDto; 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;
@@ -70,6 +71,7 @@ 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;
import kr.co.uplus.ez.common.utils.CommonUtils;
import kr.co.uplus.ez.common.utils.DateUtils; import kr.co.uplus.ez.common.utils.DateUtils;
import kr.co.uplus.ez.common.utils.FileIoUtils; import kr.co.uplus.ez.common.utils.FileIoUtils;
import kr.co.uplus.ez.common.utils.FileUtil; import kr.co.uplus.ez.common.utils.FileUtil;
@@ -106,6 +108,11 @@ public class SendNumMgtService {
private String fromEmail; private String fromEmail;
private static int BUFFERSIZE = 1024; private static int BUFFERSIZE = 1024;
@Autowired
private CommService commService;
/** /**
* date : 2022. 4. 25. * date : 2022. 4. 25.
* auth : ckr * auth : ckr
@@ -700,7 +707,35 @@ public class SendNumMgtService {
} }
} }
logger.debug("############## [Email Send End] ###############"); logger.debug("############## [Email Send End] ###############");
//4. 메시지 발송
String WEB_REQ_ID =sendNumMgtMapper.selectSequence(commService.WEB_REQ_ID);
//알림문자 발송테이블 insert
Map<Object, Object> ezMsgMap = new HashMap<Object, Object>();
ezMsgMap.put("WEB_REQ_ID", WEB_REQ_ID);
String userPhone = sendNumMgtMapper.selectUserPhoneByAdminId(adminId);
ezMsgMap.put("phone", userPhone);
String msg = "[LG U+메시지허브이지]\\n허브이지 발신번호 신청 내역 반려 되었습니다. 자세한 내용은 메일 확인 부탁드립니다.*";
ezMsgMap.put("msg", msg);
commService.sendMsg(ezMsgMap);
//알람이력에 insert
Map<Object, Object> msgHistMap = new HashMap<Object, Object>();
msgHistMap.put("WEB_REQ_ID", WEB_REQ_ID);
String notiSeq = sendNumMgtMapper.selectNotiSeq();
String userSeq = sendNumMgtMapper.selectUserSeqByAdminId(adminId);
msgHistMap.put("userSeq", userSeq);
msgHistMap.put("notiSeq", notiSeq);
msgHistMap.put("notiMsg", msg);
msgHistMap.put("notiDiv", Const.NOTI_DIV_CD_05);
commService.sendMsgHist(msgHistMap);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
// TODO: handle exception // TODO: handle exception

View File

@@ -157,4 +157,39 @@ public class Const {
public static final String TMPL_CODE_005 = "E0005"; //U+메시지허브이지 이메일 인증 public static final String TMPL_CODE_005 = "E0005"; //U+메시지허브이지 이메일 인증
public static final String TMPL_CODE_007 = "E0007"; //발신번호 반려 메일 public static final String TMPL_CODE_007 = "E0007"; //발신번호 반려 메일
/*********************************************************************************
* 발송채널 코드, 발송클라이언트 요청상품코드
*********************************************************************************/
public static final String SND_CH_SMS = "SMS";
public static final String SND_CH_LMS = "LMS";
public static final String SND_CH_MMS = "MMS";
public static final String SND_CH_ALIMTALK = "ALIMTALK";
public static final String REQ_PRODUCT_SMS = "SMS";
public static final String REQ_PRODUCT_LMS = "LMS";
public static final String REQ_PRODUCT_MMS = "MMS";
public static final String REQ_PRODUCT_KKO_NOTI = "KKO_NOTI";
/* 테이블명 */
public static class TableName {
public static final String EZ_MSG_NORMAL = "EZ_MSG_NORMAL"; //일반
public static final String EZ_MSG_REAL = "EZ_MSG_REAL"; //실시간보장
public static final String EZ_MSG_BATCH = "EZ_MSG_BATCH"; //예약
}
/* 라인유형 */
public static class LineTpCd {
public static final String LINE_TP_NORMAL = "normal"; //일반
public static final String LINE_TP_REAL = "real"; //실시간보장
public static final String LINE_TP_BATCH = "batch"; //예약
}
/* 알림이력 */
public static final String NOTI_DIV_CD_01 = "01"; // 종량전환알림
public static final String NOTI_DIV_CD_02 = "02"; // 이월소멸예정알림
public static final String NOTI_DIV_CD_03 = "03"; // 이월소멸알림
public static final String NOTI_DIV_CD_04 = "04"; // 충전금알림
public static final String NOTI_DIV_CD_05 = "05"; // 발신번호반려알림
public static final String NOTI_DIV_CD_06 = "06"; // 알림톡템플릿반려알림
} }

View File

@@ -66,4 +66,112 @@
ORDER BY ORDER BY
AUT_CD AUT_CD
</select> </select>
<insert id="insertWebMsgCli" parameterType="String">
/* extCarryOverAmtNoti.insertWebMsgCli - 메시지 원장 등록 */
INSERT INTO hubez_send.EZ_MSG_REAL
(
CLIENT_KEY,
REQ_PRODUCT,
TRAFFIC_TYPE,
MSG_STATUS,
REQ_DATE,
MSG_BIZ_KEY,
TEMPLATE_CODE,
SEND_GROUP_KEY,
CALLBACK_NUMBER,
DEPT_CODE,
MSG,
PHONE,
MERGE_DATA,
TITLE,
FILE_LIST,
FB_PRODUCT,
FB_TITLE,
FB_MSG,
FB_FILE_ID,
RCS_MSGBASE_ID,
RCS_HEADER,
RCS_FOOTER,
RCS_COPY_ALLOWED,
RCS_EXPIRY_OPTION,
RCS_AGENCY_ID,
RCS_BUTTON,
KAKAO_SENDER_KEY,
KAKAO_TEMPLATE_KEY,
KAKAO_BUTTON,
KAKAO_IMAGE_WIDE_YN,
KAKAO_IMAGE_URL,
KAKAO_IMAGE_LINK,
PUSH_APP_ID,
PUSH_PROVIDER,
PUSH_APP_USER_ID,
WEB_REQ_ID,
ORDER_ID
)
VALUES
(
#{clientKey},
#{reqProduct},
#{trafficType},
#{msgStatus},
NOW(),
#{msgBizKey},
#{templateCode},
#{sendGroupKey},
#{callbackNumber},
#{deptCode},
#{msg},
#{phone},
#{mergeData},
#{title},
#{fileList},
#{fbProduct},
#{fbTitle},
#{fbMsg},
#{fbFileId},
#{rcsMsgbaseId},
#{rcsHeader},
#{rcsFooter},
#{rcsCopyAllowed},
#{rcsExpiryOption},
#{rcsAgencyId},
#{rcsButton},
#{kakaoSenderKey},
#{kakaoTemplateKey},
#{kakaoButton},
#{kakaoImageWideYn},
#{kakaoImageUrl},
#{kakaoImageLink},
#{pushAppId},
#{pushProvider},
#{pushAppUserId},
#{webReqId},
#{orderId}
)
</insert>
<insert id="insertNotiHst" parameterType="String">
/* extCarryOverAmtNoti.insertNotiHst - 알림 이력 등록 */
INSERT INTO hubez_common.EZ_NOTI_HIST
(
SND_YMD,
USER_SEQ,
NOTI_SEQ,
NOTI_DIV,
NOTI_MSG,
WEB_REQ_ID,
REG_DT
)
VALUES
(
DATE_FORMAT(NOW(), '%Y%m%d'),
#{userSeq},
#{notiSeq},
#{notiDiv},
#{notiMsg},
#{webReqId},
NOW()
)
</insert>
</mapper> </mapper>

View File

@@ -720,5 +720,25 @@
FROM hubez_common.EZ_IFSYS_INFO FROM hubez_common.EZ_IFSYS_INFO
WHERE SYS_ID = #{apiApplicationId} WHERE SYS_ID = #{apiApplicationId}
</select> </select>
<select id="selectSequence" parameterType="String" resultType="String">
/* sendNumMgt.selectSequence -- sequence 채번 일반 */
SELECT hubez_common.FUN_NEXT_SEQ(#{seqKey})
</select>
<select id="selectUserPhoneByAdminId" parameterType="String" resultType="String">
/* sendNumMgt-mapper.xml(selectUserPhoneByAdminId) */
SELECT
HP_NO
FROM
hubez_common.EZ_SVC_USER
WHERE
USER_ID = #{adminId}
</select>
<select id="selectNotiSeq" resultType="String">
/* sendNumMgt.selectNotiSeq 노티 알림 시퀀스 채번 */
SELECT hubez_common.FUN_NEXT_SEQ('NOTI_SEQ') AS notiSeq
</select>
</mapper> </mapper>