Jelajahi Sumber

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

card007 5 tahun lalu
induk
melakukan
8484008618

+ 374 - 3
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -667,9 +667,380 @@
 		GROUP BY GB.BENEFIT_GB
 	</select>
 
-	<!-- 카테고리별 상품 총 수 -->
+	<!-- 카테고리별 상품 총  new -->
 	<select id="getCategoryGoodsCount" parameterType="GoodsSearch" resultType="int">
 		/* TsfDisplay.getCategoryGoodsCount */
+		WITH TAB_GOODS AS (
+		      SELECT G.BRAND_GROUP_NM     /*브랜드그룹명*/
+		           , G.GOODS_CD           /*상품코드*/
+		           , G.GOODS_NM           /*상품명*/
+		           , G.GOODS_GB           /*상품구분*/
+		           , G.SELF_GOODS_YN      /*자사상품여부*/
+		           , G.FOREIGN_BUY_YN     /*해외구매대행여부*/
+		           , G.PARALLEL_IMPORT_YN /*병행수입여부*/
+		           , G.ORDER_MADE_YN      /*주문제작여부*/
+		           , G.GOODS_TNM          /*상품타이틀명*/
+		           , G.MAIN_COLOR_CD      /*대표색상코드*/
+		           , G.LIST_PRICE         /*정상가(최초판매가)*/
+		           , G.CURR_PRICE         /*현재판매가*/
+		           , G.FORMAL_GB
+		           , G.REG_DT             /*등록일시*/
+		           , G.SELL_WEEK_QTY  /*주간판매수량*/
+		           , G.REVIEW_REG_CNT /*리뷰등록건수*/
+		      FROM   (
+		           SELECT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
+		                  BG.BRAND_GROUP_ENM
+		                  ELSE
+		                  BG.BRAND_GROUP_KNM
+		                  END                                                                AS BRAND_GROUP_NM /*브랜드그룹명*/
+		                  , G.GOODS_CD                                                                           /*상품코드*/
+		                  , G.GOODS_NM                                                                           /*상품명*/
+		                  , G.GOODS_GB                                                                           /*상품구분*/
+		                  , G.SELF_GOODS_YN                                                                      /*자사상품여부*/
+		                  , G.FOREIGN_BUY_YN                                                                     /*해외구매대행여부*/
+		                  , G.PARALLEL_IMPORT_YN                                                                 /*병행수입여부*/
+		                  , G.ORDER_MADE_YN                                                                      /*주문제작여부*/
+		                  , G.GOODS_TNM                                                                          /*상품타이틀명*/
+		                  , G.MAIN_COLOR_CD                                                                      /*대표색상코드*/
+		                  , G.LIST_PRICE                                                                         /*정상가(최초판매가)*/
+		                  , CASE WHEN 'P' = 'P' AND GBP.CUST_GB = 'G100_20' THEN GBP.STAFF_PC_CURR_PRICE
+		                  WHEN 'P' = 'M' AND GBP.CUST_GB = 'G100_20' THEN GBP.STAFF_MO_CURR_PRICE
+		                  WHEN 'P' = 'A' AND GBP.CUST_GB = 'G100_20' THEN GBP.STAFF_APP_CURR_PRICE
+		                  WHEN 'P' = 'P' AND GBP.CUST_GB != 'G100_20' THEN GBP.PC_CURR_PRICE
+		                  WHEN 'P' = 'M' AND GBP.CUST_GB != 'G100_20' THEN GBP.MO_CURR_PRICE
+		                  WHEN 'P' = 'A' AND GBP.CUST_GB != 'G100_20' THEN GBP.APP_CURR_PRICE
+		                  ELSE G.CURR_PRICE
+		                  END                                                   AS CURR_PRICE       /*현재판매가*/
+		                  , G.MIN_ORD_AMT                                                                        /*최수주문금액*/
+		                  , G.FORMAL_GB /*정상이월구분*/
+		                  , G.REG_DT                                                                             /*등록일시*/
+		                  , GS.SELL_WEEK_QTY  /*주간판매수량*/
+		                  , GS.REVIEW_REG_CNT /*리뷰등록건수*/
+		           FROM   TB_CATE_4SRCH C4
+		           INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
+		           INNER JOIN TB_GOODS G ON CG.GOODS_CD = G.GOODS_CD
+		           INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
+		           INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
+		           INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		           INNER JOIN TB_GOODS_SUMMARY GS ON CG.GOODS_CD = GS.GOODS_CD
+		           LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON CG.GOODS_CD = GBP.GOODS_CD
+		           WHERE  C4.SITE_CD = 'G000_10'
+		           AND    C4.CATE_GB = 'G032_101'
+		           AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		           AND    C4.CATE1_NO = #{cate1No}
+		           <if test="cate2No != null and cate2No != ''">
+		           AND    C4.CATE2_NO = #{cate2No}
+		           </if>
+		           <if test="cate3No != null and cate3No != ''">
+		           AND    C4.CATE3_NO = #{cate3No}
+		           </if>
+		           <if test="cate4No != null and cate4No != ''">
+		           AND    C4.CATE4_NO = #{cate4No}
+		           </if>
+		           <if test="cate5No != null and cate5No != ''">
+		           AND    C4.CATE5_NO = #{cate5No}
+		           </if>
+		           <choose>
+		               <when test="brandGroupNo != null and brandGroupNo != ''">
+		           AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+		               </when>
+		               <otherwise>
+		           AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+		                  </otherwise>
+		              </choose>
+		AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
+		AND    S.STOCK_QTY > 0 /*재고있는 상품*/
+		AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+		) G
+		WHERE  1 = 1
+		)
+		, TAB_OPTION AS (
+		      /* 자사상품 색상 목록 */
+		      SELECT O.GOODS_CD
+		      , O.OPT_CD1  AS MAIN_COLOR_CD
+		      FROM   TAB_GOODS G
+		      , TB_OPTION O
+		      WHERE  G.GOODS_CD = O.GOODS_CD
+		      AND    G.SELF_GOODS_YN = 'Y' /*자사상품만*/
+		      AND    O.DISP_YN = 'N'
+		      GROUP  BY O.GOODS_CD, O.OPT_CD1
+		)
+		, TAB_ALL_GOODS AS (
+		         SELECT *
+		         FROM   (
+		         SELECT G.BRAND_GROUP_NM
+		              , G.GOODS_CD
+		              , G.GOODS_NM           /*상품명*/
+		              , G.GOODS_GB           /*상품구분*/
+		              , G.SELF_GOODS_YN      /*자사상품여부*/
+		              , G.FOREIGN_BUY_YN     /*해외구매대행여부*/
+		              , G.PARALLEL_IMPORT_YN /*병행수입여부*/
+		              , G.ORDER_MADE_YN      /*주문제작여부*/
+		              , G.GOODS_TNM          /*상품타이틀명*/
+		              , IFNULL(O.MAIN_COLOR_CD,G.MAIN_COLOR_CD) AS MAIN_COLOR_CD /*대표색상코드*/
+		              , G.LIST_PRICE         /*정상가(최초판매가)*/
+		              , G.CURR_PRICE         /*현재판매가*/
+		              , G.FORMAL_GB
+		              , G.REG_DT             /*등록일시*/
+		              , G.SELL_WEEK_QTY
+		              , G.REVIEW_REG_CNT
+		              , RANK() OVER(ORDER BY G.FORMAL_GB
+		              , G.REG_DT DESC
+		              , G.GOODS_CD) AS NUMB
+		        FROM TAB_GOODS G
+		        LEFT OUTER JOIN TAB_OPTION O ON G.GOODS_CD = O.GOODS_CD
+		        ) ORIGINAL
+		)
+		, TAB_GOODS_IMG AS (
+		/* 상품의 이미지 */
+		     SELECT GOODS_CD
+		     ,MAX(SYS_IMG_NM)  AS SYS_IMG_NM
+		     ,MAX(SYS_IMG_NM2) AS SYS_IMG_NM2
+		     FROM   (
+		             SELECT G.GOODS_CD
+		             , CASE WHEN GI.DEFAULT_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END   AS SYS_IMG_NM
+		             , CASE WHEN GI.MOUSEOVER_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END AS SYS_IMG_NM2
+		             FROM   TAB_ALL_GOODS G
+		             , TB_GOODS_IMG GI
+		             WHERE  G.GOODS_CD = GI.GOODS_CD
+		             AND    G.MAIN_COLOR_CD = GI.COLOR_CD
+		     ) Z
+		GROUP  BY GOODS_CD
+		)
+		SELECT COUNT(1) AS TOTCNT
+		FROM TAB_ALL_GOODS G
+		LEFT OUTER JOIN TAB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
+	     <if test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
+	     LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
+	                                  AND W.CUST_NO = #{custNo}
+	     </if>
+	</select>
+
+	<!-- 카테고리별 상품 리스트 -->
+	<select id="getCategoryGoodsList" parameterType="GoodsSearch" resultType="Goods">
+		/* TsfDisplay.getCategoryGoodsList */
+		WITH TAB_GOODS AS (
+		SELECT G.BRAND_GROUP_NM     /*브랜드그룹명*/
+		, G.GOODS_CD           /*상품코드*/
+		, G.GOODS_NM           /*상품명*/
+		, G.GOODS_GB           /*상품구분*/
+		, G.SELF_GOODS_YN      /*자사상품여부*/
+		, G.FOREIGN_BUY_YN     /*해외구매대행여부*/
+		, G.PARALLEL_IMPORT_YN /*병행수입여부*/
+		, G.ORDER_MADE_YN      /*주문제작여부*/
+		, G.GOODS_TNM          /*상품타이틀명*/
+		, G.MAIN_COLOR_CD      /*대표색상코드*/
+		, G.LIST_PRICE         /*정상가(최초판매가)*/
+		, G.CURR_PRICE         /*현재판매가*/
+		, G.FORMAL_GB
+		, G.REG_DT             /*등록일시*/
+		, G.SELL_WEEK_QTY  /*주간판매수량*/
+		, G.REVIEW_REG_CNT /*리뷰등록건수*/
+		FROM   (
+		SELECT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
+		BG.BRAND_GROUP_ENM
+		ELSE
+		BG.BRAND_GROUP_KNM
+		END                                                                AS BRAND_GROUP_NM /*브랜드그룹명*/
+		, G.GOODS_CD                                                                           /*상품코드*/
+		, G.GOODS_NM                                                                           /*상품명*/
+		, G.GOODS_GB                                                                           /*상품구분*/
+		, G.SELF_GOODS_YN                                                                      /*자사상품여부*/
+		, G.FOREIGN_BUY_YN                                                                     /*해외구매대행여부*/
+		, G.PARALLEL_IMPORT_YN                                                                 /*병행수입여부*/
+		, G.ORDER_MADE_YN                                                                      /*주문제작여부*/
+		, G.GOODS_TNM                                                                          /*상품타이틀명*/
+		, G.MAIN_COLOR_CD                                                                      /*대표색상코드*/
+		, G.LIST_PRICE                                                                         /*정상가(최초판매가)*/
+		, CASE WHEN 'P' = 'P' AND GBP.CUST_GB = 'G100_20' THEN GBP.STAFF_PC_CURR_PRICE
+		WHEN 'P' = 'M' AND GBP.CUST_GB = 'G100_20' THEN GBP.STAFF_MO_CURR_PRICE
+		WHEN 'P' = 'A' AND GBP.CUST_GB = 'G100_20' THEN GBP.STAFF_APP_CURR_PRICE
+		WHEN 'P' = 'P' AND GBP.CUST_GB != 'G100_20' THEN GBP.PC_CURR_PRICE
+		WHEN 'P' = 'M' AND GBP.CUST_GB != 'G100_20' THEN GBP.MO_CURR_PRICE
+		WHEN 'P' = 'A' AND GBP.CUST_GB != 'G100_20' THEN GBP.APP_CURR_PRICE
+		ELSE G.CURR_PRICE
+		END                                                   AS CURR_PRICE       /*현재판매가*/
+		, G.MIN_ORD_AMT                                                                        /*최수주문금액*/
+		, G.FORMAL_GB /*정상이월구분*/
+		, G.REG_DT                                                                             /*등록일시*/
+		, GS.SELL_WEEK_QTY  /*주간판매수량*/
+		, GS.REVIEW_REG_CNT /*리뷰등록건수*/
+		FROM   TB_CATE_4SRCH C4
+		INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
+		INNER JOIN TB_GOODS G ON CG.GOODS_CD = G.GOODS_CD
+		INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
+		INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
+		INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		INNER JOIN TB_GOODS_SUMMARY GS ON CG.GOODS_CD = GS.GOODS_CD
+		LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON CG.GOODS_CD = GBP.GOODS_CD
+		WHERE  C4.SITE_CD = 'G000_10'
+		AND    C4.CATE_GB = 'G032_101'
+		AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		AND    C4.CATE1_NO = #{cate1No}
+		<if test="cate2No != null and cate2No != ''">
+			AND    C4.CATE2_NO = #{cate2No}
+		</if>
+		<if test="cate3No != null and cate3No != ''">
+			AND    C4.CATE3_NO = #{cate3No}
+		</if>
+		<if test="cate4No != null and cate4No != ''">
+			AND    C4.CATE4_NO = #{cate4No}
+		</if>
+		<if test="cate5No != null and cate5No != ''">
+			AND    C4.CATE5_NO = #{cate5No}
+		</if>
+		<choose>
+			<when test="brandGroupNo != null and brandGroupNo != ''">
+				AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+			</when>
+			<otherwise>
+				AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+			</otherwise>
+		</choose>
+		AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
+		AND    S.STOCK_QTY > 0 /*재고있는 상품*/
+		AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+		) G
+		WHERE  1 = 1
+		)
+		, TAB_OPTION AS (
+		/* 자사상품 색상 목록 */
+		SELECT O.GOODS_CD
+		, O.OPT_CD1  AS MAIN_COLOR_CD
+		FROM   TAB_GOODS G
+		, TB_OPTION O
+		WHERE  G.GOODS_CD = O.GOODS_CD
+		AND    G.SELF_GOODS_YN = 'Y' /*자사상품만*/
+		AND    O.DISP_YN = 'N'
+		GROUP  BY O.GOODS_CD, O.OPT_CD1
+		)
+		, TAB_ALL_GOODS AS (
+		SELECT *
+		FROM   (
+		SELECT G.BRAND_GROUP_NM
+		, G.GOODS_CD
+		, G.GOODS_NM           /*상품명*/
+		, G.GOODS_GB           /*상품구분*/
+		, G.SELF_GOODS_YN      /*자사상품여부*/
+		, G.FOREIGN_BUY_YN     /*해외구매대행여부*/
+		, G.PARALLEL_IMPORT_YN /*병행수입여부*/
+		, G.ORDER_MADE_YN      /*주문제작여부*/
+		, G.GOODS_TNM          /*상품타이틀명*/
+		, IFNULL(O.MAIN_COLOR_CD,G.MAIN_COLOR_CD) AS MAIN_COLOR_CD /*대표색상코드*/
+		, G.LIST_PRICE         /*정상가(최초판매가)*/
+		, G.CURR_PRICE         /*현재판매가*/
+		, G.FORMAL_GB
+		, G.REG_DT             /*등록일시*/
+		, G.SELL_WEEK_QTY
+		, G.REVIEW_REG_CNT
+		, RANK() OVER(ORDER BY G.FORMAL_GB
+		, G.REG_DT DESC
+		, G.GOODS_CD) AS NUMB
+		FROM TAB_GOODS G
+		LEFT OUTER JOIN TAB_OPTION O ON G.GOODS_CD = O.GOODS_CD
+		) ORIGINAL
+		WHERE 1=1
+		<if test="pageable != null and pageable.endRow != null and pageable.endRow > 0">
+			AND  NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
+		</if>
+		<if test="maxRow != null and maxRow !=''">
+			AND  NUMB <![CDATA[<=]]> #{maxRow}
+		</if>
+		)
+		, TAB_GOODS_IMG AS (
+		/* 상품의 이미지 */
+		SELECT GOODS_CD
+		,MAX(SYS_IMG_NM)  AS SYS_IMG_NM
+		,MAX(SYS_IMG_NM2) AS SYS_IMG_NM2
+		FROM   (
+		SELECT G.GOODS_CD
+		, CASE WHEN GI.DEFAULT_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END   AS SYS_IMG_NM
+		, CASE WHEN GI.MOUSEOVER_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END AS SYS_IMG_NM2
+		FROM   TAB_ALL_GOODS G
+		, TB_GOODS_IMG GI
+		WHERE  G.GOODS_CD = GI.GOODS_CD
+		AND    G.MAIN_COLOR_CD = GI.COLOR_CD
+		) Z
+		GROUP  BY GOODS_CD
+		)
+		SELECT G.BRAND_GROUP_NM
+		, G.GOODS_CD
+		, FN_GET_GOODS_NM(G.GOODS_NM,G.GOODS_GB,G.FOREIGN_BUY_YN,G.PARALLEL_IMPORT_YN,G.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
+		, G.GOODS_TNM
+		, G.MAIN_COLOR_CD
+		, G.LIST_PRICE
+		, G.CURR_PRICE                                                                                                  /*현재판매가*/
+		, GI.SYS_IMG_NM
+		, GI.SYS_IMG_NM2
+		, (
+		SELECT GROUP_CONCAT(CONCAT(VIDEO_GB,':',KMC_KEY) ORDER BY NUMB SEPARATOR ',')
+		FROM   (
+		SELECT GV.VIDEO_GB
+		, GV.KMC_KEY
+		, GV.REG_DT
+		, RANK() OVER(ORDER BY GV.REG_DT, GV.KMC_KEY) AS NUMB
+		FROM   TB_GOODS_VIDEO GV
+		WHERE  GV.GOODS_CD = G.GOODS_CD
+		AND    GV.DISP_YN = 'Y'
+		AND    GV.KMC_KEY IS NOT NULL
+		) Z
+		WHERE  NUMB <![CDATA[<=]]>  2
+		) AS VIDEO_VAL
+		, (
+		SELECT GROUP_CONCAT(DISTINCT CONCAT(C.COLOR_CD,':',CC.CD_DESC) ORDER BY CC.DISP_ORD SEPARATOR ',') AS COLOR_CHIPS
+		FROM   TB_OPTION O
+		, TB_COLOR C
+		, TB_COMMON_CODE CC
+		WHERE  O.OPT_CD1 = C.COLOR_CD
+		AND    C.COLOR_GRP_CD = CC.CD
+		AND    O.GOODS_CD = G.GOODS_CD
+		AND    O.DISP_YN = 'Y'
+		AND    C.USE_YN = 'Y'
+		AND    CC.USE_YN = 'Y'
+		) AS COLOR_CHIPS /*컬러칩*/
+		, (
+		SELECT GROUP_CONCAT(DISTINCT CONCAT(OPT_CD2
+		,':'
+		,CASE WHEN SOLDOUT_YN = 'Y' THEN 'Y'
+		ELSE
+		CASE WHEN CURR_STOCK_QTY - BASE_STOCK_QTY > 0 THEN 'N'
+		ELSE 'Y'
+		END
+		END)
+		ORDER BY DISP_ORD SEPARATOR ',') AS SIZES
+		FROM   VW_STOCK
+		WHERE  GOODS_CD = G.GOODS_CD
+		AND    OPT_CD1 = G.MAIN_COLOR_CD
+		AND    DISP_YN = 'Y'
+		) AS SIZES /*사이즈*/
+		, FORMAL_GB
+		, REG_DT
+		, NUMB
+		<choose>
+			<when test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
+				, IF(W.GOODS_CD IS NULL,'','likeit')                                                           AS LIKE_IT       /*위시리스트담긴상품*/
+			</when>
+			<otherwise>
+				, ''                                                                                           AS LIKE_IT       /*위시리스트담긴상품*/
+			</otherwise>
+		</choose>
+		FROM TAB_ALL_GOODS G
+		LEFT OUTER JOIN TAB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
+		<if test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
+			LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
+			AND W.CUST_NO = #{custNo}
+		</if>
+	</select>
+
+	<!-- 카테고리별 상품 총 수 -->
+	<select id="getCategoryGoodsCount_old" parameterType="GoodsSearch" resultType="int">
+		/* TsfDisplay.getCategoryGoodsCount_old */
 		SELECT COUNT(1) AS CNT
 		  FROM TB_GOODS G
 		  JOIN TB_CATE_GOODS CG ON G.GOODS_CD = CG.GOODS_CD
@@ -755,8 +1126,8 @@
 	</sql>
 
 	<!-- 카테고리별 상품 총 리스트 -->
-	<select id="getCategoryGoodsList" parameterType="GoodsSearch" resultType="Goods">
-		/* TsfDisplay.getCategoryGoodsList */
+	<select id="getCategoryGoodsList_old" parameterType="GoodsSearch" resultType="Goods">
+		/* TsfDisplay.getCategoryGoodsList_old */
 		WITH TAB_GOODS AS (
 		     SELECT G.BRAND_GROUP_NM     /*브랜드그룹명*/
 		          , G.GOODS_CD           /*상품코드*/

+ 43 - 0
src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html

@@ -563,6 +563,49 @@
 		/*]]>*/
 	</script>
 
+	<script>
+		//(진행 중)
+		$(document).ready( function() {
+			var nowMov = $('.itemPic').children('.pd_mov');
+			var nowImg = $('.itemPic').children('.pd_img');
+			var ogrSrc;
+			var overSrc;
+			var srcName = nowImg.attr('src');
+			overSrc = srcName.substring(0, srcName.lastIndexOf('.'));
+
+			$(nowMov).on('mouseover', function() {
+				// [on] size opt
+				$(this).siblings(".itemOpt").stop().animate({"bottom": 0}, 400,"swing");
+				// [on] mov none
+				$(this).css("opacity","0");
+				// return false;
+			});
+			$(nowMov).on('mouseleave', function() {
+				// [off] size opt
+				$(this).siblings(".itemOpt").stop().animate({"bottom": -120}, 400,"swing");
+				// [off] mov block
+				$(this).css("opacity","1");
+				// return false;
+			});
+			$(nowImg).on('mouseover', function() {
+				// [on] size opt
+				$(this).siblings(".itemOpt").stop().animate({"bottom": 0}, 400,"swing");
+				// [on] re-Name
+				ogrSrc = $(this).attr('src').substring(0, srcName.lastIndexOf('.'));
+				overSrc = $(this).attr('src').substring(0, srcName.lastIndexOf('.'));
+				$(this).attr('src', overSrc+ '_onhover.' + /[^.]+$/.exec(srcName));
+				// return false;
+			});
+			$(nowImg).on('mouseleave', function() {
+				// [off] size opt
+				$(this).siblings(".itemOpt").stop().animate({"bottom": -120}, 400,"swing");
+				// [off] re-Name
+				$(this).attr('src', overSrc + '.' + /[^.]+$/.exec(srcName));
+				// return false;
+			});
+		});
+	</script>
+
 </th:block>
 
 </body>

+ 121 - 42
src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html

@@ -906,6 +906,8 @@ var main_trendy_slide = new Swiper('.main_trendy .post-trendy', {
 	watchSlidesProgress: true,
 	watchSlidesVisibility: true,
 	allowTouchMove: false,
+	loof: false,
+	loopAdditionalSlides : 1,
 	speed : 1000,
 	autoplay: {
 		delay: 30000,
@@ -915,10 +917,10 @@ var main_trendy_slide = new Swiper('.main_trendy .post-trendy', {
 		nextEl: '.main_trendy .swiper-button-next',
 		prevEl: '.main_trendy .swiper-button-prev',
 	},
-	pagination: {
-		el: '.main_trendy .swiper-pagination',
-		clickable: true,
-	},
+	// pagination: {
+	// 	el: '.main_trendy .swiper-pagination',
+	// 	clickable: true,
+	// },
 	slidesPerView: 'auto',
 	spaceBetween: 22,
 });
@@ -943,6 +945,13 @@ main_trendy_slide.on('reachEnd', function () {
 	$(".main_trendy .swiper-slide-visible").eq(4).addClass('scaleBig');
 
 	$(".main_trendy .swiper-wrapper").css("transform","translateX(-"+ (slideWidth * newitemIndex) +"px)");
+	function l(n) {
+		if (n.direction !== "none")
+		{
+			var t = n.direction === "next" ? n.currentIndex + 1 : n.currentIndex - 1;
+			o(t)
+		}
+	}
 });
 
 /* SLIDE - MAIN_IT */
@@ -993,27 +1002,63 @@ var main_deal_slide = new Swiper ('.main_deal .post-deal', {
 });
 
 /* SLIDE - MAIN_PICK */
-var main_pick_nav = new Swiper('.main_pick .post-pick-nav', {
+var main_pick_nav = new Swiper('.main_pick .post-pick-nav', { //top
+	initialSlide: 1,
 	slidesPerView: 6,
-	freeMode: false,
+	// slidesPerGroup: 6,
+	loop: true,
+	loopeSlides: 6,
+	loopFillGroupWithBlank : true,
+	// slideToClickedSlide : true,
+	slideToClickedSlide : true,
+	loopAdditionalSlides : 1,
+	// centeredSlides : true,
 	watchSlidesVisibility: true,
 	watchSlidesProgress: true,
+	freeMode: false,
+	navigation: {
+		nextEl: '.main_pick .swiper-button-next',
+		prevEl: '.main_pick .swiper-button-prev',
+	},
+	autoplay: {
+		delay: 5000,
+		disableOnInteraction: false,
+	},
 });
-var main_pick_post = new Swiper('.main_pick .post-pick-for', {
-	allowTouchMove: false,
+var main_pick_post = new Swiper('.main_pick .post-pick-for', { //thumbs
+	initialSlide: 1,
+	slidesPerView: 1,
+	// slidesPerGroup: 6,
+	loop: true,
+	loopeSlides: 6,
 	spaceBetween: 10,
+	// loopFillGroupWithBlank : true,
+	loopAdditionalSlides: 1,
+	allowTouchMove: false,
 	navigation: {
 		nextEl: '.main_pick .swiper-button-next',
 		prevEl: '.main_pick .swiper-button-prev',
 	},
 	thumbs: {
 		swiper: main_pick_nav
-	}
+	},
+	autoplay: {
+		delay: 5000,
+		disableOnInteraction: false,
+	},
 });
+// main_pick_nav.controller.control = main_pick_post;
+// main_pick_post.controller.control = main_pick_nav;
+
 var main_pick_lookbook = new Swiper ('.main_pick .post-lookbook', {
-	loop: true,
 	slidesPerView: 1,
 	speed : 1000,
+	// loop: true,
+	watchOverflow: true, //loop와 함께 사용 불가.
+	autoplay: {
+		delay: 2000,
+		disableOnInteraction: false,
+	},
 	pagination: {
 		el: '.main_pick .post-lookbook .swiper-pagination',
 		clickable: true,
@@ -1022,10 +1067,11 @@ var main_pick_lookbook = new Swiper ('.main_pick .post-lookbook', {
 
 /* SLIDE - MAIN_BANNER WIDE */
 var main_bnnWide_slide = new Swiper ('.main_1stage .post-bnnWide', {
-	loop: true,
 	slidesPerView: 1,
-	// centeredSlides: true,
 	speed : 1500,
+	initialSlide: 2,
+	loop: true,
+	watchOverflow: true, //loop와 함께 사용 불가.
 	autoplay: {
 		delay: 4000,
 		disableOnInteraction: false,
@@ -1034,6 +1080,8 @@ var main_bnnWide_slide = new Swiper ('.main_1stage .post-bnnWide', {
 		nextEl: '.main_1stage .swiper-button-next',
 		prevEl: '.main_1stage .swiper-button-prev',
 	},
+	// allowTouchMove : false,
+	// centeredSlides: true,
 });
 
 /* SLIDE - MAIN_RECOMM */
@@ -1045,31 +1093,39 @@ $(".main_recomm .tag_list .btn").click(function(){
 	$(this).addClass('active');
 	$('#'+recommActive).addClass('active');
 });
+function init(){
 
-var main_recomm_slide = new Swiper ('.main_recomm .post-recomm', {
-	slidesPerView: 5,
-	speed : 1500,
-	autoplay: false,
-	spaceBetween: 20,
-	pagination: {
-		el: '.main_recomm .swiper-pagination',
-		clickable: true,
-	},
-	navigation: {
-		nextEl: '.main_recomm .swiper-button-next',
-		prevEl: '.main_recomm .swiper-button-prev',
-	},
-	observer:true,
-	observeParents: true,
-});
+	if(main_recomm_slide != null) main_recomm_slide.destroy();
 
-/* SLIDE - MAIN_RECOMM */
+	var main_recomm_slide = new Swiper ('.main_recomm .post-recomm', {
+		slidesPerView: 5,
+		slidesPerGroup: 5,
+		speed : 1500,
+		spaceBetween: 20,
+		loop : true,
+		pagination: {
+			el: '.main_recomm .swiper-pagination',
+			clickable: true,
+		},
+		navigation: {
+			nextEl: '.main_recomm .swiper-button-next',
+			prevEl: '.main_recomm .swiper-button-prev',
+		},
+		observer:true,
+		observeParents: true,
+	});
+}
+
+init();
+
+/* SLIDE - MAIN_FORYOU */
 var main_foryou_slide = new Swiper ('.main_foryou .post-sug .swiper-container', {
 	allowTouchMove: false,
 	loop: true,
 	effect: 'fade',
+	autoHeight: false,
 	autoplay: {
-		delay: 5000,
+		delay: 25000,
 		disableOnInteraction: false,
 	},
 	pagination: {
@@ -1077,6 +1133,26 @@ var main_foryou_slide = new Swiper ('.main_foryou .post-sug .swiper-container',
 		clickable: true,
 	},
 });
+function foryouInterval(_foryouIndex) {
+	var foryouCateItems = $(".main_foryou .fy_nav .swiper-slide-active ul li .btn_shape");
+	$(foryouCateItems[(_foryouIndex + 1) % 5]).addClass("active");
+	$(foryouCateItems[_foryouIndex % 5]).removeClass("active");
+}
+function foryouFy_item(_Fy_itemIndex) {
+	var fynavItems = $('.main_foryou .fy_nav .swiper-slide-active ul li .btn_shape.active');
+	var fyActive = $(fynavItems).attr('data-tab');
+	// $(".fy_nav .btn_shape").removeClass('active');
+	$(".fy_item").removeClass('active');
+	// $(".fy_item").addClass('active');
+	$('#'+fyActive).addClass('active');
+}
+var foryouIndex = 0;
+setInterval(function () {
+	foryouInterval(foryouIndex);
+	foryouFy_item();
+	if (foryouIndex >= 5) foryouIndex = 0;
+	foryouIndex++;
+}, 5000);
 $(".fy_nav .btn_shape").click(function(){
 	var fyActive = $(this).attr('data-tab');
 	$(".fy_nav .btn_shape").removeClass('active');
@@ -1085,6 +1161,7 @@ $(".fy_nav .btn_shape").click(function(){
 	$('#'+fyActive).addClass('active');
 });
 
+
 /* SLIDE - MAIN_TV */
 var main_tv_slide = new Swiper ('.main_tv .post-tv', {
 	loop: true,
@@ -1103,7 +1180,7 @@ var main_tv_slide = new Swiper ('.main_tv .post-tv', {
 	},
 });
 
-	$(document).ready(function() {
+$(document).ready(function() {
 		// $("#id006").text();
 		// var brCheck = "오늘만 <br> 이 가격@".split("<br>");
 		// console.log(brCheck[0]);
@@ -1142,17 +1219,19 @@ var main_tv_slide = new Swiper ('.main_tv .post-tv', {
 
 		// 핫딜 <br> 태그
 		var id006Text = $("#id006").find("input[name=title]").val();
-		if(id006Text.indexOf('<br>') > -1){
-			let tag = '';
-			var reText = id006Text.split("<br>");
-			tag += reText[0];
-			tag += '<br>';
-			tag += reText[1];
-			$("#id006").append(tag);
-		}else{
-			let tag = '';
-			tag += id006Text;
-			$("#id006").append(tag);
+		if(!gagajf.isNull(id006Text)){
+			if(id006Text.indexOf('<br>') > -1){
+				let tag = '';
+				var reText = id006Text.split("<br>");
+				tag += reText[0];
+				tag += '<br>';
+				tag += reText[1];
+				$("#id006").append(tag);
+			}else{
+				let tag = '';
+				tag += id006Text;
+				$("#id006").append(tag);
+			}
 		}
 
 		// 브랜드픽 <br> 태그

+ 1 - 1
src/main/webapp/WEB-INF/views/web/error/InaccessWeb.html

@@ -53,8 +53,8 @@
 				<p th:text="${inaccessibleMsg}"></p>
 			</div>
 			<div class="btn_group">
-				<button class="btn btn_dark" onclick="javascript:history.back(-1);"><span>목록으로 이동</span></button>
 				<button class="btn btn_default" onclick="fnGoToHome();"><span>홈으로 이동</span></button>
+				<button class="btn btn_dark" onclick="javascript:history.back(-1);"><span>목록으로 이동</span></button>
 			</div>
 		</div>
 	</div>

+ 15 - 0
src/main/webapp/biz/goods.js

@@ -178,6 +178,21 @@ var fnCreateGoodsList = function(result, ithrCd, contentLoc, goodsUrl, lastPage,
 		tag += '			<div class="itemPic">';
 		tag += '				<img alt="BLUE-a" class=" vLHTC pd_img" src="'+goodsUrl+'/'+item.sysImgNm+'">';
 		tag += '			</div>';
+		if(!gagajf.isNull(item.videoVal)){
+			var videoArr = item.videoVal.split(",");
+			var videoGb = '';
+			var videoUrl = '';
+			for(let i=0; i<videoArr.length; i++){
+				var videoInfo = videoArr[i].split(":");
+				videoGb = videoInfo[0];
+				videoUrl = videoInfo[1];
+			}
+			if(videoGb=='Y'){
+				tag += '<iframe id="child" className="pd_mov" src="https://www.youtube.com/embed/'+videoUrl+'"></iframe>';
+			}else{
+				tag += '<iframe id="child" className="pd_mov" src="http://v.kr.kollus.com/'+videoUrl+'"></iframe>';
+			}
+		}
 		tag += '			<p class="itemBrand">'+item.brandGroupNm+'</p>';
 		tag += '			<div class="itemName">'+item.goodsFullNm+'</div>';
 		tag += '			<p class="itemPrice">'+item.currPrice.addComma();

+ 2 - 2
src/main/webapp/ux/pc/css/common.css

@@ -783,7 +783,7 @@ content: "〉";font-size: 12px;padding-left: 8px;
 .fgRDJH {padding: 0px 40px;font-size: 0px;box-sizing: border-box;}
 	@media (max-width: 1919px) and (min-width: 1401px){.fgRDJH {padding-left: 38px;padding-right: 38px;}}
 
-.itemLike {position: absolute;top: 20px;right: 18px;font-size: 0px;z-index: 2;width: 23px;height: 23px; background: url('/images/pc/ico_like.png');background-size: 46px;background-position:0px 0px;background-repeat: no-repeat;}
+.itemLike {position: absolute;top: 20px;right: 18px;font-size: 0px;z-index: 10;width: 23px;height: 23px; background: url('/images/pc/ico_like.png');background-size: 46px;background-position:0px 0px;background-repeat: no-repeat;}
 .itemLike::before, .itemLike::after {
 	content: "";position: absolute;top: 0px;right: 0px;width: 100%;height: 100%;
 	background-repeat: no-repeat;background-position: right top;background-size: contain;opacity: 0;transition: opacity 200ms ease 0s;
@@ -802,7 +802,7 @@ content: "〉";font-size: 12px;padding-left: 8px;
 .itemPic .pd_mov {z-index: 3;height: 100%;}
 .itemPic .pd_img {z-index: 2;transition: 0.5s;}
 /* .itemPic .pd_img {position: absolute;width: 100%;width: auto; height: auto;max-height: 500px;top: 50%;left: 50%;transform: translate(-50%,-50%);} */
-.itemOpt{z-index:10;position: absolute;bottom: -120px; left: 0; right: 0; width: 100%; height:111px;padding: 32px 0; text-align:center; color: #fff; background: rgb(0 0 0 / 0.8); }
+.itemOpt{z-index:3;position: absolute;bottom: -120px; left: 0; right: 0; width: 100%; height:111px;padding: 32px 0; text-align:center; color: #fff; background: rgb(0 0 0 / 0.8); }
 .itemOpt p{font-size: 12px;line-height: 1.2;padding-bottom: 15px;}
 .itemOpt ul{display: block;margin: 0 auto;width: auto;}
 .itemOpt ul li{font-size: 14px;line-height: 1.2;display: inline-block;margin-left: 10px;}

+ 8 - 2
src/main/webapp/ux/pc/css/layout.css

@@ -430,7 +430,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 #quick_menu .wishlist .shape:after {height: 18px; border-left:10px solid #fd4802;}
 #quick_menu .wishlist .shape span {width: 100%; font-size: 13px; font-weight: 300;}
 #quick_menu .wishlist .itemLike {top: 10px;}
-#quick_menu .wishlist .hover_con {position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,.4); display: none;}
+#quick_menu .wishlist .hover_con {z-index:3; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,.4); display: none;}
 #quick_menu .wishlist .hover_con .cart_btn {position: absolute; top: 50%; left: 50%; transform:translate(-50%, -50%);}
 #quick_menu .wishlist .item_prod:hover .hover_con {display: block;}
 #quick_menu .wishlist .itemsGrp .item_prod .cart_btn {width: 91px; border:1px solid #ddd; font-size: 13px; padding: 6px 0;}
@@ -633,7 +633,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 .range .irs--round .irs-line::after {right:0;}
 .range .irs--round .irs-bar {background-color: #fd4802; height: 2px;}
 .range .irs--round .irs-handle {width:14px; height:14px; top:50%; margin-top:-3px; border-color: #fd4802; border: 2px solid #fd4802; box-shadow: none; cursor:pointer; margin-left: 0;}
-.range .irs--round .irs-grid {/*bottom:-5px;*/ z-index:-1;}
+.range .irs--round .irs-grid {/*bottom:-5px;*/ z-index:0;}
 .range .irs--round .irs-grid-text {display:block; color:#666; font-size:14px; font-weight:300;}
 .range .irs--round .irs-min,
 .range .irs--round .irs-max {display: none;}
@@ -2801,6 +2801,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.option_box [class^="opt_"] .select_custom.deal_opt_item .combo .list > li[aria-disabled="true"] a [class^="item"] {color:#bbb; text-decoration:line-through;} 
 	.option_box [class^="opt_"] .select_custom.deal_opt_item .combo .list > li[aria-disabled="true"] a img {opacity:0.3;}
 	.option_box .opt_select {}
+	.option_box .opt_select .select_custom .select .opt_price {display:none;}
 	.option_box .opt_set_select {}
 	.option_box .opt_set_select .set_option {margin-top:25px;}
 	.option_box .opt_set_select .set_option:first-child {margin-top:0}
@@ -2845,6 +2846,11 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.price_box + .btn_box .btn {height:60px; font-size:18px; font-weight:300;}
 	.price_box + .btn_box .btn:disabled{background:#aaa; border-color:#aaa; opacity:1;}
 
+	.pd_detail .btn_box .ui_row {margin-bottom: 0;}
+	.pd_detail .btn_box .ui_row [class^='ui_col_']:first-child {margin-right: 0;}
+	.pd_detail .btn_box .ui_row [class^='ui_col_']:last-child {margin-left: 0;}
+	.pd_detail .btn_box .btn {height:60px; font-size:18px; font-weight:300;}
+	.pd_detail .btn_box .btn:disabled{background:#aaa; border-color:#aaa; opacity:1;}
 
 	.pd_detail .area_desc .desc_wrap .npay_box {min-height:50px; margin-top:30px; background:#f5f5f5;}
 	.pd_detail .area_desc .desc_wrap .exinfo_box {margin-top:30px}

+ 1 - 1
src/main/webapp/ux/pc/css/main.css

@@ -577,7 +577,7 @@ header.minify .common_header.br_header::after {bottom:-565px;}
 .brand_main .brand_visual .swiper-button-next {right:70px; opacity:0.5;}
 .brand_main .post-visual.swiper-container {margin-left:0;}
 .brand_main .post-visual .swiper-wrapper {padding-bottom:0;}
-.brand_main .post-visual .swiper-slide {position:relative; max-width:1520px; padding-left:28.9473%; mask-size:86.6072% 0%, 9.3928% 21.4285%, 90.6072% 100%, 100% 78.5715%; -webkit-mask-size:86.6072% 0%, 9.3928% 21.4285%, 90.6072% 100%, 100% 78.5715%; /*transition:all 200ms ease;*/}
+.brand_main .post-visual .swiper-slide {position:relative; max-width:1520px; padding-left:28.9473%; mask-size:86.6072% 0%, 9.3928% 21.4285%, 90.6072% 100%, 100% 78.5715%; -webkit-mask-size:86.6072% 0%, 9.3928% 21.4285%, 90.6072% 100%, 100% 78.5715%; transition:all 200ms ease;}
 .brand_main .post-visual .swiper-slide img {width:1080px; margin:0;}
 .brand_main .post-visual .swiper-slide .txtWrap {opacity:0; position:absolute; padding-left:0px; top:110px; bottom:auto; left:0px; right:auto; z-index:1;}
 .brand_main .post-visual .txtWrap dt {font-size:0; padding-bottom:0;}