Bladeren bron

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

swkim 4 jaren geleden
bovenliggende
commit
f3a7e5728d
42 gewijzigde bestanden met toevoegingen van 855 en 256 verwijderingen
  1. 13 1
      src/main/java/com/style24/front/biz/dao/TsfGoodsDao.java
  2. 9 0
      src/main/java/com/style24/front/biz/dao/TsfKollusDao.java
  3. 16 44
      src/main/java/com/style24/front/biz/service/TsfCustomerService.java
  4. 14 0
      src/main/java/com/style24/front/biz/service/TsfGoodsService.java
  5. 11 0
      src/main/java/com/style24/front/biz/service/TsfKollusService.java
  6. 1 0
      src/main/java/com/style24/front/biz/web/TsfCustomerController.java
  7. 10 1
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  8. 23 42
      src/main/java/com/style24/front/biz/web/TsfGoodsController.java
  9. 16 0
      src/main/java/com/style24/front/biz/web/TsfKollusUploadController.java
  10. 2 1
      src/main/java/com/style24/front/support/security/handler/TsfLoginSuccessHandler.java
  11. 32 0
      src/main/java/com/style24/persistence/domain/GoodsContents.java
  12. 7 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml
  13. 24 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  14. 13 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfKollus.xml
  15. BIN
      src/main/webapp/WEB-INF/lib/Istyle-1.3.jar
  16. 64 0
      src/main/webapp/WEB-INF/views/mob/display/BrandMainFormMob.html
  17. 27 4
      src/main/webapp/WEB-INF/views/mob/display/CategoryGoodsListFormMob.html
  18. 21 4
      src/main/webapp/WEB-INF/views/mob/display/CategoryMainFormMob.html
  19. 92 23
      src/main/webapp/WEB-INF/views/mob/display/MallMainFormMob.html
  20. 41 11
      src/main/webapp/WEB-INF/views/mob/display/OutletMainFormMob.html
  21. 17 0
      src/main/webapp/WEB-INF/views/mob/display/SearchGoodsListFormMob.html
  22. 20 21
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDescFormMob.html
  23. 22 22
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html
  24. 6 0
      src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListFormMob.html
  25. 1 1
      src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html
  26. 1 3
      src/main/webapp/WEB-INF/views/web/common/fragments/GnbWeb.html
  27. 50 0
      src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html
  28. 28 6
      src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html
  29. 13 0
      src/main/webapp/WEB-INF/views/web/display/CategoryMainFormWeb.html
  30. 139 14
      src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html
  31. 21 0
      src/main/webapp/WEB-INF/views/web/display/OutletMainFormWeb.html
  32. 17 0
      src/main/webapp/WEB-INF/views/web/display/SearchGoodsListFormWeb.html
  33. 1 1
      src/main/webapp/WEB-INF/views/web/display/SearchLayerWeb.html
  34. 25 23
      src/main/webapp/WEB-INF/views/web/goods/GoodsDealDescFormWeb.html
  35. 25 19
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  36. 3 3
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html
  37. 1 1
      src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html
  38. 1 1
      src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html
  39. 7 2
      src/main/webapp/biz/goods.js
  40. 15 4
      src/main/webapp/biz/search.js
  41. 5 3
      src/main/webapp/ux/mo/css/style24_m.css
  42. 1 1
      src/main/webapp/ux/pc/css/main.css

+ 13 - 1
src/main/java/com/style24/front/biz/dao/TsfGoodsDao.java

@@ -9,6 +9,7 @@ import com.style24.persistence.domain.Delivery;
 import com.style24.persistence.domain.Freegift;
 import com.style24.persistence.domain.Freegift;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.GoodsCompose;
 import com.style24.persistence.domain.GoodsCompose;
+import com.style24.persistence.domain.GoodsContents;
 import com.style24.persistence.domain.GoodsDesc;
 import com.style24.persistence.domain.GoodsDesc;
 import com.style24.persistence.domain.GoodsImg;
 import com.style24.persistence.domain.GoodsImg;
 import com.style24.persistence.domain.GoodsNotiInfo;
 import com.style24.persistence.domain.GoodsNotiInfo;
@@ -228,7 +229,18 @@ public interface TsfGoodsDao {
 	 * @date 2021. 3. 7
 	 * @date 2021. 3. 7
 	 */
 	 */
 	Collection<Notice> getGoodsNoticeList(Goods goods);
 	Collection<Notice> getGoodsNoticeList(Goods goods);
-
+	
+	/**
+	 * 상세용 컨텐츠 목록
+	 *
+	 * @param goodsContents
+	 * @return
+	 * @author eskim
+	 * @date 2021. 07. 14
+	 */
+	Collection<GoodsContents> getGoodsContentsList(GoodsContents goodsContents);
+	
+	
 	/**
 	/**
 	 * 상품  안전인증 정보
 	 * 상품  안전인증 정보
 	 *
 	 *

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

@@ -43,5 +43,14 @@ public interface TsfKollusDao {
 	 * @since 2021. 4. 19
 	 * @since 2021. 4. 19
 	 */
 	 */
 	void updateDisplayVideo(KollusResult result);
 	void updateDisplayVideo(KollusResult result);
+	
+	/**
+	 * 카테노이드 Kollus 상품 상세 동영상 업로드 결과 처리
+	 * @param result - 업로드결과 정보
+	 * @author eskim
+	 * @since 2021. 7. 15
+	 */
+	void updateGoodsDescVideo(KollusResult result);
+
 
 
 }
 }

+ 16 - 44
src/main/java/com/style24/front/biz/service/TsfCustomerService.java

@@ -261,11 +261,7 @@ public class TsfCustomerService {
 	@Transactional("shopTxnManager")
 	@Transactional("shopTxnManager")
 	public boolean saveJoinCustomer(Customer customer) {
 	public boolean saveJoinCustomer(Customer customer) {
 		boolean isJoin = true;
 		boolean isJoin = true;
-
-		if (customer.getBirthYmd().length() == 8) {
-			String birthMm = customer.getBirthYmd().substring(4, 6);
-			customer.setBirthMm(birthMm);
-		}
+		customer.initBirthMm();
 		customer.setHypenCellPhone();
 		customer.setHypenCellPhone();
 		customer.encryptData();
 		customer.encryptData();
 		customer.setEncodedPasswd(passwordEncoder.encodeSha256(customer.getPasswd()));
 		customer.setEncodedPasswd(passwordEncoder.encodeSha256(customer.getPasswd()));
@@ -315,11 +311,8 @@ public class TsfCustomerService {
 	@Transactional("shopTxnManager")
 	@Transactional("shopTxnManager")
 	public boolean saveJoinCustomerSns(Customer customer) {
 	public boolean saveJoinCustomerSns(Customer customer) {
 		boolean isJoin = true;
 		boolean isJoin = true;
-		if (customer.getBirthYmd().length() == 8) {
-			String birthMm = customer.getBirthYmd().substring(4, 6);
-			customer.setBirthMm(birthMm);
-		}
 		String snsId = customer.getSnsType().equals(TscConstants.SnsType.YES24.value()) ? customer.getMemNo() : customer.getSnsId();
 		String snsId = customer.getSnsType().equals(TscConstants.SnsType.YES24.value()) ? customer.getMemNo() : customer.getSnsId();
+		customer.initBirthMm();
 		customer.setEncodedPasswd(" ");
 		customer.setEncodedPasswd(" ");
 		customer.setCustId(customer.getSnsType() + "_" + snsId);
 		customer.setCustId(customer.getSnsType() + "_" + snsId);
 		customer.encryptData();
 		customer.encryptData();
@@ -424,10 +417,14 @@ public class TsfCustomerService {
 			}
 			}
 
 
 			if (TscConstants.CustStat.ACTIVE.value().equals(custInfo.getCustStat())) {
 			if (TscConstants.CustStat.ACTIVE.value().equals(custInfo.getCustStat())) {
+
 				custInfo.setSnsId(custSnsInfo.getSnsId());
 				custInfo.setSnsId(custSnsInfo.getSnsId());
 				custInfo.setSnsType(custSnsInfo.getSnsType());
 				custInfo.setSnsType(custSnsInfo.getSnsType());
 				customerDao.createCustomerSns(custInfo);
 				customerDao.createCustomerSns(custInfo);
+
 				resultMap.setString("custStat", "SUCC_CUST");
 				resultMap.setString("custStat", "SUCC_CUST");
+				resultMap.setString("snsId", custSnsInfo.getSnsId());
+				resultMap.setString("snsType", custSnsInfo.getSnsType());
 				return resultMap;
 				return resultMap;
 			}
 			}
 
 
@@ -437,29 +434,24 @@ public class TsfCustomerService {
 				resultMap.setString("custStat", "EMPTY_PHONE_CUST");
 				resultMap.setString("custStat", "EMPTY_PHONE_CUST");
 				return resultMap;
 				return resultMap;
 			}
 			}
-
 			boolean isFindByPhone = getCustomerFindByCellPhnnoCount(custSnsInfo.getCellPhnno().replace("-", ""));
 			boolean isFindByPhone = getCustomerFindByCellPhnnoCount(custSnsInfo.getCellPhnno().replace("-", ""));
 			if (isFindByPhone) {
 			if (isFindByPhone) {
 				resultMap.setString("custStat", "DUP_PHONE_CUST"); // 휴대폰 중복
 				resultMap.setString("custStat", "DUP_PHONE_CUST"); // 휴대폰 중복
 				return resultMap;
 				return resultMap;
 			}
 			}
-
 			boolean isFindByEmail = getCustomerFindByEmailCount(custSnsInfo.getEmail());
 			boolean isFindByEmail = getCustomerFindByEmailCount(custSnsInfo.getEmail());
 			if (isFindByEmail) {
 			if (isFindByEmail) {
 				resultMap.setString("custStat", "DUP_EMAIL_CUST"); // 이메일 중복
 				resultMap.setString("custStat", "DUP_EMAIL_CUST"); // 이메일 중복
 				return resultMap;
 				return resultMap;
 			}
 			}
-
 			Customer customer = objectMapper.convertValue(custSnsInfo, Customer.class);
 			Customer customer = objectMapper.convertValue(custSnsInfo, Customer.class);
 			boolean isJoin = saveJoinCustomerSns(customer);
 			boolean isJoin = saveJoinCustomerSns(customer);
-
-			if (isJoin) {
-				resultMap.setString("custNo", String.valueOf(customer.getCustNo()));
-				resultMap.setString("custStat", "NEW_CUST");
-			} else {
+			if (!isJoin) {
 				resultMap.setString("custStat", "FAIL_CUST");
 				resultMap.setString("custStat", "FAIL_CUST");
+				return resultMap;
 			}
 			}
-
+			resultMap.setString("custNo", String.valueOf(customer.getCustNo()));
+			resultMap.setString("custStat", "NEW_CUST");
 		}
 		}
 
 
 		return resultMap;
 		return resultMap;
@@ -594,10 +586,7 @@ public class TsfCustomerService {
 		customer.setSiteCd(TscConstants.Site.STYLE24.value());
 		customer.setSiteCd(TscConstants.Site.STYLE24.value());
 		customer.setCustId(custId);
 		customer.setCustId(custId);
 		String maskingCustId = customerDao.getCustomerMaxCustId(customer);
 		String maskingCustId = customerDao.getCustomerMaxCustId(customer);
-
-		maskingCustId = MaskingUtils.id(maskingCustId);
-
-		return maskingCustId;
+		return MaskingUtils.id(maskingCustId);
 	}
 	}
 
 
 	/**
 	/**
@@ -613,10 +602,7 @@ public class TsfCustomerService {
 		customer.setEmail(email);
 		customer.setEmail(email);
 		customer.encryptData();
 		customer.encryptData();
 		String maskingCustId = customerDao.getCustomerMaxCustId(customer);
 		String maskingCustId = customerDao.getCustomerMaxCustId(customer);
-
-		maskingCustId = MaskingUtils.id(maskingCustId);
-
-		return maskingCustId;
+		return MaskingUtils.id(maskingCustId);
 	}
 	}
 
 
 	/**
 	/**
@@ -631,12 +617,8 @@ public class TsfCustomerService {
 		customer.setSiteCd(TscConstants.Site.STYLE24.value());
 		customer.setSiteCd(TscConstants.Site.STYLE24.value());
 		customer.setCellPhnno(cellPhnno);
 		customer.setCellPhnno(cellPhnno);
 		customer.encryptData();
 		customer.encryptData();
-
 		String maskingCustId = customerDao.getCustomerMaxCustId(customer);
 		String maskingCustId = customerDao.getCustomerMaxCustId(customer);
-
-		maskingCustId = MaskingUtils.id(maskingCustId);
-
-		return maskingCustId;
+		return MaskingUtils.id(maskingCustId);
 	}
 	}
 
 
 	/**
 	/**
@@ -651,12 +633,8 @@ public class TsfCustomerService {
 		customer.setSiteCd(TscConstants.Site.STYLE24.value());
 		customer.setSiteCd(TscConstants.Site.STYLE24.value());
 		customer.setCi(ci);
 		customer.setCi(ci);
 		customer.encryptData();
 		customer.encryptData();
-
 		String maskingCustId = customerDao.getCustomerMaxCustId(customer);
 		String maskingCustId = customerDao.getCustomerMaxCustId(customer);
-
-		maskingCustId = MaskingUtils.id(maskingCustId);
-
-		return maskingCustId;
+		return MaskingUtils.id(maskingCustId);
 	}
 	}
 
 
 	/**
 	/**
@@ -744,10 +722,7 @@ public class TsfCustomerService {
 	@Transactional("shopTxnManager")
 	@Transactional("shopTxnManager")
 	public GagaMap saveCertification(Customer customer) {
 	public GagaMap saveCertification(Customer customer) {
 		GagaMap resultMap = new GagaMap();
 		GagaMap resultMap = new GagaMap();
-		if (customer.getBirthYmd().length() == 8) {
-			String birthMm = customer.getBirthYmd().substring(4, 6);
-			customer.setBirthMm(birthMm);
-		}
+		customer.initBirthMm();
 		customer.setRegNo(customer.getCustNo());
 		customer.setRegNo(customer.getCustNo());
 		customer.setUpdNo(customer.getCustNo());
 		customer.setUpdNo(customer.getCustNo());
 		customer.setHypenCellPhone();
 		customer.setHypenCellPhone();
@@ -837,10 +812,7 @@ public class TsfCustomerService {
 	@Transactional("shopTxnManager")
 	@Transactional("shopTxnManager")
 	public GagaMap updateCustomerAuth(Customer customer) {
 	public GagaMap updateCustomerAuth(Customer customer) {
 		GagaMap result = new GagaMap();
 		GagaMap result = new GagaMap();
-		if (customer.getBirthYmd().length() == 8) {
-			String birthMm = customer.getBirthYmd().substring(4, 6);
-			customer.setBirthMm(birthMm);
-		}
+		customer.initBirthMm();
 		customer.setRegNo(customer.getCustNo());
 		customer.setRegNo(customer.getCustNo());
 		customer.setUpdNo(customer.getCustNo());
 		customer.setUpdNo(customer.getCustNo());
 		customer.setHypenCellPhone();
 		customer.setHypenCellPhone();

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

@@ -19,6 +19,7 @@ import com.style24.persistence.domain.Delivery;
 import com.style24.persistence.domain.Freegift;
 import com.style24.persistence.domain.Freegift;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.GoodsCompose;
 import com.style24.persistence.domain.GoodsCompose;
+import com.style24.persistence.domain.GoodsContents;
 import com.style24.persistence.domain.GoodsDesc;
 import com.style24.persistence.domain.GoodsDesc;
 import com.style24.persistence.domain.GoodsImg;
 import com.style24.persistence.domain.GoodsImg;
 import com.style24.persistence.domain.GoodsNotiInfo;
 import com.style24.persistence.domain.GoodsNotiInfo;
@@ -539,6 +540,19 @@ public class TsfGoodsService {
 	public Collection<Notice> getGoodsNoticeList(Goods goods) {
 	public Collection<Notice> getGoodsNoticeList(Goods goods) {
 		return goodsDao.getGoodsNoticeList(goods);
 		return goodsDao.getGoodsNoticeList(goods);
 	}
 	}
+	
+	/**
+	 * 상세용 컨텐츠 목록
+	 * @param goodsContents
+	 * @return
+	 * @author eskim
+	 * @since 2021. 07. 14
+	 */
+	public Collection<GoodsContents> getGoodsContentsList(GoodsContents goodsContents) {
+		return goodsDao.getGoodsContentsList(goodsContents);
+	}
+	
+	
 
 
 	/**
 	/**
 	 * 상품  안전인증 정보
 	 * 상품  안전인증 정보

+ 11 - 0
src/main/java/com/style24/front/biz/service/TsfKollusService.java

@@ -56,4 +56,15 @@ public class TsfKollusService {
 		kollusDao.updateDisplayVideo(result);
 		kollusDao.updateDisplayVideo(result);
 	}
 	}
 
 
+	/**
+	 * 카테노이드 Kollus 상품 상세 동영상 업로드 결과 처리
+	 * @param goods
+	 * @author eskim
+	 * @since 2021. 7. 15
+	 */
+	@Transactional("shopTxnManager")
+	public void updateGoodsDescVideoResult(KollusResult result) {
+		kollusDao.updateGoodsDescVideo(result);
+	}
+
 }
 }

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

@@ -1023,6 +1023,7 @@ public class TsfCustomerController extends TsfBaseController {
 	public ModelAndView getPrivacyPolicyLayer(HttpServletRequest request) {
 	public ModelAndView getPrivacyPolicyLayer(HttpServletRequest request) {
 		ModelAndView mav = new ModelAndView();
 		ModelAndView mav = new ModelAndView();
 		mav.addObject("clause", clauseService.getClause(TscConstants.Site.STYLE24.value(), "G057_11"));
 		mav.addObject("clause", clauseService.getClause(TscConstants.Site.STYLE24.value(), "G057_11"));
+		mav.addObject("clauseList", clauseService.getClauseList(TscConstants.Site.STYLE24.value(), "G057_11"));
 		mav.addObject("mallGb", request.getParameter("mallGb"));
 		mav.addObject("mallGb", request.getParameter("mallGb"));
 		mav.setViewName(super.getDeviceViewName("customer/PrivacyPolicyLayerForm"));
 		mav.setViewName(super.getDeviceViewName("customer/PrivacyPolicyLayerForm"));
 		return mav;
 		return mav;

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

@@ -9,6 +9,7 @@ import java.util.HashMap;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 
 
+import com.gagaframework.web.util.GagaStringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.mobile.device.Device;
 import org.springframework.mobile.device.Device;
@@ -272,7 +273,15 @@ public class TsfDisplayController extends TsfBaseController {
 	public Collection<Contents> getGnbTopBannerList(Contents contents, @RequestParam(value = "contentsLoc") String contentsLoc) {
 	public Collection<Contents> getGnbTopBannerList(Contents contents, @RequestParam(value = "contentsLoc") String contentsLoc) {
 		contents.setContentsLoc(contentsLoc);
 		contents.setContentsLoc(contentsLoc);
 		contents.setMaxRow(1);
 		contents.setMaxRow(1);
-		return displayService.getContentsList(contents);
+		Collection<Contents> bannerList = displayService.getContentsList(contents);
+
+		for(Contents tempContents : bannerList){
+			tempContents.setHtml(GagaStringUtil.replace(GagaStringUtil.replace(tempContents.getHtml(), "&lt;", "<"), "&gt;", ">"));
+		}
+
+		log.info("getGnbTopBannerList>>>>{}",bannerList);
+
+		return bannerList;
 	}
 	}
 
 
 //	/**
 //	/**

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

@@ -37,10 +37,10 @@ import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.TscPageRequest;
 import com.style24.persistence.TscPageRequest;
 import com.style24.persistence.domain.CardPromotion;
 import com.style24.persistence.domain.CardPromotion;
 import com.style24.persistence.domain.CommonCode;
 import com.style24.persistence.domain.CommonCode;
-import com.style24.persistence.domain.Contents;
 import com.style24.persistence.domain.Counsel;
 import com.style24.persistence.domain.Counsel;
 import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.Goods;
+import com.style24.persistence.domain.GoodsContents;
 import com.style24.persistence.domain.GoodsStock;
 import com.style24.persistence.domain.GoodsStock;
 import com.style24.persistence.domain.GoodsVideo;
 import com.style24.persistence.domain.GoodsVideo;
 import com.style24.persistence.domain.Lookbook;
 import com.style24.persistence.domain.Lookbook;
@@ -131,7 +131,6 @@ public class TsfGoodsController extends TsfBaseController {
 		if ("Y".equals(mobileYn)) {
 		if ("Y".equals(mobileYn)) {
 			paramsGoods.setFrontGb("M");
 			paramsGoods.setFrontGb("M");
 		}
 		}
-
 		
 		
 		if (StringUtils.isBlank(paramsGoods.getGoodsCd())) {
 		if (StringUtils.isBlank(paramsGoods.getGoodsCd())) {
 //			if (StringUtils.isBlank(afLinkCd)) {
 //			if (StringUtils.isBlank(afLinkCd)) {
@@ -201,9 +200,8 @@ public class TsfGoodsController extends TsfBaseController {
 		goodsVideo.setGoodsCd(paramsGoods.getGoodsCd());
 		goodsVideo.setGoodsCd(paramsGoods.getGoodsCd());
 		goodsVideo.setMaxRownum(1);
 		goodsVideo.setMaxRownum(1);
 		mav.addObject("goodsVideoList", goodsService.getVideoList(goodsVideo));
 		mav.addObject("goodsVideoList", goodsService.getVideoList(goodsVideo));
-		// 상품 공지
-		mav.addObject("goodsNoticeList", goodsService.getGoodsNoticeList(paramsGoods));
-
+		
+		
 		int goodsReviewCnt = 0;
 		int goodsReviewCnt = 0;
 		if (TscConstants.GoodsType.DEAL.value().equals(goods.getGoodsType())) {	// 딜상품
 		if (TscConstants.GoodsType.DEAL.value().equals(goods.getGoodsType())) {	// 딜상품
 
 
@@ -313,10 +311,6 @@ public class TsfGoodsController extends TsfBaseController {
 			//다다익선
 			//다다익선
 			paramsGoods.setMaxRownum(20);
 			paramsGoods.setMaxRownum(20);
 			mav.addObject("goodsList", goodsService.getTmtbGoodsList(paramsGoods));
 			mav.addObject("goodsList", goodsService.getTmtbGoodsList(paramsGoods));
-//			if (!"P".equals(goods.getFrontGb())) {
-//				paramsGoods.setMaxRownum(20);
-//				mav.addObject("goodsList", goodsService.getTmtbGoodsList(paramsGoods));
-//			}
 
 
 			// pc 추천 영역
 			// pc 추천 영역
 			if ("P".equals(paramsGoods.getFrontGb())) {
 			if ("P".equals(paramsGoods.getFrontGb())) {
@@ -333,28 +327,20 @@ public class TsfGoodsController extends TsfBaseController {
 				mav.addObject("likeGoodsList", eigeneaiApi.getSameCategoryRelatedGoodsList(15,goods.getGoodsCd()));
 				mav.addObject("likeGoodsList", eigeneaiApi.getSameCategoryRelatedGoodsList(15,goods.getGoodsCd()));
 
 
 			}
 			}
-
-			// 상품 공통 베너
-			log.info("paramsGoods={}", paramsGoods);
-			Contents contents = new Contents();
-			contents.setContentsLoc("SPM001");
-			contents.setPreview(paramsGoods.getPreview());
-			contents.setViewDt(paramsGoods.getViewDt());
-			contents.setMaxRow(1);
-			contents.setCateNo(1714);
-			mav.addObject("goodsBannerList", displayService.getContentsList(contents));
+			
+			// 상품 공지
+			mav.addObject("goodsNoticeList", goodsService.getGoodsNoticeList(paramsGoods));
+			
+			GoodsContents goodsContents = new GoodsContents();
+			goodsContents.setGoodsCd(paramsGoods.getGoodsCd());
+			// 상세용 동영상
+			goodsContents.setGoodsContentsType("G086_1"); //동영상 -1건
+			mav.addObject("goodsDescVideoList", goodsService.getGoodsContentsList(goodsContents));
+			// 상세용 베너
+			goodsContents.setGoodsContentsType("G086_2"); //베너 -1건
+			mav.addObject("goodsDescBannerList", goodsService.getGoodsContentsList(goodsContents));
 		}
 		}
 
 
-		// 상품 문의건수
-//		Counsel counsel = new Counsel();
-//		counsel.setRelGoodsCd(goods.getGoodsCd());
-//		counsel.setSiteCd(TscConstants.Site.STYLE24.value());
-//		counsel.setGoodsType(goods.getGoodsType());	 // 딜상품(G056_D)일 경우 구성상품의 상품평수 
-//		int goodsQnaCnt = counselService.getGoodsQnaTotalCount(counsel);
-//		mav.addObject("goodsQnaCnt", goodsQnaCnt);
-
-//		// 상품포인트사용방법
-//		mav.addObject("goodsPointMothod", envsetService.getPointMothod(TscConstants.Site.STYLE24.value())); // A:정액, R:정율
 		// 상품평노출여부 
 		// 상품평노출여부 
 		//mav.addObject("reviewDisplayYn", envsetService.getGoodsReviewDisplayYn(TscConstants.Site.STYLE24.value()));
 		//mav.addObject("reviewDisplayYn", envsetService.getGoodsReviewDisplayYn(TscConstants.Site.STYLE24.value()));
 		mav.addObject("reviewDisplayYn", "Y");
 		mav.addObject("reviewDisplayYn", "Y");
@@ -1300,19 +1286,14 @@ public class TsfGoodsController extends TsfBaseController {
 		// 상품 안전인증 정보
 		// 상품 안전인증 정보
 		mav.addObject("goodsSafeNo", goodsService.getGoodsSafeNo(goods));
 		mav.addObject("goodsSafeNo", goodsService.getGoodsSafeNo(goods));
 
 
-		// 상품 공통 베너
-		log.info("paramsGoods={}", paramsGoods);
-		Contents contents = new Contents();
-		contents.setContentsLoc("SPM001");
-		contents.setPreview(paramsGoods.getPreview());
-		contents.setViewDt(paramsGoods.getViewDt());
-		contents.setMaxRow(1);
-		if ("P".equals(paramsGoods.getFrontGb())) {
-			contents.setCateNo(1714);
-		} else {
-			contents.setCateNo(1724);
-		}
-		mav.addObject("goodsBannerList", displayService.getContentsList(contents));
+		GoodsContents goodsContents = new GoodsContents();
+		goodsContents.setGoodsCd(paramsGoods.getGoodsCd());
+		// 상세용 동영상
+		goodsContents.setGoodsContentsType("G086_1"); //동영상 -1건
+		mav.addObject("goodsDescVideoList", goodsService.getGoodsContentsList(goodsContents));
+		// 상세용 베너
+		goodsContents.setGoodsContentsType("G086_2"); //베너 -1건
+		mav.addObject("goodsDescBannerList", goodsService.getGoodsContentsList(goodsContents));
 
 
 		mav.addObject("params", paramsGoods);
 		mav.addObject("params", paramsGoods);
 
 

+ 16 - 0
src/main/java/com/style24/front/biz/web/TsfKollusUploadController.java

@@ -79,4 +79,20 @@ public class TsfKollusUploadController extends TsfBaseController {
 		return super.ok();
 		return super.ok();
 	}
 	}
 
 
+	/**
+	 * 상품 상세 동영상 업로드 결과
+	 * @author eskim
+	 * @since 2021. 7. 15
+	 */
+	@RequestMapping("/goods/desc/upload/result")
+	@ResponseBody
+	public GagaResponse updateGoodsDescVideoResult(KollusResult result) {
+		log.info("{}", result);
+
+		if (StringUtils.isNotBlank(result.getMedia_content_key()) && StringUtils.isNotBlank(result.getUpload_file_key())) {
+			kollusService.updateGoodsDescVideoResult(result);
+		}
+
+		return super.ok();
+	}
 }
 }

+ 2 - 1
src/main/java/com/style24/front/support/security/handler/TsfLoginSuccessHandler.java

@@ -51,7 +51,8 @@ public class TsfLoginSuccessHandler implements AuthenticationSuccessHandler {
 		"/customer/dormant/certify/form",			// 휴면해제화면
 		"/customer/dormant/certify/form",			// 휴면해제화면
 		"/customer/dormant/certify/complete/form",	// 휴면해제완료
 		"/customer/dormant/certify/complete/form",	// 휴면해제완료
 		"/customer/certification/form",				// 본인인증화면
 		"/customer/certification/form",				// 본인인증화면
-		"/customer/noncust/order/confirm/form"		// 비회원주문화면
+		"/customer/noncust/order/confirm/form",		// 비회원주문화면
+		"/customer/consent/useinfo/form"			// YES24동의화면
 	};
 	};
 
 
 	private static final int CHANG_PWD_CAMPAIGN_DAY = 90;	// 비밀번호 변경 캠페인일자
 	private static final int CHANG_PWD_CAMPAIGN_DAY = 90;	// 비밀번호 변경 캠페인일자

+ 32 - 0
src/main/java/com/style24/persistence/domain/GoodsContents.java

@@ -0,0 +1,32 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 상품상세노출컨텐츠 Domain
+ *
+ * @author eskim
+ * @since 2021. 07. 14
+ */
+@SuppressWarnings("serial")
+@Data
+public class GoodsContents extends TscBaseDomain {
+
+	private Integer goodsContentsSq;	//상품상세노출컨텐츠일련번호
+	private String goodsContentsType; 	//상품상세노출컨텐츠유형(공통코드G086)
+	private String goodsContentsTitle; 	//상품상세노출컨텐츠제목
+	private String goodsContentsStdt; 	//상품상세노출컨텐츠시작일시
+	private String goodsContentsEddt; 	//상품상세노출컨텐츠종료일시
+	private String goodsContentsVideoGubun;	//상품상세노출컨텐츠유형-동영상구분(Y:유투브,M:MP4)
+	private String kmcKey; 	//동영상값(동영상구분이Y이면 유투브ID,M이면동영상Kollus의media_content_key)
+	private String kufKey; 	//동영상Kollus의upload_file_key
+	private String imgPath; //이미지경로
+	private String linkUrl; //링크URL1
+	private String linkTarget; //링크새창구분(S:본창,N:새창)
+	private String useYn;	// 사용여부
+	private String goodsCd;	//상품코드
+
+	
+}

+ 7 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -1312,6 +1312,8 @@
 		      , Z.SUB_TEXT1
 		      , Z.SUB_TEXT1
 		      , Z.SUB_TEXT2
 		      , Z.SUB_TEXT2
 		FROM    (
 		FROM    (
+		    SELECT *
+		    FROM   (
 		            SELECT  'ADMIN' AS BANNER_GB
 		            SELECT  'ADMIN' AS BANNER_GB
 		                  , IMG_PATH1
 		                  , IMG_PATH1
 		                  , STR_VAR1
 		                  , STR_VAR1
@@ -1333,6 +1335,11 @@
 		            AND     USE_YN = 'Y'
 		            AND     USE_YN = 'Y'
 		            AND    DISP_STDT <![CDATA[<=]]> NOW()
 		            AND    DISP_STDT <![CDATA[<=]]> NOW()
 		            AND    DISP_EDDT <![CDATA[>=]]> NOW()
 		            AND    DISP_EDDT <![CDATA[>=]]> NOW()
+		            ORDER BY  DISP_ORD
+		        <if test="maxRow != null and maxRow != ''">
+		            LIMIT #{maxRow}
+		        </if>
+		    ) AS TC
 		            UNION ALL
 		            UNION ALL
 		            SELECT  'PLAN' AS BANNER_GB
 		            SELECT  'PLAN' AS BANNER_GB
 		                  , A.MAIN_PIMG AS IMG_PATH1
 		                  , A.MAIN_PIMG AS IMG_PATH1

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

@@ -3739,4 +3739,28 @@
 		ORDER  BY Z.RK
 		ORDER  BY Z.RK
 	</select>
 	</select>
 	
 	
+	<!-- 상세용 컨텐츠 목록  -->
+	<select id="getGoodsContentsList"  parameterType="GoodsContents" resultType="GoodsContents">
+		/* TsfGoods.getGoodsContentsList */
+		SELECT A.GOODS_CONTENTS_SQ
+		     , A.GOODS_CONTENTS_TYPE
+		     , A.GOODS_CONTENTS_TITLE
+		     , A.GOODS_CONTENTS_VIDEO_GUBUN
+		     , A.KMC_KEY
+		     , A.KUF_KEY
+		     , IMG_PATH
+		     , A.USE_YN
+		FROM   TB_GOODS_CONTENTS A
+		INNER JOIN TB_GOODS_CONTENTS_DATA B ON A.GOODS_CONTENTS_SQ = B.GOODS_CONTENTS_SQ
+		                             AND B.GOODS_CD = #{goodsCd}
+		WHERE  A.GOODS_CONTENTS_TYPE = #{goodsContentsType}
+		AND CURRENT_DATE() BETWEEN A.GOODS_CONTENTS_STDT AND A.GOODS_CONTENTS_EDDT
+		AND A.USE_YN  = 'Y'
+		<if test="goodsContentsType != null and goodsContentsType == 'G086_1'">
+		AND NULLIF(A.KMC_KEY,'') IS NOT NULL
+		</if>
+		ORDER  BY A.GOODS_CONTENTS_SQ DESC
+		LIMIT 1
+	</select>
+	
 </mapper>
 </mapper>

+ 13 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfKollus.xml

@@ -44,4 +44,17 @@
 		AND    STR_VAR2 = #{upload_file_key}
 		AND    STR_VAR2 = #{upload_file_key}
 	</update>
 	</update>
 	
 	
+	
+	<!-- 카테노이드 Kollus 상품 상세 동영상 업로드 결과 처리 -->
+	<update id="updateGoodsDescVideo" parameterType="KollusResult">
+		/* TsfKollus.updateGoodsDescVideo */
+		UPDATE TB_GOODS_CONTENTS
+		SET    KMC_KEY = #{media_content_key}
+		     , UPD_NO = 0
+		     , UPD_DT = NOW()
+		WHERE  KUF_KEY = #{upload_file_key}
+		AND    GOODS_CONTENTS_TYPE = 'G086_1'
+	</update>
+	
+	
 </mapper>
 </mapper>

BIN
src/main/webapp/WEB-INF/lib/Istyle-1.3.jar


+ 64 - 0
src/main/webapp/WEB-INF/views/mob/display/BrandMainFormMob.html

@@ -512,12 +512,22 @@
 	// 서브비주얼 슬라이드
 	// 서브비주얼 슬라이드
 	var myArray = ["01", "02", "03"];
 	var myArray = ["01", "02", "03"];
 	var submainVisualSwiper = new Swiper('.swiper-container.submain_visual', {
 	var submainVisualSwiper = new Swiper('.swiper-container.submain_visual', {
+		loop:true,
 		//210414_자동롤링 추가
 		//210414_자동롤링 추가
 		speed: 1000,
 		speed: 1000,
 		autoplay : {
 		autoplay : {
 			delay : 3000,   // 시간 설정
 			delay : 3000,   // 시간 설정
 			disableOnInteraction: false,
 			disableOnInteraction: false,
 		},
 		},
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			firstSlideMessage: '첫번째 슬라이드 입니다',
+			lastSlideMessage: '마지막 슬라이드 입니다',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		pagination: {
 		pagination: {
 			el: '.swiper-pagination',
 			el: '.swiper-pagination',
 			type: 'fraction',
 			type: 'fraction',
@@ -561,6 +571,15 @@
 	var newItemSwiper = new Swiper('.new_item .area_slider .swiper-container', {
 	var newItemSwiper = new Swiper('.new_item .area_slider .swiper-container', {
 		slidesPerView: 1,
 		slidesPerView: 1,
 		speed: 1000,
 		speed: 1000,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			firstSlideMessage: '첫번째 슬라이드 입니다',
+			lastSlideMessage: '마지막 슬라이드 입니다',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		pagination: {
 		pagination: {
 			el: '.swiper-pagination',
 			el: '.swiper-pagination',
 		},
 		},
@@ -571,6 +590,15 @@
 		slidesPerView: 2.22,
 		slidesPerView: 2.22,
 		speed: 1000,
 		speed: 1000,
 		spaceBetween: 8,
 		spaceBetween: 8,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			firstSlideMessage: '첫번째 슬라이드 입니다',
+			lastSlideMessage: '마지막 슬라이드 입니다',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 	});
 	});
 
 
 	// 엠디픽 슬라이드
 	// 엠디픽 슬라이드
@@ -578,6 +606,15 @@
 		slidesPerView: 2.22,
 		slidesPerView: 2.22,
 		speed: 1000,
 		speed: 1000,
 		spaceBetween: 8,
 		spaceBetween: 8,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			firstSlideMessage: '첫번째 슬라이드 입니다',
+			lastSlideMessage: '마지막 슬라이드 입니다',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 	});
 	});
 
 
 	// 스페셜샵 슬라이드
 	// 스페셜샵 슬라이드
@@ -585,6 +622,15 @@
 		slidesPerView: 1,
 		slidesPerView: 1,
 		speed: 1000,
 		speed: 1000,
 		spaceBetween: 10,
 		spaceBetween: 10,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			firstSlideMessage: '첫번째 슬라이드 입니다',
+			lastSlideMessage: '마지막 슬라이드 입니다',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 	});
 	});
 
 
 	// 룩북 슬라이드
 	// 룩북 슬라이드
@@ -592,6 +638,15 @@
 		slidesPerView: 1,
 		slidesPerView: 1,
 		spaceBetween: 0,
 		spaceBetween: 0,
 		speed: 1000,
 		speed: 1000,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			firstSlideMessage: '첫번째 슬라이드 입니다',
+			lastSlideMessage: '마지막 슬라이드 입니다',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		pagination: {
 		pagination: {
 			el: '.swiper-pagination',
 			el: '.swiper-pagination',
 			type: 'fraction',
 			type: 'fraction',
@@ -601,6 +656,15 @@
 	// 유튜브 슬라이드
 	// 유튜브 슬라이드
 	var swiperYoutu = new Swiper('.swiper-container.br_youtube_slide', {
 	var swiperYoutu = new Swiper('.swiper-container.br_youtube_slide', {
 		speed: 1000,
 		speed: 1000,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			firstSlideMessage: '첫번째 슬라이드 입니다',
+			lastSlideMessage: '마지막 슬라이드 입니다',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		pagination: {
 		pagination: {
 			el: '.swiper-pagination',
 			el: '.swiper-pagination',
 			clickable:true,
 			clickable:true,

+ 27 - 4
src/main/webapp/WEB-INF/views/mob/display/CategoryGoodsListFormMob.html

@@ -379,9 +379,9 @@
 		<input type="hidden" name="cate3No" th:value="${cateInfo.cate3No}"/>
 		<input type="hidden" name="cate3No" th:value="${cateInfo.cate3No}"/>
 		<input type="hidden" name="cate4No" th:value="${cateInfo.cate4No}"/>
 		<input type="hidden" name="cate4No" th:value="${cateInfo.cate4No}"/>
 		<input type="hidden" name="sortingType" value="NEW"/>
 		<input type="hidden" name="sortingType" value="NEW"/>
-<!--		<input type="hidden" name="newGoods" th:value="${cateInfo.formalGb=='G009_20'?'':'40'}" />-->
+		<input type="hidden" name="newGoods" th:unless="${cateInfo.formalGb=='G009_20'}" th:value="${cateInfo.formalGb=='G009_20'?'':'40'}" />
 		<input type="hidden" name="keyword" value=""/>
 		<input type="hidden" name="keyword" value=""/>
-		<input type="hidden" name="benefitArr" th:unless="${cateInfo.formalGb=='G009_20'}" th:value="${cateInfo.formalGb=='G009_20'?'':'40:신상'}"/>
+<!--		<input type="hidden" name="benefitArr" th:unless="${cateInfo.formalGb=='G009_20'}" th:value="${cateInfo.formalGb=='G009_20'?'':'40:신상'}"/>-->
 	</form>
 	</form>
 
 
 
 
@@ -992,20 +992,25 @@
 			if(thisId == 'unisex'){
 			if(thisId == 'unisex'){
 				if(stat=='on'){
 				if(stat=='on'){
 					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
 					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
+					$(obj).attr('checked', true);
 					tag += '<input type="hidden" name="unisex" value="G007_Z"/>\n';
 					tag += '<input type="hidden" name="unisex" value="G007_Z"/>\n';
 					$("#searchGoodsForm").append(tag);
 					$("#searchGoodsForm").append(tag);
 				}else{
 				}else{
 					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
 					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
+					$(obj).attr('checked', false);
 					$("#searchGoodsForm input:hidden[name=unisex]").remove();
 					$("#searchGoodsForm input:hidden[name=unisex]").remove();
 				}
 				}
 			}else{
 			}else{
 				if(stat=='on'){
 				if(stat=='on'){
 					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
 					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
-					// tag += '<input type="hidden" name="newGoods" value="40"/>\n';
-					tag += '<input type="hidden" name="benefitArr" value="40:신상"/>\n';
+					$(obj).attr('checked', true);
+					tag += '<input type="hidden" name="newGoods" value="40"/>\n';
+					// tag += '<input type="hidden" name="benefitArr" value="40:신상"/>\n';
 					$("#searchGoodsForm").append(tag);
 					$("#searchGoodsForm").append(tag);
 				}else{
 				}else{
 					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
 					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
+					$(obj).attr('checked', false);
+					$("#searchGoodsForm input:hidden[name=newGoods]").remove();
 					$("#searchGoodsForm input:hidden[name=benefitArr]").each(function(){
 					$("#searchGoodsForm input:hidden[name=benefitArr]").each(function(){
 						if($(this).val() == "40:신상"){
 						if($(this).val() == "40:신상"){
 							$(this).remove();
 							$(this).remove();
@@ -1013,6 +1018,7 @@
 					});
 					});
 				}
 				}
 			}
 			}
+			fnSetFilterHtml();
 			fnCategoryGoodsInfiniteScrollInit();
 			fnCategoryGoodsInfiniteScrollInit();
 			fnGoodsListSearch();
 			fnGoodsListSearch();
 		}
 		}
@@ -1046,6 +1052,8 @@
 			});
 			});
 			if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
 			if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
 				// if( history.scrollRestoration ) window.history.scrollRestoration = 'manual';
 				// if( history.scrollRestoration ) window.history.scrollRestoration = 'manual';
+				$("#searchGoodsForm input:hidden[name=unisex]").remove();
+				$("#searchGoodsForm input:hidden[name=newGoods]").remove();
 				var historyData = sessionStorage.getItem(document.location.href);
 				var historyData = sessionStorage.getItem(document.location.href);
 				if(historyData!=null){
 				if(historyData!=null){
 					historyData = JSON.parse(historyData);
 					historyData = JSON.parse(historyData);
@@ -1064,6 +1072,21 @@
 				if(typeof historyData.totalCount!='undefined' && historyData.totalCount!=''){
 				if(typeof historyData.totalCount!='undefined' && historyData.totalCount!=''){
 					$("#totCntId").text(historyData.totalCount);
 					$("#totCntId").text(historyData.totalCount);
 				}
 				}
+				if(gagajf.isNull($("#searchGoodsForm").find("input[name=unisex]").val())){
+					$("#unisex").attr('onclick','fnFilterOption(this,\'on\');');
+					$("#unisex").attr('checked', false);
+				}else{
+					$("#unisex").attr('onclick','fnFilterOption(this,\'off\');');
+					$("#unisex").attr('checked', true);
+				}
+
+				if(gagajf.isNull($("#searchGoodsForm").find("input[name=newGoods]").val())){
+					$("#newGoods").attr('onclick','fnFilterOption(this,\'on\');');
+					$("#newGoods").attr('checked', false);
+				}else{
+					$("#newGoods").attr('onclick','fnFilterOption(this,\'off\');');
+					$("#newGoods").attr('checked', true);
+				}
 				/*if(filterPriceList.length > 0){
 				/*if(filterPriceList.length > 0){
 					let min = 0;
 					let min = 0;
 					let max = 0;
 					let max = 0;

+ 21 - 4
src/main/webapp/WEB-INF/views/mob/display/CategoryMainFormMob.html

@@ -147,22 +147,38 @@
 		$(document).ready(function () {
 		$(document).ready(function () {
 			fnSetCategory1Depts();
 			fnSetCategory1Depts();
 
 
+			//210624_ 추가 : 슬라이드 속성 추가.
 			var swiper = new Swiper('.submain_visual .swiper-container', {
 			var swiper = new Swiper('.submain_visual .swiper-container', {
 				observer: true,
 				observer: true,
 				observeParents: true,
 				observeParents: true,
+				loop:true,
+				speed:1000,
+				a11y: {
+					enabled: true,
+					notificationClass: 'swiper-notification',
+					prevSlideMessage: '이전 슬라이드',
+					nextSlideMessage: '다음 슬라이드',
+					firstSlideMessage: '첫번째 슬라이드 입니다',
+					lastSlideMessage: '마지막 슬라이드 입니다',
+					paginationBulletMessage: '슬라이드 {{index}}로 이동',
+				},
+				autoplay : {
+					delay : 3000,   // 시간 설정
+					disableOnInteraction: false,
+				},
 				pagination: {
 				pagination: {
 					el: '.submain_visual .swiper-pagination',
 					el: '.submain_visual .swiper-pagination',
 					type: 'fraction',
 					type: 'fraction',
 				},
 				},
 			});
 			});
+
+			//210624_ 추가 : max-height 값 변경.
 			var cate = this.querySelector('.cate_wrap');
 			var cate = this.querySelector('.cate_wrap');
 			var moreOn = cate.clientHeight;
 			var moreOn = cate.clientHeight;
-			console.log('★ clientHeight : ' + moreOn);
-
-			if (moreOn < 141) {
+			if (moreOn < 137) {
 				$('.sub_category .more_btn').css({"display": "none"});
 				$('.sub_category .more_btn').css({"display": "none"});
 			}else{
 			}else{
-				$('.cate_wrap').css({"max-height": "13rem"});
+				$('.cate_wrap').css({"max-height": "14rem"});
 				$('.sub_category .more_btn').css({"display": "block"});
 				$('.sub_category .more_btn').css({"display": "block"});
 			}
 			}
 
 
@@ -179,6 +195,7 @@
 			var dp_newitem_slide = new Swiper('.new_item .swiper-container', {
 			var dp_newitem_slide = new Swiper('.new_item .swiper-container', {
 				slidesPerView: 'auto',
 				slidesPerView: 'auto',
 				spaceBetween: 8,
 				spaceBetween: 8,
+				speed:1000,
 				centerMode: true,
 				centerMode: true,
 			});
 			});
 		});
 		});

+ 92 - 23
src/main/webapp/WEB-INF/views/mob/display/MallMainFormMob.html

@@ -898,6 +898,15 @@
 				loop:false,
 				loop:false,
 				speed:1000,
 				speed:1000,
 				// pagination: false,
 				// pagination: false,
+				a11y: {
+					enabled: true,
+					notificationClass: 'swiper-notification',
+					prevSlideMessage: '이전 슬라이드',
+					nextSlideMessage: '다음 슬라이드',
+					firstSlideMessage: '첫번째 슬라이드 입니다',
+					lastSlideMessage: '마지막 슬라이드 입니다',
+					paginationBulletMessage: '슬라이드 {{index}}로 이동',
+				},
 				pagination: {
 				pagination: {
 					el: '.swiper-pagination',
 					el: '.swiper-pagination',
 					type: 'fraction',
 					type: 'fraction',
@@ -923,6 +932,15 @@
 		// post-trendy
 		// post-trendy
 		var post_trendy = new Swiper('.swiper-container.post-trendy', {
 		var post_trendy = new Swiper('.swiper-container.post-trendy', {
 			speed:1000,
 			speed:1000,
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				firstSlideMessage: '첫번째 슬라이드 입니다',
+				lastSlideMessage: '마지막 슬라이드 입니다',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 			pagination: {
 			pagination: {
 				el: '.swiper-pagination',
 				el: '.swiper-pagination',
 			},
 			},
@@ -950,6 +968,15 @@
 		var post_stylereport = new Swiper('.swiper-container.post-stylereport', {
 		var post_stylereport = new Swiper('.swiper-container.post-stylereport', {
 			slidesPerView: 1,
 			slidesPerView: 1,
 			speed:1000,
 			speed:1000,
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				firstSlideMessage: '첫번째 슬라이드 입니다',
+				lastSlideMessage: '마지막 슬라이드 입니다',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 			pagination: {
 			pagination: {
 				el: '.swiper-pagination',
 				el: '.swiper-pagination',
 			},
 			},
@@ -1020,13 +1047,24 @@
 		//post-pick-post
 		//post-pick-post
 		var post_pick = new Swiper(".pick-cont .swiper-container", {
 		var post_pick = new Swiper(".pick-cont .swiper-container", {
 			//slidesPerView: 1,
 			//slidesPerView: 1,
-			watchOverflow:true, //210520_ 추가 : 슬라이드 1개일 경우 롤링 제거.
+			loop:true,
+			// watchOverflow:true,
+			//210520_ 추가 : 슬라이드 1개일 경우 롤링 제거.
 			speed: 1000,
 			speed: 1000,
 			//210520_ 추가 : 자동재생 시간 추가.
 			//210520_ 추가 : 자동재생 시간 추가.
 			autoplay: {
 			autoplay: {
 				delay: 3000,
 				delay: 3000,
 				disableOnInteraction: false,
 				disableOnInteraction: false,
 			},
 			},
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				firstSlideMessage: '첫번째 슬라이드 입니다',
+				lastSlideMessage: '마지막 슬라이드 입니다',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 			observer: true,
 			observer: true,
 			observeParents: true
 			observeParents: true
 		});
 		});
@@ -1038,6 +1076,15 @@
 			spaceBetween: 10,
 			spaceBetween: 10,
 			autoHeight: true,
 			autoHeight: true,
 			loop:false,
 			loop:false,
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				firstSlideMessage: '첫번째 슬라이드 입니다',
+				lastSlideMessage: '마지막 슬라이드 입니다',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 		});
 		});
 		$(".recomm-head li .btn").click(function(){
 		$(".recomm-head li .btn").click(function(){
 			var recommActive = $(this).attr('data-tab');
 			var recommActive = $(this).attr('data-tab');
@@ -1057,30 +1104,34 @@
 			autoplay: false,
 			autoplay: false,
 		});
 		});
 
 
+		//210705_수정 : 기획전 배너 2개이상 등록시 슬라이드 각각 실행.
 		// post-bnnWide
 		// post-bnnWide
 		// 와이드배너 슬라이드 카운팅
 		// 와이드배너 슬라이드 카운팅
-		var pickbnnWdCont = $('.post-bnnWide .swiper-slide');
-		var pickbnnWdLength = pickbnnWdCont.length;
-		if (pickbnnWdLength < 2) {
-			var post_bnnWide = new Swiper ('.swiper-container.post-bnnWide', {
-				loop: false,
-				autoplay: false,
-				pagination: false,
-			});
-		} else {
-			var post_bnnWide = new Swiper ('.swiper-container.post-bnnWide', {
-				loop: true,
-				slidesPerView: 1,
-				speed : 1000,
-				autoplay: {
-					delay: 3000,
-					disableOnInteraction: false,
-				},
-				pagination: {
-					el: '.swiper-pagination',
-				},
-			});
-		}
+		$(".main_1stage .post-bnnWide").each(function(index){
+			var pickbnnWdCont = $(this).find('.swiper-slide');
+			var pickbnnWdLength = pickbnnWdCont.length;
+			if (pickbnnWdLength < 2) {
+				var post_bnnWide = new Swiper ($(this), {
+					loop: false,
+					watchOverflow: true,
+					autoplay: false,
+					pagination: false,
+				});
+			} else {
+				var post_bnnWide = new Swiper ($(this), {
+					loop: true,
+					slidesPerView: 1,
+					speed : 1000,
+					autoplay: {
+						delay: 3000,
+						disableOnInteraction: false,
+					},
+					pagination: {
+						el: '.swiper-pagination',
+					},
+				});
+			}
+		});
 
 
 		// post-bnnEvent
 		// post-bnnEvent
 		// 이벤트배너 슬라이드 카운팅
 		// 이벤트배너 슬라이드 카운팅
@@ -1111,6 +1162,15 @@
 		// post_sug
 		// post_sug
 		var numCnt = 0;
 		var numCnt = 0;
 		var post_sug = new Swiper('.swiper-container.post-sug', {
 		var post_sug = new Swiper('.swiper-container.post-sug', {
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				firstSlideMessage: '첫번째 슬라이드 입니다',
+				lastSlideMessage: '마지막 슬라이드 입니다',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 			pagination: {
 			pagination: {
 				el: '.swiper-pagination',
 				el: '.swiper-pagination',
 			},
 			},
@@ -1220,6 +1280,15 @@
 			slidesPerView: 3,
 			slidesPerView: 3,
 			spaceBetween: 10,
 			spaceBetween: 10,
 			speed : 1000,
 			speed : 1000,
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				firstSlideMessage: '첫번째 슬라이드 입니다',
+				lastSlideMessage: '마지막 슬라이드 입니다',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 		});
 		});
 
 
 		// post-tv
 		// post-tv

+ 41 - 11
src/main/webapp/WEB-INF/views/mob/display/OutletMainFormMob.html

@@ -154,22 +154,52 @@
 				}
 				}
 			});
 			});
 
 
-			var swiper = new Swiper('.outlets_visual .swiper-container', {
-				observer: true,
-				observeParents: true,
-				pagination: {
-					el: '.outlets_visual .swiper-pagination',
-					type: 'fraction',
-				},
-				autoplay : {
-					delay : 5000,   // 시간 설정
-				},
-			});
+			//210624_ 추가 : 슬라이드 속성 추가.
+			var outletCont = $('.outlets_visual .swiper-slide');
+			var outletLength = outletCont.length;
+			if (outletLength < 2) {
+				var swiper = new Swiper('.outlets_visual .swiper-container', {
+					observer: true,
+					observeParents: true,
+					loop:false,
+					speed:1000,
+					watchOverflow: true,
+					pagination: {
+						el: '.outlets_visual .swiper-pagination',
+						type: 'fraction',
+					},
+				});
+			}else{
+				var swiper = new Swiper('.outlets_visual .swiper-container', {
+					observer: true,
+					observeParents: true,
+					loop:true,
+					speed:1000,
+					pagination: {
+						el: '.outlets_visual .swiper-pagination',
+						type: 'fraction',
+					},
+					autoplay : {
+						delay : 3000,   // 시간 설정
+						disableOnInteraction: false,
+					},
+				});
+			}
 
 
 			var dp_mditem_slide = new Swiper('.md_item .swiper-container', {
 			var dp_mditem_slide = new Swiper('.md_item .swiper-container', {
 				slidesPerView: 2,
 				slidesPerView: 2,
 				spaceBetween: 8,
 				spaceBetween: 8,
+				speed:1000,
 				centerMode: true,
 				centerMode: true,
+				a11y: {
+					enabled: true,
+					notificationClass: 'swiper-notification',
+					prevSlideMessage: '이전 슬라이드',
+					nextSlideMessage: '다음 슬라이드',
+					firstSlideMessage: '첫번째 슬라이드 입니다',
+					lastSlideMessage: '마지막 슬라이드 입니다',
+					paginationBulletMessage: '슬라이드 {{index}}로 이동',
+				},
 			});
 			});
 		});
 		});
 
 

+ 17 - 0
src/main/webapp/WEB-INF/views/mob/display/SearchGoodsListFormMob.html

@@ -625,6 +625,8 @@
 			$(this).attr('checked', true);
 			$(this).attr('checked', true);
 		});
 		});
 		if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
 		if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
+			$("#searchGoodsForm input:hidden[name=unisex]").remove();
+			$("#searchGoodsForm input:hidden[name=newGoods]").remove();
 			var historyData = sessionStorage.getItem(document.location.href);
 			var historyData = sessionStorage.getItem(document.location.href);
 			// console.log(historyData);
 			// console.log(historyData);
 			if(historyData!=null){
 			if(historyData!=null){
@@ -633,6 +635,21 @@
 			}else{
 			}else{
 				historyData = {};
 				historyData = {};
 			}
 			}
+			if(gagajf.isNull($("#searchGoodsForm").find("input[name=unisex]").val())){
+				$("#unisex").attr('onclick','fnFilterOption(this,\'on\');');
+				$("#unisex").attr('checked', false);
+			}else{
+				$("#unisex").attr('onclick','fnFilterOption(this,\'off\');');
+				$("#unisex").attr('checked', true);
+			}
+
+			if(gagajf.isNull($("#searchGoodsForm").find("input[name=newGoods]").val())){
+				$("#newGoods").attr('onclick','fnFilterOption(this,\'on\');');
+				$("#newGoods").attr('checked', false);
+			}else{
+				$("#newGoods").attr('onclick','fnFilterOption(this,\'off\');');
+				$("#newGoods").attr('checked', true);
+			}
 			// if(typeof historyData.filterHtml!='undefined' && historyData.filterHtml!=''){
 			// if(typeof historyData.filterHtml!='undefined' && historyData.filterHtml!=''){
 			// 	//console.log('historyData.filterHtml>>>'+historyData.filterHtml);
 			// 	//console.log('historyData.filterHtml>>>'+historyData.filterHtml);
 			// 	$("#searchGoodsForm").append(historyData.filterHtml);
 			// 	$("#searchGoodsForm").append(historyData.filterHtml);

+ 20 - 21
src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDescFormMob.html

@@ -40,36 +40,35 @@
 		<div class="mdhtml_box  bnnoti" th:if="${goodsNoticeList != null and !goodsNoticeList.empty}">
 		<div class="mdhtml_box  bnnoti" th:if="${goodsNoticeList != null and !goodsNoticeList.empty}">
 			<th:block  th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
 			<th:block  th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
 		</div>
 		</div>
-		<!-- 공통상품베너 -->
-		<div class="mdhtml_box  bnnoti" th:if="${goodsBannerList != null and !goodsBannerList.empty}">
-			<th:block th:each="goodsBanner, status : ${goodsBannerList}" >
-			<th:block th:if="${goodsBanner.strVar1 != null and  not #strings.equals(goodsBanner.strVar1, '#')}">
-				<div style="height:4rem"></div><!-- 여백용 html -->
-				<a th:href="${goodsBanner.strVar1}" target="_blank">
-				<img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
-				</a>
-			</th:block>
-			<th:block th:unless="${goodsBanner.strVar1 != null and  not #strings.equals(goodsBanner.strVar1, '#')}">
-				<div style="height:4rem"></div><!-- 여백용 html -->
-				<img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
-			</th:block>
-			</th:block>
-		</div>	
-		<div class="mdhtml_box">
+		<!-- 상세 동영상 노출 -->
+		<div class="mdhtml_box" th:if="${goodsDescVideoList != null and !goodsDescVideoList.empty}">
 			<!-- 관리자 에디터입력 내용   공지 html -->
 			<!-- 관리자 에디터입력 내용   공지 html -->
-			<th:block th:each="goodsVideo, status : ${goodsVideoList}">
+			<th:block th:each="goodsVideo, status : ${goodsDescVideoList}">
 			<div class="movblock">
 			<div class="movblock">
-				<th:block th:if="${goodsVideo.videoGb == 'Y'}">
+				<th:block th:if="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
 				<div style="height:4rem"></div><!-- 여백용 html -->
 				<div style="height:4rem"></div><!-- 여백용 html -->
-				<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0&mute=1'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+				<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 				</th:block>
 				</th:block>
-				<th:block th:unless="${goodsVideo.videoGb == 'Y'}">
+				<th:block th:unless="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
 				<div style="height:4rem"></div><!-- 여백용 html -->
 				<div style="height:4rem"></div><!-- 여백용 html -->
-				<iframe class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?player_version=html5&mute'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+				<iframe th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey+'?player_version=html5' }" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
 				</th:block>
 				</th:block>
 			</div>
 			</div>
 			</th:block>
 			</th:block>
 		</div>
 		</div>
+		<!-- 상세 베너 -->
+		<div class="mdhtml_box  bnnoti" th:if="${goodsDescBannerList != null and !goodsDescBannerList.empty}">
+			<th:block th:each="goodsBanner, status : ${goodsDescBannerList}" th:with="target=${(goodsBanner.linkTarget == 'N')? '_blank': '_self'}">
+			<th:block th:if="${goodsBanner.linkUrl != null and  not #strings.equals(goodsBanner.linkUrl, '#')}">
+				<div style="height:4rem"></div><!-- 여백용 html -->
+				<p><a th:href="${goodsBanner.linkUrl}" th:target="${target}"><img th:src="${imgUrl+goodsBanner.imgPath}" alt=""></a></p>
+			</th:block>
+			<th:block th:unless="${goodsBanner.linkUrl != null and  not #strings.equals(goodsBanner.linkUrl, '#')}"  >
+				<div style="height:4rem"></div><!-- 여백용 html -->
+				<p><img th:src="${imgUrl+goodsBanner.imgPath}" alt=""></p>
+			</th:block>
+			</th:block>
+		</div>	
 		<div class="mdhtml_box  bnnoti" th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }">
 		<div class="mdhtml_box  bnnoti" th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }">
 			<!-- 관리자 에디터입력 내용 노출  상단 html -->
 			<!-- 관리자 에디터입력 내용 노출  상단 html -->
 				<div style="height:4rem"></div><!-- 여백용 html -->
 				<div style="height:4rem"></div><!-- 여백용 html -->

+ 22 - 22
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html

@@ -305,37 +305,37 @@
 				<div class="mdhtml_box  bnnoti" th:if="${goodsNoticeList != null and !goodsNoticeList.empty}">
 				<div class="mdhtml_box  bnnoti" th:if="${goodsNoticeList != null and !goodsNoticeList.empty}">
 					<th:block  th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
 					<th:block  th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
 				</div>
 				</div>
-				<!-- 공통상품베너 -->
-				<div class="mdhtml_box  bnnoti" th:if="${goodsBannerList != null and !goodsBannerList.empty}">
-					<th:block th:each="goodsBanner, status : ${goodsBannerList}" >
-					<th:block th:if="${goodsBanner.strVar1 != null and  not #strings.equals(goodsBanner.strVar1, '#')}">
-						<div style="height:4rem"></div><!-- 여백용 html -->
-						<a th:href="${goodsBanner.strVar1}" target="_blank">
-						<img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
-						</a>
-					</th:block>
-					<th:block th:unless="${goodsBanner.strVar1 != null and  not #strings.equals(goodsBanner.strVar1, '#')}">
-						<div style="height:4rem"></div><!-- 여백용 html -->
-						<img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
-					</th:block>
-					</th:block>
-				</div>	
-				<!-- 관리자 에디터입력 내용 노출 -->
-				<div class="mdhtml_box" th:if="${goodsVideoList != null and !goodsVideoList.empty}">
+				<!-- 상세 동영상 노출 -->
+				<div class="mdhtml_box" th:if="${goodsDescVideoList != null and !goodsDescVideoList.empty}">
 					<!-- 관리자 에디터입력 내용   공지 html -->
 					<!-- 관리자 에디터입력 내용   공지 html -->
-					<th:block th:each="goodsVideo, status : ${goodsVideoList}">
+					<th:block th:each="goodsVideo, status : ${goodsDescVideoList}">
 					<div class="movblock">
 					<div class="movblock">
-						<th:block th:if="${goodsVideo.videoGb == 'Y'}">
+						<th:block th:if="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
 						<div style="height:4rem"></div><!-- 여백용 html -->
 						<div style="height:4rem"></div><!-- 여백용 html -->
-						<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0&mute=1'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+						<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 						</th:block>
 						</th:block>
-						<th:block th:unless="${goodsVideo.videoGb == 'Y'}">
+						<th:block th:unless="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
 						<div style="height:4rem"></div><!-- 여백용 html -->
 						<div style="height:4rem"></div><!-- 여백용 html -->
-						<iframe class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?player_version=html5&mute'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+						<iframe th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey+'?player_version=html5' }" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
 						</th:block>
 						</th:block>
 					</div>
 					</div>
 					</th:block>
 					</th:block>
 				</div>
 				</div>
+				<!-- 상세 베너 -->
+				<div class="mdhtml_box  bnnoti" th:if="${goodsDescBannerList != null and !goodsDescBannerList.empty}">
+					<th:block th:each="goodsBanner, status : ${goodsDescBannerList}" th:with="target=${(goodsBanner.linkTarget == 'N')? '_blank': '_self'}">
+					<th:block th:if="${goodsBanner.linkUrl != null and  not #strings.equals(goodsBanner.linkUrl, '#')}">
+						<div style="height:4rem"></div><!-- 여백용 html -->
+						<p><a th:href="${goodsBanner.linkUrl}" th:target="${target}"><img th:src="${imgUrl+goodsBanner.imgPath}" alt=""></a></p>
+					</th:block>
+					<th:block th:unless="${goodsBanner.linkUrl != null and  not #strings.equals(goodsBanner.linkUrl, '#')}"  >
+						<div style="height:4rem"></div><!-- 여백용 html -->
+						<p><img th:src="${imgUrl+goodsBanner.imgPath}" alt=""></p>
+					</th:block>
+					</th:block>
+				</div>	
+				<!-- 관리자 에디터입력 내용 노출 -->
+				
 				<div class="mdhtml_box  bnnoti" th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }" >	
 				<div class="mdhtml_box  bnnoti" th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }" >	
 					<div style="height:4rem"></div><!-- 여백용 html -->
 					<div style="height:4rem"></div><!-- 여백용 html -->
 					<th:block th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}"></th:block>
 					<th:block th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}"></th:block>

+ 6 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListFormMob.html

@@ -44,20 +44,26 @@
 					</div>
 					</div>
 					<div class="mem_box">
 					<div class="mem_box">
 						<div class="mem_point">
 						<div class="mem_point">
+							<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_POINT)">
 							<p class="tit">STYLE포인트</p>
 							<p class="tit">STYLE포인트</p>
 							<em th:text="${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')}"></em>P
 							<em th:text="${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')}"></em>P
+							</a>
 						</div>
 						</div>
 						<div class="mem_gift">
 						<div class="mem_gift">
+							<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_GIFTCARD)">
 							<p class="tit">상품권</p>
 							<p class="tit">상품권</p>
 							<span>
 							<span>
 								<em th:text="${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')}"></em>원
 								<em th:text="${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')}"></em>원
 							</span>
 							</span>
+							</a>
 						</div>
 						</div>
 						<div class="mem_coupon">
 						<div class="mem_coupon">
+							<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_COUPON)">
 							<p class="tit">쿠폰</p>
 							<p class="tit">쿠폰</p>
 							<span>
 							<span>
 								<em id="couponCnt" th:text="${couponCnt}"></em>장
 								<em id="couponCnt" th:text="${couponCnt}"></em>장
 							</span>
 							</span>
+							</a>
 						</div>
 						</div>
 					</div>
 					</div>
 				</div>
 				</div>

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html

@@ -155,7 +155,7 @@
 								<div class="swiper-slide">
 								<div class="swiper-slide">
 									<a th:onclick="cfnGoToPlanDetail([[${PlanData.planSq}]])" class="dp_lookbook_item" tabindex="0">
 									<a th:onclick="cfnGoToPlanDetail([[${PlanData.planSq}]])" class="dp_lookbook_item" tabindex="0">
 										<div class="img">
 										<div class="img">
-											<img th:src="${@environment.getProperty('upload.image.view')+PlanData.mainImg+'?RS=960'}" alt="${PlanData.planNm}">
+											<img th:src="${@environment.getProperty('upload.image.view')+PlanData.mainImg+'?RS=960'}" th:alt="${PlanData.planNm}">
 										</div>
 										</div>
 										<div class="txt">
 										<div class="txt">
 											<div class="tit" th:text="${PlanData.planNm}"></div>
 											<div class="tit" th:text="${PlanData.planNm}"></div>

+ 1 - 3
src/main/webapp/WEB-INF/views/web/common/fragments/GnbWeb.html

@@ -448,9 +448,7 @@
 								}else{
 								}else{
 									tag +=' 	<a href="'+item.strVar1+'" target="">';
 									tag +=' 	<a href="'+item.strVar1+'" target="">';
 									tag +=' 		<img src="'+bannerImgUrl+''+item.imgPath1+'" alt="">';
 									tag +=' 		<img src="'+bannerImgUrl+''+item.imgPath1+'" alt="">';
-									tag +=' 		<div class="open_bnr_area">';
-									tag += '		'+item.html+' ';
-									tag +=' 		</div>';
+									tag +=' 		<div class="open_bnr_area">'+item.html+'</div>';
 									tag +=' 	</a>';
 									tag +=' 	</a>';
 									tag +=' 	<button class="btn_toggle_bnr">열기</button>';
 									tag +=' 	<button class="btn_toggle_bnr">열기</button>';
 								}
 								}

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

@@ -545,6 +545,15 @@ $(document).ready( function() {
 				delay: 7000, //210422_수정 : delay 시간 늘림.
 				delay: 7000, //210422_수정 : delay 시간 늘림.
 				disableOnInteraction: false,
 				disableOnInteraction: false,
 			},
 			},
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				firstSlideMessage: '첫번째 슬라이드 입니다',
+				lastSlideMessage: '마지막 슬라이드 입니다',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 			navigation: {
 			navigation: {
 				nextEl: '.brand_main .brand_visual .swiper-button-next',
 				nextEl: '.brand_main .brand_visual .swiper-button-next',
 				prevEl: '.brand_main .brand_visual .swiper-button-prev',
 				prevEl: '.brand_main .brand_visual .swiper-button-prev',
@@ -615,6 +624,15 @@ $(document).ready( function() {
 			delay: 3000,
 			delay: 3000,
 			disableOnInteraction:false,
 			disableOnInteraction:false,
 		},
 		},
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			firstSlideMessage: '첫번째 슬라이드 입니다',
+			lastSlideMessage: '마지막 슬라이드 입니다',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		navigation: {
 		navigation: {
 			nextEl: '.new_item .swiper-button-next',
 			nextEl: '.new_item .swiper-button-next',
 			prevEl: '.new_item .swiper-button-prev',
 			prevEl: '.new_item .swiper-button-prev',
@@ -660,6 +678,15 @@ $(document).ready( function() {
 				watchOverflow : true, //210503_추가 : 슬라이드 1개일때 롤링 막는 기능 추가.
 				watchOverflow : true, //210503_추가 : 슬라이드 1개일때 롤링 막는 기능 추가.
 				slidesPerView: 1,
 				slidesPerView: 1,
 				speed : 1000,
 				speed : 1000,
+				a11y: {
+					enabled: true,
+					notificationClass: 'swiper-notification',
+					prevSlideMessage: '이전 슬라이드',
+					nextSlideMessage: '다음 슬라이드',
+					firstSlideMessage: '첫번째 슬라이드 입니다',
+					lastSlideMessage: '마지막 슬라이드 입니다',
+					paginationBulletMessage: '슬라이드 {{index}}로 이동',
+				},
 				navigation: {
 				navigation: {
 					nextEl: '.main_1stage .swiper-button-next',
 					nextEl: '.main_1stage .swiper-button-next',
 					prevEl: '.main_1stage .swiper-button-prev',
 					prevEl: '.main_1stage .swiper-button-prev',
@@ -716,6 +743,13 @@ $(document).ready( function() {
 			//slidesPerGroup:5, //210429_추가 : slidesPerGroup 추가.
 			//slidesPerGroup:5, //210429_추가 : slidesPerGroup 추가.
 			spaceBetween: 22,
 			spaceBetween: 22,
 			speed : 1000,
 			speed : 1000,
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 			pagination: {
 			pagination: {
 				el: '.md_item .swiper-pagination',
 				el: '.md_item .swiper-pagination',
 				clickable: true,
 				clickable: true,
@@ -732,6 +766,13 @@ $(document).ready( function() {
 			slidesPerGroup:5, //210429_추가 : slidesPerGroup 추가.
 			slidesPerGroup:5, //210429_추가 : slidesPerGroup 추가.
 			spaceBetween: 22,
 			spaceBetween: 22,
 			speed : 1000,
 			speed : 1000,
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 			pagination: {
 			pagination: {
 				el: '.md_item .swiper-pagination',
 				el: '.md_item .swiper-pagination',
 				clickable: true,
 				clickable: true,
@@ -828,6 +869,15 @@ $(document).ready( function() {
 			centeredSlides: true,
 			centeredSlides: true,
 			speed : 1000,
 			speed : 1000,
 			autoplay: false,
 			autoplay: false,
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				firstSlideMessage: '첫번째 슬라이드 입니다',
+				lastSlideMessage: '마지막 슬라이드 입니다',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 			navigation: {
 			navigation: {
 				nextEl: '.main_tv .swiper-button-next',
 				nextEl: '.main_tv .swiper-button-next',
 				prevEl: '.main_tv .swiper-button-prev',
 				prevEl: '.main_tv .swiper-button-prev',

+ 28 - 6
src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html

@@ -294,9 +294,9 @@
 		<input type="hidden" name="cate3No" th:value="${cateInfo.cate3No}"/>
 		<input type="hidden" name="cate3No" th:value="${cateInfo.cate3No}"/>
 		<input type="hidden" name="cate4No" th:value="${cateInfo.cate4No}"/>
 		<input type="hidden" name="cate4No" th:value="${cateInfo.cate4No}"/>
 		<input type="hidden" name="sortingType" value="NEW"/>
 		<input type="hidden" name="sortingType" value="NEW"/>
-<!--		<input type="hidden" name="newGoods" th:value="${cateInfo.formalGb=='G009_20'?'':'40'}" />-->
+		<input type="hidden" name="newGoods" th:unless="${cateInfo.formalGb=='G009_20'}" th:value="${cateInfo.formalGb=='G009_20'?'':'40'}" />
 		<input type="hidden" name="keyword" value=""/>
 		<input type="hidden" name="keyword" value=""/>
-		<input type="hidden" name="benefitArr" th:unless="${cateInfo.formalGb=='G009_20'}" th:value="${cateInfo.formalGb=='G009_20'?'':'40:신상'}"/>
+<!--		<input type="hidden" name="benefitArr" th:unless="${cateInfo.formalGb=='G009_20'}" th:value="${cateInfo.formalGb=='G009_20'?'':'40:신상'}"/>-->
 	</form>
 	</form>
 
 
 	<script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
 	<script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
@@ -304,7 +304,6 @@
 	<script th:src="@{'/biz/goods.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/biz/goods.js"></script>
 	<script th:src="@{'/biz/goods.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/biz/goods.js"></script>
 	<script th:inline="javascript">
 	<script th:inline="javascript">
 		/*<![CDATA[*/
 		/*<![CDATA[*/
-		console.log([[${cateInfo.formalGb}]]);
 		var filterPriceList = [[${filterPriceList}]];
 		var filterPriceList = [[${filterPriceList}]];
 		var custom_values = [];
 		var custom_values = [];
 		var custom_values02  = [];
 		var custom_values02  = [];
@@ -322,6 +321,7 @@
 					$(".br_header").css('background-color','#fff');
 					$(".br_header").css('background-color','#fff');
 				}
 				}
 			}
 			}
+
 			//가격 슬라이드
 			//가격 슬라이드
 			//var custom_values = ['9,000원', '230,000원', '487,000원', '700,000원', '1,360,000원', '1,799,000원'];
 			//var custom_values = ['9,000원', '230,000원', '487,000원', '700,000원', '1,360,000원', '1,799,000원'];
 
 
@@ -730,21 +730,25 @@ console.log(allCateList);
 			if(thisId == 'unisex'){
 			if(thisId == 'unisex'){
 				if(stat=='on'){
 				if(stat=='on'){
 					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
 					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
+					$(obj).attr('checked', true);
 					tag += '<input type="hidden" name="unisex" value="G007_Z"/>\n';
 					tag += '<input type="hidden" name="unisex" value="G007_Z"/>\n';
 					$("#searchGoodsForm").append(tag);
 					$("#searchGoodsForm").append(tag);
 				}else{
 				}else{
 					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
 					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
+					$(obj).attr('checked', false);
 					$("#searchGoodsForm input:hidden[name=unisex]").remove();
 					$("#searchGoodsForm input:hidden[name=unisex]").remove();
 				}
 				}
 			}else{
 			}else{
 				if(stat=='on'){
 				if(stat=='on'){
 					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
 					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
-					// tag += '<input type="hidden" name="newGoods" value="40"/>\n';
-					tag += '<input type="hidden" name="benefitArr" value="40:신상"/>\n';
+					$(obj).attr('checked', true);
+					tag += '<input type="hidden" name="newGoods" value="40"/>\n';
+					// tag += '<input type="hidden" name="benefitArr" value="40:신상"/>\n';
 					$("#searchGoodsForm").append(tag);
 					$("#searchGoodsForm").append(tag);
 				}else{
 				}else{
 					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
 					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
-					// $("#searchGoodsForm input:hidden[name=newGoods]").remove();
+					$(obj).attr('checked', false);
+					$("#searchGoodsForm input:hidden[name=newGoods]").remove();
 					$("#searchGoodsForm input:hidden[name=benefitArr]").each(function(){
 					$("#searchGoodsForm input:hidden[name=benefitArr]").each(function(){
 						if($(this).val() == "40:신상"){
 						if($(this).val() == "40:신상"){
 							$(this).remove();
 							$(this).remove();
@@ -752,6 +756,7 @@ console.log(allCateList);
 					});
 					});
 				}
 				}
 			}
 			}
+			fnSetFilterHtml();
 			fnCategoryGoodsInfiniteScrollInit();
 			fnCategoryGoodsInfiniteScrollInit();
 			fnGoodsListSearch();
 			fnGoodsListSearch();
 		}
 		}
@@ -1364,6 +1369,8 @@ console.log(allCateList);
 				}
 				}
 			});
 			});
 			if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
 			if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
+				$("#searchGoodsForm input:hidden[name=unisex]").remove();
+				$("#searchGoodsForm input:hidden[name=newGoods]").remove();
 				if( history.scrollRestoration ) window.history.scrollRestoration = 'manual';
 				if( history.scrollRestoration ) window.history.scrollRestoration = 'manual';
 				var historyData = sessionStorage.getItem(document.location.href);
 				var historyData = sessionStorage.getItem(document.location.href);
 				if(historyData!=null){
 				if(historyData!=null){
@@ -1401,6 +1408,21 @@ console.log(allCateList);
 					$("#filterForm").find('input[name=hDcRateTo]').val($("#searchGoodsForm").find('input[name=dcRateTo]').val());
 					$("#filterForm").find('input[name=hDcRateTo]').val($("#searchGoodsForm").find('input[name=dcRateTo]').val());
 				}
 				}
 				idx++;
 				idx++;
+				if(gagajf.isNull($("#searchGoodsForm").find("input[name=unisex]").val())){
+					$("#unisex").attr('onclick','fnFilterOption(this,\'on\');');
+					$("#unisex").attr('checked', false);
+				}else{
+					$("#unisex").attr('onclick','fnFilterOption(this,\'off\');');
+					$("#unisex").attr('checked', true);
+				}
+
+				if(gagajf.isNull($("#searchGoodsForm").find("input[name=newGoods]").val())){
+					$("#newGoods").attr('onclick','fnFilterOption(this,\'on\');');
+					$("#newGoods").attr('checked', false);
+				}else{
+					$("#newGoods").attr('onclick','fnFilterOption(this,\'off\');');
+					$("#newGoods").attr('checked', true);
+				}
 				if(typeof historyData.sortingType!='undefined' && historyData.sortingType!=''){
 				if(typeof historyData.sortingType!='undefined' && historyData.sortingType!=''){
 					$("#searchGoodsForm input:hidden[name=sortingType]").val(historyData.sortingType);
 					$("#searchGoodsForm input:hidden[name=sortingType]").val(historyData.sortingType);
 					fnSortingChange(this,historyData.sortingType,'back');
 					fnSortingChange(this,historyData.sortingType,'back');

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

@@ -183,7 +183,13 @@
 		var submain_slide = new Swiper('.dp_submain .swiper-container', {
 		var submain_slide = new Swiper('.dp_submain .swiper-container', {
 			slidesPerView: 4,
 			slidesPerView: 4,
 			spaceBetween: 20,
 			spaceBetween: 20,
+			watchOverflow:true,
 			freeMode:true,
 			freeMode:true,
+			speed:1000,
+			autoplay: {
+				delay: 3000,
+				disableOnInteraction: false,
+			},
 			scrollbar: {
 			scrollbar: {
 				el: '.dp_submain .swiper-scrollbar',
 				el: '.dp_submain .swiper-scrollbar',
 				hide: false,
 				hide: false,
@@ -196,6 +202,13 @@
 			watchSlidesVisibility: true,
 			watchSlidesVisibility: true,
 			allowTouchMove: false,
 			allowTouchMove: false,
 			speed : 1000,
 			speed : 1000,
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 			autoplay: {
 			autoplay: {
 				delay: 3000,
 				delay: 3000,
 				disableOnInteraction:false,
 				disableOnInteraction:false,

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

@@ -215,7 +215,7 @@
 							<th:block th:each="ContentsData, ContentsStat : ${mainLayoutData.ContentsList}">
 							<th:block th:each="ContentsData, ContentsStat : ${mainLayoutData.ContentsList}">
 								<th:block th:if="${ContentsData.contentsType!=null && ContentsData.contentsType!=''}">
 								<th:block th:if="${ContentsData.contentsType!=null && ContentsData.contentsType!=''}">
 									<div class="bnnbox_crop" th:if="${ContentsData.contentsType=='1'}">
 									<div class="bnnbox_crop" th:if="${ContentsData.contentsType=='1'}">
-										<div class="" style="width: 100%;height: 230px;float: none;overflow: hidden;">
+										<div class=""> <!--style="width: 100%;height: 230px;float: none;overflow: hidden;"-->
 											<a th:href="${ContentsData.strVar1}" target="_blank">
 											<a th:href="${ContentsData.strVar1}" target="_blank">
 												<img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}" alt="">
 												<img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}" alt="">
 											</a>
 											</a>
@@ -1036,6 +1036,13 @@ if ( (navigator.appName == 'Netscape' && agent.indexOf('trident') != -1) || (age
 			delay: 3000,
 			delay: 3000,
 			disableOnInteraction: false,
 			disableOnInteraction: false,
 		},
 		},
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		navigation: {
 		navigation: {
 			nextEl: '.post-visual .swiper-button-next',
 			nextEl: '.post-visual .swiper-button-next',
 			prevEl: '.post-visual .swiper-button-prev',
 			prevEl: '.post-visual .swiper-button-prev',
@@ -1064,6 +1071,13 @@ if ( (navigator.appName == 'Netscape' && agent.indexOf('trident') != -1) || (age
 			delay: 3000,
 			delay: 3000,
 			disableOnInteraction: false,
 			disableOnInteraction: false,
 		},
 		},
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		navigation: {
 		navigation: {
 			nextEl: '.post-visual .swiper-button-next',
 			nextEl: '.post-visual .swiper-button-next',
 			prevEl: '.post-visual .swiper-button-prev',
 			prevEl: '.post-visual .swiper-button-prev',
@@ -1102,6 +1116,13 @@ var main_trendy_slide = new Swiper('.main_trendy .post-trendy', {
 		delay: 3000,
 		delay: 3000,
 		disableOnInteraction:false,
 		disableOnInteraction:false,
 	},
 	},
+	a11y: {
+		enabled: true,
+		notificationClass: 'swiper-notification',
+		prevSlideMessage: '이전 슬라이드',
+		nextSlideMessage: '다음 슬라이드',
+		paginationBulletMessage: '슬라이드 {{index}}로 이동',
+	},
 	navigation: {
 	navigation: {
 		nextEl: '.main_trendy .swiper-button-next',
 		nextEl: '.main_trendy .swiper-button-next',
 		prevEl: '.main_trendy .swiper-button-prev',
 		prevEl: '.main_trendy .swiper-button-prev',
@@ -1208,6 +1229,13 @@ if (pickLength < 7) { //210614_ 수정 : 슬라이드 갯수 7개 미만일시 
 		watchSlidesVisibility: true,
 		watchSlidesVisibility: true,
 		watchSlidesProgress: true,
 		watchSlidesProgress: true,
 		freeMode: false,
 		freeMode: false,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		navigation: {
 		navigation: {
 			nextEl: '.main_pick .swiper-button-next',
 			nextEl: '.main_pick .swiper-button-next',
 			prevEl: '.main_pick .swiper-button-prev',
 			prevEl: '.main_pick .swiper-button-prev',
@@ -1226,6 +1254,13 @@ if (pickLength < 7) { //210614_ 수정 : 슬라이드 갯수 7개 미만일시 
 		watchSlidesVisibility: true,
 		watchSlidesVisibility: true,
 		watchSlidesProgress: true,
 		watchSlidesProgress: true,
 		freeMode: false,
 		freeMode: false,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		navigation: {
 		navigation: {
 			nextEl: '.main_pick .swiper-button-next',
 			nextEl: '.main_pick .swiper-button-next',
 			prevEl: '.main_pick .swiper-button-prev',
 			prevEl: '.main_pick .swiper-button-prev',
@@ -1248,6 +1283,13 @@ if (pickForLength < 7) {
 		spaceBetween: 10,
 		spaceBetween: 10,
 		loopAdditionalSlides: 1,
 		loopAdditionalSlides: 1,
 		allowTouchMove: false,
 		allowTouchMove: false,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		thumbs: {
 		thumbs: {
 			swiper: main_pick_nav
 			swiper: main_pick_nav
 		},
 		},
@@ -1260,25 +1302,66 @@ if (pickForLength < 7) {
 		loopeSlides: 6,
 		loopeSlides: 6,
 		loopAdditionalSlides: 1,
 		loopAdditionalSlides: 1,
 		allowTouchMove: false,
 		allowTouchMove: false,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		thumbs: {
 		thumbs: {
 			swiper: main_pick_nav
 			swiper: main_pick_nav
 		},
 		},
 	});
 	});
 }
 }
 
 
-var main_pick_lookbook = new Swiper ('.main_pick .post-lookbook', {
-	slidesPerView: 1,
-	speed : 1000,
-	loop: false,
-	watchOverflow: true, //loop와 함께 사용 불가.
-	autoplay: {
-		delay: 3000,
-		disableOnInteraction: false,
-	},
-	pagination: {
-		el: '.main_pick .post-lookbook .swiper-pagination',
-		clickable: true,
-	},
+$(".main_pick .post-lookbook").each(function(index){
+	var lookbookBnnCont = $(this).find('.swiper-slide');
+	var lookbookBnnLength = lookbookBnnCont.length;
+	if (lookbookBnnLength < 2) {
+		var main_pick_lookbook = new Swiper ($(this), {
+			slidesPerView: 1,
+			speed : 1000,
+			loop: false,
+			watchOverflow: true, //loop와 함께 사용 불가.
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
+			autoplay: {
+				delay: 3000,
+				disableOnInteraction: false,
+			},
+			pagination: {
+				el: '.main_pick .post-lookbook .swiper-pagination',
+				clickable: true,
+			},
+		});
+	}else{
+		var main_pick_lookbook = new Swiper ($(this), {
+			slidesPerView: 1,
+			speed : 1000,
+			loop: true,
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
+			autoplay: {
+				delay: 3000,
+				disableOnInteraction: false,
+			},
+			pagination: {
+				el: '.main_pick .post-lookbook .swiper-pagination',
+				clickable: true,
+			},
+		});
+	}
 });
 });
 
 
 //210705_수정 : 기획전 배너 2개이상 등록시 슬라이드 각각 실행.
 //210705_수정 : 기획전 배너 2개이상 등록시 슬라이드 각각 실행.
@@ -1293,6 +1376,13 @@ $(".main_1stage .post-bnnWide").each(function(index){
 			initialSlide: 0,
 			initialSlide: 0,
 			loop: false,
 			loop: false,
 			watchOverflow: true, //loop와 함께 사용 불가.
 			watchOverflow: true, //loop와 함께 사용 불가.
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 			navigation: {
 			navigation: {
 				nextEl: '.main_1stage .swiper-button-next',
 				nextEl: '.main_1stage .swiper-button-next',
 				prevEl: '.main_1stage .swiper-button-prev',
 				prevEl: '.main_1stage .swiper-button-prev',
@@ -1311,6 +1401,13 @@ $(".main_1stage .post-bnnWide").each(function(index){
 				delay: 4000,
 				delay: 4000,
 				disableOnInteraction: false,
 				disableOnInteraction: false,
 			},
 			},
+			a11y: {
+				enabled: true,
+				notificationClass: 'swiper-notification',
+				prevSlideMessage: '이전 슬라이드',
+				nextSlideMessage: '다음 슬라이드',
+				paginationBulletMessage: '슬라이드 {{index}}로 이동',
+			},
 			navigation: {
 			navigation: {
 				nextEl: '.main_1stage .swiper-button-next',
 				nextEl: '.main_1stage .swiper-button-next',
 				prevEl: '.main_1stage .swiper-button-prev',
 				prevEl: '.main_1stage .swiper-button-prev',
@@ -1340,6 +1437,13 @@ function init(){
 		speed : 1000,
 		speed : 1000,
 		spaceBetween: 20,
 		spaceBetween: 20,
 		loop : true,
 		loop : true,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		pagination: {
 		pagination: {
 			el: '.main_recomm .swiper-pagination',
 			el: '.main_recomm .swiper-pagination',
 			clickable: true,
 			clickable: true,
@@ -1366,6 +1470,13 @@ var main_foryou_slide = new Swiper ('.main_foryou .post-sug .swiper-container',
 		delay: 25000,
 		delay: 25000,
 		disableOnInteraction: false,
 		disableOnInteraction: false,
 	},
 	},
+	a11y: {
+		enabled: true,
+		notificationClass: 'swiper-notification',
+		prevSlideMessage: '이전 슬라이드',
+		nextSlideMessage: '다음 슬라이드',
+		paginationBulletMessage: '슬라이드 {{index}}로 이동',
+	},
 	pagination: {
 	pagination: {
 		el: '.post-sug .swiper-pagination',
 		el: '.post-sug .swiper-pagination',
 		clickable: true,
 		clickable: true,
@@ -1447,6 +1558,13 @@ if (mainTvLength < 2) {
 		centeredSlides: true,
 		centeredSlides: true,
 		speed : 1000,
 		speed : 1000,
 		autoplay: false,
 		autoplay: false,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		navigation: {
 		navigation: {
 			nextEl: '.main_tv .swiper-button-next',
 			nextEl: '.main_tv .swiper-button-next',
 			prevEl: '.main_tv .swiper-button-prev',
 			prevEl: '.main_tv .swiper-button-prev',
@@ -1464,6 +1582,13 @@ if (mainTvLength < 2) {
 		centeredSlides: true,
 		centeredSlides: true,
 		speed : 1000,
 		speed : 1000,
 		autoplay: false,
 		autoplay: false,
+		a11y: {
+			enabled: true,
+			notificationClass: 'swiper-notification',
+			prevSlideMessage: '이전 슬라이드',
+			nextSlideMessage: '다음 슬라이드',
+			paginationBulletMessage: '슬라이드 {{index}}로 이동',
+		},
 		navigation: {
 		navigation: {
 			nextEl: '.main_tv .swiper-button-next',
 			nextEl: '.main_tv .swiper-button-next',
 			prevEl: '.main_tv .swiper-button-prev',
 			prevEl: '.main_tv .swiper-button-prev',

+ 21 - 0
src/main/webapp/WEB-INF/views/web/display/OutletMainFormWeb.html

@@ -183,11 +183,18 @@
 	$(document).ready(function() {
 	$(document).ready(function() {
 		fnSetCategory1Depts();
 		fnSetCategory1Depts();
 
 
+		//210624_ 수정 : 옵션 수정.
 		/* SLIDE - 상단 스크롤 슬라이드 배너 */
 		/* SLIDE - 상단 스크롤 슬라이드 배너 */
 		var submain_slide = new Swiper('.dp_submain .swiper-container', {
 		var submain_slide = new Swiper('.dp_submain .swiper-container', {
 			slidesPerView: 4,
 			slidesPerView: 4,
 			spaceBetween: 20,
 			spaceBetween: 20,
+			spped:1000,
+			watchOverflow:true,
 			freeMode:true,
 			freeMode:true,
+			autoplay: {
+				delay: 3000,
+				disableOnInteraction: false,
+			},
 			scrollbar: {
 			scrollbar: {
 				el: '.dp_submain .swiper-scrollbar',
 				el: '.dp_submain .swiper-scrollbar',
 				hide: false,
 				hide: false,
@@ -212,6 +219,13 @@
 				//     delay: 3000,
 				//     delay: 3000,
 				//     disableOnInteraction:false,
 				//     disableOnInteraction:false,
 				// },
 				// },
+				a11y: {
+					enabled: true,
+					notificationClass: 'swiper-notification',
+					prevSlideMessage: '이전 슬라이드',
+					nextSlideMessage: '다음 슬라이드',
+					paginationBulletMessage: '슬라이드 {{index}}로 이동',
+				},
 				navigation: {
 				navigation: {
 					nextEl: '.dp .md_item .swiper-button-next',
 					nextEl: '.dp .md_item .swiper-button-next',
 					prevEl: '.dp .md_item .swiper-button-prev',
 					prevEl: '.dp .md_item .swiper-button-prev',
@@ -235,6 +249,13 @@
 				//     delay: 3000,
 				//     delay: 3000,
 				//     disableOnInteraction:false,
 				//     disableOnInteraction:false,
 				// },
 				// },
+				a11y: {
+					enabled: true,
+					notificationClass: 'swiper-notification',
+					prevSlideMessage: '이전 슬라이드',
+					nextSlideMessage: '다음 슬라이드',
+					paginationBulletMessage: '슬라이드 {{index}}로 이동',
+				},
 				navigation: {
 				navigation: {
 					nextEl: '.dp .md_item .swiper-button-next',
 					nextEl: '.dp .md_item .swiper-button-next',
 					prevEl: '.dp .md_item .swiper-button-prev',
 					prevEl: '.dp .md_item .swiper-button-prev',

+ 17 - 0
src/main/webapp/WEB-INF/views/web/display/SearchGoodsListFormWeb.html

@@ -717,6 +717,8 @@
 			});
 			});
 
 
 			if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
 			if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
+				$("#searchGoodsForm input:hidden[name=unisex]").remove();
+				$("#searchGoodsForm input:hidden[name=newGoods]").remove();
 				var historyData = sessionStorage.getItem(document.location.href);
 				var historyData = sessionStorage.getItem(document.location.href);
 				// console.log('historyData>>'+historyData);
 				// console.log('historyData>>'+historyData);
 				if(historyData!=null){
 				if(historyData!=null){
@@ -740,6 +742,21 @@
 				if(typeof historyData.totalCount!='undefined' && historyData.totalCount!=''){
 				if(typeof historyData.totalCount!='undefined' && historyData.totalCount!=''){
 					$("#totCntId").text(historyData.totalCount);
 					$("#totCntId").text(historyData.totalCount);
 				}
 				}
+				if(gagajf.isNull($("#searchGoodsForm").find("input[name=unisex]").val())){
+					$("#unisex").attr('onclick','fnFilterOption(this,\'on\');');
+					$("#unisex").attr('checked', false);
+				}else{
+					$("#unisex").attr('onclick','fnFilterOption(this,\'off\');');
+					$("#unisex").attr('checked', true);
+				}
+
+				if(gagajf.isNull($("#searchGoodsForm").find("input[name=newGoods]").val())){
+					$("#newGoods").attr('onclick','fnFilterOption(this,\'on\');');
+					$("#newGoods").attr('checked', false);
+				}else{
+					$("#newGoods").attr('onclick','fnFilterOption(this,\'off\');');
+					$("#newGoods").attr('checked', true);
+				}
 				if(!gagajf.isNull($("#searchGoodsForm").find('input[name=priceArr]').val())){
 				if(!gagajf.isNull($("#searchGoodsForm").find('input[name=priceArr]').val())){
 					let tempPrice = $("#searchGoodsForm").find('input[name=priceArr]').val();
 					let tempPrice = $("#searchGoodsForm").find('input[name=priceArr]').val();
 					let temp  = tempPrice.split(",");
 					let temp  = tempPrice.split(",");

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

@@ -198,7 +198,7 @@
 		<!-- //검색결과 입력 후 -->
 		<!-- //검색결과 입력 후 -->
 
 
 		<!-- 검색결과 없을때 노출 -->
 		<!-- 검색결과 없을때 노출 -->
-		<div class="empty_box">
+		<div class="empty_box" style="display: none">
 		<div class="">
 		<div class="">
 			<div class="nodata">
 			<div class="nodata">
 				<p>
 				<p>

+ 25 - 23
src/main/webapp/WEB-INF/views/web/goods/GoodsDealDescFormWeb.html

@@ -40,34 +40,36 @@
 			<th:block th:if="${goodsNoticeList != null and !goodsNoticeList.empty}" >
 			<th:block th:if="${goodsNoticeList != null and !goodsNoticeList.empty}" >
 		<th:block  th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
 		<th:block  th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
 			</th:block>
 			</th:block>
-		<!-- 공통상품베너 -->
-		<th:block th:if="${goodsBannerList != null and !goodsBannerList.empty}">
-		<th:block th:each="goodsBanner, status : ${goodsBannerList}" >
-		<th:block th:if="${goodsBanner.strVar1 != null and  not #strings.equals(goodsBanner.strVar1, '#')}">
-			<div style="height:100px"></div><!-- 여백용 html -->
-			<a th:href="${goodsBanner.strVar1}" target="_blank">
-			<img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
-			</a>
-		</th:block>
-		<th:block th:unless="${goodsBanner.strVar1 != null and  not #strings.equals(goodsBanner.strVar1, '#')}">
-			<div style="height:100px"></div><!-- 여백용 html -->
-			<img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
-		</th:block>
-		</th:block>
-		</th:block>
-		<th:block th:each="goodsVideo, status : ${goodsVideoList}">
+		<!-- 상세동영상 -->
+		<th:block th:if="${goodsDescVideoList != null and !goodsDescVideoList.empty}">
+		<th:block th:each="goodsVideo, status : ${goodsDescVideoList}">
+		<div style="height:100px"></div><!-- 여백용 html -->
 		<div class="movblock">
 		<div class="movblock">
-			<th:block th:if="${goodsVideo.videoGb == 'Y'}">
-			<div style="height:100px"></div><!-- 여백용 html -->
-			<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+			<th:block th:if="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
+			<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 			</th:block>
 			</th:block>
-			<th:block th:unless="${goodsVideo.videoGb == 'Y'}">
-			<div style="height:100px"></div><!-- 여백용 html -->
-			<iframe width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?player_version=html5'}" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
+			<th:block th:unless="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
+			<iframe th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+			<iframe width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey+'?player_version=html5'}" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
 			</th:block>
 			</th:block>
 		</div>
 		</div>
+		</th:block>	
+		</th:block>
+		<!-- 상세 베너 -->
+		<th:block th:if="${goodsDescBannerList != null and !goodsDescBannerList.empty}">
+		<th:block th:each="goodsBanner, status : ${goodsDescBannerList}" >
+		<th:block th:if="${goodsBanner.linkUrl != null and  not #strings.equals(goodsBanner.linkUrl, '#')}" th:with="target=${(goodsBanner.linkTarget == 'N')? '_blank': '_self'}">
+			 <div style="height:100px"></div><!-- 여백용 html -->
+			<a th:href="${goodsBanner.linkUrl}" th:target="${target}">
+			<img th:src="${imgUrl+goodsBanner.imgPath}" alt="">
+			</a>
+		</th:block>
+		<th:block th:unless="${goodsBanner.linkUrl != null and  not #strings.equals(goodsBanner.linkUrl, '#')}">
+		 	<div style="height:100px"></div><!-- 여백용 html -->
+			<img th:src="${imgUrl+goodsBanner.imgPath}" alt="">
+		</th:block>
+		</th:block>
 		</th:block>
 		</th:block>
-		
 		
 		
 		<!-- 관리자 에디터입력 내용 노출  상단 html -->
 		<!-- 관리자 에디터입력 내용 노출  상단 html -->
 		<th:block  th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }" >
 		<th:block  th:if="${goodsInfo.goodsTopDesc != null  and !goodsInfo.goodsTopDesc.empty }" >

+ 25 - 19
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -686,35 +686,41 @@
 				<!-- //상품설명 노출 -->
 				<!-- //상품설명 노출 -->
 				<!-- 관리자 에디터입력 내용   공지 html -->
 				<!-- 관리자 에디터입력 내용   공지 html -->
 				<div class="mdhtml_box">
 				<div class="mdhtml_box">
-						<th:block th:if="${goodsNoticeList != null and !goodsNoticeList.empty}" >
+					<!-- 공지 -->
+					<th:block th:if="${goodsNoticeList != null and !goodsNoticeList.empty}" >
 					<th:block  th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
 					<th:block  th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
+					</th:block>
+					<!-- 상세동영상 -->
+					<th:block th:if="${goodsDescVideoList != null and !goodsDescVideoList.empty}">
+					<th:block th:each="goodsVideo, status : ${goodsDescVideoList}">
+					<div style="height:100px"></div><!-- 여백용 html -->
+					<div class="movblock">
+						<th:block th:if="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
+						<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+						</th:block>
+						<th:block th:unless="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
+						<iframe width="840" height="472" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey+'?player_version=html5'}" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
 						</th:block>
 						</th:block>
-					<th:block th:if="${goodsBannerList != null and !goodsBannerList.empty}">
-					<th:block th:each="goodsBanner, status : ${goodsBannerList}" >
-					<th:block th:if="${goodsBanner.strVar1 != null and  not #strings.equals(goodsBanner.strVar1, '#')}">
+					</div>
+					</th:block>	
+					</th:block>
+					<!-- 상세 베너 -->
+					<th:block th:if="${goodsDescBannerList != null and !goodsDescBannerList.empty}">
+					<th:block th:each="goodsBanner, status : ${goodsDescBannerList}" >
+					<th:block th:if="${goodsBanner.linkUrl != null and  not #strings.equals(goodsBanner.linkUrl, '#')}" th:with="target=${(goodsBanner.linkTarget == 'N')? '_blank': '_self'}">
 						 <div style="height:100px"></div><!-- 여백용 html -->
 						 <div style="height:100px"></div><!-- 여백용 html -->
-						<a th:href="${goodsBanner.strVar1}" target="_blank">
-						<img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
+						<a th:href="${goodsBanner.linkUrl}" th:target="${target}">
+						<img th:src="${imgUrl+goodsBanner.imgPath}" alt="">
 						</a>
 						</a>
 					</th:block>
 					</th:block>
-					<th:block th:unless="${goodsBanner.strVar1 != null and  not #strings.equals(goodsBanner.strVar1, '#')}">
+					<th:block th:unless="${goodsBanner.linkUrl != null and  not #strings.equals(goodsBanner.linkUrl, '#')}">
 					 	<div style="height:100px"></div><!-- 여백용 html -->
 					 	<div style="height:100px"></div><!-- 여백용 html -->
-						<img th:src="${imgUrl+goodsBanner.imgPath1}" alt="">
+						<img th:src="${imgUrl+goodsBanner.imgPath}" alt="">
 					</th:block>
 					</th:block>
 					</th:block>
 					</th:block>
 					</th:block>
 					</th:block>
 					<!-- 관리자 에디터입력 내용   공지 html -->
 					<!-- 관리자 에디터입력 내용   공지 html -->
-					<th:block th:each="goodsVideo, status : ${goodsVideoList}">
-					<div class="movblock">
-					 	<div style="height:100px"></div><!-- 여백용 html -->
-						<th:block th:if="${goodsVideo.videoGb == 'Y'}">
-						<iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0&mute=1'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
-						</th:block>
-						<th:block th:unless="${goodsVideo.videoGb == 'Y'}">
-						<iframe width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?player_version=html5&mute'}" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
-						</th:block>
-					</div>
-					</th:block>
+					
 					<!-- 공통상품베너 -->
 					<!-- 공통상품베너 -->
 					
 					
 					
 					

+ 3 - 3
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html

@@ -49,19 +49,19 @@
 									<li>
 									<li>
 										<div>
 										<div>
 											<p class="txt">보유쿠폰 / 만료예정</p>
 											<p class="txt">보유쿠폰 / 만료예정</p>
-											<p class="count"><span id="couponCnt" th:text="${couponCnt}"></span>장 / <span id="expiredSoonCouponCnt" th:text="|${expiredSoonCouponCnt}|"></span>장</p>
+											<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_COUPON)"><p class="count"><span id="couponCnt" th:text="${couponCnt}"></span>장 / <span id="expiredSoonCouponCnt" th:text="|${expiredSoonCouponCnt}|"></span>장</p></a>
 										</div>
 										</div>
 									</li>
 									</li>
 									<li>
 									<li>
 										<div>
 										<div>
 											<p class="txt">STYLE 포인트</p>
 											<p class="txt">STYLE 포인트</p>
-											<p class="count"><span th:text="${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')}"></span>P</p>
+											<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_POINT)"><p class="count"><span th:text="${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')}"></span>P</p></a>
 										</div>
 										</div>
 									</li>
 									</li>
 									<li>
 									<li>
 										<div>
 										<div>
 											<p class="txt">상품권</p>
 											<p class="txt">상품권</p>
-											<p class="count"><span th:text="${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')}"></span>원</p>
+											<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_GIFTCARD)"><p class="count"><span th:text="${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')}"></span>원</p></a>
 										</div>
 										</div>
 									</li>
 									</li>
 								</ul>
 								</ul>

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

@@ -164,7 +164,7 @@
                             <div class="swiper-slide">                   
                             <div class="swiper-slide">                   
                                 <a th:onclick="cfnGoToPlanDetail([[${PlanData.planSq}]])">
                                 <a th:onclick="cfnGoToPlanDetail([[${PlanData.planSq}]])">
                                     <div class="thumb">
                                     <div class="thumb">
-                                        <img th:src="${@environment.getProperty('upload.image.view')+PlanData.mainImg}" alt="${PlanData.planNm}">
+                                        <img th:src="${@environment.getProperty('upload.image.view')+PlanData.mainImg}" th:alt="${PlanData.planNm}">
                                     </div>
                                     </div>
                                     <div class="txt">
                                     <div class="txt">
                                         <p class="tit" th:text="${PlanData.planNm}"></p>
                                         <p class="tit" th:text="${PlanData.planNm}"></p>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html

@@ -209,7 +209,7 @@
                             <div class="swiper-slide">                   
                             <div class="swiper-slide">                   
                                 <a th:onclick="cfnGoToPlanDetail([[${PlanData.planSq}]])">
                                 <a th:onclick="cfnGoToPlanDetail([[${PlanData.planSq}]])">
                                     <div class="thumb">
                                     <div class="thumb">
-                                        <img th:src="${@environment.getProperty('upload.image.view')+PlanData.mainImg}" alt="${PlanData.planNm}">
+                                        <img th:src="${@environment.getProperty('upload.image.view')+PlanData.mainImg}" th:alt="${PlanData.planNm}">
                                     </div>
                                     </div>
                                     <div class="txt">
                                     <div class="txt">
                                         <p class="tit" th:text="${PlanData.planNm}"></p>
                                         <p class="tit" th:text="${PlanData.planNm}"></p>

+ 7 - 2
src/main/webapp/biz/goods.js

@@ -514,7 +514,7 @@ var fnFilterSet = function (searchId, sizeGb, appGb){
 		});
 		});
 		if(searchId=='benefit'){
 		if(searchId=='benefit'){
 			if ($('#newGoods').is(":checked")) {
 			if ($('#newGoods').is(":checked")) {
-				tag = '<input type="hidden" name="'+searchId+'Arr" value="40:신상"/>\n';
+				// tag = '<input type="hidden" name="'+searchId+'Arr" value="40:신상"/>\n';
 				$("#searchGoodsForm").append(tag);
 				$("#searchGoodsForm").append(tag);
 			}
 			}
 		}
 		}
@@ -602,7 +602,12 @@ var fnSetFilterHtml = function (gubun, staus, mobGb){
 		dcRateVal += ',' + $("#filterForm input[name=hDcRateTo]").val();
 		dcRateVal += ',' + $("#filterForm input[name=hDcRateTo]").val();
 	}
 	}
 	filterHtml += '<input type="hidden" name="dcRateArr" value="'+dcRateVal+'"/>\n';
 	filterHtml += '<input type="hidden" name="dcRateArr" value="'+dcRateVal+'"/>\n';
-
+	if($('#filterForm').find("input:checkbox[id='unisex']").is(":checked") == true){
+		filterHtml += '<input type="hidden" name="unisex" value="G007_Z"/>\n';
+	}
+	if($('#filterForm').find("input:checkbox[id='newGoods']").is(":checked") == true){
+		filterHtml += '<input type="hidden" name="newGoods" value="40"/>\n';
+	}
 	// console.log('filterHtml>>'+filterHtml);
 	// console.log('filterHtml>>'+filterHtml);
 	gagaInfiniteScroll.pageStatus.filterHtml = filterHtml;
 	gagaInfiniteScroll.pageStatus.filterHtml = filterHtml;
 }
 }

+ 15 - 4
src/main/webapp/biz/search.js

@@ -208,21 +208,25 @@ var fnFilterOption = function (obj, stat){
 	if(thisId == 'unisex'){
 	if(thisId == 'unisex'){
 		if(stat=='on'){
 		if(stat=='on'){
 			$(obj).attr('onclick','fnFilterOption(this,\'off\');');
 			$(obj).attr('onclick','fnFilterOption(this,\'off\');');
+			$(obj).attr('checked', true);
 			tag += '<input type="hidden" name="unisex" value="G007_Z"/>\n';
 			tag += '<input type="hidden" name="unisex" value="G007_Z"/>\n';
 			$("#searchGoodsForm").append(tag);
 			$("#searchGoodsForm").append(tag);
 		}else{
 		}else{
 			$(obj).attr('onclick','fnFilterOption(this,\'on\');');
 			$(obj).attr('onclick','fnFilterOption(this,\'on\');');
+			$(obj).attr('checked', false);
 			$("#searchGoodsForm input:hidden[name=unisex]").remove();
 			$("#searchGoodsForm input:hidden[name=unisex]").remove();
 		}
 		}
 	}else{
 	}else{
 		if(stat=='on'){
 		if(stat=='on'){
 			$(obj).attr('onclick','fnFilterOption(this,\'off\');');
 			$(obj).attr('onclick','fnFilterOption(this,\'off\');');
-			// tag += '<input type="hidden" name="newGoods" value="40"/>\n';
-			tag += '<input type="hidden" name="benefitArr" value="40:신상"/>\n';
+			$(obj).attr('checked', true);
+			tag += '<input type="hidden" name="newGoods" value="40"/>\n';
+			// tag += '<input type="hidden" name="benefitArr" value="40:신상"/>\n';
 			$("#searchGoodsForm").append(tag);
 			$("#searchGoodsForm").append(tag);
 		}else{
 		}else{
 			$(obj).attr('onclick','fnFilterOption(this,\'on\');');
 			$(obj).attr('onclick','fnFilterOption(this,\'on\');');
-			// $("#searchGoodsForm input:hidden[name=newGoods]").remove();
+			$(obj).attr('checked', false);
+			$("#searchGoodsForm input:hidden[name=newGoods]").remove();
 			$("#searchGoodsForm input:hidden[name=benefitArr]").each(function(){
 			$("#searchGoodsForm input:hidden[name=benefitArr]").each(function(){
 				if($(this).val() == "40:신상"){
 				if($(this).val() == "40:신상"){
 					$(this).remove();
 					$(this).remove();
@@ -230,6 +234,7 @@ var fnFilterOption = function (obj, stat){
 			});
 			});
 		}
 		}
 	}
 	}
+	fnSetFilterHtml();
 	fnCategoryGoodsInfiniteScrollInit();
 	fnCategoryGoodsInfiniteScrollInit();
 	fnSearchGoodsListSearch();
 	fnSearchGoodsListSearch();
 }
 }
@@ -312,7 +317,7 @@ var fnFilterSet = function (searchId, sizeGb, appGb){
 		});
 		});
 		if(searchId=='benefit'){
 		if(searchId=='benefit'){
 			if ($('#newGoods').is(":checked")) {
 			if ($('#newGoods').is(":checked")) {
-				tag = '<input type="hidden" name="'+searchId+'Arr" value="40:신상"/>\n';
+				// tag = '<input type="hidden" name="'+searchId+'Arr" value="40:신상"/>\n';
 				$("#searchGoodsForm").append(tag);
 				$("#searchGoodsForm").append(tag);
 			}
 			}
 		}
 		}
@@ -413,6 +418,12 @@ var fnSetFilterHtml = function (gubun, staus, mobGb){
 	if(!gagajf.isNull($("#searchGoodsForm").find('input[name=cate5No]').val())){
 	if(!gagajf.isNull($("#searchGoodsForm").find('input[name=cate5No]').val())){
 		filterHtml += '<input type="hidden" name="cate1No" value="'+$("#searchGoodsForm").find('input[name=cate5No]').val()+'"/>\n';
 		filterHtml += '<input type="hidden" name="cate1No" value="'+$("#searchGoodsForm").find('input[name=cate5No]').val()+'"/>\n';
 	}
 	}
+	if($('#filterForm').find("input:checkbox[id='unisex']").is(":checked") == true){
+		filterHtml += '<input type="hidden" name="unisex" value="G007_Z"/>\n';
+	}
+	if($('#filterForm').find("input:checkbox[id='newGoods']").is(":checked") == true){
+		filterHtml += '<input type="hidden" name="newGoods" value="40"/>\n';
+	}
 
 
 	gagaInfiniteScroll.pageStatus.filterHtml = filterHtml;
 	gagaInfiniteScroll.pageStatus.filterHtml = filterHtml;
 }
 }

+ 5 - 3
src/main/webapp/ux/mo/css/style24_m.css

@@ -667,7 +667,8 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 .ev .survey_wrap .survey_con .btn_wrap button.btn {width: 100%; padding:1.6rem 0; font-size: 1.4rem; font-weight: 500; height:auto; } 
 .ev .survey_wrap .survey_con .btn_wrap button.btn {width: 100%; padding:1.6rem 0; font-size: 1.4rem; font-weight: 500; height:auto; } 
 
 
 /* ev_comment_1 */
 /* ev_comment_1 */
-.dp .inner {background: #fff; padding-bottom: 0; margin-bottom:1.2rem;}
+/* .dp .inner {background: #fff; padding-bottom: 0; margin-bottom:1.2rem;} */
+.dp .inner {background: #fff; padding-bottom: 0; margin-bottom:1.2rem;margin: 0 0 -1.2rem 0;}
 .dp .inner::after {content:''; clear:none;}
 .dp .inner::after {content:''; clear:none;}
 .cmt_wrap {background: #f5f5f5;}
 .cmt_wrap {background: #f5f5f5;}
 .cmt_wrap .cmt_write {background: #fff;}
 .cmt_wrap .cmt_write {background: #fff;}
@@ -1718,7 +1719,7 @@ main.my .my_wishlist .inner:last-child {padding-bottom: 0;}
 .my .my_wishlist .monthly_wish_wrap .date span {display:inline-block; width:7.4rem; height:2.6rem; background-color:#222; color:#fff; font-size:1.4rem; font-weight:300; text-align:center; border-radius:2rem; overflow:hidden; line-height: 2.6rem;}
 .my .my_wishlist .monthly_wish_wrap .date span {display:inline-block; width:7.4rem; height:2.6rem; background-color:#222; color:#fff; font-size:1.4rem; font-weight:300; text-align:center; border-radius:2rem; overflow:hidden; line-height: 2.6rem;}
 
 
 /* dp_submain */
 /* dp_submain */
-main.dp .inner:last-child {padding-bottom: 0;}
+/* main.dp .inner:last-child {padding-bottom: 0;} */
 .dp .submain_visual a:after {content:''; position: absolute; left: 0; bottom: 0; width: 100%; height: 60%; background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%);}
 .dp .submain_visual a:after {content:''; position: absolute; left: 0; bottom: 0; width: 100%; height: 60%; background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%);}
 .dp .submain_visual img {width: 100%;}
 .dp .submain_visual img {width: 100%;}
 .dp .submain_visual .swiper-pagination-fraction {bottom: 4rem ; width:auto; left: 2rem; background: rgba(34,34,34,.5); color: #fff; font-weight: 300;padding:0.5rem 0.7rem; line-height: 1; font-size: 1.2rem; border-radius:2rem;}
 .dp .submain_visual .swiper-pagination-fraction {bottom: 4rem ; width:auto; left: 2rem; background: rgba(34,34,34,.5); color: #fff; font-weight: 300;padding:0.5rem 0.7rem; line-height: 1; font-size: 1.2rem; border-radius:2rem;}
@@ -1739,7 +1740,8 @@ main.dp .inner:last-child {padding-bottom: 0;}
 background-size:100%;}
 background-size:100%;}
 .dp .sub_category .more_btn.on .btn span:before {background: url('/images/mo/ico_btn_more02.png') no-repeat bottom center; background-size:100%;}
 .dp .sub_category .more_btn.on .btn span:before {background: url('/images/mo/ico_btn_more02.png') no-repeat bottom center; background-size:100%;}
 .dp .dp_submain .new_item .dp_subtitle, .dp .dp_submain .best_item .dp_subtitle {text-align: center; margin-bottom: 2.4rem; font-size: 2rem;}
 .dp .dp_submain .new_item .dp_subtitle, .dp .dp_submain .best_item .dp_subtitle {text-align: center; margin-bottom: 2.4rem; font-size: 2rem;}
-.dp .dp_submain .new_item {padding:0 2rem; margin:0 0 -1.2rem 0;}
+/* .dp .dp_submain .new_item {padding:0 2rem; margin:0 0 -1.2rem 0;} */
+.dp .dp_submain .new_item {padding:0 2rem; /* margin: 0 0 -1.2rem 0; */}
 .dp .dp_submain .new_item .swiper-slide {width: 43.75%;}
 .dp .dp_submain .new_item .swiper-slide {width: 43.75%;}
 .dp .dp_submain .new_item .swiper-container {padding:0 2rem; margin:0 -2rem;}
 .dp .dp_submain .new_item .swiper-container {padding:0 2rem; margin:0 -2rem;}
 .dp .dp_submain .best_item {padding-bottom: 2rem;}
 .dp .dp_submain .best_item {padding-bottom: 2rem;}

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

@@ -375,7 +375,7 @@
 .bnnbox_crop {width:100%;}
 .bnnbox_crop {width:100%;}
 .bnnbox_crop::after {content:''; clear:both; display:block;}
 .bnnbox_crop::after {content:''; clear:both; display:block;}
 .bnnbox_crop > div {width: 100%;height: 230px;float: none;overflow: hidden;}
 .bnnbox_crop > div {width: 100%;height: 230px;float: none;overflow: hidden;}
-.bnnbox_crop > div > img {width: 100%;height: auto;}
+.bnnbox_crop > div > a > img {width: 100%; height: auto; margin: 0 auto;}
 .bnnbox_crop > .bnn_half {float:left; width:50%;}
 .bnnbox_crop > .bnn_half {float:left; width:50%;}
 .bnnbox_crop > .bnn_half > a {display:block; position:relative; width:100%; height:0%; padding-top:26.0918%; overflow:hidden;}
 .bnnbox_crop > .bnn_half > a {display:block; position:relative; width:100%; height:0%; padding-top:26.0918%; overflow:hidden;}
 .bnnbox_crop > .bnn_half > a img {position:absolute; left:50%; right:0; top:50%; bottom:auto; transform:translate(-50%, -50%); width:auto; height:100%;}
 .bnnbox_crop > .bnn_half > a img {position:absolute; left:50%; right:0; top:50%; bottom:auto; transform:translate(-50%, -50%); width:auto; height:100%;}