Selaa lähdekoodia

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.front into develop

jsshin 5 vuotta sitten
vanhempi
commit
307e264400

+ 4 - 2
src/main/java/com/style24/front/biz/service/TsfSocialService.java

@@ -61,8 +61,10 @@ public class TsfSocialService {
 	public Social getSocialForGoods(Social social){
 		Social socialInfo = socialDao.getSocialInfo(social);
 
-		social.setSocialSq(socialInfo.getSocialSq());
-		socialInfo.setSocialGoodsList(socialDao.getSocialGoodsList(social));
+		if(socialInfo != null){
+			social.setSocialSq(socialInfo.getSocialSq());
+			socialInfo.setSocialGoodsList(socialDao.getSocialGoodsList(social));
+		}
 
 		return socialInfo;
 	}

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

@@ -25,6 +25,7 @@ import com.style24.front.biz.service.TsfCouponService;
 import com.style24.front.biz.service.TsfGoodsService;
 import com.style24.front.biz.service.TsfRendererService;
 import com.style24.front.biz.service.TsfReviewService;
+import com.style24.front.biz.service.TsfWishlistService;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.env.TsfConstants;
 import com.style24.front.support.security.session.TsfSession;
@@ -40,6 +41,7 @@ import com.style24.persistence.domain.Measurement;
 import com.style24.persistence.domain.ReinboundInform;
 import com.style24.persistence.domain.Review;
 import com.style24.persistence.domain.SizeInfo;
+import com.style24.persistence.domain.WishList;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -82,6 +84,9 @@ public class TsfGoodsController extends TsfBaseController {
 
 	@Autowired
 	private TsfRendererService rendererService;
+	
+	@Autowired
+	private TsfWishlistService wishListService;
 
 	@Value("${has-ssl}")
 	private String hasSsl;
@@ -1225,4 +1230,24 @@ public class TsfGoodsController extends TsfBaseController {
 		mav.setViewName(super.getDeviceViewName("goods/GoodsDetailReviewForm"));
 		return mav;
 	}
+	
+	/**
+	 * 퀵메뉴 위시리스트
+	 * @return
+	 * @author sowon
+	 * @since 2021. 4. 1
+	 */
+	@GetMapping("/wish/list")
+	@ResponseBody
+	public Collection<Goods> getWishList() {
+		Collection<Goods> wishList = new ArrayList<>();
+		WishList wish = new WishList();
+		wish.setSiteCd(TscConstants.Site.STYLE24.value());
+		wish.setFrontGb(TsfSession.getFrontGb());
+		wish.setCustGb(TsfSession.getCustGb());
+		wish.setQuickYn("Y");
+		// 위시리스트 상품목록
+		wishList = wishListService.getWishListGoodsList(wish);
+		return wishList;
+	}
 }

+ 18 - 12
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -49,6 +49,7 @@ import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.CustAccount;
 import com.style24.persistence.domain.Customer;
 import com.style24.persistence.domain.GiftCard;
+import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderChange;
 import com.style24.persistence.domain.Point;
@@ -955,7 +956,7 @@ public class TsfMypageController extends TsfBaseController {
 		mav.addObject("cpnDtlRefvalBrandList", coreCouponService.getCouponRefvalBrandList(cpnId));
 		// 쿠폰적용대상 - 제외상품 조회
 		mav.addObject("cpnDtlRefvalExceptGoodsList", coreCouponService.getCouponRefvalGoodsList(cpnId, "G260_14"));
-		mav.setViewName(super.getDeviceViewName("mypage/MypageCouponDetailPop"));
+		mav.setViewName(super.getDeviceViewName("mypage/MypageCouponDetailForm"));
 		return mav;
 	}
 	
@@ -1135,9 +1136,14 @@ public class TsfMypageController extends TsfBaseController {
 	@GetMapping("/wish/list/form")
 	public ModelAndView mypageWishListForm(WishList wishList) {
 		ModelAndView mav = new ModelAndView(super.getDeviceViewName("mypage/MypageWishListForm"));
+		wishList.setSiteCd(TscConstants.Site.STYLE24.value());
+		wishList.setFrontGb(TsfSession.getFrontGb());
+		wishList.setCustGb(TsfSession.getCustGb());
+		// 위시리스트 달
+		mav.addObject("wishMonth", wishListService.getWishListMonth(wishList));
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 상품목록 가져오기
 	 *
@@ -1146,19 +1152,19 @@ public class TsfMypageController extends TsfBaseController {
 	 * @since 2021. 03. 29
 	 */
 	@GetMapping("/wish/list")
-	public ModelAndView mypageWishGoodsList(WishList wishList) {
-		ModelAndView mav = new ModelAndView();
-		wishList.setSiteCd(TscConstants.Site.STYLE24.value());
-		wishList.setFrontGb(TsfSession.getFrontGb());
-		wishList.setCustGb(TsfSession.getCustGb());
-		// 위시리스트 달
-		mav.addObject("wishMonth", wishListService.getWishListMonth(wishList));
+	@ResponseBody
+	public Collection<Goods> getWishList() {
+		Collection<Goods> wishList = new ArrayList<>();
+		WishList wish = new WishList();
+		wish.setSiteCd(TscConstants.Site.STYLE24.value());
+		wish.setFrontGb(TsfSession.getFrontGb());
+		wish.setCustGb(TsfSession.getCustGb());
 		// 위시리스트 상품목록
-		mav.addObject("wishGoods", wishListService.getWishListGoodsList(wishList));
-		mav.setViewName(super.getDeviceViewName("mypage/MypageWishList"));
-		return mav;
+		wishList = wishListService.getWishListGoodsList(wish);
+		return wishList;
 	}
 
+
 	/*신주승 시작*/
 
 	/**

+ 34 - 18
src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -14,9 +14,11 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.style24.core.biz.service.TscCouponService;
 import com.style24.core.biz.service.TscCustomerService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.front.biz.service.TsfCouponService;
 import com.style24.front.biz.service.TsfPlanningService;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.security.session.TsfSession;
@@ -49,7 +51,12 @@ public class TsfPlanningController extends TsfBaseController {
 
 	@Autowired
 	private TscCustomerService coreCustomerService;
+	
+	@Autowired
+	private TsfCouponService couponService;
 
+	@Autowired
+	private TscCouponService coreCouponService;
 	/**
 	 * 기획전 메인 화면
 	 * @param cateNo - 카테고리번호
@@ -98,24 +105,6 @@ public class TsfPlanningController extends TsfBaseController {
 		return planningService.getPlanningMainList(plan);
 	}
 
-//	/**
-//	 * 기획전 접근확인
-//	 * 
-//	 * @return
-//	 * @author sowon
-//	 * @since 2021. 3. 22
-//	 */
-//	@PostMapping("/access")
-//	@ResponseBody
-//	public GagaMap PlanningAccessConfrim(@RequestBody Plan plan) throws Exception {
-//		GagaMap result = new GagaMap();
-//		// 접근 가능 고객 등급 확인
-//		planningService.accessCustGrade(plan);
-//		result.set("status", "200");
-//
-//		return result;
-//	}
-
 	/**
 	 * 기획전 상세화면
 	 *
@@ -222,6 +211,33 @@ public class TsfPlanningController extends TsfBaseController {
 		mav.setViewName(super.getDeviceViewName("planning/PlanningDetailForm"));
 		return mav;
 	}
+	
+	/**
+	 * 기획전 쿠폰 상세보기 모달
+	 *
+	 * @return
+	 * @author sowon	
+	 * @since 2021. 04. 01
+	 */
+	@GetMapping(value = "/coupon/detail")
+	public ModelAndView mypageCouponDetailPop(@RequestParam(value = "cpnId") int cpnId) {
+		ModelAndView mav = new ModelAndView();
+
+		// 쿠폰 - 기본정보
+		mav.addObject("couponDetailInfo", couponService.getCouponDetailInfo(cpnId));
+		// 쿠폰적용대상 - 공급업체 조회
+		mav.addObject("cpnDtlRefvalSupplyCompList", coreCouponService.getCouponRefvalSupplyCompList(cpnId));
+		// 쿠폰적용대상 - 적용상품 조회
+		mav.addObject("cpnDtlRefvalApplyGoodsList", coreCouponService.getCouponRefvalGoodsList(cpnId, "G260_10"));
+		// 쿠폰적용대상 - 카테고리 조회
+		mav.addObject("cpnDtlRefvalCateList", coreCouponService.getCouponRefvalCategoryList(cpnId));
+		// 쿠폰적용대상 - 브랜드 조회
+		mav.addObject("cpnDtlRefvalBrandList", coreCouponService.getCouponRefvalBrandList(cpnId));
+		// 쿠폰적용대상 - 제외상품 조회
+		mav.addObject("cpnDtlRefvalExceptGoodsList", coreCouponService.getCouponRefvalGoodsList(cpnId, "G260_14"));
+		mav.setViewName(super.getDeviceViewName("planning/PlanningCouponDetailForm"));
+		return mav;
+	}
 
 	/**
 	 * 기획전 쿠폰 다운로드. 고객이 상품쿠폰 다운로드 시 발급됨.

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

@@ -25,6 +25,7 @@ public class WishList extends TscBaseDomain {
 	private String siteCd;
 	private String frontGb;
 	private String custGb;
+	private String quickYn;
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] arrGoodsCd;
 

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

@@ -269,6 +269,7 @@
 		      AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT           /*판매기간 확인*/
 		      GROUP BY G.GOODS_CD , G.SELF_GOODS_YN , G.MIN_ORD_QTY, G.MAX_ORD_QTY, O.OPT_CD1
 		) A
+		ORDER BY GOODS_CD, OPT_CD1
 	</select>
 		
 	<!-- 상품 옵션2 목록  - 자사용-->

+ 11 - 4
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -428,7 +428,13 @@
 	
 	<select id="templateDispOrdInfo" parameterType="Plan" resultType="Plan">
 		/* TsfPlanning.templateDispOrdInfo*/
-		SELECT TMPL_TYPE , DISP_ORD, PLAN_CONT_SQ,TITLE ,LINK_URL ,DISP_YN 
+		SELECT TMPL_TYPE 
+		     , DISP_ORD
+		     , PLAN_CONT_SQ
+		     ,TITLE 
+		     ,LINK_URL
+		     ,NOTE 
+		     ,DISP_YN 
 		FROM TB_PLAN_CONTENTS TPC 
 		WHERE 1=1 
 			AND TPC.PLAN_SQ = #{planSq}
@@ -437,7 +443,7 @@
 	</select>
 	
 	<select id="getPlanReviewInfo" parameterType="Review" resultType="Review">
-		/* TsfPlanning.templateDispOrdInfo*/
+		/* TsfPlanning.getPlanReviewInfo*/
 		SELECT F2.*
 		FROM 
 		(
@@ -588,7 +594,7 @@
 	</select>
 	
 	<select id="getPlanCouponInfo" parameterType="Coupon" resultType="Coupon">
-		/* TsfPlanning.templateDispOrdInfo*/
+		/* TsfPlanning.getPlanCouponInfo*/
 		SELECT F.*
 		<if test="planSq != null and planSq != ''">
 		      ,(CASE F.CPN_ID WHEN (SELECT CPN_ID FROM TB_CUST_COUPON C WHERE C.CPN_ID = F.CPN_ID AND CUST_NO = #{custNo})THEN '받기완료'
@@ -600,7 +606,8 @@
 				  , PC.PLAN_SQ 
 				  , PC.TMPL_TYPE 
 				  , PC.TITLE 
-				  , PC.LINK_URL 
+				  , PC.LINK_URL
+				  , PC.NOTE 
 				  , PCI.ITEM_VAL
 				  , PCI.DISP_ORD
 				  , TC.CPN_ID

+ 7 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsfWishlist.xml

@@ -22,6 +22,7 @@
 		FROM TB_WISHLIST W
 		WHERE CUST_NO = #{custNo}
 		GROUP BY DATE_FORMAT(W.REG_DT,'%Y-%m') 
+		ORDER BY REG_DT DESC
 	</select>
 	
 	<!-- 위시리스트 상품목록 (임시 = 수정예정)-->
@@ -35,7 +36,7 @@
 			    SELECT W.AF_LINK_CD 
 			          ,W.CONTENTS_LOC 
 			          ,W.CUST_NO 
-			          ,W.REG_DT 
+			          ,DATE_FORMAT(W.REG_DT,'%Y.%m') AS REG_DT 
 			          ,CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
 			                    BG.BRAND_GROUP_ENM
 			                ELSE
@@ -51,6 +52,7 @@
 			         , G.MAIN_COLOR_CD                                          /*대표색상코드*/
 			         , G.LIST_PRICE                                             /*정상가(최초판매가)*/
 			         , G.CURR_PRICE                                             /*현재판매가*/
+			         , GS.STOCK_QTY
 			    FROM   TB_WISHlIST W
 			         , TB_GOODS G
 			         , TB_GOODS_STOCK GS
@@ -62,7 +64,6 @@
 			    AND    B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
 			    AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
 			    AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
-			    AND    GS.STOCK_QTY  >  0 /*재고있는상품*/
 			    AND    B.USE_YN = 'Y'
 			    AND    BG.USE_YN = 'Y'
 			    AND    W.CUST_NO = #{custNo}
@@ -82,6 +83,7 @@
 			SELECT 
 			       PG.BRAND_GROUP_NM
 			     , PG.GOODS_CD
+			     , PG.STOCK_QTY
 			     , 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
@@ -98,6 +100,9 @@
 			INNER JOIN TAB_GOODS_IMG GI ON PG.GOODS_CD = GI.GOODS_CD
 			)Z
 		ORDER BY Z.REG_DT DESC
+		<if test="quickYn != null and quickYn != ''">
+			,Z.STOCK_QTY
+		</if>
 	</select>
 	
 

+ 82 - 74
src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html

@@ -160,19 +160,19 @@
 				</button>
 			</li>
 			<li>
-				<button type="button" id="" class="quick_btn02" data-tab="quick02">
+				<button type="button" id="quick02" class="quick_btn02" data-tab="quick02">
 					<img src="/images/pc/ico_qk_cart.png" alt="쇼핑백"/>
-					<span class="count">2</span>
+					<span class="count"></span>
 				</button>
 			</li>
 			<li>
-				<button type="button" id="" class="quick_btn03" data-tab="quick03">
+				<button type="button" id="quick03" class="quick_btn03" data-tab="quick03">
 					<img src="/images/pc/ico_qk_like.png" alt="위시리스트"/>
 					<span class="count">100</span>
 				</button>
 			</li>
 			<li>
-				<button type="button" id="" class="quick_btn04" data-tab="quick04">
+				<button type="button" id="quick04" class="quick_btn04" data-tab="quick04">
 					<img src="/images/pc/ico_qk_coupon.png" alt="쿠폰"/>
 					<span class="count">100</span>
 				</button>
@@ -443,10 +443,10 @@
 			</div>
 			<div class="wishlist quick_con quick03"> <!-- 퀵메뉴_위시리스트 -->
 				<div class="quick_head"> 
-					<h3><a href="">위시리스트</a></h3>
+					<h3><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_WISHLIST);">위시리스트</a></h3>
 				</div>
-				<div class="quick_body"> <!-- 최근 본 상품 없을 시 nodata 클래스 추가 --> <!-- 비로그인 시 need_login 클래스 추가 -->
-					<div class="product_count"><span class='c_primary'>50</span>개의 상품</div>
+				<div class="quick_body" id="quickMenuWishList"> <!-- 최근 본 상품 없을 시 nodata 클래스 추가 --> <!-- 비로그인 시 need_login 클래스 추가 -->
+					<div class="product_count"><span class='c_primary' id="quickMenuWishListCount">50</span>개의 상품</div>
 					<div class="itemsGrp">
 						<div class="item_prod">
 							<div class="item_state">
@@ -461,73 +461,7 @@
 									<button type="button" class="btn btn_sm cart_btn on"><span>쇼핑백 담기</span></button>
 								</div>
 							</div>
-						</div>
-						<div class="item_prod">
-							<div class="item_state">
-								<div class="shape"><span>곧 품절돼요!</span></div>
-								<a href="#none" class=" itemLink">
-									<div class="itemPic">
-										<img class="vLHTC pd_img" src="/images/pc/thumb/prod2.jpg" alt="이미지설명"/>
-										<button type="button" class="itemLike active">관심상품 추가</button>
-									</div>
-								</a>
-								<div class="hover_con">
-									<button type="button" class="btn btn_sm cart_btn on"><span>쇼핑백 담기</span></button>
-								</div>
-							</div>
-						</div>
-						<div class="item_prod">
-							<div class="item_state">
-								<a href="#none" class=" itemLink">
-									<div class="itemPic">
-										<img class="vLHTC pd_img" src="/images/pc/thumb/prod1.jpg" alt="이미지설명"/>
-										<button type="button" class="itemLike active">관심상품 추가</button>
-									</div>
-								</a>
-								<div class="hover_con">
-									<button type="button" class="btn btn_sm cart_btn on"><span>쇼핑백 담기</span></button>
-								</div>
-							</div>
-						</div>
-						<div class="item_prod">
-							<div class="item_state">
-								<a href="#none" class=" itemLink">
-									<div class="itemPic">
-										<img class="vLHTC pd_img" src="/images/pc/thumb/prod2.jpg" alt="이미지설명"/>
-										<button type="button" class="itemLike active">관심상품 추가</button>
-									</div>
-								</a>
-								<div class="hover_con">
-									<button type="button" class="btn btn_sm cart_btn on"><span>쇼핑백 담기</span></button>
-								</div>
-							</div>
-						</div>
-						<div class="item_prod">
-							<div class="item_state">
-								<a href="#none" class=" itemLink">
-									<div class="itemPic">
-										<img class="vLHTC pd_img" src="/images/pc/thumb/prod2.jpg" alt="이미지설명"/>
-										<button type="button" class="itemLike active">관심상품 추가</button>
-									</div>
-								</a>
-								<div class="hover_con">
-									<button type="button" class="btn btn_sm cart_btn on"><span>쇼핑백 담기</span></button>
-								</div>
-							</div>
-						</div>
-						<div class="item_prod">
-							<div class="item_state">
-								<a href="#none" class=" itemLink">
-									<div class="itemPic">
-										<img class="vLHTC pd_img" src="/images/pc/thumb/prod1.jpg" alt="이미지설명"/>
-										<button type="button" class="itemLike active">관심상품 추가</button>
-									</div>
-								</a>
-								<div class="hover_con">
-									<button type="button" class="btn btn_sm cart_btn on"><span>쇼핑백 담기</span></button>
-								</div>
-							</div>
-						</div>
+						</div>	
 						<div class="item_prod">
 							<div class="item_state">
 								<a href="#none" class=" itemLink">
@@ -985,6 +919,77 @@
 // 	});
 	}
 	
+	// 위시리스트
+	let fnGetWishList = function() {
+		if (!cfCheckLogin()) {
+			$('#quickMenuWishList').addClass('need_login');
+			$('#quickMenuWishList').html('');
+			tag='<div class="login_con">';
+			tag+='<div>';
+			tag+='		<p>로그인 후 이용 가능한 서비스입니다.</p>';
+			tag+='		<button type="button" class="btn btn_sm" onclick="cfnGoToPage(_PAGE_LOGIN)"><span>로그인</span></button>';
+			tag+='	</div>';
+			tag+='</div>';
+			
+			$('#quickMenuWishList').html(tag);
+			return false;
+		}
+		
+		$.getJSON('/goods/wish/list'
+				, function(result, status) {
+					if (status == 'success') {
+						$('#quickMenuWishList').html('');
+						$('#quick03').find('span').html(result.length);
+						$('#quickMenuWishListCount').html(result.length);
+						
+						if (result.length > 0) {
+							let tag = '<div class="product_count"><span class="c_primary" id="quickMenuWishListCount">'+result.length+'</span>개의 상품</div>\n';
+							tag += '	<div class="itemsGrp">\n';
+							
+							$.each(result, function (idx, item) {
+								tag += '	<div class="item_prod">';	
+								tag += '		<div class="item_state">';	
+								if (item.stockQty>0 && item.stockQty<=5) {
+									tag += '			<div class="shape"><span>곧 품절돼요!</span></div>';
+								}
+								if (item.stockQty<=0) {
+									tag += '			<div class="shape"><span>품절</span></div>';
+								}
+								tag += '			<button type="button" class="itemLike active" goodsCd="'+item.goodsCd+'" onclick="fnWishDelete(this);">관심상품 추가</button>';
+								tag += '			<a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\', \'\', \'\', \'\');" class=" itemLink">';	
+								tag += '				<div class="itemPic">';		
+								tag += '					<img class="vLHTC pd_img" src="' + _uploadGoodsUrl + '/' + item.sysImgNm + '" alt="이미지설명"/>';		
+								tag += '				</div>';	
+								tag += '			</a>';	
+								tag += '			<div class="hover_con">';
+								if (item.stockQty>0) {
+									tag += '				<button type="button" class="btn btn_sm cart_btn on"><span>쇼핑백 담기</span></button>';
+								}
+								tag += '			</div>';	    
+								tag += '		</div>';	    
+								tag += '	</div>	';		
+								tag += '	<div class="no_item">';	    
+								tag += '		최근 본 상품이 없습니다.';	    
+								tag += '	</div>';	    
+								
+							});
+							
+							tag += '	</div>\n';
+							
+							$('#quickMenuWishList').html(tag);
+						} else {
+							$('#quickMenuWishList').addClass('nodata');
+						}
+					}
+			});
+	}
+	
+	// 위시리스트 해제
+	let fnWishDelete = function(obj) {
+		cfnPutWishList(obj);
+		fnGetWishList();
+	}
+	
 	// 팝업
 	let fnGetPopup = function(){
 		let data = {viewPage : [[${viewPage}]]
@@ -1097,6 +1102,9 @@
 		// 최근본상품 조회
 		fnGetRecentlyGoods();
 		
+		// 위시리스트
+		fnGetWishList();
+		
 		// 팝업조회
 		fnGetPopup();
 		

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

@@ -171,7 +171,7 @@
 
 				<!-- 6. 타임딜 : 슬라이드 -->
 				<th:block th:if="${contentsLoc=='006'}">
-					<div class="content wide main_deal">
+					<div class="content wide main_deal" th:if="${mainLayoutData.socialInfo != null}">
 						<div class="cont_head">
 							<p class="displayH" th:text="${mainLayoutData.contentsTitle}">오늘만<br>이 가격에 만나요</p>
 							<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_SOCIAL_MAIN);"><span>전체보기</span></a>

+ 0 - 0
src/main/webapp/WEB-INF/views/web/mypage/MypageCouponDetailPopWeb.html → src/main/webapp/WEB-INF/views/web/mypage/MypageCouponDetailFormWeb.html


+ 55 - 9
src/main/webapp/WEB-INF/views/web/mypage/MypageWishListFormWeb.html

@@ -54,6 +54,8 @@
 
 
 <script th:inline="javascript">
+let month = [[${wishMonth}]];
+
 // 마이페이지 위시리스트 해제
 var wishlistDelete = function(obj) {
 	mcxDialog.confirm("위시리스트를 해제하시겠습니까?", {
@@ -68,16 +70,60 @@ var wishlistDelete = function(obj) {
 
 // 마이페이지 위시리스트 
 var ajaxWishList = function () {
-	 $.ajax({
-			type		: "GET",
-			url 		: '/mypage/wish/list',
-			dataType 	: 'html',
-			success 	: function(result) {
-				if (result != null) {
-					$("#wishList").html(result);
-				}
+	 $.getJSON('/mypage/wish/list', function(result, status) {
+		if (status == 'success') {
+			$('#wishList').html('');
+			html = '';
+			for (var i = 0; i < month.length; i++) {
+				html+='<div class="monthly_wish_wrap">';
+				html+='	<div class="date">';
+				html+='		<span>'+month[i].regDt+'</span>';
+				html+='	</div>';
+				html+='	<div class="itemsGrp">';
+				
+				$.each(result, function (idx, item) {
+					if (item.regDt == month[i].regDt) {
+						html+='		<div class="item_prod">';
+						html+='			<div class="item_state">';
+						html+='				<button type="button" class="itemLike active" goodsCd="'+item.goodsCd+'" onclick="wishlistDelete(this)">관심상품 추가</button>';
+						html+='				<a href="javascript:void(0);" class="itemLink" onclick="cfnGoToGoodsDetail('+item.goodsCd+')">';
+						html+='					<div class="itemPic">';
+						html+='						<img alt="" class=" vLHTC pd_img" src="' + _uploadGoodsUrl + '/' + item.sysImgNm + '">';
+						html+='					</div>';
+						html+='					<p class=" itemBrand">'+item.brandGroupNm+'</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>';
+						if (item.goodsTnm != null && item.goodsTnm != '') {
+							html+='					<div class="itemComment">'+item.goodsTnm+'</div>';
+						}
+						html+='				</a>';
+						html+='			</div>';
+						html+='		</div>';
+					}
+					
+				});
+				html+='	</div>';
+				html+='</div>';
+				$('#wishList').html(html);
 			}
-		});		
+		}
+	});
 }
 
 $(document).ready(function() {

+ 0 - 57
src/main/webapp/WEB-INF/views/web/mypage/MypageWishListWeb.html

@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<html lang="ko"
-	xmlns:th="http://www.thymeleaf.org"
-	style="overflow-x: hidden !important;"
->
-<!--
- *******************************************************************************
- * @source  : CouponDetailPopWeb.html
- * @desc    : 쿠폰적용대상 리스트 Page
- *============================================================================
- * PastelMall
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.03.17   sowon     최초 작성
- *******************************************************************************
- -->
-<!-- 월별 관심상품 -->
-<th:block th:if="${wishMonth != null}" th:each="WishMonth, wishStat : ${wishMonth}">
-<div class="monthly_wish_wrap" th:with="frontUrl=${@environment.getProperty('domain.front')}, goodsView=${@environment.getProperty('upload.goods.view')}">
-	<div class="date">
-		<span th:text="${WishMonth.regDt}"></span>
-	</div>
-	<div class="itemsGrp">
-	   <th:block th:each="WishGoods, wishStat : ${wishGoods}">
-		<div class="item_prod">
-			<div class="item_state">
-				<button type="button" class="itemLike active" th:attr="goodsCd=${WishGoods.goodsCd}, ithrCd='', contentsLoc='', planDtlSq=''" onclick="wishlistDelete(this)">관심상품 추가</button>
-				<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${WishGoods.goodsCd}]])">
-					<div class="itemPic">
-						<img alt="" class=" vLHTC pd_img" th:src="${goodsView + '/' +WishGoods.sysImgNm}">
-					</div>
-					<p class=" itemBrand" th:text="${WishGoods.brandGroupNm}"></p>
-					<div class=" itemName" th:text="${WishGoods.goodsNm}"></div>
-					<p class="itemPrice">[[${#numbers.formatInteger(WishGoods.currPrice,3,'POINT') + '원'}]]
-						<span class="itemPrice_original"  th:if="${WishGoods.currPrice != WishGoods.listPrice}" th:text="${#numbers.formatInteger(WishGoods.listPrice,3,'POINT') + '원'}"></span>
-						<span class=" itemPercent" th:if="${WishGoods.dcRate > 0}" th:text="|${#numbers.formatDecimal(WishGoods.dcRate,0,0)}%|"></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" th:text="${WishGoods.goodsTnm}"></div>
-				</a>
-			</div>
-		</div>
-		</th:block>	
-	</div>
-</div>
-</th:block>
-<!-- //월별 관심상품 -->
-				

+ 82 - 0
src/main/webapp/WEB-INF/views/web/planning/PlanningCouponDetailFormWeb.html

@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : PlanningCouponDetailFormWeb.html
+ * @desc	: 기획전 쿠폰 사용안내 모달
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE		 AUTHOR	  DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.01   sowon		최초 작성
+ *******************************************************************************
+ -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-body">
+			<div class="modal-header">
+				<h5 class="modal-title" id="couponInfoLabel" th:text="${couponDetailInfo.cpnNm}"></h5>
+			</div>
+			<div class="modal-body">
+				<div class="pop_cont">
+					<dl>
+						<div>
+							<dt>사용조건</dt>
+							<dd th:if="${couponDetailInfo.buyLimitAmt < 1}">
+								<span>제한없음</span>
+							</dd>
+							<dd th:unless="${couponDetailInfo.buyLimitAmt < 1}"> 
+								<span th:text="${#numbers.formatInteger(couponDetailInfo.buyLimitAmt,0,'COMMA')}"></span>원 이상 구매 시 최대 <span th:text="${#numbers.formatInteger(couponDetailInfo.maxDcAmt,0,'COMMA')}"></span>원 할인
+							</dd>
+						</div>
+						<div>
+							<dt>발급수량</dt>
+							<dd th:if="${couponDetailInfo.custPubLimitQty < 1}">
+								<span>제한없음</span>
+							</dd>
+							<dd th:unless="${couponDetailInfo.custPubLimitQty < 1}">
+								1인 최대<span th:text="${#numbers.formatInteger(couponDetailInfo.custPubLimitQty,0,'COMMA')}"></span>매
+							</dd>
+						</div>
+						<div>
+							<dt>유효기간</dt>
+							<dd>
+								<span th:text="${couponDetailInfo.availStdt}"></span>&nbsp;~&nbsp;<span  th:text="${couponDetailInfo.availEddt}"></span>
+							</dd>
+						</div>
+						<div>
+							<dt>브랜드</dt>
+							<th:block th:each="BrandData, BrandStat : ${cpnDtlRefvalBrandList}">
+                				<dd th:text="${BrandData.brandEnm == ''? '제한없음' :BrandData.brandEnm}"></dd>
+               				</th:block>
+						</div>
+						<div>
+							<dt>카테고리</dt>
+							<th:block th:each="CateData, CateStat : ${cpnDtlRefvalCateList}">
+                				<dd th:text="${CateData.cateNm} + ' '"></dd>
+               				</th:block>
+						</div>
+						<div>
+							<dt>젹용상품</dt>
+							<th:block th:each="GoodsData, GoodsStat : ${cpnDtlRefvalApplyGoodsList}">
+                				<dd th:text="${GoodsData.goodsNm} + ' '"></dd>
+               				</th:block>
+						</div>
+						<div>
+							<dt>제외상품</dt>
+							<th:block th:each="ExceptData, ExceptStat : ${cpnDtlRefvalExceptGoodsList}">
+                				<dd th:text="${ExceptData.goodsNm} + ' '"></dd>
+               				</th:block>
+						</div>
+					</dl>
+				</div>
+			</div>
+		</div>
+		<div class="modal-footer">
+			<p>본 쿠폰은 특정 상품&#47;행사에 적용되는 쿠폰이며,적용가능여부는 상품별 상이할 수 있습니다.</p>
+			<p>본 이벤트는 당사 사정에 따라 사전고지 없이 변경 또는 조기종료 될 수 있습니다.</p>
+		</div>
+	</div>
+</div>

+ 10 - 8
src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html

@@ -186,8 +186,9 @@
             </div>
             <!-- //다른 기획전 보기 -->
         </div>
-    </div>   
-<div class="modal fade couponInfo_pop" id="couponInfoPop" tabindex="-1" role="dialog" aria-labelledby="couponInfoLabel" aria-hidden="true"></div>
+<div class="modal fade couponInfo_pop" id="couponInfoPop" tabindex="-1" role="dialog" aria-labelledby="couponInfoLabel" aria-hidden="true">
+
+</div>
 <script th:inline="javascript">
 let review = [[${reviewInfo}]];
 let coupon = [[${couponInfo}]];
@@ -301,7 +302,7 @@ if(goods1 != null || goods1 != ''){
 			html += '<div class="cont_head">';
 			html += '	<div>';
 			html += '        <h4>';
-			if (template[i].linkUrl != null || template[i].linkUrl != '') { /* 링크 변경 예정 */
+			if (template[i].linkUrl != null && template[i].linkUrl != '') { /* 링크 변경 예정 */
 				html += '        <a href="http://'+template[i].linkUrl+'" target="_blank">'+template[i].title+'</a>';
 			}else{
 				html += '        <a href="javascript:void(0)">'+template[i].title+'</a>';
@@ -366,7 +367,7 @@ if(goods2 != null || goods2 != ''){
 			html += '<div class="cont_head">';
 			html += '	<div>';
 			html += '        <h4>';
-				if (template[i].linkUrl != null || template[i].linkUrl != ' ' ||typeof template[i].linkUrl != 'undefined') { /* 링크 변경 예정 */
+				if (template[i].linkUrl != null && template[i].linkUrl != '') { /* 링크 변경 예정 */
 					html+='            <a href="http://'+template[i].linkUrl+'" target="_blank">'+template[i].title+'</a>';
 				}else{
 					html+='            <a href="javascript:void(0)">'+template[i].title+'</a>';
@@ -434,7 +435,7 @@ if(goods4 != null || goods4 != ''){
 			html += '<div class="cont_head">';
 			html += '<div>';
 			html += '        <h4>';
-			if (template[i].linkUrl != null || template[i].linkUrl != ' ' ||typeof template[i].linkUrl != 'undefined') { /* 링크 변경 예정 */
+			if (template[i].linkUrl != null && template[i].linkUrl != '') { /* 링크 변경 예정 */
 				html+='            <a href="http://'+template[i].linkUrl+'" target="_blank">'+template[i].title+'</a>';
 			}else{
 				html+='            <a href="javascript:void(0)">'+template[i].title+'</a>';
@@ -550,11 +551,12 @@ if(coupon != null || coupon != ''){
 	html += '			<p>유의사항</p>';
 	html += '		</div>';
 	html += '		<div class="announce_list">';
-	html += '			<ul>';
+	html += coupon[0].note;
+/* 	html += '			<ul>';
 	html += '				<li>쿠폰 발급 기간 :'+ plan.dispStdt +'~'+ plan.dispEddt +'</li>';
 	html += '				<li>본 쿠폰은 해당 기획전 상품에만 적용 가능합니다.</li>';
 	html += '				<li>본 쿠폰은 해당 기획전 다운로드 버튼을 통해 발급받으실 수 있습니다.</li>';
-	html += '			</ul>';
+	html += '			</ul>'; */
 	html += '		</div>';
 	html += '	</div>';
 	html += '</div>';
@@ -567,7 +569,7 @@ if(coupon != null || coupon != ''){
 var useInfoCoupon = function (id) {
 	 $.ajax( {
 		type		: "GET",
-		url 		: '/mypage/coupon/detailPop?cpnId='+ id,
+		url 		: '/planning/coupon/detail?cpnId='+ id,
 		dataType 	: 'html',
 		success 	: function(result) {
 			if (result != null) {

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

@@ -10,6 +10,7 @@ const _PAGE_ALL_BRAND = _frontUrl + "/display/all/brand/form";			// 전체 브
 const _PAGE_CATE_MAIN = _frontUrl + "/display/category/main/form";		// 카테고리메인
 const _PAGE_ITEMKIND_MAIN = _frontUrl + "/display/itemkind/main/form";	// 품목메인
 const _PAGE_BRAND_MAIN = _frontUrl + "/display/brand/main/form";		// 브랜드메인
+const _PAGE_CATE_GOODS_LIST = _frontUrl + "/display/category/goods/list/form";	// 카테고리 상품목록
 
 //== 고객 ==/
 const _PAGE_CUSTOMER_JOIN_TYPE = _frontUrl + "/customer/join/type/form";							// 고객 > 회원가입 유형