문자재전송 개발중
@474063728b1a1f966dc3304a4546f3ba8e958acf
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
... | ... | @@ -279,6 +279,11 @@ |
| 279 | 279 |
} |
| 280 | 280 |
model.addAttribute("letterVO", letterVO);
|
| 281 | 281 |
|
| 282 |
+ // 문자 재전송 New |
|
| 283 |
+ model.addAttribute("msgResendAllFlag", searchVO.getMsgResendAllFlag());
|
|
| 284 |
+ model.addAttribute("msgResendAllGroupId", searchVO.getMsgResendAllGroupId());
|
|
| 285 |
+ model.addAttribute("msgResendAllAdvertiseYn", searchVO.getMsgResendAllAdvertiseYn());
|
|
| 286 |
+ |
|
| 282 | 287 |
return "web/msgcampain/MsgDataView"; |
| 283 | 288 |
} |
| 284 | 289 |
|
--- src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
+++ src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
... | ... | @@ -157,5 +157,12 @@ |
| 157 | 157 |
|
| 158 | 158 |
public List<MjonMsgVO> selectPayUserWithKakaoList(MjonMsgVO mjonMsgVO) throws Exception; |
| 159 | 159 |
|
| 160 |
- public List<MjonMsgVO> selectPayUserWithKakaoSumList(MjonMsgVO mjonMsgVO) throws Exception; |
|
| 160 |
+ public List<MjonMsgVO> selectPayUserWithKakaoSumList(MjonMsgVO mjonMsgVO) throws Exception; |
|
| 161 |
+ |
|
| 162 |
+ // 문자 그룹정보 => 재전송용 |
|
| 163 |
+ public MjonMsgDataVO selectMjMsgGroupInfoByResend(MjonMsgDataVO mjonMsgDataVO) throws Exception; |
|
| 164 |
+ |
|
| 165 |
+ // 문자 상세정보 => 재전송용 |
|
| 166 |
+ public List<MjonMsgDataVO> selectMjMsgListByResend(MjonMsgDataVO mjonMsgDataVO) throws Exception; |
|
| 167 |
+ |
|
| 161 | 168 |
} |
--- src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataVO.java
+++ src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataVO.java
... | ... | @@ -60,6 +60,71 @@ |
| 60 | 60 |
|
| 61 | 61 |
private String userIp; //사용자 아이피 정보 |
| 62 | 62 |
private String refundYn; //문자전송 실패시 환불처리 완료 여부 |
| 63 |
+ |
|
| 64 |
+ private String msgGroupId; |
|
| 65 |
+ private String filePath1; //그림이미지1 경로 |
|
| 66 |
+ private String filePath2; //그림이미지2 경로 |
|
| 67 |
+ private String filePath3; //그림이미지3 경로 |
|
| 68 |
+ private String callFrom; |
|
| 69 |
+ private String callTo; |
|
| 70 |
+ private String msgResendAllFlag; |
|
| 71 |
+ private String msgResendAllGroupId; |
|
| 72 |
+ private String msgResendAllAdvertiseYn; |
|
| 73 |
+ |
|
| 74 |
+ public String getMsgGroupId() {
|
|
| 75 |
+ return msgGroupId; |
|
| 76 |
+ } |
|
| 77 |
+ public void setMsgGroupId(String msgGroupId) {
|
|
| 78 |
+ this.msgGroupId = msgGroupId; |
|
| 79 |
+ } |
|
| 80 |
+ public String getFilePath1() {
|
|
| 81 |
+ return filePath1; |
|
| 82 |
+ } |
|
| 83 |
+ public void setFilePath1(String filePath1) {
|
|
| 84 |
+ this.filePath1 = filePath1; |
|
| 85 |
+ } |
|
| 86 |
+ public String getFilePath2() {
|
|
| 87 |
+ return filePath2; |
|
| 88 |
+ } |
|
| 89 |
+ public void setFilePath2(String filePath2) {
|
|
| 90 |
+ this.filePath2 = filePath2; |
|
| 91 |
+ } |
|
| 92 |
+ public String getFilePath3() {
|
|
| 93 |
+ return filePath3; |
|
| 94 |
+ } |
|
| 95 |
+ public void setFilePath3(String filePath3) {
|
|
| 96 |
+ this.filePath3 = filePath3; |
|
| 97 |
+ } |
|
| 98 |
+ public String getCallFrom() {
|
|
| 99 |
+ return callFrom; |
|
| 100 |
+ } |
|
| 101 |
+ public void setCallFrom(String callFrom) {
|
|
| 102 |
+ this.callFrom = callFrom; |
|
| 103 |
+ } |
|
| 104 |
+ public String getCallTo() {
|
|
| 105 |
+ return callTo; |
|
| 106 |
+ } |
|
| 107 |
+ public void setCallTo(String callTo) {
|
|
| 108 |
+ this.callTo = callTo; |
|
| 109 |
+ } |
|
| 110 |
+ public String getMsgResendAllFlag() {
|
|
| 111 |
+ return msgResendAllFlag; |
|
| 112 |
+ } |
|
| 113 |
+ public void setMsgResendAllFlag(String msgResendAllFlag) {
|
|
| 114 |
+ this.msgResendAllFlag = msgResendAllFlag; |
|
| 115 |
+ } |
|
| 116 |
+ public String getMsgResendAllGroupId() {
|
|
| 117 |
+ return msgResendAllGroupId; |
|
| 118 |
+ } |
|
| 119 |
+ public void setMsgResendAllGroupId(String msgResendAllGroupId) {
|
|
| 120 |
+ this.msgResendAllGroupId = msgResendAllGroupId; |
|
| 121 |
+ } |
|
| 122 |
+ public String getMsgResendAllAdvertiseYn() {
|
|
| 123 |
+ return msgResendAllAdvertiseYn; |
|
| 124 |
+ } |
|
| 125 |
+ public void setMsgResendAllAdvertiseYn(String msgResendAllAdvertiseYn) {
|
|
| 126 |
+ this.msgResendAllAdvertiseYn = msgResendAllAdvertiseYn; |
|
| 127 |
+ } |
|
| 63 | 128 |
|
| 64 | 129 |
public String getCodeId() {
|
| 65 | 130 |
return codeId; |
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
... | ... | @@ -329,4 +329,16 @@ |
| 329 | 329 |
public List<MjonMsgVO> selectPayUserWithKakaoSumList(MjonMsgVO mjonMsgVO) throws Exception{
|
| 330 | 330 |
return (List<MjonMsgVO>) list("mjonMsgDAO.selectPayUserWithKakaoSumList",mjonMsgVO);
|
| 331 | 331 |
} |
| 332 |
+ |
|
| 333 |
+ // 문자 그룹정보 => 재전송용 |
|
| 334 |
+ public MjonMsgDataVO selectMjMsgGroupInfoByResend(MjonMsgDataVO mjonMsgDataVO) throws Exception{
|
|
| 335 |
+ return (MjonMsgDataVO) select("MjonMsgDataDAO.selectMjMsgGroupInfoByResend", mjonMsgDataVO);
|
|
| 336 |
+ } |
|
| 337 |
+ |
|
| 338 |
+ // 문자 상세정보 => 재전송용 |
|
| 339 |
+ @SuppressWarnings("unchecked")
|
|
| 340 |
+ public List<MjonMsgDataVO> selectMjMsgListByResend(MjonMsgDataVO mjonMsgDataVO) throws Exception{
|
|
| 341 |
+ return (List<MjonMsgDataVO>) list("MjonMsgDataDAO.selectMjMsgListByResend", mjonMsgDataVO);
|
|
| 342 |
+ } |
|
| 343 |
+ |
|
| 332 | 344 |
} |
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
... | ... | @@ -2279,5 +2279,16 @@ |
| 2279 | 2279 |
@Override |
| 2280 | 2280 |
public List<MjonMsgVO> selectPayUserWithKakaoSumList(MjonMsgVO mjonMsgVO) throws Exception {
|
| 2281 | 2281 |
return mjonMsgDataDAO.selectPayUserWithKakaoSumList(mjonMsgVO); |
| 2282 |
- } |
|
| 2282 |
+ } |
|
| 2283 |
+ |
|
| 2284 |
+ // 문자 그룹정보 => 재전송용 |
|
| 2285 |
+ public MjonMsgDataVO selectMjMsgGroupInfoByResend(MjonMsgDataVO mjonMsgDataVO) throws Exception{
|
|
| 2286 |
+ return mjonMsgDataDAO.selectMjMsgGroupInfoByResend(mjonMsgDataVO); |
|
| 2287 |
+ } |
|
| 2288 |
+ |
|
| 2289 |
+ // 문자 상세정보 => 재전송용 |
|
| 2290 |
+ public List<MjonMsgDataVO> selectMjMsgListByResend(MjonMsgDataVO mjonMsgDataVO) throws Exception{
|
|
| 2291 |
+ return mjonMsgDataDAO.selectMjMsgListByResend(mjonMsgDataVO); |
|
| 2292 |
+ } |
|
| 2293 |
+ |
|
| 2283 | 2294 |
} |
--- src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
+++ src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
... | ... | @@ -398,6 +398,11 @@ |
| 398 | 398 |
|
| 399 | 399 |
} |
| 400 | 400 |
|
| 401 |
+ // 문자 재전송 New |
|
| 402 |
+ model.addAttribute("msgResendAllFlag", searchVO.getMsgResendAllFlag());
|
|
| 403 |
+ model.addAttribute("msgResendAllGroupId", searchVO.getMsgResendAllGroupId());
|
|
| 404 |
+ model.addAttribute("msgResendAllAdvertiseYn", searchVO.getMsgResendAllAdvertiseYn());
|
|
| 405 |
+ |
|
| 401 | 406 |
}catch(Exception ex) {
|
| 402 | 407 |
ex.printStackTrace(); |
| 403 | 408 |
|
... | ... | @@ -5865,4 +5870,81 @@ |
| 5865 | 5870 |
return rtnValue; |
| 5866 | 5871 |
} |
| 5867 | 5872 |
|
| 5873 |
+ @RequestMapping(value= {"/web/mjon/msgdata/selectMjMsgGroupInfoByResendAjax.do"})
|
|
| 5874 |
+ public ModelAndView selectMjMsgGroupInfoByResendAjax( |
|
| 5875 |
+ MjonMsgDataVO mjonMsgDataVO, |
|
| 5876 |
+ HttpServletRequest request, |
|
| 5877 |
+ ModelMap model) throws Exception {
|
|
| 5878 |
+ |
|
| 5879 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 5880 |
+ modelAndView.setViewName("jsonView");
|
|
| 5881 |
+ |
|
| 5882 |
+ boolean isSuccess = true; |
|
| 5883 |
+ String msg = ""; |
|
| 5884 |
+ |
|
| 5885 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 5886 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 5887 |
+ |
|
| 5888 |
+ try {
|
|
| 5889 |
+ if(userId.equals("")) {
|
|
| 5890 |
+ isSuccess = false; |
|
| 5891 |
+ msg = "로그인이 필요합니다."; |
|
| 5892 |
+ } |
|
| 5893 |
+ else {
|
|
| 5894 |
+ mjonMsgDataVO.setUserId(userId); |
|
| 5895 |
+ mjonMsgDataVO.setMsgGroupId(mjonMsgDataVO.getMsgResendAllGroupId()); |
|
| 5896 |
+ mjonMsgDataVO = mjonMsgDataService.selectMjMsgGroupInfoByResend(mjonMsgDataVO); |
|
| 5897 |
+ } |
|
| 5898 |
+ } |
|
| 5899 |
+ catch(Exception e) {
|
|
| 5900 |
+ isSuccess = false; |
|
| 5901 |
+ msg = e.getMessage(); |
|
| 5902 |
+ } |
|
| 5903 |
+ |
|
| 5904 |
+ modelAndView.addObject("isSuccess", isSuccess);
|
|
| 5905 |
+ modelAndView.addObject("msg", msg);
|
|
| 5906 |
+ modelAndView.addObject("result", mjonMsgDataVO);
|
|
| 5907 |
+ |
|
| 5908 |
+ return modelAndView; |
|
| 5909 |
+ } |
|
| 5910 |
+ |
|
| 5911 |
+ @RequestMapping(value= {"/web/mjon/msgdata/selectMjMsgListByResendAjax.do"})
|
|
| 5912 |
+ public ModelAndView selectMjMsgListByResendAjax( |
|
| 5913 |
+ MjonMsgDataVO mjonMsgDataVO, |
|
| 5914 |
+ HttpServletRequest request, |
|
| 5915 |
+ ModelMap model) throws Exception {
|
|
| 5916 |
+ |
|
| 5917 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 5918 |
+ modelAndView.setViewName("jsonView");
|
|
| 5919 |
+ |
|
| 5920 |
+ boolean isSuccess = true; |
|
| 5921 |
+ String msg = ""; |
|
| 5922 |
+ List<MjonMsgDataVO> resultList = null; |
|
| 5923 |
+ |
|
| 5924 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 5925 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 5926 |
+ |
|
| 5927 |
+ try {
|
|
| 5928 |
+ if(userId.equals("")) {
|
|
| 5929 |
+ isSuccess = false; |
|
| 5930 |
+ msg = "로그인이 필요합니다."; |
|
| 5931 |
+ } |
|
| 5932 |
+ else {
|
|
| 5933 |
+ mjonMsgDataVO.setUserId(userId); |
|
| 5934 |
+ mjonMsgDataVO.setMsgGroupId(mjonMsgDataVO.getMsgResendAllGroupId()); |
|
| 5935 |
+ resultList = mjonMsgDataService.selectMjMsgListByResend(mjonMsgDataVO); |
|
| 5936 |
+ } |
|
| 5937 |
+ } |
|
| 5938 |
+ catch(Exception e) {
|
|
| 5939 |
+ isSuccess = false; |
|
| 5940 |
+ msg = e.getMessage(); |
|
| 5941 |
+ } |
|
| 5942 |
+ |
|
| 5943 |
+ modelAndView.addObject("isSuccess", isSuccess);
|
|
| 5944 |
+ modelAndView.addObject("msg", msg);
|
|
| 5945 |
+ modelAndView.addObject("resultList", resultList);
|
|
| 5946 |
+ |
|
| 5947 |
+ return modelAndView; |
|
| 5948 |
+ } |
|
| 5949 |
+ |
|
| 5868 | 5950 |
} |
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
... | ... | @@ -7248,5 +7248,55 @@ |
| 7248 | 7248 |
)FN1 |
| 7249 | 7249 |
ORDER BY msgGroupId DESC |
| 7250 | 7250 |
</select> |
| 7251 |
+ |
|
| 7252 |
+ <!-- 문자 그룹정보 => 재전송용 --> |
|
| 7253 |
+ <select id="MjonMsgDataDAO.selectMjMsgGroupInfoByResend" parameterClass="mjonMsgDataVO" resultClass="mjonMsgDataVO"> |
|
| 7254 |
+ SELECT |
|
| 7255 |
+ CALL_FROM AS callFrom |
|
| 7256 |
+ , SUBJECT AS subject |
|
| 7257 |
+ , SMS_TXT AS smsTxt |
|
| 7258 |
+ , ( |
|
| 7259 |
+ SELECT |
|
| 7260 |
+ IFNULL(FILE_PATH1, '') |
|
| 7261 |
+ FROM MJ_MSG_DATA |
|
| 7262 |
+ WHERE |
|
| 7263 |
+ USER_ID = #userId# |
|
| 7264 |
+ AND MSG_GROUP_ID = #msgGroupId# |
|
| 7265 |
+ LIMIT 1 |
|
| 7266 |
+ ) filePath1 |
|
| 7267 |
+ , ( |
|
| 7268 |
+ SELECT |
|
| 7269 |
+ IFNULL(FILE_PATH2, '') |
|
| 7270 |
+ FROM MJ_MSG_DATA |
|
| 7271 |
+ WHERE |
|
| 7272 |
+ USER_ID = #userId# |
|
| 7273 |
+ AND MSG_GROUP_ID = #msgGroupId# |
|
| 7274 |
+ LIMIT 1 |
|
| 7275 |
+ ) filePath2 |
|
| 7276 |
+ , ( |
|
| 7277 |
+ SELECT |
|
| 7278 |
+ IFNULL(FILE_PATH3, '') |
|
| 7279 |
+ FROM MJ_MSG_DATA |
|
| 7280 |
+ WHERE |
|
| 7281 |
+ USER_ID = #userId# |
|
| 7282 |
+ AND MSG_GROUP_ID = #msgGroupId# |
|
| 7283 |
+ LIMIT 1 |
|
| 7284 |
+ ) filePath3 |
|
| 7285 |
+ FROM MJ_MSG_GROUP_DATA |
|
| 7286 |
+ WHERE |
|
| 7287 |
+ USER_ID = #userId# |
|
| 7288 |
+ AND MSG_GROUP_ID = #msgGroupId# |
|
| 7289 |
+ LIMIT 1 |
|
| 7290 |
+ </select> |
|
| 7291 |
+ |
|
| 7292 |
+ <select id="MjonMsgDataDAO.selectMjMsgListByResend" parameterClass="mjonMsgDataVO" resultClass="mjonMsgDataVO"> |
|
| 7293 |
+ SELECT |
|
| 7294 |
+ CALL_TO AS callTo |
|
| 7295 |
+ FROM MJ_MSG_DATA |
|
| 7296 |
+ WHERE |
|
| 7297 |
+ USER_ID = #userId# |
|
| 7298 |
+ AND MSG_GROUP_ID = #msgGroupId# |
|
| 7299 |
+ </select> |
|
| 7300 |
+ |
|
| 7251 | 7301 |
</sqlMap> |
| 7252 | 7302 |
|
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataView.jsp
... | ... | @@ -20,6 +20,10 @@ |
| 20 | 20 |
var loginVO = '${loginVO}';
|
| 21 | 21 |
|
| 22 | 22 |
var popCustomScrT=0; // 맞춤제작 요청 JSPark => 2023.02.21 추가 |
| 23 |
+var msgResendAllFlag = "${msgResendAllFlag}";
|
|
| 24 |
+var msgResendAllGroupId = "${msgResendAllGroupId}";
|
|
| 25 |
+var msgResendAllAdvertiseYn = "${msgResendAllAdvertiseYn}";
|
|
| 26 |
+ |
|
| 23 | 27 |
$(document).ready(function(){
|
| 24 | 28 |
//문자 발송 화면 폼 불러오기 |
| 25 | 29 |
listMsgDataView(); |
... | ... | @@ -50,7 +54,101 @@ |
| 50 | 54 |
// 맞춤제작 요청 JSPark => 2023.02.21 추가 |
| 51 | 55 |
//맞춤제작 등록 Popup |
| 52 | 56 |
//customPopup(); |
| 57 |
+ |
|
| 53 | 58 |
}); |
| 59 |
+ |
|
| 60 |
+//문자 그룹정보 => 재전송용 |
|
| 61 |
+function getMjMsgGroupInfoByResend() {
|
|
| 62 |
+ $.ajax({
|
|
| 63 |
+ type: "POST", |
|
| 64 |
+ url: "/web/mjon/msgdata/selectMjMsgGroupInfoByResendAjax.do", |
|
| 65 |
+ data: {"msgResendAllGroupId" : msgResendAllGroupId},
|
|
| 66 |
+ dataType:'json', |
|
| 67 |
+ async: false, |
|
| 68 |
+ success: function (data) {
|
|
| 69 |
+ if(data.isSuccess == true){
|
|
| 70 |
+ //data.result.callFrom; |
|
| 71 |
+ //data.result.subject; |
|
| 72 |
+ //data.result.smsTxt; |
|
| 73 |
+ //data.result.filePath1; |
|
| 74 |
+ //data.result.filePath2; |
|
| 75 |
+ //data.result.filePath3; |
|
| 76 |
+ |
|
| 77 |
+ // 발신번호 |
|
| 78 |
+ var reCallFrom = $.trim(removeDash($("#callFromList option:selected").val()));
|
|
| 79 |
+ if ($.trim(removeDash(data.result.callFrom)) != reCallFrom) {
|
|
| 80 |
+ alert("선택된 발신번호가 이전에 발송한 발신번호가 아닙니다.\n발신번호를 확인해주세요.")
|
|
| 81 |
+ } |
|
| 82 |
+ |
|
| 83 |
+ /* |
|
| 84 |
+ // 제목 |
|
| 85 |
+ if (data.result.subject != null && data.result.subject != "") {
|
|
| 86 |
+ $('.msg_title').addClass('active');
|
|
| 87 |
+ $("input:radio[name='title_status']:radio[value='Y']").prop('checked', true); // 선택하기
|
|
| 88 |
+ $('.textbox').show();
|
|
| 89 |
+ $("#mmsSubject").val(data.result.subject);
|
|
| 90 |
+ } |
|
| 91 |
+ |
|
| 92 |
+ var reSmsTxt = data.result.smsTxt.replaceAll("<br/>", "\n"); //줄발꿈문자 변환하기
|
|
| 93 |
+ // 문자내용 |
|
| 94 |
+ if(reSmsTxt != null){
|
|
| 95 |
+ $("#smsTxtArea").val(reSmsTxt);
|
|
| 96 |
+ fnByteString(reSmsTxt); |
|
| 97 |
+ } |
|
| 98 |
+ */ |
|
| 99 |
+ |
|
| 100 |
+ } else {
|
|
| 101 |
+ alert("Message : " + msg);
|
|
| 102 |
+ } |
|
| 103 |
+ }, |
|
| 104 |
+ error: function (e) {
|
|
| 105 |
+ //alert("저장에 실패하였습니다.");
|
|
| 106 |
+ //console.log("ERROR : ", e);
|
|
| 107 |
+ } |
|
| 108 |
+ }); |
|
| 109 |
+} |
|
| 110 |
+ |
|
| 111 |
+// 문자 상세정보 => 재전송용 |
|
| 112 |
+function getMjMsgListByResend() {
|
|
| 113 |
+ $.ajax({
|
|
| 114 |
+ type: "POST", |
|
| 115 |
+ url: "/web/mjon/msgdata/selectMjMsgListByResendAjax.do", |
|
| 116 |
+ data: {"msgResendAllGroupId" : msgResendAllGroupId},
|
|
| 117 |
+ dataType:'json', |
|
| 118 |
+ async: true, |
|
| 119 |
+ success: function (data) {
|
|
| 120 |
+ if(data.isSuccess == true){
|
|
| 121 |
+ var listCnt = data.resultList.length; |
|
| 122 |
+ |
|
| 123 |
+ //수신자 처리 변수 |
|
| 124 |
+ var callToList = []; //수신자 처리 리스트 |
|
| 125 |
+ var tableData = []; //수신자 tabulator 처리 변수 |
|
| 126 |
+ |
|
| 127 |
+ for(var i = 0; i < listCnt; i++){ // 수신자 리스트 Tabulator에 입력해 주기
|
|
| 128 |
+ callToList[i] = data.resultList[i].callTo; |
|
| 129 |
+ tableData.push({phone: removeDash(callToList[i])});
|
|
| 130 |
+ } |
|
| 131 |
+ |
|
| 132 |
+ if(tableData.length > 0){
|
|
| 133 |
+ tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기 |
|
| 134 |
+ |
|
| 135 |
+ totRows = tableL.getRows().length; |
|
| 136 |
+ updateTotCnt(totRows); //전체 데이터 갯수 구하기 |
|
| 137 |
+ |
|
| 138 |
+ //결제 금액 구하기 |
|
| 139 |
+ totalPriceSum(totRows); |
|
| 140 |
+ } |
|
| 141 |
+ |
|
| 142 |
+ } else {
|
|
| 143 |
+ //alert("Message : " + msg);
|
|
| 144 |
+ } |
|
| 145 |
+ }, |
|
| 146 |
+ error: function (e) {
|
|
| 147 |
+ //alert("저장에 실패하였습니다.");
|
|
| 148 |
+ //console.log("ERROR : ", e);
|
|
| 149 |
+ } |
|
| 150 |
+ }); |
|
| 151 |
+} |
|
| 54 | 152 |
|
| 55 | 153 |
function listMsgDataView(){
|
| 56 | 154 |
|
... | ... | @@ -77,6 +175,15 @@ |
| 77 | 175 |
fnAddrSet(moveAddrFlag, addrIdList); |
| 78 | 176 |
} |
| 79 | 177 |
|
| 178 |
+ // 문자 재전송 New |
|
| 179 |
+ if (msgResendAllFlag == "Y") {
|
|
| 180 |
+ // 문자 그룹정보 => 재전송용 |
|
| 181 |
+ getMjMsgGroupInfoByResend(); |
|
| 182 |
+ |
|
| 183 |
+ // 문자 상세정보 => 재전송용 |
|
| 184 |
+ getMjMsgListByResend(); |
|
| 185 |
+ } |
|
| 186 |
+ |
|
| 80 | 187 |
}); |
| 81 | 188 |
|
| 82 | 189 |
|
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
... | ... | @@ -20,6 +20,10 @@ |
| 20 | 20 |
var loginVO = '${loginVO}';
|
| 21 | 21 |
|
| 22 | 22 |
var popCustomScrT=0; // 맞춤제작 요청 JSPark => 2023.02.21 추가 |
| 23 |
+var msgResendAllFlag = "${msgResendAllFlag}";
|
|
| 24 |
+var msgResendAllGroupId = "${msgResendAllGroupId}";
|
|
| 25 |
+var msgResendAllAdvertiseYn = "${msgResendAllAdvertiseYn}";
|
|
| 26 |
+ |
|
| 23 | 27 |
$(document).ready(function(){
|
| 24 | 28 |
var tsMoreSampleYn = "${moreSampleYn}";
|
| 25 | 29 |
var tsMainImgFlag = "${mainImgVO.mainImgFlag}";
|
... | ... | @@ -78,6 +82,99 @@ |
| 78 | 82 |
//맞춤제작 등록 Popup |
| 79 | 83 |
//customPopup(); |
| 80 | 84 |
}); |
| 85 |
+ |
|
| 86 |
+// 문자 그룹정보 => 재전송용 |
|
| 87 |
+function getMjMsgGroupInfoByResend() {
|
|
| 88 |
+ $.ajax({
|
|
| 89 |
+ type: "POST", |
|
| 90 |
+ url: "/web/mjon/msgdata/selectMjMsgGroupInfoByResendAjax.do", |
|
| 91 |
+ data: {"msgResendAllGroupId" : msgResendAllGroupId},
|
|
| 92 |
+ dataType:'json', |
|
| 93 |
+ async: false, |
|
| 94 |
+ success: function (data) {
|
|
| 95 |
+ if(data.isSuccess == true){
|
|
| 96 |
+ //data.result.callFrom; |
|
| 97 |
+ //data.result.subject; |
|
| 98 |
+ //data.result.smsTxt; |
|
| 99 |
+ //data.result.filePath1; |
|
| 100 |
+ //data.result.filePath2; |
|
| 101 |
+ //data.result.filePath3; |
|
| 102 |
+ |
|
| 103 |
+ // 발신번호 |
|
| 104 |
+ var reCallFrom = $.trim(removeDash($("#callFromList option:selected").val()));
|
|
| 105 |
+ if ($.trim(removeDash(data.result.callFrom)) != reCallFrom) {
|
|
| 106 |
+ alert("선택된 발신번호가 이전에 발송한 발신번호가 아닙니다.\n발신번호를 확인해주세요.")
|
|
| 107 |
+ } |
|
| 108 |
+ |
|
| 109 |
+ /* |
|
| 110 |
+ // 제목 |
|
| 111 |
+ if (data.result.subject != null && data.result.subject != "") {
|
|
| 112 |
+ $('.msg_title').addClass('active');
|
|
| 113 |
+ $("input:radio[name='title_status']:radio[value='Y']").prop('checked', true); // 선택하기
|
|
| 114 |
+ $('.textbox').show();
|
|
| 115 |
+ $("#mmsSubject").val(data.result.subject);
|
|
| 116 |
+ } |
|
| 117 |
+ |
|
| 118 |
+ var reSmsTxt = data.result.smsTxt.replaceAll("<br/>", "\n"); //줄발꿈문자 변환하기
|
|
| 119 |
+ // 문자내용 |
|
| 120 |
+ if(reSmsTxt != null){
|
|
| 121 |
+ $("#smsTxtArea").val(reSmsTxt);
|
|
| 122 |
+ fnByteString(reSmsTxt); |
|
| 123 |
+ } |
|
| 124 |
+ */ |
|
| 125 |
+ |
|
| 126 |
+ } else {
|
|
| 127 |
+ alert("Message : " + msg);
|
|
| 128 |
+ } |
|
| 129 |
+ }, |
|
| 130 |
+ error: function (e) {
|
|
| 131 |
+ //alert("저장에 실패하였습니다.");
|
|
| 132 |
+ //console.log("ERROR : ", e);
|
|
| 133 |
+ } |
|
| 134 |
+ }); |
|
| 135 |
+} |
|
| 136 |
+ |
|
| 137 |
+// 문자 상세정보 => 재전송용 |
|
| 138 |
+function getMjMsgListByResend() {
|
|
| 139 |
+ $.ajax({
|
|
| 140 |
+ type: "POST", |
|
| 141 |
+ url: "/web/mjon/msgdata/selectMjMsgListByResendAjax.do", |
|
| 142 |
+ data: {"msgResendAllGroupId" : msgResendAllGroupId},
|
|
| 143 |
+ dataType:'json', |
|
| 144 |
+ async: false, |
|
| 145 |
+ success: function (data) {
|
|
| 146 |
+ if(data.isSuccess == true){
|
|
| 147 |
+ var listCnt = data.resultList.length; |
|
| 148 |
+ |
|
| 149 |
+ //수신자 처리 변수 |
|
| 150 |
+ var callToList = []; //수신자 처리 리스트 |
|
| 151 |
+ var tableData = []; //수신자 tabulator 처리 변수 |
|
| 152 |
+ |
|
| 153 |
+ for(var i = 0; i < listCnt; i++){ // 수신자 리스트 Tabulator에 입력해 주기
|
|
| 154 |
+ callToList[i] = data.resultList[i].callTo; |
|
| 155 |
+ tableData.push({phone: removeDash(callToList[i])});
|
|
| 156 |
+ } |
|
| 157 |
+ |
|
| 158 |
+ if(tableData.length > 0){
|
|
| 159 |
+ tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기 |
|
| 160 |
+ |
|
| 161 |
+ totRows = tableL.getRows().length; |
|
| 162 |
+ updateTotCnt(totRows); //전체 데이터 갯수 구하기 |
|
| 163 |
+ |
|
| 164 |
+ //결제 금액 구하기 |
|
| 165 |
+ totalPriceSum(totRows); |
|
| 166 |
+ } |
|
| 167 |
+ |
|
| 168 |
+ } else {
|
|
| 169 |
+ //alert("Message : " + msg);
|
|
| 170 |
+ } |
|
| 171 |
+ }, |
|
| 172 |
+ error: function (e) {
|
|
| 173 |
+ //alert("저장에 실패하였습니다.");
|
|
| 174 |
+ //console.log("ERROR : ", e);
|
|
| 175 |
+ } |
|
| 176 |
+ }); |
|
| 177 |
+} |
|
| 81 | 178 |
|
| 82 | 179 |
|
| 83 | 180 |
function listMsgDataView(){
|
... | ... | @@ -268,6 +365,14 @@ |
| 268 | 365 |
fnAddrSet(moveAddrFlag, addrIdList); |
| 269 | 366 |
} |
| 270 | 367 |
|
| 368 |
+ // 문자 재전송 New |
|
| 369 |
+ if (msgResendAllFlag == "Y") {
|
|
| 370 |
+ // 문자 그룹정보 => 재전송용 |
|
| 371 |
+ getMjMsgGroupInfoByResend(); |
|
| 372 |
+ |
|
| 373 |
+ // 문자 상세정보 => 재전송용 |
|
| 374 |
+ getMjMsgListByResend(); |
|
| 375 |
+ } |
|
| 271 | 376 |
|
| 272 | 377 |
}); |
| 273 | 378 |
|
--- src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentAllListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentAllListAjax.jsp
... | ... | @@ -136,9 +136,21 @@ |
| 136 | 136 |
</tr> |
| 137 | 137 |
</thead> |
| 138 | 138 |
<tbody> |
| 139 |
+ <c:set var="replaceCnt" value="0" /> |
|
| 140 |
+ <c:set var="electionCnt" value="0" /> |
|
| 141 |
+ <c:set var="advertisementCnt" value="0" /> |
|
| 139 | 142 |
<c:choose> |
| 140 | 143 |
<c:when test="${not empty resultAllSentList}">
|
| 141 | 144 |
<c:forEach var="resultAllSentList" items="${resultAllSentList}" varStatus="status">
|
| 145 |
+ <c:if test="${fn:indexOf(resultAllSentList.smsTxt,'[*이름*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*1*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*2*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*3*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*4*]') != -1}">
|
|
| 146 |
+ <c:set var="replaceCnt" value="1" /> |
|
| 147 |
+ </c:if> |
|
| 148 |
+ <c:if test="${fn:indexOf(resultAllSentList.smsTxt,'(선거운동정보)') == 0}">
|
|
| 149 |
+ <c:set var="electionCnt" value="1" /> |
|
| 150 |
+ </c:if> |
|
| 151 |
+ <c:if test="${fn:indexOf(resultAllSentList.smsTxt,'(광고)') == 0}">
|
|
| 152 |
+ <c:set var="advertisementCnt" value="1" /> |
|
| 153 |
+ </c:if> |
|
| 142 | 154 |
<tr> |
| 143 | 155 |
<td name="listTd"> |
| 144 | 156 |
<label for="msgSentDel${status.count}" class="label">선택</label>
|
... | ... | @@ -194,6 +206,9 @@ |
| 194 | 206 |
</td> |
| 195 | 207 |
<td name="listTd"> |
| 196 | 208 |
<button class="btnType btnType20" data-tooltip="rev_popup01" onClick="javascript:fnRevDetailPop('${resultAllSentList.msgGroupId}','${resultAllSentList.msgId}','${resultAllSentList.fileCnt}'); return false;">상세보기</button>
|
| 209 |
+ <%-- |
|
| 210 |
+ <button class="btnType btnType20" onClick="javascript:fnMjMsgReSendAll('${resultAllSentList.msgGroupId}','${replaceCnt}','${electionCnt}','${advertisementCnt}'); return false;">재전송</button>
|
|
| 211 |
+ --%> |
|
| 197 | 212 |
</td> |
| 198 | 213 |
<td name="listTd"> |
| 199 | 214 |
<c:choose> |
--- src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp
... | ... | @@ -704,6 +704,40 @@ |
| 704 | 704 |
document.popForm.target = "infoPop"; |
| 705 | 705 |
document.popForm.submit(); |
| 706 | 706 |
} |
| 707 |
+ |
|
| 708 |
+//문자 재전송 |
|
| 709 |
+function fnMjMsgReSendAll(msgGroupId, replaceCnt, electionCnt, advertisementCnt) {
|
|
| 710 |
+ if (replaceCnt > 0) {
|
|
| 711 |
+ alert("치환문자는 재전송 불가합니다.");
|
|
| 712 |
+ } |
|
| 713 |
+ else {
|
|
| 714 |
+ var title = ""; |
|
| 715 |
+ if (electionCnt > 0) {
|
|
| 716 |
+ title = "선거문자발송"; |
|
| 717 |
+ } |
|
| 718 |
+ else {
|
|
| 719 |
+ title = "문자발송"; |
|
| 720 |
+ } |
|
| 721 |
+ |
|
| 722 |
+ if (confirm(title + " 화면으로 이동합니다.\n문자내용, 받는사람 확인후 발송해주세요.")) {
|
|
| 723 |
+ var form = document.reSendAllForm; |
|
| 724 |
+ form.msgResendAllFlag.value = "Y"; |
|
| 725 |
+ form.msgResendAllGroupId.value = msgGroupId; |
|
| 726 |
+ if (electionCnt > 0) {
|
|
| 727 |
+ form.action="/web/mjon/msgcampain/selectMsgDataView.do"; |
|
| 728 |
+ } |
|
| 729 |
+ else {
|
|
| 730 |
+ if (advertisementCnt > 0) {
|
|
| 731 |
+ // 광고문자 |
|
| 732 |
+ form.msgResendAllAdvertiseYn.value = "Y"; |
|
| 733 |
+ } |
|
| 734 |
+ form.action="/web/mjon/msgdata/selectMsgDataView.do"; |
|
| 735 |
+ } |
|
| 736 |
+ form.submit(); |
|
| 737 |
+ } |
|
| 738 |
+ } |
|
| 739 |
+} |
|
| 740 |
+ |
|
| 707 | 741 |
</script> |
| 708 | 742 |
<!-- 문자내용 팝업 data-tooltip: rev_popup01 --> |
| 709 | 743 |
<div class="tooltip-wrap"> |
... | ... | @@ -1046,4 +1080,8 @@ |
| 1046 | 1080 |
<form name="popForm" id="popForm" method="post"> |
| 1047 | 1081 |
<input type="hidden" name="pageType" id="pageType" value=""/> |
| 1048 | 1082 |
</form> |
| 1049 |
-(No newline at end of file) |
|
| 1083 |
+ <form name="reSendAllForm" method="post"> |
|
| 1084 |
+ <input type="hidden" name="msgResendAllFlag" value="N"/> |
|
| 1085 |
+ <input type="hidden" name="msgResendAllGroupId" value=""/> |
|
| 1086 |
+ <input type="hidden" name="msgResendAllAdvertiseYn" value="N"/> |
|
| 1087 |
+ </form>(No newline at end of file) |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?