Przeglądaj źródła

주문서개발중

jsh77b 5 lat temu
rodzic
commit
26947e016d

+ 38 - 0
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -1,5 +1,6 @@
 package com.style24.core.biz.service;
 package com.style24.core.biz.service;
 
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collection;
 
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -654,5 +655,42 @@ public class TscOrderService {
 	public int getDailyDeliveryZoneInfo(Order order) {
 	public int getDailyDeliveryZoneInfo(Order order) {
 		return orderDao.getDailyDeliveryZoneInfo(order);
 		return orderDao.getDailyDeliveryZoneInfo(order);
 	}
 	}
+	
+	/**
+	 * 배송단위별 장바구니 상품 건수 조회
+	 *
+	 * @param Order
+	 * @author jsh77b
+	 * @since 2021. 02. 02
+	 */	
+	public Collection<Order> getCartDelvGoodsCntList(Collection<Order> cartGoodsList) {
+		
+		// 1. 장바구니 상품 배송단위별 건수 체크 로직 (자사:총알배송, 자사:일반배송, 입점업체, 예약배송)
+		String delvFeeCdTemp = "";
+		
+		int wmsCnt 	= 0;
+		int resCnt 	= 0;
+		int delvCnt = 0;
+		
+		Collection<Order> wmsCartList = (Collection<Order>)new ArrayList();
+		Collection<Order> resCartList = (Collection<Order>)new ArrayList();
+		Collection<Order> delvCartList = (Collection<Order>)new ArrayList();
+		
+		for (Order order : cartGoodsList) {			
+			
+			// 1.1 배송정책별 상품 구분
+			if (order.getDelvFeeCd().equals("WMS")) {
+				wmsCartList.add(order);
+			} 
+			else if (order.getDelvFeeCd().equals("RES")) {
+				resCartList.add(order);
+			} 
+			else {
+				delvCartList.add(order);
+			}			
+		}
+		
+		return cartGoodsList;
+	}
 
 
 }
 }

+ 68 - 62
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -1579,67 +1579,73 @@
 	<!-- 장바구니 상품 목록 조회 (업체별 배송단위) -->
 	<!-- 장바구니 상품 목록 조회 (업체별 배송단위) -->
 	<select id="getCartGoodsList" parameterType="Order" resultType="Order">
 	<select id="getCartGoodsList" parameterType="Order" resultType="Order">
 		/* TsfOrder.getCartGoodsList */
 		/* TsfOrder.getCartGoodsList */
-		SELECT CA.CART_SQ
-			 , CD.CART_DTL_SQ
-			 , BR.BRAND_ENM
-			 , G.GOODS_NM
-			 , CA.GOODS_CD
-			 , CD.ITEM_CD
-			 , OP.OPT_CD
-			 , OP.OPT_CD1
-			 , OP.OPT_CD2
-			 , CA.GOODS_QTY
-			 , G.GOODS_TYPE
-			 , G.LIST_PRICE
-			 , G.CURR_PRICE
-			 , G.GOODS_GB
-			 , G.PRE_PPNT_USABLE_YN
-			 , G.PRE_MPNT_USABLE_YN
-			 , G.MIN_ORD_AMT
-			 , G.MAX_ORD_QTY
-			 , G.DAY_MAX_ORD_QTY
-			 , G.GIFT_PACK_YN
-			 , G.NEW_CUST_ORD_YN
-			 , DFP.SUPPLY_COMP_CD
-			 , CASE WHEN G.SELF_GOODS_YN = 'Y' THEN 'WMS'
-					ELSE DFP.DELV_FEE_CD END AS DELV_FEE_CD
-			 , GRS.DELV_RES_DT
-			 , DFP.MIN_ORD_AMT
-			 , DFP.DELV_FEE
-		  FROM TB_CART CA
-		 INNER JOIN TB_CART_DETAIL CD
-			ON CA.CART_SQ = CD.CART_SQ
-		 INNER JOIN TB_GOODS G
-			ON CA.GOODS_CD = G.GOODS_CD
-		 INNER JOIN TB_OPTION OP
-			ON CD.ITEM_CD = OP.GOODS_CD
-		   AND CD.OPT_CD1 = OP.OPT_CD1
-		   AND CD.OPT_CD2 = OP.OPT_CD2
-		 INNER JOIN TB_DELV_FEE_POLICY DFP
-			ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
-		 INNER JOIN TB_BRAND BR
-			ON G.BRAND_CD = BR.BRAND_CD
-		  LEFT OUTER JOIN TB_GOODS_RES_SELL GRS
-			ON CA.GOODS_CD = GRS.GOODS_CD
-		 WHERE 1 = 1
-		   AND G.GOODS_STAT = 'G008_90'
-		<if test="custNo == 0">
-		   AND CA.CUST_NO = 0
-		   AND CA.JSESSION_ID = #{jsessionId}
-		</if>
-		<if test="custNo != 0">
-		   AND CA.CUST_NO = #{custNo}
-		</if>
-		<if test="cartSqArr != null and cartSqArr ==''">
-		   AND    CA.CART_SQ IN
-			<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
-				#{item}
-			</foreach>
-		</if>
-		 ORDER BY DFP.SUPPLY_COMP_CD
-				, DFP.DELV_FEE_CD
-				, CD.CART_SQ
-				, CD.CART_DTL_SQ
+		SELECT Z.*
+		  FROM (
+			SELECT CA.CART_SQ
+				 , CD.CART_DTL_SQ
+				 , BR.BRAND_ENM
+				 , G.GOODS_NM
+				 , CA.GOODS_CD
+				 , CD.ITEM_CD
+				 , OP.OPT_CD
+				 , OP.OPT_CD1
+				 , OP.OPT_CD2
+				 , CA.GOODS_QTY
+				 , G.GOODS_TYPE
+				 , G.LIST_PRICE
+				 , G.CURR_PRICE
+				 , G.GOODS_GB
+				 , G.PRE_PPNT_USABLE_YN
+				 , G.PRE_MPNT_USABLE_YN
+				 , G.MIN_ORD_AMT
+				 , G.MAX_ORD_QTY
+				 , G.DAY_MAX_ORD_QTY
+				 , G.GIFT_PACK_YN
+				 , G.NEW_CUST_ORD_YN
+				 , DFP.SUPPLY_COMP_CD
+				 , CASE WHEN G.SELF_GOODS_YN = 'Y' THEN 'WMS'
+						ELSE DFP.DELV_FEE_CD END AS DELV_FEE_CD
+	  			 , CASE WHEN GRS.DELV_RES_DT IS NOT NULL THEN 'RES'
+		                WHEN G.SELF_GOODS_YN = 'Y' THEN 'WMS'
+	  			        ELSE DFP.DELV_FEE_CD END AS RES_DELV_FEE_CD
+				 , GRS.DELV_RES_DT
+				 , DFP.MIN_ORD_AMT
+				 , DFP.DELV_FEE
+			  FROM TB_CART CA
+			 INNER JOIN TB_CART_DETAIL CD
+				ON CA.CART_SQ = CD.CART_SQ
+			 INNER JOIN TB_GOODS G
+				ON CA.GOODS_CD = G.GOODS_CD
+			 INNER JOIN TB_OPTION OP
+				ON CD.ITEM_CD = OP.GOODS_CD
+			   AND CD.OPT_CD1 = OP.OPT_CD1
+			   AND CD.OPT_CD2 = OP.OPT_CD2
+			 INNER JOIN TB_DELV_FEE_POLICY DFP
+				ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
+			 INNER JOIN TB_BRAND BR
+				ON G.BRAND_CD = BR.BRAND_CD
+			  LEFT OUTER JOIN TB_GOODS_RES_SELL GRS
+				ON CA.GOODS_CD = GRS.GOODS_CD
+			 WHERE 1 = 1
+			   AND G.GOODS_STAT = 'G008_90'
+			<if test="custNo == 0">
+			   AND CA.CUST_NO = 0
+			   AND CA.JSESSION_ID = #{jsessionId}
+			</if>
+			<if test="custNo != 0">
+			   AND CA.CUST_NO = #{custNo}
+			</if>
+			<if test="cartSqArr != null and cartSqArr ==''">
+			   AND CA.CART_SQ IN
+				<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
+					#{item}
+				</foreach>
+			</if>
+		) Z
+		 ORDER BY Z.SUPPLY_COMP_CD
+				, Z.DELV_FEE_CD
+				, Z.CART_SQ
+				, Z.CART_DTL_SQ
 	</select>
 	</select>
 	
 	
 	<!-- 고객정보 조회 -->
 	<!-- 고객정보 조회 -->
@@ -1742,7 +1748,7 @@
 		     , CP.MAX_DC_AMT
 		     , CP.MAX_DC_AMT
 		     , CP.BUY_LIMIT_AMT 
 		     , CP.BUY_LIMIT_AMT 
 		     , CASE WHEN CP.DC_WAY = 'G240_11' 
 		     , CASE WHEN CP.DC_WAY = 'G240_11' 
-		            THEN (Z.CURR_PRICE * CP.DC_PVAL) / 100 
+		            THEN (((CURR_PRCE + ADD_PRICE) * GOODS_QTY) * CP.DC_PVAL) / 100 
 		            ELSE CP.DC_PVAL
 		            ELSE CP.DC_PVAL
 		            END  PC_CURR_PRICE
 		            END  PC_CURR_PRICE
 		FROM   TB_COUPON CP
 		FROM   TB_COUPON CP