Browse Source

퀵 위시 수정

sowon4187 5 years ago
parent
commit
c78986d181

+ 10 - 0
src/main/java/com/style24/front/biz/dao/TsfWishlistDao.java

@@ -33,4 +33,14 @@ public interface TsfWishlistDao {
 	 * @date 2021. 3. 29
 	 */
 	Collection<Goods> getWishListGoodsList(WishList wishList);
+	
+	/**
+	 * 위시리스트 퀵 상품목록
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @date 2021. 5. 13
+	 */
+	Collection<Goods> getQuickWishList(WishList wishList);
 }

+ 14 - 0
src/main/java/com/style24/front/biz/service/TsfWishlistService.java

@@ -53,4 +53,18 @@ public class TsfWishlistService {
 		wishList.setCustNo(login.getCustNo());
 		return wishListDao.getWishListGoodsList(wishList);
 	}
+	
+	/**
+	 * 위시리스트 퀵 상품목록
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @date 2021. 5. 13
+	 */
+	public Collection<Goods> getQuickWishList(WishList wishList){
+		Login login = TsfSession.getInfo();
+		wishList.setCustNo(login.getCustNo());
+		return wishListDao.getQuickWishList(wishList);
+	}
 }

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

@@ -1503,7 +1503,7 @@ public class TsfGoodsController extends TsfBaseController {
 		wish.setCustGb(TsfSession.getCustGb());
 		wish.setQuickYn("Y");
 		// 위시리스트 상품목록
-		wishList = wishListService.getWishListGoodsList(wish);
+		wishList = wishListService.getQuickWishList(wish);
 		return wishList;
 	}
 

+ 1 - 0
src/main/java/com/style24/persistence/domain/Goods.java

@@ -107,6 +107,7 @@ public class Goods extends TscBaseDomain {
 	private String sysImgNm2;	//상품마우스오버이미지
 	private String logoFileNm;	//브랜드로고이미지
 	private int stockQty;		//재고
+	private int stockQtySum;		//재고
 	private String soldoutYn;	//품절여부
 	private String wishYn;		//위시리스트여부
 	private String goodsComposeSearchYn;	//구성상품 조회여부

+ 116 - 3
src/main/java/com/style24/persistence/mybatis/shop/TsfWishlist.xml

@@ -166,9 +166,122 @@
 		    LEFT OUTER JOIN TAB_GOODS_BENEFIT GB ON PG.GOODS_CD = GB.GOODS_CD
 		    )Z
 		ORDER BY Z.REG_DT DESC
-		<if test="quickYn != null and quickYn != ''">
-			,Z.STOCK_QTY
-		</if>
+	</select>
+	
+	<select id="getQuickWishList" parameterType="WishList" resultType="Goods">
+		/* TsfWishlist.getQuickWishList*/
+		SELECT Z.*
+		FROM
+		(
+		WITH TAB_PLAN_GOODS AS (
+		    SELECT W.AF_LINK_CD 
+		          ,W.CONTENTS_LOC 
+		          ,W.CUST_NO 
+		          ,W.REG_DT
+		          ,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.GOODS_TYPE 											/*상품타입*/
+		         , 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.MIN_ORD_QTY                                            /*최소주문수량*/  				
+		    FROM   TB_WISHlIST W
+		         , TB_GOODS G 
+		         , TB_GOODS_STOCK GS
+		         , TB_BRAND B
+		         , TB_BRAND_GROUP BG
+		    WHERE  W.GOODS_CD = G.GOODS_CD 
+		    AND    G.BRAND_CD = B.BRAND_CD
+		    AND    B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		    AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		    AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+		    AND    B.USE_YN = 'Y'
+		    AND    BG.USE_YN = 'Y'
+		    AND    W.CUST_NO =  #{custNo}
+		    AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT
+		    GROUP BY W.AF_LINK_CD 
+		          ,W.CONTENTS_LOC 
+		          ,W.CUST_NO 
+		          ,W.REG_DT
+		         , G.GOODS_CD                                               /*상품코드*/
+		         , G.GOODS_NM                                               /*상품명*/
+		         , G.GOODS_GB                                               /*상품구분*/
+		         , G.GOODS_TYPE 											/*상품타입*/
+		         , 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.MIN_ORD_QTY                                            /*최소주문수량*/  				
+		)
+		, TAB_GOODS_IMG AS (
+		    SELECT PG.GOODS_CD
+		         , MAX(CASE WHEN GI.DEFAULT_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END)   AS SYS_IMG_NM
+		    FROM   TAB_PLAN_GOODS PG
+		         , TB_GOODS_IMG GI
+		    WHERE  PG.GOODS_CD = GI.GOODS_CD
+		    AND    PG.MAIN_COLOR_CD = GI.COLOR_CD
+		    AND    (GI.DEFAULT_IMG_YN = 'Y' OR GI.MOUSEOVER_IMG_YN = 'Y')
+		    GROUP  BY PG.GOODS_CD
+		)
+		, TAB_STOCK AS (
+		   SELECT PG.GOODS_CD
+		         , SUM(case WHEN S.SOLDOUT_YN = 'Y' THEN 0
+		                    ELSE S.CURR_STOCK_QTY - S.BASE_STOCK_QTY END ) AS STOCK_QTY_SUM
+		         , MIN(CASE WHEN S.SOLDOUT_YN = 'N' THEN S.OPT_CD ELSE 'XXX' END) AS OPT_CD 
+		    FROM   TAB_PLAN_GOODS PG
+		         , VW_STOCK S
+		    WHERE  PG.GOODS_CD = S.GOODS_CD
+		    AND    PG.GOODS_TYPE = 'G056_N'
+		    AND    S.DISP_YN = 'Y' /*노출하는상품만*/
+		    GROUP  BY PG.GOODS_CD
+		    UNION ALL 
+		    SELECT PG.GOODS_CD
+		         , SUM(CASE WHEN S.SOLDOUT_YN = 'Y' THEN 0
+		                    ELSE S.CURR_STOCK_QTY - S.BASE_STOCK_QTY END ) AS STOCK_QTY_SUM
+		         , MIN(CASE WHEN S.SOLDOUT_YN = 'N' THEN S.OPT_CD ELSE 'XXX' END) AS OPT_CD 
+		    FROM   TAB_PLAN_GOODS PG
+		         , VW_STOCK_COMPOSE S
+		    WHERE  PG.GOODS_CD = S.GOODS_CD
+		    AND    PG.GOODS_TYPE != 'G056_N'
+		    AND    S.DISP_YN = 'Y' /*노출하는상품만*/
+		    GROUP  BY PG.GOODS_CD		
+		  )
+		    SELECT 
+		           PG.BRAND_GROUP_NM
+		         , PG.GOODS_CD
+		         , PG.MIN_ORD_QTY
+		         , PG.GOODS_TYPE
+		         , FN_GET_GOODS_NM(PG.GOODS_NM,PG.GOODS_GB,PG.FOREIGN_BUY_YN,PG.PARALLEL_IMPORT_YN,PG.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
+		         , PG.GOODS_NM
+		         , PG.GOODS_TNM
+		         , PG.MAIN_COLOR_CD
+		         , PG.LIST_PRICE
+		         , PG.AF_LINK_CD 
+		         , PG.CONTENTS_LOC 
+		         , PG.CUST_NO 
+		         , PG.REG_DT
+		         , FN_GET_BENEFIT_PRICE( 'P' /**P*/,PG.GOODS_CD,PG.CURR_PRICE, 'G100_10' /**P*/)                     AS CURR_PRICE    /*현재판매가*/
+		         , GI.SYS_IMG_NM
+		         , S.STOCK_QTY_SUM
+		         , S.OPT_CD 
+		    	FROM   TAB_PLAN_GOODS PG
+		    INNER JOIN TAB_GOODS_IMG GI ON PG.GOODS_CD = GI.GOODS_CD
+		    LEFT OUTER JOIN TAB_STOCK S ON PG.GOODS_CD = S.GOODS_CD
+		    )Z
+		ORDER BY Z.STOCK_QTY_SUM ASC,Z.REG_DT DESC
 	</select>
 	
 

+ 5 - 4
src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html

@@ -1179,10 +1179,10 @@
 							$.each(result, function (idx, item) {
 								tag += '	<div class="item_prod">';	
 								tag += '		<div class="item_state">';	
-								if (item.stockQty>0 && item.stockQty<=5) {
+								if (item.stockQtySum>0 && item.stockQtySum<=5) {
 									tag += '			<div class="shape"><span>곧 품절돼요!</span></div>';
 								}
-								if (item.stockQty<=0) {
+								if (item.stockQtySum<=0) {
 									tag += '			<div class="shape"><span>품절</span></div>';
 								}
 								tag += '			<button type="button" class="itemLike active" goodsCd="'+item.goodsCd+'" onclick="fnWishDelete(this);">관심상품 추가</button>';
@@ -1192,8 +1192,9 @@
 								tag += '				</div>';	
 								tag += '			</a>';	
 								tag += '			<div class="hover_con">';
-								if (item.stockQty>0) {
-									tag += '				<button type="button" class="btn btn_sm cart_btn on" afLinkCd="'+item.afLinkCd+'" goodsCd="'+item.goodsCd+'" optCd="'+item.optCd+'" minOrdQty="'+item.minOrdQty+'" goodsType="'+item.goodsType+'" contentsLoc="'+item.contentLoc+'" onclick="wishCardAdd(this)"><span>쇼핑백 담기</span></button>';
+								console.log(item.stockQtySum);
+								if (item.stockQtySum>0) {
+									tag += '			<button type="button" class="btn btn_sm cart_btn on" afLinkCd="'+item.afLinkCd+'" goodsCd="'+item.goodsCd+'" optCd="'+item.optCd+'" minOrdQty="'+item.minOrdQty+'" goodsType="'+item.goodsType+'" contentsLoc="'+item.contentLoc+'" onclick="wishCardAdd(this)"><span>쇼핑백 담기</span></button>';
 								}
 								tag += '			</div>';	    
 								tag += '		</div>';