Преглед изворни кода

마이페이지 위시리스트 임시커밋

sowon4187 пре 5 година
родитељ
комит
bdd0120777

+ 23 - 1
src/main/java/com/style24/front/biz/dao/TsfWishlistDao.java

@@ -1,6 +1,10 @@
 package com.style24.front.biz.dao;
 
+import java.util.Collection;
+
 import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Goods;
+import com.style24.persistence.domain.WishList;
 
 /**
  * 위시리스트 Dao
@@ -10,5 +14,23 @@ import com.style24.core.support.annotation.ShopDs;
  */
 @ShopDs
 public interface TsfWishlistDao {
-
+	/**
+	 * 위시리스트 달
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @date 2021. 3. 29
+	 */
+	Collection<WishList> getWishListMonth(WishList wishList);
+	
+	/**
+	 * 위시리스트 상품목록
+	 *
+	 * @param 
+	 * @return
+	 * @author sowon
+	 * @date 2021. 3. 29
+	 */
+	Collection<Goods> getWishListGoodsList(WishList wishList);
 }

+ 34 - 1
src/main/java/com/style24/front/biz/service/TsfWishlistService.java

@@ -1,9 +1,15 @@
 package com.style24.front.biz.service;
 
+import java.util.Collection;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.style24.front.biz.dao.TsfWishlistDao;
+import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.domain.Goods;
+import com.style24.persistence.domain.Login;
+import com.style24.persistence.domain.WishList;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -18,6 +24,33 @@ import lombok.extern.slf4j.Slf4j;
 public class TsfWishlistService {
 
 	@Autowired
-	private TsfWishlistDao wishlistDao;
+	private TsfWishlistDao wishListDao;
 
+	/**
+	 * 위시리스트 달
+	 *
+	 * @param
+	 * @return
+	 * @author sowon	
+	 * @since 2021. 3. 29
+	 */
+	public Collection<WishList> getWishListMonth(WishList wishList) {
+		Login login = TsfSession.getInfo();
+		wishList.setCustNo(login.getCustNo());
+		return wishListDao.getWishListMonth(wishList);
+	}
+	
+	/**
+	 * 위시리스트 상품목록
+	 *
+	 * @param
+	 * @return
+	 * @author sowon	
+	 * @since 2021. 3. 29
+	 */
+	public Collection<Goods> getWishListGoodsList(WishList wishList) {
+		Login login = TsfSession.getInfo();
+		wishList.setCustNo(login.getCustNo());
+		return wishListDao.getWishListGoodsList(wishList);
+	}
 }

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

@@ -95,7 +95,7 @@ public class TsfMypageController extends TsfBaseController {
 	private TsfReviewService reviewService;
 
 	@Autowired
-	private TsfWishlistService wishlistService;
+	private TsfWishlistService wishListService;
 
 	@Autowired
 	private TsfPointService pointService;
@@ -786,7 +786,7 @@ public class TsfMypageController extends TsfBaseController {
 		return result;
 	}
 
-	/* 김소원 상품권 쿠폰 리뷰 시작 */
+	/* 김소원 상품권 쿠폰 리뷰 위시리스트 시작 */
 	/**
 	 * 마이페이지 상품권화면
 	 *
@@ -1058,6 +1058,41 @@ public class TsfMypageController extends TsfBaseController {
 
 		return result;
 	}
+	
+	/**
+	 * 마이페이지 위시리스트화면
+	 *
+	 * @return
+	 * @author sowon	
+	 * @since 2021. 03. 29
+	 */
+	@GetMapping("/wish/list/form")
+	public ModelAndView mypageWishListForm(WishList wishList) {
+		ModelAndView mav = new ModelAndView(super.getDeviceViewName("mypage/MypageWishListForm"));
+		// 위시리스트 달
+		mav.addObject("wishMonth", wishListService.getWishListMonth(wishList));
+		// 위시리스트 상품목록
+		mav.addObject("wishGoods", wishListService.getWishListGoodsList(wishList));
+		return mav;
+	}
+	
+	/**
+	 * 마이페이지 상품목록 가져오기
+	 *
+	 * @return
+	 * @author sowon	
+	 * @since 2021. 03. 29
+	 */
+	@GetMapping("/wish/list")
+	public GagaMap mypageWishGoodsList(WishList wishList) {
+		GagaMap result = new GagaMap();
+		// 위시리스트 달
+		result.set("wishMonth", wishListService.getWishListMonth(wishList));
+		// 위시리스트 상품목록
+		result.set("wishGoods", wishListService.getWishListGoodsList(wishList));
+
+		return result;
+	}
 
 	/*신주승 시작*/
 

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

@@ -21,7 +21,7 @@ public class WishList extends TscBaseDomain {
 	private String ithrCd;
 	private String contentsLoc;
 	private Integer planDtlSq;
-	
+	private String regDt;
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] arrGoodsCd;
 

+ 71 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfWishlist.xml

@@ -14,6 +14,77 @@
 		WHERE  NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
 	</sql>
 	
+	<!-- 위시리스트 월 -->
+	<select id="getWishListMonth" resultType="WishList" parameterType="WishList">
+		SELECT COUNT(*) AS COUNT
+		      ,DATE_FORMAT(W.REG_DT,'%Y.%m') AS REG_DT 
+		FROM TB_WISHLIST W
+		WHERE CUST_NO = #{custNo}
+		GROUP BY DATE_FORMAT(W.REG_DT,'%Y-%m') 
+	</select>
+	
+	<!-- 위시리스트 상품목록 (임시 = 수정예정)-->
+	<select id="getWishListGoodsList" parameterType="WishList" resultType="Goods">
+		/**/
+		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
+		FROM 
+		      (
+		       SELECT  G.GOODS_CD
+		              ,G.BRAND_CD
+		              ,G.ITEMKIND_CD
+		              ,G.GOODS_NM
+		              ,G.GOODS_TNM
+		              ,G.GOODS_SNM
+		              ,G.GOODS_SNM1
+		              ,G.MAIN_COLOR_CD
+		              ,G.GOODS_NUM
+		              ,G.GOODS_TYPE
+		              ,G.TAG_PRICE
+		              ,G.LIST_PRICE
+		              ,G.CURR_PRICE
+		              ,G.CURR_BPRICE
+		              ,G.PRICE_UPD_DT
+		              ,G.COST_PRICE
+		              ,G.DC_RATE
+		              ,G.GOODS_STAT
+		              ,G.SELF_MALL_YN
+		              ,G.GOODS_GB
+		              ,G.DISTRIBUTION_GB
+		              ,G.SELF_GOODS_YN
+		              ,G.SUPPLY_COMP_CD
+		              ,G.SUPPLY_GOODS_CD
+		              ,G.PNT_PRATE
+		              ,G.PNT_MRATE
+		              ,W.AF_LINK_CD 
+		              ,W.CONTENTS_LOC 
+		              ,W.CUST_NO 
+		              ,W.ITHR_CD 
+		              ,W.PLAN_DTL_SQ 
+		              ,W.REG_DT 
+		              ,BR.BRAND_GROUP_KNM
+		              ,BR.BRAND_KNM
+		       FROM TB_GOODS G INNER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD 
+								LEFT JOIN (
+								            SELECT B.BRAND_CD 
+								                  ,B.BRAND_ENM
+								                  ,B.BRAND_KNM 
+								                  ,B.BRAND_GRP_NM 
+								                  ,B.USE_YN 
+								                  ,BG.BRAND_GROUP_NO 
+								                  ,BG.BRAND_GROUP_ENM 
+								                  ,BG.BRAND_GROUP_KNM 
+								            FROM TB_BRAND B INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+								             WHERE 1=1
+								               AND B.USE_YN = 'Y'
+								               AND BG.USE_YN = 'Y'
+								         )BR ON G.BRAND_CD = BR.BRAND_CD
+              WHERE 1=1
+	            AND W.CUST_NO = #{custNo}
+           )Z
+	</select>
 	
 
 </mapper>

+ 176 - 0
src/main/webapp/WEB-INF/views/web/mypage/MypageWishListFormWeb.html

@@ -0,0 +1,176 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="web/common/layout/MypageLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : MypageWishListFormWeb.html
+ * @desc    : 마이페이지 > 위시리스트 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.29   sowon     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<div class="content myWishlist"> <!-- 페이지특정 클래스 = myWishlist -->
+	<div class="cont_body">
+		<!-- CONT-BODY -->
+		<div class="lnb">
+			<div class="lnb_tit">
+				<h2>마이페이지</h2>
+			</div>
+			<div class="lnb_list">
+				<ul id="mypageLnbList"></ul>
+			</div>
+		</div>
+		<div class="cont">
+			<div class="sec_head">
+				<h3 class="subH1">위시리스트</h3>
+			</div>
+			<div class="lnb_list">
+				<ul id="mypageLnbList"></ul>
+			</div>
+			<div class="sec_body" id="wishList">
+				<!-- 월별 관심상품 -->
+				<!-- <div class="monthly_wish_wrap">
+					<div class="date">
+						<span></span>
+					</div>
+					<div class="itemsGrp">
+						<div class="item_prod">
+							<div class="item_state">
+								<button type="button" class="itemLike">관심상품 추가</button>
+								<a href="#none" class="itemLink">
+									<div class="itemPic">
+										<img alt="" class=" vLHTC pd_img" src="/images/pc/thumb/prod5.jpg">
+									</div>
+									<p class=" itemBrand">BRAND NAME</p>
+									<div class=" itemName">[온라인 단독] 여성 니트 후드 경량 다운 점퍼 여성 니트 후드 경량 다운 점퍼 여성 니트 후드 경량 다운 점퍼</div>
+									<p class="itemPrice">80,100
+										<span class="itemPrice_original">89,000</span>
+										<span class=" itemPercent">10%</span>
+									</p>
+									<div class="itemcolorchip">
+										<span class="chip_color35" value="ABM">BEIGE</span>
+										<span class="chip_color54" value="BDS">BLACK</span>
+										<span class="chip_color40" value="YBR">WHITE</span>
+									</div>
+									 <p class="itemBadge">
+										<span class="badge13">베스트 </span>
+									</p>
+									<div class="itemComment">★ [NEW] 20FW 빅웨이브 단독발매!</div>
+								</a>
+							</div>
+						</div>	
+					</div>
+				</div> -->
+				<!-- //월별 관심상품 -->
+				<!-- 데이터 없을 시 -->
+				 <div class="nodata" style="display:none;">
+					<div class="txt_box">
+						<p>
+							현재 노출 할 수 있는 데이터가 없습니다.<br>
+							(문구수정)
+						</p>
+					</div>
+				</div> 
+				<!-- //데이터 없을 시 -->											
+			</div>
+		</div>
+		<!-- // CONT-BODY -->					
+	</div>
+</div>
+
+
+<script th:inline="javascript">
+let wishMonth = [[${wishMonth}]];
+let wishGoods = [[${wishGoods}]];
+// 위시리스트 
+var wishListForm = function() {
+	let html = '';
+	if(wishMonth.length>0){
+		for (var i = 0; i < wishMonth.length; i++) {
+			html += '<div class="monthly_wish_wrap">                                                                                         ';
+			html += '	<div class="date">                                                                                                   ';
+			html += '		<span>'+wishMonth[i].regDt+'</span>                                                                              ';
+			html += '	</div>                                                                                                               ';
+			html += '	<div class="itemsGrp">                                                                                            ';
+			$.each(wishGoods, function(idx, item) {
+				html += '		<div class="item_prod">                                                                                       ';
+				html += '			<div class="item_state">                                                                                  ';
+				html += '				<button type="button" class="itemLike active" goodsCd="'+item.goodsCd+'" planDtlSq="" onclick="wishlistDelete(this)">관심상품 추가</button>                                               ';
+				html += '				<a href="#none" class="itemLink">                                                                     ';
+				html += '					<div class="itemPic">                                                                             ';
+				html += '						<img alt="" class=" vLHTC pd_img" src="/images/pc/thumb/prod5.jpg">                           ';
+				html += '					</div>                                                                                            ';
+				html += '					<p class=" itemBrand">'+item.brandKnm+'</p>                                               ';
+				html += '					<div class=" itemName">'+item.goodsNm+'</div>                                             ';
+				html += '					<p class="itemPrice">' + item.currPrice.addComma();
+				if (item.currPrice != item.listPrice) {
+					html += '						<span class="itemPrice_original">'+item.listPrice.addComma() + '</span>                         ';	
+				}
+				if (item.dcRate>0) {
+					html += '						<span class=" itemPercent">'+item.dcRate+'%</span>                                     ';	
+				}
+				html += '					</p>                                                                                              ';
+				html += '					<div class="itemcolorchip">                                                                       ';
+				html += '						<span class="chip_color35" value="ABM">BEIGE</span>                                           ';
+				html += '						<span class="chip_color54" value="BDS">BLACK</span>                                           ';
+				html += '						<span class="chip_color40" value="YBR">WHITE</span>                                           ';
+				html += '					</div>                                                                                            ';
+				html += '					 <p class="itemBadge">                                                                            ';
+				html += '						<span class="badge13">베스트 </span>                                                             ';
+				html += '					</p>                                                                                              ';
+				html += '					<div class="itemComment">★ [NEW] 20FW 빅웨이브 단독발매!</div>                                            ';
+				html += '				</a>                                                                                                  ';
+				html += '			</div>                                                                                                    ';
+				html += '		</div>	                                                                                                      ';
+			});
+			html += '	</div>  																										 ';
+			html += '</div>                                                                                                                ';
+		}
+	}else{
+		html += '<div class="nodata">';
+		html += '	<div class="txt_box">';
+		html += '		<p>';
+		html += '			등록된 위시리스트가 없습니다.<br>';
+		html += '		</p>';
+		html += '	</div>';
+		html += '</div> ';
+	}
+	
+	$("#wishList").append(html);
+}
+
+// 마이페이지 위시리스트 해제
+var wishlistDelete = function(obj) {
+	mcxDialog.confirm("위시리스트를 해제하시겠습니까?", {
+		cancelBtnText : "취소",
+		sureBtnText : "확인",
+		sureBtnClick : function() {
+			cfnPutWishList(obj);
+		}
+	});
+
+}
+
+$(document).ready(function() {
+
+	// 마이페이지 LNB 설정
+	fnSetMypageLnbList(9);
+
+	// 마이페이지 location 설정
+	fnSetMypageLocation('위시리스트', '_PAGE_MYPAGE_WISHLIST');
+	wishListForm();
+
+});
+</script>
+</th:block>
+
+</body>
+</html>

+ 42 - 0
src/main/webapp/ux/style24_link.js

@@ -886,3 +886,45 @@ var cfnGoToBrandMain = function(brandGroupNo) {
 }
 
 
+
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : 기확전상세로 이동
+ * <pre>
+ *        cfnGoToPlanDetail(251);
+ * </pre>
+ * @param  : planSq - 기획전 번호. 필수
+ * @since  : 2021/03/29
+ * @author : sowon
+ */
+var cfnGoToPlanDetail = function (planSq) {
+
+    cfnGoToPage(_PAGE_PLANNING_DETAIL + '?planSq=' + planSq);
+}
+
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : 마이페이지 리뷰메인화면
+ * <pre>
+ *        cfnGoToMypageReview();
+ * </pre>
+ * @param  : 
+ * @since  : 2021/03/29
+ * @author : sowon
+ */
+var cfnGoToMypageReview = function (ordNo,ordDtlNo,goodsCd) {
+
+	reviewStat = 'c';
+	
+	if(ordNo == null || ordDtlNo == null || goodsCd == null){
+		cfnGoToPage(_PAGE_MYPAGE_REVIEW);
+	}else{
+		cfnGoToPage(_PAGE_MYPAGE_CREATE_REVIEW + ordNo +'/'+ordDtlNo+'/'+goodsCd+'/'+reviewStat);
+	}
+
+    
+    
+}
+