From 73986519b6a7b043c03f88fd7dec355c6abcddcb Mon Sep 17 00:00:00 2001 From: kmg Date: Thu, 23 Jan 2025 17:01:24 +0900 Subject: [PATCH 1/6] =?UTF-8?q?2024/01/23=20=EB=B0=9C=EC=86=A1=EA=B2=B0?= =?UTF-8?q?=EA=B3=BC=20=EC=83=81=EC=84=B8=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=A0=9C=EB=AA=A9=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/publish/textingmsg_2025_detail.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/webapp/publish/textingmsg_2025_detail.html b/src/main/webapp/publish/textingmsg_2025_detail.html index d50c494c..bcab829e 100644 --- a/src/main/webapp/publish/textingmsg_2025_detail.html +++ b/src/main/webapp/publish/textingmsg_2025_detail.html @@ -790,6 +790,10 @@
등록일시
2024-07-10 15:25
+
+
제목
+
제목테스트제목테스트제목테스트제목테스트
+
형태
그림
From a02fffcb7676216623009de3638cc1dd251e3d9d Mon Sep 17 00:00:00 2001 From: wyh Date: Fri, 24 Jan 2025 19:20:06 +0900 Subject: [PATCH 2/6] =?UTF-8?q?=EC=9D=B4=EB=B2=A4=ED=8A=B8=20=EA=B2=B0?= =?UTF-8?q?=EC=A0=9C=EA=B4=80=EB=A0=A8=20=EC=98=A4=EB=A5=98=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itn/let/module/base/PriceAndPoint.java | 36 ++++++++++ src/main/webapp/js/web/msgdata/msgDataView.js | 68 ++++++++++++++++++- 2 files changed, 102 insertions(+), 2 deletions(-) diff --git a/src/main/java/itn/let/module/base/PriceAndPoint.java b/src/main/java/itn/let/module/base/PriceAndPoint.java index dc2785de..d661aa35 100644 --- a/src/main/java/itn/let/module/base/PriceAndPoint.java +++ b/src/main/java/itn/let/module/base/PriceAndPoint.java @@ -9,6 +9,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import itn.let.mjo.event.service.MjonEventService; +import itn.let.mjo.event.service.MjonEventVO; +import itn.let.mjo.event.service.impl.MjonEventDAO; import itn.let.mjo.msg.service.MjonMsgVO; import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO; import itn.let.mjo.pay.service.MjonPayVO; @@ -37,6 +40,9 @@ public class PriceAndPoint { @Autowired private MjonPayDAO mjonPayDAO; + + @Autowired + private MjonEventService mjonEventService; @Resource(name = "egovMjonCashIdGnrService") private EgovIdGnrService idgenMjonCashId; @@ -119,6 +125,36 @@ public class PriceAndPoint { mjonPayDAO.insertCash(mjonPayVO); //캐시 mjonPayDAO.updateMemberCash(mjonPayVO); //회원정보 업데이트 + //이벤트 회원인 경우 이벤트 캐시도 함께 차감. + MjonEventVO mjonEventVO = new MjonEventVO(); + mjonEventVO.setMberId(mjonPayVO.getUserId()); + mjonEventVO.setEventStatus("Y"); + MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO); + + if(eventMberInfo != null) { + + float evntRemainCash = (float) eventMberInfo.getEventRemainCash(); + totPrice = (float) Math.abs(mjonPayVO.getCash()); + + float totRemainCash = evntRemainCash - totPrice; + mjonEventVO.setEventInfoId(eventMberInfo.getEventInfoId()); + + if(totRemainCash <= 0.0) {//차감액이 남아있지 않으면 이벤트를 종료 + + //이벤트 상태값을 종료로 변경한다. + mjonEventVO.setEventStatus("E"); + mjonEventVO.setEventRemainCash(0.0); + mjonEventService.updateEventEndStatus(mjonEventVO); + + }else {//이벤트 회원 캐시 차감시킴 + + mjonEventVO.setEventRemainCash(totRemainCash); + mjonEventService.updateEventRemainCash(mjonEventVO); + + } + + } + } diff --git a/src/main/webapp/js/web/msgdata/msgDataView.js b/src/main/webapp/js/web/msgdata/msgDataView.js index 3e222fe8..ff5c020a 100644 --- a/src/main/webapp/js/web/msgdata/msgDataView.js +++ b/src/main/webapp/js/web/msgdata/msgDataView.js @@ -1067,13 +1067,35 @@ function fn_sendMsgData(){ var eventRemainCash = parseFloat(form.eventRemainCash.value); console.log('eventStatus : ', eventStatus); - if(eventStatus == 'Y' - && parseFloat(eventRemainCash) < parseFloat(totPriceOnly)) + if(eventStatus == 'Y' && parseFloat(eventRemainCash) < parseFloat(totPriceOnly)) { + + // 이벤트 금액 부족 상태 요청하신 모두 발송할 수 없습니다 console.log('eventRemainCash : ', eventRemainCash); if(!confirm("고객님의 이벤트 캐시 잔액(" + eventRemainCash + "원) 부족으로 요청하신 문자("+numberWithCommas($selectedData.length)+"건)를 모두 발송할 수 없습니다. 이벤트 캐시 초과 건에 대해서는 일반 단가를 적용하여 발송하시겠습니까?")){ return false; } + + // 이벤트 캐시 초과 건에 대해서는 일반 단가를 적용하여 발송하시겠습니까 + + var evnMsgType = $("#msgType").val(); // 문자전송 타입 + var norEachPrice = getNorEachPrice(evnMsgType); // 일반전송 금액 + var eventEachPrice = getEventEachPrice(evnMsgType); // 이벤트 전송 금액 + var eventCount = eventRemainCash/eventEachPrice; // 이벤트금액으로 전송가능한 수량 + console.log('eventCount : ', parseInt(eventCount)); + var norCount = numberWithCommas($selectedData.length)-parseInt(eventCount); // 일반금액으로 전송수량 + console.log('norCount : ', parseInt(norCount)); + + var norAccount = norCount * norEachPrice; // 일반금액으로 변경한 발송금액 + var totAccount = userMoneyOnly - norAccount // + console.log('norAccount : ', norAccount); + console.log('userMoneyOnly : ', userMoneyOnly); + console.log('totAccount : ', totAccount); + + if(totAccount < 0){ + alert("고객님의 이벤트 캐시 잔액(" + parseInt(totAccount)*-1 + "원) 부족으로 요청하신 문자("+numberWithCommas($selectedData.length)+"건)를 모두 발송할 수 없습니다."); + return false; + } } console.log(' !!! imgFilePath : ', imgFilePath); @@ -1411,6 +1433,48 @@ function getNorEachPrice(evnMsgType){ return norEachPrice; } + +//이벤트가 아닌 일반 개별 단가 셋팅해주기 +function getEventEachPrice(evnMsgType){ + + var eventEachPrice = 0; + var evnImgCnt = $("#imgCnt").val(); + + //일반 단가로 변경해주기 + if(evnMsgType == '4'){ + + eventEachPrice = $("#sPrice").val(); + console.log("eventEachPrice Short::: "+eventEachPrice); + + }else if(evnMsgType == '6'){ + + if(evnImgCnt == 0){//장문 가격 + + eventEachPrice = $("#mPrice").val(); + console.log("eventEachPrice Long ::: "+eventEachPrice); + + }else if(evnImgCnt == 1){ + + eventEachPrice = $("#pPrice").val(); + console.log("eventEachPrice p1 ::: "+eventEachPrice); + + }else if(evnImgCnt == 2){ + + eventEachPrice = $("#p2Price").val(); + console.log("eventEachPrice p2 ::: "+eventEachPrice); + + }else if(evnImgCnt == 3){ + + eventEachPrice = $("#p3Price").val(); + console.log("eventEachPrice p3 ::: "+eventEachPrice); + + } + + } + + return eventEachPrice; +} + //빈 값이나 null 값을 제거하는 함수 function removeEmptyValues(obj) { Object.keys(obj).forEach(function(key) { From d58c7602bff068c99dd637c4ee08a36abbcb8cd5 Mon Sep 17 00:00:00 2001 From: myname Date: Fri, 24 Jan 2025 20:00:13 +0900 Subject: [PATCH 3/6] =?UTF-8?q?2025-01-24=2020:00=20=EC=B2=AB=20=EA=B2=B0?= =?UTF-8?q?=EC=A0=9C=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20=EC=B6=A9=EC=A0=84?= =?UTF-8?q?=ED=95=98=EA=B8=B0=20=EB=B2=84=ED=8A=BC=20=ED=81=B4=EB=A6=AD?= =?UTF-8?q?=EC=8B=9C=20=EA=B2=B0=EC=A0=9C=20=EC=97=AC=EB=B6=80=20=ED=99=95?= =?UTF-8?q?=EC=9D=B8=ED=95=98=EB=8A=94=20=EC=B2=B4=ED=81=AC=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itn/let/mjo/event/web/MjonEventController.java | 14 ++++++++++++++ .../WEB-INF/jsp/web/event/pay/EventPayView.jsp | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/src/main/java/itn/let/mjo/event/web/MjonEventController.java b/src/main/java/itn/let/mjo/event/web/MjonEventController.java index 3ab0558f..ffa3cf64 100644 --- a/src/main/java/itn/let/mjo/event/web/MjonEventController.java +++ b/src/main/java/itn/let/mjo/event/web/MjonEventController.java @@ -193,6 +193,20 @@ public class MjonEventController { }else { + //결제내역 카운트 조회 + int payCnt = mjonPayService.selectMemerPayCount(loginVO.getId()); + + //System.out.println("첫 결제 회원만 이벤트 신청이 가능합니다."); + //System.out.println(payCnt); + //System.out.println(payCnt); + //System.out.println(payCnt); + + if (payCnt>=0) { + modelAndView.addObject("message", "첫 결제 회원만 이벤트 신청이 가능합니다."); + modelAndView.addObject("resultSts", "statusAlreadyPayedFail"); + return modelAndView; + } + mjonEventVO.setMberId(loginVO.getId()); mjonEventVO.setMberNm(loginVO.getName()); diff --git a/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayView.jsp b/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayView.jsp index c9073ce5..ce3d0a5f 100644 --- a/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayView.jsp @@ -259,6 +259,12 @@ function pgOpenerPopup(){ popStatus = false; return false; + }else if("statusAlreadyPayedFail"==returnData.resultSts){ + + alert(returnData.message); + popStatus = false; + return false; + }else if("statusFail"==returnData.resultSts){ alert(returnData.message); From a2a8fc580f6b85daec1911c4b0aef626d1dd410c Mon Sep 17 00:00:00 2001 From: wyh Date: Fri, 24 Jan 2025 20:59:26 +0900 Subject: [PATCH 4/6] =?UTF-8?q?=EA=B7=B8=EB=A3=B9=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=EC=97=AC=EB=B6=80=20?= =?UTF-8?q?=EA=B0=92=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MjonMsgDataServiceImpl.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java index 44cbd0e2..fab9cbab 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java @@ -4203,6 +4203,29 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M // 개별단가 mjonMsgVO.setEachPrice(mjonMsgSendVO.getEachPrice()); + //이벤트 회원인 경우 이벤트 캐시도 함께 차감. + MjonEventVO mjonEventVO = new MjonEventVO(); + mjonEventVO.setMberId(mjonMsgSendVO.getUserId()); + mjonEventVO.setEventStatus("Y"); + MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO); + + if(eventMberInfo != null) { + if(mjonMsgSendVO.getEachPrice().equals(eventMberInfo.getEventShortPrice())) { + mjonMsgVO.setEventYn("Y"); + }else if(mjonMsgSendVO.getEachPrice().equals(eventMberInfo.getEventLongPrice())) { + mjonMsgVO.setEventYn("Y"); + }else if(mjonMsgSendVO.getEachPrice().equals(eventMberInfo.getEventPicturePrice())) { + mjonMsgVO.setEventYn("Y"); + }else if(mjonMsgSendVO.getEachPrice().equals(eventMberInfo.getEventPicture2Price())) { + mjonMsgVO.setEventYn("Y"); + }else if(mjonMsgSendVO.getEachPrice().equals(eventMberInfo.getEventPicture3Price())) { + mjonMsgVO.setEventYn("Y"); + }else { + mjonMsgVO.setEventYn("N"); + } + } + + // 전송사 코드 번호를 셋팅해 준다. mjonMsgVO.setAgentCode(mjonMsgSendVO.getAgentCode()); From 2763b71c85d42868226c550f5fc6e313c74e9d6c Mon Sep 17 00:00:00 2001 From: myname Date: Fri, 24 Jan 2025 21:03:32 +0900 Subject: [PATCH 5/6] =?UTF-8?q?2025-01-24=2021:02=20=EC=B2=AB=20=EA=B2=B0?= =?UTF-8?q?=EC=A0=9C=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20=EB=93=B1=EB=A1=9D?= =?UTF-8?q?=EC=8B=9C=20=EA=B2=B0=EC=A0=9C=20=EC=97=AC=EB=B6=80=20=ED=99=95?= =?UTF-8?q?=EC=9D=B8=ED=95=98=EB=8A=94=20=EB=A1=9C=EC=A7=81=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=EB=90=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java b/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java index 603bf80e..d9814bdf 100644 --- a/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java +++ b/src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java @@ -79,6 +79,9 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP @Resource(name = "egovPgMoidGnrService") private EgovIdGnrService idgenPgMoid; + @Resource(name = "mjonPayService") + private MjonPayService mjonPayService; + /** 메모 idgen */ @Resource(name="egovGnrlUserSelectMemoIdGnrService") private EgovIdGnrService memoidgenService; @@ -2259,13 +2262,16 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP * * */ + //결제내역 카운트 조회 + int payCnt = mjonPayService.selectMemerPayCount(mjonPayVO.getUserId()); + //이벤트 회원 정보 테이블에서 미진행 대상자의 정보를 불러온다. MjonEventVO eventMberInfo = selectEventMsgMberDefaultInfo(mjonPayVO.getUserId(), "N"); // 문자할인여부(1: 할인, 0: 미할인) int isMsgSalePrice = selectMsgSalePriceCnt(mjonPayVO.getUserId()); - if(eventMberInfo == null) {//일반 결제에 해당하는 경우 정상적 포인트 지급, 이벤트 첫결제에 해당되지 않는 회원 + if(eventMberInfo == null || payCnt > 0) {//일반 결제에 해당하는 경우 정상적 포인트 지급, 이벤트 첫결제에 해당되지 않는 회원 // 문자 미할인 회원만 포인트 충전 if(isMsgSalePrice == 0) { mjonPayDAO.insertPoint(mjonPayVO); //POINT 테이블 From 92cd4a2cfc95b5edba0a3edcd152a6a519195f03 Mon Sep 17 00:00:00 2001 From: wyh Date: Fri, 24 Jan 2025 21:26:39 +0900 Subject: [PATCH 6/6] =?UTF-8?q?=EC=9D=B4=EB=B2=A4=ED=8A=B8=20=EC=A1=B0?= =?UTF-8?q?=EA=B1=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MjonMsgDataServiceImpl.java | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java index fab9cbab..000028ac 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java @@ -4206,19 +4206,38 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M //이벤트 회원인 경우 이벤트 캐시도 함께 차감. MjonEventVO mjonEventVO = new MjonEventVO(); mjonEventVO.setMberId(mjonMsgSendVO.getUserId()); - mjonEventVO.setEventStatus("Y"); MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO); + String str = String.valueOf(mjonMsgSendVO.getEachPrice()); + // 소수점 제거 + String EachPrice = str.split("\\.")[0]; + + if(eventMberInfo != null) { - if(mjonMsgSendVO.getEachPrice().equals(eventMberInfo.getEventShortPrice())) { + String eventShortPrice = String.valueOf(eventMberInfo.getEventShortPrice()); + eventShortPrice = eventShortPrice.split("\\.")[0]; + + String eventLongPrice = String.valueOf(eventMberInfo.getEventLongPrice()); + eventLongPrice = eventLongPrice.split("\\.")[0]; + + String eventPicturePrice = String.valueOf(eventMberInfo.getEventPicturePrice()); + eventPicturePrice = eventPicturePrice.split("\\.")[0]; + + String eventPicture2Price = String.valueOf(eventMberInfo.getEventPicture2Price()); + eventPicture2Price = eventPicture2Price.split("\\.")[0]; + + String eventPicture3Price = String.valueOf(eventMberInfo.getEventPicture3Price()); + eventPicture3Price = eventPicture3Price.split("\\.")[0]; + + if(EachPrice.equals(eventShortPrice)) { mjonMsgVO.setEventYn("Y"); - }else if(mjonMsgSendVO.getEachPrice().equals(eventMberInfo.getEventLongPrice())) { + }else if(EachPrice.equals(eventLongPrice)) { mjonMsgVO.setEventYn("Y"); - }else if(mjonMsgSendVO.getEachPrice().equals(eventMberInfo.getEventPicturePrice())) { + }else if(EachPrice.equals(eventPicturePrice)) { mjonMsgVO.setEventYn("Y"); - }else if(mjonMsgSendVO.getEachPrice().equals(eventMberInfo.getEventPicture2Price())) { + }else if(EachPrice.equals(eventPicture2Price)) { mjonMsgVO.setEventYn("Y"); - }else if(mjonMsgSendVO.getEachPrice().equals(eventMberInfo.getEventPicture3Price())) { + }else if(EachPrice.equals(eventPicture3Price)) { mjonMsgVO.setEventYn("Y"); }else { mjonMsgVO.setEventYn("N");