no message

main
이범준 1 year ago
parent b0de06db95
commit df6dffb9f6

@ -4,47 +4,72 @@ import cokr.xit.applib.Hangul;
public class MessageUtil {
public static String replaceLineChangeForNuri2Oracle(String str) {
public MessageUtil(String type){
if(type.equals("A")) {
this.nuri2_oracle = "\r\n";
this.nuri2_oracle_byte = 2;
this.nuri2_maria = "\\\\r\\\\n";
this.nuri2_maria_byte = 4;
} else if(type.equals("B")) {
this.nuri2_oracle = "\n";
this.nuri2_oracle_byte = 1;
this.nuri2_maria = "\\\\n";
this.nuri2_maria_byte = 2;
} else if(type.equals("C")) {
this.nuri2_oracle = "\n";
this.nuri2_oracle_byte = 1;
this.nuri2_maria = "\n";
this.nuri2_maria_byte = 1;
}
}
private String nuri2_oracle = "";
private int nuri2_oracle_byte = 0;
private String nuri2_maria = "";
private int nuri2_maria_byte = 0;
public String replaceLineChangeForNuri2Oracle(String str) {
String result = "";
result = str.replaceAll("\r","");
result = result.replaceAll("\n","\r\n");
result = result.replaceAll("\n", nuri2_oracle);
return result;
}
public static String replaceLineChangeForNuri2Maria(String str) {
public String replaceLineChangeForNuri2Maria(String str) {
String result = "";
result = str.replaceAll("\r","");
result = result.replaceAll("\n", "\\\\r\\\\n");
result = result.replaceAll("\n", nuri2_maria);
return result;
}
public static int countLineChangeForNuri2Oracle(String str) {
public int countLineChangeForNuri2Oracle(String str) {
if(str == null || str.equals("")) {
return 0;
}
return str.split("\r\n",-1).length - 1;
return str.split(nuri2_oracle,-1).length - 1;
}
public static int countLineChangeForNuri2Maria(String str) {
public int countLineChangeForNuri2Maria(String str) {
if(str == null || str.equals("")) {
return 0;
}
return str.split("\\\\r\\\\n",-1).length - 1;
return str.split(nuri2_maria,-1).length - 1;
}
public static int countBytes(String str, int hangulBytes, String db) {
public int countBytes(String str, int hangulBytes, String db) {
Hangul hangul = new Hangul(hangulBytes);
int contentsByteCnt = hangul.getByteLength(str);
if(db.equals("mariadb") || db.equals("mysql")) {
int lineChangeCnt = countLineChangeForNuri2Maria(str);
contentsByteCnt = contentsByteCnt - (lineChangeCnt*3);
contentsByteCnt = contentsByteCnt - (lineChangeCnt*(nuri2_maria_byte - 1));
} else {
int lineChangeCnt = countLineChangeForNuri2Oracle(str);
contentsByteCnt = contentsByteCnt - lineChangeCnt;
contentsByteCnt = contentsByteCnt - (lineChangeCnt*(nuri2_oracle_byte - 1));
}
return contentsByteCnt;

@ -35,6 +35,7 @@ public class MessageServiceBean extends AbstractServiceBean implements MessageSe
@Override
public Map<String,Object> regist(List<MessageEntity> messageEntityList) {
MessageUtil messageUtil = new MessageUtil("C");
Map<String,Object> resultMap = new HashMap<String,Object>();
@ -113,16 +114,7 @@ public class MessageServiceBean extends AbstractServiceBean implements MessageSe
int xmsSubjectByteCnt = hangul.getByteLength(messageEntity.getXmsSubject());
//XMS 내용 바이트 수
int xmsContentByteCnt = hangul.getByteLength(messageEntity.getXmsText());
//XMS 내용 바이트 수 보정(줄바꿈문자)
if(databaseId.equals("mariadb") || databaseId.equals("mysql")) {
int lineChageCount = MessageUtil.countLineChangeForNuri2Maria(messageEntity.getXmsText());
xmsContentByteCnt = xmsContentByteCnt - (lineChageCount*3);
} else {
int lineChageCount = MessageUtil.countLineChangeForNuri2Oracle(messageEntity.getXmsText());
xmsContentByteCnt = xmsContentByteCnt - lineChageCount;
}
int xmsContentByteCnt = messageUtil.countBytes(messageEntity.getXmsText(), 2, databaseId);
String contentsTypeOfXMS = messageEntity.findContentsTypeOfXMS();

@ -52,6 +52,7 @@ public class MessageInterfaceController extends AbstractController {
@PostMapping(name="문자전송 요청 등록", value="/regist")
public ModelAndView regist(@RequestBody JSONObject apiSpec) {
ModelAndView mav = new ModelAndView("jsonView");
MessageUtil messageUtil = new MessageUtil("C");
//누리2모듈 아이디 찾기
MessageQuery messageQuery = new MessageQuery();
@ -124,9 +125,9 @@ public class MessageInterfaceController extends AbstractController {
messageEntity.setPhone(recptnNo);
if(databaseId.equals("mariadb") || databaseId.equals("mysql")){
mssageCn = MessageUtil.replaceLineChangeForNuri2Maria(mssageCn);
mssageCn = messageUtil.replaceLineChangeForNuri2Maria(mssageCn);
} else {
mssageCn = MessageUtil.replaceLineChangeForNuri2Oracle(mssageCn);
mssageCn = messageUtil.replaceLineChangeForNuri2Oracle(mssageCn);
}
if(!EgovStringUtil.null2void(resDate).equals("")) {
@ -136,7 +137,7 @@ public class MessageInterfaceController extends AbstractController {
String XMS_msgType = "";
String XMS_contentsType = "";
int xmsByteCount = MessageUtil.countBytes(mssageCn,2,databaseId);
int xmsByteCount = messageUtil.countBytes(mssageCn,2,databaseId);
if(xmsByteCount <= 90) {
XMS_msgType = "SMS";
XMS_contentsType = "SMS";

Loading…
Cancel
Save