Просмотр исходного кода

Merge branch 'develop' into jsshin

jsshin 5 лет назад
Родитель
Сommit
274c198ef4
27 измененных файлов с 637 добавлено и 137 удалено
  1. 20 12
      src/main/java/com/style24/front/biz/dao/TsfCouponDao.java
  2. 38 29
      src/main/java/com/style24/front/biz/service/TsfCouponService.java
  3. 9 0
      src/main/java/com/style24/front/biz/service/TsfDisplayService.java
  4. 22 3
      src/main/java/com/style24/front/biz/service/TsfGoodsService.java
  5. 5 0
      src/main/java/com/style24/front/biz/service/TsfPlanningService.java
  6. 3 3
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  7. 20 17
      src/main/java/com/style24/front/biz/web/TsfGoodsController.java
  8. 5 0
      src/main/java/com/style24/front/biz/web/TsfPlanningController.java
  9. 187 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfCoupon.xml
  10. 28 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  11. 146 0
      src/main/webapp/WEB-INF/views/mob/display/AllBrandFormMob.html
  12. 1 1
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCouponFormMob.html
  13. 15 1
      src/main/webapp/WEB-INF/views/mob/mypage/MypagePointFormMob.html
  14. 5 0
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewFormMob.html
  15. 1 1
      src/main/webapp/WEB-INF/views/mob/mypage/MypageWishListFormMob.html
  16. 30 50
      src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html
  17. 11 0
      src/main/webapp/WEB-INF/views/web/display/CategoryMainFormWeb.html
  18. 5 1
      src/main/webapp/WEB-INF/views/web/error/InaccessWeb.html
  19. 4 2
      src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html
  20. 45 6
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  21. 7 4
      src/main/webapp/WEB-INF/views/web/goods/GoodsShopBenefitFormWeb.html
  22. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html
  23. 12 1
      src/main/webapp/ux/pc/css/common.css
  24. 10 1
      src/main/webapp/ux/pc/css/layout.css
  25. 2 2
      src/main/webapp/ux/pc/css/main.css
  26. 5 0
      src/main/webapp/ux/pc/js/common-ui.js
  27. 0 0
      src/main/webapp/ux/pc/js/jquery.modal.min.js

+ 20 - 12
src/main/java/com/style24/front/biz/dao/TsfCouponDao.java

@@ -58,7 +58,7 @@ public interface TsfCouponDao {
 	 * @since 2021. 03. 03
 	 */
 	Coupon getJoinCoupon(Coupon coupon);
-	
+
 	/**
 	 * 상품 쿠폰 조회
 	 * 
@@ -68,7 +68,17 @@ public interface TsfCouponDao {
 	 * @since 2021.03.11
 	 */
 	Collection<Coupon> getGoodsCouponList(Goods goods);
-	
+
+	/**
+	 * 상품 즉시할인 쿠폰 조회
+	 * 
+	 * @param goods
+	 * @return Collection<Coupon>
+	 * @author eskim
+	 * @since 2021.05.01
+	 */
+	Collection<Coupon> getGoodsCoupon1List(Goods goods);
+
 	/**
 	 * 상품 쿠폰 조회
 	 * 
@@ -78,7 +88,7 @@ public interface TsfCouponDao {
 	 * @since 2021.04.15
 	 */
 	Collection<Coupon> getGoodsEpCouponList(Goods goods);
-	
+
 	/**
 	 * 마이페이지 쿠폰 조회
 	 * 
@@ -88,7 +98,7 @@ public interface TsfCouponDao {
 	 * @since 2021.03.16
 	 */
 	Collection<Coupon> getMypageCouponList(Coupon coupon);
-	
+
 	/**
 	 * 마이페이지 (사용가능,만료예정)쿠폰 수 조회
 	 * @param coupon - 쿠폰정보
@@ -97,7 +107,7 @@ public interface TsfCouponDao {
 	 * @since 2021. 03. 16
 	 */
 	Coupon getMypageCouponInfo(Coupon coupon);
-	
+
 	/**
 	 * 마이페이지 쿠폰 디테일 정보
 	 * @param coupon - 쿠폰정보
@@ -106,7 +116,7 @@ public interface TsfCouponDao {
 	 * @since 2021. 03. 17
 	 */
 	Coupon getCouponDetailInfo(Coupon coupon);
-	
+
 	/**
 	 * 마이페이지 등급쿠폰 다운가능 쿠폰 정보 조회
 	 * 
@@ -136,8 +146,7 @@ public interface TsfCouponDao {
 	 * @since 2021.04.08
 	 */
 	Coupon getCustGradePolicyCoupon(Coupon coupon);
-	
-	
+
 	/**
 	 * 기획전 쿠폰 디테일 정보
 	 * @param coupon - 쿠폰정보
@@ -146,7 +155,7 @@ public interface TsfCouponDao {
 	 * @since 2021. 03. 17
 	 */
 	Coupon getPlanCouponDetailInfo(Coupon coupon);
-	
+
 	/**
 	 * 출석체크 쿠폰  정보
 	 * @param coupon - 쿠폰정보
@@ -155,7 +164,7 @@ public interface TsfCouponDao {
 	 * @since 2021. 04. 15
 	 */
 	CustCoupon getAttendCouponInfo(CustCoupon coupon);
-	
+
 	/**
 	 * 퀵메뉴 다운가능 쿠폰 리스트
 	 * 
@@ -165,6 +174,5 @@ public interface TsfCouponDao {
 	 * @since 2021.04.23
 	 */
 	Collection<Coupon> getQuickCouponDownList(Coupon coupon);
-	
-	
+
 }

+ 38 - 29
src/main/java/com/style24/front/biz/service/TsfCouponService.java

@@ -130,24 +130,24 @@ public class TsfCouponService {
 		cpn.setApplyScope(cpnInfo.getApplyScope());
 
 		// 쿠폰 적용 대상조건명 및 조건별 수량 조회
-		if(TscConstants.ApplyScope.INDIVIDUAL.value().equals(cpn.getApplyScope())) {
+		if (TscConstants.ApplyScope.INDIVIDUAL.value().equals(cpn.getApplyScope())) {
 			Collection<Coupon> cpnRefInfo = couponDao.getCpnRefName(cpn);
 
-			for(Coupon ref : cpnRefInfo) {
-				if(TscConstants.CpnTarget.GOODS.value().equals(ref.getCpnTarget())) {
+			for (Coupon ref : cpnRefInfo) {
+				if (TscConstants.CpnTarget.GOODS.value().equals(ref.getCpnTarget())) {
 					cpn.setRefGoodsNm(ref.getRefVal());
 					cpn.setRefGoodsCnt(ref.getCnt());
-				} else if(TscConstants.CpnTarget.BRAND.value().equals(ref.getCpnTarget())) {
-					if(ref.getCnt() > 1) {
+				} else if (TscConstants.CpnTarget.BRAND.value().equals(ref.getCpnTarget())) {
+					if (ref.getCnt() > 1) {
 						cpn.setRefBrandNm(ref.getRefVal() + " / " + ref.getSecondRefVal());
 					} else {
 						cpn.setRefBrandNm(ref.getRefVal());
 					}
 					cpn.setRefBrandCnt(ref.getCnt());
-				} else if(TscConstants.CpnTarget.COMP.value().equals(ref.getCpnTarget())) {
+				} else if (TscConstants.CpnTarget.COMP.value().equals(ref.getCpnTarget())) {
 					cpn.setRefSupplyCompNm(ref.getRefVal());
 					cpn.setRefSupplyCompCnt(ref.getCnt());
-				} else if(TscConstants.CpnTarget.CATE.value().equals(ref.getCpnTarget())) {
+				} else if (TscConstants.CpnTarget.CATE.value().equals(ref.getCpnTarget())) {
 					cpn.setRefCateNm(ref.getRefVal());
 					cpn.setRefCateCnt(ref.getCnt());
 				}
@@ -329,7 +329,18 @@ public class TsfCouponService {
 	public Collection<Coupon> getGoodsCouponList(Goods goods) {
 		return couponDao.getGoodsCouponList(goods);
 	}
-	
+
+	/**
+	 * 상품 즉시할인 쿠폰 조회
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @since 2021.05.01
+	 */
+	public Collection<Coupon> getGoodsCoupon1List(Goods goods) {
+		return couponDao.getGoodsCoupon1List(goods);
+	}
+
 	/**
 	 * ep 쿠폰 조회
 	 * @param goods
@@ -436,7 +447,7 @@ public class TsfCouponService {
 
 		return result;
 	}
-	
+
 	/**
 	 * 마이페이지 쿠폰 조회
 	 * @param coupon
@@ -450,7 +461,7 @@ public class TsfCouponService {
 		coupon.setSiteCd(TscConstants.Site.STYLE24.value());
 		return couponDao.getMypageCouponList(coupon);
 	}
-	
+
 	/**
 	 * 마이페이지 (사용가능,만료예정)쿠폰 수 조회
 	 * @param param
@@ -464,7 +475,7 @@ public class TsfCouponService {
 		param.setSiteCd(TscConstants.Site.STYLE24.value());
 		return couponDao.getMypageCouponInfo(param);
 	}
-	
+
 	/**
 	 * 마이페이지 쿠폰 디테일 정보
 	 * @param cpnId
@@ -478,8 +489,7 @@ public class TsfCouponService {
 		coupon.setSiteCd(TscConstants.Site.STYLE24.value());
 		return couponDao.getCouponDetailInfo(coupon);
 	}
-	
-	
+
 	/**
 	 * 기획전 쿠폰 다운 처리
 	 *
@@ -497,7 +507,7 @@ public class TsfCouponService {
 		for (Coupon tmpCoupon : couponList) {
 			//int downloadCnt = tmpCoupon.getDownloadCnt();
 			for (int i = 0; i < couponList.size(); i++) {
-				if(couponList.iterator().next().getOwnCoupon()==0) {
+				if (couponList.iterator().next().getOwnCoupon() == 0) {
 					CustCoupon custCoupon = new CustCoupon();
 					custCoupon.setCustNo(tmpCoupon.getCustNo());
 					custCoupon.setCpnId(tmpCoupon.getCpnId());
@@ -610,7 +620,7 @@ public class TsfCouponService {
 		}
 		return resultCnt;
 	}
-	
+
 	/**
 	 * 기획전 쿠폰 디테일 정보
 	 * @param cpnId
@@ -623,9 +633,9 @@ public class TsfCouponService {
 		coupon.setSiteCd(TscConstants.Site.STYLE24.value());
 		return couponDao.getPlanCouponDetailInfo(coupon);
 	}
-	
-	/**
 
+	/**
+	
 	 * EP 쿠폰 다운 처리
 	 *
 	 * @param coupon
@@ -708,19 +718,18 @@ public class TsfCouponService {
 		return result;
 	}
 
-	 /* 출석체크 쿠폰  정보
-	 * @param coupon - 쿠폰정보
-	 * @return Coupon
-	 * @author sowon
-	 * @since 2021. 04. 15
-	 */
+	/* 출석체크 쿠폰  정보
+	* @param coupon - 쿠폰정보
+	* @return Coupon
+	* @author sowon
+	* @since 2021. 04. 15
+	*/
 	public CustCoupon getAttendCouponInfo(CustCoupon coupon) {
 		coupon.setSiteCd(TscConstants.Site.STYLE24.value());
 		coupon.setFrontGb(TsfSession.getFrontGb());
 		return couponDao.getAttendCouponInfo(coupon);
 	}
-	
-	
+
 	/**
 	 * 퀵메뉴 다운가능 쿠폰 리스트
 	 * 
@@ -729,7 +738,7 @@ public class TsfCouponService {
 	 * @author sowon
 	 * @since 2021.04.23
 	 */
-	public Collection<Coupon> getQuickCouponDownList(Coupon coupon){
+	public Collection<Coupon> getQuickCouponDownList(Coupon coupon) {
 		coupon.setSiteCd(TscConstants.Site.STYLE24.value());
 		coupon.setFrontGb(TsfSession.getFrontGb());
 		coupon.setCustGb(TsfSession.getCustGb());
@@ -737,7 +746,7 @@ public class TsfCouponService {
 		coupon.setCustGrade(TsfSession.getInfo().getCustGrade());
 		return couponDao.getQuickCouponDownList(coupon);
 	}
-	
+
 	/**
 	 * 퀵메뉴 쿠폰 다운
 	 *
@@ -755,14 +764,14 @@ public class TsfCouponService {
 		coupon.setCustNo(TsfSession.getInfo().getCustNo());
 		coupon.setCustGrade(TsfSession.getInfo().getCustGrade());
 		Collection<Coupon> quickCouponList = couponDao.getQuickCouponDownList(coupon);
-		
+
 		String result = "SUCESS";
 
 		if (quickCouponList == null || quickCouponList.isEmpty()) {
 			result = "ERROR_10";
 			return result;
 		}
-		
+
 		int count = 0;
 		if (coupon.getCpnId() > 0) {
 			for (Coupon quickCoupon : quickCouponList) {

+ 9 - 0
src/main/java/com/style24/front/biz/service/TsfDisplayService.java

@@ -25,6 +25,7 @@ import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.GoodsSearch;
 import com.style24.persistence.domain.MainLayout;
 import com.style24.persistence.domain.Popup;
+import com.style24.persistence.domain.Login;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -399,7 +400,15 @@ public class TsfDisplayService {
 	 */
 	public Collection<Goods> getBestItemCategoryGoodsList(Contents contents) {
 		Cate4Srch cate4Srch = new Cate4Srch();
+		// 로그인 유무 확인 (로그인이 되어 있지 않으면 regNo 를 0으로 장바구니에 저장한다.)
+		Login login = new Login();
+		if (TsfSession.isLogin()) {
+			login = TsfSession.getInfo();
+		} else {
+			login.setCustNo(0);
+		}
 
+		cate4Srch.setCustNo(login.getCustNo());
 		cate4Srch.setPageGb(contents.getPageGb());
 		cate4Srch.setContentsLoc(contents.getContentsLoc());
 		cate4Srch.setPageable(contents.getPageable());

+ 22 - 3
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -789,9 +789,22 @@ public class TsfGoodsService {
 
 			// 추천솔루션 데이터가 없으면 베스트로 등록된 상품 조회
 			goodsList = goodsDao.getContentsCategoryGoodsList(cate);
+			for(Goods temp : goodsList){
+				if(temp.getSizes()!=null){
+					temp.setSizeArr(temp.getSizes().split(","));
+				}
+				if(temp.getColorChips()!=null){
+					temp.setColorArr(temp.getColorChips().split(","));
+				}
+				if(temp.getIcon()!=null){
+					temp.setBenefitArr(temp.getIcon().split(","));
+				}
+			}
 		} else if (cate.getContentsLoc().equals("SBM013")) {
 			GoodsSearch goodsSearch = new GoodsSearch();
 			goodsSearch.setSiteCd(TscConstants.Site.STYLE24.value());
+			goodsSearch.setFormalGb(cate.getFormalGb());
+			goodsSearch.setCustGb(cate.getCustGb());
 			goodsSearch.setCustNo(cate.getCustNo());
 			goodsSearch.setBrandGroupNo(cate.getBrandGroupNo());
 			goodsSearch.setMaxRow(cate.getMaxRow());
@@ -799,9 +812,15 @@ public class TsfGoodsService {
 			goodsList = displayDao.getCategoryGoodsList(goodsSearch);
 			
 			for(Goods temp : goodsList){
-				temp.setSizeArr(temp.getSizes().split(","));
-				temp.setColorArr(temp.getColorChips().split(","));
-				temp.setBenefitArr(temp.getIcon().split(","));
+				if(temp.getSizes()!=null){
+					temp.setSizeArr(temp.getSizes().split(","));
+				}
+				if(temp.getColorChips()!=null){
+					temp.setColorArr(temp.getColorChips().split(","));
+				}
+				if(temp.getIcon()!=null){
+					temp.setBenefitArr(temp.getIcon().split(","));
+				}
 			}
 		} else {
 			goodsList = goodsDao.getContentsCategoryGoodsList(cate);

+ 5 - 0
src/main/java/com/style24/front/biz/service/TsfPlanningService.java

@@ -124,6 +124,11 @@ public class TsfPlanningService {
 
 		Plan plan = new Plan();
 		plan.setPlanSq(planSq);
+		
+		// 비회원일 때
+		if (!TsfSession.isLogin()) {
+			msg = "로그인 후 접근 가능합니다.";
+		}
 
 		// 디바이스접근가능여부 조회
 		plan.setFrontGb(TsfSession.getFrontGb());

+ 3 - 3
src/main/java/com/style24/front/biz/web/TsfDisplayController.java

@@ -168,9 +168,9 @@ public class TsfDisplayController extends TsfBaseController {
 			mainLayoutList.add(mainLayout);
 		}
 
-		mav.addObject(paramMap.get("preview"));
-		mav.addObject(paramMap.get("viewDt"));
-		mav.addObject("viewPage", "G037_10");
+		mav.addObject( (StringUtils.isBlank(paramMap.get("preview")))? "" : paramMap.get("preview") );
+		mav.addObject( (StringUtils.isBlank(paramMap.get("viewDt")))? "" : paramMap.get("viewDt") );
+		mav.addObject("viewPage", "G037_20");
 		//mav.addObject("popupCateNo", "");
 
 		

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

@@ -92,7 +92,7 @@ public class TsfGoodsController extends TsfBaseController {
 
 	@Autowired
 	private TsfWishlistService wishListService;
-	
+
 	@Autowired
 	private TsfDisplayService displayService;
 
@@ -179,7 +179,7 @@ public class TsfGoodsController extends TsfBaseController {
 		mav.addObject("goodsVideoList", goodsService.getVideoList(goodsVideo));
 		// 상품 공지
 		mav.addObject("goodsNoticeList", goodsService.getGoodsNoticeList(paramsGoods));
-		
+
 		int goodsReviewCnt = 0;
 		if (TscConstants.GoodsType.DEAL.value().equals(goods.getGoodsType())) {	// 딜상품
 
@@ -202,7 +202,7 @@ public class TsfGoodsController extends TsfBaseController {
 			paramsGoods.setMaxRownum(1);
 			goodsCouponList = couponService.getGoodsCouponList(paramsGoods);
 			mav.addObject("goodsCouponList", goodsCouponList);
-			
+
 			// 다다익선
 			paramsGoods.setMaxRownum(1);
 			mav.addObject("tmtbList", goodsService.getTmtbList(paramsGoods));
@@ -210,7 +210,7 @@ public class TsfGoodsController extends TsfBaseController {
 			// 사은품
 			paramsGoods.setMaxRownum(1);
 			mav.addObject("freeGoodsList", goodsService.getFreeGoodsList(paramsGoods));
-			
+
 			// 딜용 상품평건수
 			Review review = new Review();
 			review.setGoodsCd(goods.getGoodsCd());
@@ -238,18 +238,17 @@ public class TsfGoodsController extends TsfBaseController {
 				mav.addObject("goodsNotiList", goodsService.getGoodsNotiList(goods));
 				// 상품 안전인증 정보
 				mav.addObject("goodsSafeNo", goodsService.getGoodsSafeNo(goods));
-				
 
 			} else if (TscConstants.GoodsType.SET.value().equals(goods.getGoodsType())) {		// 셋트상품
 				mav.addObject("goodsComposeList", goodsService.getGoodsSetComposeList(paramsGoods));
 			}
-			
+
 			// 룩북
 			Lookbook lookbook = new Lookbook();
 			lookbook.setGoodsCd(paramsGoods.getGoodsCd());
 			lookbook.setCustNo(paramsGoods.getCustNo());
 			mav.addObject("lookbookList", coreLookbookService.getLookbookListForGoods(lookbook));
-			
+
 			// 상품쿠폰
 			paramsGoods.setMaxRownum(1);
 			mav.addObject("goodsCouponList", couponService.getGoodsCouponList(paramsGoods));
@@ -284,9 +283,9 @@ public class TsfGoodsController extends TsfBaseController {
 			contents.setPreview(paramsGoods.getPreview());
 			contents.setViewDt(paramsGoods.getViewDt());
 			contents.setMaxRow(1);
-			if ("P".equals(paramsGoods.getFrontGb())){
+			if ("P".equals(paramsGoods.getFrontGb())) {
 				contents.setCateNo(1714);
-			}else {
+			} else {
 				contents.setCateNo(1724);
 			}
 			mav.addObject("goodsBannerList", displayService.getContentsList(contents));
@@ -611,8 +610,12 @@ public class TsfGoodsController extends TsfBaseController {
 
 				paramsGoods.setArrGoodsCd(arrGoodsCd);
 			}
-			}
-		// 쿠폰정보
+		}
+		// 상품 즉시할인 쿠폰정보
+		paramsGoods.setMaxRownum(1);
+		mav.addObject("goodsCoupon1List", couponService.getGoodsCoupon1List(paramsGoods));
+
+		// 상품 다운로드 쿠폰
 		paramsGoods.setMaxRownum(1);
 		mav.addObject("goodsCouponList", couponService.getGoodsCouponList(paramsGoods));
 		// 다다익선
@@ -1142,9 +1145,9 @@ public class TsfGoodsController extends TsfBaseController {
 			result.set("params", paramsGoods);
 			return result;
 		}
-		
+
 		log.info("createGoodsCoupon  goods {}", goods);
-		if (TscConstants.GoodsType.DEAL.value().equals(goods.getGoodsType())) { 
+		if (TscConstants.GoodsType.DEAL.value().equals(goods.getGoodsType())) {
 			Collection<Goods> goodsDealComposeList = goodsService.getGoodsDealComposeList(paramsGoods);
 			// 상품쿠폰
 			if (goodsDealComposeList != null && !goodsDealComposeList.isEmpty()) {
@@ -1158,7 +1161,7 @@ public class TsfGoodsController extends TsfBaseController {
 				paramsGoods.setArrGoodsCd(arrGoodsCd);
 			}
 		}
-		
+
 		// 쿠폰발급
 		// ERROR_10: 발급가능 쿠폰없음, 20: 발급완료 쿠폰, 30: 발급받은 쿠폰
 		//죄송합니다. 쿠폰이 모두 소진되었습니다
@@ -1332,7 +1335,7 @@ public class TsfGoodsController extends TsfBaseController {
 		mav.addObject("goodsNotiList", goodsService.getGoodsNotiList(goods));
 		// 상품 안전인증 정보
 		mav.addObject("goodsSafeNo", goodsService.getGoodsSafeNo(goods));
-		
+
 		// 상품 공통 베너
 		log.info("paramsGoods={}", paramsGoods);
 		Contents contents = new Contents();
@@ -1340,9 +1343,9 @@ public class TsfGoodsController extends TsfBaseController {
 		contents.setPreview(paramsGoods.getPreview());
 		contents.setViewDt(paramsGoods.getViewDt());
 		contents.setMaxRow(1);
-		if ("P".equals(paramsGoods.getFrontGb())){
+		if ("P".equals(paramsGoods.getFrontGb())) {
 			contents.setCateNo(1714);
-		}else {
+		} else {
 			contents.setCateNo(1724);
 		}
 		mav.addObject("goodsBannerList", displayService.getContentsList(contents));

+ 5 - 0
src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -141,6 +141,11 @@ public class TsfPlanningController extends TsfBaseController {
 		// 접근 불가능한 기획전 메시지 조회
 		String inaccessibleMsg = planningService.getInaccessiblePlanningMessage(plan.getPlanSq());
 		if (StringUtils.isNotBlank(inaccessibleMsg)) {
+			if (!TsfSession.isLogin()) {
+				mav.addObject("loginYn", "N");
+			}else {
+				mav.addObject("loginYn", "Y");
+			}
 			mav.addObject("inaccessibleMsg", inaccessibleMsg);
 			mav.setViewName(super.getDeviceViewName("error/Inaccess"));
 			return mav;

+ 187 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfCoupon.xml

@@ -444,7 +444,7 @@
 		     , A.MAX_DC_AMT
 		     , A.CPN_TYPE
 		     , A.AVAIL_STDT
-		     , A.AVAIL_EDDT
+		    -- , A.AVAIL_EDDT
 		     , A.USABLE_CUST_GRADE
 		     , A.NEW_CUST_YN
 		     , A.CUST_JOIN_STDT 
@@ -681,6 +681,192 @@
 		</if> 
 	</select>
 	
+	<!--상품 즉시할인 쿠폰 조회-->
+	<select id="getGoodsCoupon1List" parameterType="Goods" resultType="Coupon">
+		/* TsfCoupon.getGoodsCoupon1List */
+		SELECT A.DC_AMT
+		     , A.DC_VAL
+		     , A.DC_WAY
+		     , A.CPN_ID
+		     , A.CPN_NM
+		     , A.CPN_TYPE
+		     , A.AVAIL_STDT
+		     , DATE_FORMAT(A.AVAIL_EDDT, '%Y-%m-%d') AS AVAIL_EDDT
+		     , A.GOODS_CD
+		     , RNUM
+		FROM (
+		SELECT  DISTINCT CPN_ID
+		       , CPN_NM
+		       , DC_AMT
+		       , DC_VAL
+		       , DC_WAY
+		       , CPN_TYPE
+		       , AVAIL_STDT
+		       , AVAIL_EDDT
+		       , GOODS_CD
+		       , RANK() OVER(ORDER BY DC_AMT DESC)  AS RNUM   -- 할인금액순
+		FROM   (
+		        SELECT CP.CPN_ID                                              -- 쿠폰ID
+		             , CP.CPN_NM                                              -- 쿠폰명
+		             , CP.DC_WAY                                              -- 할인방식
+		             , CP.DC_VAL                                              -- 할인값
+		             , CP.CPN_TYPE                                            -- 쿠폰타입
+		             , CP.AVAIL_STDT                                          -- 유효시작일시
+		             , CP.AVAIL_EDDT                                          -- 유효종료일시
+		             , CP.GOODS_CD                                            -- 상품코드
+		             <![CDATA[
+		             , (CASE WHEN CP.DC_WAY = 'G240_10' THEN CP.DC_VAL
+		                     ELSE FLOOR((CP.CURR_PRICE * CP.DC_VAL / 100) / #{pointUnit}) * #{pointUnit} 
+		                     END) AS DC_AMT
+		              ]]>
+		              
+		        FROM   (
+		                SELECT CP.CPN_ID
+		                     , CP.CPN_NM
+		                     , CP.DC_WAY
+		                     , (CASE WHEN 'P' = #{frontGb} THEN CP.DC_PVAL
+		                             WHEN 'M' = #{frontGb} THEN CP.DC_MVAL
+		                             ELSE CP.DC_AVAL END) AS DC_VAL
+		                     , CP.CPN_TYPE
+		                     , IF (CP.PD_GB = 'D', NOW(), CP.AVAIL_STDT) AS AVAIL_STDT
+		                     , IF (CP.PD_GB = 'D', CONCAT(CURRENT_DATE + INTERVAL Cp.AVAIL_DAYS DAY, ' 23:59:59'), CP.AVAIL_EDDT) AS AVAIL_EDDT
+		                     , G.GOODS_CD
+		                     , G.CURR_PRICE
+		                FROM   TB_GOODS G
+		                     , TB_COUPON CP
+		                WHERE 1 = 1
+		                <choose>
+		                    <when test="arrGoodsCd != null and arrGoodsCd != ''">
+		                AND G.GOODS_CD IN
+		                    <foreach collection="arrGoodsCd" item="item" index="index"  open="(" close=")" separator=",">
+		                    UPPER(#{item})
+		                    </foreach>
+		                    </when>
+		                    <otherwise>
+		                AND G.GOODS_CD = #{goodsCd}
+		                    </otherwise>
+		                </choose> 
+		                AND    CP.SITE_CD = #{siteCd}
+		                AND    CP.CPN_STAT = 'G232_11'   -- 쿠폰인 진행중인 쿠폰만
+		                <![CDATA[
+		                AND    NOW() <= IF (CP.PD_GB = 'D', CONCAT(CURRENT_DATE + INTERVAL CP.AVAIL_DAYS DAY, ' 23:59:59'), CP.AVAIL_EDDT)
+		                ]]>
+		                AND    NOW() BETWEEN CP.DOWN_STDT AND CP.DOWN_EDDT
+		                AND    CP.CPN_TYPE = 'G230_10' /*즉시할인쿠폰*/
+		                AND    CP.DC_CD_GB = 'G233_00'                         -- 일반유형(할인쿠폰구분)
+		                AND    (CASE WHEN 'P' = #{frontGb} THEN CP.DC_PVAL
+		                             WHEN 'M' = #{frontGb} THEN CP.DC_MVAL
+		                             ELSE CP.DC_AVAL END) > 0                  -- PC, MOBILE,APP 별로 0 보다 큰 쿠폰
+		                AND   (
+		                        (CP.APPLY_SCOPE = 'A' ) 
+		                        OR  /* 적용대상:상품*/
+		                        (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
+		                                                   WHERE CPN_ID = CP.CPN_ID
+		                                                   AND CPN_TARGET = 'G260_10'
+		                                                   AND DEL_YN = 'N'
+		                                                   AND REF_VAL = G.GOODS_CD
+		                                                   ) > 0
+		                        ) 
+		                        OR /* 적용대상:카테고리*/
+		                        (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
+		                                                   WHERE CPN_ID = CP.CPN_ID
+		                                                   AND CPN_TARGET = 'G260_11' 
+		                                                   AND DEL_YN = 'N'
+		                                                   AND IFNULL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
+		                                                   AND IFNULL(REF_BRAND_CD,G.BRAND_CD) = G.BRAND_CD
+		                                                   AND REF_VAL IN (SELECT DISTINCT X.CATE_NO 
+		                                                                   FROM 
+		                                                                        (SELECT LEAF_CATE_NO 
+		                                                                              , CATE_LVL 
+		                                                                              , CATE_NO
+		                                                                         FROM (
+		                                                                               SELECT LEAF_CATE_NO ,
+		                                                                                      CASE WHEN X = 1 THEN 'CATE1_NO'  -- 컬럼과 매핑(컬럼명)
+		                                                                                           WHEN X = 2 THEN 'CATE2_NO'
+		                                                                                           WHEN X = 3 THEN 'CATE3_NO'
+		                                                                                           WHEN X = 4 THEN 'CATE4_NO'
+		                                                                                           ELSE  'CATE5_NO' 
+		                                                                                      END CATE_LVL,
+		                                                                                      CASE WHEN X = 1 THEN CATE1_NO  -- 컬럼과 매핑(컬럼 데이터)
+		                                                                                           WHEN X = 2 THEN CATE2_NO
+		                                                                                           WHEN X = 3 THEN CATE3_NO
+		                                                                                           WHEN X = 4 THEN CATE4_NO
+		                                                                                           ELSE  CATE5_NO 
+		                                                                                      END CATE_NO
+		                                                                               FROM (
+		                                                                                      ( SELECT LEAF_CATE_NO
+		                                                                                             , CATE1_NO
+		                                                                                             , CATE2_NO
+		                                                                                             , CATE3_NO
+		                                                                                             , CATE4_NO
+		                                                                                             , CATE5_NO
+		                                                                                        FROM  TB_CATE_4SRCH
+		                                                                                        WHERE SITE_CD = 'G000_10'
+		                                                                                        AND CATE_TYPE = 'G031_10') A, -- 상품타입
+		                                                                                      (SELECT 1 AS X                  -- UNPIVOT 컬럼 수 만큼 선언
+		                                                                                       UNION ALL SELECT 2 AS X
+		                                                                                       UNION ALL SELECT 3 AS X
+		                                                                                       UNION ALL SELECT 4 AS X
+		                                                                                       UNION ALL SELECT 5 AS X
+		                                                                                     ) B
+		                                                                                    )  
+		                                                                               ORDER BY LEAF_CATE_NO, CATE_LVL
+		                                                                              ) K
+		                                                                              WHERE CATE_NO IS NOT NULL
+		                                                                        ) X, 
+		                                                                        (
+		                                                                         SELECT A.CATE_NO, A.GOODS_CD
+		                                                                         FROM TB_CATE_GOODS A
+		                                                                         WHERE GOODS_CD = G.GOODS_CD
+		                                                                        ) Y 
+		                                                                        WHERE X.LEAF_CATE_NO = Y.CATE_NO
+		                                                                  )
+		                                                  ) >0
+		                        ) 
+		                        OR /* 적용대상:브랜드*/
+		                        (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
+		                                                   WHERE CPN_ID = CP.CPN_ID
+		                                                   AND CPN_TARGET = 'G260_12' 
+		                                                   AND DEL_YN = 'N'
+		                                                   AND REF_VAL = G.BRAND_CD
+		                                                   AND IFNULL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
+		                                                  ) >0
+		                        ) 
+		                        OR /* 적용대상:공급업체*/
+		                        (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
+		                                                   WHERE CPN_ID = CP.CPN_ID
+		                                                   AND CPN_TARGET = 'G260_13' 
+		                                                   AND DEL_YN = 'N'
+		                                                   AND REF_VAL = G.SUPPLY_COMP_CD
+		                                                  ) >0
+		                        )
+		                      )
+		                AND NOT EXISTS (
+		                                SELECT 1
+		                                FROM   TB_COUPON_REFVAL SCPR
+		                                WHERE  SCPR.CPN_ID = CP.CPN_ID
+		                                AND    SCPR.REF_VAL = G.GOODS_CD
+		                                AND    SCPR.DEL_YN = 'N'      -- 삭제안된넘
+		                                AND    SCPR.CPN_TARGET = '40' -- 제외상품
+		                               )
+		                AND NOT EXISTS (
+		                                 SELECT 1
+		                                FROM TB_COUPON_BAN_GOODS
+		                                WHERE GOODS_CD = G.GOODS_CD
+		                                AND DEL_YN = 'N'
+		                               )
+		               ) CP
+		               WHERE 1 = 1
+		       ) Y
+		) A
+		WHERE 1 = 1
+		<if test="maxRownum != null and maxRownum > 0">
+		<![CDATA[
+		AND RNUM <= #{maxRownum}
+		]]>
+		</if> 
+	</select>
+	
 	<select id="getMypageCouponList" resultType="Coupon" parameterType="Coupon">
 		/* TsfCoupon.getMypageCouponList */
 		SELECT CC.CPN_ID                    /*쿠폰ID*/

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

@@ -78,7 +78,7 @@
 
 	<!-- 상품 정보 -->
 	<select id="getGoodsInfo" parameterType="Goods" resultType="Goods">
-		/* TsfGoods.getGoods */
+		/* TsfGoods.getGoodsInfo */
 		SELECT Z.*
 		     , 100 - ROUND((CURR_PRICE / LIST_PRICE) * 100 ,0) AS DC_RATE 
 		     , ((PNT_RATE * CURR_PRICE) / 100) AS PNT_AMT
@@ -1109,6 +1109,7 @@
 		      AND  A.FREEGIFT_STAT = 'G232_11'
 		      AND E.TARGET_VAL IS NULL
 		      AND A.DEL_YN = 'N'
+		      ORDER BY A.FREEGIFT_SQ, B.FREEGIFT_SECTION_SQ, C.FREEGIFT_VAL_SQ
 		) Z
 		WHERE 1 = 1
 		<if test="maxRownum != null and maxRownum > 0">
@@ -1293,6 +1294,32 @@
 		     , GV.VIDEO_VAL_M
 		     , GV.VIDEO_GB_S
 		     , GV.VIDEO_VAL_S
+		     , (
+		        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(CONCAT(BENEFIT_GB,':',BENEFIT_NM) ORDER BY NUMB SEPARATOR ',')
+		         FROM   (
+		              SELECT GB.BENEFIT_GB
+		                    , CASE WHEN GB.BENEFIT_GB = '10' THEN '쿠폰할인'
+		                    WHEN GB.BENEFIT_GB = '20' THEN '무료배송'
+		                    WHEN GB.BENEFIT_GB = '30' THEN '사은품'
+		                    WHEN GB.BENEFIT_GB = '40' THEN '신상'
+		                    ELSE '총알배송' END AS BENEFIT_NM
+		                    , RANK() OVER(ORDER BY GB.BENEFIT_GB, GB.GOODS_CD) AS NUMB
+		              FROM   TB_GOODS_BENEFIT GB
+		              WHERE  GB.GOODS_CD = G.GOODS_CD
+		         ) Z
+		     ) AS ICON
 		     <choose>
 		         <when test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
 		     , IF(W.GOODS_CD IS NULL,'','likeit')                                                           AS LIKE_IT       /*위시리스트담긴상품*/

+ 146 - 0
src/main/webapp/WEB-INF/views/mob/display/AllBrandFormMob.html

@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/DefaultLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : AllBrandFormMob.html
+ * @desc    : 전체브랜드 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.02   bin2107     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+
+	<main role="" id="" class="container br">
+		<!-- page nav: CS 고객센터 -->
+
+		<!-- ★ 컨텐츠 시작 -->
+		<section class="br_search_wrap">
+			<div class="inner wide" th:if="${mainBrandList != null}" th:with="imgUrl=${@environment.getProperty('upload.image.view')}">
+				<div class="hmenu">
+					<div class="swiper-container brand_si">
+						<div class="swiper-wrapper">
+							<div class="swiper-slide" th:each="item, status : ${mainBrandList}">
+								<div>
+									<a href="javascript:void(0);" th:onClick="cfnGoToBrandMain([[${item.brandGroupNo}]]);">
+										<span><img th:src="${imgUrl+item.logoFileNm}" alt=""></span>
+									</a>
+								</div>
+							</div>
+						</div>
+						<!-- Add Pagination -->
+						<div class="swiper-pagination"></div>
+					</div>
+					<div class="line"></div>
+				</div>
+			</div>
+			<div class="inner">
+				<form id="searchBrandForm" name="searchBrandForm">
+				<div class="brand_title">
+					<input type="text" id="search" name="search" placeholder="브랜드명을 입력해주세요">
+					<!-- <button class="btn_x">X</button> -->
+					<button type="button" onclick="fnSearchBrand();"><img src="/images/mo/cs_search_btn.png" alt=""></button>
+				</div>
+				</form>
+			</div>
+			<div id="idBrandList"></div>
+
+		</section>
+		<!-- ★ 컨텐츠 종료 -->
+
+	</main>
+	
+<script th:inline="javascript">
+/*<![CDATA[*/
+	$(document).ready(function(){
+		setHtop();
+		fnCreateAllBrandList();
+	});
+
+	let fnSearchBrand = function(){
+		var searchBrand = $("#searchBrandForm").find("input[name=search]").val();
+		fnCreateAllBrandList(searchBrand);
+	}
+
+	let fnCreateAllBrandList = function (brandGroupNm){
+		let actionUrl = '/display/all/brand/list'
+		if(!gagajf.isNull(brandGroupNm)){
+			actionUrl += '?brandGroupNm='+brandGroupNm;
+		}
+
+		$.getJSON(actionUrl
+				, function(result, status){
+					if(result.length>0){
+						$("#idBrandList").html('');
+						let tag = '';
+						let prevNav = '';
+						$.each(result, function (idx, item){
+							if(prevNav != item.brandInitial){
+								if(idx>0){
+									tag += '	</div>\n';
+									tag += '</div>\n';
+								}
+								tag += '<div class="inner">\n';
+								tag += '	<div class="result">\n';
+								tag += '	<p class="title_abbr">'+item.brandInitial+'</p>\n';
+								tag += '	<div class="brand">\n';
+								$.each(result, function (idx, item2){
+									if(item.brandInitial == item2.brandInitial){
+										tag += '		<a href="javascript:void(0);" onclick="cfnGoToBrandMain('+item2.brandGroupNo+');">'+item2.brandGroupNm+'\n';
+										if(item.dispNmLang=='KR'){
+											tag += '<span>'+item2.brandGroupEnm+'</span>';
+										}else{
+											tag += '<span>'+item2.brandGroupKnm+'</span>';
+										}
+										tag += '		</a>';
+									}
+								});
+								tag += '	</div>\n';
+							}
+							prevNav = item.brandInitial;
+						});
+						tag += '	</div>\n';
+						tag += '</div>\n';
+						$("#idBrandList").html(tag);
+					}else{
+						$("#idBrandList").html('');
+						$("#idNodata").show();
+					}
+				});
+	}
+
+	function setHtop() {
+		if($('header').hasClass('main')) {
+			$('#htopMain').show();
+			$('#htopSub').hide();
+		} else {
+			$('#htopMain').hide();
+			$('#gnb').hide();
+			$('#htopSub').show();
+		}
+	}
+
+	var swiperBrand = new Swiper('.swiper-container.brand_si', {
+		slidesPerView: 3,
+		slidesPerColumn: 2,
+		spaceBetween: 0,
+		pagination: {
+			el: '.swiper-pagination',
+			clickable: true,
+		},
+	});
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/mypage/MypageCouponFormMob.html

@@ -139,13 +139,13 @@
 	}
 
     $(document).ready(function() {
+    	$('#htopTitle').text('쿠폰');
 		if(couponList.length>0){
 			$(".nodata").hide();
 		}else{
 			$(".nodata").show();
 		}		
 	});
-	
 	</script>
 	</th:block>
 </body>

+ 15 - 1
src/main/webapp/WEB-INF/views/mob/mypage/MypagePointFormMob.html

@@ -69,6 +69,15 @@
 								<!-- // tab_cont End -->
 							</div>
 						</div>
+						
+						 <div class="nodata">
+							<div class="txt_box">
+								<p>
+									STYLE 포인트 적립/사용내역이 없습니다.<br>
+	
+								</p>
+							</div>
+						</div> 
 					</div>
 				</div>
 
@@ -85,7 +94,7 @@ var month = date[0].month;
 //동적으로 날짜 년도 append
 function appendYear() {
 	for (var i = 0; i < date.length; i++) {
-		$("#month").append(	"<option value='"+ date[i].year + "" + date[i].month + "'>" + date[i].year	+ "년" + date[i].month + "월 </option>")
+		$("#month").append(	"<option value='"+ date[i].year + "" + date[i].month + "'>" + date[i].year	+ "년" +'   '+ date[i].month + "월 </option>")
 	}
 	//$(".month").append("<option class='selected' value='"+date[0].year+""+date[0].month+"'>"+ date[0].year + "년" + date[0].month + "월 </option>"); // 현재년도 선택 */ 
 }
@@ -129,6 +138,7 @@ var fnChangeDate = function(param) {
 
 // HTML 그리기
 var fnGetPointTableInfo = function(param) {
+	$('.nodata').hide();
 	$("#pointAjaxList").html('');
 	let tag = "";
 	if(param != null && param.length > 0){
@@ -161,6 +171,9 @@ var fnGetPointTableInfo = function(param) {
 			tag += '</ul>';
 		});
 		$("#pointAjaxList").html(tag);
+	}else{
+		$('.nodata').show();
+		
 	}
 }
 
@@ -200,6 +213,7 @@ $("#usePointList").click(function(){
 });
 
 $(document).ready(function() {
+	$('#htopTitle').text('STYLE 포인트');
 	// 전체내역 표시
 	$("#allPointList").trigger("click");
 	

+ 5 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewFormMob.html

@@ -255,6 +255,11 @@
 		gagaPaging.load(1);
 	})
 /*]]>*/
+ 
+ $(document).ready(function() {
+ 	$('#htopTitle').text('리뷰');
+
+ });
 </script>
 	</th:block>
 

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/mypage/MypageWishListFormMob.html

@@ -100,8 +100,8 @@ var ajaxWishList = function () {
 		}
 	});
 }
-
 $(document).ready(function() {
+	$('#htopTitle').text('위시리스트');
 	ajaxWishList();
 });
 /*]]>*/

+ 30 - 50
src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html

@@ -353,13 +353,13 @@
 													<span class="itemPrice_original" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
 													<span class=" itemPercent" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${(goodsData.listPrice == 0 ? 0 : #numbers.formatDecimal((goodsData.listPrice - goodsData.currPrice) / (goodsData.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
 												</p>
-												<div class="itemcolorchip">
+												<div class="itemcolorchip" th:if="${goodsData.colorArr != null}">
 													<th:block th:each="option, idx : ${goodsData.colorArr}" th:with="colorArray=${#strings.arraySplit(idx.current,':')}">
 														<span th:if="${colorArray[1]=='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';border:1px solid #aaa;'}" class="chip_color" th:value="${colorArray[0]}"></span>
 														<span th:if="${colorArray[1]!='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';'}" class="chip_color" th:value="${colorArray[0]}"></span>
 													</th:block>
 												</div>
-												<p class="itemBadge">
+												<p class="itemBadge" th:if="${goodsData.benefitArr != null}">
 													<th:block th:each="option, idx : ${goodsData.benefitArr}" th:with="iconArray=${#strings.arraySplit(idx.current,':')}" >
 														<span class="badge13" th:if="${idx.index<3}" th:value="${iconArray[0]}" th:text="${iconArray[1]}"></span>
 													</th:block>
@@ -376,56 +376,36 @@
 						</div>
 					</div>
 				</th:block>
+
+				<!-- main_tv -->
+				<th:block th:if="${contentsLoc=='012'}">
+					<div class="content wide main_tv" th:if="${brandMainLayoutData.ContentsList != null}">
+						<div class="cont_head">
+							<p class="displayH t_c" th:text="${contentsTitle}">TBJ`S TV</p>
+						</div>
+						<div class="cont_body">
+							<div class="slide_wrap">
+								<div class="swiper-container post-tv">
+									<div class="swiper-wrapper">
+										<th:block th:each="item, stat : ${brandMainLayoutData.ContentsList}">
+											<div class="swiper-slide">
+												<div class="movbox">
+													<iframe th:if="${item.strVar1=='Y'}" width="100%" height="100%" th:src="${'https://www.youtube.com/embed/'+item.strVar2+'?rel=0'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+													<iframe th:if="${item.strVar1=='M'}" class="pd_mov"  th:src="${'http://v.kr.kollus.com/'+item.strVar2+'?enable_initialize_focus=false'}" allowfullscreen></iframe>
+												</div>
+											</div>
+										</th:block>
+									</div>
+									<div class="swiper-button-prev white"></div><!-- 클래스명 white 추가 -->
+									<div class="swiper-button-next white"></div>
+								</div>
+								<div class="swiper-pagination"></div>
+							</div>
+						</div>
+					</div>
+				</th:block>
 			</th:block>
 		</th:block>
-		<!-- main_tv -->
-<!--		<div class="content wide main_tv">-->
-<!--			<div class="cont_head">-->
-<!--				<p class="displayH t_c">TBJ`S TV</p>-->
-<!--			</div>-->
-<!--			<div class="cont_body">-->
-<!--				<div class="slide_wrap">-->
-<!--					<div class="swiper-container post-tv">-->
-<!--						<div class="swiper-wrapper">-->
-<!--							<div class="swiper-slide">-->
-<!--								<div class="movbox">-->
-<!--									<iframe width="100%" height="100%" src="https://www.youtube.com/embed/hqryeW6scd0?rel=0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>-->
-<!--								</div>-->
-<!--							</div>-->
-<!--							<div class="swiper-slide">-->
-<!--								<div class="movbox">-->
-<!--									<iframe width="100%" height="100%" src="https://www.youtube.com/embed/J7nowE2iTIM?rel=0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>-->
-<!--								</div>-->
-<!--							</div>-->
-<!--							<div class="swiper-slide">-->
-<!--								<div class="movbox">-->
-<!--									<iframe width="100%" height="100%" src="https://www.youtube.com/embed/cRiKrFk7FTM?rel=0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>-->
-<!--								</div>-->
-<!--							</div>-->
-<!--							<div class="swiper-slide">-->
-<!--								<div class="movbox">-->
-<!--									<iframe width="100%" height="100%" src="https://www.youtube.com/embed/hqryeW6scd0?rel=0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>-->
-<!--								</div>-->
-<!--							</div>-->
-<!--							<div class="swiper-slide">-->
-<!--								<div class="movbox">-->
-<!--									<iframe width="100%" height="100%" src="https://www.youtube.com/embed/J7nowE2iTIM?rel=0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>-->
-<!--								</div>-->
-<!--							</div>-->
-<!--							<div class="swiper-slide">-->
-<!--								<div class="movbox">-->
-<!--									<iframe width="100%" height="100%" src="https://www.youtube.com/embed/cRiKrFk7FTM?rel=0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>-->
-<!--								</div>-->
-<!--							</div>-->
-<!--						</div>-->
-<!--						<div class="swiper-button-prev white"></div>&lt;!&ndash; 클래스명 white 추가 &ndash;&gt;-->
-<!--						<div class="swiper-button-next white"></div>-->
-<!--					</div>-->
-<!--					<div class="swiper-pagination"></div>-->
-<!--				</div>-->
-<!--			</div>-->
-<!--		</div>-->
-		<!-- //main_tv -->
 	</div>
 </div>
 

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

@@ -136,6 +136,17 @@
 												<span class="itemPrice_original" th:if="${item.currPrice != item.listPrice}" th:text="${#numbers.formatInteger(item.listPrice,3,'POINT') + '원'}">89,000</span>
 												<span class="itemPercent" th:if="${item.currPrice != item.listPrice}" th:text="${(item.listPrice == 0 ? 0 : #numbers.formatDecimal((item.listPrice - item.currPrice) / (item.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
 											</p>
+											<div class="itemcolorchip">
+												<th:block th:each="option, idx : ${item.colorArr}" th:with="colorArray=${#strings.arraySplit(idx.current,':')}">
+													<span th:if="${colorArray[1]=='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';border:1px solid #aaa;'}" class="chip_color" th:value="${colorArray[0]}"></span>
+													<span th:if="${colorArray[1]!='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';'}" class="chip_color" th:value="${colorArray[0]}"></span>
+												</th:block>
+											</div>
+											<p class="itemBadge">
+												<th:block th:each="option, idx : ${item.benefitArr}" th:with="iconArray=${#strings.arraySplit(idx.current,':')}" >
+													<span class="badge13" th:if="${idx.index<3}" th:value="${iconArray[0]}" th:text="${iconArray[1]}"></span>
+												</th:block>
+											</p>
 											<div class="itemComment" th:if="${not #strings.isEmpty(item.goodsTnm)}" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
 										</a>
 									</div>

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

@@ -53,8 +53,9 @@
 				<p th:text="${inaccessibleMsg}"></p>
 			</div>
 			<div class="btn_group">
-				<button class="btn btn_default" onclick="fnGoToHome();"><span>홈으로 이동</span></button>
+				<button class="btn btn_default" th:if="${loginYn == 'Y'}" onclick="fnGoToHome();"><span>홈으로 이동</span></button>
 				<button class="btn btn_dark" onclick="javascript:history.back(-1);"><span>목록으로 이동</span></button>
+				<button class="btn btn_default" th:if="${loginYn == 'N'}" onclick="fnGoToLogin();"><span>로그인</span></button>
 			</div>
 		</div>
 	</div>
@@ -64,6 +65,9 @@
 	let fnGoToHome = function() {
 		document.location.href = '/';
 	}
+	let fnGoToLogin = function() {
+		document.location.href = '/signin';
+	}
 </script>
 
 </body>

+ 4 - 2
src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html

@@ -656,8 +656,10 @@
 			$('.pd_detail .opt_select .select_custom.deal_opt_item').find('.combo .select').html(dTag);
 			$('.pd_desc_wrap .opt_select .select_custom.deal_opt_item').find('.combo .select').html(dTag);
 			//$('.pd_descrp_pop .form_field .select_custom.deal_opt_item').find('.combo .select').html(dTag);
-
-			$('.form_field .select_custom.deal_opt1').attr('disabled', true);
+			if (flag  != "layer"){
+				$('.form_field .select_custom.deal_opt1').attr('disabled', true);
+				//$('.form_field .select_custom.deal_opt1').find('.combo .select').html('옵션1선택');	
+			}
 			$('.form_field .select_custom.deal_opt1').find('.combo .select').html('옵션1선택');
 			$('.form_field .select_custom.deal_opt2').attr('disabled', true);
 			$('.form_field .select_custom.deal_opt2').find('.combo .select').html('옵션2선택');

+ 45 - 6
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -1348,24 +1348,36 @@
 				if (selfGoodsYn == "Y"){
 					if (ridx == 1){
 						var opt_selecter02_1 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_1');
-						$('.opt_set_select .select_custom.item_opt2.item_opt2_1').find('.combo .select').trigger('click');
+						//$('.opt_set_select .select_custom.item_opt2.item_opt2_1').find('.combo .select').trigger('click');
+						$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_1").addClass("on");
+						$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_1").children(".combo").children(".list").css("display", "block");
 					}else if (ridx == 2){
 						var opt_selecter02_2 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_2');
-						$('.opt_set_select .select_custom.item_opt2.item_opt2_2').find('.combo .select').trigger('click');
+						//$('.opt_set_select .select_custom.item_opt2.item_opt2_2').find('.combo .select').trigger('click');
+						$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_2").addClass("on");
+						$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_2").children(".combo").children(".list").css("display", "block");
 					}else if (ridx == 3){
 						var opt_selecter02_3 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_3');
-						$('.opt_set_select .select_custom.item_opt2.item_opt2_3').find('.combo .select').trigger('click');
+						//$('.opt_set_select .select_custom.item_opt2.item_opt2_3').find('.combo .select').trigger('click');
+						$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_3").addClass("on");
+						$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_3").children(".combo").children(".list").css("display", "block");
 					}else if (ridx == 4){
 						var opt_selecter02_4 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_4');
-						$('.opt_set_select .select_custom.item_opt2.item_opt2_4').find('.combo .select').trigger('click');
+						//$('.opt_set_select .select_custom.item_opt2.item_opt2_4').find('.combo .select').trigger('click');
+						$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_4").addClass("on");
+						$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_4").children(".combo").children(".list").css("display", "block");
 					}else{
 						var opt_selecter02_5 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_5');
-						$('.opt_set_select .select_custom.item_opt2.item_opt2_5').find('.combo .select').trigger('click');
+						//$('.opt_set_select .select_custom.item_opt2.item_opt2_5').find('.combo .select').trigger('click');
+						$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_5").addClass("on");
+						$('.pd_detail .item_detail .opt_set_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_5").children(".combo").children(".list").css("display", "block");
 					}
 					
 				}else{
 					var opt_selecter02 = new sCombo('.opt_select .select_custom.item_opt2.item_opt2_1');
-					$('.opt_select .select_custom.item_opt2.item_opt2_1').find('.combo .select').trigger('click');
+					$('.pd_detail .item_detail .opt_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_1").addClass("on");
+					$('.pd_detail .item_detail .opt_select .set_option .list li').closest(".form_field").siblings(".form_field").children(".item_opt2.item_opt2_1").children(".combo").children(".list").css("display", "block");
+					//$('.opt_select .select_custom.item_opt2.item_opt2_1').find('.combo .select').trigger('click');
 					
 				}	
 			}
@@ -1763,6 +1775,33 @@
 		 }
 	 });
 	
+	 <!-- 210422_추가 : 상품썸네일 영상 -->
+	 var controller;
+     var player = document.getElementById('player');
+     window.onload = function() {
+         try {
+             var controller = new VgControllerClient({
+                 // target_window: document.getElementById('prodctThumbVideo').contentWindow
+                 target_window: document.getElementsByClassName('pd_mov').contentWindow
+             });
+             controller.on('ready', function(){
+                 //플레이어 준비 완료
+                 // controller.set_ratio('cover');
+                 //  contain : 비율에 맞게 채웁니다.
+                 //fill : 화면에 꽉 차게 채웁니다.
+                 //enlargement : 세로 높이를 꽉 차게 맞춥니다. 좌우로 스크롤이 가능합니다
+                 controller.play();
+             });
+             controller.on('done', function(){
+                 //플레이어 재생 완료
+                 controller.play();  
+             });
+         } catch(e) {
+             // Videogateweay Controller Library는 window.postMessage API를 이용하기 때문에
+             // 해당 기능을 지원하지 않는 웹브라우져에서는 동작하지 않습니다.
+             // 이 부분에 적절한 fail-over 코드를 추가하여 주십시요.
+         }
+     }
 /*]]>*/
 </script>
 

+ 7 - 4
src/main/webapp/WEB-INF/views/web/goods/GoodsShopBenefitFormWeb.html

@@ -21,7 +21,7 @@
 		</div>
 		<div class="modal-body">
 			<div class="pop_cont">
-				<div class="benefit_blk" th:if="${(goodsCouponList != null and !goodsCouponList.empty) or (goodsInfo.prePntUsableYn == 'Y')}">
+				<div class="benefit_blk" th:if="${(goodsCouponList != null and !goodsCouponList.empty) or (goodsCoupon1List != null and !goodsCoupon1List.empty)}">
 					<h6>할인혜택</h6>
 					<div class="tbl type1">
 						<table>
@@ -30,9 +30,12 @@
 								<col width="*">
 							</colgroup>
 							<tbody>
-								<tr th:if="${(goodsInfo.prePntUsableYn == 'Y')}">
-									<th>즉시 할인</th>
-									<td th:text="|${#numbers.formatInteger(goodsInfo.pntAmt, 0,'COMMA')}원 할인|">50% 할인</td>
+								<tr th:if="${(goodsCoupon1List != null and !goodsCoupon1List.empty)}">
+									<th>즉시할인</th>
+									<td th:each="goodsCoupon, status : ${goodsCoupon1List}" th:if="${status.first}">최대
+									<th:block th:if="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${#numbers.formatInteger(goodsCoupon.dcVal, 0,'COMMA')}원|"></th:block>
+									<th:block th:unless="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${goodsCoupon.dcVal}%|"></th:block>
+									 할인</td>
 								</tr>
 								<tr th:if="${(goodsCouponList != null and !goodsCouponList.empty)}">
 									<th>쿠폰할인</th>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html

@@ -324,7 +324,7 @@
 												<div class="input_txt_review">
 													<div class="form_field">
 														<div class="input_wrap">
-															<textarea class="doc_review" name="reviewContent" id="reviewContent" cols="30" rows="10" placeholder="·&nbsp;리뷰 내용은 최소 10자 이상 입력해 주세요.&#13;&#10;·&nbsp;상품과 무관하거나 스팸, 음란, 불법적인 내용의 리뷰는 통보 없이 삭제되며, 지급한 포인트는 회수 될 수 있습니다.&#13;&#10;·&nbsp;리뷰 등록 후 관리자 승인이 필요한 경우 바로 노출이 되지 않을 수 있습니다." style="resize: none;" ></textarea>
+															<textarea class="doc_review" name="reviewContent" id="reviewContent" cols="30" rows="10" placeholder="·&nbsp;리뷰 내용은 최소 10자 이상 입력해 주세요.&#13;&#10;·&nbsp;상품과 무관하거나 스팸, 음란, 불법적인 내용의 리뷰는 통보 없이 삭제되며, 지급한 포인트는 회수 될 수 있습니다.&#13;&#10;·&nbsp;리뷰 등록 후 관리자 승인이 필요한 경우 바로 노출이 되지 않을 수 있습니다." style="resize: none;" maxlength="500"></textarea>
 															<p class="txt_cnt"><span id="review_cnt" class="c_primary">0</span>/500</p>			
 														</div> 
 													</div>

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

@@ -1780,7 +1780,7 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 
 
 /*  modal popup  */
-.blocker{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;/*z-index:999999;*/ z-index:200; padding:0px;box-sizing:border-box;background-color:#000;background-color:rgba(0,0,0,0.75);text-align:center;pointer-events: none;}
+.blocker{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;/*z-index:999999;*/ z-index:200; padding:0px;box-sizing:border-box;background-color:#000;background-color:rgba(0,0,0,0.75);text-align:center;}
 .blocker:before{content:"";display:inline-block;height:100%;vertical-align:middle;margin-right:-0.05em;}
 .blocker.behind{background-color:transparent;}
 .modal{
@@ -1843,3 +1843,14 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
   }
 }
 
+/* popover style Tooltip */
+.tip_tit{background-color: transparent;border-radius: 100%;border: 1px solid #888888;color: #fd4802;cursor: default;display: inline-block;font-size: 12px;font-weight: 600;line-height: 1.3;position: relative;text-align: center;width: 15px;height: 15px;}
+.tip_wrap {position: relative;display: inline-block;}
+.tip_contents {width: auto;opacity: 0;visibility: hidden;position: absolute;transform: scale(.6) translateX(-45%) translateY(90%);color:#888888;border: 1px solid #ffe4d9;background-color: #fff6f2;padding: 15px;}
+.tip_contents:before {position: absolute;z-index: -1;content: "";right: calc(50% - 10px);top: -8px;border-style: solid;border-width: 0 1.0rem 1.0rem 1.0rem;border-color: transparent transparent #fff6f2 transparent;transition-duration: 0.3s;transition-property: transform;}
+.tip_contents:after, .tip_contents:before {transform: scale(1) translateY(0);}
+.tip_contents:after, .tip_contents:before {bottom: 100%;left: 50%;border: solid transparent;content: "";height: 0;width: 0;position: absolute;pointer-events: none;}
+.tip_contents:after {border-color: rgba(255, 246, 242, 0);border-bottom-color: #fff6f2;border-width: 10px;margin-left: -10px;}
+.tip_contents:before {border-color: rgba(255, 228, 217, 0);border-bottom-color: #ffe4d9;border-width: 11px;margin-left: -11px;top: -22px;}
+.tip_wrap:hover .tip_contents {z-index: 10;opacity: 1;visibility: visible;transform: translate(-45%, 1.0rem);transition: all 0.5s cubic-bezier(0.75, -0.02, 0.2, 0.97);}
+.tip_txt {text-align: center;}

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

@@ -2263,6 +2263,9 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.shopping_bag .area_part + .area_part .part_goods .goods_cont .goods_info:last-child{border-bottom: 0px;}
 	.shopping_bag .part_goods .goods_cont .goods_info:last-child{margin-bottom: 0px;padding-bottom: 40px;border-bottom: 1px dashed #ddd;}*/
 	
+	.shopping_bag .tip1 .tip_contents{width: 100%; min-width:250px; transform: translate(-61px, 14px); font-size: 12px;}
+	.shopping_bag .tip1 .tip_contents:before,
+	.shopping_bag .tip1 .tip_contents:after{left: 27%;}
 
 	/* od_shopping_Bag 실시간조회상품 */
 	.container .wrap .content.od_realtime {position:relative; max-width:1460px; margin-top:120px;}
@@ -3861,13 +3864,19 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	/* .br_lookbook_view.cont_visual .text_cont {margin-top:80px; color:#666; font-size:16px; font-weight:200; line-height:26px;} */
 	
 	.br_lookbook_view.cont_txts {margin-bottom:120px;pointer-events: none;}
-	.br_lookbook_view.cont_txts .text_cont {color:#666; font-size:16px; font-weight:200; line-height:26px; background: #ffffff; pointer-events: none;}
+	.br_lookbook_view.cont_txts .text_cont {display: none;color:#666; font-size:16px; font-weight:200; line-height:26px; background: #ffffff; pointer-events: none;}
+	.br_lookbook_view.cont_txts .text_cont.active { display:block;}
 
 	.content.br_lookbook_view.cont_items {padding-top:120px; padding-bottom:120px; background:#f5f5f5;}
 	.br_lookbook_view.cont_items .cont_head h3 {margin-bottom:40px; color:#222; font-size:24px; font-weight:500;}
 	.br_lookbook_view.cont_items .cont_head h3 span.number {margin-left:4px; color:#888; font-weight:200;}
 	.br_lookbook_view.cont_items .cont_head .btn {position:absolute; right:0; bottom:0; padding:13px 24px; font-size:14px; font-weight:300; height:42px;}
 	.br_lookbook_view.cont_items .cont_head .btn span {display:inline-block; line-height:1;}
+	.br_lookbook_view.cont_items .items_outside {background: #f5f5f5;}
+	.br_lookbook_view.cont_items .items_inside {background: #f5f5f5;}
+	.br_lookbook_view.cont_items .items_outside .itemsOut {display: none;}
+	.br_lookbook_view.cont_items .items_outside .itemsOut.active {display: block;} 
+	
 	.br_lookbook_view.cont_items .area_slider {position:relative; width:100%; box-sizing:border-box;}
 	.br_lookbook_view.cont_items .area_slider .swiper-wrapper {padding-bottom:60px;}
 	.br_lookbook_view.cont_items .area_slider .swiper-container .item_prod {width:100%;}

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

@@ -384,10 +384,10 @@
 .main_deal .cont_head a {margin:30px 0;display:block;line-height:0;padding:0; color:#ddd; font-size:16px; font-weight:200;}
 .main_deal .cont_head a span::after{content:"〉";font-size:12px;padding-left:8px;}				
 .main_deal .cont_body {width:calc(100% - 520px);float:left;background:#f5f5f5;padding-top:80px;padding-bottom:80px;padding-left:100px;padding-right:140px;}
-.main_deal .deal_progress {width:266px; position:relative; margin:95px 0 40px;}
+.main_deal .deal_progress {width:266px; position:relative; margin:95px 0 40px;    overflow: visible;}
 .main_deal .deal_progress .bar_bg {width:100%; height:4px; background:#fd4802;}
 .main_deal .deal_progress .bar_current {background:#333; position:absolute; top:0; left:0; height:4px; z-index:2; max-width:100%;}
-.main_deal .deal_progress .bar_current span {position:absolute; right:-31px; top:-45px; background:#fd4802; padding:8px 10px; font-size:14px; color:#fff; font-weight:300; letter-spacing:0.1em;}
+.main_deal .deal_progress .bar_current span {width: 62px; z-index: 3; position:absolute; right:-31px; top:-45px; background:#fd4802; padding:8px 10px; font-size:14px; color:#fff; font-weight:300; letter-spacing:0.1em;}
 .main_deal .deal_progress .bar_current span:after {content:''; position:absolute; left:50%; bottom:-10px; border:5px solid transparent; transform:translateX(-50%); border-top:5px solid #fd4802;}
 .main_deal .count {}
 .main_deal .count .hotdeal:after {content:''; display:block; clear:both;}

+ 5 - 0
src/main/webapp/ux/pc/js/common-ui.js

@@ -404,6 +404,11 @@ $(document).ready( function() {
 		return false;
 	});
 
+	// $(".jquery-modal").modal({
+	// 	escapeClose: false,
+	// 	clickClose: false
+	// });
+
 
 	/* 같은 데이터 노출시 동일 영역끼리 병합 */
 	$(".merge_row").each(function() {

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/ux/pc/js/jquery.modal.min.js


Некоторые файлы не были показаны из-за большого количества измененных файлов