• Y
  • List All
  • Feedback
    • This Project
    • All Projects
Profile Account settings Log out
  • Favorite
  • Project
  • All
Loading...
  • Log in
  • Sign up
chominsoo4245 / mjon_git star
Forked from hylee / mjon_git
  • Project homeH
  • CodeC
  • IssueI
  • Pull requestP
  • Review R
  • MilestoneM
  • BoardB
  • Files
  • Commit
  • Branches
mjon_gitsrcmainjavaitnletkakaokakaoCommKakaoSendUtil.java
Download as .zip file
File name
Commit message
Commit date
DATABASE
mjon_git
2023-06-12
src/main
회원상세 팝업 문자종류 수정
2023-10-05
.codetogether.ignore
mjon_git
2023-06-12
.gitignore
gitignore 적용
2023-06-12
pom.xml
mjon_git
2023-06-12
File name
Commit message
Commit date
java
문자 슬랙 알림 기능 수정 - 예약 문자 발송시 스미싱 의심 안내 태그 표시기능 추가
2023-10-04
resources
주소록 단일등록시 번호중복 체크로직 보완
2023-09-18
webapp
회원상세 팝업 문자종류 수정
2023-10-05
File name
Commit message
Commit date
egovframework
mjon_git
2023-06-12
itn
문자 슬랙 알림 기능 수정 - 예약 문자 발송시 스미싱 의심 안내 태그 표시기능 추가
2023-10-04
File name
Commit message
Commit date
com
사용자 회원가입 입력항목 XSS 필터링 예외 항목 추가 - 회원아이디, 이메일 정보, 추천인 아이디, 회원명(회사명)
2023-08-21
let
문자 슬랙 알림 기능 수정 - 예약 문자 발송시 스미싱 의심 안내 태그 표시기능 추가
2023-10-04
web
메인페이지 이런 키워드는 어때요? 기능 추가
2023-09-05
File name
Commit message
Commit date
cop
이지우 - 취약점 조치(세금계산서 발행 시 본인 ID로만 등록, 본인 게시글만 수정, 환불 시 보유 금액 비교 추가)
2023-08-02
crypto/web
mjon_git
2023-06-12
fax
주소록 대량등록 TXT파일 업로드시 파일저장경로 수정
2023-08-29
hangulparser
mjon_git
2023-06-12
kakao
알림톡 목록에 발송승인, 발송취소 버튼 추가
2023-09-20
komoran
mjon_git
2023-06-12
lett
선택한 그림문자의 우선선위 변경 기능 추가
2023-09-05
mail
휴면회원으로 지정 기준날짜 변경
2023-07-25
main
이준호 문자온 커밋 - IP 받아오는 방식 수정
2023-07-28
mjo
문자 슬랙 알림 기능 수정 - 예약 문자 발송시 스미싱 의심 안내 태그 표시기능 추가
2023-10-04
module/base
mjon_git
2023-06-12
org
mjon_git
2023-06-12
schdlr/service
AGENT별 Kakao 발송건수 통계 스케쥴러 실행시간 변경
2023-08-31
sec
mjon_git
2023-06-12
solr
mjon_git
2023-06-12
sts
mjon_git
2023-06-12
sym
관리자방문수 관리 쿼리 성능개선, 기간검색 시작일 초기값 설정 추가
2023-09-13
uat
아이디찾기 일부 결과값 오류 수정
2023-09-21
uss
회원상세 알림톡목록 쿼리조건 수정
2023-09-04
utl
이준호 문자온 커밋 - IP 받아오는 방식 수정
2023-07-28
File name
Commit message
Commit date
admin
알림톡 목록에 발송승인, 발송취소 버튼 추가
2023-09-20
kakaoComm
알림톡 전송목록에 금일/금월/금년 통계 추가
2023-07-31
user
발송결과 문자 휴대폰번호 하이픈(-) 추가
2023-09-14
File name
Commit message
Commit date
kakaoApi
mjon_git
2023-06-12
KakaoButtonVO.java
mjon_git
2023-06-12
KakaoCommentVO.java
mjon_git
2023-06-12
KakaoItemVO.java
mjon_git
2023-06-12
KakaoReturnVO.java
mjon_git
2023-06-12
KakaoSendUtil.java
mjon_git
2023-06-12
KakaoServiceCommon.java
mjon_git
2023-06-12
KakaoVO.java
알림톡 전송목록에 금일/금월/금년 통계 추가
2023-07-31
hylee 2023-06-12 785e892 mjon_git UNIX
Raw Open in browser Change history
package itn.let.kakao.kakaoComm; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import itn.com.cmm.util.StringUtil; import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiJsonSave; import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.sym.site.service.JoinSettingVO; import itn.let.uss.umt.service.MberManageVO; @Component public class KakaoSendUtil { @Autowired KakaoApiJsonSave kakaoApiJsonSave; @Resource(name = "MjonMsgDataService") private MjonMsgDataService mjonMsgDataService; /** * @Method Name : kakaoSendPrice * @작성일 : 2023. 2. 14. * @작성자 : WYH * @Method 설명 : 카카오 전송 가격 설정 */ public KakaoVO kakaoSendPrice(KakaoVO kakaoVO) throws Exception { //사용자 현재 보유 금액 불러오기(문자 발송 금액 차감 이전 금액) String befCash = kakaoVO.getBefCash(); //VO에서 현재 보유금액이 없으면 디비에서 조회해서 불러옴 if("".equals(befCash) || befCash == null) { } MjonMsgVO mjonMsgVO = new MjonMsgVO(); mjonMsgVO.setUserId(kakaoVO.getUserId()); String userMoney = mjonMsgDataService.selectBeforeCashData(mjonMsgVO); String userPoint = mjonMsgDataService.selectBeforePointData(mjonMsgVO); //1.시스템 기본 단가 정보 불러오기 JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); //2.사용자 개인 단가 정보 불러오기 MberManageVO mberManageVO = mjonMsgDataService.selectMberManageInfo(kakaoVO.getUserId()); Float kakaoAtPrice = mberManageVO.getKakaoAtPrice(); /** 대체문자 여부 체크(있으면 대체문자 가격으로 없으면 카카오톡 가격으로) */ //대체문자 발송 여부 확인 if(kakaoVO.getSubMsgSendYn().equals("Y")) { String charset = "euc-kr"; //문자 바이트 계산에 필요한 캐릭터 셋 : 한글 2Byte로 계산 int callToCnt = kakaoVO.getCallToList().length; String sendType = ""; for(int count =0; count < callToCnt; count++) { String tempSubMagTxt = kakaoVO.getSubMsgTxt().replace("\r\n", "\n"); if(kakaoVO.getSubMsgTxtReplYn().equals("Y")) { tempSubMagTxt = kakaoSubMagTxtRepl(tempSubMagTxt, kakaoVO, count); } int bytes = tempSubMagTxt.getBytes(charset).length; if(bytes < 2000) { if(bytes > 90) { sendType = "MMS"; break; }else { sendType = "SMS"; } }else { kakaoVO.setResultCode("2000"); return kakaoVO; } } if(sendType.equals("MMS")) { //협의 단가가 없으면 시스템 단가로 지정 if(mberManageVO.getLongPrice() < 1) { kakaoAtPrice = sysJoinSetVO.getLongPrice(); kakaoVO.setSmsPrice(sysJoinSetVO.getShortPrice()); kakaoVO.setMmsPrice(sysJoinSetVO.getLongPrice()); kakaoVO.setKakaoAtPrice(sysJoinSetVO.getKakaoAtPrice()); }else { kakaoAtPrice = mberManageVO.getLongPrice(); kakaoVO.setSmsPrice(mberManageVO.getShortPrice()); kakaoVO.setMmsPrice(mberManageVO.getLongPrice()); if(mberManageVO.getKakaoAtPrice() < 1) { kakaoVO.setKakaoAtPrice(sysJoinSetVO.getKakaoAtPrice()); }else { kakaoVO.setKakaoAtPrice(mberManageVO.getKakaoAtPrice()); } } }else { //협의 단가가 없으면 시스템 단가로 지정 if(mberManageVO.getShortPrice() < 1) { kakaoAtPrice = sysJoinSetVO.getShortPrice(); kakaoVO.setSmsPrice(sysJoinSetVO.getShortPrice()); kakaoVO.setMmsPrice(sysJoinSetVO.getLongPrice()); kakaoVO.setKakaoAtPrice(sysJoinSetVO.getKakaoAtPrice()); }else { kakaoAtPrice = mberManageVO.getShortPrice(); kakaoVO.setSmsPrice(mberManageVO.getShortPrice()); kakaoVO.setMmsPrice(mberManageVO.getLongPrice()); if(mberManageVO.getKakaoAtPrice() < 1) { kakaoVO.setKakaoAtPrice(sysJoinSetVO.getKakaoAtPrice()); }else { kakaoVO.setKakaoAtPrice(mberManageVO.getKakaoAtPrice()); } } } }else { if(kakaoAtPrice < 1) { //협의 단가가 없으면 시스템 단가로 지정 kakaoAtPrice = sysJoinSetVO.getKakaoAtPrice(); kakaoVO.setSmsPrice(sysJoinSetVO.getShortPrice()); kakaoVO.setMmsPrice(sysJoinSetVO.getLongPrice()); kakaoVO.setKakaoAtPrice(sysJoinSetVO.getKakaoAtPrice()); }else { kakaoVO.setSmsPrice(mberManageVO.getShortPrice()); kakaoVO.setMmsPrice(mberManageVO.getLongPrice()); kakaoVO.setKakaoAtPrice(mberManageVO.getKakaoAtPrice()); } } /** 전송인원 확인*/ int totCallCnt = kakaoVO.getCallToList().length; Float kakaoTotPrice = totCallCnt * kakaoAtPrice; // 총결제 금액 = 총 전송수량 * 카카오 알림톡 단가 String totPrice = kakaoTotPrice.toString(); System.out.println("@@@@@@@ : "+kakaoTotPrice +" = "+totCallCnt+" * "+kakaoAtPrice); kakaoVO.setEachPrice(kakaoAtPrice.toString()); kakaoVO.setBefCash(userMoney); // 고객 충전금액 kakaoVO.setBefPoint(userPoint); // 고객 충전 포인트 kakaoVO.setTotPrice(totPrice); // 총 카카오 전송 금액 return kakaoVO; } /** * @methodName : selectSendPriceOfKakaoAtAndSmsAndMms * @author : 이호영 * @date : 2023.03.02 * @description : 알림톡 / sms / mms 가격 불러오기 * @param String userID * @return MberManageVO * @throws Exception */ public MberManageVO selectSendPriceOfKakaoAtAndSmsAndMms(String userId) throws Exception { //1.시스템 기본 단가 정보 불러오기 JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); //2.사용자 개인 단가 정보 불러오기 MberManageVO mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); // kakao 단가 // 사용자 개인 단가가 없으면 시스템 단가로 if(mberManageVO.getKakaoAtPrice() == 0.0f) mberManageVO.setKakaoAtPrice(sysJoinSetVO.getKakaoAtPrice()); // SMS 인경우 // 사용자 개인 단가가 없으면 시스템 단가로 if(mberManageVO.getShortPrice() == 0.0f) mberManageVO.setShortPrice(sysJoinSetVO.getShortPrice()); // // MMS 인경우 // 사용자 개인 단가가 없으면 시스템 단가로 if(mberManageVO.getLongPrice() == 0.0f) mberManageVO.setLongPrice(sysJoinSetVO.getLongPrice()); return mberManageVO; } /** * @Method Name : kakaoSendMsg * @작성일 : 2023. 2. 14. * @작성자 : WYH * @Method 설명 : 카카오톡 전송 메세지 설정 */ public KakaoVO kakaoSendMsg(KakaoVO kakaoVO) throws Exception { List<KakaoVO> kakaoSendList = new ArrayList<KakaoVO>(); //전체 받는사람 수량만큼 반복 확인 int callToCnt = kakaoVO.getCallToList().length; try { for(int count =0; count < callToCnt; count++) { KakaoVO setSendMsgVO = new KakaoVO(); setSendMsgVO.setDestPhone(kakaoVO.getCallToList()[count]); // 수신 번호 // 카카오 전송내용 설정 // 변환문자 포함(Y), 미포함(N) if(kakaoVO.getTxtReplYn().equals("Y")) { String templateContent = kakaoSubMagTxtRepl(kakaoVO.getTemplateContent(), kakaoVO, count); setSendMsgVO.setTemplateContent(templateContent); if(kakaoVO.getTemplateEmphasizeType().equals("TEXT")) { String title = kakaoSubMagTxtRepl(kakaoVO.getTemplateTitle(), kakaoVO, count); String subTitle = kakaoVO.getTemplateSubtitle(); title = title +"§§"+ subTitle; setSendMsgVO.setTemplateEmphasizeType(kakaoVO.getTemplateEmphasizeType()); setSendMsgVO.setTemplateTitle(title); } }else { if(kakaoVO.getTemplateEmphasizeType().equals("TEXT")) { String title = kakaoSubMagTxtRepl(kakaoVO.getTemplateTitle(), kakaoVO, count); String subTitle = kakaoVO.getTemplateSubtitle(); title = title +"§§"+ subTitle; setSendMsgVO.setTemplateEmphasizeType(kakaoVO.getTemplateEmphasizeType()); setSendMsgVO.setTemplateTitle(title); } // 템플릿 내용 설정 setSendMsgVO.setTemplateContent(kakaoVO.getTemplateContent()); } //대체문자 포함(Y), 미포함(N) if(kakaoVO.getSubMsgSendYn().equals("Y")) { String charset = "euc-kr"; //문자 바이트 계산에 필요한 캐릭터 셋 : 한글 2Byte로 계산 String tempSubMagTxt = kakaoVO.getSubMsgTxt().replace("\r\n", "\n"); kakaoVO.setKakaoSubMagOrgnlTxt(tempSubMagTxt); if(kakaoVO.getSubMsgTxtReplYn().equals("Y")) { tempSubMagTxt = kakaoSubMagTxtRepl(tempSubMagTxt, kakaoVO, count); } setSendMsgVO.setSubMsgTxt(tempSubMagTxt); int FrBytes = tempSubMagTxt.getBytes(charset).length; //메세지 길이가 90Byte가 초과시 MMS if(FrBytes > 90) { setSendMsgVO.setSubMsgType("MMS"); }else {// 아니면 SMS setSendMsgVO.setSubMsgType("SMS"); } } if(kakaoVO.getBizJsonYn().equals("Y")) { kakaoVO.setDestPhone(kakaoVO.getCallToList()[count]); // 수신 번호 String[] varValInfo = null; if( kakaoVO.getVarValList().size() != 0) { varValInfo = kakaoVO.getVarValList().get(count); } String jsonFileName = kakaoApiJsonSave.kakaoApiJsonSave(kakaoVO, varValInfo); // String jsonFileName = kakaoApiJsonSave.kakaoApiJsonSave(kakaoVO, kakaoVO.getVarValList().get(count)); setSendMsgVO.setBizJsonName(jsonFileName); //json 파일명 } kakaoSendList.add(setSendMsgVO); } kakaoVO.setKakaoSendList(kakaoSendList); } catch (Exception e) { System.out.println(e.toString()); e.printStackTrace(); } return kakaoVO; } public String kakaoSendMsgTest(KakaoVO kakaoVO) throws Exception { String templateContent = ""; try { templateContent = kakaoSubMagTxtRepl(kakaoVO.getTemplateContent(), kakaoVO, 0); } catch (Exception e) { System.out.println(e.toString()); e.printStackTrace(); } return templateContent; } public String kakaoSubMagTxtRepl(String tempSubMagTxt, KakaoVO kakaoVO, int count) { // String tempSubMagTxt = kakaoVO.getSubMsgTxt().replace("\r\n", "\n"); // String tempSubMagTxt = msgTxt; //대체문자에 변환문자가 있는경우 String[] varNm = new String[kakaoVO.getVarNmList().size()]; int q=0; if(varNm.length != 0) { for(String temp : kakaoVO.getVarNmList()) { temp = temp.replaceAll("\\#\\{" , "§§"); temp = temp.replaceAll("\\}" , "§"); varNm[q] = temp; q++; } List<String[]> varValList = kakaoVO.getVarValList(); // value 값 tempSubMagTxt = tempSubMagTxt.replaceAll(String.valueOf((char)13), ""); tempSubMagTxt = tempSubMagTxt.replaceAll("\\#\\{" , "§§"); tempSubMagTxt = tempSubMagTxt.replaceAll("\\}" , "§"); String[] array = varValList.get(count)[0].split("§"); for(int i=0; i < varNm.length; i++) { if (tempSubMagTxt.indexOf(varNm[i]) > -1) { if(array[i] != null) { System.out.println("as : "+varNm[i] +" : "+ StringUtil.getString(array[i]).replace('Ï', ',')); tempSubMagTxt = tempSubMagTxt.replaceAll(varNm[i] , StringUtil.getString(array[i]).replace('Ï', ',')); System.out.println(varNm[i] +" : "+ array[i].replace('Ï', ',')); }else { tempSubMagTxt = tempSubMagTxt.replaceAll(varNm[i] , ""); } } } } return tempSubMagTxt; } }

          
        
    
    
Copyright Yona authors & © NAVER Corp. & NAVER LABS Supported by NAVER CLOUD PLATFORM

or
Sign in with github login with Google Sign in with Google
Reset password | Sign up