diff --git a/pom.xml b/pom.xml
index 01c6f41..05a9236 100644
--- a/pom.xml
+++ b/pom.xml
@@ -122,6 +122,12 @@
org.springframework.boot
spring-boot-starter-aop
+
+ org.jetbrains
+ annotations
+ 16.0.1
+ compile
+
diff --git a/src/main/java/com/itn/mjonApi/cmn/aop/SendAspect.java b/src/main/java/com/itn/mjonApi/cmn/aop/SendAspect.java
index c3e0865..73244af 100644
--- a/src/main/java/com/itn/mjonApi/cmn/aop/SendAspect.java
+++ b/src/main/java/com/itn/mjonApi/cmn/aop/SendAspect.java
@@ -4,9 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.itn.mjonApi.cmn.idgen.service.IdgenService;
-import com.itn.mjonApi.cmn.msg.FailRestResponse;
import com.itn.mjonApi.cmn.msg.RestResponse;
-import com.itn.mjonApi.cmn.msg.SendSuccessRestResponse;
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgRequestVO;
import com.itn.mjonApi.mjon.log.service.mapper.LettnAccessLogMapper;
import com.itn.mjonApi.mjon.log.service.mapper.domain.LettnAccessLogVO;
@@ -104,18 +102,7 @@ public class SendAspect {
RestResponse restResponse = (RestResponse) returnValue;
- // TODO :: 성공 실패에 따른 로그 처리 예정
- if(restResponse.getObject().toString().indexOf("SendSuccessRestResponse") > -1){
- log.info(" :: SendSuccessRestResponse :: ");
- SendSuccessRestResponse sendSuccessRestResponse = (SendSuccessRestResponse) restResponse.getObject();
- resutlCode = sendSuccessRestResponse.getResultCode();
- }else{
- log.info(" :: FailRestResponse :: ");
-
- FailRestResponse failRestResponse = (FailRestResponse) restResponse.getObject();
- resutlCode = failRestResponse.getResultCode();
- }
// lettngnrlmber_access_log 응답값 Udpate
LettnAccessLogVO lettnAccessLogVO = new LettnAccessLogVO()
diff --git a/src/main/java/com/itn/mjonApi/cmn/msg/FailRestResponse.java b/src/main/java/com/itn/mjonApi/cmn/msg/FailRestResponse.java
deleted file mode 100644
index 0b13d8d..0000000
--- a/src/main/java/com/itn/mjonApi/cmn/msg/FailRestResponse.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.itn.mjonApi.cmn.msg;
-
-import com.itn.mjonApi.mjon.api.send.mapper.domain.MjonResponseVO;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-@Setter
-@Getter
-@NoArgsConstructor
-@AllArgsConstructor
-public class FailRestResponse {
-
- //private HttpStatus status;
- private String resultCode;
-
- private String message;
-
-
- /*
- * 200-OK : 정상접속
- * 401-Unauthorized : 인증실패
- *
- * */
-
-
- public static FailRestResponse getSendFailResponse(String resultCode) {
- FailRestResponse sendFailResponse = new FailRestResponse();
- sendFailResponse.setResultCode(StatMsg.valueOf(resultCode).getCode());
- sendFailResponse.setMessage(StatMsg.valueOf(resultCode).getMsg());
-
- return sendFailResponse;
- }
-
- /**
- * MjonResponseVO -> 변환 -> SendFailRestResponse
- * @param mjonResponseVO
- * @return
- */
- public static FailRestResponse convertMjonDataToApiResponse(MjonResponseVO mjonResponseVO) {
- String result = mjonResponseVO.getResult();
- String message = mjonResponseVO.getMessage();
- String enumStr = "";
- switch (result) {
- case "statusFail" : enumStr = "1070"; // 회원 정지
- break;
- case "smsLengFail" : enumStr = "1080"; // 문자 길이 초과
- break;
- case "fail" : // 문자온 프로젝트에서 result가 fail로 다양한 에러가 리턴하여 분기처리함
- if(message.indexOf("문자 치환 후 전송 문자 길이를 초과하였습니다.")>-1)
- enumStr = "1050"; // 치환 후 문자 길이 초과
- if(message.indexOf("치환문자 데이터가 없습니다")>-1)
- enumStr = "1040"; // 치환 데이터 오류
- if(message.indexOf("치환 후 전송 문자 길이를 초과")>-1)
- enumStr = "1050"; // 치환 데이터 오류
- break;
- default: enumStr = "1099"; // 기타 시스템 오류
- break;
- }
-
- return getSendFailResponse(enumStr);
- }
-
-}
diff --git a/src/main/java/com/itn/mjonApi/cmn/msg/RestResponse.java b/src/main/java/com/itn/mjonApi/cmn/msg/RestResponse.java
index 6932496..fa64daa 100644
--- a/src/main/java/com/itn/mjonApi/cmn/msg/RestResponse.java
+++ b/src/main/java/com/itn/mjonApi/cmn/msg/RestResponse.java
@@ -1,53 +1,63 @@
package com.itn.mjonApi.cmn.msg;
-import lombok.*;
-import org.springframework.http.HttpStatus;
+import lombok.Getter;
+import lombok.Setter;
import java.time.LocalDateTime;
-import java.util.List;
@Setter
@Getter
public class RestResponse{
- //private HttpStatus status;
- private int resultCode;
+ private String resultCode = "0";
- private String message;
+ private Object data;
- private LocalDateTime localDateTime;
+ private LocalDateTime localDateTime = LocalDateTime.now();
- private Object object;
-
- /*
- * 200-OK : 정상접속
- * 401-Unauthorized : 인증실패
- *
- * */
+ /**
+ * 성공 생성자
+ * 성공은 resultCode = 0
+ */
+ public RestResponse(Object data) {
+ this.data=data;
+ }
+ /**
+ * 실패 생성자
+ * @param STAT_CODE
+ */
+ public RestResponse(String STAT_CODE) {
+ this.resultCode=StatMsg.valueOf(STAT_CODE).getCode();
+ this.data=StatMsg.valueOf(STAT_CODE).getMsg();
+ }
+/*
public RestResponse(HttpStatus status, String message, LocalDateTime timestamp) {
this.resultCode = status.value();
- checkMessage(status, message);
+ checkMessage(status, message);
this.localDateTime = timestamp;
}
-
+*/
+
+/*
public RestResponse(HttpStatus status, String message, LocalDateTime timestamp, Object object) {
this.resultCode = status.value();
checkMessage(status, message);
- this.object= object;
+ this.data = object;
this.localDateTime = timestamp;
- }
+ }
+*/
- public RestResponse(HttpStatus status, String message, LocalDateTime timestamp, List> objectList) {
+ /* public RestResponse(HttpStatus status, String message, LocalDateTime timestamp, List> objectList) {
this.resultCode = status.value();
checkMessage(status, message);
this.localDateTime = timestamp;
- }
+ }*/
- private void checkMessage(HttpStatus status, String message) {
+ /*private void checkMessage(HttpStatus status, String message) {
if ("".equals(message)){ this.message = status.name();
}else { this.message = message; }
- }
+ }*/
}
diff --git a/src/main/java/com/itn/mjonApi/cmn/msg/SendSuccessRestResponse.java b/src/main/java/com/itn/mjonApi/cmn/msg/SendSuccessRestResponse.java
index fd365d9..fabacbf 100644
--- a/src/main/java/com/itn/mjonApi/cmn/msg/SendSuccessRestResponse.java
+++ b/src/main/java/com/itn/mjonApi/cmn/msg/SendSuccessRestResponse.java
@@ -4,7 +4,6 @@ import com.itn.mjonApi.mjon.api.send.mapper.domain.MjonResponseVO;
import lombok.*;
import lombok.extern.slf4j.Slf4j;
-import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
@@ -17,9 +16,9 @@ import java.util.stream.Collectors;
public class SendSuccessRestResponse {
//private HttpStatus status;
- private String resultCode; // 성공 코드
+// private String resultCode; // 성공 코드
- private String message; // 메세지
+// private String message; // 메세지
private String msgGroupId; // 문자 전송 그룹 아이디
@@ -33,7 +32,7 @@ public class SendSuccessRestResponse {
private String msgType; // 메세지 타입
- private LocalDateTime localDateTime;
+// private LocalDateTime localDateTime;
/*
* 200-OK : 정상접속
@@ -45,16 +44,14 @@ public class SendSuccessRestResponse {
* @param mjonResponseVO
* @return
*/
- public static SendSuccessRestResponse convertMjonDataToApiResponse(MjonResponseVO mjonResponseVO, String STAT_CODE) {
+ public static SendSuccessRestResponse convertMjonDataToApiResponse(MjonResponseVO mjonResponseVO) {
return SendSuccessRestResponse.builder()
- .resultCode(StatMsg.valueOf(STAT_CODE).getCode()) // 성공 코드 200 - StatMsg 참고
- .message(StatMsg.valueOf(STAT_CODE).getMsg()) // 성공은 message가 없음 - StatMsg 참고
.msgGroupId(mjonResponseVO.getMsgGroupId()) // 전송 메세지 그룹 ID
.successCnt(mjonResponseVO.getResultSts()) // 성공 건수
.blockCnt(mjonResponseVO.getResultBlockSts()) // 수신거부 건수
- .localDateTime(LocalDateTime.now()) // 현재 시간
+// .localDateTime(LocalDateTime.now()) // 현재 시간
.msgType(StatMsg.valueOf("msgType"+mjonResponseVO.getMsgType()).getMsg())
.build();
@@ -99,7 +96,7 @@ public class SendSuccessRestResponse {
.successCnt(Integer.toString(successCnt)) // 성공 건수
.blockCnt(Integer.toString(blockCnt)) // 수신거부 건수
.failCnt(Integer.toString(failCnt)) // 수신거부 건수
- .localDateTime(LocalDateTime.now()) // 현재 시간
+// .localDateTime(LocalDateTime.now()) // 현재 시간
.build();
}
diff --git a/src/main/java/com/itn/mjonApi/cmn/msg/StatMsg.java b/src/main/java/com/itn/mjonApi/cmn/msg/StatMsg.java
index 6a872e8..528a657 100644
--- a/src/main/java/com/itn/mjonApi/cmn/msg/StatMsg.java
+++ b/src/main/java/com/itn/mjonApi/cmn/msg/StatMsg.java
@@ -2,6 +2,11 @@ package com.itn.mjonApi.cmn.msg;
import lombok.Getter;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Random;
+
/**
* packageName : com.itn.mjonApi.cmn.msg
* fileName : statMsg
@@ -35,7 +40,7 @@ public enum StatMsg {
, STAT_1060("1060","발송 비용 부족")
, STAT_1070("1070","서비스 이용 정지 회원")
, STAT_1080("1080","문자 길이 초과")
- , STAT_1090("1090","요청 발송일시에 발송 불가")
+ , STAT_1090("1090","요청 발송일시에 발송 불가") // 아직 사용 안함
, STAT_1099("1099","기타 시스템 오류")
//======================================================================
@@ -43,9 +48,6 @@ public enum StatMsg {
, msgType6("장문","LMS")
-
-
-
;
private final String code;
@@ -56,4 +58,21 @@ public enum StatMsg {
this.msg = msg;
}
+ // Random을 만들기 위한 코드
+ private static final List VALUES = Collections.unmodifiableList(Arrays.asList(values()));
+ private static final int SIZE = VALUES.size();
+ private static final Random RANDOM = new Random();
+ public static String randomErrorStatCode() {
+ String errorCode = "";
+ while(true){
+ errorCode = VALUES.get(RANDOM.nextInt(SIZE)).getCode();
+ if(errorCode.length() > 3){
+ break;
+ }
+ }
+
+ return "STAT_"+errorCode;
+ }
+
+
}
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 7c61656..c00b169 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
@@ -5,10 +5,8 @@ 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 java.time.LocalDateTime;
import java.util.List;
@Service
@@ -21,20 +19,23 @@ public class AccessKeyServiceImpl implements AccessKeyService {
@Override
public RestResponse insert(AccessKeyVO accessKeyVO) {
int i_ret = accessKeyMapper.insert(accessKeyVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
+ return null;
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
}
@Override
public RestResponse selectR(AccessKeyVO accessKeyVO) {
AccessKeyVO MyMsgListVO = accessKeyMapper.selectR(accessKeyVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
+ return null;
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
}
@Override
public RestResponse selectL(AccessKeyVO accessKeyVO) {
List MyMsgListVO = accessKeyMapper.selectL(accessKeyVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
+ return null;
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
}
/*
@@ -56,12 +57,14 @@ public class AccessKeyServiceImpl implements AccessKeyService {
@Override
public RestResponse update(AccessKeyVO accessKeyVO) {
int i_ret = accessKeyMapper.update(accessKeyVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
+ return null;
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
}
@Override
public RestResponse delete(AccessKeyVO accessKeyVO) {
int i_ret = accessKeyMapper.delete(accessKeyVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
+ return null;
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
}
}
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 478f466..f6211d5 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
@@ -1,17 +1,14 @@
package com.itn.mjonApi.mjon.api.access.service.impl;
-import java.time.LocalDateTime;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Service;
-
-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.mapper.AccessTokenMapper;
+import com.itn.mjonApi.mjon.api.access.mapper.domain.AccessKeyVO;
+import com.itn.mjonApi.mjon.api.access.service.AccessTokenService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
@Service
public class AccessTokenServiceImpl implements AccessTokenService {
@@ -23,26 +20,30 @@ public class AccessTokenServiceImpl implements AccessTokenService {
@Override
public RestResponse findAll() {
List MyMsgListVO = accessTokenMapper.findAll();
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
+ return new RestResponse(MyMsgListVO);
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
}
@Override
public RestResponse insert(AccessKeyVO accessKeyVO) {
int i_ret = accessTokenMapper.insert(accessKeyVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
+ return null;
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
}
@Override
public RestResponse selectR(AccessKeyVO accessKeyVO) {
AccessKeyVO MyMsgListVO = accessTokenMapper.selectR(accessKeyVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
+ return new RestResponse(MyMsgListVO);
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
}
@Override
public RestResponse selectL(AccessKeyVO accessKeyVO) {
List MyMsgListVO = accessTokenMapper.selectL(accessKeyVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
+ return new RestResponse(MyMsgListVO);
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
}
/*
@@ -64,12 +65,14 @@ public class AccessTokenServiceImpl implements AccessTokenService {
@Override
public RestResponse update(AccessKeyVO accessKeyVO) {
int i_ret = accessTokenMapper.update(accessKeyVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
+ return null;
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
}
@Override
public RestResponse delete(AccessKeyVO accessKeyVO) {
int i_ret = accessTokenMapper.delete(accessKeyVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
+ return null;
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
}
}
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 eff0ace..a84d395 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
@@ -2,17 +2,14 @@ package com.itn.mjonApi.mjon.api.access.web;
import com.itn.mjonApi.cmn.msg.PlainResponse;
import com.itn.mjonApi.cmn.msg.RestResponse;
+import com.itn.mjonApi.mjon.api.access.mapper.domain.SendMsgVO;
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
*
@@ -39,14 +36,15 @@ public class AccessKeyRestController {
public ResponseEntity apiAccessTestTestGet(
SendMsgVO sendMsgVO
){
-
- return ResponseEntity.ok(
+
+ return null;
+/* return ResponseEntity.ok(
new RestResponse(
HttpStatus.OK
, HttpStatus.OK.getReasonPhrase()
, LocalDateTime.now()
)
- );
+ );*/
}
@@ -91,9 +89,11 @@ public class AccessKeyRestController {
//System.out.println(p_name_1);
//System.out.println(p_name_2);
-
-
+
+
+ return null;
+ /*
return ResponseEntity.ok(
new RestResponse(
HttpStatus.OK
@@ -101,7 +101,7 @@ public class AccessKeyRestController {
, LocalDateTime.now()
, "grp100"
)
- );
+ ); */
//AccessKeyVO
}
@@ -148,15 +148,16 @@ public class AccessKeyRestController {
//step6.문자 타입에 따른 비용 처리 가능 여부 확인
// 1060
-
- return this.MakePlainResponseResult(
- new PlainResponse(
- HttpStatus.OK
- , ""
- , LocalDateTime.now()
- )
- , "grp100"
- );
+
+ return null;
+// return this.MakePlainResponseResult(
+// new PlainResponse(
+// HttpStatus.OK
+// , ""
+// , LocalDateTime.now()
+// )
+// , "grp100"
+// );
}
@@ -197,15 +198,16 @@ public class AccessKeyRestController {
jsonObject.put("SMS", "50");
jsonObject.put("LMS", "30");
jsonObject.put("MMS", "20");
-
- return ResponseEntity.ok(
- new RestResponse(
- HttpStatus.OK
- , ""
- , LocalDateTime.now()
- , jsonObject
- )
- );
+
+ return null;
+// return ResponseEntity.ok(
+// new RestResponse(
+// HttpStatus.OK
+// , ""
+// , LocalDateTime.now()
+// , jsonObject
+// )
+// );
//AccessKeyVO
}
@@ -238,15 +240,16 @@ public class AccessKeyRestController {
//remain 체크 사항
//step1.잔액 확인 여부 체크
// 5010
-
- return this.MakePlainResponseResult(
- new PlainResponse(
- HttpStatus.OK
- , ""
- , LocalDateTime.now()
- )
- , "50|30|20"
- );
+
+ return null;
+// return this.MakePlainResponseResult(
+// new PlainResponse(
+// HttpStatus.OK
+// , ""
+// , LocalDateTime.now()
+// )
+// , "50|30|20"
+// );
//AccessKeyVO
}
diff --git a/src/main/java/com/itn/mjonApi/mjon/api/send/mapper/domain/MsgRequestVO.java b/src/main/java/com/itn/mjonApi/mjon/api/send/mapper/domain/MsgRequestVO.java
index 583809c..40b303f 100644
--- a/src/main/java/com/itn/mjonApi/mjon/api/send/mapper/domain/MsgRequestVO.java
+++ b/src/main/java/com/itn/mjonApi/mjon/api/send/mapper/domain/MsgRequestVO.java
@@ -115,6 +115,7 @@ public class MsgRequestVO implements Serializable {
@ApiModelProperty(value = "문자 종류 일반:N, 광고:A, 선거:C", example = "N", hidden = true)
private String msgKind="N"; // '문자 종류 일반:N, 광고:A, 선거:C',
+ private String test_yn; // 테스트 여부
// private String msgId ;// '문자ID',
diff --git a/src/main/java/com/itn/mjonApi/mjon/api/send/mapper/domain/MsgsRequestVO.java b/src/main/java/com/itn/mjonApi/mjon/api/send/mapper/domain/MsgsRequestVO.java
index dd9d322..f2556a3 100644
--- a/src/main/java/com/itn/mjonApi/mjon/api/send/mapper/domain/MsgsRequestVO.java
+++ b/src/main/java/com/itn/mjonApi/mjon/api/send/mapper/domain/MsgsRequestVO.java
@@ -117,6 +117,7 @@ public class MsgsRequestVO implements Serializable {
@ApiModelProperty(value = "문자 종류 일반:N, 광고:A, 선거:C", example = "N", hidden = true)
private String msgKind = "N"; // '문자 종류 일반:N, 광고:A, 선거:C',
+ private String test_yn; // 테스트 여부
// 수신자 발송txt 각각 _1~_100
// 교차로 있어야 로직이 가능함
diff --git a/src/main/java/com/itn/mjonApi/mjon/api/send/service/SendService.java b/src/main/java/com/itn/mjonApi/mjon/api/send/service/SendService.java
index 64304b3..8362c06 100644
--- a/src/main/java/com/itn/mjonApi/mjon/api/send/service/SendService.java
+++ b/src/main/java/com/itn/mjonApi/mjon/api/send/service/SendService.java
@@ -3,12 +3,11 @@ package com.itn.mjonApi.mjon.api.send.service;
import com.itn.mjonApi.cmn.msg.RestResponse;
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgRequestVO;
import com.itn.mjonApi.mjon.api.send.mapper.domain.MsgsRequestVO;
-import org.springframework.http.ResponseEntity;
public interface SendService {
RestResponse sendMsgData(MsgRequestVO msgRequestVO) throws Exception;
- ResponseEntity> sendMsgsData(MsgsRequestVO msgsRequestVO) throws Exception;
+ RestResponse sendMsgsData(MsgsRequestVO msgsRequestVO) throws Exception;
}
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 f1716e3..d059dcf 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,9 +1,9 @@
package com.itn.mjonApi.mjon.api.send.service.impl;
import com.itn.mjonApi.cmn.apiServer.ApiService;
-import com.itn.mjonApi.cmn.msg.FailRestResponse;
import com.itn.mjonApi.cmn.msg.RestResponse;
import com.itn.mjonApi.cmn.msg.SendSuccessRestResponse;
+import com.itn.mjonApi.cmn.msg.StatMsg;
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;
@@ -15,13 +15,10 @@ import org.apache.catalina.connector.Response;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
-import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -49,19 +46,23 @@ public class SendServiceImpl implements SendService {
@Override
public RestResponse sendMsgData(MsgRequestVO msgRequestVO) throws Exception {
+ if(StringUtils.isNotEmpty(msgRequestVO.getTest_yn())){
+ // YF => 실패 테스트 데이터
+ return this._getTestReturnData(msgRequestVO.getTest_yn());
+ }
//sendMsg 문자 발송 전 체크 사항
//step1.발신자 전화번호 사용 가능 여부 체크(해당 사용자의 기 등록된 번호만 발송 가능)
// 1010
if(!sendMapper.findByCallFrom(msgRequestVO)){
- return new RestResponse(HttpStatus.OK,"", LocalDateTime.now(), _falseRetunDate("STAT_1010"));
+ return new RestResponse("STAT_1010");
}
- //step2.수신자 전화번호 정상 여부 체크(정상 번호에 대해서만 발송 가능)
- // 1020
+ // step2.수신자 전화번호 정상 여부 체크(정상 번호에 대해서만 발송 가능)
+ // 1020
// 폰번호 확인 - 빈 값 -> 유효성 정규식
if(StringUtils.isNotEmpty(this.getCallToListChk(msgRequestVO))){
- return new RestResponse(HttpStatus.OK,"", LocalDateTime.now(), _falseRetunDate("STAT_1020"));
+ return new RestResponse("STAT_1020");
}
//step3.문자 내용 정상 여부 확인 - 스미싱 문구는 발송 30분 지연으로 처리됨
@@ -80,29 +81,13 @@ public class SendServiceImpl implements SendService {
//step4.치환명 정상 여부 확인
// 1040
-
- // 치환데이터 여부 확인
- msgRequestVO.setTxtReplYn(this.getTxtReplYn(msgRequestVO));
-
- if("Y".equals(msgRequestVO.getTxtReplYn())){
-
- //일괄변환 문자에 콤마(,)가 들어가있으면 배열로 넘길때 문제가 발생하여 특수문자(§)로 치환하여 넘겨주도록 한다.
- msgRequestVO = this.getReplaceCommaToStrSymbol(msgRequestVO);
-
- // 치환 후 단문 장문 개수 구하기
- msgRequestVO = getLengthOfShortAndLongMsg(msgRequestVO);
-
- }
-
-
- // 치환데이터 여부 확인
msgRequestVO.setTxtReplYn(this.getTxtReplYn(msgRequestVO));
// 치환데이터가 있을 경우
if("Y".equals(msgRequestVO.getTxtReplYn())){
//일괄변환 문자에 콤마(,)가 들어가있으면 배열로 넘길때 문제가 발생하여 특수문자(§)로 치환하여 넘겨주도록 한다.
msgRequestVO = this.getReplaceCommaToStrSymbol(msgRequestVO);
// 치환 후 단문 장문 개수 구하기
- msgRequestVO = getLengthOfShortAndLongMsg(msgRequestVO);
+ msgRequestVO = this.getLengthOfShortAndLongMsg(msgRequestVO);
}
// 문자 전송하는 부분
@@ -116,9 +101,9 @@ public class SendServiceImpl implements SendService {
// convertMjonDataToApiResponse => MjonResponseVO 데이터를 ApiResponse 데이터로 변환하는 메소드
if(munjaSendResponse.getResult() != "fail"){ // 성공
- return new RestResponse(HttpStatus.OK, "", LocalDateTime.now(), SendSuccessRestResponse.convertMjonDataToApiResponse(munjaSendResponse, STAT_CODE));
+ return new RestResponse(SendSuccessRestResponse.convertMjonDataToApiResponse(munjaSendResponse));
}else{ // 실패
- return new RestResponse(HttpStatus.OK, "", LocalDateTime.now(), FailRestResponse.convertMjonDataToApiResponse(munjaSendResponse));
+ return new RestResponse(this.convertMjonDataToApiResponse(munjaSendResponse));
}
//step5.발송일시 정상여부 확인
@@ -129,9 +114,30 @@ public class SendServiceImpl implements SendService {
}
- @Override
- public ResponseEntity> sendMsgsData(MsgsRequestVO msgsRequestVO) throws Exception {
+ private RestResponse _getTestReturnData(String testYn)
+ {
+ if("YF".equals(testYn))
+ {
+ return new RestResponse(StatMsg.randomErrorStatCode());
+ }else{
+ return new RestResponse(SendSuccessRestResponse.builder()
+ .msgGroupId("MSGGID_0000000000000") // 전송 메세지 그룹 ID
+ .successCnt("5") // 성공 건수
+ .blockCnt("2") // 수신거부 건수
+ .msgType("LMS")
+ .failCnt("0")
+ .build()
+ );
+ }
+ }
+ @Override
+ public RestResponse sendMsgsData(MsgsRequestVO msgsRequestVO) throws Exception {
+
+ if(StringUtils.isNotEmpty(msgsRequestVO.getTest_yn())){
+ // YF => 실패 테스트 데이터
+ return this._getTestReturnData(msgsRequestVO.getTest_yn());
+ }
// msgsVO -> msgVO List로 변환
List msgRequestVOList = this.getDataCleaning(msgsRequestVO);
@@ -143,25 +149,22 @@ public class SendServiceImpl implements SendService {
//step1.발신자 전화번호 사용 가능 여부 체크(해당 사용자의 기 등록된 번호만 발송 가능)
// 1010
if(!sendMapper.findByCallFrom(msgRequestVOList.get(0))){
- return ResponseEntity.ok().body(_falseRetunDate("STAT_1010"));
+ return new RestResponse("STAT_1010");
}
+
+ //step2.수신자 전화번호 정상 여부 체크(정상 번호에 대해서만 발송 가능)
+ // 1020
+ // 폰번호 확인 - 빈 값 -> 유효성 정규식
+ for(MsgRequestVO msgRequestVO : msgRequestVOList){
+ if(StringUtils.isNotEmpty(this.getCallToListChk(msgRequestVO))){
+ return callToErrorReturnData(msgRequestVO);
+ }
+ }
+
+
List mjonResponseVOList = new ArrayList();
for(MsgRequestVO msgRequestVO : msgRequestVOList){
-
-
- //step2.수신자 전화번호 정상 여부 체크(정상 번호에 대해서만 발송 가능)
- // 1020
- // 폰번호 확인 - 빈 값 -> 유효성 정규식
- if(StringUtils.isNotEmpty(this.getCallToListChk(msgRequestVO))){
- FailRestResponse failRestResponse = _falseRetunDate("STAT_1020");
- String returnMsg = failRestResponse.getMessage();
- returnMsg = returnMsg.replace("수신자", "수신자(" + msgRequestVO.getCallToList()[0] + ")");
- failRestResponse.setMessage(returnMsg);
-
- return ResponseEntity.ok().body(failRestResponse);
-// return ResponseEntity.ok().body(_falseRetunDate("STAT_1020"));
- }
//step3.문자 내용 정상 여부 확인 - 스미싱 문구는 발송 30분 지연으로 처리됨
// 1030 => 현재 사용안함
// 스팸체크 하는 부분
@@ -187,11 +190,17 @@ public class SendServiceImpl implements SendService {
}
- return ResponseEntity.ok().body(new RestResponse(HttpStatus.OK
- , ""
- , LocalDateTime.now()
- , SendSuccessRestResponse.SendSuccessMsgsRestResponse(mjonResponseVOList))
- );
+ return new RestResponse(SendSuccessRestResponse.SendSuccessMsgsRestResponse(mjonResponseVOList));
+ }
+
+ private static RestResponse callToErrorReturnData(MsgRequestVO msgRequestVO) {
+ RestResponse restResponse = new RestResponse("STAT_1020");
+
+ String errorMsg = restResponse.getData().toString();
+ errorMsg.replace("수신자", "수신자(" + msgRequestVO.getCallToList()[0] + ")");
+ restResponse.setData(errorMsg);
+
+ return restResponse;
}
/**
@@ -267,13 +276,6 @@ public class SendServiceImpl implements SendService {
return msgRequestVOList;
}
- /**
- * 리턴 데이터 메소드
- * @return
- */
- private static FailRestResponse _falseRetunDate(String ststCode) {
- return FailRestResponse.getSendFailResponse(ststCode);
- }
/**
* 치환 후 단문 장문 msg 개수 구하기
@@ -454,4 +456,35 @@ public class SendServiceImpl implements SendService {
return message;
}
+
+
+ /**
+ * MjonResponseVO -> 변환 -> SendFailRestResponse
+ * @param mjonResponseVO
+ * @return
+ */
+ public static String convertMjonDataToApiResponse(MjonResponseVO mjonResponseVO) {
+ String result = mjonResponseVO.getResult();
+ String message = mjonResponseVO.getMessage();
+ String statCode = "";
+ switch (result) {
+ case "statusFail" : statCode = "1070"; // 회원 정지
+ break;
+ case "smsLengFail" : statCode = "1080"; // 문자 길이 초과
+ break;
+ case "fail" : // 문자온 프로젝트에서 result가 fail로 다양한 에러가 리턴하여 분기처리함
+ if(message.indexOf("문자 치환 후 전송 문자 길이를 초과하였습니다.")>-1)
+ statCode = "1050"; // 치환 후 문자 길이 초과
+ if(message.indexOf("치환문자 데이터가 없습니다")>-1)
+ statCode = "1040"; // 치환 데이터 오류
+ if(message.indexOf("치환 후 전송 문자 길이를 초과")>-1)
+ statCode = "1050"; // 치환 데이터 오류
+ break;
+ default: statCode = "1099"; // 기타 시스템 오류
+ break;
+ }
+
+ return statCode;
+ }
+
}
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 216f343..1bf342d 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
@@ -67,8 +67,8 @@ public class SendRestController {
@CrossOrigin("*") // 모든 요청에 접근 허용
@PostMapping("/api/send/sendMsgs")
@ApiOperation(value= "문자 전송", notes = "[문자 발송] 다른 내용으로 여려명에게 보냄")
- public ResponseEntity> sendMsgs(MsgsRequestVO msgsRequestVO) throws Exception {
- return sendService.sendMsgsData(msgsRequestVO);
+ public ResponseEntity sendMsgs(MsgsRequestVO msgsRequestVO) throws Exception {
+ return ResponseEntity.ok().body(sendService.sendMsgsData(msgsRequestVO));
}
diff --git a/src/main/java/com/itn/mjonApi/mjon/log/service/impl/LettnLoginLogServiceImpl.java b/src/main/java/com/itn/mjonApi/mjon/log/service/impl/LettnLoginLogServiceImpl.java
index 6f6216c..8a24773 100644
--- a/src/main/java/com/itn/mjonApi/mjon/log/service/impl/LettnLoginLogServiceImpl.java
+++ b/src/main/java/com/itn/mjonApi/mjon/log/service/impl/LettnLoginLogServiceImpl.java
@@ -5,10 +5,8 @@ import com.itn.mjonApi.mjon.log.service.LettnLoginLogService;
import com.itn.mjonApi.mjon.log.service.mapper.LettnLoginLogMapper;
import com.itn.mjonApi.mjon.log.service.mapper.domain.LettnLoginLogVO;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
-import java.time.LocalDateTime;
import java.util.List;
@Service
@@ -21,20 +19,23 @@ public class LettnLoginLogServiceImpl implements LettnLoginLogService {
@Override
public RestResponse insert(LettnLoginLogVO lettnLoginLogVO) {
int i_ret = lettnLoginLogMapper.insert(lettnLoginLogVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
+ return new RestResponse(new Object());
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
}
@Override
public RestResponse selectR(LettnLoginLogVO lettnLoginLogVO) {
LettnLoginLogVO MyMsgListVO = lettnLoginLogMapper.selectR(lettnLoginLogVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
+ return new RestResponse(MyMsgListVO);
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
}
@Override
public RestResponse selectL(LettnLoginLogVO lettnLoginLogVO) {
List MyMsgListVO = lettnLoginLogMapper.selectL(lettnLoginLogVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
+ return new RestResponse(MyMsgListVO);
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now(), MyMsgListVO);
}
/*
@@ -56,13 +57,15 @@ public class LettnLoginLogServiceImpl implements LettnLoginLogService {
@Override
public RestResponse update(LettnLoginLogVO lettnLoginLogVO) {
int i_ret = lettnLoginLogMapper.update(lettnLoginLogVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
+ return new RestResponse(new Object());
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
}
@Override
public RestResponse delete(LettnLoginLogVO lettnLoginLogVO) {
int i_ret = lettnLoginLogMapper.delete(lettnLoginLogVO);
- return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
+ return new RestResponse(new Object());
+// return new RestResponse(HttpStatus.OK, "성공", LocalDateTime.now());
}
@Override