Sfoglia il codice sorgente

카테고리 메인 신상품 수정

bin2107 4 anni fa
parent
commit
80a68beeb2

+ 9 - 0
src/main/java/com/style24/front/biz/dao/TsfGoodsDao.java

@@ -486,4 +486,13 @@ public interface TsfGoodsDao {
 	 */
 	int getGoodsStoreStockQty(GoodsStock goodsStock);
 
+	/**
+	 * 카테고리메인 신규상품 목록
+	 * @param cate - 카테고리 정보
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 6. 22
+	 */
+	Collection<Goods> getCategoryMainNewGoodsList(Cate4Srch cate);
+
 }

+ 6 - 2
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -939,11 +939,15 @@ public class TsfGoodsService {
 				maxRow = maxRow - goodsList.size();
 				cate.setMaxRow(maxRow);
 				cate.setCateGb("G032_101");
-				if (cate.getContentsLoc().equals("SBM003") || cate.getContentsLoc().equals("SBM007")) {
+				if (cate.getContentsLoc().equals("SMM003") || cate.getContentsLoc().equals("SBM003") || cate.getContentsLoc().equals("SBM007")) {
 					cate.setCate1No(null);
 				}
 
-				goodsList.addAll(goodsDao.getContentsCategoryNewGoodsList(cate));
+				if(cate.getContentsLoc().equals("SCM002") ){
+					goodsList.addAll(goodsDao.getCategoryMainNewGoodsList(cate));
+				}else{
+					goodsList.addAll(goodsDao.getContentsCategoryNewGoodsList(cate));
+				}
 			}
 		} else if (cate.getContentsLoc().equals("SCM003") || cate.getContentsLoc().equals("SBM008")) { // 베스트상품인 경우
 			// TODO: 추천솔루션

+ 206 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -3482,5 +3482,211 @@
 		AND USE_YN = 'Y'
 		AND DELV_RES_DT > NOW()
 	</select>
+
+	<!-- 카테고리메인 신규상품 목록 -->
+	<select id="getCategoryMainNewGoodsList"  parameterType="Cate4Srch" resultType="Goods">
+		/* TsfGoods.getCategoryMainNewGoodsList */
+		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.REG_DT             /*등록일시*/
+		    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                                             /*정상가(최초판매가)*/
+		             , G.CURR_PRICE                                             /*현재판매가*/
+		             , G.REG_DT                                                 /*등록일시*/
+		        FROM   TB_CATE_4SRCH C4
+		        , TB_CATE_GOODS CG
+		        , TB_GOODS G
+		        , TB_GOODS_STOCK GS
+		        , TB_BRAND B
+		        , TB_BRAND_GROUP BG
+		        WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		        AND    CG.GOODS_CD = G.GOODS_CD
+		        AND    CG.GOODS_CD = GS.GOODS_CD
+		        AND    G.BRAND_CD = B.BRAND_CD
+		        AND    B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		        AND    C4.SITE_CD = #{siteCd}
+		        AND    C4.CATE_GB = #{cateGb}
+		        AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		    <if test="cate1No != null and cate1No != ''">
+		        AND    C4.CATE1_NO = #{cate1No}
+		    </if>
+		    <choose>
+		        <when test="brandGroupNo != null and brandGroupNo != ''">
+		        AND    B.BRAND_GROUP_NO = #{brandGroupNo}
+		        </when>
+		        <otherwise>
+		        AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+		        </otherwise>
+		    </choose>
+		    <if test="exceptGoodsArr != null and exceptGoodsArr.length > 0">
+		        AND	   CG.GOODS_CD NOT IN
+		        <foreach collection="exceptGoodsArr" item="item" index="index"  open="(" close=")" separator=",">
+		            #{item}
+		        </foreach>
+		    </if>
+		    AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		    AND    G.FORMAL_GB = 'G009_10' /*정상상품*/
+		    AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+		    AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+		    AND    G.REG_DT BETWEEN DATE_ADD(NOW(), INTERVAL -14 DAY) AND NOW()
+		    AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+		    AND    B.USE_YN = 'Y'
+		    AND    BG.USE_YN = 'Y'
+		    <if test="maxRow != null and maxRow !=''">
+		    	LIMIT #{maxRow}
+		    </if>
+		    ) G
+		    WHERE  1=1
+		    ORDER BY G.REG_DT DESC, G.GOODS_CD
+		)
+		, TAB_NEW 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.REG_DT             /*등록일시*/
+		    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                                             /*정상가(최초판매가)*/
+		             , G.CURR_PRICE                                             /*현재판매가*/
+		             , G.REG_DT                                                 /*등록일시*/
+		        FROM   TB_CATE_4SRCH C4
+		        , TB_CATE_GOODS CG
+		        , TB_GOODS G
+		        , TB_GOODS_STOCK GS
+		        , TB_BRAND B
+		        , TB_BRAND_GROUP BG
+		        WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		        AND    CG.GOODS_CD = G.GOODS_CD
+		        AND    CG.GOODS_CD = GS.GOODS_CD
+		        AND    G.BRAND_CD = B.BRAND_CD
+		        AND    B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		        AND    C4.SITE_CD = #{siteCd}
+		        AND    C4.CATE_GB = #{cateGb}
+		        AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		        <if test="cate1No != null and cate1No != ''">
+		        AND    C4.CATE1_NO = #{cate1No}
+		        </if>
+		        <choose>
+		            <when test="brandGroupNo != null and brandGroupNo != ''">
+		                AND    B.BRAND_GROUP_NO = #{brandGroupNo}
+		            </when>
+		            <otherwise>
+		                AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+		            </otherwise>
+		        </choose>
+		        <if test="exceptGoodsArr != null and exceptGoodsArr.length > 0">
+		            AND   CG.GOODS_CD NOT IN
+		            <foreach collection="exceptGoodsArr" item="item" index="index"  open="(" close=")" separator=",">
+		                #{item}
+		            </foreach>
+		        </if>
+		        AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		        AND    G.FORMAL_GB = 'G009_10' /*정상상품*/
+		        AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+		        AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+		        AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+		        AND    B.USE_YN = 'Y'
+		        AND    BG.USE_YN = 'Y'
+		        AND NOT EXISTS (
+		                      SELECT 1
+		                      FROM TAB_GOODS TG
+		                      WHERE 1=1
+		                      AND TG.GOODS_CD = G.GOODS_CD
+		                )
+		        <if test="maxRow != null and maxRow !=''">
+		        LIMIT #{maxRow}
+		        </if>
+		    ) G
+		    WHERE  1=1
+		    ORDER BY G.REG_DT DESC, G.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
+		     , FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD,G.CURR_PRICE,#{custGb})                           AS CURR_PRICE    /*현재판매가*/
+		     , (SELECT SYS_IMG_NM FROM TB_GOODS_IMG X WHERE X.GOODS_CD = G.GOODS_CD AND IF(G.SELF_GOODS_YN= 'N', 'XX', G.MAIN_COLOR_CD) = X.COLOR_CD AND DEFAULT_IMG_YN = 'Y' LIMIT 1) AS SYS_IMG_NM
+		     , (SELECT SYS_IMG_NM FROM TB_GOODS_IMG X WHERE X.GOODS_CD = G.GOODS_CD AND IF(G.SELF_GOODS_YN= 'N', 'XX', G.MAIN_COLOR_CD) = X.COLOR_CD AND MOUSEOVER_IMG_YN = 'Y' LIMIT 1) AS 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 VIDEOS
+		     <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 (
+		    SELECT *
+		      FROM TAB_GOODS
+		    UNION ALL
+		    SELECT *
+		      FROM TAB_NEW
+		) G
+		<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>
+		WHERE 1=1
+		<if test="maxRow != null and maxRow !=''">
+			LIMIT #{maxRow}
+		</if>
+	</select>
 	
 </mapper>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/display/CategoryMainFormWeb.html

@@ -243,7 +243,7 @@
 					});
 				}
 				$('.dp_cate_list').html(tag);
-				$('.cateMainNm').html(cate1.cate1Nm+'메인');
+				$('.cateMainNm').html(cate1.cate1Nm);
 				$('.cate1Nm').html(cate1.cate1Nm);
 			}
 		});