Forráskód Böngészése

다다익선 결함 원복

jsh77b 4 éve
szülő
commit
ca2d6f4566

+ 109 - 198
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -709,20 +709,17 @@ public class TsfCartService {
 		param.setFrontGb(TsfSession.getFrontGb());
 		Collection<Order> cartGoodsList = coreOrderService.getCartGoodsList(param);
 		String cartYn = "N";
-		
 		if (!StringUtils.isEmpty(param.getCartYn())) {
 			cartYn = param.getCartYn();
 		}
 
 		if (param.getCustNo() > 0 || "Y".equals(cartYn)) {
-			
 			// 장바구니 내 수량 다다익선 적용 가능 리스트 조회 (등록된 기본,적용 상품 정보 전체 조회)
 			Collection<Order> tmtbApplyList = cartDao.selectMoreBetterApplyCartList(param);
 
 			// 장바구니 등록 다다익선 일련번호 지정
 			List<Integer> applySq = new ArrayList<Integer>();
-			
-			// 다다익선 적용상품 여부 확인
+
 			for (Order tmtbApply : tmtbApplyList) {
 				if (TscConstants.GoodsGb.BASE.value().equals(tmtbApply.getQtyGoodsGb()) || TscConstants.GoodsGb.BASE.value().equals(tmtbApply.getAmtGoodsGb())) {
 					if (TscConstants.GoodsGb.BASE.value().equals(tmtbApply.getQtyGoodsGb())) {
@@ -738,44 +735,40 @@ public class TsfCartService {
 			// 섹션 정보 조회 후 할인 여부 판단
 			Collection<Order> tmtbSectionList = cartDao.selectTmtbSectionValList(applySq);
 
-			for (Order applyInfo : tmtbApplyList) {													  // 기준 상품 및 다다익선 정보 조회
+			for (Order applyInfo : tmtbApplyList) {													// 기준 상품 및 다다익선 정보 조회
 				// 다다익선 할인 조건 조회
 				for (Order section : tmtbSectionList) {
-					
-					// 2021.11.10 적용상품만 할인 적용
-					//if (TscConstants.GoodsGb.APPLY.value().equals(applyInfo.getQtyGoodsGb()) || TscConstants.GoodsGb.APPLY.value().equals(applyInfo.getAmtGoodsGb())) {
-						if (applyInfo.getQtyTmtbSq() == section.getTmtbSq()) {
-							// 수량 적용 다다익선
-							if (section.getSectionVal() <= applyInfo.getQtyTmtbSumQty()) {                // 장바구니 수량 할인 기준 달성시
-								if (applyInfo.getQtySectionVal() <= section.getSectionVal()) {            // 기존 달성된 기준치보다 할인폭이 클 경우 기준할인 수정
-									applyInfo.setQtySectionVal(section.getSectionVal());
-									applyInfo.setApplyQtySectionYn("Y");
-									applyInfo.setQtyDcWay(section.getDcWay());
-									applyInfo.setQtyDcVal(section.getDcVal());
-								}
-							} else {
-								if (applyInfo.getQtySectionVal() < 1 && applyInfo.getQtyGoodsGb().equals(TscConstants.GoodsGb.BASE.value())) {
-									applyInfo.setApplyQtySectionYn("N");
-								}
+					if (applyInfo.getQtyTmtbSq() == section.getTmtbSq()) {
+						// 수량 적용 다다익선
+						if (section.getSectionVal() <= applyInfo.getQtyTmtbSumQty()) {             // 장바구니 수량 할인 기준 달성시
+							if (applyInfo.getQtySectionVal() <= section.getSectionVal()) {            // 기존 달성된 기준치보다 할인폭이 클 경우 기준할인 수정
+								applyInfo.setQtySectionVal(section.getSectionVal());
+								applyInfo.setApplyQtySectionYn("Y");
+								applyInfo.setQtyDcWay(section.getDcWay());
+								applyInfo.setQtyDcVal(section.getDcVal());
+							}
+						} else {
+							if (applyInfo.getQtySectionVal() < 1 && applyInfo.getQtyGoodsGb().equals(TscConstants.GoodsGb.BASE.value())) {
+								applyInfo.setApplyQtySectionYn("N");
 							}
 						}
-	
-						if (applyInfo.getAmtTmtbSq() == section.getTmtbSq()) {
-							// 금액 적용 다다익선
-							if (section.getSectionVal() <= applyInfo.getAmtTmtbSumAmt()) {			    // 장바구니 수량 할인 기준 달성시
-								if (applyInfo.getAmtSectionVal() <= section.getSectionVal()) {			// 기존 달성된 기준치보다 할인폭이 클 경우 기준할인 수정
-									applyInfo.setAmtSectionVal(section.getSectionVal());
-									applyInfo.setApplyAmtSectionYn("Y");
-									applyInfo.setAmtDcWay(section.getDcWay());
-									applyInfo.setAmtDcVal(section.getDcVal());
-								}
-							} else {
-								if (applyInfo.getAmtSectionVal() < 1 && applyInfo.getAmtGoodsGb().equals(TscConstants.GoodsGb.BASE.value())) {
-									applyInfo.setApplyAmtSectionYn("N");
-								}
+					}
+
+					if (applyInfo.getAmtTmtbSq() == section.getTmtbSq()) {
+						// 금액 적용 다다익선
+						if (section.getSectionVal() <= applyInfo.getAmtTmtbSumAmt()) {			// 장바구니 수량 할인 기준 달성시
+							if (applyInfo.getAmtSectionVal() <= section.getSectionVal()) {			// 기존 달성된 기준치보다 할인폭이 클 경우 기준할인 수정
+								applyInfo.setAmtSectionVal(section.getSectionVal());
+								applyInfo.setApplyAmtSectionYn("Y");
+								applyInfo.setAmtDcWay(section.getDcWay());
+								applyInfo.setAmtDcVal(section.getDcVal());
+							}
+						} else {
+							if (applyInfo.getAmtSectionVal() < 1 && applyInfo.getAmtGoodsGb().equals(TscConstants.GoodsGb.BASE.value())) {
+								applyInfo.setApplyAmtSectionYn("N");
 							}
 						}
-					//}
+					}
 				}
 			}
 
@@ -793,44 +786,40 @@ public class TsfCartService {
 
 			for (Order resultAmt : tmtbApplyList) {
 				int tempAmt = 0;
-				
-				// 2021.11.10 적용상품만 할인 적용
-				if (TscConstants.GoodsGb.APPLY.value().equals(resultAmt.getQtyGoodsGb()) || TscConstants.GoodsGb.APPLY.value().equals(resultAmt.getAmtGoodsGb())) {
-					
-					if ("Y".equals(resultAmt.getApplyQtySectionYn()) && resultAmt.getQtyTmtbSq() > 0) {
-						if (TscConstants.DcWay.AMT.value().equals(resultAmt.getQtyDcWay())) {        // 할인 방식 금액일경우
-							i++;
-							tempAmt = resultAmt.getCurrPrice();
-	
-							if (i == 1) {
-								leftAmt = resultAmt.getQtyDcVal();
-							}
-	
-							if (i == resultAmt.getQtyTmtbCnt()) {
-								resultAmt.setTmtbDcAmt(tempAmt - leftAmt);
-								resultAmt.setTmtb1DcAmt(leftAmt); // tmtb1 할인금액
-								leftAmt = 0;
-								i = 0;
-							} else {
-								double tempDcAmt = resultAmt.getQtyDcVal() * ((tempAmt) / (double)resultAmt.getQtyTmtbSumAmt());
-								leftAmt -= (int)tempDcAmt;
-								resultAmt.setTmtbDcAmt(tempAmt - (int)tempDcAmt);
-	
-								resultAmt.setTmtb1DcAmt((int)tempDcAmt); // tmtb1 할인금액
-							}
-						} else {                                                                // 할인 방식 할인율일 경우
-							tempAmt = resultAmt.getCurrPrice();
-							tempAmt = (tempAmt - (int)(tempAmt * (resultAmt.getQtyDcVal() / 100.0)));
-							resultAmt.setTmtbDcAmt(tempAmt);
-	
-							// 2021.04.29 다다익선할인금액수정
-							resultAmt.setTmtb1DcAmt((int)(resultAmt.getCurrPrice() * (resultAmt.getQtyDcVal() / 100.0))); // tmtb1 할인금액
+
+				if ("Y".equals(resultAmt.getApplyQtySectionYn()) && resultAmt.getQtyTmtbSq() > 0) {
+					if (TscConstants.DcWay.AMT.value().equals(resultAmt.getQtyDcWay())) {        // 할인 방식 금액일경우
+						i++;
+						tempAmt = resultAmt.getCurrPrice();
+
+						if (i == 1) {
+							leftAmt = resultAmt.getQtyDcVal();
 						}
+
+						if (i == resultAmt.getQtyTmtbCnt()) {
+							resultAmt.setTmtbDcAmt(tempAmt - leftAmt);
+							resultAmt.setTmtb1DcAmt(leftAmt); // tmtb1 할인금액
+							leftAmt = 0;
+							i = 0;
+						} else {
+							double tempDcAmt = resultAmt.getQtyDcVal() * ((tempAmt) / (double)resultAmt.getQtyTmtbSumAmt());
+							leftAmt -= (int)tempDcAmt;
+							resultAmt.setTmtbDcAmt(tempAmt - (int)tempDcAmt);
+
+							resultAmt.setTmtb1DcAmt((int)tempDcAmt); // tmtb1 할인금액
+						}
+					} else {                                                                // 할인 방식 할인율일 경우
+						tempAmt = resultAmt.getCurrPrice();
+						tempAmt = (tempAmt - (int)(tempAmt * (resultAmt.getQtyDcVal() / 100.0)));
+						resultAmt.setTmtbDcAmt(tempAmt);
+
+						// 2021.04.29 다다익선할인금액수정
+						resultAmt.setTmtb1DcAmt((int)(resultAmt.getCurrPrice() * (resultAmt.getQtyDcVal() / 100.0))); // tmtb1 할인금액
 					}
-	
-					if (resultAmt.getTmtbDcAmt() > 0) {
-						resultAmt.setCurrPrice(resultAmt.getTmtbDcAmt());
-					}
+				}
+
+				if (resultAmt.getTmtbDcAmt() > 0) {
+					resultAmt.setCurrPrice(resultAmt.getTmtbDcAmt());
 				}
 			}
 
@@ -843,141 +832,63 @@ public class TsfCartService {
 			});
 
 			// 금액 다다익선 할인 계산
-			leftAmt 	= 0;
-			i 			= 0;
-			
+			leftAmt = 0;
+			i = 0;
 			for (Order resultAmt : tmtbApplyList) {
 				int tempAmt = 0;
-				
-				// 2021.11.10 적용상품만 할인 적용
-				if (TscConstants.GoodsGb.APPLY.value().equals(resultAmt.getQtyGoodsGb()) || TscConstants.GoodsGb.APPLY.value().equals(resultAmt.getAmtGoodsGb())) {
-					if ("Y".equals(resultAmt.getApplyAmtSectionYn()) && resultAmt.getAmtTmtbSq() > 0) {
-						// 할인 방식 금액일경우
-						if (TscConstants.DcWay.AMT.value().equals(resultAmt.getAmtDcWay())) {
-							i++;
-							tempAmt = resultAmt.getCurrPrice();
-							
-							if (i == 1) {
-								leftAmt = resultAmt.getAmtDcVal();
-							}
-	
-							if (i == resultAmt.getAmtTmtbCnt()) {
-								resultAmt.setTmtbDcAmt(tempAmt - leftAmt);
-								resultAmt.setTmtb2DcAmt(leftAmt); // tmtb1 할인금액
-	
-								leftAmt = 0;
-								i = 0;
-							} else {
-								double tempDcAmt = resultAmt.getAmtDcVal() * ((tempAmt) / (double)resultAmt.getAmtTmtbSumAmt());
-								leftAmt -= (int)tempDcAmt;
-								resultAmt.setTmtbDcAmt(tempAmt - (int)tempDcAmt);
-	
-								resultAmt.setTmtb2DcAmt((int)tempDcAmt); // tmtb1 할인금액
-							}
-						} 
-						// 할인 방식 할인율일 경우
-						else {
-							tempAmt = resultAmt.getCurrPrice();
-							tempAmt = (tempAmt - (int)(tempAmt * (resultAmt.getAmtDcVal() / 100.0)));
-							resultAmt.setTmtbDcAmt(tempAmt);
-	
-							// 2021.04.29 다다익선할인금액수정
-							resultAmt.setTmtb2DcAmt((int)(resultAmt.getCurrPrice() * (resultAmt.getAmtDcVal() / 100.0))); // tmtb2 할인금액
+
+				if ("Y".equals(resultAmt.getApplyAmtSectionYn()) && resultAmt.getAmtTmtbSq() > 0) {
+					if (TscConstants.DcWay.AMT.value().equals(resultAmt.getAmtDcWay())) {        // 할인 방식 금액일경우
+						i++;
+						tempAmt = resultAmt.getCurrPrice();
+						if (i == 1) {
+							leftAmt = resultAmt.getAmtDcVal();
 						}
+
+						if (i == resultAmt.getAmtTmtbCnt()) {
+							resultAmt.setTmtbDcAmt(tempAmt - leftAmt);
+							resultAmt.setTmtb2DcAmt(leftAmt); // tmtb1 할인금액
+
+							leftAmt = 0;
+							i = 0;
+						} else {
+							double tempDcAmt = resultAmt.getAmtDcVal() * ((tempAmt) / (double)resultAmt.getAmtTmtbSumAmt());
+							leftAmt -= (int)tempDcAmt;
+							resultAmt.setTmtbDcAmt(tempAmt - (int)tempDcAmt);
+
+							resultAmt.setTmtb2DcAmt((int)tempDcAmt); // tmtb1 할인금액
+						}
+					} else {                                                                // 할인 방식 할인율일 경우
+						tempAmt = resultAmt.getCurrPrice();
+						tempAmt = (tempAmt - (int)(tempAmt * (resultAmt.getAmtDcVal() / 100.0)));
+						resultAmt.setTmtbDcAmt(tempAmt);
+
+						// 2021.04.29 다다익선할인금액수정
+						resultAmt.setTmtb2DcAmt((int)(resultAmt.getCurrPrice() * (resultAmt.getAmtDcVal() / 100.0))); // tmtb2 할인금액
 					}
 				}
 			}
-			
-			//
-			List<Order> tmtbSqList = new ArrayList<Order>();
-			List<Order> applyCartList = new ArrayList<Order>();
-			
+
 			// 장바구니 정보에 수량 다다익선 정보 입력
 			for (Order cart : cartGoodsList) {
 				for (Order apply : tmtbApplyList) {
-					
-					// 2021.11.10 적용상품만 할인 적용
-					if (TscConstants.GoodsGb.APPLY.value().equals(apply.getQtyGoodsGb()) || TscConstants.GoodsGb.APPLY.value().equals(apply.getAmtGoodsGb())) {
-						if (cart.getCartSq().equals(apply.getCartSq())) {
-							// 2021.02.24 jsh77b
-							cart.setTmtb1DcAmt(apply.getTmtb1DcAmt());
-							cart.setTmtb2DcAmt(apply.getTmtb2DcAmt());
-							cart.setTmtbDcAmt(apply.getTmtbDcAmt());
-							
-							// 2021.11.11 추가 
-							if ("Y".equals(apply.getApplyQtySectionYn())) {
-								cart.setApplyQtySectionYn(apply.getApplyQtySectionYn());
-								cart.setQtyTmtbNm(apply.getQtyTmtbNm());
-								cart.setQtyTmtbSq(apply.getQtyTmtbSq());
-								
-								tmtbSqList.add(cart);
-								applyCartList.add(cart);
-							}
-							
-							// 2021.11.11 추가 
-							if ("Y".equals(apply.getApplyAmtSectionYn())) {
-								cart.setApplyAmtSectionYn(apply.getApplyAmtSectionYn());
-								cart.setAmtTmtbNm(apply.getAmtTmtbNm());
-								cart.setAmtTmtbSq(apply.getAmtTmtbSq());
-								
-								tmtbSqList.add(cart);
-								applyCartList.add(cart);
-							}
-							
-							cart.setQtyGoodsGb(apply.getQtyGoodsGb());
-							cart.setAmtGoodsGb(apply.getAmtGoodsGb());
-						}
-					} else if (TscConstants.GoodsGb.BASE.value().equals(apply.getQtyGoodsGb()) || TscConstants.GoodsGb.BASE.value().equals(apply.getAmtGoodsGb())) {
-						if (cart.getCartSq().equals(apply.getCartSq())) {
-							// 2021.02.24 jsh77b
-							if ("N".equals(apply.getApplyQtySectionYn())) {
-								cart.setApplyQtySectionYn(apply.getApplyQtySectionYn());
-								cart.setQtyTmtbNm(apply.getQtyTmtbNm());
-								cart.setQtyTmtbSq(apply.getQtyTmtbSq());
-							}
-							// 2021.11.11 추가 
-							if ("N".equals(apply.getApplyAmtSectionYn())) {
-								cart.setApplyAmtSectionYn(apply.getApplyAmtSectionYn());
-								cart.setAmtTmtbNm(apply.getAmtTmtbNm());
-								cart.setAmtTmtbSq(apply.getAmtTmtbSq());
-							}
-							
-							cart.setQtyGoodsGb(apply.getQtyGoodsGb());
-							cart.setAmtGoodsGb(apply.getAmtGoodsGb());
-						}
-					}
-				}
-			}
-			
-			// 2021.11.11 다다익선 할인 적용된 상품 상품보기 숨김 처리 로직 추가
-			if (tmtbSqList != null && tmtbSqList.size() > 0) {
-				// 장바구니상품목록수정
-				for (Order cart : cartGoodsList) {
-					
-					log.info("cart.getQtyGoodsGb() ::: {}", cart.getQtyGoodsGb());
-					log.info("cart.getAmtGoodsGb() ::: {}", cart.getAmtGoodsGb());
-					
-					// 기본상품일때 
-					if (TscConstants.GoodsGb.BASE.value().equals(cart.getQtyGoodsGb()) || TscConstants.GoodsGb.BASE.value().equals(cart.getAmtGoodsGb())) {
-						for (Order tmtbSq : tmtbSqList) {
-							// 다다익선의 적용상품에 없을때 기본상품 적용상품보기 팝업 미노출 처리
-							Boolean temp = true;
-							for (Order applyCart : applyCartList) {
-								if (cart.getCartSq() == applyCart.getCartSq()) {
-									temp = false;
-								}
-							}
-							
-							if (temp) {
-								if (cart.getAmtTmtbSq() == tmtbSq.getAmtTmtbSq()) {
-									cart.setApplyAmtSectionYn("");
-								}
-								
-								if (cart.getQtyTmtbSq() == tmtbSq.getQtyTmtbSq()) {
-									cart.setApplyQtySectionYn("");
-								}
-							}
-						}
+					if (cart.getCartSq().equals(apply.getCartSq())) {
+						// 2021.02.24 jsh77b
+						cart.setTmtb1DcAmt(apply.getTmtb1DcAmt());
+						cart.setTmtb2DcAmt(apply.getTmtb2DcAmt());
+
+						cart.setTmtbDcAmt(apply.getTmtbDcAmt());
+
+						log.info("cart.getTmtb1DcAmt() ::: {}", cart.getTmtb1DcAmt());
+						log.info("cart.getTmtb2DcAmt() ::: {}", cart.getTmtb2DcAmt());
+						log.info("cart.getTmtbDcAmt() ::: {}", cart.getTmtbDcAmt());
+
+						cart.setApplyQtySectionYn(apply.getApplyQtySectionYn());
+						cart.setQtyTmtbNm(apply.getQtyTmtbNm());
+						cart.setQtyTmtbSq(apply.getQtyTmtbSq());
+						cart.setApplyAmtSectionYn(apply.getApplyAmtSectionYn());
+						cart.setAmtTmtbNm(apply.getAmtTmtbNm());
+						cart.setAmtTmtbSq(apply.getAmtTmtbSq());
 					}
 				}
 			}

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

@@ -264,8 +264,8 @@
 	</insert>
 
 	<!-- 다다익선 기본 상품 조회 -->
-	<select id="selectMoreBetterApplyCartListBack" parameterType="Order" resultType="Order">
-		/* TsfCart.selectMoreBetterApplyCartListBack : 다다익선 기본 상품 조회 */
+	<select id="selectMoreBetterApplyCartList" parameterType="Order" resultType="Order">
+		/* TsfCart.selectMoreBetterApplyCartList : 다다익선 기본 상품 조회 */
 		SELECT A.CART_SQ
 			 , MAX(A.QTY_TMTB_SQ) AS QTY_TMTB_SQ
 			 , MAX(A.AMT_TMTB_SQ) AS AMT_TMTB_SQ
@@ -393,190 +393,6 @@
 			 , A.OPT_ADD_PRICE
 		ORDER BY A.CART_SQ
 	</select>
-	
-	<!-- 다다익선 기본 상품 조회 -->
-	<select id="selectMoreBetterApplyCartList" parameterType="Order" resultType="Order">
-		/* TsfCart.selectMoreBetterApplyCartList : 다다익선 기본 상품 조회 */
-		SELECT A.CART_SQ
-			 , MAX(A.QTY_TMTB_SQ) AS QTY_TMTB_SQ
-			 , MAX(A.AMT_TMTB_SQ) AS AMT_TMTB_SQ
-			 , MAX(A.QTY_TMTB_NM) AS QTY_TMTB_NM
-			 , MAX(A.AMT_TMTB_NM) AS AMT_TMTB_NM
-			 , MAX(A.QTY_GOODS_GB) AS QTY_GOODS_GB
-			 , MAX(A.AMT_GOODS_GB) AS AMT_GOODS_GB
-			 , MAX(A.QTY_TMTB_SUM_QTY) AS QTY_TMTB_SUM_QTY
-			 , MAX(A.QTY_TMTB_SUM_AMT) AS QTY_TMTB_SUM_AMT
-			 , MAX(A.AMT_TMTB_SUM_QTY) AS AMT_TMTB_SUM_QTY
-			 , MAX(A.AMT_TMTB_SUM_AMT) AS AMT_TMTB_SUM_AMT
-			 , MAX(A.AMT_TMTB_CNT) AS AMT_TMTB_CNT
-			 , MAX(A.QTY_TMTB_CNT) AS QTY_TMTB_CNT
-			 , A.GOODS_CD
-			 , A.GOODS_QTY
-			 , (A.CURR_PRICE + A.OPT_ADD_PRICE) * A.GOODS_QTY AS CURR_PRICE
-		FROM   (
-		    SELECT C.CART_SQ
-			     , CASE WHEN T.APPLY_GB = 'G810_10' THEN T.TMTB_SQ END QTY_TMTB_SQ
-			     , CASE WHEN T.APPLY_GB = 'G810_11' THEN T.TMTB_SQ END AMT_TMTB_SQ
-			     , CASE WHEN T.APPLY_GB = 'G810_10' THEN T.TMTB_NM END QTY_TMTB_NM
-			     , CASE WHEN T.APPLY_GB = 'G810_11' THEN T.TMTB_NM END AMT_TMTB_NM
-			     , CASE WHEN T.APPLY_GB = 'G810_10' THEN TAG.GOODS_GB END QTY_GOODS_GB
-			     , CASE WHEN T.APPLY_GB = 'G810_11' THEN TAG.GOODS_GB END AMT_GOODS_GB
-			     , CASE WHEN T.APPLY_GB = 'G810_10' 
-			            THEN CASE WHEN TAG.GOODS_GB IN ('G800_10')
-			                      THEN 0
-			                      ELSE SUM_DATA.TMTB_SUM_QTY
-			                      END
-			            END QTY_TMTB_SUM_QTY
-			     , CASE WHEN T.APPLY_GB = 'G810_10' 
-			            THEN CASE WHEN TAG.GOODS_GB IN ('G800_10')
-			                      THEN 0
-			                      ELSE SUM_DATA.TMTB_SUM_AMT
-			                      END
-			            END QTY_TMTB_SUM_AMT
-			     , CASE WHEN T.APPLY_GB = 'G810_11' 
-			            THEN CASE WHEN TAG.GOODS_GB IN ('G800_10')
-			                      THEN 0
-			                      ELSE SUM_DATA.TMTB_SUM_QTY
-			                      END
-			            END AMT_TMTB_SUM_QTY
-			     , CASE WHEN T.APPLY_GB = 'G810_11' 
-			            THEN CASE WHEN TAG.GOODS_GB IN ('G800_10')
-			                      THEN 0
-			                      ELSE SUM_DATA.TMTB_SUM_AMT
-			                      END
-			            END AMT_TMTB_SUM_AMT
-			     , CASE WHEN T.APPLY_GB = 'G810_10' THEN TAG2.TMTB_CNT END QTY_TMTB_CNT
-			     , CASE WHEN T.APPLY_GB = 'G810_11' THEN TAG2.TMTB_CNT END AMT_TMTB_CNT
-			     , TAG.GOODS_CD
-			     , CASE WHEN TAG.GOODS_GB IN ('G800_10')
-			            THEN 0
-			            ELSE C.GOODS_QTY
-			            END  GOODS_QTY
-			     , CASE WHEN TAG.GOODS_GB IN ('G800_10')
-			            THEN 0
-			            ELSE FN_GET_APPLY_CPN1_PRICE(C.GOODS_CD, #{frontGb})
-			            END  CURR_PRICE
-			     , CASE WHEN TAG.GOODS_GB IN ('G800_10')
-			            THEN 0
-			            ELSE IFNULL(OP.ADD_PRICE, 0)
-			            END  OPT_ADD_PRICE
-		    FROM   TB_CART C
-		    INNER  JOIN TB_TMTB_APPLY_GOODS TAG
-		    ON	   C.GOODS_CD = TAG.GOODS_CD
-		    AND	   TAG.DEL_YN = 'N'
-		    INNER  JOIN (
-		        SELECT A.TMTB_SQ
-		             , SUM(TMTB_CNT) AS TMTB_CNT
-		        FROM (
-			        SELECT TAG.TMTB_SQ
-						 , CASE WHEN TAG.GOODS_GB IN ('G800_10')
-						        THEN 0
-						        ELSE 1 
-			                    END  TMTB_CNT
-			        FROM   TB_TMTB_APPLY_GOODS TAG
-			        INNER  JOIN TB_CART C
-			        ON	   TAG.GOODS_CD = C.GOODS_CD
-			        WHERE  TAG.DEL_YN = 'N'
-					<if test="cartSqArr != null and cartSqArr.length > 0">
-					AND	   C.CART_SQ IN
-						<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
-			                   #{item}
-						</foreach>
-					</if> 
-		        ) A
-		        GROUP  BY A.TMTB_SQ
-		    ) AS TAG2
-		    ON	 TAG.TMTB_SQ = TAG2.TMTB_SQ
-		    INNER  JOIN TB_TMTB T
-		    ON	   T.TMTB_SQ = TAG.TMTB_SQ
-		    AND	   T.TMTB_STAT = 'G232_11' /*진행*/
-		    INNER  JOIN TB_GOODS G
-		    ON	   C.GOODS_CD = G.GOODS_CD
-		    INNER  JOIN TB_CART_DETAIL CD
-		    ON	 C.CART_SQ = CD.CART_SQ
-		    INNER  JOIN (
-		        SELECT A.TMTB_SQ
-		             , SUM(CURR_PRICE) AS TMTB_SUM_AMT
-		             , SUM(GOODS_QTY) AS TMTB_SUM_QTY
-		        FROM (
-			        SELECT TAG.TMTB_SQ
-			             , CASE WHEN TAG.GOODS_GB IN ('G800_10')
-				            THEN 0
-				            ELSE FN_GET_APPLY_CPN1_PRICE(C.GOODS_CD,  #{frontGb}) + IFNULL(OP.ADD_PRICE, 0) * C.GOODS_QTY
-				            END  CURR_PRICE
-			             , CASE WHEN TAG.GOODS_GB IN ('G800_10')
-				            THEN 0
-				            ELSE C.GOODS_QTY
-				            END  GOODS_QTY
-			        FROM   TB_TMTB_APPLY_GOODS TAG
-			        INNER  JOIN TB_CART C
-					ON	   TAG.GOODS_CD = C.GOODS_CD
-			        INNER  JOIN TB_GOODS G
-			        ON	   C.GOODS_CD = G.GOODS_CD
-			        INNER  JOIN TB_TMTB T
-			        ON	   TAG.TMTB_SQ = T.TMTB_SQ
-			        LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
-			        ON	   TAG.GOODS_CD = NOT_APPLY.GOODS_CD
-			        AND	   TAG.TMTB_SQ = NOT_APPLY.TMTB_SQ
-			        AND	   NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
-			        LEFT   OUTER JOIN (
-			            SELECT OP.ADD_PRICE
-			                 , C.CART_SQ
-			            FROM   TB_CART C
-			            INNER  JOIN TB_CART_DETAIL CD
-			            ON	   C.CART_SQ = CD.CART_SQ
-			            INNER  JOIN TB_OPTION OP
-			            ON	   C.GOODS_CD = OP.GOODS_CD
-			            AND	   CD.OPT_CD = OP.OPT_CD
-			            WHERE  1=1
-			        ) OP
-			        ON	   C.CART_SQ = OP.CART_SQ
-			        WHERE  1=1
-			        AND	   NOT_APPLY.TMTB_SQ IS NULL
-			        AND	   T.DEL_YN = 'N'
-			        AND	   TAG.DEL_YN = 'N'
-			        AND	   G.GOODS_STAT = 'G008_90'
-			        AND	   G.SELF_MALL_YN = 'Y'
-					<if test="cartSqArr != null and cartSqArr.length > 0">
-			        AND	   C.CART_SQ IN
-						<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
-			                   #{item}
-						</foreach>
-					</if>  
-		        ) A
-		        GROUP  BY A.TMTB_SQ
-		    ) SUM_DATA
-		    ON	   T.TMTB_SQ = SUM_DATA.TMTB_SQ
-		    LEFT   JOIN TB_OPTION OP
-		    ON	   CD.ITEM_CD = OP.GOODS_CD
-		    AND	   CD.OPT_CD = OP.OPT_CD
-		    LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
-		    ON	   T.TMTB_SQ = NOT_APPLY.TMTB_SQ
-		    AND	   C.GOODS_CD = NOT_APPLY.GOODS_CD
-		    AND	   NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
-		    AND	   NOT_APPLY.DEL_YN = 'N'
-		    WHERE  1=1
-		    AND	   NOT_APPLY.TMTB_SQ IS NULL
-		    AND	   T.DEL_YN = 'N'
-		    AND	   T.TMTB_ST_DT <![CDATA[<=]]> NOW()
-		    AND	   T.TMTB_ED_DT >= NOW()
-		    AND	   G.GOODS_STAT = 'G008_90'
-		    AND	   G.SELF_MALL_YN = 'Y'
-			<if test="cartSqArr != null and cartSqArr.length > 0">
-		    AND	   C.CART_SQ IN
-				<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
-		               #{item}
-				</foreach>
-			</if>  
-		) A
-		WHERE  1=1
-		GROUP  BY A.CART_SQ
-			 , A.GOODS_CD
-			 , A.GOODS_QTY
-			 , A.CURR_PRICE
-			 , A.OPT_ADD_PRICE
-		ORDER BY A.CART_SQ
-	</select>
 
 	<!-- 다다익선 적용 상품 SUM DATA 조회 -->
 	<select id="selectApplyMoreBetterCartInfoList" parameterType="Order" resultType="Order">

+ 22 - 35
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -858,16 +858,12 @@
 	<select id="getTmtbSqList" parameterType="Goods" resultType="Tmtb">
 		/* TsfGoods.getTmtbSqList */
 		SELECT A.TMTB_SQ
-		FROM   TB_TMTB_APPLY_GOODS A
-		LEFT   JOIN TB_TMTB_APPLY_GOODS B ON A.GOODS_CD = B.GOODS_CD
-		                                 AND B.DEL_YN = 'N' AND B.GOODS_GB = 'G800_30' -- 제외상품
-		                                 AND B.GOODS_CD =  #{goodsCd}
-		                                 AND A.TMTB_SQ = B.TMTB_SQ
-		WHERE A.GOODS_CD = #{goodsCd}  
-		AND A.DEL_YN = 'N' 
-		AND A.GOODS_GB IN ( 'G800_10', 'G800_20')  -- 기본과 적용상품
+		FROM TB_TMTB_APPLY_GOODS A
+		LEFT JOIN TB_TMTB_APPLY_GOODS B ON A.GOODS_CD = B.GOODS_CD
+		                                AND B.DEL_YN = 'N' AND B.GOODS_GB = 'G800_30' -- 제외상품
+		                                AND B.GOODS_CD =  #{goodsCd}
+		WHERE A.GOODS_CD = #{goodsCd}  AND A.DEL_YN = 'N' AND A.GOODS_GB IN ( 'G800_10', 'G800_20')  -- 기본과 적용상품
 		AND B.TMTB_SQ IS NULL
-		GROUP BY A.TMTB_SQ
 		ORDER BY A.TMTB_SQ DESC -- 최근 다다익선
 	</select>	
 	
@@ -894,7 +890,7 @@
 		    FROM TB_TMTB A
 		    INNER JOIN TB_TMTB_APPLY_GOODS B ON A.TMTB_SQ  = B.TMTB_SQ
 		                                     AND B.DEL_YN = 'N'
-		                                     AND B.GOODS_GB IN ('G800_20')  -- 기본과 적용상품
+		                                     AND B.GOODS_GB IN ( 'G800_10', 'G800_20')  -- 기본과 적용상품
 		    LEFT OUTER JOIN TB_TMTB_APPLY_GOODS BB ON B.TMTB_SQ  = BB.TMTB_SQ
 		                                     AND BB.DEL_YN = 'N'
 		                                     AND B.GOODS_CD = BB.GOODS_CD
@@ -1212,13 +1208,13 @@
 		           , C.SECTION_VAL -- 구간설정값/구간할인시작(수량이상,금액이상)
 		           , D.DC_WAY      -- 할인방식(G240_10:할인금액,G240_11:할인율)
 		           , D.DC_VAL      -- 할인값
-		      FROM   TB_TMTB A
-		      INNER  JOIN TB_TMTB_SECTION C ON A.TMTB_SQ = C.TMTB_SQ 
-		                                   AND C.DEL_YN  = 'N'
-		      INNER  JOIN TB_TMTB_VAL D ON C.TMTB_SQ = D.TMTB_SQ
+		      FROM TB_TMTB A
+		      INNER JOIN TB_TMTB_SECTION C ON A.TMTB_SQ = C.TMTB_SQ 
+		                                      AND C.DEL_YN  = 'N'
+		      INNER JOIN TB_TMTB_VAL D ON C.TMTB_SQ = D.TMTB_SQ
 		                               AND C.TMTB_SECTION_SQ  = D.TMTB_SECTION_SQ  
 		                               AND D.DEL_YN  = 'N'
-		      INNER  JOIN TB_TMTB_APPLY_GOODS B ON A.TMTB_SQ = B.TMTB_SQ
+		      INNER JOIN TB_TMTB_APPLY_GOODS B ON A.TMTB_SQ = B.TMTB_SQ
 		                                       <choose>
 		                                           <when test="arrGoodsCd != null and arrGoodsCd != ''">
 		                                       AND B.GOODS_CD IN
@@ -1231,35 +1227,26 @@
 		                                           </otherwise>
 		                                       </choose>
 		                                       AND B.DEL_YN = 'N'
-		                                       AND B.GOODS_GB IN ('G800_10', 'G800_20')  -- 기본과 적용상품
-		      LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS E ON A.TMTB_SQ = E.TMTB_SQ
+		                                       AND B.GOODS_GB IN ( 'G800_10', 'G800_20')  -- 기본과 적용상품
+		      LEFT OUTER JOIN TB_TMTB_APPLY_GOODS E ON A.TMTB_SQ = E.TMTB_SQ
 		                                            <choose>
 		                                                <when test="arrGoodsCd != null and arrGoodsCd != ''">
-		                                             AND E.GOODS_CD IN
+		                                            AND E.GOODS_CD IN
 		                                                <foreach collection="arrGoodsCd" item="item" index="index"  open="(" close=")" separator=",">
 		                                                UPPER(#{item})
 		                                                </foreach>
 		                                                </when>
 		                                                <otherwise>
-		                                             AND E.GOODS_CD =  #{goodsCd}
+		                                            AND E.GOODS_CD =  #{goodsCd}
 		                                                </otherwise>
 		                                            </choose>
-		                                             AND E.DEL_YN = 'N'
-		                                             AND E.GOODS_GB = 'G800_30'  -- 제외상품 
-		      WHERE  NOW() BETWEEN A.TMTB_ST_DT AND A.TMTB_ED_DT
-		      AND    A.TMTB_STAT ='G232_11'  -- 진행중
-		      AND    A.DEL_YN = 'N'
-		      AND    E.GOODS_CD IS NULL                                      -- 제외상품이 아닌 다다익선
-		      GROUP  BY A.TMTB_SQ 
-		           , C.TMTB_SECTION_SQ 
-		           , D.TMTB_VAL_SQ 
-		           , C.SECTION_GB
-		           , C.SECTION_VAL
-		           , D.DC_WAY
-		           , D.DC_VAL 
-		      ORDER  BY A.TMTB_SQ 
-		           , C.TMTB_SECTION_SQ 
-		           , D.TMTB_VAL_SQ 
+		                                            AND E.DEL_YN = 'N'
+		                                            AND E.GOODS_GB = 'G800_30'  -- 제외상품 
+		      WHERE NOW() BETWEEN A.TMTB_ST_DT AND A.TMTB_ED_DT
+		      AND A.TMTB_STAT ='G232_11'  -- 진행중
+		      AND A.DEL_YN = 'N'
+		      AND E.GOODS_CD IS NULL                                      -- 제외상품이 아닌 다다익선 
+		      ORDER BY A.TMTB_SQ , C.TMTB_SECTION_SQ , D.TMTB_VAL_SQ 
 		) Z
 		WHERE 1 = 1
 		<if test="maxRownum != null and maxRownum > 0">