From 396073a0705a1df9af284e0883c23a82660cc525 Mon Sep 17 00:00:00 2001 From: thkim Date: Thu, 2 Oct 2025 10:08:10 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=9E=A5?= =?UTF-8?q?=EB=B0=94=EA=B5=AC=EB=8B=88=20=EC=B4=88=EA=B8=B0=ED=99=94=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../map/mapControl/MapContorlController.java | 23 +++ .../mapControl/service/MapControlMapper.java | 4 +- .../mapControl/service/MapControlService.java | 2 + .../service/impl/MapContorlServiceImpl.java | 5 + .../sqlmap/mapper/map/MapControl_SQL.xml | 10 ++ .../WEB-INF/views/body/mypage/mypage_cart.jsp | 11 +- .../WEB-INF/views/home/include/header.jsp | 3 + .../views/map/mapControl/cartlistInfo.jsp | 8 +- .../map/download/image/btn_delete_all.gif | Bin 0 -> 1480 bytes src/main/webapp/js/common/myXhr.js | 169 ++++++++++++++++++ src/main/webapp/js/map/main/result.js | 13 ++ 11 files changed, 243 insertions(+), 5 deletions(-) create mode 100644 src/main/webapp/body/map/download/image/btn_delete_all.gif create mode 100644 src/main/webapp/js/common/myXhr.js diff --git a/src/main/java/geoinfo/map/mapControl/MapContorlController.java b/src/main/java/geoinfo/map/mapControl/MapContorlController.java index da8654ea..fc2ec1bc 100644 --- a/src/main/java/geoinfo/map/mapControl/MapContorlController.java +++ b/src/main/java/geoinfo/map/mapControl/MapContorlController.java @@ -19,6 +19,7 @@ import java.net.MalformedURLException; import org.apache.commons.lang3.ArrayUtils; import org.jfree.util.Log; +import org.json.simple.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.PlatformTransactionManager; @@ -574,6 +575,28 @@ public class MapContorlController { return "map/mapControl/deleteCart"; } + + + @RequestMapping(value = "/map/delete-all-cart-list.do", method = RequestMethod.POST) + @ResponseBody + public JSONObject deleteAllCartList(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam Map params) throws Exception { + + JSONObject jSONOResponse = new JSONObject(); + + String userId = request.getSession().getAttribute("USERID").toString(); + + params.put("userId", userId); + + mapControlService.deleteAllCartList(params); + + System.out.println("\n--------------------------------------------------------------\n" + + request.getRequestURI() + " OUT:" + + "\n--------------------------------------------------------------\n" + + "jSONOResponse.toJSONString():[" + jSONOResponse.toJSONString() + "]\n" + + "\n--------------------------------------------------------------\n"); + + return jSONOResponse; + } // 장바구니 관련 다운로드 @RequestMapping(value = "/map/downloadCart.do", method = RequestMethod.GET) diff --git a/src/main/java/geoinfo/map/mapControl/service/MapControlMapper.java b/src/main/java/geoinfo/map/mapControl/service/MapControlMapper.java index 10959b2b..2e825dc2 100644 --- a/src/main/java/geoinfo/map/mapControl/service/MapControlMapper.java +++ b/src/main/java/geoinfo/map/mapControl/service/MapControlMapper.java @@ -37,7 +37,9 @@ public interface MapControlMapper { EgovMap selectWebCartCount(Map params) throws Exception; void deleteCart(Map params) throws Exception; - + + void deleteAllCartList(Map params) throws Exception; + EgovMap selectWebCartUserId(Map params) throws Exception; EgovMap selectWebDownloadLog(Map params) throws Exception; diff --git a/src/main/java/geoinfo/map/mapControl/service/MapControlService.java b/src/main/java/geoinfo/map/mapControl/service/MapControlService.java index d93aa457..373a3d18 100644 --- a/src/main/java/geoinfo/map/mapControl/service/MapControlService.java +++ b/src/main/java/geoinfo/map/mapControl/service/MapControlService.java @@ -36,6 +36,8 @@ public interface MapControlService { EgovMap selectWebCartCount(Map params) throws Exception; void deleteCart(Map params) throws Exception; + + void deleteAllCartList(Map params) throws Exception; EgovMap selectWebDownloadLog(Map params) throws Exception; diff --git a/src/main/java/geoinfo/map/mapControl/service/impl/MapContorlServiceImpl.java b/src/main/java/geoinfo/map/mapControl/service/impl/MapContorlServiceImpl.java index e2bc74d4..68ade94b 100644 --- a/src/main/java/geoinfo/map/mapControl/service/impl/MapContorlServiceImpl.java +++ b/src/main/java/geoinfo/map/mapControl/service/impl/MapContorlServiceImpl.java @@ -87,6 +87,11 @@ public class MapContorlServiceImpl implements MapControlService{ public void deleteCart(Map params) throws Exception { mapControlMapper.deleteCart(params); } + + @Override + public void deleteAllCartList(Map params) throws Exception { + mapControlMapper.deleteAllCartList(params); + } @Override public EgovMap selectWebCartUserId(Map params) throws Exception { diff --git a/src/main/resources/egovframework/sqlmap/mapper/map/MapControl_SQL.xml b/src/main/resources/egovframework/sqlmap/mapper/map/MapControl_SQL.xml index e4b329b5..29b68637 100644 --- a/src/main/resources/egovframework/sqlmap/mapper/map/MapControl_SQL.xml +++ b/src/main/resources/egovframework/sqlmap/mapper/map/MapControl_SQL.xml @@ -443,6 +443,16 @@ ]]> + + + + ")); + }; + + this.submit = function submit(){ + var frm = $("#"+this.formId)[0]; + frm.action = this.url; + frm.method = "post"; + frm.submit(); + }; +} + +//널값 검사 +function isNull(str) { + if (str == null) return true; + if (str == "NaN") return true; + if (new String(str).valueOf() == "undefined") return true; + var chkStr = new String(str); + if( chkStr.valueOf() == "undefined" ) return true; + if (chkStr == null) return true; + if (chkStr.toString().length == 0 ) return true; + return false; +} + + +//브라우저 체크 +function fnGetBrowser() { +var agt = navigator.userAgent.toLowerCase(); + +if (agt.indexOf("trident") != -1) { + return getIEVersion(agt); //'Internet Explorer'; +} +if (agt.indexOf("chrome") != -1) return 'chrome'; +if (agt.indexOf("opera") != -1) return 'opera'; +if (agt.indexOf("firefox") != -1) return 'firefox'; +if (agt.indexOf("safari") != -1) return 'safari'; + +} +//IE버전체크 +function getIEVersion(agt) { + var iever="ie11"; + var index = agt.indexOf("trident"); + var len = "trident".length; + var ver =agt.substr(index+len+1,1); + + //IE 8 = trident/4.0 + //IE 9 = trident/5.0 + //IE 10 = trident/6.0 + if(ver==4) iever="ie8"; + if(ver==5) iever="ie9"; + if(ver==6) iever="ie10"; + if(ver==7) iever="ie11"; + + return iever; +} + + +String.prototype.endsWith = function(str) { + if (this.length < str.length) { return false; } + return this.lastIndexOf(str) + str.length == this.length; +} + +function XSSCheck(str, level) { + if (level == undefined || level == 0) { + str = str.replace(/\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-/g,""); + } else if (level != undefined && level == 1) { + str = str.replace(/\/g, ">"); + } + return str; +} \ No newline at end of file diff --git a/src/main/webapp/js/map/main/result.js b/src/main/webapp/js/map/main/result.js index e1f1d4d4..0643eeba 100644 --- a/src/main/webapp/js/map/main/result.js +++ b/src/main/webapp/js/map/main/result.js @@ -67,6 +67,19 @@ function download(mId, fName) { downloadWin.focus(); } +/** 장바구니 전체 데이터 삭제 * */ +function deleteAllCartList() { + var callback = function() { + alert('장바구니의 모든 항목이 삭제되었습니다.'); + location.reload(); + }; + if(confirm("장바구니의 모든 항목을 초기화하시겠습니까?")){ + requesetPost('/map/delete-all-cart-list.do', null, callback, null); + }else{ + } + +} + /** 데이터 전체 선택 * */ function allSelect(totalCnt) {