From e7b0d509e090ed2a7a91e29bea120e02b75baa5c Mon Sep 17 00:00:00 2001 From: hylee Date: Fri, 19 May 2023 10:45:36 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=ED=94=84=EB=A1=9C=EC=A0=9D?= =?UTF-8?q?=ED=8A=B8=20=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD=20=EB=B0=8F?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 + .../cmn/interceptor/CertifInterceptor.java | 2 +- .../api/access/service/AccessKeyService.java | 2 +- .../access/service/AccessTokenService.java | 2 +- .../service/impl/AccessKeyServiceImpl.java | 13 +- .../service/impl/AccessTokenServiceImpl.java | 4 +- .../access/web/AccessKeyRestController.java | 41 +-- .../mjon/api/send/mapper/SendMapper.java | 22 ++ .../send/service/impl/SendServiceImpl.java | 272 +++++++++++++++++- .../mjon/api/send/web/SendRestController.java | 6 +- src/main/resources/mapper/Send/SendMapper.xml | 20 ++ .../resources/mapper/api/AccessKeyMapper.xml | 8 +- .../mapper/api/AccessTokenMapper.xml | 8 +- 13 files changed, 352 insertions(+), 56 deletions(-) create mode 100644 src/main/java/com/itn/mjonApi/mjon/api/send/mapper/SendMapper.java create mode 100644 src/main/resources/mapper/Send/SendMapper.xml diff --git a/pom.xml b/pom.xml index 32d1437..61acee6 100644 --- a/pom.xml +++ b/pom.xml @@ -104,6 +104,14 @@ springfox-swagger-ui 3.0.0 + + + + org.apache.commons + commons-lang3 + 3.12.0 + + diff --git a/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java b/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java index 12f33df..7e5abc2 100644 --- a/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java +++ b/src/main/java/com/itn/mjonApi/cmn/interceptor/CertifInterceptor.java @@ -2,7 +2,7 @@ package com.itn.mjonApi.cmn.interceptor; //import java.sql.Date; -import com.itn.mjonApi.mjon.api.access.service.mapper.domain.AccessKeyVO; +import com.itn.mjonApi.mjon.api.access.mapper.domain.AccessKeyVO; import com.itn.mjonApi.mjon.log.service.mapper.domain.LettnLoginLogVO; import com.itn.mjonApi.cmn.idgen.service.IdgenService; import com.itn.mjonApi.mjon.api.access.service.AccessKeyService; diff --git a/src/main/java/com/itn/mjonApi/mjon/api/access/service/AccessKeyService.java b/src/main/java/com/itn/mjonApi/mjon/api/access/service/AccessKeyService.java index db14191..6145e41 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/access/service/AccessKeyService.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/access/service/AccessKeyService.java @@ -1,6 +1,6 @@ package com.itn.mjonApi.mjon.api.access.service; -import com.itn.mjonApi.mjon.api.access.service.mapper.domain.AccessKeyVO; +import com.itn.mjonApi.mjon.api.access.mapper.domain.AccessKeyVO; import com.itn.mjonApi.cmn.msg.RestResponse; public interface AccessKeyService { diff --git a/src/main/java/com/itn/mjonApi/mjon/api/access/service/AccessTokenService.java b/src/main/java/com/itn/mjonApi/mjon/api/access/service/AccessTokenService.java index 5945ecf..1e917f9 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/access/service/AccessTokenService.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/access/service/AccessTokenService.java @@ -1,6 +1,6 @@ package com.itn.mjonApi.mjon.api.access.service; -import com.itn.mjonApi.mjon.api.access.service.mapper.domain.AccessKeyVO; +import com.itn.mjonApi.mjon.api.access.mapper.domain.AccessKeyVO; import com.itn.mjonApi.cmn.msg.RestResponse; public interface AccessTokenService { diff --git a/src/main/java/com/itn/mjonApi/mjon/api/access/service/impl/AccessKeyServiceImpl.java b/src/main/java/com/itn/mjonApi/mjon/api/access/service/impl/AccessKeyServiceImpl.java index e2bfaf9..7c61656 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/access/service/impl/AccessKeyServiceImpl.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/access/service/impl/AccessKeyServiceImpl.java @@ -1,16 +1,15 @@ package com.itn.mjonApi.mjon.api.access.service.impl; -import java.time.LocalDateTime; -import java.util.List; - +import com.itn.mjonApi.cmn.msg.RestResponse; +import com.itn.mjonApi.mjon.api.access.mapper.AccessKeyMapper; +import com.itn.mjonApi.mjon.api.access.mapper.domain.AccessKeyVO; +import com.itn.mjonApi.mjon.api.access.service.AccessKeyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; -import com.itn.mjonApi.mjon.api.access.service.mapper.domain.AccessKeyVO; -import com.itn.mjonApi.cmn.msg.RestResponse; -import com.itn.mjonApi.mjon.api.access.service.AccessKeyService; -import com.itn.mjonApi.mjon.api.access.service.mapper.AccessKeyMapper; +import java.time.LocalDateTime; +import java.util.List; @Service public class AccessKeyServiceImpl implements AccessKeyService { diff --git a/src/main/java/com/itn/mjonApi/mjon/api/access/service/impl/AccessTokenServiceImpl.java b/src/main/java/com/itn/mjonApi/mjon/api/access/service/impl/AccessTokenServiceImpl.java index 09f8683..478f466 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/access/service/impl/AccessTokenServiceImpl.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/access/service/impl/AccessTokenServiceImpl.java @@ -7,11 +7,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; -import com.itn.mjonApi.mjon.api.access.service.mapper.domain.AccessKeyVO; +import com.itn.mjonApi.mjon.api.access.mapper.domain.AccessKeyVO; import com.itn.mjonApi.cmn.idgen.mapper.domain.IdgenVO; import com.itn.mjonApi.cmn.msg.RestResponse; import com.itn.mjonApi.mjon.api.access.service.AccessTokenService; -import com.itn.mjonApi.mjon.api.access.service.mapper.AccessTokenMapper; +import com.itn.mjonApi.mjon.api.access.mapper.AccessTokenMapper; @Service public class AccessTokenServiceImpl implements AccessTokenService { diff --git a/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java b/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java index 68645ee..eff0ace 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/access/web/AccessKeyRestController.java @@ -1,23 +1,17 @@ package com.itn.mjonApi.mjon.api.access.web; -import java.time.LocalDateTime; - -import org.json.simple.JSONObject; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import com.itn.mjonApi.mjon.api.access.service.mapper.domain.SendMsgVO; import com.itn.mjonApi.cmn.msg.PlainResponse; import com.itn.mjonApi.cmn.msg.RestResponse; import com.itn.mjonApi.mjon.api.access.service.AccessKeyService; import com.itn.mjonApi.mjon.api.access.service.AccessTokenService; +import com.itn.mjonApi.mjon.api.access.mapper.domain.SendMsgVO; +import org.json.simple.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; /** * @author User @@ -98,24 +92,7 @@ public class AccessKeyRestController { //System.out.println(p_name_1); //System.out.println(p_name_2); - //sendMsg 문자 발송 전 체크 사항 - //step1.발신자 전화번호 사용 가능 여부 체크(해당 사용자의 기 등록된 번호만 발송 가능) - // 1010 - - //step2.수신자 전화번호 정상 여부 체크(정상 번호에 대해서만 발송 가능) - // 1020 - - //step3.문자 내용 정상 여부 확인 - 스미싱 문구는 발송 안됨 - // 1030 - - //step4.치환명 정상 여부 확인 - // 1040 - - //step5.발송일시 정상여부 확인 - // 1050 - - //step6.문자 타입에 따른 비용 처리 가능 여부 확인 - // 1060 + return ResponseEntity.ok( new RestResponse( diff --git a/src/main/java/com/itn/mjonApi/mjon/api/send/mapper/SendMapper.java b/src/main/java/com/itn/mjonApi/mjon/api/send/mapper/SendMapper.java new file mode 100644 index 0000000..0028311 --- /dev/null +++ b/src/main/java/com/itn/mjonApi/mjon/api/send/mapper/SendMapper.java @@ -0,0 +1,22 @@ +package com.itn.mjonApi.mjon.api.send.mapper; + +import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgRequestVO; +import org.apache.ibatis.annotations.Mapper; + +/** + * packageName : com.itn.mjonApi.mjon.api.send.mapper.domain + * fileName : SendMapper + * author : hylee + * date : 2023-05-19 + * description : + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- + * 2023-05-19 hylee 최초 생성 + */ +@Mapper +public interface SendMapper { + + Boolean findByCallFrom(MsgRequestVO msgRequestVO); + +} diff --git a/src/main/java/com/itn/mjonApi/mjon/api/send/service/impl/SendServiceImpl.java b/src/main/java/com/itn/mjonApi/mjon/api/send/service/impl/SendServiceImpl.java index b46cbee..c09ae05 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/send/service/impl/SendServiceImpl.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/send/service/impl/SendServiceImpl.java @@ -1,14 +1,21 @@ package com.itn.mjonApi.mjon.api.send.service.impl; import com.itn.mjonApi.cmn.apiServer.ApiService; +import com.itn.mjonApi.mjon.api.send.mapper.SendMapper; import com.itn.mjonApi.mjon.api.send.mapper.domain.MjonResponseVO; import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgRequestVO; import com.itn.mjonApi.mjon.api.send.service.SendService; +import com.itn.mjonApi.util.MunjaUtil; import lombok.extern.slf4j.Slf4j; import org.apache.catalina.connector.Response; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.io.UnsupportedEncodingException; +import java.util.Arrays; +import java.util.concurrent.atomic.AtomicInteger; + @Slf4j @Service @@ -16,16 +23,93 @@ public class SendServiceImpl implements SendService { private ApiService apiService; + @Autowired + SendMapper sendMapper; @Autowired public SendServiceImpl(ApiService apiService) { this.apiService = apiService; } + private static final String replaseStrList = "[*이름*],[*1*],[*2*],[*3*],[*4*]"; @Override public MjonResponseVO sendMsgData(MsgRequestVO msgRequestVO) throws Exception { - log.info("msgRequestVO.getReserveYn() :: [{}]",msgRequestVO.getReserveYn()); + log.info(" :: sendMsgData ::"); + + Boolean byCallFrom = sendMapper.findByCallFrom(msgRequestVO); + log.info(" :: byCallFrom ::" + byCallFrom); + if(byCallFrom){ + + } + /* + 발신번호 체크 + SELECT PHONE_NUMBER + FROM MJ_PHONE_MEMBER + WHERE 1=1 + AND USER_ID = 'goodgkdus' + AND AUTH_YN = 'Y' + AND PHM_TYPE = '01' + ORDER BY BASE_YN DESC + * */ + + //sendMsg 문자 발송 전 체크 사항 + //step1.발신자 전화번호 사용 가능 여부 체크(해당 사용자의 기 등록된 번호만 발송 가능) + // 1010 + + + + //step2.수신자 전화번호 정상 여부 체크(정상 번호에 대해서만 발송 가능) + // 1020 + + //step3.문자 내용 정상 여부 확인 - 스미싱 문구는 발송 안됨 + // 1030 + + //step4.치환명 정상 여부 확인 + // 1040 + + //step5.발송일시 정상여부 확인 + // 1050 + + //step6.문자 타입에 따른 비용 처리 가능 여부 확인 + // 1060 + + + + + + +/* + + + String message = ""; + // 폰번호 확인 - 빈 값 -> 유효성 정규식 + message = this.getCallToListChk(msgRequestVO); + if(StringUtils.isNotEmpty(message)){ + return MjonResponseVO.builder() + .result("fail") + .message(message) + .build(); + } + + + // 치환데이터 여부 확인 + msgRequestVO.setTxtReplYn(this.getTxtReplYn(msgRequestVO)); + + if("Y".equals(msgRequestVO.getTxtReplYn())){ + + //일괄변환 문자에 콤마(,)가 들어가있으면 배열로 넘길때 문제가 발생하여 특수문자(§)로 치환하여 넘겨주도록 한다. + msgRequestVO = this.getReplaceCommaToStrSymbol(msgRequestVO); + + // 치환 후 단문 장문 개수 구하기 + msgRequestVO = getLengthOfShortAndLongMsg(msgRequestVO); + + } + + + + + // 스팸체크 하는 부분 MjonResponseVO spamChkEntity = apiService.postForEntity( "/web/user/login/selectSpamTxtChkAjax.do" @@ -37,6 +121,8 @@ public class SendServiceImpl implements SendService { msgRequestVO.setSpamStatus("Y"); }; + log.info("msgRequestVO.getSpamStatus() :: [[}]",msgRequestVO.getSpamStatus()); + // 문자 전송하는 부분 MjonResponseVO munjaSendResponse = apiService.postForEntity( "/web/user/login/sendMsgDataAjax.do" @@ -44,10 +130,190 @@ public class SendServiceImpl implements SendService { , String.class ); +*/ - return munjaSendResponse; -// return spamChkEntity; + return null; +// return munjaSendResponse; + } + + /** + * 치환 후 단문 장문 msg 개수 구하기 + * @param msgRequestVO + * @return msgRequestVO + * @throws UnsupportedEncodingException + */ + private static MsgRequestVO getLengthOfShortAndLongMsg(MsgRequestVO msgRequestVO) throws UnsupportedEncodingException { + String charset = "euc-kr"; + int totListCnt = msgRequestVO.getCallToList().length; + + int shortMsgCnt=0; // 치환 후 단문 개수 + int longMsgCnt=0; // 치환 후 장문 개수 + for(int i=0; i < totListCnt; i ++) { + String smsTxt = msgRequestVO.getSmsTxt().replaceAll(String.valueOf((char)13), ""); //발송 문자 내용 + + String[] nameList = msgRequestVO.getNameList(); //치환 이름 리스트 + String[] phone = msgRequestVO.getCallToList(); //수신자 휴대폰 번호 + String[] rep1 = msgRequestVO.getRep1List(); //치환 문자1 리스트 + String[] rep2 = msgRequestVO.getRep2List(); //치환 문자2 리스트 + String[] rep3 = msgRequestVO.getRep3List(); //치환 문자3 리스트 + String[] rep4 = msgRequestVO.getRep4List(); //치환 문자4 리스트 + + if (smsTxt.indexOf("[*이름*]") > -1) { + if(nameList.length > i && StringUtils.isNotEmpty(nameList[i])) { + smsTxt = smsTxt.replaceAll("\\[\\*이름\\*\\]", MunjaUtil.getString(nameList[i].replaceAll("§", ","))); + }else { + smsTxt = smsTxt.replaceAll("\\[\\*이름\\*\\]", ""); + } + } + if (smsTxt.indexOf("[*1*]") > -1) { + if(rep1.length > i && StringUtils.isNotEmpty(rep1[i])) { + smsTxt = smsTxt.replaceAll("\\[\\*1\\*\\]", MunjaUtil.getString(rep1[i].replaceAll("§", ","))); + }else { + smsTxt = smsTxt.replaceAll("\\[\\*1\\*\\]", ""); + } + } + if (smsTxt.indexOf("[*2*]") > -1) { + if(rep2.length > i && StringUtils.isNotEmpty(rep2[i])) { + smsTxt = smsTxt.replaceAll("\\[\\*2\\*\\]", MunjaUtil.getString(rep2[i].replaceAll("§", ","))); + }else { + smsTxt = smsTxt.replaceAll("\\[\\*2\\*\\]", ""); + } + } + if (smsTxt.indexOf("[*3*]") > -1) { + if(rep3.length > i && StringUtils.isNotEmpty(rep3[i])) { + smsTxt = smsTxt.replaceAll("\\[\\*3\\*\\]", MunjaUtil.getString(rep3[i].replaceAll("§", ","))); + }else { + smsTxt = smsTxt.replaceAll("\\[\\*3\\*\\]", ""); + } + } + if (smsTxt.indexOf("[*4*]") > -1) { + if(rep4.length > i && StringUtils.isNotEmpty(rep4[i])) { + smsTxt = smsTxt.replaceAll("\\[\\*4\\*\\]", MunjaUtil.getString(rep4[i].replaceAll("§", ","))); + }else { + smsTxt = smsTxt.replaceAll("\\[\\*4\\*\\]", ""); + } + } + + + int bytes = smsTxt.getBytes(charset).length; + + if(bytes > 90) {//장문문자 리스트 만들기 + longMsgCnt++; + }else {//단문문자 리스트 만들기 + shortMsgCnt++; + } + } + msgRequestVO.setLongMsgCnt(Integer.toString(longMsgCnt)); + msgRequestVO.setShortMsgCnt(Integer.toString(shortMsgCnt)); + + return msgRequestVO; + } + + /** + * 치환문자가 있으면 , => §로 치환 + * @param msgRequestVO + * @return + */ + private static MsgRequestVO getReplaceCommaToStrSymbol(MsgRequestVO msgRequestVO) { + + AtomicInteger index = new AtomicInteger(); + + // 이름 배열 + if(StringUtils.isNotEmpty(msgRequestVO.getNameStr())) + { + msgRequestVO.setNameList(msgRequestVO.getNameStr().split("\\|")); + String[] nameList = new String[msgRequestVO.getNameList().length]; + Arrays.stream(msgRequestVO.getNameList()).forEach(name -> { + nameList[index.getAndIncrement()] = MunjaUtil.replaceCommaToStrSymbol(name); + }); + msgRequestVO.setNameList(nameList); + } + + // Rep1 배열 + if(StringUtils.isNotEmpty(msgRequestVO.getRep1Str())) + { + index.set(0); + msgRequestVO.setRep1List(msgRequestVO.getRep1Str().split("\\|")); + String[] rep1List = new String[msgRequestVO.getRep1List().length]; + Arrays.stream(msgRequestVO.getRep1List()).forEach(str -> { + rep1List[index.getAndIncrement()] = MunjaUtil.replaceCommaToStrSymbol(str); + }); + msgRequestVO.setRep1List(rep1List); + + } + + // Rep2 배열 + if(StringUtils.isNotEmpty(msgRequestVO.getRep2Str())) + { + index.set(0); + msgRequestVO.setRep2List(msgRequestVO.getRep2Str().split("\\|")); + String[] rep2List = new String[msgRequestVO.getRep2List().length]; + Arrays.stream(msgRequestVO.getRep2List()).forEach(str -> { + rep2List[index.getAndIncrement()] = MunjaUtil.replaceCommaToStrSymbol(str); + }); + msgRequestVO.setRep2List(rep2List); + } + + // Rep3 배열 + if(StringUtils.isNotEmpty(msgRequestVO.getRep3Str())) + { + index.set(0); + msgRequestVO.setRep3List(msgRequestVO.getRep3Str().split("\\|")); + String[] rep3List = new String[msgRequestVO.getRep3List().length]; + Arrays.stream(msgRequestVO.getRep3List()).forEach(str -> { + rep3List[index.getAndIncrement()] = MunjaUtil.replaceCommaToStrSymbol(str); + }); + msgRequestVO.setRep3List(rep3List); + } + + // Rep4 배열 + if(StringUtils.isNotEmpty(msgRequestVO.getRep4Str())) + { + index.set(0); + msgRequestVO.setRep4List(msgRequestVO.getRep4Str().split("\\|")); + String[] rep4List = new String[msgRequestVO.getRep4List().length]; + Arrays.stream(msgRequestVO.getRep4List()).forEach(str -> { + rep4List[index.getAndIncrement()] = MunjaUtil.replaceCommaToStrSymbol(str); + }); + msgRequestVO.setRep4List(rep4List); + } + return msgRequestVO; + } + + /** + * 치환 문자 여부 확인 + * @param msgRequestVO + * @return + */ + private static String getTxtReplYn(MsgRequestVO msgRequestVO) { + + int callLen = msgRequestVO.getCallToList().length; + // 치환 데이터 확인 + Arrays.stream(replaseStrList.split(",")).forEach( + str -> { + if(msgRequestVO.getSmsTxt().indexOf(str) > -1){ + msgRequestVO.setTxtReplYn("Y"); + } + } + ); + return msgRequestVO.getTxtReplYn(); + } + + /** + * 수신자 목록 번호 검증 + * @param msgRequestVO + * @return + */ + private static String getCallToListChk(MsgRequestVO msgRequestVO) { + String message = ""; + for(String callTo : msgRequestVO.getCallToList()){ + if(!MunjaUtil.checkPhoneNumberEmpty(callTo)){ + message = "수신 목록에 핸드폰 번호가 없는 항목이 있습니다."; break;}; + if(!MunjaUtil.validatePNumWithRegex(callTo)){ + message = "휴대폰 번호가 올바르지 않습니다. : " + callTo; break;}; + } + return message; } } diff --git a/src/main/java/com/itn/mjonApi/mjon/api/send/web/SendRestController.java b/src/main/java/com/itn/mjonApi/mjon/api/send/web/SendRestController.java index 27e0b7b..34d4385 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/send/web/SendRestController.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/send/web/SendRestController.java @@ -3,8 +3,10 @@ package com.itn.mjonApi.mjon.api.send.web; import com.itn.mjonApi.mjon.api.send.mapper.domain.MjonResponseVO; import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgRequestVO; import com.itn.mjonApi.mjon.api.send.service.SendService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @@ -43,7 +45,9 @@ public class SendRestController { * @Discription 문자 발송 테스트 * @return */ - @PostMapping("/api/send/sendTest") + @CrossOrigin("*") // 모든 요청에 접근 허용 + @PostMapping("/api/send/sendMsg") + @ApiOperation(value= "단문 문자 전송", notes = "같은 내용으로 여러명에게 보냄") public MjonResponseVO sendTest(MsgRequestVO msgRequestVO) throws Exception { return sendService.sendMsgData(msgRequestVO); diff --git a/src/main/resources/mapper/Send/SendMapper.xml b/src/main/resources/mapper/Send/SendMapper.xml new file mode 100644 index 0000000..0250391 --- /dev/null +++ b/src/main/resources/mapper/Send/SendMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/api/AccessKeyMapper.xml b/src/main/resources/mapper/api/AccessKeyMapper.xml index 693332f..aa0308a 100644 --- a/src/main/resources/mapper/api/AccessKeyMapper.xml +++ b/src/main/resources/mapper/api/AccessKeyMapper.xml @@ -3,9 +3,9 @@ - + - SELECT * FROM lettngnrlmber_access_key @@ -74,7 +74,7 @@ - SELECT FROM @@ -84,7 +84,7 @@ - SELECT FROM diff --git a/src/main/resources/mapper/api/AccessTokenMapper.xml b/src/main/resources/mapper/api/AccessTokenMapper.xml index bbc47d5..0864f24 100644 --- a/src/main/resources/mapper/api/AccessTokenMapper.xml +++ b/src/main/resources/mapper/api/AccessTokenMapper.xml @@ -3,9 +3,9 @@ - + - SELECT * FROM lettngnrlmber_access_token @@ -74,7 +74,7 @@ - SELECT FROM @@ -85,7 +85,7 @@ - SELECT FROM