jsh77b 5 лет назад
Родитель
Сommit
4bfb7fe575

+ 21 - 0
src/main/java/com/style24/front/biz/dao/TsfCommonDao.java

@@ -4,6 +4,7 @@ import org.springframework.stereotype.Repository;
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.InflowHst;
+import com.style24.persistence.domain.Order;
 
 /**
  * 공통 Dao
@@ -61,5 +62,25 @@ public interface TsfCommonDao {
 //	 * @since 2020. 08. 10
 //	 */
 //	void saveMobileDevice(TsfMobileDevice mobileDevice);
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	int updateDeliverAddr(Order order);
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	int updateDeliverAddrDelvMemo(Order order);
 
 }

+ 30 - 0
src/main/java/com/style24/front/biz/service/TsfCommonService.java

@@ -10,6 +10,7 @@ import com.style24.core.support.env.TscConstants;
 import com.style24.front.biz.dao.TsfCommonDao;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.InflowHst;
+import com.style24.persistence.domain.Order;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -83,5 +84,34 @@ public class TsfCommonService {
 //	public void saveMobileDevice(TsfMobileDevice mobileDevice) {
 //		commonDao.saveMobileDevice(mobileDevice);
 //	}
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	@Transactional("shopTxnManager")
+	public int updateDeliverAddr(Order order) {
+		return commonDao.updateDeliverAddr(order);
+	}
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	@Transactional("shopTxnManager")
+	public int updateDeliverAddrDelvMemo(Order order) {
+		return commonDao.updateDeliverAddrDelvMemo(order);
+	}
+	
+	
+	
 
 }

+ 58 - 6
src/main/java/com/style24/front/biz/web/TsfCommonController.java

@@ -22,18 +22,18 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.gagaframework.web.util.GagaFileUploadUtil;
+import com.gagaframework.web.util.GagaFileUtil;
+import com.gagaframework.web.util.GagaUploadedFileInfo;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.front.biz.service.TsfCommonService;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Order;
 
 import lombok.extern.slf4j.Slf4j;
 
-import com.gagaframework.web.util.GagaFileUploadUtil;
-import com.gagaframework.web.util.GagaFileUtil;
-import com.gagaframework.web.util.GagaUploadedFileInfo;
-
 /**
  * 공통 Controller
  *
@@ -53,6 +53,9 @@ public class TsfCommonController extends TsfBaseController {
 	
 	@Autowired
 	private TscOrderService coreOrderService;
+	
+	@Autowired
+	private TsfCommonService commonService;
 
 	@Value("${upload.default.target.path}")
 	private String uploadTargetPath;
@@ -342,16 +345,65 @@ public class TsfCommonController extends TsfBaseController {
 	 */
 	@ResponseBody
 	@RequestMapping(value = "/delvMemoChangePop")
-	public ModelAndView delvMemoChangePop(Order order) {
+	public ModelAndView delvMemoChangePop(@RequestBody Order order) {
 		
 		ModelAndView mav = new ModelAndView();
 
 		log.info("ordNo >>> {}", order.getOrdNo());
+		log.info("delvMemo >>> {}", order.getDelvMemo());
+		
 		mav.addObject("ordNo", order.getOrdNo() == null ? 0 : order.getOrdNo());
-
+		
+		mav.addObject("delvMemo"	, order.getDelvMemo());
 		mav.setViewName(super.getDeviceViewName("popup/DelvMemoChangePop"));
 		
 		return mav;
 	}
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	@ResponseBody
+	@PostMapping(value = "/updateDeliverAddr")
+	public int updateDeliverAddr(@RequestBody Order order) {
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setCustNo(0);
+		}
+		
+		int rtn = commonService.updateDeliverAddr(order);
+		
+		return rtn;
+	}
+	
+	/**
+	 * 주문배송지정보수정
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 04. 02
+	 */
+	@ResponseBody
+	@PostMapping(value = "/updateDeliverAddrDelvMemo")
+	public int updateDeliverAddrDelvMemo(@RequestBody Order order) {
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setCustNo(0);
+		}
+		
+		int rtn = commonService.updateDeliverAddrDelvMemo(order);
+		
+		return rtn;
+	}
 
 }

+ 2 - 5
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -715,6 +715,8 @@ public class TsfOrderController extends TsfBaseController {
 		mav.addObject("savePntSumAmt"		, resultMap.get("savePntSumAmt"));		// 적립예정포인트합계
 		mav.addObject("mileageDcAmt"		, resultMap.get("mileageDcAmt"));		// 마일리지사용합계
 		mav.addObject("allianceDcAmt"		, resultMap.get("allianceDcAmt"));		// 제휴할인합계
+		mav.addObject("isLogin"				, TsfSession.isLogin());				// 로그인여부
+		mav.addObject("delvAddrSq"			, resultMap.get("delvAddrSq"));			// 배송지번호
 		
 		// TODO 주문정보조회
 		mav.setViewName(super.getDeviceViewName("order/OrderComplete"));
@@ -735,14 +737,9 @@ public class TsfOrderController extends TsfBaseController {
 		
 		// 1. 총알배송가능 지역, 총알배송 가능 시간 체크
 		int rtn = coreOrderService.getDailyDeliveryCheck(order);
-		
 		return rtn;
 	}
 	
-	
-	
-	
-	
 	/**
 	 * 사은품안내팝업
 	 *

+ 27 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCommon.xml

@@ -51,5 +51,32 @@
 		FROM   TB_AF_LINK
 		WHERE  AF_LINK_CD = #{afLinkCd}
 	</select>
+	
+	<!-- 주문배송지정보수정 -->
+	<update id="updateDeliverAddr" parameterType="Order">
+		/* TsfCommon.updateDeliverAddr */
+		UPDATE TB_DELIVERY_ADDR
+		SET    RECIP_NM             = #{recipNm}
+		     , RECIP_PHNNO          = #{recipPhnno}
+		     , RECIP_ZIPCODE        = #{recipZipcode}
+		     , RECIP_BASE_ADDR      = #{recipBaseAddr}
+		     , RECIP_DTL_ADDR       = #{recipDtlAddr}
+		     , DELV_MEMO            = #{delvMemo}
+		     , UPD_NO               = #{custNo}
+		     , UPD_DT               = NOW()
+		WHERE  1=1
+		AND    DELV_ADDR_SQ         = #{delvAddrSq}
+	</update>
+	
+	<!-- 주문배송지메모정보수정 -->
+	<update id="updateDeliverAddrDelvMemo" parameterType="Order">
+		/* TsfCommon.updateDeliverAddrDelvMemo */
+		UPDATE TB_DELIVERY_ADDR
+		SET    DELV_MEMO            = #{delvMemo}
+		     , UPD_NO               = #{custNo}
+		     , UPD_DT               = NOW()
+		WHERE  1=1
+		AND    DELV_ADDR_SQ         = #{delvAddrSq}
+	</update>
 
 </mapper>

+ 154 - 11
src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb.html

@@ -83,24 +83,22 @@
 												<div class="block_line">
 													<ul>
 														<li>
-															<span th:text="${orderInfo.recipNm}">홍길동</span>
+															<span id="recipNm" th:text="${orderInfo.recipNm}"></span>
+															<!-- 
 															<span class="tag">STYLE24 일반배송</span>
 															<span class="tag primary_line">총알배송</span>
+															 -->
 														</li>
 														<li>
-															<span th:text="${orderInfo.recipPhnno}"></span>
+															<span id="recipPhnno" th:text="${orderInfo.recipPhnno}"></span>
 														</li>
 														<li>
-															<span th:text="${orderInfo.recipBaseAddr} + ${orderInfo.recipDtlAddr}"></span>
-															<button type="button" id="btn_adrsChange_pop" class="btn btn_default btn_sm">
-																<span>배송지 변경</span>
-															</button>
+															<span id="recipAddr" th:text="${orderInfo.recipBaseAddr} + '    ' + ${orderInfo.recipDtlAddr}"></span>
+															<button type="button" id="btn_adrsChange_pop" class="btn btn_default btn_sm"><span>배송지 변경</span></button>
 														</li>
 														<li>
-															배송요청 사항&nbsp;:&nbsp;<span  th:text="${orderInfo.delvMemo}"></span>
-															<button type="button" id="btn_rqstModify_pop" class="btn_underline">
-																<span>변경하기</span>
-															</button>
+															배송요청 사항&nbsp;:&nbsp;<span id="delvMemo" th:text="${orderInfo.delvMemo}"></span>
+															<button type="button" id="btn_rqstModify_pop" class="btn_underline"><span>변경하기</span></button>
 														</li>
 													</ul>
 												</div>
@@ -216,7 +214,12 @@
 												<!-- 신용카드 일때 -->
 												<div>
 													<dt class="sr-only">결제방법</dt>
-													<dd th:if="!${orderInfo.cardNm}" th:text="${orderInfo.payType}"></dd>
+													<th:block th:if="${orderInfo.cardType} == 'Y'">
+														<dd th:if="!${orderInfo.cardNm}" th:text="|체크카드(${orderInfo.payType})|"></dd>
+													</th:block>
+													<th:block th:if="${orderInfo.cardType} == 'N'">
+														<dd th:if="!${orderInfo.cardNm}" th:text="|신용카드(${orderInfo.payType})|"></dd>
+													</th:block>
 													<dd th:if="${orderInfo.cardNm}" th:text="${orderInfo.cardNm}"></dd>
 												</div>
 												<!-- //신용카드 일때 -->
@@ -248,6 +251,146 @@
 	</div>
 </div>
 <!-- // container -->
+
+<script th:inline="javascript">
+// 배송관련정보 변수선언
+var ordNo			= [[${orderInfo.ordNo}]]		// 배송목록
+var isLogin			= [[${isLogin}]];				// 로그인여부
+var delvAddrSq		= [[${delvAddrSq}]];			// 배송지번호
+
+// 2.1 회원 배송지변경 팝업열기
+$('#btn_adrsChange_pop').on("click", function(){
+	// 회원인경우
+	if (isLogin == true) {
+		$.ajax( {
+			type		: "POST",
+			url 		: '/common/delvAddrChangePop',
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+				gagajf.showProgressbar(true);
+			},
+			success 	: function(result) {
+				$("#adrsChangePop .modal-dialog .modal-content").html(result);
+				$("#adrsChangePop").modal("show");
+			}
+		});
+	}
+	// 비회원인경우
+	else {
+		$.ajax( {
+			type		: "POST",
+			url 		: '/common/delvAddrAddPop',
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+				gagajf.showProgressbar(true);
+			},
+			success 	: function(result) {
+				$("#adrsAddPop .modal-dialog .modal-content").html(result);
+				$("#adrsAddPop").modal("show");
+			}
+		});	
+	}
+});
+
+// 2.2 배송요청사항 팝업열기
+$("#btn_rqstModify_pop").on("click", function(e){
+	var jsonObj = new Object();
+	jsonObj.delvMemo = $("#delvMemo").text();
+	
+	$.ajax({
+		type		: "POST",
+		url 		: "/common/delvMemoChangePop",
+		data		: JSON.stringify(jsonObj),
+		dataType 	: "html",
+		beforeSend 	: function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+			gagajf.showProgressbar(true);
+		},
+		success 	: function(result) {
+			if (result != null) {
+				$("#rqstModifyPop .modal-dialog .modal-content").html(result);
+				$("#rqstModifyPop").modal("show");
+			}
+		}
+	});
+	
+	return false;
+});
+
+// 1.18 배송지정보 설정
+var delvAddrSet = function(delvObj) {
+	
+	var rtnStr = "";
+	rtnStr += "| recipNm 			::: " + delvObj.recipNm;
+	rtnStr += "| recipPhnno 		::: " + delvObj.recipPhnno;
+	rtnStr += "| recipZipcode 		::: " + delvObj.recipZipcode;
+	rtnStr += "| recipBaseAddr 		::: " + delvObj.recipBaseAddr;
+	rtnStr += "| recipDtlAddr 		::: " + delvObj.recipDtlAddr;
+	rtnStr += "| delvMemo 			::: " + delvObj.delvMemo;
+	
+	$("#recipNm").text(delvObj.recipNm);
+	$("#recipPhnno").text(delvObj.recipPhnno);
+	$("#recipAddr").text(delvObj.recipBaseAddr + '    ' + delvObj.recipDtlAddr);
+	$("#delvMemo").text(delvObj.delvMemo);
+	
+	// 변수값 설정
+	var jsonObj = {
+		"delvAddrSq" 		: delvAddrSq
+		, "recipNm"			: delvObj.recipNm
+		, "recipPhnno"		: delvObj.recipPhnno
+		, "recipZipcode"	: delvObj.recipZipcode
+		, "recipBaseAddr"	: delvObj.recipBaseAddr
+		, "recipDtlAddr"	: delvObj.recipDtlAddr
+		, "delvMemo"		: delvObj.delvMemo
+	}
+	
+	gagajf.ajaxJsonSubmit(
+		"/common/updateDeliverAddr"
+		, JSON.stringify(jsonObj)
+		, function (result) {
+			mcxDialog.alert("수정되었습니다.");
+		}
+	)
+}
+
+// 1.19 배송메모설정
+var delvMemoSet = function(delvMemoObj) {
+	
+	var rtnStr = "";
+	rtnStr += "| delvMemo 			::: " + delvMemoObj.delvMemo;
+
+	// 변수값 설정
+	var jsonObj = {
+		"delvAddrSq" 		: delvAddrSq
+		, "delvMemo"		: delvMemoObj.delvMemo
+	}
+	
+	$("#delvMemo").text(delvMemoObj.delvMemo);
+	
+	gagajf.ajaxJsonSubmit(
+		"/common/updateDeliverAddrDelvMemo"
+		, JSON.stringify(jsonObj)
+		, function (result) {
+			mcxDialog.alert("수정되었습니다.");
+		}
+	)
+}
+
+
+
+</script>
+
+
+
+
 </th:block>
 </body>
 </html>

+ 16 - 12
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -655,12 +655,18 @@ var deliveryAddrInfoSet = function(delvObj, temp) {
 			$("#btn_rqstModify_pop").on("click", function(e){
 				var jsonObj = new Object();
 				jsonObj.delvMemo = $("#orderForm input[name=delvMemo]").val();
-				
+
 				$.ajax({
 					type		: "POST",
 					url 		: "/common/delvMemoChangePop",
 					data		: JSON.stringify(jsonObj),
 					dataType 	: "html",
+					beforeSend 	: function(xhr, settings) {
+						xhr.setRequestHeader("AJAX"			, "true");
+						xhr.setRequestHeader('Accept'		, 'application/json');
+						xhr.setRequestHeader('Content-Type'	, 'application/json');
+						gagajf.showProgressbar(true);
+					},
 					success 	: function(result) {
 						if (result != null) {
 							$("#rqstModifyPop .modal-dialog .modal-content").html(result);
@@ -1104,11 +1110,11 @@ var serialCpnApply = function(){
 
 			// 성공일때는 쿠폰정보 및 포인트 정보 reset
 			if (result.serialCpnInfo.result == "SUCCESS") {
-				alert("쿠폰 등록이 되었습니다.");
+				mcxDialog.alert("쿠폰 등록이 되었습니다.");
 				// 1.8 할인영역 재로드
 				dcAmtInfoSet(jsonData);
 			} else {
-				alert(result.serialCpnInfo.result);
+				mcxDialog.alert(result.serialCpnInfo.result);
 				$("#serialCpnNm").val("");
 			}
 		}
@@ -1220,7 +1226,7 @@ var dcAmtInfoSet = function() {
 					
 					// 입력여부체크
 					if (pntDcAmt < 1) {
-						alert("사용할 포인트를 입력해주세요");
+						mcxDialog.alert("사용할 포인트를 입력해주세요");
 						// 포인트리셋기능
 						pntDcAmtReset();
 						return false;
@@ -1228,7 +1234,7 @@ var dcAmtInfoSet = function() {
 					
 					// 보유포인트보다 초과 사용 불가
 					if (pntDcAmt > rmPntAmt) {
-						alert("보유포인트 보다 초과 사용 할 수 없습니다.");
+						mcxDialog.alert("보유포인트 보다 초과 사용 할 수 없습니다.");
 						// 포인트리셋기능
 						pntDcAmtReset();
 						return false;
@@ -1236,7 +1242,7 @@ var dcAmtInfoSet = function() {
 
 					// TODO 포인트 사용금액 1000P 이상 사용
 					if (pntDcAmt < 1000) {
-						alert("포인트는 최소 1,000P이상 사용해야 합니다.");
+						mcxDialog.alert("포인트는 최소 1,000P이상 사용해야 합니다.");
 						// 포인트리셋기능
 						pntDcAmtReset();
 						return false;
@@ -1244,7 +1250,7 @@ var dcAmtInfoSet = function() {
 					
 					// 실결제금액보다 크게 적용 되었을때 적용 불가능
 					if (pntDcAmt > applyPntDcAmt) {
-						alert("결제금액의 최대 40%를 초과 사용 할 수 없습니다.");
+						mcxDialog.alert("결제금액의 최대 40%를 초과 사용 할 수 없습니다.");
 						// 포인트리셋기능
 						pntDcAmtReset();
 						return false;
@@ -1271,7 +1277,7 @@ var dcAmtInfoSet = function() {
 					
 					// 입력여부체크
 					if (gfcdUseAmt < 1 || $("input[name='gfcdUseAmtStr']").val() == "") {
-						alert("사용할 금액을 입력해주세요");
+						mcxDialog.alert("사용할 금액을 입력해주세요");
 						// 상품권리셋기능
 						gfcdUseAmtReset();
 						return false;
@@ -1279,7 +1285,7 @@ var dcAmtInfoSet = function() {
 					
 					// 보유금액보다 초과 사용 불가
 					if (gfcdUseAmt > rmGfcdAmt) {
-						alert("보유금액 보다 초과 사용 할 수 없습니다.");
+						mcxDialog.alert("보유금액 보다 초과 사용 할 수 없습니다.");
 						// 상품권리셋기능
 						gfcdUseAmtReset();
 						return false;
@@ -1287,7 +1293,7 @@ var dcAmtInfoSet = function() {
 
 					// TODO 포인트 사용금액 1000원 이상 사용
 					if (gfcdUseAmt < 1000) {
-						alert("상품권 사용금액은 최소 1,000원 이상 사용해야 합니다.");
+						mcxDialog.alert("상품권 사용금액은 최소 1,000원 이상 사용해야 합니다.");
 						
 						// 상품권리셋기능
 						gfcdUseAmtReset();
@@ -2015,8 +2021,6 @@ var delvAddrSet = function(delvObj) {
 	rtnStr += "| recipDtlAddr 		::: " + delvObj.recipDtlAddr;
 	rtnStr += "| delvMemo 			::: " + delvObj.delvMemo;
 	
-	//alert(rtnStr);
-	
 	// 배송지정보로드실행
 	deliveryAddrInfoSet(delvObj, false);
 }

+ 5 - 5
src/main/webapp/WEB-INF/views/web/order/OrderNoMemberWeb.html

@@ -54,7 +54,7 @@
 						<div class="form_field">
 							<label class="input_label sr-only">이름(주문자명)</label>
 							<div class="input_wrap"> 
-								<input type="text" class="form_control" name="custNm" placeholder="이름(주문자명)" value="홍길동">
+								<input type="text" class="form_control" name="custNm" placeholder="이름(주문자명)" value="">
 							</div>
 						</div>	
 						
@@ -63,7 +63,7 @@
 							<label class="input_label sr-only">휴대폰 번호</label>
 							<div class="ui_col_9">
 								<div class="input_wrap"> 
-									<input type="text" class="form_control" name="cellPhnno" placeholder="휴대폰 인증을 해주세요" readonly="readonly" onfocus="this.blur();" value="010-2345-5678">
+									<input type="text" class="form_control" name="cellPhnno" placeholder="휴대폰 인증을 해주세요" readonly="readonly" onfocus="this.blur();" value="">
 								</div>
 							</div>
 							
@@ -90,8 +90,8 @@
 							<label class="input_label sr-only">배송주소</label>
 							<div class="ui_col_9">
 								<div class="input_wrap">
-									<input type="hidden" class="form_control" name="recipZipcode" placeholder="우편번호" readonly="readonly" value="12345">
-									<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소" readonly="readonly" value="인천광역시 서구 마전동 101">
+									<input type="hidden" class="form_control" name="recipZipcode" placeholder="우편번호" readonly="readonly" value="">
+									<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소" readonly="readonly" value="">
 									<input type="text" class="form_control" name="recipAddr" placeholder="상세주소" readonly="readonly">
 								</div>
 							</div>
@@ -102,7 +102,7 @@
 						<div class="form_field">
 							<label class="input_label sr-only">상세주소</label>
 							<div class="input_wrap"> 
-								<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소" value="아파트 202동 202호">
+								<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소" value="">
 							</div>
 						</div>
 			

+ 3 - 2
src/main/webapp/WEB-INF/views/web/popup/DelvMemoChangePopWeb.html

@@ -42,10 +42,11 @@
     <button type="button" id="btn_delvMemoChange" class="btn btn_dark"><span>등록</span></button>
 </div>
 
-<script type="text/javascript">
+<script th:inline="javascript">
+var delvMemo				= [[${delvMemo}]];				// 로그인여부
+
 // 초기배송메모설정
 $(document).ready( function() {
-	var delvMemo = $("#orderForm input[name=delvMemo]").val();
 	var delvMemoArr = ["문앞", "직접받고 부재시 문 앞", "경비실", "택배함"];
 	var tempMemo = true;