Browse Source

상품쿼리

eskim 5 năm trước cách đây
mục cha
commit
c6eccc0477

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

@@ -89,9 +89,9 @@ public class TsfGoodsController extends TsfBaseController {
 		}
 
 		// 상품 상세
-		goods = goodsService.getGoodsDesc(goods);
+		goods = goodsService.getGoodsDesc(paramsGoods);
 		// 핫딜정보
-		Goods socialGoods = goodsService.getSocialGoods(goods);
+		Goods socialGoods = goodsService.getSocialGoods(paramsGoods);
 		if (socialGoods != null && !StringUtils.isBlank(socialGoods.getGoodsCd())) {
 			goods.setSocialSq(socialGoods.getSocialSq());
 			goods.setSocialTnm(socialGoods.getSocialTnm());

+ 2 - 0
src/main/java/com/style24/persistence/domain/Lookbook.java

@@ -31,5 +31,7 @@ public class Lookbook extends TscBaseDomain {
 	Collection<LookbookGoods> lookbookGoodsList;	//베너별 상품목록
 	
 	private String goodsCd; 		// 상품상세검색용
+	private String frontGb; 		// 상품상세검색용
+	private String custGb; 			// 상품상세검색용
 
 }

+ 29 - 23
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -145,7 +145,7 @@
 		INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		                      AND B.USE_YN = 'Y'
 		INNER JOIN (SELECT GOODS_CD, 
-		            FN_GET_BENEFIT_PRICE(#{frontGb},GOODS_CD, CURR_PRICE,#{custGb},#{floorUnit}) AS CURR_PRICE 
+		            FN_GET_BENEFIT_PRICE(#{frontGb},GOODS_CD, CURR_PRICE,#{custGb}) AS CURR_PRICE 
 		            FROM TB_GOODS
 		            WHERE GOODS_CD = #{goodsCd}) BP ON G.GOODS_CD = BP.GOODS_CD
 		LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
@@ -398,7 +398,7 @@
 		                            AND SB.USE_YN = 'Y'
 		                            AND SB.SITE_CD = #{siteCd}
 		INNER JOIN (SELECT GOODS_CD, 
-		            FN_GET_BENEFIT_PRICE(#{frontGb},GOODS_CD, CURR_PRICE,#{custGb},#{floorUnit}) AS CURR_PRICE 
+		            FN_GET_BENEFIT_PRICE(#{frontGb},GOODS_CD, CURR_PRICE,#{custGb}) AS CURR_PRICE 
 		            FROM TB_GOODS
 		            WHERE GOODS_CD = #{goodsCd}) BP ON G.GOODS_CD = BP.GOODS_CD
 		WHERE E.GOODS_CD = #{goodsCd}
@@ -513,7 +513,7 @@
 		FROM TB_LOOKBOOK A
 		INNER JOIN TB_LOOKBOOK_BANNER B ON A.LOOKBOOK_SQ = B.LOOKBOOK_SQ 
 			                            AND B.DISP_YN = 'Y'
-			                            AND B.LOOKBOOKB_SQ IN (SELECT LOOKBOOKB_SQ FROM tb_lookbook_goods WHERE  GOODS_CD = #{goodsCd} AND DEL_YN  ='N')
+			                            AND B.LOOKBOOKB_SQ IN (SELECT LOOKBOOKB_SQ FROM TB_LOOKBOOK_GOODS WHERE  GOODS_CD = #{goodsCd} AND DEL_YN  ='N')
 		WHERE NOW() BETWEEN A.DISP_STDT AND A.DISP_EDDT
 		AND A.DISP_YN  = 'Y'
 		ORDER BY A.DISP_ORD, B.DISP_ORD
@@ -522,8 +522,8 @@
 	<!-- 룩북 베너 상품 목록 조회 -->
 	<select id="getLookbookBannerGoodsList" parameterType="Lookbook" resultType="Lookbook">
 		/* TsfGoods.getLookbookBannerGoodsList */
-		SELECT A.*
-		     , 100 - ROUND((BP.CURR_PRICE / G.LIST_PRICE) * 100 ,0) AS DC_RATE
+		SELECT Z.*
+		     , 100 - ROUND((CURR_PRICE / LIST_PRICE) * 100 ,0) AS DC_RATE
 		FROM (
 		      SELECT A.LOOKBOOK_SQ
 		           , B.LOOKBOOKB_SQ 
@@ -540,12 +540,16 @@
 		          , G.MIN_ORD_QTY 
 		          , (CASE WHEN D.DISP_NM_LANG = 'EN' THEN D.BRAND_ENM ELSE D.BRAND_KNM END) AS BRAND_NM
 		          , G.LIST_PRICE
-		          , FN_GET_BENEFIT_PRICE(#{frontGb},GOODS_CD, CURR_PRICE,#{custGb},#{floorUnit}) AS CURR_PRICE 
+		          , FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD, G.CURR_PRICE,#{custGb}) AS CURR_PRICE
 		          , G.MAIN_COLOR_CD
 		          , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'00') AND DEFAULT_IMG_YN = 'Y') AS SYS_IMG_NM
 		          , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'00') AND MOUSEOVER_IMG_YN = 'Y') AS SYS_IMG_NM2
 		          , S.STOCK_QTY
 		          , S.SOLDOUT_YN
+		          , V.VIDEO_GB_M
+		          , V.VIDEO_VAL_M
+		          , V.VIDEO_GB_S
+		          , V.VIDEO_VAL_S
 		      FROM TB_LOOKBOOK A
 		      INNER JOIN TB_LOOKBOOK_BANNER B ON A.LOOKBOOK_SQ = B.LOOKBOOK_SQ 
 		                                      AND B.DISP_YN = 'Y'
@@ -554,7 +558,7 @@
 		      INNER JOIN TB_GOODS G ON C.GOODS_CD = G.GOODS_CD
 		                            AND G.GOODS_STAT = 'G008_90'
 		      INNER JOIN TB_BRAND D ON G.BRAND_CD = D.BRAND_CD
-		                    AND D.USE_YN = 'Y'                   
+		                    AND D.USE_YN = 'Y'
 		      LEFT OUTER JOIN (SELECT GOODS_CD
 		                            , SUM(CASE WHEN SOLDOUT_YN = 'Y' THEN 0
 		                                       ELSE CURR_STOCK_QTY
@@ -563,26 +567,28 @@
 		                       FROM VW_STOCK
 		                       WHERE DISP_YN = 'Y'
 		                       GROUP BY GOODS_CD) S ON G.GOODS_CD = S.GOODS_CD
-		      LEFT OUTER JOIN (SELECT MAX(CASE WHEN  RNUM = 1 THEN  VIDEO_VAL END) AS  VIDEO_VAL_M
-		                            , MAX(CASE WHEN  RNUM = 2 THEN  VIDEO_VAL END) AS  VIDEO_VAL_S
+		      LEFT OUTER JOIN (SELECT MAX(GOODS_CD) AS GOODS_CD 
+		                             , MAX(CASE WHEN  RNUM = 1 THEN  VIDEO_GB END) AS  VIDEO_GB_M
+		                             , MAX(CASE WHEN  RNUM = 1 THEN  VIDEO_VAL END) AS  VIDEO_VAL_M
+		                             , MAX(CASE WHEN  RNUM = 2 THEN  VIDEO_GB END) AS  VIDEO_GB_S
+		                             , MAX(CASE WHEN  RNUM = 2 THEN  VIDEO_VAL END) AS  VIDEO_VAL_S
 		                       FROM (
-		                              SELECT B.VIDEO_GB 
-		                                   , B.VIDEO_VAL 
-		                                   , A.REG_DT 
-		                                   , RANK() OVER(PARTITION BY A.DISPLOC_VAL ORDER BY A.REG_DT ) RNUM 
-		                              FROM tb_video_disploc  A
-		                              INNER JOIN  tb_video B ON A.VIDEO_SQ = B.VIDEO_SQ 
-		                                                     AND B.DISP_YN ='Y'
-		                              WHERE 1=1
-		                              AND A.DISPLOC_VAL = G.GOODS_CD
-		                              AND A.DISPLOC_GB ='G'
-		                              AND A.DISP_YN = 'Y'
-		                              ) A
-		                       )
+		                             SELECT A.DISPLOC_VAL AS GOODS_CD
+		                                  , B.VIDEO_GB 
+		                                  , B.VIDEO_VAL 
+		                                  , A.REG_DT 
+		                                  , RANK() OVER(PARTITION BY A.DISPLOC_VAL ORDER BY A.REG_DT ) RNUM 
+		                             FROM tb_video_disploc  A
+		                             INNER JOIN  tb_video B ON A.VIDEO_SQ = B.VIDEO_SQ 
+		                                                    AND B.DISP_YN ='Y'
+		                             WHERE A.DISPLOC_GB ='G'
+		                             AND A.DISP_YN = 'Y'
+		                            ) V
+		                       ) V ON G.GOODS_CD = V.GOODS_CD
 		      WHERE NOW() BETWEEN A.DISP_STDT AND A.DISP_EDDT
 		      AND A.DISP_YN  = 'Y'
 		      AND A.LOOKBOOK_SQ = #{lookbookSq}
-		) A
+		) Z
 	</select>
 	
 </mapper>