فهرست منبع

Merge remote-tracking branch 'origin/jsh77b' into card007

# Conflicts:
#	src/main/java/com/style24/front/biz/web/TsfOrderController.java
card007 5 سال پیش
والد
کامیت
4c2fe0f265

+ 18 - 6
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -888,20 +888,32 @@ public class TsfCartService {
 			}
 		} else {
 			param.setCartGb(TscConstants.CartGb.CART.value());
+			param.setNotCartSq(param.getCartSq());						// 수정 장바구니 번호 제외
 			Collection<Integer> cartSqList = cartDao.selectHasNormalDealItemCartList(param);
 			if (cartSqList != null && cartSqList.size() > 0) {			// 장바구니 기존재
 				if (cartSqList.size() > 1) {							// 장바구니 조회 결과 이상시 insert or select 수정 필요
 					throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
 				} else {
 					param.setCartSq(cartSqList.iterator().next());
-					cartDao.updateCartInfo(param);
-					cartDao.insertCartHst(param);                // 장바구니 수정 이력 저장
+					cartDao.updateCartInfo(param);				// 장바구니 기존 데이터에 UPDATE(수량증가)
+					cartDao.insertCartHst(param);				// 장바구니 수정 이력 저장
+
+					// 이전 장바구니에 수정되었으므로 현재 수정된 장바구니 데이터 삭제
+					int[] delCartSq = {param.getNotCartSq()};
+					param.setCartSqArr(delCartSq);
+					cartDao.deleteCart(param);					// 현재 장바구니 삭제
+					cartDao.deleteCartDetail(param);			// 현재 장바구니 삭제
 				}
 			} else {
-				/*cartDao.insertCartInfo(param);					// 장바구니 마스터 정보 저장
-				cartDao.insertCartHst(param);                   // 장바구니 수정 이력 저장
-				cartDao.insertCartDetailInfo(param);			// 장바구니 상세 저장
-				cartDao.insertCartDetailHst(param);             // 장바구니 수정 이력 저장*/
+				cartDao.updateCart(param);						// 장바구니 마스터 정보 저장
+				cartDao.insertCartHst(param);					// 장바구니 수정 이력 저장
+
+				param.setItemCd(param.getItemCds()[0]);
+				param.setCartDtlSq(param.getCartDtlSqArr()[0]);
+				param.setOptCd(param.getOptCds()[0]);
+
+				cartDao.updateCartDetail(param);                // 장바구니 상세 저장
+				cartDao.insertCartDetailHst(param);                // 장바구니 수정 이력 저장
 			}
 		}
 	}

+ 6 - 1
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -17,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.thymeleaf.util.StringUtils;
 
 import com.gagaframework.web.parameter.GagaMap;
+import com.style24.core.biz.dao.TscOrderDao;
 import com.style24.core.biz.service.TscKakaoPayService;
 import com.style24.core.biz.service.TscKcpService;
 import com.style24.core.biz.service.TscNaverPayService;
@@ -46,6 +47,9 @@ public class TsfOrderService {
 
 	@Autowired
 	private TscKcpService coreKcpService;
+
+	@Autowired
+	private TscOrderDao coreOrderDao;
 	
 	@Autowired
 	private TscKakaoPayService coreKakaoPayService;
@@ -257,8 +261,9 @@ public class TsfOrderService {
 			result.setPaySq(param.getPaySq());
 			result.setUpdNo(param.getCustNo());
 			result.setRegNo(param.getCustNo());
+			result.setPayGb("O");
 
-			if(updatePaymentForOrderFinished(result) < 1) {
+			if(coreOrderDao.insertPayment(result) < 1) {
 				// TODO 전체 취소 로직 추가
 				if(TscConstants.PgGb.KCP.value().equals(param.getPgGb()) || TscConstants.PgGb.PAYCO.value().equals(param.getPgGb())) {
 					coreKcpService.kcpPayRollBack(result, request);

+ 31 - 8
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -482,12 +482,21 @@ public class TsfOrderController extends TsfBaseController {
 	public ModelAndView payResultResponse(Payment param, HttpServletRequest request, HttpServletResponse response) {
 		ModelAndView mav = new ModelAndView();
 
-
+		// TODO 주문정보 업데이트
+		// 1. 주문상태업데이트
+		// 2. 재고처리
+		// 3. 포인트사용처리
+		// 4. 예정포인트적립처리
+		// 5. 쿠폰사용처리
+		// 6. 상품권사용처리
+		
 		// 테스트용 데이터 세팅
 		param.setPaySq(3);
 		param.setCustNo(TsfSession.getInfo().getCustNo() == null ? 0 : TsfSession.getInfo().getCustNo());
 		param.setUpdNo(param.getCustNo());
-
+		
+		
+		// 7. 결재정보등록(TB_PAYMENT)
 		param = orderService.orderPgPayResult(param, request, response);
 
 		mav.addObject("payment", param);
@@ -790,12 +799,26 @@ public class TsfOrderController extends TsfBaseController {
 		
 		order.setFrontGb(TsfSession.getFrontGb());
 		
-		// 2. 주문기본정보등록
-		// coreOrderService.createPreOrder(order);
-		
-		
-
-
+		// TODO
+		// 2. 주문정보 유효성체크 (
+		// 2.1 보유쿠폰체크
+		// 2.2 보유포인트체크
+		// 2.3 상품재고체크
+		// 2.4 보유상품권체크
+		// 2.5 사은품채고체크
+		
+		// 3. 주문기본정보등록
+		coreOrderService.createPreOrder(order);
+		
+		log.info("order.getPgGb()              ::: {}", order.getPgGb());
+		log.info("order.getPayMeans()          ::: {}", order.getPayMeans());
+		log.info("order.getOrdNo()             ::: {}", order.getOrdNo());
+		log.info("order.getGoodsNm()           ::: {}", order.getGoodsNm());
+		log.info("order.getOrdGoodsQty()       ::: {}", order.getOrdGoodsQty());
+		log.info("order.getPayAmt()            ::: {}", order.getPayAmt());
+		log.info("order.getOrdNm()             ::: {}", order.getOrdNm());
+		log.info("order.getOrdPhnno()          ::: {}", order.getOrdPhnno());
+		log.info("order.getCustNo()            ::: {}", order.getCustNo());
 
 		// TODO PG 데이터 세팅 처리 (order)
 		// 필수 데이터

+ 2 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -79,6 +79,7 @@
 		AND    C.GOODS_CD = #{goodsCd}
 		AND    C.CART_GB = #{cartGb}
 		AND    CD.OPT_CD = #{optCd}
+		AND    C.CART_SQ <![CDATA[ <> ]]> #{notCartSq}
 	</select>
 
 	<!-- 장바구니 신규 등록 -->
@@ -923,6 +924,7 @@
 			 , ST.CURR_STOCK_QTY
 			 , ST.SOLDOUT_YN
 			 , CD.OPT_CD AS CART_OPT_CD
+			 , CD.CART_DTL_SQ
 		FROM   TB_GOODS G
 		INNER  JOIN VW_STOCK ST
 		ON     G.GOODS_CD = ST.GOODS_CD

+ 34 - 17
src/main/webapp/WEB-INF/views/web/cart/cartChangeOptionPopupWeb.html

@@ -59,7 +59,6 @@
 
 										<div class="form_field">
 											<select class="setColorSelect">
-												<option th:data="${comp.goodsCd}" value="aa">TEST</option>
 												<th:block th:each="color, index : ${comp.cartColorList}">
 													<option th:data="${comp.goodsCd}" th:value="${color.optCd1}" rel="icon-temperature" th:text="${color.colorNm}" th:selected="${color.cartColorNm != null}"></option>
 												</th:block>
@@ -92,7 +91,7 @@
 										</div>
 										<ul>
 											<li th:each="color, index : ${comp.cartColorList}" class="selfGoodsColor">
-												<a href="" th:classappend="${color.cartColorNm != null} ? 'on'" class="selfGoodsColorSelect" th:data="${color.optCd1}">
+												<a href="" th:cartDtlSq="${color.cartDtlSq}" th:classappend="${color.cartColorNm != null} ? 'on'" class="selfGoodsColorSelect" th:data="${color.optCd1}">
 													<img th:src="${cart.imgPath + '/' + color.sysImgNm}" src="#" th:alt="${color.colorNm}" alt="" />
 												</a>
 											</li>
@@ -125,9 +124,9 @@
 											<span class="title">옵션선택</span>
 										</div>
 										<div class="form_field">
-											<select id="">
+											<select class="selfGoodsColor">
 												<th:block th:each="color, index : ${comp.cartColorList}">
-												<option th:value="${color.optCd}" th:text="${color.optCd1 + '/' + color.optCd2}" th:selected="${color.cartOptCd != null}"></option>
+												<option th:data="${color.cartDtlSq}" th:value="${color.optCd}" th:text="${color.optCd1 + '/' + color.optCd2}" th:selected="${color.cartOptCd != null}"></option>
 												</th:block>
 											</select>
 										</div>
@@ -158,10 +157,6 @@
 
 
 <script th:inline="javascript">
-	$(document).ready(function() {
-
-	})
-
 	// 세트상품 컬러 변경시
 	$(".setColorSelect").on("change", function(e) {
 		let goodsCd = $(this).find("option:checked").attr("data");
@@ -182,7 +177,7 @@
 				if(optCd1 == size[j].optCd1) {
 					html += "<div>";
 					html += "<input type='radio' name='rdi-optsize' id='" + size[j].goodsCd + "-" + size[j].optCd + "' value='" + size[j].optCd + "' ";
-					if(size[j].soldoutYn == "Y" || cart.goodsQty < size[j].currStockQty) {
+					if(size[j].soldoutYn == "Y" || cart.goodsQty > size[j].currStockQty) {
 						html += "disabled = 'disabled'";
 					}
 					html += " />\n";
@@ -217,18 +212,44 @@
 				, goodsQty : $("input[name=goodsQty]").val()
 			}
 		} else if(cart.goodsType != "G056_S" && cart.selfGoodsYn == "Y") {
+			optCds.push($(".selfGoodsSize").find("input[name=rdi-optsize]:checked").val());
+			itemCds.push(cart.goodsCd);
+			$(".selfGoodsColorSelect").each(function() {
+				if($(this).attr("cartDtlSq") > 0) {
+					cartDtlSqArr.push($(this).attr("cartDtlSq"));
+				}
+			});
+
 			data = {
 				  cartSq : cart.cartSq
 				, goodsCd : cart.goodsCd
 				, goodsType : cart.goodsType
-				, optCd : $(".selfGoodsSize").find("input[name=rdi-optsize]:checked").val()
+				, cartDtlSqArr : cartDtlSqArr
+				, itemCds : itemCds
+				, optCds : optCds
 				, goodsQty : $("input[name=goodsQty]").val()
 			}
 		} else {
-			alert("입점업체");
+			optCds.push($(".selfGoodsColor").val());
+			itemCds.push(cart.goodsCd);
+			$(".selfGoodsColor option").each(function() {
+				if($(this).attr("data") > 0) {
+					cartDtlSqArr.push($(this).attr("data"));
+				}
+			});
+
+			data = {
+				cartSq : cart.cartSq
+				, goodsCd : cart.goodsCd
+				, goodsType : cart.goodsType
+				, cartDtlSqArr : cartDtlSqArr
+				, itemCds : itemCds
+				, optCds : optCds
+				, goodsQty : $("input[name=goodsQty]").val()
+			}
 		}
 
-		/*$.ajax( {
+		$.ajax( {
 			type: "POST",
 			url : '/cart/change/option',
 			contentType: 'application/json',
@@ -239,12 +260,8 @@
 				$(".closeCartOptionModal").trigger("click");
 				getCartList();
 			}
-		});*/
+		});
 	}
-
-	$(".closeCartOptionModal").on("click", function() {
-		$(".cartOptionModal").html("");
-	});
 </script>
 
 </div>

+ 2 - 2
src/main/webapp/WEB-INF/views/web/cart/cartListAjaxFormWeb.html

@@ -473,7 +473,7 @@
 		temp.goodsQty = 2;
 		temp.goodsType = "G056_D";
 		temp.dealGoodsCd = "STYD000000025"
-		temp.cartGb = "O";
+		temp.cartGb = "C";
 		temp.afLinkCd = "afLinkCd";
 		temp.ithrCd = "G027_ZZZ";
 		temp.contentsLoc = "G028_YYY";
@@ -486,7 +486,7 @@
 		temp.goodsQty = 3;
 		temp.goodsType = "G056_D";
 		temp.dealGoodsCd = "STYD000000025"
-		temp.cartGb = "O";
+		temp.cartGb = "C";
 		temp.afLinkCd = "afLinkCd";
 		temp.ithrCd = "G027_ZZZ";
 		temp.contentsLoc = "G028_YYY";

+ 1 - 1
src/main/webapp/WEB-INF/views/web/order/OrderDeliveryAddrInfoWeb.html

@@ -98,7 +98,7 @@
 							</div>
 							<div class="info_box overs1">
 								<div class="input_wrap">
-									<input type="text" class="form_control err" maxlength="13" placeholder="P로 시작하는 13자리">
+									<input type="text" name="entryNo" class="form_control err" maxlength="13" placeholder="P로 시작하는 13자리" value="abcde12345qwe">
 									<!-- 유효하지 않은 개인통관고유부호 일때 class명 'err' 추가 -->
 								</div>
 								<div class="t_err">개인통관고유부호가 유효하지 않습니다.</div>

+ 29 - 11
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -308,6 +308,7 @@
 	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="orderDetailInfo">
 		<tr style="height:30px;">
 			<th>cartSq</th>
+			<th style="display:none">goodsNm</th>
 			<th>orgCurrPrice</th>
 			<th>cpn1DcSq</th>
 			<th>cpn1DcAmt</th>
@@ -338,6 +339,7 @@
 				<th:block th:each="goods, i : ${delvAllCart}">
 					<tr style="height:30px;">
 						<td class="cartSq" 			th:text="${goods.cartSq}"></td>
+						<td class="goodsNm" 		th:text="${goods.goodsNm}" style="display:none"></td>
 						<td class="orgCurrPrice" 	th:text="${goods.orgCurrPrice}"></td>
 						<td class="cpn1CpnSq" 		th:text="${goods.cpn1CpnSq}"></td>
 						<td class="cpn1DcAmt" 		th:text="${goods.orgCurrPrice} - ${goods.currPrice}"></td>
@@ -673,7 +675,7 @@ $(document).ready( function() {
 	custemerInfoSet(jsonData);
 	
 	// 999. 개발화면정보설정
-	var devTemp = true;
+	var devTemp = false;
 	var arr = []
 	arr[0] = "orderInfo";
 	arr[1] = "freegiftInfo";
@@ -928,6 +930,8 @@ var paymentInfoSet = function(jsonData) {
 					var prePntDcAmtYn		= $("input[name='rdi-beforpoint']:checked").val();
 					var orderDetailList		= [];
 					var delvFeeCdList		= [];
+					var ordGoodsQty			= 0;
+					var goodsNm				= "";
 
 					// 주문상세데이타 생성
 					$(".cartSq").each(function(){
@@ -944,19 +948,23 @@ var paymentInfoSet = function(jsonData) {
 							,"tmtb2Sq"			: $(this).parent().find(".tmtb2Sq").text()
 							,"tmtb2DcAmt"		: $(this).parent().find(".tmtb2DcAmt").text()
 							,"goodsCpnSq"		: $(this).parent().find(".goodsCpnSq").text()
-							,"goodsCpnDCAmt"	: $(this).parent().find(".goodsCpnDCAmt").text()
+							,"goodsCpnDcAmt"	: $(this).parent().find(".goodsCpnDcAmt").text()
 							,"cartCpnSq"		: $(this).parent().find(".cartCpnSq").text()
-							,"carrtCpnDCAmt"	: $(this).parent().find(".cartCpnDCAmt").text()
+							,"cartCpnDcAmt"		: $(this).parent().find(".cartCpnDcAmt").text()
 							,"prePntDcAmt"		: $(this).parent().find(".prePntDcAmt1").text()
 							,"pntDcAmt"			: $(this).parent().find(".pntDcAmt1").text()
 							,"gfcdUseAmt"		: $(this).parent().find(".gfcdUseAmt1").text()
+							,"realOrdAmt"		: $(this).parent().find(".realOrdAmt1").text()
 							,"savePntAmt"		: $(this).parent().find(".savePntAmt1").text()
 							,"shotDelvYn"		: $(this).parent().find(".shotDelvYn").text()
 							,"foreignBuyYn"		: $(this).parent().find(".foreignYn").text()
-							,"orderMadeYn"		: $(this).parent().find(".orderMadeYn").text()
+							,"makeGoodsYn"		: $(this).parent().find(".orderMadeYn").text()
 							,"delvFeeCd"		: $(this).parent().find(".delvFeeCd").text()
 						}
 						
+						// 상품수
+						ordGoodsQty++;
+						
 						orderDetailList.push(orderDetailData);
 					});
 					
@@ -986,6 +994,15 @@ var paymentInfoSet = function(jsonData) {
 						,"prePntDcAmtYn"		: prePntDcAmtYn
 						,"orderDetailList"		: orderDetailList
 						,"delvFeeCdList"		: delvFeeCdList
+						,"shotDelvYn"			: shotDelvYn
+						,"entryNo"				: $("input[name='entryNo']").val()
+						,"pgGb"					: "KCP"
+						,"payMeans"				: "G014_30"
+						,"payAmt"				: $(".realOrdSumAmt").text()
+						,"ordNm"				: $(".custNm").text()
+						,"ordPhnno"				: $(".cellPhnno").text()
+						,"goodsNm"				: $(".goodsNm").eq(0).text()
+						,"ordGoodsQty"			: ordGoodsQty
 					};
 					
 					var orderData = JSON.stringify(orderData);
@@ -1003,14 +1020,12 @@ var paymentInfoSet = function(jsonData) {
 						},
 						success 	: function(result) {
 							// 결재정보로드
-							//$("#order_info").html(result);
-							//jsf__pay(document.order_info);
+							$("#order_info").html(result);
+							jsf__pay(document.order_info);
 						}
 					});
 				});
-				
-				
-				
+
 				// 1.8 할인영역 설정
 				dcAmtInfoSet(jsonData);
 			}
@@ -1234,6 +1249,9 @@ var dcAmtInfoSet = function(jsonData) {
 					// 금액전체계산
 					custCpnSumAmtCal();
 				});
+				
+				// 금액계산초기화
+				custCpnSumAmtCal();
 			}
 		}
 	});
@@ -1657,13 +1675,13 @@ var custCpnSumAmtCal = function() {
 		cpnDcSumAmt			= cpnDcSumAmt + (goodsCpnDcAmt + cartCpnDcAmt);
 		prePntDcSumAmt		= prePntDcSumAmt + prePntDcAmt1;
 		
-		var ordAmt			= ((orgCurrPrice - cpn1DcAmt) + optAddPrice) * goodsQty;
+		var ordAmt			= ((orgCurrPrice +  - cpn1DcAmt) + optAddPrice) * goodsQty;
 		ordSumAmt			= ordSumAmt + ordAmt;
 		
 		// 선포인트사용여부
 		// 할인금액합계 = 다다익선수량금액 + 다다익선금액금액 + 상품쿠폰금액 + 장바구니금액 + 선포인트금액
 		if (prePntDcAmtYn == "Y") {
-			dcSumAmt		= tmtb1DcAmt + tmtb2DcAmt + goodsCpnDcAmt + cartCpnDcAmt + prePntDcAmt1;			
+			dcSumAmt		= tmtb1DcAmt + tmtb2DcAmt + goodsCpnDcAmt + cartCpnDcAmt + prePntDcAmt1;
 		} else {
 			dcSumAmt		= tmtb1DcAmt + tmtb2DcAmt + goodsCpnDcAmt + cartCpnDcAmt;
 		}