sowon4187 5 年 前
コミット
ce29938eb3

+ 52 - 76
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -115,87 +115,63 @@
 	
 		<!-- 기획전 목록 -->
 	<select id="getPlanGoodsList" parameterType="Plan" resultType="Plan">
-		SELECT P1.PLAN_SQ 
-			      ,P1.PLAN_NM 
-			      ,P1.DTL_TITLE1 
-			      ,P1.PLAN_GB 
-			      ,P1.FRONT_GB 
-			      ,P1.MAIN_PIMG 
-			      ,P1.MAIN_MIMG 
-			      ,P1.DISP_ORD
-			      ,P1.NEW_PLAN
-			      ,P1.DISP_STDT
-			      ,P1.DISP_EDDT
-			      ,P1.REG_NO 
-			      ,P2.BRAND
-			      ,P2.CNT
-			      ,TPD.CORNER_NM
-			      ,P3.GOODS_CD
-			      ,P3.GOODS_STAT
-			      ,(SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = P3.GOODS_CD AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM
-			      ,P3.CURR_PRICE
-			      ,P3.CURR_BPRICE 
-			      ,P3.GOODS_NM
-		FROM 
-		(
-			SELECT P.PLAN_SQ 
-			      ,P.PLAN_NM 
-			      ,P.DTL_TITLE1 
-			      ,P.PLAN_GB 
-			      ,P.FRONT_GB 
-			      ,P.MAIN_PIMG 
-			      ,P.MAIN_MIMG 
-			      ,P.DISP_ORD 
-			      ,P.REG_NO 
-			      ,CASE WHEN DATE(P.REG_DT) BETWEEN DATE_ADD(NOW(),INTERVAL -3 DAY ) AND NOW() THEN 'NEW' END AS 'NEW_PLAN'   /*등록일 기준 3일 */
-			      ,P.DISP_EDDT 
-			      ,P.DISP_STDT 
-			      ,P.DEL_YN 
-			FROM TB_PLAN P
-			GROUP BY  P.PLAN_SQ 
-			      ,P.PLAN_NM 
-			      ,P.DTL_TITLE1 
-			      ,P.PLAN_GB 
-			      ,P.FRONT_GB 
-			      ,P.MAIN_PIMG 
-			      ,P.MAIN_MIMG 
-			      ,P.DISP_ORD 
-			      ,P.REG_NO
-		)P1 INNER JOIN (
-						SELECT  PB.PLAN_SQ 
-						      , COUNT(PLAN_SQ) AS CNT
-						      ,CASE WHEN COUNT(PLAN_SQ) = 1 THEN MAX(TBG.BRAND_GROUP_KNM) ELSE MAX(TBG.BRAND_GROUP_KNM)END AS BRAND
-						FROM TB_PLAN_BRAND PB INNER JOIN TB_BRAND_GROUP TBG  ON PB.BRAND_GROUP_NO = TBG.BRAND_GROUP_NO
-						GROUP BY PB.PLAN_SQ
-						)P2 ON P1.PLAN_SQ = P2.PLAN_SQ 	
-			LEFT JOIN TB_PLAN_DETAIL TPD ON P1.PLAN_SQ = TPD.PLAN_SQ
-			LEFT JOIN (
-						SELECT TPG.GOODS_CD 
-						      ,TPG.DEL_YN 
-						      ,TPG.DISP_ORD 
-						      ,TPG.PLAN_DTL_SQ 
-						      ,TG.GOODS_STAT 
-						      ,TG.CURR_PRICE 
-						      ,TG.CURR_BPRICE 
-						      ,TG.GOODS_NM 
-						FROM TB_PLAN_GOODS TPG LEFT JOIN TB_GOODS TG ON TPG.GOODS_CD = TG.GOODS_CD 
-						WHERE 1=1
-						  AND TPG.DEL_YN = 'N'
-						  AND TG.GOODS_STAT = 'G008_90'
-					  )P3 ON TPD.PLAN_DTL_SQ = P3.PLAN_DTL_SQ
-		WHERE 1=1
-		  AND P1.DEL_YN = 'N'
-		  AND P1.PLAN_GB = 'P'
-		  AND NOW() BETWEEN P1.DISP_STDT AND P1.DISP_EDDT
-		  <!-- AND P1.FRONT_GB IN ('P','A') -->
-		 AND P1.PLAN_SQ IN (
+			SELECT F.*
+			FROM
+			(
+				SELECT Z.* 
+				     , (CASE WHEN Z.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = Z.GOODS_CD) 
+							ELSE (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = Z.GOODS_CD) 
+							END) AS STOCK_QTY_SUM
+				     , ROW_NUMBER() OVER(PARTITION BY Z.PLAN_SQ ORDER BY Z.PLAN_SQ) AS RNUM
+				     , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = Z.GOODS_CD AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM
+				FROM
+				(	
+					SELECT P.PLAN_SQ 
+					      ,P.PLAN_NM 
+					      ,PD.CORNER_NM 
+					      ,PD.DISP_STDT 
+					      ,PD.DISP_EDDT 
+					      ,PD.DISP_YN 
+					      ,PD.PLAN_DTL_SQ 
+					      ,PD.DISP_ORD 
+					      ,PG.GOODS_CD 
+					      ,PG.DEL_YN 
+					      ,TG.GOODS_TYPE 
+					      ,TG.GOODS_NM 
+					      ,TG.LIST_PRICE 
+					      ,TG.CURR_PRICE                                                                 
+					      ,TG.DC_RATE
+					      ,CASE TG.FORMAL_GB WHEN 'G009_20' THEN '이월' ELSE '정상' END AS FORMAL_GB                                                                 
+						  ,TG.SEASON_CD       
+						  , (SELECT SUPPLY_COMP_NM
+						 	 FROM   TB_SUPPLY_COMPANY
+						     WHERE  SUPPLY_COMP_CD = TG.SUPPLY_COMP_CD
+							) AS SUPPLY_COMP_NM                                                           
+						  ,TG.ERP_STOCK_LINK_YN                                                          
+						  ,TG.ERP_PRICE_LINK_YN                                                                                                                  
+						  ,TG.NEW_CUST_ORD_YN                                                            
+						  ,TG.DELV_FEE_CD                                                                
+						  ,TG.FRST_CFRM_DT                  
+						  ,TG.PRICE_UPD_DT             
+					FROM TB_PLAN P INNER JOIN TB_PLAN_DETAIL PD ON P.PLAN_SQ = PD.PLAN_SQ 
+					               INNER JOIN TB_PLAN_GOODS PG ON PD.PLAN_DTL_SQ = PG.PLAN_DTL_SQ 
+					               INNER JOIN TB_GOODS TG  ON PG.GOODS_CD = TG.GOODS_CD 
+					WHERE 1=1
+					 AND NOW() BETWEEN PD.DISP_STDT AND PD.DISP_EDDT 
+					 AND PD.DISP_YN = 'Y'
+					 AND PG.DEL_YN = 'N'
+					 AND P.PLAN_GB = 'P'
+				     AND P.PLAN_SQ IN (
 				   						SELECT PLAN_SQ 
 				   						FROM TB_PLAN_CATE 
 				   						 <if test="cateNo != null and cateNo != ''">
 				   						WHERE CATE_NO = #{cateNo}
 				   						</if>
-				   					)
-		ORDER BY P1.NEW_PLAN DESC, ABS(DATEDIFF(P1.DISP_EDDT,NOW())) 
+				   	 					)
+				)Z
+				ORDER BY Z.DISP_ORD ASC, STOCK_QTY_SUM DESC
+			)F
+			WHERE F.RNUM IN (1,2)
 	</select>
 	
 	<select id="getEventAllCount" resultType="int" parameterType="Plan">