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

Merge remote-tracking branch 'origin/order' into xodud1202

xodud lee 5 лет назад
Родитель
Сommit
ad36cc9999
71 измененных файлов с 2566 добавлено и 1063 удалено
  1. 12 2
      src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java
  2. 2 1
      src/main/java/com/style24/front/biz/service/TsfCartService.java
  3. 39 6
      src/main/java/com/style24/front/biz/service/TsfOrderService.java
  4. 21 8
      src/main/java/com/style24/front/biz/service/TsfPlanningService.java
  5. 1 0
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  6. 9 0
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  7. 30 20
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  8. 2 1
      src/main/java/com/style24/front/biz/web/TsfPlanningController.java
  9. 3 4
      src/main/java/com/style24/persistence/mybatis/shop/TsfCoupon.xml
  10. 2 19
      src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml
  11. 16 15
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  12. 1 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml
  13. 38 3
      src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml
  14. 269 157
      src/main/java/com/style24/persistence/mybatis/shop/TsfPoint.xml
  15. 2 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfWishlist.xml
  16. 14 25
      src/main/resources/config/application-style.yml
  17. 434 0
      src/main/webapp/WEB-INF/views/mob/display/LookbookDetailFormMob.html
  18. 301 0
      src/main/webapp/WEB-INF/views/mob/display/LookbookMainFormMob.html
  19. 15 0
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDescFormMob.html
  20. 30 10
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html
  21. 1 1
      src/main/webapp/WEB-INF/views/mob/goods/GoodsQnaDetailFormMob.html
  22. 10 13
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCancelFormMob.html
  23. 22 234
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreCancelDetailFormMob.html
  24. 79 93
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreExchangeDetailFormMob.html
  25. 1 1
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreListInfoMob.html
  26. 24 10
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCreReturnDetailFormMob.html
  27. 3 2
      src/main/webapp/WEB-INF/views/mob/mypage/MypageExchangeFormMob.html
  28. 8 1
      src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderDetailFormMob.html
  29. 7 2
      src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListInfoMob.html
  30. 3 6
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReturnFormMob.html
  31. 20 2
      src/main/webapp/WEB-INF/views/mob/order/OrderCompleteMob.html
  32. 16 10
      src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html
  33. 2 2
      src/main/webapp/WEB-INF/views/mob/order/OrderFreegiftInfoMob.html
  34. 392 0
      src/main/webapp/WEB-INF/views/mob/planning/PlanningShotGuideFormMob.html
  35. 137 34
      src/main/webapp/WEB-INF/views/mob/social/SocialMainFormMob.html
  36. 2 2
      src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html
  37. 68 89
      src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html
  38. 102 8
      src/main/webapp/WEB-INF/views/web/display/LookbookDetailFormWeb.html
  39. 3 5
      src/main/webapp/WEB-INF/views/web/display/LookbookMainFormWeb.html
  40. 1 1
      src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html
  41. 16 0
      src/main/webapp/WEB-INF/views/web/goods/GoodsDealDescFormWeb.html
  42. 34 16
      src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html
  43. 26 6
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  44. 4 4
      src/main/webapp/WEB-INF/views/web/goods/GoodsIncludeFormWeb.html
  45. 2 1
      src/main/webapp/WEB-INF/views/web/goods/GoodsInstockAlarmFormWeb.html
  46. 3 2
      src/main/webapp/WEB-INF/views/web/mypage/MypageCreExchangeDetailFormWeb.html
  47. 2 0
      src/main/webapp/WEB-INF/views/web/mypage/MypageCreListFormWeb.html
  48. 2 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageCreReturnDetailFormWeb.html
  49. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageGiftcardFormWeb.html
  50. 0 3
      src/main/webapp/WEB-INF/views/web/mypage/MypageReturnFormWeb.html
  51. 8 6
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewDetailFormWeb.html
  52. 3 2
      src/main/webapp/WEB-INF/views/web/mypage/NoMemberCreExchangeDetailFormWeb.html
  53. 2 0
      src/main/webapp/WEB-INF/views/web/mypage/NoMemberCreListFormWeb.html
  54. 2 1
      src/main/webapp/WEB-INF/views/web/mypage/NoMemberCreReturnDetailFormWeb.html
  55. 13 17
      src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb.html
  56. 1 1
      src/main/webapp/WEB-INF/views/web/order/OrderCouponApplyPopWeb.html
  57. 24 21
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html
  58. 5 3
      src/main/webapp/WEB-INF/views/web/order/OrderFreegiftInfoWeb.html
  59. 11 9
      src/main/webapp/WEB-INF/views/web/order/OrderPaymentInfoWeb.html
  60. 63 60
      src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html
  61. 4 4
      src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html
  62. 69 63
      src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html
  63. 3 3
      src/main/webapp/WEB-INF/views/web/popup/DelvAddrModifyPopWeb.html
  64. 3 3
      src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html
  65. 66 10
      src/main/webapp/biz/goods.js
  66. 5 10
      src/main/webapp/ux/mo/css/layout_m.css
  67. 5 4
      src/main/webapp/ux/pc/css/common.css
  68. 22 11
      src/main/webapp/ux/pc/css/layout.css
  69. 3 7
      src/main/webapp/ux/pc/css/main.css
  70. 21 5
      src/main/webapp/ux/pc/js/common-ui.js
  71. 1 1
      src/main/webapp/ux/plugins/gaga/gaga.infinite.scrollSession.js

+ 12 - 2
src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java

@@ -223,14 +223,24 @@ public interface TsfPlanningDao {
 	Collection<Plan> getPlanEventList(Plan plan);
 
 	/**
-	 * 총알배송 html 소스 
+	 * 총알배송 상단 html 소스 
 	 *
 	 * @param plan
 	 * @return plan
 	 * @author sowon
 	 * @date 2021. 3. 30
 	 */
-	Plan getShotDeliveryHtml(Plan plan);
+	Plan getShotDeliveryHtmlTop(Plan plan);
+	
+	/**
+	 * 총알배송 하단 html 소스 
+	 *
+	 * @param plan
+	 * @return plan
+	 * @author sowon
+	 * @date 2021. 3. 30
+	 */
+	Plan getShotDeliveryHtmlBtm(Plan plan);
 	
 	/**
 	 * 설문조사 정보

+ 2 - 1
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -13,7 +13,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.thymeleaf.util.StringUtils;
 
-import com.gagaframework.web.parameter.GagaMap;
 import com.style24.core.biz.dao.TscEnvsetDao;
 import com.style24.core.biz.service.TscKcpService;
 import com.style24.core.biz.service.TscOrderService;
@@ -30,6 +29,8 @@ import com.style24.persistence.domain.Order;
 
 import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.parameter.GagaMap;
+
 /**
  * 장바구니 Service
  *

+ 39 - 6
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -21,6 +21,7 @@ import com.style24.core.biz.dao.TscOrderDao;
 import com.style24.core.biz.service.TscKakaoPayService;
 import com.style24.core.biz.service.TscKcpService;
 import com.style24.core.biz.service.TscNaverPayService;
+import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.front.biz.dao.TsfOrderDao;
 import com.style24.front.biz.dao.TsfRendererDao;
@@ -70,6 +71,9 @@ public class TsfOrderService {
 
 	@Autowired
 	private TsfRendererDao rendererDao;
+	
+	@Autowired
+	private TscOrderService coreOrderService;
 
 	@Autowired
 	private Environment env;
@@ -517,15 +521,39 @@ public class TsfOrderService {
 	 * @since 2021. 03. 09
 	 */
 	public String orderValidationCheck(Order order) {
+		String resultStr	= "SUCCESS";
+		
 		// 1. 주문상세체크
 		Collection<Order> orderDetailList = order.getOrderDetailList();
 		
+		// TODO 2021.05.07 1.1 장바구니 금액조회 정보 
+		order.setFrontGb(TsfSession.getFrontGb());
+		Collection<Order> cartGoodsList = coreOrderService.getCartGoodsList(order);
+		
+		int orderDetailCurrPriceSum 	= 0;
+		int orderDetailRealOrdAmtSum 	= 0;
+		int cartCurrPriceSum 			= 0;
+		int cartRealOrdAmtSum 			= 0;
+		
+		for (Order orderDetail : orderDetailList) {
+			orderDetailCurrPriceSum = orderDetailCurrPriceSum + orderDetail.getCurrPrice();
+			orderDetailRealOrdAmtSum = orderDetailRealOrdAmtSum + orderDetail.getRealOrdAmt();
+		}
+		
+		for (Order orderDetail : cartGoodsList) {
+			cartCurrPriceSum = orderDetailCurrPriceSum + orderDetail.getCurrPrice();
+		}
+		
+		// 판매가비교
+		if (orderDetailCurrPriceSum != cartCurrPriceSum) {
+			resultStr = "보유하신 상품쿠폰이 존재하지 않습니다.";
+			return resultStr;
+		}
+
 		int custCpnSq		= 0;
 		int usPntAmt		= 0;
 		int usGfcdAmt		= 0;
-		
-		String resultStr	= "SUCCESS";
-		
+
 		for (Order orderDetail : orderDetailList) {
 			
 			// TODO
@@ -645,13 +673,18 @@ public class TsfOrderService {
 			}
 		}
 		
-		// TODO 5. 사은품채고체크
+		// 6. 사은품채고체크
 		int rtnCnt = orderDao.getCheckFreegiftVal(order);
 		if (rtnCnt > 0) {
 			resultStr = "선택하신 사은품의 재고가 부족 합니다.";
 			return resultStr;
 		}
 		
+		// 7. 상품금액체크
+		
+		
+		
+		
 		return resultStr;
 		
 	}
@@ -662,8 +695,8 @@ public class TsfOrderService {
 	 * param.setOrdPhnno("01011111111");		// 현금영수증 대상 휴대폰번호
 	 * param.setUsGfcdAmt(10000);				// 현금영수증 신청 금액
 	 * param.setOrdNo(211);						// 주문번호
-	 * param.setGoodsNm("보라색 원피스");		// 상품명 (“7. 현금영수증 매출전표 연동” 을 통해 고객이 직접 전표를 확인코자 한다면 상품명을 넘겨주지 않았을 경우 구매자 인증 시 인증오류가 발생할 수 있습니다.)
-	 * param.setOrdNm("구매자");				// 구매자명
+	 * param.setGoodsNm("보라색 원피스");			// 상품명 (“7. 현금영수증 매출전표 연동” 을 통해 고객이 직접 전표를 확인코자 한다면 상품명을 넘겨주지 않았을 경우 구매자 인증 시 인증오류가 발생할 수 있습니다.)
+	 * param.setOrdNm("구매자");					// 구매자명
 	 * param.setOrdEmail("xxxx@xxxx.com");		// 구매자이메일 (“7. 현금영수증 매출전표 연동” 을 통해 고객이 직접 전표를 확인코자 한다면 메일주소를 넘겨주지 않았을 경우 구매자 인증 시 인증오류가 발생할 수 있습니다.)
 	 * @param param
 	 * @return

+ 21 - 8
src/main/java/com/style24/front/biz/service/TsfPlanningService.java

@@ -137,9 +137,9 @@ public class TsfPlanningService {
 			}
 		}
 
-		
 		if (!TsfSession.isLogin()) {
-			if (planningDao.getNonmemberGradeAccessible(plan) > 0) {
+			plan.setCustGrade("G110_60");
+			if ("N".equals(planningDao.getCustomerGradeAccessibleYn(plan))) {
 				msg = "로그인 후 이용 가능합니다.";
 			}
 		}
@@ -319,17 +319,30 @@ public class TsfPlanningService {
 	}
 	
 	/**
-	 * 총알배송 html 소스 
+	 * 총알배송 상단 html 소스 
 	 *
 	 * @param plan
-	 * @return plan
+	 * @return Collection<Plan>
 	 * @author sowon
 	 * @date 2021. 3. 30
 	 */
-	public Plan getShotDeliveryHtml(Plan plan) {
-		return planningDao.getShotDeliveryHtml(plan);
+	public Plan getShotDeliveryHtmlTop(Plan plan) {
+		return planningDao.getShotDeliveryHtmlTop(plan);
 	}
 	
+	/**
+	 * 총알배송 하단 html 소스 
+	 *
+	 * @param plan
+	 * @return Collection<Plan>
+	 * @author sowon
+	 * @date 2021. 3. 30
+	 */
+	public Plan getShotDeliveryHtmlBtm(Plan plan) {
+		return planningDao.getShotDeliveryHtmlBtm(plan);
+	}
+	
+	
 	/**
 	 * 설문조사 정보
 	 *
@@ -573,11 +586,11 @@ public class TsfPlanningService {
 		
 		//이미지등록
 		Plan filePlan = new Plan();
-		if(!StringUtils.isAllEmpty(plan.getMultiReplyOrgFile())) {
+		if(!StringUtils.isAllEmpty(plan.getMultiReplySysFile())) {
 			filePlan.setRegNo(custNo);
 			filePlan.setPlanEntrySq(plan.getPlanEntrySq());
 			//파일아이템 등록
-			String[] fileItemVal1 = plan.getMultiReplyOrgFile();
+			String[] fileItemVal1 = plan.getMultiReplySysFile();
 			int ind = 1;
 			for (int j = 0; j < fileItemVal1.length; j++) {
 				String imgInd = String.valueOf(ind);

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

@@ -464,6 +464,7 @@ public class TsfDisplayController extends TsfBaseController {
 	@ResponseBody
 	public Collection<Lookbook> lookbooklist(Lookbook lookbook) {
 		lookbook.setFrontGb(TsfSession.getFrontGb());
+		lookbook.setFrontYn("Y");
 		return coreLookbookService.getLookbookList(lookbook);
 	}
 

+ 9 - 0
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -794,6 +794,15 @@ public class TsfMypageController extends TsfBaseController {
 		// 고객번호 설정
 		int custNo = TsfSession.getInfo().getCustNo();
 		order.setCustNo(custNo);
+		
+		// 2021.05.07 고객정보 조회
+		Customer customer = new Customer();
+		customer.setSiteCd(TscConstants.Site.STYLE24.value());
+		customer.setCustNo(custNo);
+		customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
+		customer = coreCustomerService.getCustomerInfo(customer);
+		
+		mav.addObject("customerInfo", customer);
 
 		// 취소 가능 리스트 조회
 		GagaMap map = orderChangeService.getCancelListForMypage(order);

+ 30 - 20
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -267,7 +267,15 @@ public class TsfOrderController extends TsfBaseController {
 		
 		// 4.6 선물받기여부
 		mav.addObject("giftPackYn"			, giftPackYn);								// 선물받기여부
-
+		
+		// 2021.05.07 jsh77b id만 개발자모드허용
+		boolean devTempYn = false;
+		if (TsfSession.isLogin()) {
+			if ("jsh77b".equals(TsfSession.getInfo().getCustId())) {
+				devTempYn = true;
+			}
+		}
+		mav.addObject("devTempYn"			, devTempYn);								// 개발자모드가능여부
 		mav.setViewName(super.getDeviceViewName("order/OrderForm"));
 		
 		return mav;
@@ -493,8 +501,9 @@ public class TsfOrderController extends TsfBaseController {
 			order.setJsessionId(TsfSession.getSessionId());
 		}
 		
-		// 2. 즉시할인, 다다익선 할인금액 정보 적용 상품 정보
-		Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
+		// 2. 즉시할인, 다다익선 할인금액 정보 적용 상품 정보 (2021.05.07 화면에서전송)
+		//Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
+		Collection<Order> tmtbGoodsApplyList = order.getCartGoodsList();
 
 		// 3. 배송정보조회(장바구니상품목록)
 		GagaMap delvOrderMap = coreOrderService.getCartDelvGoodsCntList(tmtbGoodsApplyList, order);
@@ -600,8 +609,9 @@ public class TsfOrderController extends TsfBaseController {
 		// 2. 로그인체크 후 정보 설정 (할인구간정보조회)
 		if (TsfSession.isLogin()) {
 			
-			// 2.1 배송단위별 상품 목록 조회 (장바구니)
-			Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
+			// 2.1 배송단위별 상품 목록 조회 (장바구니) (2021.05.07 화면에서전송)
+			//Collection<Order> tmtbGoodsApplyList = cartService.getMoreBetterAmtList(order);
+			Collection<Order> tmtbGoodsApplyList = order.getCartGoodsList();
 			
 			// 2.2 상품금액, 선포인트, 다다익선할인금액
 			goodsDcAmtMap = coreOrderService.getGoodsDcAmt(tmtbGoodsApplyList);
@@ -839,29 +849,29 @@ public class TsfOrderController extends TsfBaseController {
 		 * temp.setPgTid("20210423952698");			// temp.setVaNo("110242222222");  >> PG 송부 후 result에서 값 입력하면됨
 		 *  */
 		
-		String[] goodsNameArr = new String[2]; goodsNameArr[0] ="테스트1";goodsNameArr[1] = "테스트2";
-		String[] goodsPriceArr = new String[2]; goodsPriceArr[0] ="20000";goodsPriceArr[1] = "22000";
-		String[] goodsQuantityArr = new String[2]; goodsQuantityArr[0] ="2";goodsQuantityArr[1] = "3";
-		
-		order.setItemNmArr(goodsNameArr);			// 상품명 배열
-		order.setGoodsPriceArr(goodsPriceArr);		// 상품별 가격 배열
-		order.setItemQtyArr(goodsQuantityArr);		// 상품별 수량 배열
-		order.setOrdNo(order.getOrdNo());			// 주문번호
-		order.setRealOrdAmt(53000);					// 결제금액
-		order.setBirthYmd("198912021");				// 생년월일 + 성별(남자 : 1, 여자 : 2)
-		order.setPayMeans(TscConstants.PayMeans.BANK_DEPOSIT.value());		// 무통장입금 or 계좌이체
+		String[] goodsNameArr 		= new String[2]; goodsNameArr[0] ="테스트1";goodsNameArr[1] = "테스트2";
+		String[] goodsPriceArr 		= new String[2]; goodsPriceArr[0] ="10000";goodsPriceArr[1] = "12000";
+		String[] goodsQuantityArr 	= new String[2]; goodsQuantityArr[0] ="2";goodsQuantityArr[1] = "3";
+		
+		order.setItemNmArr(goodsNameArr);		// 상품명 배열
+		order.setGoodsPriceArr(goodsPriceArr);	// 상품별 가격 배열
+		order.setItemQtyArr(goodsQuantityArr);	// 상품별 수량 배열
+		order.setOrdNo(order.getOrdNo());		// 주문번호
+		order.setRealOrdAmt(32000);				// 결제금액
+		order.setBirthYmd("198912021");			// 생년월일 + 성별(남자 : 1, 여자 : 2)
+		order.setPayMeans(TscConstants.PayMeans.ACCOUNT_TRANSFER.value());		// 무통장입금 or 계좌이체
 		order.setBankNm("신한은행");				// 은행명  >> PG 송부 후 result에서 값 입력하면됨
 		order.setOrdNm("이태영");					// 주문자명
-		order.setOrdTelno("");						// 주문자전화1 ("-" 포함)
-		order.setOrdPhnno("010-1234-5555");			// 주문자전화2 ("-" 포함)
-		order.setRecipZipcode("08755");				// 주문자우편번호
+		order.setOrdTelno("");					// 주문자전화1 ("-" 포함)
+		order.setOrdPhnno("010-1234-5555");		// 주문자전화2 ("-" 포함)
+		order.setRecipZipcode("08755");			// 주문자우편번호
 		order.setRecipAddr("서울시 관악구 신림동 1414-11 타워타워 101호");	// 주문자주소
 		order.setOrdEmail("xodud1202@naver.com");	// 주문자이메일
 		order.setRecipNm("이태영");					// 수령인명
 		order.setRecipTelno("");					// 수령인전화번호
 		order.setRecipPhnno("010-1234-5555");		// 수령인휴대폰번호
 		order.setCustNo(100010);					// 고객번호
-		order.setVaNo("110222119990");				// 가상계좌번호
+		order.setVaNo("110242222222");				// 가상계좌번호
 
 		// uSafeGuaranteeInsurance(order);
 		orderService.uSafeGuaranteeInsurance(order);

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

@@ -528,7 +528,8 @@ public class TsfPlanningController extends TsfBaseController {
 		
 		
 		mav.addObject("custAddr", planningService.getCustAddrInfo(addr));
-		mav.addObject("shotHtml", planningService.getShotDeliveryHtml(plan));
+		mav.addObject("shotHtmlTop", planningService.getShotDeliveryHtmlTop(plan));
+		mav.addObject("shotHtmlBtm", planningService.getShotDeliveryHtmlBtm(plan));
 		mav.setViewName(super.getDeviceViewName("planning/PlanningShotGuideForm"));
 		return mav;
 	}

+ 3 - 4
src/main/java/com/style24/persistence/mybatis/shop/TsfCoupon.xml

@@ -1215,12 +1215,11 @@
 		                                     FROM TB_CUST_COUPON
 		                                    GROUP BY CPN_ID) CC2
 		                    ON C.CPN_ID = CC2.CPN_ID
-		               WHERE C.DOWN_ABL_YN = 'N'
-		                  AND C.CPN_ID IN (
+		               WHERE C.CPN_ID IN (
 		                                    SELECT PCI.ITEM_VAL 
 		                                    FROM TB_PLAN_CONTENTS_ITEM PCI 
 		                                    WHERE PCI.ITEM_VAL = #{cpnId}
-		                                  )
+		                                  ) 
 		                 AND NOW() BETWEEN C.DOWN_STDT AND C.DOWN_EDDT
 		                 AND C.CPN_STAT = 'G232_11'  -- 진행
 		                 AND CASE WHEN C.TOT_PUB_LIMIT_QTY = 0 THEN 1
@@ -1318,7 +1317,7 @@
 		</if>
 		AND C.SITE_CD = #{siteCd}
 		AND C.CPN_TYPE IN ('G230_20','G230_30')
-		AND C.DOWN_ABL_YN = 'N'
+		AND C.DOWN_ABL_YN = 'Y'
 		AND NOW() BETWEEN C.DOWN_STDT AND C.DOWN_EDDT
 		AND NOW()  <![CDATA[<=]]> IF (C.PD_GB = 'D', CONCAT(CURRENT_DATE + INTERVAL C.AVAIL_DAYS DAY, ' 23:59:59'), C.AVAIL_EDDT)
 		AND (CASE WHEN 'P' = 'P' THEN C.DC_PVAL

+ 2 - 19
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -250,25 +250,8 @@
 		        </if>
 		        <choose>
 		            <when test='preview != null and preview == "Y"'>
-		        AND    IFNULL((SELECT DISP_EDDT
-		                       FROM   TB_PLAN
-		                       WHERE  PLAN_SQ = CASE WHEN INSTR(A.STR_VAR1,'/planning/detail/form') > 0 AND INSTR(A.STR_VAR1,'planSq=') > 0 THEN
-		                                                 (SUBSTR(A.STR_VAR1,INSTR(A.STR_VAR1,'planSq=') + 7,LENGTH(A.STR_VAR1) + 1))
-		                                             ELSE
-		                                                 NULL
-		                                        END
-		                      ),STR_TO_DATE(#{viewDt},'%Y%m%d%H%i%S')
-		                     ) <![CDATA[>=]]> STR_TO_DATE(#{viewDt},'%Y%m%d%H%i%S')
-		        AND    IFNULL((SELECT DISP_STDT
-		                       FROM   TB_PLAN
-		                       WHERE  PLAN_SQ = CASE WHEN INSTR(A.STR_VAR1,'/planning/detail/form') > 0 AND INSTR(A.STR_VAR1,'planSq=') > 0 THEN
-		                                                 (SUBSTR(A.STR_VAR1,INSTR(A.STR_VAR1,'planSq=') + 7,LENGTH(A.STR_VAR1) + 1))
-		                                             ELSE
-		                                                 NULL
-		                                        END
-		                      ),STR_TO_DATE(#{viewDt},'%Y%m%d%H%i%S')
-		                     ) <![CDATA[<=]]> STR_TO_DATE(#{viewDt},'%Y%m%d%H%i%S')
-		        ORDER  BY CONTENTS_LOC, DISP_ORD, PRE_CONTENTS_SQ
+		        AND    A.DISP_STDT <![CDATA[<=]]> STR_TO_DATE(#{viewDt},'%Y%m%d%H%i%S')
+		        AND    A.DISP_EDDT <![CDATA[>=]]> STR_TO_DATE(#{viewDt},'%Y%m%d%H%i%S')
 		            </when>
 		            <otherwise>
 		        AND    A.DISP_STDT <![CDATA[<=]]> NOW()

+ 16 - 15
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -1126,10 +1126,12 @@
 		     ORDER BY A.FREEGIFT_SQ, B.FREEGIFT_SECTION_SQ
 		 )
 		 , TAB_FREEGOODS AS (
-		     SELECT B.ALL_YN
-		          , C.FREEGIFT_SQ
-		          , C.FREEGIFT_SECTION_SQ
+		     SELECT B.FREEGIFT_SQ
+		          , B.FREEGIFT_SECTION_SQ
 		          , C.FREEGIFT_VAL_SQ
+		          , B.ALL_YN     -- 모두지급
+		          , B.SECTION_GB -- G810_10|수량, G810_11|금액
+		          , B.SECTION_VAL
 		          , F.GOODS_NM
 		          , C.ITEM_QTY
 		          , CASE WHEN B.ALL_YN = 'Y' THEN 1
@@ -1146,25 +1148,24 @@
 		 )
 		SELECT Z.*
 		FROM (
-		    SELECT  F.FREEGIFT_SQ
-		          , F.FREEGIFT_SECTION_SQ
-		          , F.ALL_YN     -- 모두지급
-		          , F.SECTION_GB -- G810_10|수량, G810_11|금액
-		          , F.SECTION_VAL
+		    SELECT  FG.FREEGIFT_SQ
+		          , FG.FREEGIFT_SECTION_SQ
+		          , FG.ALL_YN     -- 모두지급
+		          , FG.SECTION_GB -- G810_10|수량, G810_11|금액
+		          , FG.SECTION_VAL
 		          , FG.GOODS_NM
+		          , FG.ITEM_QTY
 		          , GROUP_CONCAT(CONCAT(FG.GOODS_NM,':',FG.ITEM_QTY)) AS FREE_GOODS
 		          -- , RANK() OVER (PARTITION BY F.FREEGIFT_SQ , F.FREEGIFT_SECTION_SQ ORDER BY  FG.FREEGIFT_VAL_SQ ) AS RNUM
-		    FROM TAB_FREEGIFT F
-		    INNER JOIN TAB_FREEGOODS FG ON F.FREEGIFT_SQ = FG.FREEGIFT_SQ
-		                                AND F.FREEGIFT_SECTION_SQ = F.FREEGIFT_SECTION_SQ
-		                                AND FG.ROWNUM = 1
-		    GROUP BY  F.FREEGIFT_SQ , F.FREEGIFT_SECTION_SQ , F.ALL_YN , F.SECTION_GB , F.SECTION_VAL
-		    ORDER BY F.FREEGIFT_SQ, F.FREEGIFT_SECTION_SQ
+		    FROM TAB_FREEGOODS FG
+		     WHERE FG.ROWNUM = 1
+		    GROUP BY  FG.FREEGIFT_SQ , FG.FREEGIFT_SECTION_SQ , FG.ALL_YN , FG.SECTION_GB , FG.SECTION_VAL
+		    ORDER BY FG.FREEGIFT_SQ, FG.FREEGIFT_SECTION_SQ
 		) Z
 		WHERE 1 = 1
 		<if test="maxRownum != null and maxRownum > 0">
 		LIMIT #{maxRownum}
-		</if> 
+		</if>
 	</select>
 	
 	<!-- 상품의 사은품 목록 -->

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

@@ -316,6 +316,7 @@
 			</when>
 		</choose>
 		       ) Z
+		 WHERE Z.ORD_CAN_CHG_QTY > 0
 		 GROUP BY Z.ORD_NO, Z.ORD_DT, Z.ORD_NM, Z.ORD_PHNNO, Z.GIFT_ADDR_INP_YN, Z.ORD_DTL_NO, Z.ORD_EXCH_GB, Z.GOODS_CD, Z.GOODS_NM, Z.LIST_PRICE, Z.SYS_IMG_NM
 		        , Z.ORD_DTL_STAT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.ORD_AMT, Z.REAL_ORD_AMT, Z.SAVE_PNT_AMT, Z.CNCL_RTN_AMT, Z.PNT_DC_AMT
 		        , Z.GFCD_USE_AMT, Z.SHIP_COMP_CD, Z.GIFT_PACK_YN, Z.SHIP_COMP_NM, Z.INVOICE_NO, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD

+ 38 - 3
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -396,6 +396,7 @@
 		                       WHEN 'G110_30' THEN 'SILVER'
 		                       WHEN 'G110_40' THEN 'BRONZE'
 		                       WHEN 'G110_50' THEN 'WELCOME'
+		                       WHEN 'G110_60' THEN '비회원'
 		                       END AS CUST_GRADE
 		FROM TB_PLAN_CUST_GRADE 
 		WHERE PLAN_SQ = #{planSq}
@@ -1049,7 +1050,8 @@
 		                         , CASE WHEN GB.BENEFIT_GB = '10' THEN '쿠폰할인'
 		                                WHEN GB.BENEFIT_GB = '20' THEN '무료배송'
 		                                WHEN GB.BENEFIT_GB = '30' THEN '사은품'
-		                                ELSE '신상'
+		                                WHEN GB.BENEFIT_GB = '40' THEN '신상'
+		                                ELSE '총알배송'
 		                           END                               AS BENEFIT_NM
 		                         , RANK() OVER(PARTITION BY PG.GOODS_CD
 		                                       ORDER BY GB.BENEFIT_GB
@@ -1097,13 +1099,14 @@
 		       ) Z
 	</select>
 	
-	<!-- 총알배송 html 소스  -->
-	<select id="getShotDeliveryHtml" parameterType="Plan" resultType="Plan">
+	<!-- 총알배송 상단 html 소스  -->
+	<select id="getShotDeliveryHtmlTop" parameterType="Plan" resultType="Plan">
 		/* TsfPlanning.getShotDeliveryHtml */
 		SELECT P.PLAN_SQ 
 		      ,P.PLAN_NM 
 		      ,PC.PLAN_CONT_SQ 
 		      ,PF.DISP_YN
+		      ,PF.FRONT_GB 
 		      ,PF.FSRC_PC 
 		      ,PF.FSRC_MOB 
 		FROM TB_PLAN P INNER JOIN TB_PLAN_CONTENTS PC ON P.PLAN_SQ = PC.PLAN_SQ 
@@ -1122,6 +1125,38 @@
 		            </if>
 		        </if>
 		  AND P.OPEN_YN ='Y'
+		  AND PF.FRONT_GB = 'T'
+		  AND PF.DISP_YN ='Y'
+		  AND P.SITE_CD = #{siteCd}
+	</select>
+	
+	<!-- 총알배송 하단 html 소스  -->
+	<select id="getShotDeliveryHtmlBtm" parameterType="Plan" resultType="Plan">
+		/* TsfPlanning.getShotDeliveryHtml */
+		SELECT P.PLAN_SQ 
+		      ,P.PLAN_NM 
+		      ,PC.PLAN_CONT_SQ 
+		      ,PF.DISP_YN
+		      ,PF.FRONT_GB 
+		      ,PF.FSRC_PC 
+		      ,PF.FSRC_MOB 
+		FROM TB_PLAN P INNER JOIN TB_PLAN_CONTENTS PC ON P.PLAN_SQ = PC.PLAN_SQ 
+		                                              AND P.PLAN_SQ = PC.PLAN_SQ
+		               INNER JOIN TB_PLAN_FSRC PF ON P.PLAN_SQ = PF.PLAN_SQ 
+		                                              AND P.PLAN_SQ = PF.PLAN_SQ
+		WHERE 1=1
+		  AND P.PLAN_GB = 'S'
+		  AND P.DEL_YN = 'N'
+		        <if test="frontGb != null and frontGb != ''">
+		            <if test='frontGb == "P"'> <!-- PC웹 -->
+		        AND    P.FRONT_GB IN ('A','P')
+		            </if>
+		            <if test='frontGb == "A" or frontGb == "M"'> <!-- 모바일 -->
+		        AND    P.FRONT_GB IN ('A','M')
+		            </if>
+		        </if>
+		  AND P.OPEN_YN ='Y'
+		  AND PF.FRONT_GB = 'B'
 		  AND PF.DISP_YN ='Y'
 		  AND P.SITE_CD = #{siteCd}
 	</select>

+ 269 - 157
src/main/java/com/style24/persistence/mybatis/shop/TsfPoint.xml

@@ -47,173 +47,285 @@
 	<!-- 적립내역 조회-->
 	<select id="getAccumulatePointList" parameterType="Point" resultType="Point">
 	/* TsfPoint.getAccumulatePointList */
-		SELECT  CASE CPH.OCCUR_GB
-					WHEN 'G069_11' THEN '구매 취소'
-		            WHEN 'G069_12' THEN '상품 구매'
-		            WHEN 'G069_20' THEN '리뷰'
-		            WHEN 'G069_30' THEN '이벤트'
-		            WHEN 'G069_31' THEN '회원가입'
-		            WHEN 'G069_32' THEN '생일'
-		            WHEN 'G069_35' THEN 'APP'
-		            WHEN 'G069_37' THEN '이벤트'
-		            WHEN 'G069_41' THEN '구매 취소'
-		            WHEN 'G069_43' THEN '구매 취소'
-		            WHEN 'G069_44' THEN '관리자'
-		            WHEN 'G069_90' THEN '관리자'
-		       END                                          AS OCCUR_GB
-		    , CASE CPH.OCCUR_GB
-					WHEN 'G069_11' THEN G.GOODS_NM
-		            WHEN 'G069_12' THEN G.GOODS_NM
-		            WHEN 'G069_20' THEN G.GOODS_NM
-		            WHEN 'G069_30' THEN '이벤트'
-		            WHEN 'G069_31' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_32' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_35' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_37' THEN '출석체크'
-		            WHEN 'G069_41' THEN G.GOODS_NM
-		            WHEN 'G069_43' THEN FR.GOODS_NM
-		            WHEN 'G069_44' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_90' THEN CPH.OCCUR_DTL_DESC
-		       END                                          AS  OCCUR_DTL_DESC
-		     , CPH.PNT_AMT
-		     , CPH.REG_DT AS PNT_UPLOAD_DT
-		FROM TB_CUST_POINT_HST CPH
-		LEFT JOIN TB_ORDER_DETAIL OD
-		ON  CPH.ORD_NO = OD.ORD_NO
-		AND CPH.ORD_DTL_NO = OD.ORD_DTL_NO
-		LEFT JOIN TB_GOODS G
-		ON  OD.GOODS_CD = G.GOODS_CD
-		LEFT JOIN (SELECT FG.GOODS_NM
-		                 ,OFV.ORD_NO 
-		           FROM TB_ORD_FREEGIFT_VAL OFV
-		           INNER JOIN TB_FREE_GOODS FG
-		           ON OFV.PRODUCT_CODE = FG.PRODUCT_CODE
-		           AND OFV.PRODUCT_NO = FG.PRODUCT_NO
-		           )FR ON CPH.ORD_NO = FR.ORD_NO
-
-		WHERE CPH.CUST_NO = #{custNo}
-		AND CPH.PNT_AMT > 0
-		AND DATE_FORMAT(CPH.UPD_DT,'%Y%m') = #{searchDt}
-		GROUP BY CPH.REG_DT
-		ORDER BY CPH.REG_DT DESC
+		SELECT Z.*
+		FROM (
+		       SELECT  CASE CPH.OCCUR_GB
+		                    WHEN 'G069_20' THEN '리뷰'
+		                    WHEN 'G069_30' THEN '이벤트'
+		                    WHEN 'G069_31' THEN '회원가입'
+		                    WHEN 'G069_32' THEN '생일'
+		                    WHEN 'G069_35' THEN 'APP'
+		                    WHEN 'G069_36' THEN '상품 구매'
+		                    WHEN 'G069_37' THEN '이벤트'
+		                    WHEN 'G069_40' THEN '상품 구매'
+		                    WHEN 'G069_41' THEN '구매 취소'
+		                    WHEN 'G069_42' THEN '사은품'
+		                    WHEN 'G069_43' THEN '사은품'
+		                    WHEN 'G069_44' THEN '관리자'
+		                    WHEN 'G069_45' THEN '관리자'
+		                    WHEN 'G069_46' THEN '적립취소'
+		                    WHEN 'G069_90' THEN '기타'
+		                    WHEN 'G069_99' THEN '소멸'
+		                    END                                          AS OCCUR_GB
+		               ,CASE CPH.OCCUR_GB
+		                   WHEN 'G069_20' THEN G.GOODS_NM
+		                   WHEN 'G069_30' THEN '이벤트'
+		                   WHEN 'G069_31' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_32' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_35' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_36' THEN G.GOODS_NM
+		                   WHEN 'G069_37' THEN '출석체크'
+		                   WHEN 'G069_40' THEN G.GOODS_NM
+		                   WHEN 'G069_41' THEN G.GOODS_NM
+		                   WHEN 'G069_42' THEN FR.GOODS_NM
+		                   WHEN 'G069_43' THEN FR.GOODS_NM
+		                   WHEN 'G069_44' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_45' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_46' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_90' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_99' THEN '유효기간 경과 소멸'
+		                   END                                          AS  OCCUR_DTL_DESC
+		            , CPH.PNT_AMT
+		            , CPH.UPD_DT AS PNT_UPLOAD_DT
+		       FROM TB_CUST_POINT_HST CPH
+		       LEFT JOIN TB_ORDER_DETAIL OD
+		       ON  CPH.ORD_NO = OD.ORD_NO
+		       AND CPH.ORD_DTL_NO = OD.ORD_DTL_NO
+		       LEFT JOIN TB_GOODS G
+		       ON  OD.GOODS_CD = G.GOODS_CD
+		       LEFT JOIN (SELECT FG.GOODS_NM
+		                        ,OFV.ORD_NO
+		                  FROM TB_ORD_FREEGIFT_VAL OFV
+		                  INNER JOIN TB_FREE_GOODS FG
+		                  ON OFV.PRODUCT_CODE = FG.PRODUCT_CODE
+		                  AND OFV.PRODUCT_NO = FG.PRODUCT_NO
+		                  )FR ON CPH.ORD_NO = FR.ORD_NO
+		       WHERE CPH.CUST_NO = #{custNo}
+		       AND CPH.OCCUR_GB NOT IN ('G069_12','G069_13')
+		       AND DATE_FORMAT(CPH.UPD_DT,'%Y%m') = #{searchDt}
+		       AND CPH.PNT_AMT <![CDATA[>]]> 0
+		UNION ALL
+		      SELECT  CASE CPH.OCCUR_GB
+		                  WHEN 'G069_12' THEN '상품 구매'
+		                  WHEN 'G069_13' THEN '구매 취소'
+		                 END                                          AS OCCUR_GB
+		            , CASE CPH.OCCUR_GB
+		                  WHEN 'G069_12' THEN G.GOODS_NM
+		                  WHEN 'G069_13' THEN G.GOODS_NM
+		                 END                                          AS  OCCUR_DTL_DESC
+		           , SUM(CPH.PNT_AMT)
+		           , CPH.UPD_DT AS PNT_UPLOAD_DT
+		      FROM TB_CUST_POINT_HST CPH
+		      LEFT JOIN TB_ORDER_DETAIL OD
+		      ON  CPH.ORD_NO = OD.ORD_NO
+		      AND CPH.ORD_DTL_NO = OD.ORD_DTL_NO
+		      LEFT JOIN TB_GOODS G
+		      ON  OD.GOODS_CD = G.GOODS_CD
+		      LEFT JOIN (SELECT FG.GOODS_NM
+		                       ,OFV.ORD_NO
+		                 FROM TB_ORD_FREEGIFT_VAL OFV
+		                 INNER JOIN TB_FREE_GOODS FG
+		                 ON OFV.PRODUCT_CODE = FG.PRODUCT_CODE
+		                 AND OFV.PRODUCT_NO = FG.PRODUCT_NO
+		                 )FR ON CPH.ORD_NO = FR.ORD_NO
+		      WHERE CPH.CUST_NO = #{custNo}
+		        AND CPH.SWITCH_DUE_DT IS NOT NULL
+		        AND CPH.OCCUR_GB IN ('G069_12','G069_13')
+		        AND CPH.PNT_UPLOAD_STAT = 'G070_30'
+		        AND DATE_FORMAT(CPH.UPD_DT,'%Y%m') = #{searchDt}
+		        AND CPH.PNT_AMT <![CDATA[>]]> 0
+		) Z
+		WHERE Z.PNT_UPLOAD_DT IS NOT NULL
+		ORDER BY Z.PNT_UPLOAD_DT DESC	
 	</select>
 	
 	<!-- 사용내역 조회-->
 	<select id="getUsePointList" parameterType="Point" resultType="Point">
 	/* TsfPoint.getUsePointList */
-		SELECT  CASE CPH.OCCUR_GB
-		            WHEN 'G069_10' THEN '상품 구매'
-		            WHEN 'G069_13' THEN '구매 취소'
-		            WHEN 'G069_21' THEN '리뷰'
-		            WHEN 'G069_36' THEN '상품 구매'
-		            WHEN 'G069_40' THEN '상품 구매'
-		            WHEN 'G069_42' THEN '사은품'
-		            WHEN 'G069_46' THEN '적립취소'
-		            WHEN 'G069_90' THEN '관리자'
-		            WHEN 'G069_99' THEN '소멸'
-		       END                                          AS OCCUR_GB
-		     , CASE CPH.OCCUR_GB
-		            WHEN 'G069_10' THEN G.GOODS_NM
-		            WHEN 'G069_13' THEN G.GOODS_NM
-		            WHEN 'G069_21' THEN G.GOODS_NM
-		            WHEN 'G069_36' THEN G.GOODS_NM
-		            WHEN 'G069_40' THEN G.GOODS_NM
-		            WHEN 'G069_42' THEN FR.GOODS_NM
-		            WHEN 'G069_46' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_90' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_99' THEN '유효기간 경과 소멸'
-		       END                                          AS  OCCUR_DTL_DESC
-		     , CPH.PNT_AMT
-		     , CPH.REG_DT AS PNT_UPLOAD_DT
-		FROM TB_CUST_POINT_HST CPH
-		LEFT JOIN TB_ORDER_DETAIL OD
-		ON  CPH.ORD_NO = OD.ORD_NO
-		AND CPH.ORD_DTL_NO = OD.ORD_DTL_NO
-		LEFT JOIN TB_GOODS G
-		ON  OD.GOODS_CD = G.GOODS_CD
-		LEFT JOIN (SELECT FG.GOODS_NM
-		                 ,OFV.ORD_NO 
-		           FROM TB_ORD_FREEGIFT_VAL OFV
-		           INNER JOIN TB_FREE_GOODS FG
-		           ON OFV.PRODUCT_CODE = FG.PRODUCT_CODE
-		           AND OFV.PRODUCT_NO = FG.PRODUCT_NO
-		           )FR ON CPH.ORD_NO = FR.ORD_NO
-		WHERE CPH.CUST_NO = #{custNo}
-		AND CPH.PNT_AMT <![CDATA[<]]> 0
-		AND DATE_FORMAT(CPH.UPD_DT,'%Y%m') = #{searchDt}
-		GROUP BY CPH.ORD_NO, CPH.REG_DT
-		ORDER BY CPH.REG_DT DESC
+		SELECT Z.*
+		FROM (
+		       SELECT  CASE CPH.OCCUR_GB
+		                    WHEN 'G069_20' THEN '리뷰'
+		                    WHEN 'G069_30' THEN '이벤트'
+		                    WHEN 'G069_31' THEN '회원가입'
+		                    WHEN 'G069_32' THEN '생일'
+		                    WHEN 'G069_35' THEN 'APP'
+		                    WHEN 'G069_36' THEN '상품 구매'
+		                    WHEN 'G069_37' THEN '이벤트'
+		                    WHEN 'G069_40' THEN '상품 구매'
+		                    WHEN 'G069_41' THEN '구매 취소'
+		                    WHEN 'G069_42' THEN '사은품'
+		                    WHEN 'G069_43' THEN '사은품'
+		                    WHEN 'G069_44' THEN '관리자'
+		                    WHEN 'G069_45' THEN '관리자'
+		                    WHEN 'G069_46' THEN '적립취소'
+		                    WHEN 'G069_90' THEN '기타'
+		                    WHEN 'G069_99' THEN '소멸'
+		                    END                                          AS OCCUR_GB
+		               ,CASE CPH.OCCUR_GB
+		                   WHEN 'G069_20' THEN G.GOODS_NM
+		                   WHEN 'G069_30' THEN '이벤트'
+		                   WHEN 'G069_31' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_32' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_35' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_36' THEN G.GOODS_NM
+		                   WHEN 'G069_37' THEN '출석체크'
+		                   WHEN 'G069_40' THEN G.GOODS_NM
+		                   WHEN 'G069_41' THEN G.GOODS_NM
+		                   WHEN 'G069_42' THEN FR.GOODS_NM
+		                   WHEN 'G069_43' THEN FR.GOODS_NM
+		                   WHEN 'G069_44' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_45' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_46' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_90' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_99' THEN '유효기간 경과 소멸'
+		                   END                                          AS  OCCUR_DTL_DESC
+		            , CPH.PNT_AMT
+		            , CPH.UPD_DT AS PNT_UPLOAD_DT
+		       FROM TB_CUST_POINT_HST CPH
+		       LEFT JOIN TB_ORDER_DETAIL OD
+		       ON  CPH.ORD_NO = OD.ORD_NO
+		       AND CPH.ORD_DTL_NO = OD.ORD_DTL_NO
+		       LEFT JOIN TB_GOODS G
+		       ON  OD.GOODS_CD = G.GOODS_CD
+		       LEFT JOIN (SELECT FG.GOODS_NM
+		                        ,OFV.ORD_NO
+		                  FROM TB_ORD_FREEGIFT_VAL OFV
+		                  INNER JOIN TB_FREE_GOODS FG
+		                  ON OFV.PRODUCT_CODE = FG.PRODUCT_CODE
+		                  AND OFV.PRODUCT_NO = FG.PRODUCT_NO
+		                  )FR ON CPH.ORD_NO = FR.ORD_NO
+		       WHERE CPH.CUST_NO = #{custNo}
+		       AND CPH.OCCUR_GB NOT IN ('G069_12','G069_13')
+		       AND DATE_FORMAT(CPH.UPD_DT,'%Y%m') = #{searchDt}
+		       AND CPH.PNT_AMT <![CDATA[<]]> 0
+		UNION ALL
+		      SELECT  CASE CPH.OCCUR_GB
+		                  WHEN 'G069_12' THEN '상품 구매'
+		                  WHEN 'G069_13' THEN '구매 취소'
+		                 END                                          AS OCCUR_GB
+		            , CASE CPH.OCCUR_GB
+		                  WHEN 'G069_12' THEN G.GOODS_NM
+		                  WHEN 'G069_13' THEN G.GOODS_NM
+		                 END                                          AS  OCCUR_DTL_DESC
+		           , SUM(CPH.PNT_AMT)
+		           , CPH.UPD_DT AS PNT_UPLOAD_DT
+		      FROM TB_CUST_POINT_HST CPH
+		      LEFT JOIN TB_ORDER_DETAIL OD
+		      ON  CPH.ORD_NO = OD.ORD_NO
+		      AND CPH.ORD_DTL_NO = OD.ORD_DTL_NO
+		      LEFT JOIN TB_GOODS G
+		      ON  OD.GOODS_CD = G.GOODS_CD
+		      LEFT JOIN (SELECT FG.GOODS_NM
+		                       ,OFV.ORD_NO
+		                 FROM TB_ORD_FREEGIFT_VAL OFV
+		                 INNER JOIN TB_FREE_GOODS FG
+		                 ON OFV.PRODUCT_CODE = FG.PRODUCT_CODE
+		                 AND OFV.PRODUCT_NO = FG.PRODUCT_NO
+		                 )FR ON CPH.ORD_NO = FR.ORD_NO
+		      WHERE CPH.CUST_NO = #{custNo}
+		        AND CPH.SWITCH_DUE_DT IS NOT NULL
+		        AND CPH.OCCUR_GB IN ('G069_12','G069_13')
+		        AND CPH.PNT_UPLOAD_STAT = 'G070_30'
+		        AND DATE_FORMAT(CPH.UPD_DT,'%Y%m') = #{searchDt}
+		        AND CPH.PNT_AMT <![CDATA[<]]> 0
+		) Z
+		WHERE Z.PNT_UPLOAD_DT IS NOT NULL
+		ORDER BY Z.PNT_UPLOAD_DT DESC	
 	</select>
 	
 	<!-- 전체내역 조회-->
 	<select id="getAllPointList" parameterType="Point" resultType="Point">
 	/* TsfPoint.getAllPointList */
-		SELECT  CASE CPH.OCCUR_GB
-		            WHEN 'G069_10' THEN '상품 구매'
-		            WHEN 'G069_11' THEN '구매 취소'
-		            WHEN 'G069_12' THEN '상품 구매'
-		            WHEN 'G069_13' THEN '구매 취소'
-		            WHEN 'G069_20' THEN '리뷰'
-		            WHEN 'G069_21' THEN '리뷰'
-		            WHEN 'G069_30' THEN '이벤트'
-		            WHEN 'G069_31' THEN '회원가입'
-		            WHEN 'G069_32' THEN '생일'
-		            WHEN 'G069_35' THEN 'APP'
-		            WHEN 'G069_36' THEN '상품 구매'
-		            WHEN 'G069_37' THEN '이벤트'
-		            WHEN 'G069_40' THEN '상품 구매'
-		            WHEN 'G069_41' THEN '구매 취소'
-		            WHEN 'G069_42' THEN '사은품'
-		            WHEN 'G069_43' THEN '사은품'
-		            WHEN 'G069_44' THEN '관리자'
-		            WHEN 'G069_45' THEN '관리자'
-		            WHEN 'G069_46' THEN '적립취소'
-		            WHEN 'G069_90' THEN '관리자'
-		            WHEN 'G069_99' THEN '소멸'
-		       END                                          AS OCCUR_GB
-     , CASE CPH.OCCUR_GB
-                    WHEN 'G069_10' THEN G.GOODS_NM
-		            WHEN 'G069_11' THEN G.GOODS_NM
-		            WHEN 'G069_12' THEN G.GOODS_NM
-		            WHEN 'G069_13' THEN G.GOODS_NM
-		            WHEN 'G069_20' THEN G.GOODS_NM
-		            WHEN 'G069_21' THEN G.GOODS_NM
-		            WHEN 'G069_30' THEN '이벤트'
-		            WHEN 'G069_31' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_32' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_35' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_36' THEN G.GOODS_NM
-		            WHEN 'G069_37' THEN '출석체크'
-		            WHEN 'G069_40' THEN G.GOODS_NM
-		            WHEN 'G069_41' THEN G.GOODS_NM
-		            WHEN 'G069_42' THEN FR.GOODS_NM
-		            WHEN 'G069_43' THEN FR.GOODS_NM
-		            WHEN 'G069_44' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_45' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_46' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_90' THEN CPH.OCCUR_DTL_DESC
-		            WHEN 'G069_99' THEN '유효기간 경과 소멸'
-		       END                                          AS  OCCUR_DTL_DESC
-		     , CPH.PNT_AMT
-		     , CPH.REG_DT AS PNT_UPLOAD_DT
-		FROM TB_CUST_POINT_HST CPH
-		LEFT JOIN TB_ORDER_DETAIL OD
-		ON  CPH.ORD_NO = OD.ORD_NO
-		AND CPH.ORD_DTL_NO = OD.ORD_DTL_NO
-		LEFT JOIN TB_GOODS G
-		ON  OD.GOODS_CD = G.GOODS_CD
-		LEFT JOIN (SELECT FG.GOODS_NM
-		                 ,OFV.ORD_NO 
-		           FROM TB_ORD_FREEGIFT_VAL OFV
-		           INNER JOIN TB_FREE_GOODS FG
-		           ON OFV.PRODUCT_CODE = FG.PRODUCT_CODE
-		           AND OFV.PRODUCT_NO = FG.PRODUCT_NO
-		           )FR ON CPH.ORD_NO = FR.ORD_NO
-		WHERE CPH.CUST_NO = #{custNo}
-		AND DATE_FORMAT(CPH.UPD_DT,'%Y%m') = #{searchDt}
-		GROUP BY CPH.REG_DT
-		ORDER BY CPH.REG_DT DESC
-	</select>
+		SELECT Z.*
+		FROM (
+		       SELECT  CASE CPH.OCCUR_GB
+		                    WHEN 'G069_20' THEN '리뷰'
+		                    WHEN 'G069_30' THEN '이벤트'
+		                    WHEN 'G069_31' THEN '회원가입'
+		                    WHEN 'G069_32' THEN '생일'
+		                    WHEN 'G069_35' THEN 'APP'
+		                    WHEN 'G069_36' THEN '상품 구매'
+		                    WHEN 'G069_37' THEN '이벤트'
+		                    WHEN 'G069_40' THEN '상품 구매'
+		                    WHEN 'G069_41' THEN '구매 취소'
+		                    WHEN 'G069_42' THEN '사은품'
+		                    WHEN 'G069_43' THEN '사은품'
+		                    WHEN 'G069_44' THEN '관리자'
+		                    WHEN 'G069_45' THEN '관리자'
+		                    WHEN 'G069_46' THEN '적립취소'
+		                    WHEN 'G069_90' THEN '기타'
+		                    WHEN 'G069_99' THEN '소멸'
+		                    END                                          AS OCCUR_GB
+		               ,CASE CPH.OCCUR_GB
+		                   WHEN 'G069_20' THEN G.GOODS_NM
+		                   WHEN 'G069_30' THEN '이벤트'
+		                   WHEN 'G069_31' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_32' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_35' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_36' THEN G.GOODS_NM
+		                   WHEN 'G069_37' THEN '출석체크'
+		                   WHEN 'G069_40' THEN G.GOODS_NM
+		                   WHEN 'G069_41' THEN G.GOODS_NM
+		                   WHEN 'G069_42' THEN FR.GOODS_NM
+		                   WHEN 'G069_43' THEN FR.GOODS_NM
+		                   WHEN 'G069_44' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_45' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_46' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_90' THEN CPH.OCCUR_DTL_DESC
+		                   WHEN 'G069_99' THEN '유효기간 경과 소멸'
+		                   END                                          AS  OCCUR_DTL_DESC
+		            , CPH.PNT_AMT
+		            , CPH.UPD_DT AS PNT_UPLOAD_DT
+		       FROM TB_CUST_POINT_HST CPH
+		       LEFT JOIN TB_ORDER_DETAIL OD
+		       ON  CPH.ORD_NO = OD.ORD_NO
+		       AND CPH.ORD_DTL_NO = OD.ORD_DTL_NO
+		       LEFT JOIN TB_GOODS G
+		       ON  OD.GOODS_CD = G.GOODS_CD
+		       LEFT JOIN (SELECT FG.GOODS_NM
+		                        ,OFV.ORD_NO
+		                  FROM TB_ORD_FREEGIFT_VAL OFV
+		                  INNER JOIN TB_FREE_GOODS FG
+		                  ON OFV.PRODUCT_CODE = FG.PRODUCT_CODE
+		                  AND OFV.PRODUCT_NO = FG.PRODUCT_NO
+		                  )FR ON CPH.ORD_NO = FR.ORD_NO
+		       WHERE CPH.CUST_NO = #{custNo}
+		       AND CPH.OCCUR_GB NOT IN ('G069_12','G069_13')
+		       AND DATE_FORMAT(CPH.UPD_DT,'%Y%m') = #{searchDt}
+		UNION ALL
+		      SELECT  CASE CPH.OCCUR_GB
+		                  WHEN 'G069_12' THEN '상품 구매'
+		                  WHEN 'G069_13' THEN '구매 취소'
+		                 END                                          AS OCCUR_GB
+		            , CASE CPH.OCCUR_GB
+		                  WHEN 'G069_12' THEN G.GOODS_NM
+		                  WHEN 'G069_13' THEN G.GOODS_NM
+		                 END                                          AS  OCCUR_DTL_DESC
+		           , SUM(CPH.PNT_AMT)
+		           , CPH.UPD_DT AS PNT_UPLOAD_DT
+		      FROM TB_CUST_POINT_HST CPH
+		      LEFT JOIN TB_ORDER_DETAIL OD
+		      ON  CPH.ORD_NO = OD.ORD_NO
+		      AND CPH.ORD_DTL_NO = OD.ORD_DTL_NO
+		      LEFT JOIN TB_GOODS G
+		      ON  OD.GOODS_CD = G.GOODS_CD
+		      LEFT JOIN (SELECT FG.GOODS_NM
+		                       ,OFV.ORD_NO
+		                 FROM TB_ORD_FREEGIFT_VAL OFV
+		                 INNER JOIN TB_FREE_GOODS FG
+		                 ON OFV.PRODUCT_CODE = FG.PRODUCT_CODE
+		                 AND OFV.PRODUCT_NO = FG.PRODUCT_NO
+		                 )FR ON CPH.ORD_NO = FR.ORD_NO
+		      WHERE CPH.CUST_NO = #{custNo}
+		        AND CPH.SWITCH_DUE_DT IS NOT NULL
+		        AND CPH.OCCUR_GB IN ('G069_12','G069_13')
+		        AND CPH.PNT_UPLOAD_STAT = 'G070_30'
+		        AND DATE_FORMAT(CPH.UPD_DT,'%Y%m') = #{searchDt}
+		) Z
+		WHERE Z.PNT_UPLOAD_DT IS NOT NULL
+		ORDER BY Z.PNT_UPLOAD_DT DESC	
+		</select>
 
 	<!-- 고객 포인트 내역 -->
 	<select id="getCustomerPoint" parameterType="Integer" resultType="Point">

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

@@ -127,7 +127,8 @@
 		                         , CASE WHEN GB.BENEFIT_GB = '10' THEN '쿠폰할인'
 		                                WHEN GB.BENEFIT_GB = '20' THEN '무료배송'
 		                                WHEN GB.BENEFIT_GB = '30' THEN '사은품'
-		                                ELSE '신상'
+		                                WHEN GB.BENEFIT_GB = '40' THEN '신상'
+		                                ELSE '총알배송'
 		                           END                               AS BENEFIT_NM
 		                         , RANK() OVER(PARTITION BY PG.GOODS_CD
 		                                       ORDER BY GB.BENEFIT_GB

+ 14 - 25
src/main/resources/config/application-style.yml

@@ -8,20 +8,9 @@ spring:
                 max-active: 10
                 max-idle: 10
                 min-idle: 2
-        host: 172.30.90.111
+        host: 172.30.87.5
         port: 6379
-        password:
-        cluster:
-            nodes:
-                172.30.90.111:6379
-                172.30.90.112:6379
-                172.30.90.113:6379
-                172.30.90.111:6380
-                172.30.90.112:6380
-                172.30.90.113:6380
-                172.30.90.111:6381
-                172.30.90.112:6381
-                172.30.90.113:6381
+        password: MdxpyGtipZSci6VhTpFdklXxb4Qv7zxEq3Jqg3ULekg=
 
 # SSL Server
 has-ssl: false
@@ -30,40 +19,40 @@ logging:
     config: classpath:log/logback-run.xml
 
 domain:
-    admin: //admin.style24.com
+    admin: //bos.style24.com
     front: //www.style24.com
-    image: //www.style24.com
+    image: //image.istyle24.com
     uximage: //www.style24.com
 
 
 upload:
     default:
-        target.path: /files/data/style24
+        target.path: /usr/local/data/style24
         max.size: 10
         allow.extension: jpg|gif|jpeg|png|bmp|txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
-        view: //image.style24.com
+        view: //image.istyle24.com
     goods:
-        target.path: /files/data/style24/Upload/ProductImage
+        target.path: /usr/local/data/style24/productimage
         max.size: 10
         allow.extension: jpg|gif|jpeg|png
         view: //image.istyle24.com/Upload/ProductImage
     image:
-        target.path: /files/data/style24
+        target.path: /usr/local/data/style24
         max.size: 10
         allow.extension: jpg|gif|jpeg|png
-        view: //image.style24.com
+        view: //image.istyle24.com
     excel:
-        target.path: /files/data/style24/excel
+        target.path: /usr/local/data/style24/excel
         max.size: 10
         allow.extension: xls|xlsx
-        view: //image.style24.com/excel
+        view: //image.istyle24.com/excel
     sample:
-        target.path: /files/data/style24/sample
+        target.path: /usr/local/data/style24/sample
         max.size: 10
         allow.extension: txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
         view: //image.style24.com/sample
 
-download.path: /files/data
+download.path: /usr/local/data
 
 # USAFE 보증보험 정보
 usafe.guarantee:
@@ -74,7 +63,7 @@ usafe.guarantee:
 # PG
 pg:
     kcp:
-        log.dir: /files/data/style24/logs/kcpLogs/front
+        log.dir: /logs/style24/kcpLogs/front
         gw:
             url: testpaygw.kcp.co.kr
             port: 8090

+ 434 - 0
src/main/webapp/WEB-INF/views/mob/display/LookbookDetailFormMob.html

@@ -0,0 +1,434 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/DefaultLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : LookbookDetailFormMob.html
+ * @desc    : 룩북 상세 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.09   bin2107     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+	<main role="" id="" class="container br">
+
+		<!-- ★ 컨텐츠 시작 -->
+		<section class="content br_lookbook" th:if="${lookbookDetailList != null}">
+			<div class="inner">
+				<h2 class="collection_title" th:text="${lookbookInfo.title}">2020 F/W COLLECTION</h2>
+			</div>
+			<div class="inner wide">
+				<div class="recommendedArea">
+					<!-- 상품이미지pic -->
+					<div class="area_slider pic_img">
+						<div class="swiper-container">
+							<div class="swiper-wrapper">
+								<th:block th:each="item, stat : ${lookbookDetailList}">
+									<div class="swiper-slide">
+										<div class="page">
+											<div class="pic">
+												<span class="thumb" th:style="${'background-image:url('+@environment.getProperty('domain.image')+item.sysFileNm+')'}"></span>
+												<!-- 상품피커 -->
+												<th:block th:if="${item.lookbookGoodsList != null and !item.lookbookGoodsList.empty}" th:each="goodsItem, goodsStatus : ${item.lookbookGoodsList}">
+													<div class="item_picker" th:style="${'left:'+goodsItem.xlim+'%; top:'+goodsItem.ylim+'%;'}">
+														<button type="button" th:onclick="fnLookbookGoodsPopup([[${goodsItem.sysImgNm}]],[[${goodsItem.brandGroupNm}]],[[${goodsItem.goodsFullNm}]],[[${goodsItem.listPrice}]],[[${goodsItem.currPrice}]],[[${goodsItem.dcRate}]],[[${goodsItem.goodsCd}]],[[${goodsItem.stockQty}]],[[${goodsItem.soldoutYn}]])"><span class="ico ico_picker"></span></button>
+													</div>
+												</th:block>
+												<!-- //상품피커 -->
+											</div>
+										</div>
+									</div>
+								</th:block>
+							</div>
+							<!-- Add Pagination -->
+							<div class="swiper-pagination"></div>
+						</div>
+					</div>
+					<!-- //상품이미지pic -->
+					<div class="lb_text" th:if="${lookbookDetailList != null}">
+						<th:block th:each="item, stat : ${lookbookDetailList}">
+							<div class="text_cont" th:text="${item.imgDesc}">
+							</div>
+						</th:block>
+						<button class="btn btnText"><p>더보기</p><span></span></button>
+					</div>
+				</div>
+			</div>
+			<div class="inner" th:if="${lookbookDetailList != null}">
+				<div class="br_inlookbook">
+					<th:block th:each="item, stat : ${lookbookDetailList}">
+						<p class="title ioTit"><em>룩북 속 상품</em>(<th:block th:text="${#lists.size(item.lookbookGoodsList)}"></th:block>)</p>
+					</th:block>
+
+					<div class="area_slider">
+						<!-- 겉 상품 -->
+						<div class="items_outside">
+							<th:block th:each="item, stat : ${lookbookDetailList}">
+								<div class="itemsOut" th:id="${'itemsList'+stat.count}">
+									<div class="swiper-container items_inside swiper-container-initialized swiper-container-horizontal">
+										<div class="swiper-wrapper" style="transform: translate3d(0px, 0px, 0px);">
+											<th:block th:if="${item.lookbookGoodsList != null and !item.lookbookGoodsList.empty}" th:each="goodsItem, goodsStatus : ${item.lookbookGoodsList}">
+												<div class="swiper-slide swiper-slide-active" style="width: 210.333px; margin-right: 20px;">
+													<div class="item_prod" th:classappend="${(goodsItem.stockQty <= 0 or goodsItem.soldoutYn == 'Y')}? 'unable' : ''"
+														 th:attr="goodsCd=${goodsItem.goodsCd}, optCdInfo=${goodsItem.optCdInfo}, minOrdQty=${goodsItem.minOrdQty},  goodsType=${goodsItem.goodsType}">
+														<div class="item_state">
+															<th:block th:each="optCd : ${#strings.arraySplit(goodsItem.optCdInfo,',')}">
+																<input type="hidden" name="lookbookGoodsOptCd" th:value="${optCd}"/>
+															</th:block>
+															<th:block th:if="${(goodsItem.stockQty <= 0 or goodsItem.soldoutYn == 'Y')}">
+																<a href="javascript:void(0);" class="itemLink" >
+															</th:block>
+															<th:block th:unless="${(goodsItem.stockQty <= 0 or goodsItem.soldoutYn == 'Y')}">
+																<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsItem.goodsCd}]])">
+															</th:block>
+																<div class="itemPic">
+																	<img alt="" class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsItem.sysImgNm}">
+																</div>
+																<p class="itemBrand" th:text="${goodsItem.brandGroupNm}">BRAND NAME1</p>
+																<div class="itemName" th:text="${goodsItem.goodsFullNm}">남성 로고 자카드 방풍 패딩</div>
+																<p class="itemPrice">[[${#numbers.formatInteger(goodsItem.currPrice,0,'COMMA')} + 원]]
+																	<span class="itemPrice_original" th:if="${goodsItem.currPrice != goodsItem.listPrice}" th:text="${#numbers.formatInteger(goodsItem.listPrice,3,'COMMA')}">89,000</span>
+																	<span class="itemPercent" th:if="${goodsItem.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsItem.dcRate,0,0)}%|">10%</span>
+																</p>
+															</a>
+														</div>
+													</div>
+												</div>
+											</th:block>
+										</div>
+										<div class="swiper-scrollbar" style="opacity: 0; transition-duration: 400ms;">
+											<div class="swiper-scrollbar-drag" style="transition-duration: 0ms;"></div>
+										</div>
+										<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>
+									</div>
+								</div>
+							</th:block>
+							<!-- 룩북1 해당 아이템 -->
+						</div>
+						<!-- 겉 상품 종료 -->
+					</div>
+					<!-- 05.06_ 추가 : .ioTit , .ioBtn -->
+					<th:block th:each="item, stat : ${lookbookDetailList}">
+						<button class="btn ioBtn" th:onclick="fnAddCartLookBookGoods1(this,[[${stat.count}]]);">모두 쇼핑백 담기</button>
+					</th:block>
+				</div>
+			</div>
+			<div class="inner" th:if="${otherLookbookList}">
+				<!-- 다른룩북보기 슬라이드 -->
+				<div class="br_otherbrand">
+					<h3 class="br_subtitle">다른 룩북 보기</h3>
+					<div class="area_slider">
+						<div class="swiper-container">
+							<div class="swiper-wrapper">
+								<th:block th:if="${otherLookbookList}" th:each="oneData, status : ${otherLookbookList}">
+									<div class="swiper-slide">
+										<a th:href="|javascript:cfnGoToLookbookDetail('${oneData.lookbookSq}','${oneData.brandCd}')|">
+											<div class="thumb">
+												<img th:src="${@environment.getProperty('domain.image')+oneData.sysFileNm}" alt="">
+											</div>
+											<div class="txt">
+												<p class="tt" th:text="${oneData.title}"></p>
+											</div>
+										</a>
+									</div>
+								</th:block>
+							</div>
+						</div>
+					</div>
+				</div>
+				<!-- //다른룩북보기 슬라이드 -->
+			</div>
+		</section>
+		<!-- ★ 컨텐츠 종료 -->
+
+		<!-- 픽커모달 -->
+		<div class="modal fade" id="reco_pop" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
+<!--			<div class="modal-dialog" role="document">-->
+<!--				<div class="modal-content">-->
+<!--					<div class="modal-header">-->
+<!--						<h5 class="modal-title"><span class="sr_only">제품정보</span></h5>-->
+<!--					</div>-->
+<!--					<div class="modal-body">-->
+<!--						<div class="itemsGrp rowtype">-->
+<!--							<div class="item_prod">-->
+<!--								<div class="item_state">-->
+<!--									<a href="#none" class="itemLink">-->
+<!--										<div class="itemPic">-->
+<!--											<img class="vLHTC pd_img" src="/images/mo/thumb/br_main03.png" alt="">-->
+<!--										</div>-->
+<!--										<p class="itemBrand">BRAND NAME</p>-->
+<!--										<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>-->
+<!--										<p class="itemPrice">-->
+<!--											80,100-->
+<!--										</p>-->
+<!--									</a>-->
+<!--								</div>-->
+<!--							</div>-->
+<!--						</div>-->
+<!--					</div>-->
+<!--				</div>-->
+<!--			</div>-->
+<!--			<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>-->
+		</div>
+		<!-- //픽커모달 -->
+
+	</main>
+
+	<script th:inline="javascript">
+	/*<![CDATA[*/
+	var lookbookGb = [[${lookbookInfo.lookbookGb}]];
+	var brandCd = [[${lookbookInfo.brandCd}]];
+	var goodsImgUrl = [[${@environment.getProperty('upload.goods.view')}]];
+
+	var fnLookbookGoodsPopup = function(obj1,obj2,obj3,obj4,obj5,obj6,obj7,obj8,obj9){
+		$("#reco_pop .modal-dialog").remove();
+		tag = '';
+
+		tag +='<div class="modal-dialog" role="document">\n';
+		tag +='	<div class="modal-content">\n';
+		tag +='		<div class="modal-header">\n';
+		tag +='			<h5 class="modal-title"><span class="sr_only">제품정보</span></h5>\n';
+		tag +='		</div>\n';
+		tag +='		<div class="modal-body">\n';
+		tag +='			<div class="itemsGrp rowtype">\n';
+		tag +='				<div class="item_prod ';
+		if(obj9 == 'Y'){
+			tag += ' sold_out';
+		}
+		tag +='">\n';
+		tag +='					<div class="item_state">\n';
+		tag +='						<a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\''+obj7+'\',\'\',\'\')" class="itemLink">\n';
+		tag +='							<div class="itemPic">\n';
+		tag +='								<img class="vLHTC pd_img" src="'+goodsImgUrl+'/'+obj1+'?RS=260" alt="">\n';
+		tag +='							</div>\n';
+		tag +='							<p class="itemBrand">'+obj2+'</p>\n';
+		tag +='							<div class="itemName">'+obj3+'</div>\n';
+		tag +='							<p class="itemPrice">'+obj5.addComma()+'</p>\n';
+		tag +='						</a>\n';
+		tag +='					</div>\n';
+		tag +='				</div>\n';
+		tag +='			</div>\n';
+		tag +='		</div>\n';
+		tag +='	</div>\n';
+		tag +='</div>\n';
+		tag +='<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>\n';
+
+		$("#reco_pop").append(tag);
+		$('#reco_pop').modal("show");
+	}
+
+	var fnAddCartLookBookGoods1 = function (obj, idx){
+		let $obj = $(obj);
+		let $target = $('.br_inlookbook #itemsList'+idx).find('.item_prod');
+		let goodsSize = $target.length;
+		let btnType = "C";
+		let params = [];
+		let goodsIdx = 0;
+
+		$target.each(function(){
+			goodsIdx ++;
+			if ($(this).hasClass('unable')) {
+
+			}else{
+				// 옵션확인
+				let goodsCnt = $(this).find('input[name=lookbookGoodsOptCd]').length;
+				if(goodsCnt == 1){
+					let arrOpt = $(this).find('input[name=lookbookGoodsOptCd]').val();
+					let arrOptInfo = arrOpt.split(':');
+
+					let obj = new Object();
+					obj.goodsCd = $(this).attr("goodsCd");
+					obj.optCd = arrOptInfo[1];
+					obj.goodsQty = $(this).attr("minOrdQty");
+					obj.goodsType = $(this).attr("goodsType");
+					obj.cartGb = btnType;
+					obj.afLinkCd = '';
+					obj.ithrCd = $(this).attr("ithrCd");
+					obj.contentsLoc = $(this).attr("contentsLoc");
+					obj.planDtlSq = '';
+					obj.multiGoodsGb = 'O'  // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
+					if (goodsIdx == goodsSize){
+						obj.multiGoodsGb = 'E'  // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
+					}
+					params.push(obj);
+
+					// 장바구니담기
+					cfnAddCart(params);
+				}else{
+					let $goods = $(this);
+					let cartGoodsList = [];
+					let compsList = [];
+					let goodsList = {
+						cartCompsList : new Array()
+					}
+
+					let arrInfo = $(this).find('input[name=lookbookGoodsOptCd]').val().split(',');	// 상품코드단위
+
+
+					$.each(arrInfo, function(idx, item) {
+						let arrOptInfo = item.split(':');
+
+						let obj = new Object();
+						obj.cartGb = btnType;
+						obj.goodsType = $goods.attr("goodsType");
+						obj.goodsCd = $goods.attr("goodsCd");
+						obj.itemCd =arrOptInfo[0];
+						obj.optCd = arrOptInfo[1];
+						obj.goodsQty = $goods.attr("minOrdQty");
+						obj.afLinkCd = '';
+						obj.ithrCd =  $goods.attr("ithrCd");
+						obj.contentsLoc = $goods.attr("contentsLoc");
+						obj.planDtlSq = ''
+						obj.multiGoodsGb = 'O'  // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
+						if (goodsIdx == goodsSize){
+							obj.multiGoodsGb = 'E'  // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
+						}
+						compsList.push(obj);
+
+					});
+
+					goodsList.cartCompsList = compsList;
+					cartGoodsList.push(goodsList);
+
+					// 장바구니담기
+					cfnAddCart(cartGoodsList);
+				}
+			}
+		});
+	}
+
+	$(document).ready(function(){
+		//setHtop();
+
+		var spc = $('.swiper-pagination-current');
+		var spt = $('.swiper-pagination-total');
+		setInterval(function(){
+			for(var i=0; i<spc.length; i++){
+				if(spc[i].innerText.length < 2){
+					var itNum = spc[i].innerText.toString();
+					spc[i].innerText = 0+itNum;
+				}
+			}
+			for(var i=0; i<spt.length; i++){
+				if(spt[i].innerText.length < 2){
+					var itNum2 = spt[i].innerText.toString();
+					spt[i].innerText = 0+itNum2;
+				}
+			}
+		}, 10);
+
+		$(document).on('click','.item_picker',function(e){
+			$("#reco_pop").modal("show");
+			$("body").addClass("recoPop");
+			return false;
+		});
+		$(document).on('click','#reco_pop .close-modal',function(e){
+			$("body").removeClass("recoPop");
+			return false;
+		});
+	});
+
+	function setHtop() {
+		if($('header').hasClass('main')) {
+			$('#htopMain').show();
+			$('#htopSub').hide();
+		} else {
+			$('#htopMain').hide();
+			$('#gnb').hide();
+			$('#htopSub').show();
+		}
+	}
+
+	// 룩북 슬라이드
+	var rcmdPicimgSwiper = new Swiper('.recommendedArea .area_slider .swiper-container', {
+		loop: true,
+		slidesPerView: 1,
+		spaceBetween: 0,
+		pagination: {
+			el: '.swiper-pagination',
+			type: 'fraction',
+		},
+		//210414_자동롤링 추가
+		//autoplay : {
+		//	delay : 3000,   // 시간 설정
+		//},
+		on: {
+			slideChange:function(){
+				// 05.06_ 추가 : .ioTit , .ioBtn
+				$('.text_cont').removeClass('active');
+				$('.ioTit').removeClass('active');
+				$('.itemsOut').removeClass('active');
+				$('.ioBtn').removeClass('active');
+				$('.text_cont').eq(this.realIndex).addClass('active');
+				$('.ioTit').eq(this.realIndex).addClass('active');
+				$('.itemsOut').eq(this.realIndex).addClass('active');
+				$('.ioBtn').eq(this.realIndex).addClass('active');
+			}
+		},
+	});
+
+	//룩북 속 상품
+	var inLookbookSwiper = new Swiper('.br_inlookbook .area_slider .swiper-container', {
+		slidesPerView: 3,
+		spaceBetween: 26,
+		observer: true,
+		observeParents: true,
+		//pagination: {
+		//	el: '.swiper-pagination',
+		//	type: 'fraction',
+		//},
+	});
+
+	//다른 룩북 보기
+	var otherBrandSwiper = new Swiper('.br_otherbrand .area_slider .swiper-container', {
+		slidesPerView: 2,
+		spaceBetween: 8,
+		//pagination: {
+		//	el: '.swiper-pagination',
+		//	type: 'fraction',
+		//},
+	});
+
+	// 더보기
+	var count = 0;
+	function view_fold(){
+		document.querySelector(".lb_text button").onclick = function () {
+			if(count === 0) {
+				//document.querySelector(".lb_text .text_cont").style.height = "auto";
+				$('.lb_text .text_cont').css('height', 'auto');
+				document.querySelector(".lb_text .btnText p").innerText="접기";
+				document.querySelector(".lb_text .btnText span").style.background="url(/images/mo/br_arrow_up.png)";
+				count = 1;
+			} else {
+				//document.querySelector(".lb_text .text_cont").style.height = "3.4rem";
+				$('.lb_text .text_cont').css('height', '3.4rem');
+				document.querySelector(".lb_text .btnText p").innerText="더보기";
+				document.querySelector(".lb_text .btnText span").style.background="url(/images/mo/br_arrow_down.png)";
+				count = 0;
+			}
+		}
+	}
+	view_fold();
+	/*]]>*/
+</script>
+
+<script>
+	// 픽커모달
+	$(document).ready(function () {
+
+	});
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 301 - 0
src/main/webapp/WEB-INF/views/mob/display/LookbookMainFormMob.html

@@ -0,0 +1,301 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/DefaultLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : LookbookMainFormMob.html
+ * @desc    : 룩북리스트 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.09   bin2107     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+	<main role="" id="" class="container dp">
+
+		<section class="content dp_lookbook">
+			<div class="inner">
+				<!-- 상품리스트 -->
+				<div class="list_content"> <!-- 데이터 없을시 클래스 nodata 추가 -->
+					<div class="count_wrap">
+						<div>
+							<p><span>9999</span>개의 상품</p>
+						</div>
+						<div>
+							<ul class="dp_util">
+								<li>
+									<div class="open_categori">
+										<!-- 210415_select > a태그로 변경 -->
+										<a id="filter">브랜드선택
+											<!--<option value="hide">브랜드선택</option>
+                                            <option value="Test_SELECT_OPTION_1" rel="icon-temperature">브랜드1</option>
+                                            <option value="Test_SELECT_OPTION_2">브랜드2</option>
+                                            <option value="Test_SELECT_OPTION_3">브랜드3</option>-->
+										</a>
+									</div>
+								</li>
+							</ul>
+						</div>
+					</div>
+					<div class="list_defult">
+						<div>
+							<p>등록된 룩북이 없습니다.</p>
+						</div>
+						<button type="button" class="btn btn_default"><span>홈으로 가기</span></button>
+					</div>
+					<div class="lookbookGrp">
+						<div class="swiper_filter brand">
+							<div class="cate_wrap">
+								<a href="javascript:;">전체</a>
+								<a href="javascript:;">티셔츠/셔츠</a>
+								<a href="javascript:;">니트/가디건/베스트</a>
+								<a href="javascript:;">원피스/스커트</a>
+								<a href="javascript:;">팬츠/데님/레깅스</a>
+								<a href="javascript:;">가죽/모피</a>
+								<a href="javascript:;">여성 잡화</a>
+								<a href="javascript:;">언더웨어</a>
+								<a href="javascript:;">세트</a>
+								<a href="javascript:;">니트/가디건/베스트</a>
+								<a href="javascript:;">원피스/스커트</a>
+								<a href="javascript:;">가죽/모피</a>
+								<a href="javascript:;">여성 잡화</a>
+							</div>
+							<div class="btnbox"><a href="#none" class="reset">새로고침</a></div>
+						</div>
+						<ul class="event_con">
+							<li>
+								<a href="">
+									<div class="ev_img">
+										<img src="/images/pc/thumb/ev_list_img01.jpg" alt="ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션">
+									</div>
+									<div class="ev_txt">
+										<p class="brand">TBJ 외</p>
+										<p class="tit">2020 F/W COLLECTION 2020</p>
+									</div>
+								</a>
+							</li>
+							<li>
+								<a href="">
+									<div class="ev_img">
+										<img src="/images/pc/thumb/ev_list_img01.jpg" alt="ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션">
+									</div>
+									<div class="ev_txt">
+										<p class="brand">TBJ 외</p>
+										<p class="tit">2020 F/W COLLECTION 2020</p>
+									</div>
+								</a>
+							</li>
+							<li>
+								<a href="">
+									<div class="ev_img">
+										<img src="/images/pc/thumb/ev_list_img01.jpg" alt="ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션">
+									</div>
+									<div class="ev_txt">
+										<p class="brand">TBJ 외</p>
+										<p class="tit">2020 F/W COLLECTION 2020</p>
+									</div>
+								</a>
+							</li>
+							<li>
+								<a href="">
+									<div class="ev_img">
+										<img src="/images/pc/thumb/ev_list_img01.jpg" alt="ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션">
+									</div>
+									<div class="ev_txt">
+										<p class="brand">TBJ 외</p>
+										<p class="tit">2020 F/W COLLECTION 2020</p>
+									</div>
+								</a>
+							</li>
+							<li>
+								<a href="">
+									<div class="ev_img">
+										<img src="/images/pc/thumb/ev_list_img01.jpg" alt="ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션">
+									</div>
+									<div class="ev_txt">
+										<p class="brand">TBJ 외</p>
+										<p class="tit">2020 F/W COLLECTION 2020</p>
+									</div>
+								</a>
+							</li>
+							<li>
+								<a href="">
+									<div class="ev_img">
+										<img src="/images/pc/thumb/ev_list_img01.jpg" alt="ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션">
+									</div>
+									<div class="ev_txt">
+										<p class="brand">TBJ 외</p>
+										<p class="tit">2020 F/W COLLECTION 2020</p>
+									</div>
+								</a>
+							</li>
+							<li>
+								<a href="">
+									<div class="ev_img">
+										<img src="/images/pc/thumb/ev_list_img01.jpg" alt="ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션">
+									</div>
+									<div class="ev_txt">
+										<p class="brand">TBJ 외</p>
+										<p class="tit">2020 F/W COLLECTION 2020</p>
+									</div>
+								</a>
+							</li>
+							<li>
+								<a href="">
+									<div class="ev_img">
+										<img src="/images/pc/thumb/ev_list_img01.jpg" alt="ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션">
+									</div>
+									<div class="ev_txt">
+										<p class="brand">TBJ 외</p>
+										<p class="tit">2020 F/W COLLECTION 2020</p>
+									</div>
+								</a>
+							</li>
+						</ul>
+					</div>
+					<div class="list_last">마지막페이지 입니다.</div>
+				</div>
+				<!-- //상품리스트 -->
+			</div>
+		</section>
+
+		<!-- 카테고리 -->
+		<div class="category_box lookbook">
+			<div class="lap">
+				<div class="category_close">카테고리닫기</div>
+				<div class="category_list">
+					<!-- 카테고리 선택 -->
+					<div class="selcet_list">
+						<ul>
+							<li class="active"><a href="javascript:void(0)">전체</a></li>
+							<li><a href="javascript:void(0)">BUCKAROO</a></li>
+							<li><a href="javascript:void(0)">TBJ</a></li>
+							<li><a href="javascript:void(0)">ANDEW</a></li>
+							<li><a href="javascript:void(0)">FRJ</a></li>
+							<li><a href="javascript:void(0)">LPGA골프</a></li>
+						</ul>
+					</div>
+					<!-- 카테고리 선택 -->
+				</div>
+				<div class="category_floormenu"><!--  ☞☞ 제품이 품절되면 soldout클래스 추가 -->
+					<div>
+						<button class="reset"><span>초기화</span></button>
+					</div>
+					<div>
+						<button class="apply"><span>적용</span></button>
+					</div>
+				</div>
+			</div>
+		</div>
+		<!-- //카테고리 -->
+
+		<!-- 210415_최신상품순 리스트 팝업 추가 -->
+		<div id="odDatePop" class="popup_box odDatePop">
+			<div class="lap">
+				<div class="popup_close">카테고리닫기</div>
+				<div class="popup_head sr-only">
+					<h2 class="">기간 선택 팝업</h2>
+				</div>
+				<div class="popup_con">
+					<div class="button_list clear">
+						<button type="button" class="on"><span>전체</span></button>
+						<button type="button"><span>BUCKAROO</span></button>
+						<button type="button"><span>TBJ</span></button>
+						<button type="button"><span>ANDEW</span></button>
+						<button type="button"><span>FRJ</span></button>
+					</div>
+				</div>
+			</div>
+			<div class="brand_floormenu"><!--  ☞☞ 제품이 품절되면 soldout클래스 추가 -->
+				<div class="share_like">
+					<button class="refresh">초기화</button>
+					<!--<button class="like">위시리스트</button>-->
+				</div>
+				<div class="prd_buy">
+					<button class="buying btPop_auto" id="btn_purchase">적용</button>
+					<button class="cantbuying">SOLD OUT</button>
+				</div>
+			</div>
+		</div>
+	</main>
+
+<script th:inline="javascript">
+	/*<![CDATA[*/
+	$(document).ready(function(){
+
+		$(document).on('click','.sub_category .more_btn',function(){
+			$(this).toggleClass('on');
+			$('.sub_category .cate_wrap').toggleClass('on');
+			if($(this).hasClass('on')){
+				$(this).find('span').text('접기');
+			}else{
+				$(this).find('span').text('더보기');
+			}
+		});
+
+
+		//카테고리
+		function category(){
+			var categoryOpen=$(".open_categori .select_dress");
+			var categoryClose=$(".category_box .category_close");
+			var categoryPop=$(".category_box");
+
+			categoryOpen.on("click",function(){
+				categoryPop.show();
+				categoryPop.addClass("active");
+				$("body").css({"overflow":"hidden"});
+			});
+
+			categoryClose.on("click",function(){
+				categoryPop.hide();
+				$("body").css({"overflow":"visible"});
+			});
+		}
+		category();
+
+		// 210415_팝업관련 추가
+		//기간 선택 팝업
+		$(document).on("click", ".open_categori", function(){
+			$('#odDatePop').show().addClass("active");
+			$("body").css({"overflow":"hidden"});
+		});
+		//팝업_닫기
+		$('.popup_close').on("click",function(){
+			$('.popup_box').hide().removeClass('active');
+			$("body").css({"overflow":"visible"});
+		});
+		// 210415_팝업 테두리 선택 추가
+		$(document).ready(function(){
+			$(document).on('click','.popup_box .button_list button',function(){
+				//$('.popup_box .button_list button').removeClass('on');
+				$(this).toggleClass('on');
+			})
+		});
+		$(document).on('click','.popup_box .button_list button',function(){
+			$(this).parents('.popup_box').show().addClass('active');
+			//$("body").css({"overflow":"visible"});
+		});
+		$(document).on('click','.brand_floormenu .refresh',function(){
+			$('.popup_box .button_list button').removeClass('on');
+		});
+		$(document).on('click','.popup_box .buying',function(){
+			$(this).parents('.popup_box').hide().removeClass('active');
+			$("body").css({"overflow":"visible"});
+		});
+
+	});
+	/*]]>*/
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 15 - 0
src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDescFormMob.html

@@ -292,4 +292,19 @@
 		<!-- //상품필수정보 노출 -->
 	</div>
 </div>
+<script th:inline="javascript">
+/*<![CDATA[*/
+
+// 상품상세 asis html  이지미 경로 수정
+   $(document).ready( function() {
+   	 $(".pd_descrp_pop .cont_body").find('img').each(function() {
+			let tmpImgSrc = $(this).attr('src');
+			if (tmpImgSrc.indexOf('Upload') == 1 ){  // /Upload
+				$(this).attr('src' , tmpImgSrc.replace('/Upload', _imgUrl+"/Local"));
+			}
+			
+		});
+	});
+/*]]>*/
+</script>	
 </html>

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

@@ -815,7 +815,7 @@
 								<th:block th:if="${goodsInfo.selfGoodsYn =='N' }"> <!--  입점상품 -->
 								<div class="nomOption">
 									<div class="form_wrap">
-										<div class="form_field">
+										<div class="form_field" th:id="${'form_field1_'+goodsInfo.goodsCd}">
 											<div class="select_custom item_opt1 item_opt1_1"  th:classappend="${goodsInfo.goodsCd}" th:attr="id=${goodsInfo.goodsCd}">
 												<div class="combo">
 													<div class="select">선택</div>
@@ -833,7 +833,7 @@
 												</div>
 											</div>
 										</div>
-										<div class="form_field"> 
+										<div class="form_field" th:id="${'form_field2_'+goodsInfo.goodsCd}"> 
 											<div class="select_custom item_opt2 item_opt2_1" th:classappend="${goodsInfo.goodsCd}"  disabled th:attr="qty=${goodsInfo.minOrdQty}">
 												<div class="combo">
 													<div class="select">선택</div>
@@ -851,7 +851,7 @@
 								<th:block th:if="${goodsInfo.goodsType =='G056_S' }">	<!-- 세트상품 -->
 								<div class="setOption" th:if="${goodsComposeList != null and !goodsComposeList.empty}" >
 									<div class="form_wrap"  th:each="goodsCompose, status : ${goodsComposeList}">
-										<div class="form_field">
+										<div class="form_field" th:id="${'form_field1_'+goodsCompose.compsGoodsCd}">
 											<p class="title" th:text="${goodsCompose.compsGoodsFullNm}">슬림핏</p>
 											<div class="select_custom item_opt1" th:classappend="${'item_opt1_'+status.count +' '+goodsCompose.compsGoodsCd}" th:attr="id=${goodsCompose.compsGoodsCd}, qty=${goodsCompose.qty}"
 																				th:if="${goodsCompose.goodsOption1List != null and !goodsCompose.goodsOption1List.empty}" >
@@ -870,7 +870,7 @@
 												</div>
 											</div>
 										</div>
-										<div class="form_field">
+										<div class="form_field" th:id="${'form_field2_'+goodsCompose.compsGoodsCd}">
 											<div class="select_custom item_opt2" th:classappend="${'item_opt2_'+status.count +' '+goodsCompose.compsGoodsCd}" disabled>
 												<div class="combo">
 													<div class="select">선택</div>
@@ -1261,8 +1261,9 @@
 				$.each(result.dataList, function(idx, item) {
 					if (idx == 0){
 						
-						$('.form_field .select_custom.item_opt1.' +item.goodsCd ).attr('disabled', false)
+						//$('.form_field .select_custom.item_opt1.' +item.goodsCd ).attr('disabled', false)
 						//------
+						tag += '<div class="select_custom item_opt1 item_opt1_'+ridx+ ' '+goodsCd+'">\n';
 						tag += '<div class="combo">\n';
 						tag += '<div class="select">선택</div>\n';
 						tag += '<ul class="list" style="display: none;">\n';
@@ -1282,6 +1283,7 @@
 					//------
 					tag += '</ul>\n';
 					tag += '</div>\n';
+					tag += '</div>\n';
 					//------	
 				}
 
@@ -1300,8 +1302,11 @@
 				}else{
 					$obj = $('.pop_option_select .select_custom.item_opt1.item_opt1_1');
 				}	
-				$obj.html('');
-				$obj.append(tag);
+			//	$obj.html('');
+			//	$obj.append(tag);
+				$obj.remove();
+				$('#form_field1_'+ goodsCd).append(tag);
+				
 				if (selfGoodsYn == "Y"){
 					if (ridx == 1){
 						var opt_selecter01_1 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_1');	
@@ -1385,9 +1390,11 @@
 						//$obj = $('#goodsOpt2'+item.goodsCd);
 						//$obj = $('.form_field .select_custom.item_opt2.item_opt2_1');
 						
-						$obj.html('');
-						$('.form_field .select_custom.item_opt2.' +item.goodsCd ).attr('disabled', false)
+					//	$obj.html('');
+						$obj.remove();
+					//	$('.form_field .select_custom.item_opt2.' +item.goodsCd ).attr('disabled', false)
 						//------
+						tag += '<div class="select_custom item_opt2 item_opt2_'+ridx+ ' '+goodsCd+'">\n';	
 						tag += '<div class="combo">\n';
 						tag += '<div class="select">선택</div>\n';
 						tag += '<ul class="list">\n';
@@ -1416,10 +1423,12 @@
 					//------
 					tag += '</ul>\n';
 					tag += '</div>\n';
+					tag += '</div>\n';
 					//------	
 				}
 				
-				$obj.append(tag);
+			//	$obj.append(tag);
+				$('#form_field2_'+ goodsCd).append(tag);
 				if (selfGoodsYn == "Y"){
 					if (ridx == 1){
 						var opt_selecter02_1 = new sCombo('.pop_option_select .select_custom.item_opt2.item_opt2_1');	
@@ -2070,6 +2079,17 @@
 		fnEpCouponDown([[${afLinkCd}]], [[${params.goodsCd}]], 1);
 	});
 	
+	 // 상품상세 asis html  이지미 경로 수정
+    window.onload = function(){
+   	 $(".pd_descrp .cont_body").find('img').each(function() {
+			let tmpImgSrc = $(this).attr('src');
+			if (tmpImgSrc.indexOf('Upload') == 1 ){  // /Upload
+				$(this).attr('src' , tmpImgSrc.replace('/Upload', _imgUrl+"/Local"));
+			}
+			
+		});
+	}
+	 
 	 $('.Purchase_pop .btPop_close').click(function(){
 			$('html, body').css({'overflow': 'visible', 'height': '100%'});
 			$('.container').removeClass('btPop_open');

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/goods/GoodsQnaDetailFormMob.html

@@ -78,7 +78,7 @@
 	$('.pd_qnawrite_pop .doc_itemqna').keyup(function (e){
 		let contentQna = $(this).val();
 		$('.itemqna_cnt').html("(<em class='c_primary'>"+contentQna.length+"</em>/500자)");
-		debugger;
+		
 		if (contentQna.length > 500){
 			alert("최대 500자까지 입력 가능합니다.");
 			$(this).val(contentQna.substring(0, 500));

+ 10 - 13
src/main/webapp/WEB-INF/views/mob/mypage/MypageCancelFormMob.html

@@ -17,7 +17,7 @@
 
 <th:block layout:fragment="content">
 
-<main role="" id="" class="container my">
+<main class="container my">
 	<section class="content my_return">
 		<form id="cancelForm" class="form_wrap">
 			<input type="hidden" name="accountNo" 	th:value="${oneData.accountNo}"/>
@@ -53,8 +53,8 @@
 												<span th:text="${cancel.brandNm}"></span>
 												<div class="badge_wrap">
 													<em class="tag primary" th:if="${cancel.shotDelvYn == 'Y'}">총알배송</em>
-													<em class="tag" th:if="${cancel.shotDelvYn == 'N' and cancel.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
-													<em class="tag" th:if="${cancel.selfGoodsYn == 'N'}">업체직배송</em>
+													<em class="tag" 		th:if="${cancel.shotDelvYn == 'N' and cancel.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
+													<em class="tag" 		th:if="${cancel.selfGoodsYn == 'N'}">업체직배송</em>
 												</div>
 											</div>
 											<div class="name" th:text="${cancel.goodsNm}"></div>
@@ -185,9 +185,6 @@
 								</td>
 							</tr>
 						</table>
-						<!-- 
-						<button type="button" class="btn btn_default"><span>취소 전표 보기</span></button>
-						 -->
 					</div>
 				</div>
 				<div class="required_group">
@@ -195,7 +192,7 @@
 				</div>
 				<div class="btn_group btn_group_flex">
 					<div><button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);"><span>취소</span></button></div>
-					<div><button type="button" id="btn_order_return" class="btn btn_dark" onclick="fnCancel();"><span>주문 취소</span></button></div>
+					<div><button type="button" class="btn btn_dark" onclick="fnCancel();"><span>주문 취소</span></button></div>
 				</div>
 			</div>
 		</form>
@@ -204,7 +201,7 @@
 
 <!-- 210408_취소 수량 선택 팝업 -->
 <th:block th:if="${cancelList.cancelList}" th:each="cancel, status : ${cancelList.cancelList}">
-	<div class="popup_box returnCountPop">
+	<div class="popup_box cancelCountPop">
 		<div class="lap">
 			<div class="popup_close">카테고리닫기</div>
 			<div class="popup_head sr-only">
@@ -213,7 +210,7 @@
 			<div class="popup_con">
 				<div class="button_list clear">
 					<button type="button" qty=0 onclick="fnChangeCancelQty(this);"><span>수량 0개</span></button>
-					<th:block th:each="num : ${#numbers.sequence(1,cancel.ordCanChgQty)}">
+					<th:block th:each="num : ${#numbers.sequence(1, cancel.ordCanChgQty)}">
 						<button type="button" th:qty="${num}" onclick="fnChangeCancelQty(this);"><span th:text="|수량 ${num}개|"></span></button>
 					</th:block>
 					<input type="hidden" name="ordDtlNo" th:value="${cancel.ordDtlNo}">
@@ -234,7 +231,7 @@
 		<div class="popup_con">
 			<div class="tbl_wrap">
 				<div class="tbl_tit"> 
-					<h3>환불 계좌 등록</h3><!-- 210409_수정 : 텍스트 변경 -->
+					<h3>환불 계좌 등록</h3>
 				</div>
 				<div class="tbl type1">
 					<table>
@@ -319,13 +316,13 @@ $(document).ready(function() {
 });
 
 // 취소수량버튼기능
-$(".select_custom.select_count").each(function(idx){
+$("#cancelForm .select_custom.select_count").each(function(idx){
 	$(this).on("click", function(){
 		// 전체비활성화
-		$(".returnCountPop").hide();
+		$(".cancelCountPop").hide();
 		
 		// 수량팝업활성화
-		$(".returnCountPop").eq(idx).show().addClass("active");
+		$(".cancelCountPop").eq(idx).show().addClass("active");
 		$("body").css({"overflow":"hidden"});
 	});
 });

+ 22 - 234
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreCancelDetailFormMob.html

@@ -14,7 +14,6 @@
  *******************************************************************************
  -->
 <body>
-
 <th:block layout:fragment="content">
 <main role="" id="" class="container my">
 	<section class="content my_return">
@@ -37,55 +36,58 @@
 					</th:block>
 				</div>
 				
-				<th:block th:if="${cancelDetailList.cancelDetailList}" th:each="returnDtl, status : ${cancelDetailList.cancelDetailList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+				<th:block th:if="${cancelDetailList.cancelDetailList}" th:each="cancelDtl, status : ${cancelDetailList.cancelDetailList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
 					<div class="goods_section">
 						<div class="goods_status">
-							<p class="dlvr_staus" th:if="${returnDtl.chgStat == 'G685_17' or returnDtl.chgStat == 'G685_18'}">주문취소</p>
-							<p class="dlvr_staus" th:unless="${returnDtl.chgStat == 'G685_17' or returnDtl.chgStat == 'G685_18'}" th:text="${returnDtl.chgStatNm}"></p>
-							<p class="dlvr_desc" th:text="|${returnDtl.chgDate} ${returnDtl.chgTime}|"></p>
+							<p class="dlvr_staus" 	th:if="${cancelDtl.chgStat == 'G685_17' or cancelDtl.chgStat == 'G685_18'}">주문취소</p>
+							<p class="dlvr_staus" 	th:unless="${cancelDtl.chgStat == 'G685_17' or cancelDtl.chgStat == 'G685_18'}" th:text="${cancelDtl.chgStatNm}"></p>
+							<p class="dlvr_desc" 	th:text="|${cancelDtl.chgDate} ${cancelDtl.chgTime}|"></p>
 						</div>
-						
 						<div class="goods_detail">
 							<a href="">
 								<div class="thumb_box">
-									<img th:src="${imageUrl + '/' + returnDtl.sysImgNm}" width="100%" alt="">
+									<img th:src="${imageUrl + '/' + cancelDtl.sysImgNm}" width="100%" alt="">
 								</div>
 								<div class="info_box">
 									<div class="od_name">
 										<div class="brand">
-											<span th:text="${returnDtl.brandNm}"></span>
+											<span th:text="${cancelDtl.brandNm}"></span>
 											<div class="badge_wrap">
-												<em class="tag primary" th:if="${returnDtl.shotDelvYn == 'Y'}">총알배송</em>
-												<em class="tag" th:if="${returnDtl.shotDelvYn == 'N' and returnDtl.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
-												<em class="tag" th:if="${returnDtl.selfGoodsYn == 'N'}">업체직배송</em>
+												<em class="tag primary" 	th:if="${cancelDtl.shotDelvYn == 'Y'}">총알배송</em>
+												<em class="tag" 			th:if="${cancelDtl.shotDelvYn == 'N' and cancelDtl.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
+												<em class="tag" 			th:if="${cancelDtl.selfGoodsYn == 'N'}">업체직배송</em>
 											</div>
 										</div>
-										<div class="name" th:text="${returnDtl.goodsNm}"></div>
+										<div class="name" th:text="${cancelDtl.goodsNm}"></div>
 									</div>
 									<div class="od_opt">
 										<div class="option">
-											<th:block th:if="${returnDtl.goodsType == 'G056_S'}">
-												<th:block th:each="option, status : ${returnDtl.colorNmArr}">
+											<th:block th:if="${cancelDtl.goodsType == 'G056_S'}">
+												<th:block th:each="option, status : ${cancelDtl.colorNmArr}">
 													<em th:text="${option}"></em>
-													<em th:text="${returnDtl.optCd2Arr[status.index]}"></em>
+													<em th:text="${cancelDtl.optCd2Arr[status.index]}"></em>
 												</th:block>
 											</th:block>
-											<th:block th:unless="${returnDtl.goodsType == 'G056_S'}">
-												<em th:text="${returnDtl.colorNm}"></em>
-												<em th:text="${returnDtl.optCd2}"></em>
+											<th:block th:unless="${cancelDtl.goodsType == 'G056_S'}">
+												<em th:text="${cancelDtl.colorNm}"></em>
+												<em th:text="${cancelDtl.optCd2}"></em>
 											</th:block>
 										</div>
 									</div>
 									<div class="od_calc">
 										<p class="price">
-											<span class="count"><em th:text="${returnDtl.chgQty}"></em>개</span>
+											<span class="count"><em th:text="${cancelDtl.chgQty}"></em>개</span>
 										</p>
 									</div>
 								</div>
 							</a>
 						</div>
 						<div class="goods_btn_wrap btn_group_flex">
-							<div><button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);"><span>1:1 문의</span></button></div>
+							<div>
+								<button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);">
+									<span>1:1 문의</span>
+								</button>
+							</div>
 						</div>
 					</div>
 				</th:block>
@@ -216,223 +218,9 @@ var isLogin = [[${isLogin}]];
 
 $(document).ready(function() {
 
-});
-
-// 회수지 정보 설정
-var delvAddrSet = function(delvObj) {
-	let ordChgSq 		= oneData.ordChgSq;
-	let chgerNm 		= delvObj.recipNm;
-	let chgerPhnno 		= delvObj.recipPhnno;
-	let chgerZipcode 	= delvObj.recipZipcode;
-	let chgerBaseAddr 	= delvObj.recipBaseAddr;
-	let chgerDtlAddr 	= delvObj.recipDtlAddr;
-	let chgerRtnMemo 	= delvObj.delvMemo;
-	let chgerAddr 		= chgerBaseAddr + ' ' + chgerDtlAddr;
-
-	let data = {};
-	data.ordChgSq 		= ordChgSq;
-	data.chgerNm 		= chgerNm;
-	data.chgerPhnno 	= chgerPhnno;
-	data.chgerZipcode 	= chgerZipcode;
-	data.chgerBaseAddr 	= chgerBaseAddr;
-	data.chgerDtlAddr 	= chgerDtlAddr;
-	data.chgerRtnMemo 	= chgerRtnMemo;
-
-	let jsonData = JSON.stringify(data);
-
-	gagajf.ajaxJsonSubmit('/mypage/change/chger/addr', jsonData, function(result) {
-		if (result.status == '200') {
-			$('#chgerNm').text(chgerNm);
-			$('#chgerPhnno').text(chgerPhnno);
-			$('#chgerAddr').text(chgerAddr);
-			$('#chgerRtnMemo').text(chgerRtnMemo);
-		}
-	});
-}
-
-// 배송메모 설정
-var delvMemoSet = function(delvMemoObj) {
-	let ordChgSq = oneData.ordChgSq;
-	let delvMemo = delvMemoObj.delvMemo;
-
-	let data = {};
-	data.ordChgSq = ordChgSq;
-	data.chgerRtnMemo = delvMemo;
-	
-	let jsonData = JSON.stringify(data);
-	
-	gagajf.ajaxJsonSubmit('/mypage/change/chger/rtn/memo', jsonData, function(result) {
-		if (result.status == '200') {
-			$("#chgerRtnMemo").text(delvMemo);
-		}
-	});
-	
-}
-/*]]>*/
-</script>
-
-</th:block>
-					</div>
-				</th:block>
-			</div>
-		</div>
-		
-		<div class="inner">
-			<div class="tbl_wrap">
-				<div class="tbl_tit"> 
-					<h3>상세 정보</h3>
-				</div>
-				<div class="tbl type1">
-					<table>
-						<colgroup>
-							<col width="107">
-							<col width="*">
-						</colgroup>   
-						<tr>
-							<th>반품 접수 일자</th>
-							<td><div><span th:text="${oneData.chgDt}"></span></div></td>
-						</tr>
-						<tr>
-							<th>반품 완료 일자</th>
-							<td><div><span th:text="${oneData.completeDt}"></span></div></td>
-						</tr>
-					</table>
-				</div>
-			</div>
-		</div>
-		<div class="inner">
-			<div class="tbl_wrap">
-				<div class="tbl_tit"> 
-					<h3>반품 회수지 주소</h3>
-					<button type="button" id="btn_adrsChange_pop" class="btn_popup" th:if="${oneData.chgStat == 'G685_50' or oneData.chgStat == 'G685_51'}" onclick="fnChangeDeliveryAddr();">
-						<span>회수지 변경</span>
-					</button>
-				</div>
-				<div class="tbl">
-					<div class="ship_info">
-						<dl>
-							<div class="name">
-								<dt><span class="sr-only">배송지명</span></dt>
-								<dd id="chgerNm" th:text="${oneData.chgerNm}"></dd>
-							</div>
-							<div class="addr">
-								<dt><span class="sr-only">배송주소</span></dt>
-								<dd id="chgerAddr" th:text="|${oneData.chgerBaseAddr} ${oneData.chgerDtlAddr}|"></dd>
-							</div>
-							<div class="phone">
-								<dt><span class="sr-only">휴대폰 번호</span></dt>
-								<dd id="chgerPhnno" th:text="${oneData.chgerPhnno}"></dd>
-							</div>
-						</dl>
-					</div>
-				</div>
-			</div>
-		</div>
-		<div class="inner">
-			<div class="tbl_wrap pay_wrap">
-				<div class="tbl_tit"> 
-					<h3>환불 정보</h3>
-					<strong class="pay"><span th:text="${#numbers.formatInteger(oneData.refundAmt + oneData.rfPntAmt + oneData.rfGfcdUseAmt, 1, 'COMMA')}"></span>원</strong>
-				</div>
-				<div class="tbl type1">
-					<table>
-						<colgroup>
-							<col width="227">
-							<col width="*">
-						</colgroup>   
-						<tr>
-							<td>
-								<dl class="refund_deduct">
-									<div>
-										<dt>상품 취소 금액</dt>
-										<dd>
-											<div>
-												<span th:text="${#numbers.formatInteger(oneData.rfCnclAmt, 1, 'COMMA')}"></span>원
-											</div>
-										</dd>
-									</div>
-									<div>
-										<dt>배송비</dt>
-										<dd>
-											<div>
-												<span th:text="${#numbers.formatInteger(oneData.rfDeliveryFee, 1, 'COMMA')}"></span>원
-											</div>
-										</dd>
-									</div>
-									<div>
-										<dt>할인 금액 차감</dt>
-										<dd>
-											<div>
-												<span th:text="${#numbers.formatInteger(-(oneData.rfCpn1Amt + oneData.rfTmtb1Amt + oneData.rfTmtb2Amt + oneData.rfGoodsCpnAmt + oneData.rfCartCpnAmt + oneData.rfPrePntAmt), 1, 'COMMA')}"></span>원
-											</div>
-										</dd>
-									</div>
-								</dl>
-								<dl class="refund_detail">
-									<div>
-										<dt>환불 수단</dt>
-										<dd>
-											<div>
-												<span th:if="${oneData.pgGb == 'KCP'}" th:text="${oneData.payMeansNm}"></span>
-												<span th:if="${oneData.pgGb == 'NAVER'}">네이버페이</span>
-												<span th:if="${oneData.pgGb == 'KAKAO'}">카카오페이</span>
-												<span th:if="${oneData.pgGb == 'PAYCO'}">PAYCO</span>
-											</div>
-										</dd>
-									</div>
-									<div>
-										<dt>결제금액 환불</dt>
-										<dd>
-											<div>
-												<span th:text="${#numbers.formatInteger(oneData.refundAmt, 1, 'COMMA')}"></span>원
-											</div>
-										</dd>
-									</div>
-									<div>
-										<dt>포인트 환불</dt>
-										<dd>
-											<div>
-												<span th:text="${#numbers.formatInteger(oneData.rfPntAmt, 1, 'COMMA')}"></span>P
-											</div>
-										</dd>
-									</div>
-									<div>
-										<dt>상품권 환불</dt>
-										<dd>
-											<div>
-												<span th:text="${#numbers.formatInteger(oneData.rfGfcdUseAmt, 1, 'COMMA')}"></span>원
-											</div>
-										</dd>
-									</div>
-								</dl>
-							</td>
-						</tr>
-					</table>
-					<th:block th:if="${refundYn == 'Y' and oneData.pgGb == 'KCP' and oneData.payMeans == 'G014_30'}">
-						<button type="button" id="btn_chit_cancle" class="btn btn_default" onclick="fnReceipt('cancel')">
-							<span>취소 전표 보기</span>
-						</button>
-					</th:block>
-				</div>
-			</div>
-			<p class="desc_txt">카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이<br>소요될 수 있습니다.</p>
-			<div class="btn_group btn_group_flex">
-				<div><button class="btn btn_dark" onclick="cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);"><span>확인</span></button></div>
-			</div>
-		</div>
-	</section>
-</main>
-<script th:inline="javascript">
-/*<![CDATA[*/
-let oneData = [[${oneData}]];
-var isLogin = [[${isLogin}]];
-
-$(document).ready(function() {
-
 });
 /*]]>*/
 </script>
-
 </th:block>
 
 </body>

+ 79 - 93
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreExchangeDetailFormMob.html

@@ -35,81 +35,95 @@
 					<th:block th:unless="${oneData.giftPackYn == 'Y'}">
 						<div class="goods_date">주문일<span class="date" th:text="${oneData.ordDt}"></span></div>
 					</th:block>
+					<th:block th:if="${oneData.chgStat == 'G685_20' or oneData.chgStat == 'G685_21'}">
+						<a href="javascript:void(0);" th:attr="ordNo=${oneData.ordNo}, ordChgSq=${oneData.ordChgSq}, cancelGb=${oneData.chgGb}" onclick="fnCreCancel(this);" class="detail_btn">전체신청취소</a>
+					</th:block>
 				</div>
 				
-				<th:block th:if="${exchangeDetailList.exchangeDetailList}" th:each="returnDtl, status : ${exchangeDetailList.exchangeDetailList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+				<th:block th:if="${exchangeDetailList.exchangeDetailList}" th:each="exchangeDtl, status : ${exchangeDetailList.exchangeDetailList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
 					<div class="goods_section">
 						<div class="goods_status">
-							<p class="dlvr_staus" th:text="${returnDtl.chgStatNm}"></p>
-							<p class="dlvr_desc" th:text="|${returnDtl.chgDate} ${returnDtl.chgTime}|"></p>
+							<p class="dlvr_staus" th:if="${exchangeDtl.chgStat == 'G685_40' && (exchangeDtl.ordDtlStat == 'G013_20' or exchangeDtl.ordDtlStat == 'G013_30' or exchangeDtl.ordDtlStat == 'G013_35' or exchangeDtl.ordDtlStat == 'G013_40' or exchangeDtl.ordDtlStat == 'G013_50')}" th:text="|교환진행중|"></p>
+							<p class="dlvr_staus" th:if="${exchangeDtl.chgStat == 'G685_40' && (exchangeDtl.ordDtlStat == 'G013_60' or exchangeDtl.ordDtlStat == 'G013_70')}" th:text="|교환완료|"></p>
+							<p class="dlvr_staus" th:if="${exchangeDtl.chgStat == 'G685_49'}" th:text="|접수취소|"></p>
+							<p class="dlvr_staus" th:unless="${exchangeDtl.chgStat == 'G685_40' or exchangeDtl.chgStat == 'G685_49'}" th:text="${exchangeDtl.chgStatNm}"></p>
+							
+							<p class="dlvr_desc" th:text="|${exchangeDtl.chgDate} ${exchangeDtl.chgTime}|"></p>
 						</div>
 						<div class="goods_detail">
 							<a href="">
 								<div class="thumb_box">
-									<img th:src="${imageUrl + '/' + returnDtl.sysImgNm}" width="100%" alt="">
+									<img th:src="${imageUrl + '/' + exchangeDtl.sysImgNm}" width="100%" alt="">
 								</div>
 								<div class="info_box">
 									<div class="od_name">
 										<div class="brand">
-											<span th:text="${returnDtl.brandNm}"></span>
+											<span th:text="${exchangeDtl.brandNm}"></span>
 											<div class="badge_wrap">
-												<em class="tag primary" th:if="${returnDtl.shotDelvYn == 'Y'}">총알배송</em>
-												<em class="tag" th:if="${returnDtl.shotDelvYn == 'N' and returnDtl.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
-												<em class="tag" th:if="${returnDtl.selfGoodsYn == 'N'}">업체직배송</span>
+												<em class="tag primary" th:if="${exchangeDtl.shotDelvYn == 'Y'}">총알배송</em>
+												<em class="tag" 		th:if="${exchangeDtl.shotDelvYn == 'N' and exchangeDtl.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
+												<em class="tag" 		th:if="${exchangeDtl.selfGoodsYn == 'N'}">업체직배송</span>
 											</div>
 										</div>
-										<div class="name" th:text="${returnDtl.goodsNm}"></div>
+										<div class="name" th:text="${exchangeDtl.goodsNm}"></div>
 									</div>
 									<div class="od_opt">
 										<div class="option">
-											<th:block th:if="${returnDtl.goodsType == 'G056_S'}">
-												<th:block th:each="option, status : ${returnDtl.colorNmArr}">
+											<th:block th:if="${exchangeDtl.goodsType == 'G056_S'}">
+												<th:block th:each="option, status : ${exchangeDtl.colorNmArr}">
 													<em th:text="${option}"></em>
-													<em th:text="${returnDtl.optCd2Arr[status.index]}"></em>
+													<em th:text="${exchangeDtl.optCd2Arr[status.index]}"></em>
 												</th:block>
 											</th:block>
-											<th:block th:unless="${returnDtl.goodsType == 'G056_S'}">
-												<em th:text="${returnDtl.colorNm}"></em>
-												<em th:text="${returnDtl.optCd2}"></em>
+											<th:block th:unless="${exchangeDtl.goodsType == 'G056_S'}">
+												<em th:text="${exchangeDtl.colorNm}"></em>
+												<em th:text="${exchangeDtl.optCd2}"></em>
 											</th:block>
 										</div>
 									</div>
 									<div class="od_exchange_opt">
 										<span>교환옵션</span>
 										<div class="option">
-											<th:block th:if="${returnDtl.goodsType == 'G056_S'}">
-												<th:block th:each="option, status : ${returnDtl.chgColorNmArr}">
-													<em th:text="${returnDtl.chgItemNmArr[status.index]}"></em>
+											<th:block th:if="${exchangeDtl.goodsType == 'G056_S'}">
+												<th:block th:each="option, status : ${exchangeDtl.chgColorNmArr}">
+													<em th:text="${exchangeDtl.chgItemNmArr[status.index]}"></em>
 													<em th:text="${option}"></em>
-													<em th:text="${returnDtl.chgOptCd2Arr[status.index]}"></em>
+													<em th:text="${exchangeDtl.chgOptCd2Arr[status.index]}"></em>
 												</th:block>
 											</th:block>
-											<th:block th:unless="${returnDtl.goodsType == 'G056_S'}">
-												<em th:text="${returnDtl.chgColorNm}"></em>
-												<em th:text="${returnDtl.chgOptCd2}"></em>
+											<th:block th:unless="${exchangeDtl.goodsType == 'G056_S'}">
+												<em th:text="${exchangeDtl.chgColorNm}"></em>
+												<em th:text="${exchangeDtl.chgOptCd2}"></em>
 											</th:block>
 										</div>
 									</div>
 									<div class="od_calc">
 										<p class="price">
-											<span class="count"><em th:text="${returnDtl.chgQty}"></em>개</span>
+											<span class="count"><em th:text="${exchangeDtl.chgQty}"></em>개</span>
 										</p>
 									</div>
 								</div>
 							</a>
 						</div>
 						<div class="goods_btn_wrap btn_group_flex">
-							<div th:if="${returnDtl.chgStat == 'G685_20' or returnDtl.chgStat == 'G685_21'}"><button type="button" class="btn btn_default" th:attr="ordNo=${returnDtl.ordNo}, ordChgSq=${returnDtl.ordChgSq}, cancelGb=${returnDtl.chgGb}" onclick="fnCreCancel(this);"><span>신청 취소</span></button></div>
-							<div th:if="${returnDtl.chgStat == 'G685_32' or returnDtl.chgStat == 'G685_21'}"><button type="button" class="btn btn_default" th:attr="ordNo=${returnDtl.ordNo}, ordChgSq=${returnDtl.ordChgSq}" onclick="fnCrePayAddCost(this);"><span>결재하기</span></button></div>
-							<div><button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);"><span>1:1 문의</span></button></div>
+							<div th:if="${exchangeDtl.chgStat == 'G685_32' or exchangeDtl.chgStat == 'G685_21'}">
+								<button type="button" class="btn btn_default" th:attr="ordNo=${exchangeDtl.ordNo}, ordChgSq=${exchangeDtl.ordChgSq}" onclick="fnCrePayAddCost(this);">
+									<span>결재하기</span>
+								</button>
+							</div>
+							<div>
+								<button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);">
+									<span>1:1 문의</span>
+								</button>
+							</div>
 						</div>
 						<div class="goods_txt">
-							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_21' or (returnDtl.chgGb == 'G680_40' and returnDtl.chgStat == 'G685_32')}" th:text="|${returnDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p>
-							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_20'}">교환 신청이 접수 되었습니다.<br> 신속하게 처리하여 드리겠습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_30'}">고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_31' and returnDtl.chgGb == 'G680_40'}">고객님이 교환하신 상품을 검수 중에 있습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_40' and (returnDtl.chgOrdDtlStat == 'G013_60' or returnDtl.chgOrdDtlStat == 'G013_70')}">교환이 완료되었습니다.</p>
-							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_49'}">요청하신 교환을 취소하였습니다.</p>
+							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}" th:text="|${exchangeDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p>
+							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_20'}">교환 신청이 접수 되었습니다.<br> 신속하게 처리하여 드리겠습니다.</p>
+							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_30'}">고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p>
+							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_31' and exchangeDtl.chgGb == 'G680_40'}">고객님이 교환하신 상품을 검수 중에 있습니다.</p>
+							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_40' and (exchangeDtl.chgOrdDtlStat == 'G013_60' or exchangeDtl.chgOrdDtlStat == 'G013_70')}">교환이 완료되었습니다.</p>
+							<p class="cf_txt cf_desc" th:if="${exchangeDtl.chgStat == 'G685_49'}">요청하신 교환을 취소하였습니다.</p>
 						</div>
 					</div>
 				</th:block>
@@ -142,9 +156,11 @@
 			<div class="tbl_wrap">
 				<div class="tbl_tit"> 
 					<h3>교환 상품 배송지</h3>
-					<button type="button" id="btn_adrsChange_pop" class="btn_popup" th:if="${oneData.chgOrdDtlStat == 'G013_20' or oneData.chgOrdDtlStat == 'G013_25' or oneData.chgOrdDtlStat == 'G013_30' or oneData.chgOrdDtlStat == 'G013_35' or oneData.chgOrdDtlStat == 'G013_40'}" onclick="fnChangeAddr('recip');">
-						<span>배송지 변경</span>
-					</button>
+					<th:block th:if="${oneData.chgOrdDtlStat == 'G013_20' or oneData.chgOrdDtlStat == 'G013_25' or oneData.chgOrdDtlStat == 'G013_30' or oneData.chgOrdDtlStat == 'G013_35' or oneData.chgOrdDtlStat == 'G013_40'}">
+						<button type="button" id="btn_adrsChange_pop" class="btn_popup" onclick="fnChangeAddr('recip');">
+							<span>배송지 변경</span>
+						</button>
+					</th:block>
 				</div>
 				<div class="tbl">
 					<div class="ship_info">
@@ -175,9 +191,11 @@
 				<div class="tbl_wrap">
 					<div class="tbl_tit"> 
 						<h3>교환 회수지 주소</h3>
-						<button type="button" id="btn_adrsChange_pop" class="btn_popup" th:if="${oneData.chgStat == 'G685_20' or oneData.chgStat == 'G685_21'}" onclick="fnChangeAddr('chger');">
-							<span>회수지 변경</span>
-						</button>
+						<th:block th:if="${oneData.chgStat == 'G685_20' or oneData.chgStat == 'G685_21'}">
+							<button type="button" id="btn_adrsChange_pop" class="btn_popup"  onclick="fnChangeAddr('chger');">
+								<span>회수지 변경</span>
+							</button>
+						</th:block>
 					</div>
 					<div class="tbl">
 						<div class="ship_info">
@@ -246,36 +264,36 @@
 	// 배송지 및 회수지 정보 설정
 	var delvAddrSet = function(delvObj) {
 		let url = '';
-		let ordChgSq = oneData.ordChgSq;
-		let delvAddrSq = oneData.delvAddrSq;
-		let recipNm = delvObj.recipNm;
-		let recipPhnno = delvObj.recipPhnno;
-		let recipZipcode = delvObj.recipZipcode;
-		let recipBaseAddr = delvObj.recipBaseAddr;
-		let recipDtlAddr = delvObj.recipDtlAddr;
-		let delvMemo = delvObj.delvMemo;
-		let recipAddr = recipBaseAddr + ' ' + recipDtlAddr;
+		let ordChgSq 		= oneData.ordChgSq;
+		let delvAddrSq 		= oneData.delvAddrSq;
+		let recipNm 		= delvObj.recipNm;
+		let recipPhnno 		= delvObj.recipPhnno;
+		let recipZipcode 	= delvObj.recipZipcode;
+		let recipBaseAddr 	= delvObj.recipBaseAddr;
+		let recipDtlAddr 	= delvObj.recipDtlAddr;
+		let delvMemo 		= delvObj.delvMemo;
+		let recipAddr 		= recipBaseAddr + ' ' + recipDtlAddr;
 
 		let data = {};
 
 		if (addrGb == 'chger') {
 			url = '/mypage/change/chger/addr';
-			data.ordChgSq = ordChgSq;
-			data.chgerNm = recipNm;
-			data.chgerPhnno = recipPhnno;
-			data.chgerZipcode = recipZipcode;
-			data.chgerBaseAddr = recipBaseAddr;
-			data.chgerDtlAddr = recipDtlAddr;
-			data.chgerRtnMemo = delvMemo;
+			data.ordChgSq 		= ordChgSq;
+			data.chgerNm 		= recipNm;
+			data.chgerPhnno 	= recipPhnno;
+			data.chgerZipcode 	= recipZipcode;
+			data.chgerBaseAddr 	= recipBaseAddr;
+			data.chgerDtlAddr 	= recipDtlAddr;
+			data.chgerRtnMemo 	= delvMemo;
 		} else {
 			url = '/mypage/change/delvery/addr';
-			data.delvAddrSq = delvAddrSq;
-			data.recipNm = recipNm;
-			data.recipPhnno = recipPhnno;
-			data.recipZipcode = recipZipcode;
-			data.recipBaseAddr = recipBaseAddr;
-			data.recipDtlAddr = recipDtlAddr;
-			data.delvMemo = delvMemo;
+			data.delvAddrSq 	= delvAddrSq;
+			data.recipNm 		= recipNm;
+			data.recipPhnno 	= recipPhnno;
+			data.recipZipcode 	= recipZipcode;
+			data.recipBaseAddr 	= recipBaseAddr;
+			data.recipDtlAddr 	= recipDtlAddr;
+			data.delvMemo 		= delvMemo;
 		}
 
 		let jsonData = JSON.stringify(data);
@@ -296,38 +314,6 @@
 			}
 		});
 	}
-	
-	// 배송메모 설정
-	var delvMemoSet = function(delvMemoObj) {
-		let url = '';
-		let ordChgSq = oneData.ordChgSq;
-		let delvAddrSq = oneData.delvAddrSq;
-		let delvMemo = delvMemoObj.delvMemo;
-		
-		let data = {};
-		
-		if (memoGb == 'chger') {
-			url = '/mypage/change/chger/rtn/memo';
-			data.ordChgSq = ordChgSq;
-			data.chgerRtnMemo = delvMemo;
-		} else {
-			url = '/mypage/change/delvery/memo';
-			data.delvAddrSq = delvAddrSq;
-			data.delvMemo = delvMemo;
-		}
-		
-		let jsonData = JSON.stringify(data);
-		
-		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-			if (result.status == '200') {
-				if (memoGb == 'chger') {
-					$("#chgerRtnMemo").text(delvMemo);
-				} else {
-					$("#delvMemo").text(delvMemo);
-				}
-			}
-		});
-	}
 
 	var fnGoToWithdrawDelivery = function(param) {
 		// TODO

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

@@ -106,7 +106,7 @@
 						</div>
 						<!-- 취소,반품,교환 상태별 버튼기능정의 -->
 						<div class="goods_btn_wrap btn_group_flex">
-							<!-- 신청취소 -->
+							<!-- 신청취소 
 							<th:block th:if="${cre.chgStat} == 'G685_20' or ${cre.chgStat} == 'G685_21' or ${cre.chgStat} == 'G685_50' or ${cre.chgStat} == 'G685_51'">
 								<div>
 									<button type="button" class="btn btn_default" th:ordNo="${cre.ordNo}" th:ordChgSq="${cre.ordChgSq}" th:cancelGb="${cre.chgGb}" onclick="fnCreCancel(this);">

+ 24 - 10
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreReturnDetailFormMob.html

@@ -34,13 +34,18 @@
 					<th:block th:unless="${oneData.giftPackYn == 'Y'}">
 						<div class="goods_date">주문일<span class="date" th:text="${oneData.ordDt}"></span></div>
 					</th:block>
+					<th:block th:if="${oneData.chgStat == 'G685_50' or oneData.chgStat == 'G685_51'}">
+						<a href="javascript:void(0);" th:attr="ordNo=${oneData.ordNo}, ordChgSq=${oneData.ordChgSq}, cancelGb=${oneData.chgGb}" onclick="fnCreCancel(this);" class="detail_btn">전체신청취소</a>
+					</th:block>
 				</div>
 				
 				<th:block th:if="${returnDetailList.returnDetailList}" th:each="returnDtl, status : ${returnDetailList.returnDetailList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
 					<div class="goods_section">
 						<div class="goods_status">
-							<p class="dlvr_staus" th:text="${returnDtl.chgStatNm}"></p>
-							<p class="dlvr_desc" th:text="|${returnDtl.chgDate} ${returnDtl.chgTime}|"></p>
+							<p class="dlvr_staus" th:if="${returnDtl.chgStat == 'G685_33'}" th:text="|환불진행중|"></p>
+							<p class="dlvr_staus" th:if="${returnDtl.chgStat == 'G685_69'}" th:text="|접수취소|"></p>
+							<p class="dlvr_staus" th:unless="${returnDtl.chgStat == 'G685_33' or returnDtl.chgStat == 'G685_69'}" th:text="${returnDtl.chgStatNm}"></p>
+							<p class="dlvr_desc"  th:text="|${returnDtl.chgDate} ${returnDtl.chgTime}|"></p>
 						</div>
 						
 						<div class="goods_detail">
@@ -54,8 +59,8 @@
 											<span th:text="${returnDtl.brandNm}"></span>
 											<div class="badge_wrap">
 												<em class="tag primary" th:if="${returnDtl.shotDelvYn == 'Y'}">총알배송</em>
-												<em class="tag" th:if="${returnDtl.shotDelvYn == 'N' and returnDtl.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
-												<em class="tag" th:if="${returnDtl.selfGoodsYn == 'N'}">업체직배송</span>
+												<em class="tag" 		th:if="${returnDtl.shotDelvYn == 'N' and returnDtl.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
+												<em class="tag" 		th:if="${returnDtl.selfGoodsYn == 'N'}">업체직배송</span>
 											</div>
 										</div>
 										<div class="name" th:text="${returnDtl.goodsNm}"></div>
@@ -83,9 +88,16 @@
 							</a>
 						</div>
 						<div class="goods_btn_wrap btn_group_flex">
-							<div th:if="${returnDtl.chgStat == 'G685_50' or returnDtl.chgStat == 'G685_51'}"><button type="button" class="btn btn_default" th:attr="ordNo=${returnDtl.ordNo}, ordChgSq=${returnDtl.ordChgSq}, cancelGb=${returnDtl.chgGb}" onclick="fnCreCancel(this);"><span>신청 취소</span></button></div>
-							<div th:if="${returnDtl.chgStat == 'G685_32' or returnDtl.chgStat == 'G685_51'}"><button type="button" class="btn btn_default" th:attr="ordNo=${returnDtl.ordNo}, ordChgSq=${returnDtl.ordChgSq}" onclick="fnCrePayAddCost(this);"><span>결재하기</span></button></div>
-							<div><button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);"><span>1:1 문의</span></button></div>
+							<div th:if="${returnDtl.chgStat == 'G685_32' or returnDtl.chgStat == 'G685_51'}">
+								<button type="button" class="btn btn_default" th:attr="ordNo=${returnDtl.ordNo}, ordChgSq=${returnDtl.ordChgSq}" onclick="fnCrePayAddCost(this);">
+									<span>결재하기</span>
+								</button>
+							</div>
+							<div>
+								<button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);">
+									<span>1:1 문의</span>
+								</button>
+							</div>
 						</div>
 						<div class="goods_txt">
 							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_51' or (returnDtl.chgGb == 'G680_30' and returnDtl.chgStat == 'G685_32')}" th:text="|${returnDtl.addPayCost}원 결제 후 반품 가능합니다.|"></p>
@@ -128,9 +140,11 @@
 			<div class="tbl_wrap">
 				<div class="tbl_tit"> 
 					<h3>반품 회수지 주소</h3>
-					<button type="button" id="btn_adrsChange_pop" class="btn_popup" th:if="${oneData.chgStat == 'G685_50' or oneData.chgStat == 'G685_51'}" onclick="fnChangeDeliveryAddr();">
-						<span>회수지 변경</span>
-					</button>
+					<th:block th:if="${oneData.chgStat == 'G685_50' or oneData.chgStat == 'G685_51'}">
+						<button type="button" id="btn_adrsChange_pop" class="btn_popup" onclick="fnChangeDeliveryAddr();">
+							<span>회수지 변경</span>
+						</button>
+					</th:block>
 				</div>
 				<div class="tbl">
 					<div class="ship_info">

+ 3 - 2
src/main/webapp/WEB-INF/views/mob/mypage/MypageExchangeFormMob.html

@@ -21,6 +21,7 @@
 	<section class="content my_exchange my_return">
 		<form id="exchangeForm" class="form_wrap">
 			<input type="hidden" name="chgReason"/>
+			
 			<div class="inner wide bg_beige">
 				<div class="order_number">
 					<dl class="clear">
@@ -49,8 +50,8 @@
 												<span th:text="${exchange.brandNm}"></span>
 												<div class="badge_wrap">
 													<em class="tag primary" th:if="${exchange.shotDelvYn == 'Y'}">총알배송</em>
-													<em class="tag" th:if="${exchange.shotDelvYn == 'N' and exchange.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
-													<em class="tag" th:if="${exchange.selfGoodsYn == 'N'}">업체직배송</em>
+													<em class="tag" 		th:if="${exchange.shotDelvYn == 'N' and exchange.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
+													<em class="tag" 		th:if="${exchange.selfGoodsYn == 'N'}">업체직배송</em>
 												</div>
 											</div>
 											<div class="name" th:text="${exchange.goodsNm}"></div>

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

@@ -123,8 +123,15 @@
 							<!-- 주문상태별 버튼기능 정의 -->
 							<!-- 일반주문 -->
 							<th:block th:unless="${ordDtl.giftPackYn} == 'Y'">
+								<!-- 입금대기 1:1문의 버튼(입금대기, 배송준비중, 구매확정) -->
+								<th:block th:if="${ordDtl.ordDtlStat == 'G013_10'}">
+									<div class="goods_btn_wrap btn_group_flex">
+										<div><button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);"><span>1:1 문의</span></button></div>
+									</div>
+								</th:block>
+							
 								<!-- 입금대기, 결제완료, 상품준비중, 출고처지정 : 주문취소 -->
-								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_10' or ${ordDtl.ordDtlStat} == 'G013_20' or ${ordDtl.ordDtlStat} == 'G013_30' or ${ordDtl.ordDtlStat} == 'G013_35'">
+								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_20' or ${ordDtl.ordDtlStat} == 'G013_30' or ${ordDtl.ordDtlStat} == 'G013_35'">
 									<div class="goods_btn_wrap btn_group_flex">
 										<div><button type="button" class="btn btn_default btn_cncl_complete" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, delvFeeCd=${ordDtl.delvFeeCd}" onclick="fnCreateChange(this, 'cancel');"><span>주문 취소</span></button></div>
 									</div>

+ 7 - 2
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListInfoMob.html

@@ -104,8 +104,13 @@
 						<!-- 버튼기능정리 -->
 						<!-- 일반배송 -->
 						<th:block th:unless="${ordDtl.giftPackYn} == 'Y'">
-							<!-- 입금대기, 결제완료, 상품준비중, 출고처지정 (주문취소) -->
-							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_10' or ${ordDtl.ordDtlStat} == 'G013_20' or ${ordDtl.ordDtlStat} == 'G013_30' or ${ordDtl.ordDtlStat} == 'G013_35'">
+							<!-- 입금대기 1:1문의 버튼(입금대기, 배송준비중, 구매확정) -->
+							<th:block th:if="${ordDtl.ordDtlStat == 'G013_10'}">
+								<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);"><span>1:1 문의</span></button></p>
+							</th:block>
+														
+							<!-- 결제완료, 상품준비중, 출고처지정 (주문취소) -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_20' or ${ordDtl.ordDtlStat} == 'G013_30' or ${ordDtl.ordDtlStat} == 'G013_35'">
 								<div class="goods_btn_wrap btn_group_flex">
 									<div>
 										<button type="button" class="btn btn_default btn_cncl_complete" th:ordNo="${ordDtl.ordNo}" th:ordDtlNo="${ordDtl.ordDtlNo}" th:ordCanChgQty="${ordDtl.ordCanChgQty}" th:delvFeeCd="${ordDtl.delvFeeCd}" onclick="fnCreateChange(this, 'cancel');">

+ 3 - 6
src/main/webapp/WEB-INF/views/mob/mypage/MypageReturnFormMob.html

@@ -17,7 +17,7 @@
 
 <th:block layout:fragment="content">
 
-<main role="" id="" class="container my">
+<main class="container my">
 	<section class="content my_return">
 		<form id="returnForm" class="form_wrap">
 			<input type="hidden" name="accountNo" 	th:value="${oneData.accountNo}"/>
@@ -54,8 +54,8 @@
 												<span th:text="${return.brandNm}"></span>
 												<div class="badge_wrap">
 													<em class="tag primary" th:if="${return.shotDelvYn == 'Y'}">총알배송</em>
-													<em class="tag" th:if="${return.shotDelvYn == 'N' and return.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
-													<em class="tag" th:if="${return.selfGoodsYn == 'N'}">업체직배송</em>
+													<em class="tag" 		th:if="${return.shotDelvYn == 'N' and return.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
+													<em class="tag" 		th:if="${return.selfGoodsYn == 'N'}">업체직배송</em>
 												</div>
 											</div>
 											<div class="name" th:text="${return.goodsNm}"></div>
@@ -313,9 +313,6 @@
 								</td>
 							</tr>
 						</table>
-						<!-- 
-						<button type="button" class="btn btn_default"><span>취소 전표 보기</span></button>
-						 -->
 					</div>
 				</div>
 				<div class="required_group" id="addDeliveryFee" style="display:none">

+ 20 - 2
src/main/webapp/WEB-INF/views/mob/order/OrderCompleteMob.html

@@ -312,8 +312,26 @@
 										<dd th:if="${orderInfo.pgGb == 'NAVER'}"><div><span>네이버 페이</span></div></dd>
 										<dd th:if="${orderInfo.pgGb == 'KAKAO'}"><div><span>카카오 페이</span></div></dd>
 										<dd th:if="${orderInfo.pgGb == 'PAYCO'}"><div><span>PAYCO</span></div></dd>
-										<dd th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_10'}"><div><span>실시간계좌이체</span></div></dd>
-										<dd th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_20'}"><div><span>무통장입금</span></div></dd>
+										<dd th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_10'}">
+											<div>
+												<span>
+													실시간계좌이체
+													<th:blcok th:if="${orderInfo.cashAuthNo} != null and ${orderInfo.cashAuthNo} != ''">
+													<br>(현금영수증 신청)
+													</th:blcok>
+												</span>
+											</div>
+										</dd>
+										<dd th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_20'}">
+											<div>
+												<span>
+													무통장입금
+													<th:blcok th:if="${orderInfo.cashAuthNo} != null and ${orderInfo.cashAuthNo} != ''">
+													<br>(현금영수증 신청)
+													</th:blcok>
+												</span>
+											</div>
+										</dd>
 										<dd><div><span th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_30'}" th:text="|${orderInfo.cardNm}/${orderInfo.cardMips}|"></span></div></dd>
 										<dd th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_60'}"><div><span>휴대폰결제</span></div></dd>
 													

+ 16 - 10
src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html

@@ -30,7 +30,7 @@
 <!-- 주문금액정보표현 -->
 <form id="orderAmtForm" name="orderAmtForm">
 	<!-- 고객정보 -->
-	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderInfo" id="orderInfo">
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderInfo">
 		<tbody>
 			<tr style="height:30px;">
 				<th>custNm</th>
@@ -82,7 +82,7 @@
 	<!-- //사은품정보 -->
 	
 	<!-- 주문상세금액 -->
-	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderDetailInfo" id="orderDetailInfo">
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderDetailInfo">
 		<tr style="height:30px;">
 			<th>cartSq</th>
 			<th style="display:none">goodsNm</th>
@@ -175,7 +175,7 @@
 	<!-- //주문상세금액 -->
 	
 	<!-- 배송단위목록 -->
-	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none; width:100%;" name="delvFeeCdInfo" id="delvFeeCdInfo">
+	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none; width:100%;" name="delvFeeCdInfo">
 		<tr style="height:30px;">
 			<th>supplyCompCd</th>
 			<th>delvFeeCd</th>
@@ -196,7 +196,7 @@
 	<!-- //배송단위목록 -->
 	
 	<!-- 주문금액합계 -->
-	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none; width:100%;" name="orderSumAmtInfo" id="orderSumAmtInfo">
+	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none; width:100%;" name="orderSumAmtInfo">
 		<tr style="height:30px;">
 			<th>orgGoodsSumAmt</th>
 			<th>delvSumAmt</th>
@@ -505,6 +505,7 @@ $(document).ready( function() {
 		, "orderMadeYn"		: orderMadeYn
 		, "custDelvAddrSq"	: 0
 		, "giftPackYn"		: giftPackYn
+		, "cartGoodsList"	: cartGoodsList
 	}
 	
 	jsonData = JSON.stringify(jsonObj);
@@ -753,10 +754,11 @@ var fnGetDailyDeliveryCheck = function (temp) {
 				}
 
 				// json 값 설정
-				var orderListObj 		= {
-					"cartSqArr"		: cartSqArr
-					, "shotDelvYn"	: tempShotDelvYn
-					, "giftPackYn"	: giftPackYn
+				var orderListObj = {
+					"cartSqArr"			: cartSqArr
+					, "shotDelvYn"		: tempShotDelvYn
+					, "giftPackYn"		: giftPackYn
+					, "cartGoodsList"	: cartGoodsList
 				};
 				
 				var orderListJsonData 	= JSON.stringify(orderListObj);
@@ -866,6 +868,9 @@ var freegiftInfoSet = function() {
 						mcxDialog.alert("적용된 할인/혜택이 초기화 됩니다.");
 						pntDcAmtReset();
 					}
+					
+					// 2021.05.07 금액계산실행
+					custCpnSumAmtCal();
 				});
 				
 				// 2021.04.29 무료사은품 기본선택
@@ -1241,6 +1246,7 @@ var paymentInfoSet = function() {
 						,"freegiftUsePointArr"	: freegiftUsePointArr
 						,"giftMsg"				: giftMsg
 						,"custPayMeans"			: custPayMeans
+						,"cartSqArr"			: cartSqArr
 					};
 					
 					$.ajax( {
@@ -1551,7 +1557,7 @@ var dcAmtInfoSet = function() {
 					}
 					
 					// 2021.04.23 추가
-					mcxDialog.alert("총 " + getZeroMinusDelAmt(pntDcAmt) + " P를 차감 결제 합니다.");
+					mcxDialog.alert("총 " + getZeroMinusDelAmt(pntDcAmt) + " P를 차감 결제 합니다.");
 					
 					// 포인트 적용
 					$("#orderAmtForm .pntDcSumAmt").text(pntDcAmt);
@@ -1615,7 +1621,7 @@ var dcAmtInfoSet = function() {
 					}
 					
 					// 2021.04.23 추가
-					mcxDialog.alert("총 " + gfcdUseAmt.addComma() + " 원를 상품권 금액에서 차감 결제 합니다.");
+					mcxDialog.alert("총 " + gfcdUseAmt.addComma() + " 원를 상품권 금액에서 차감 결제 합니다.");
 					
 					// 상품권 적용
 					$("#orderAmtForm .gfcdUseSumAmt").text(gfcdUseAmt);

+ 2 - 2
src/main/webapp/WEB-INF/views/mob/order/OrderFreegiftInfoMob.html

@@ -46,12 +46,12 @@
 							<p class="txt">
 								<!-- 필수사은품 -->
 								<th:block th:if="${freegift.allYn} == 'Y'">
-									<span th:text="|사은품필수 ${i.count}|"></span>
+									<span th:text="'사은품필수' + ${i.count}"></span>
 								</th:block>
 								<!-- //필수사은품 -->
 								<!-- 선택사은품 -->
 								<th:block th:if="${freegift.allYn} == 'N'">
-									<span th:text="|사은품선택 ${i.count}|"></span>
+									<span th:text="'사은품선택' + ${i.count}"></span>
 								</th:block>
 								<!-- //선택사은품 -->
 								<th:block th:text="${freegift.freegiftNm}"></th:block>

+ 392 - 0
src/main/webapp/WEB-INF/views/mob/planning/PlanningShotGuideFormMob.html

@@ -0,0 +1,392 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/DefaultLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : SocialMainFormMob.html
+ * @desc    : 핫딜(소셜) Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.12   sowon     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+		<main role="" id="" class="container dp">
+
+			<section class="content dp_Bulletship">
+				<div class="inner wide">
+                    <div class="Bulletship_head">
+                        <img src="/images/mo/thumb/bullet_bg1.png" alt="오늘 사서 오늘 입자 AM 10시까지 주문하면 당일 도착 대상지역 서울, 경기, 인천 외 일부 지역 제외">
+                    </div>
+                    <div class="Bulletship_body">
+                        <div class="inner">
+                            <div class="ico-area">
+                                <img src="/images/mo/ico_bulltet-house.png" alt="지붕이 그려진 아이콘입니다">
+                            </div>
+                            <div class="txt-area">
+								 <!-- 배송가능지역 -->
+								 <p class="bulltetship-time">오전10시 이전 주문 당일도착</p>
+								 <p class="bulltetship-check"><span class="c_primary">총알배송이 가능한 지역</span>인지<br> 확인해보세요!</p>
+							 
+								 <div class="btn_group_flex">
+									 <div>
+										 <button class="btn btn_default" id="btn_bulletship_pop">
+											 <span>내 배송지 확인하기</span>
+										 </button>
+									 </div>
+								 </div>
+								 <p class="bulltetship-disc ptxt01">서울·경기·인천 중 일부지역은 총알배송이 불가합니다.</p>
+								 <!-- // 배송가능지역 -->
+                            </div>  
+                        </div>
+                    </div>
+                    <div class="Bulletship_foot">
+                        <div class="inner custom-inner">
+                            <ul class="clear">
+                                <li>
+                                    <div class="img-box">
+                                        <img src="/images/mo/ico_bulltet-order.png" alt="택배차가 그려진 아이콘입니다">
+                                    </div>
+                                    <div class="txt-box">
+                                        <span class="tit">주문/도착</span>
+                                        <p class="disc">오전 10시 전 주문완료하면 <br>당일 밤 12시까지 도착</p>
+                                    </div>
+                                </li>
+                                <li>
+                                    <div class="img-box">
+                                        <img src="/images/mo/ico_bulltet-delivery.png" alt="달력이 그려진 아이콘입니다">
+                                    </div>
+                                    <div class="txt-box">
+                                        <span class="tit">배송일</span>
+                                        <p class="disc">월, 화, 수, 목, 금 <br class="mo-only">(영업일 기준, 공휴일 휴무)</p>
+                                    </div>
+                                </li>
+                                <li>
+                                    <div class="img-box">
+                                        <img src="/images/mo/ico_bulltet-object.png" alt="쇼핑백이 그려진 아이콘입니다">
+                                    </div>
+                                    <div class="txt-box">
+                                        <span class="tit">대상상품</span>
+                                        <p class="disc ptxt01">한세 패밀리 브랜드 <br class="mo-only">(스타일24 직배송 한정)</p>
+                                    </div>
+                                </li>
+                            </ul>
+                        </div>
+                    </div>
+
+					<!-- 210415_드롭박스 위치수정 -->
+					<div class="items_option">
+						<div class="open_categori">
+							<a id="filter">모이몰른
+								<!-- 210415_select > a태그로 변경 -->
+								<!--<option value="hide">모이몰른</option>
+								<option value="Test_SELECT_OPTION_1" rel="icon-temperature">모이몰른</option>
+								<option value="Test_SELECT_OPTION_2">모이몰른</option>
+								<option value="Test_SELECT_OPTION_3">모이몰른</option>-->
+							</a> 
+						</div>
+					</div>
+                </div>
+				<div class="inner">
+					<div class="delivery_item">
+						<h2 class="dp_subtitle dp_another_st">모이몰른</h2>
+						<div class="item_list">
+							<div class="itemsGrp"> <!-- itemsGrp rank hot deal -->
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
+											</div>
+											<p class="itemBrand">BRAND NAME</p>
+											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+											<p class="itemPrice">
+												<span class="itemPrice_original">89,000</span>
+												80,100
+												<span class="itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<p class="itemBadge">
+												<span class="badge13">베스트 </span>
+											</p>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
+											</div>
+											<p class="itemBrand">BRAND NAME</p>
+											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+											<p class="itemPrice">
+												<span class="itemPrice_original">89,000</span>
+												80,100
+												<span class="itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<p class="itemBadge">
+												<span class="badge13">베스트 </span>
+											</p>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
+											</div>
+											<p class="itemBrand">BRAND NAME</p>
+											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+											<p class="itemPrice">
+												<span class="itemPrice_original">89,000</span>
+												80,100
+												<span class="itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<p class="itemBadge">
+												<span class="badge13">베스트 </span>
+											</p>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
+											</div>
+											<p class="itemBrand">BRAND NAME</p>
+											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+											<p class="itemPrice">
+												<span class="itemPrice_original">89,000</span>
+												80,100
+												<span class="itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<p class="itemBadge">
+												<span class="badge13">베스트 </span>
+											</p>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="inner">
+					<div class="delivery_item">
+						<h2 class="dp_subtitle">컬리수</h2>
+						<div class="item_list">
+							<div class="itemsGrp"> <!-- itemsGrp rank hot deal -->
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
+											</div>
+											<p class="itemBrand">BRAND NAME</p>
+											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+											<p class="itemPrice">
+												<span class="itemPrice_original">89,000</span>
+												80,100
+												<span class="itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<p class="itemBadge">
+												<span class="badge13">베스트 </span>
+											</p>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
+											</div>
+											<p class="itemBrand">BRAND NAME</p>
+											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+											<p class="itemPrice">
+												<span class="itemPrice_original">89,000</span>
+												80,100
+												<span class="itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<p class="itemBadge">
+												<span class="badge13">베스트 </span>
+											</p>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
+											</div>
+											<p class="itemBrand">BRAND NAME</p>
+											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+											<p class="itemPrice">
+												<span class="itemPrice_original">89,000</span>
+												80,100
+												<span class="itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<p class="itemBadge">
+												<span class="badge13">베스트 </span>
+											</p>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike">관심상품 추가</button>
+										<a href="#none" class="itemLink">
+											<div class="itemPic">
+												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
+											</div>
+											<p class="itemBrand">BRAND NAME</p>
+											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+											<p class="itemPrice">
+												<span class="itemPrice_original">89,000</span>
+												80,100
+												<span class="itemPercent">10%</span>
+											</p>
+											<div class="itemcolorchip">
+												<span class="chip_color35" value="ABM">BEIGE</span>
+												<span class="chip_color54" value="BDS">BLACK</span>
+												<span class="chip_color40" value="YBR">WHITE</span>
+											</div>
+											<p class="itemBadge">
+												<span class="badge13">베스트 </span>
+											</p>
+											<div class="itemComment">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</section>
+
+			<!-- 배송검색팝업 -->
+			<div class="modal fade dp_pop bulletShip_pop" id="bulletShipPop" tabindex="-1" role="dialog" aria-labelledby="modalScrollLabel" aria-hidden="true">
+				<div class="modal-dialog" role="document">
+					<div class="modal-content">
+						<div class="modal-header">
+							<h5 class="modal-title" id="modalScrollLabel"><span class="sr-only">배송팝업</span></h5>
+						</div>
+						<div class="modal-body">
+							<div class="pop_cont"></div>
+						</div>
+						<div class="modal-footer">
+							<button type="button" id="" class="btn btn_dark"><span>계속 쇼핑하기</span></button>
+						</div>
+					</div>
+				</div>
+			</div>
+			<!-- //배송검색팝업 -->
+
+			<!-- 카테고리 -->
+			<div class="category_box brand">
+				<div class="lap">
+					<div class="category_close">카테고리닫기</div>
+					<div class="category_list">
+						<!-- 카테고리 선택 -->
+						<div class="selcet_list">
+							<ul>
+								<li class="active"><a href="javascript:void(0)">모이몰론</a></li>
+								<li><a href="javascript:void(0)">모이몰론</a></li>
+								<li><a href="javascript:void(0)">모이몰론</a></li>
+								<li><a href="javascript:void(0)">모이몰론</a></li>
+								<li><a href="javascript:void(0)">모이몰론</a></li>
+								<li><a href="javascript:void(0)">모이몰론</a></li>
+								<li><a href="javascript:void(0)">모이몰론</a></li>
+								<li><a href="javascript:void(0)">모이몰론</a></li>
+								<li><a href="javascript:void(0)">모이몰론</a></li>
+							</ul>
+						</div>
+						<!-- //카테고리 선택 -->
+					</div>
+				</div>
+			</div>
+			<!-- //카테고리 -->
+
+			<!-- 210415_최신상품순 리스트 팝업 추가 -->
+            <div id="odDatePop" class="popup_box odDatePop">
+                <div class="lap">
+                    <div class="popup_close">카테고리닫기</div>
+                    <div class="popup_head sr-only">
+                        <h2 class="">기간 선택 팝업</h2>
+                    </div>
+                    <div class="popup_con">
+                        <div class="button_list clear">
+                            <button type="button" class="on"><span>모이몰른</span></button>
+                            <button type="button"><span>모이몰른</span></button>
+                            <button type="button"><span>모이몰른</span></button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+		</main>
+
+<script th:inline="javascript">
+
+</script>
+</th:block>
+
+</body>
+</html>

+ 137 - 34
src/main/webapp/WEB-INF/views/mob/social/SocialMainFormMob.html

@@ -20,6 +20,17 @@
 <th:block layout:fragment="content">
 <main role="" id="" class="container dp">
 			<section class="content dp_hotdeal">
+				<div class="nodata" style="display: none;">
+					<div class="txt_box">
+						<p>진행하는 핫딜이 없습니다.</p>
+					</div>
+					<div class="btn_box">
+						<button class="btn btn_default" onclick="cfnGoToPage(_PAGE_MAIN);">
+							<span>홈으로 가기</span>
+						</button>
+					</div>
+				</div>
+			<th:block th:if="${socialInfo != null}">
 				<div class="inner wide">
                     <div class="hotdeal">
                         <div id="countdown">
@@ -33,48 +44,35 @@
                 <div class="inner">
                     <div class="list_content">
 						<div class="itemsGrp rowtype"><!-- itemsGrp rank hot deal --> <!-- rowtype 추가시 가로형태로 출력 -->
-						<th:block th:each="SocialData, SocialStat : ${socialGoods}">
-							<div class="item_prod" th:class="${SocialData.stockQtySum == 0 ? 'item_prod sold_out' : 'item_prod'}">
-								<div class="item_state">
-									<button type="button" th:class="${SocialData.likeIt == 'likeit'}? 'itemLike likeit' : 'itemLike'" onclick="cfnPutWishList(this);" th:attr="goodsCd=${SocialData.goodsCd}, ithrCd='', contentsLoc='', planDtlSq=''">관심상품 추가</button>
-									 <a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${SocialData.goodsCd}]])" >
-										<div class="shape ranker"><span>특가</span></div>
-										<div class="itemPic">
-											<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + SocialData.sysImgNm}">
-										</div>
-										<p class="itemBrand" th:text="${SocialData.brandGroupNm}"></p>
-										<div class="itemName" th:text="${SocialData.goodsNm}"></div>
-										<p class="itemPrice">
-											<span class="itemPrice_original" th:text="${#numbers.formatInteger(SocialData.listPrice,0,'COMMA')}"></span>
-											 [[${#numbers.formatInteger(SocialData.currPrice,0,'COMMA')} + 원]]
-											<span class="itemPercent"  th:text="${#numbers.formatDecimal(SocialData.dcRate,1,0)} + '%'"></span>
-										</p>
-										<div class="itemcolorchip">
-											<span class="chip_color35" value="ABM">BEIGE</span>
-											<span class="chip_color54" value="BDS">BLACK</span>
-											<span class="chip_color40" value="YBR">WHITE</span>
+								<section id="infiniteContainer">
+										<div id="listBoxOuter">
+											<ul id="listBox">
+											</ul>
 										</div>
-										<p class="itemBadge">
-											<span class="badge13">베스트 </span>
-										</p>
-										<div class="itemComment" th:if="${SocialData.goodsTnm!=null}" th:text="${SocialData.goodsTnm}"></div>
-										<div class="itemEt">
-											<div class="shopBag">
-												<button class="btn btn_default" onclick="socialAddCart(this)" th:attr="goodsCd=${SocialData.goodsCd}, minOrdQty=${SocialData.minOrdQty}, goodsType=${SocialData.goodsType}, optCd=${SocialData.optCd}"><span>쇼핑백담기</span></button>
-											</div>
-									    </div>
-									</a>
-								</div>
+								</section>
+							<div class="last_page" id="divLastPage" style="display: none;">
+							 	<span>마지막 페이지입니다.</span>
 							</div>
-							</th:block>
 						</div>
                     </div>
 				</div>
+			</th:block>
 			</section>
 		</main>
-
+<form id="socialForm" name="socialForm" action="#" th:action="@{'/social/list'}">
+	<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
+	<input type="hidden" name="pageSize" value ="10"/>
+</form>
+<script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
+<script src="/ux/plugins/jquery/jquery.history.min.js"></script>
+<!-- <script src="/ux/plugins/gaga/gaga.infinite.scrollLayer.js"></script> -->
 <script th:inline="javascript">
-var socialInfo = [[${socialInfo}]];
+let socialInfo = [[${socialInfo}]];
+let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
+
+
+//$(function() { gagaInfiniteScroll.getHistory(); });
+
 var socialAddCart = function (obj) {
 	let btnType = "C";
 	let params = [];
@@ -97,8 +95,113 @@ var socialAddCart = function (obj) {
 	} 
 }
 
+let fnGetSocialList = function(result) {
+	var html = '';
+	$.each(result.dataList, function(idx, item) {
+		html += '<div class="item_prod">';
+		if (item.stockQtySum == 0) {
+			html += '    <div class="item_state sold_out"> ';
+		}else{
+			html += '    <div class="item_state"> ';
+		}
+		if (item.likeIt == 'likeit') {
+			html += '        <button type="button" class="itemLike active" onclick="cfnPutWishList(this);" onClick="cfnPutWishList(this);" goodsCd=\''+item.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
+		}else{
+			html += '        <button type="button" class="itemLike" onclick="cfnPutWishList(this);" onClick="cfnPutWishList(this);" goodsCd=\''+item.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
+		}
+		html += '		<a href="javascript:void(0);" class="itemLink" onclick="cfnGoToGoodsDetail(\''+item.goodsCd+'\')" >';
+		html += '			<div class="shape ranker"><span>특가</span></div>';
+		html += '			<div class="itemPic">';
+		html += '				<img class="vLHTC pd_img" src="'+ goodsView +'/'+item.sysImgNm +'">';
+		html += '			</div>';
+		html += '			<p class="itemBrand">'+item.brandGroupNm+'</p>';
+		html += '			<div class="itemName">'+item.goodsNm+'</div>';
+		html += '			<p class="itemPrice">';
+		if (item.currPrice != item.listPrice) {
+			html += '                <span class="itemPrice_original">'+item.listPrice.addComma()+'</span>';
+		}
+		html += item.currPrice.addComma();
+		if (item.dcRate != 0) {
+			html += '                <span class=" itemPercent">'+item.dcRate.addComma()+'%</span>';
+		}
+		html += '			</p>';
+		if(item.goodsTnm != null){
+			html += '           <div class="itemComment">'+item.goodsTnm+'</div>';
+		}
+		html += '			<div class="itemEt">';
+		html += '				<div class="shopBag">';
+		html += '					<button class="btn btn_default" onclick="socialAddCart(this)" goodsCd=\''+item.goodsCd+'\', minOrdQty=\''+item.minOrdQty+'\', goodsType=\''+item.goodsType+'\', optCd=\''+item.optCd+'\'"><span>쇼핑백담기</span></button>';
+		html += '				</div>';
+		html += '			</div>';
+		html += '		</a>';
+		html += '	</div>';
+		html += '</div>';
+
+	});
+	return html;
+}
+
+
+
+var fnSocialListSearch = function() {
+	fnSocialInfiniteScrollInit();
+	gagaInfiniteScroll.getHistory();
+}
+// 인피니트 스크롤 초기화
+var fnSocialInfiniteScrollInit = function(){
+	sessionStorage.removeItem(document.location.href);
+	//History 초기화
+	$("#listBox").html("");
+} 
+
+//인피니트 스크롤 초기화
+/* var fnSocialInfiniteScrollInit = function(){
+	// sessionStorage.removeItem(document.location.href);
+	History.replaceState(null, null);
+	gagaInfiniteScroll.pageStatus = {
+			  pageNum : []      // [0,1,2...] 로드된 페이지 (Array)
+			, loadPage : 0      // 로드할 페이지
+			, loadAlign : 'not' // 로드 상태(prev, next, not)
+			, historyScroll : 0 //
+			, nowPage : null    // 현재 페이지
+			, pageUrl : {       // page url
+			}
+	}
+	//History 초기화
+	$("#listBox").html("");;
+} */
+
+//인피니트 스크롤 이벤트 발생 시 데이터 가져오기
+var fnGetInfiniteScrollDataList = function(pageNum) {
+	$("#socialForm input[name=pageNo]").val(pageNum+1);
+	gagajf.ajaxFormSubmit("/social/list",document.socialForm, gagaInfiniteScroll.jsonToHtml);
+}
+
+var fnDrawInfiniteScrollData = function (result, pageNum){
+	let totalCnt = result.totalCnt;
+	gagaInfiniteScroll.pageStatus.totalCount = result.totalCnt;
+	
+	if (result.dataList != null && result.dataList.length > 0) {
+		$(".nodata").hide();		
+		let lastPage = result.paging.pageable.pageNo;
+		let endRow = result.endRow - result.paging.pageable.pageSize;
+		
+		var htm = fnGetSocialList(result, lastPage, endRow);
+		gagaInfiniteScroll.draw(htm);
+	}else{
+		if($("#socialForm input[name=pageNo]").val()==1){
+			$(".nodata").show();		
+		}
+		$("#divLastPage").show();
+		gagaInfiniteScroll.draw('not');
+		
+	}
+}
+
+
 
 $(function(){
+	fnSocialListSearch();
     /* 핫딜 countDown */
     function hotdealTimer() {
         var endTime = new Date(socialInfo.socialEddt); // 남은시간 지정

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

@@ -233,7 +233,7 @@
 				</th:block>
 
 				<!-- MD’s PICK -->
-				<th:block th:if="${contentsLoc=='009'}">
+				<th:block th:if="${contentsLoc=='009' or contentsLoc=='017' or contentsLoc=='018' or contentsLoc=='019'}">
 					<div class="content md_item" th:if="${brandMainLayoutData.goodsList != null}">
 						<div class="cont_head">
 							<p class="displayH t_c" th:text="${contentsTitle}"></p>
@@ -245,7 +245,7 @@
 									<div class="swiper-slide">
 										<div class="item_prod sUiXc">
 											<div class="item_state">
-												<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBM009', planDtlSq=''">관심상품 추가</button>
+												<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc=${contentsLoc}, planDtlSq=''">관심상품 추가</button>
 												<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBM009');">
 													<div class="itemPic">
 														<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">

+ 68 - 89
src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html

@@ -244,13 +244,13 @@
 									<div>
 										<ul id="sortArea">
 											<li>
-												<a href="javascript:void(0);" class="on" onclick="fnSortList(this,'NEW');">최신상품순</a>
+												<a href="javascript:void(0);" id="sortingNEW" class="on" onclick="fnSortingChange(this,'NEW');">최신상품순</a>
 											</li>
 											<li>
-												<a href="javascript:void(0);" onclick="fnSortList(this,'BEST');">인기상품순</a>
+												<a href="javascript:void(0);" id="sortingBEST" onclick="fnSortingChange(this,'BEST');">인기상품순</a>
 											</li>
 											<li>
-												<a href="javascript:void(0);" onclick="fnSortList(this,'REVIEW');">리뷰 많은순</a>
+												<a href="javascript:void(0);" id="sortingREVIEW" onclick="fnSortingChange(this,'REVIEW');">리뷰 많은순</a>
 											</li>
 										</ul>
 									</div>
@@ -316,15 +316,13 @@
 			//가격 슬라이드
 			//var custom_values = ['9,000원', '230,000원', '487,000원', '700,000원', '1,360,000원', '1,799,000원'];
 			if(!gagajf.isNull(filterPriceList)){
-				console.log('111');
 				$.each(filterPriceList, function (priceIdx, priceItem){
 					custom_values[priceIdx] = priceItem.filterNm;
 				});
 
 				let my_from = custom_values.indexOf(custom_values[0]);
 				let my_to = custom_values.indexOf(custom_values[5]);
-				console.log('1>>priceFrom>>'+$("#filterData").find("input:hidden[name=priceFrom]").val());
-				console.log('1>>priceTo>>'+$("#filterData").find("input:hidden[name=priceTo]").val());
+				
 				if(gagajf.isNull($("#filterForm input:hidden[name=priceFrom]").val())){
 					my_from = $("#filterForm input:hidden[name=priceFrom]").val();
 				}
@@ -424,8 +422,6 @@
 			$("#searchGoodsForm input:hidden[name=priceTo]").remove();
 			let min = data.from;
 			let max = data.to;
-			console.log('Price from>>'+custom_values[min]);
-			console.log('Price to>>'+custom_values[max]);
 			$("#price_input_from").val(custom_values[0]);
 			$("#price_input_to").val(custom_values[5]);
 
@@ -879,7 +875,7 @@
 			var overSrc;
 			var srcName = nowImg.attr('src');
 			overSrc = srcName.substring(0, srcName.lastIndexOf('.'));
-			
+
 			var srcImg;
 			var srcdat;
 
@@ -924,14 +920,15 @@
 				// $(this).attr('src', overSrc + '.' + /[^.]+$/.exec(srcName));
 				//$(this).attr('src', img1);
 				// return false;
+				$(this).parents('.itemPic').removeClass();
 				$(this).children('.pd_img').siblings(".itemOpt").removeClass('on');
 				$(this).children('.pd_img').attr('src', srcImg);
+				$(this).children('.pd_img').css("opacity","1");
 			});
 		}
 
 		// 사파리 - event.persisted || 크롬 - window.performance.navigation.type 이 1이면 새로고침, 2면 페이지 이동을 통한 캐쉬페이징
 		$(window).on("pageshow", function(event) {
-			console.log('test1');
 			$('#filterForm input[name=brandGroup]:checked').each(function(){
 				let filterGb = 'brandGroup';
 				$(this).attr('onclick','filterSel(this,\''+filterGb+'\',\'on\');');
@@ -943,32 +940,6 @@
 				$(this).attr('onclick','filterSel(this,\''+filterGb+'\',\'on\',\''+rowNum+'\');');
 				$(this).parent().addClass("active");
 			});
-			// $('#filterForm input[name=price]').each(function(){
-			// 	console.log('priceFrom>>'+ $("#searchGoodsForm input:hidden[name=priceFrom]").val() );
-			// 	console.log('priceTo>>'+ $("#searchGoodsForm input:hidden[name=priceTo]").val() );
-			// 	// $(this).parent().addClass("active");
-			// 	$("#priceSpan").remove();
-			// 	$("#searchGoodsForm input:hidden[name=priceFrom]").remove();
-			// 	$("#searchGoodsForm input:hidden[name=priceTo]").remove();
-			// 	let min = $("#searchGoodsForm input:hidden[name=priceFrom]").val();
-			// 	let max = $("#searchGoodsForm input:hidden[name=priceTo]").val();
-			// 	$("#price_input_from").val(custom_values[0]);
-			// 	$("#price_input_to").val(custom_values[5]);
-			//
-			// 	fnFilterSlider('price' , custom_values[min].addComma(), custom_values[max].addComma());
-			// });
-			// $('#filterForm input[name=range]:checked').each(function(){
-			// 	console.log('eeeeeeeeeeeeeee');
-			// 	$("#dcrateSpan").remove();
-			// 	//$("#searchGoodsForm input:hidden[name=dcRateFrom]").remove();
-			// 	//$("#searchGoodsForm input:hidden[name=dcRateTo]").remove();
-			// 	let min = $("#searchGoodsForm input:hidden[name=dcRateFrom]").val();
-			// 	let max =  $("#searchGoodsForm input:hidden[name=dcRateTo]").val();
-			// 	$("#price_input_from").val(0);
-			// 	$("#price_input_to").val(100);
-			//
-			// 	fnFilterSlider('dcrate' , custom_values02[min].replace('%',''), custom_values02[max].replace('%',''));
-			// });
 			$('#filterForm input[name=season]:checked').each(function(){
 				let filterGb = 'season';
 				$(this).attr('onclick','filterSel(this,\''+filterGb+'\',\'on\');');
@@ -1015,13 +986,11 @@
 			if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
 				var historyData = sessionStorage.getItem(document.location.href);
 				if(historyData!=null){
-					console.log('historyData1111>>'+historyData);
+					//console.log('historyData>>'+historyData);
 					historyData = JSON.parse(historyData);
 				}else{
-					console.log('nnnnnnooooo');
 					historyData = {};
 				}
-
 				if(typeof historyData.sortingTypeNm!='undefined' && historyData.sortingTypeNm!=''){
 					$(".arrayWrap .btn").text(historyData.sortingTypeNm);
 				}
@@ -1037,82 +1006,91 @@
 					$("#totCntId").text(historyData.totalCount);
 				}
 				if(!gagajf.isNull(filterPriceList)){
-					console.log('111');
-					$.each(filterPriceList, function (priceIdx, priceItem){
-						custom_values[priceIdx] = priceItem.filterNm;
-					});
-
-					let my_from = custom_values.indexOf(custom_values[0]);
-					let my_to = custom_values.indexOf(custom_values[5]);
-					console.log('1>>priceFrom>>'+$("#filterData").find("input:hidden[name=priceFrom]").val());
-					console.log('1>>priceTo>>'+$("#filterData").find("input:hidden[name=priceTo]").val());
-					if(gagajf.isNull($("#filterData").find("input:hidden[name=priceFrom]").val())){
-						my_from = $("#filterData").find("input:hidden[name=priceFrom]").val().addComma();
+					let min = 0;
+					let max = 5;
+					let priceFrom = '';
+					let priceTo = '';
+					if(!gagajf.isNull($("#searchGoodsForm").find("input:hidden[name=priceFrom]").val())){
+						priceFrom = $("#searchGoodsForm").find("input:hidden[name=priceFrom]").val();
 					}
-					if(gagajf.isNull($("#filterData").find("input:hidden[name=priceTo]").val())){
-						my_to = $("#filterData").find("input:hidden[name=priceTo]").val().addComma();
+					if(!gagajf.isNull($("#searchGoodsForm").find("input:hidden[name=priceTo]").val())){
+						priceTo = $("#searchGoodsForm").find("input:hidden[name=priceTo]").val();
 					}
-					let minValue = custom_values[0];
-					let maxValue = custom_values[5];
-
-					$(".dp .js-range-slider01, .sch_result .js-range-slider01").ionRangeSlider({
-						type: "double",
-						min: minValue,
-						max: maxValue,
-						from: my_from,
-						to: my_to,
-						grid: true,
-						skin: "round",
-						postfix: "원",
-						prettify_separator: ",",
-						values: custom_values,
-						min_interval: 1,
-						// onChange : fnCheckPrice,
-						onFinish : function(data){
-							fnCheckPrice(data);
+					$.each(filterPriceList, function (priceIdx, priceItem){
+						custom_values[priceIdx] = priceItem.filterNm;
+						if(custom_values[priceIdx] == priceFrom){
+							min = priceIdx;
+						}
+						if(custom_values[priceIdx] == priceTo){
+							max = priceIdx;
 						}
 					});
+				
+					fnFilterSliderMove(min,max);
 				}
 				if(typeof historyData.sortingType!='undefined' && historyData.sortingType!=''){
-					$("#sortSelect").val(historyData.sortingType);
 					$("#searchGoodsForm input:hidden[name=sortingType]").val(historyData.sortingType);
-					fnSortList(this,historyData.sortingType);
+					fnSortingChange(this,historyData.sortingType,'back');
+					$(".fillter").show();
 				}else{
 					$(".fillter").show();
+					fnCategoryGoodsInfiniteScrollInit();
 					fnGoodsListSearch();
+					fnImgOnoff();
 				}
 			}else{
 				fnCategoryGoodsInfiniteScrollInit();
-				var sortingType = [[${sortingType}]];
+				var sortingType = $("#searchGoodsForm input:hidden[name=sortingType]").val();
 				if(sortingType=='BEST' || sortingType=='REVIEW'){
 					$("#sortArea").find('li').each(function (){
 						$(this).find('a').attr('class','off');
 					});
 
 					$(this).addClass("on");
-					fnSortList(this, sortingType);
+					fnSortingChange(this, sortingType);
 				}else{
 					fnGoodsListSearch();
 				}
 			}
 		});
-
-		var fnSortList = function (obj, sortingType){
-			if($("#searchGoodsForm input[name=sortingType]").val()==sortingType){
-				return;
+		
+		/*]]>*/
+		
+		// 동영상 플레이어
+		var iframe= document.createElement('iframe');
+		iframe.setAttribute('allowFullScreen', '');
+		iframe.setAttribute('allow', 'fullscreen');
+		var controller;
+		var player = document.getElementById('player');
+		
+		player.onload = function() {
+			try {
+				var controller = new VgControllerClient({
+					target_window: document.getElementById('pdThumbVideo').contentWindow
+					// target_window: document.getElementsByClassName('pd_mov').contentWindow
+				});
+				var playMov;
+				
+				controller.on('ready', function(){
+					//플레이어 준비 완료
+					controller.set_ratio('fill');
+					//  contain : 비율에 맞게 채웁니다.
+					//fill : 화면에 꽉 차게 채웁니다.
+					//enlargement : 세로 높이를 꽉 차게 맞춥니다. 좌우로 스크롤이 가능합니다
+					controller.play();
+				});
+				controller.on('done', function(){
+					//플레이어 재생 완료
+					controller.play();
+				});
+				
+			} catch(e) {
+				// Videogateweay Controller Library는 window.postMessage API를 이용하기 때문에
+				// 해당 기능을 지원하지 않는 웹브라우져에서는 동작하지 않습니다.
+				// 이 부분에 적절한 fail-over 코드를 추가하여 주십시요.
 			}
-
-			$("#sortArea").find('li').each(function (){
-				$(this).find('a').attr('class','off');
-			});
-
-			$(obj).addClass("on");
-			$("#searchGoodsForm").find("[name=sortingType]").val(sortingType);
-			fnCategoryGoodsInfiniteScrollInit();
-			fnGoodsListSearch();
+			
 		}
-
-		/*]]>*/
 	</script>
 
 	<script>
@@ -1128,6 +1106,7 @@
 			//$(noneSrc).attr("src", no_src);
 		}
 	</script>
+	
 
 </th:block>
 

+ 102 - 8
src/main/webapp/WEB-INF/views/web/display/LookbookDetailFormWeb.html

@@ -66,16 +66,18 @@
 			</div>
 
 			<div class="content br_lookbook_view cont_items" th:if="${lookbookDetailList != null}">
-				<div class="cont_head">
-					<h3>룩북 속 상품<span class="number">()</span></h3> <!--<th:block th:text="${#lists.size(lookbookDetailList.lookbookGoodsList)}"></th:block>-->
-					<button class="btn btn_primary"><span>모두 쇼핑백 담기</span></button>
+				<th:block th:each="item, stat : ${lookbookDetailList}">
+				<div class="cont_head ioTit">
+					<h3>룩북 속 상품<span class="number">(<th:block th:text="${#lists.size(item.lookbookGoodsList)}"></th:block>)</span></h3>
+					<button class="btn btn_primary" th:onclick="fnAddCartLookBookGoods1(this,[[${stat.count}]]);"><span>모두 쇼핑백 담기</span></button>
 				</div>
+				</th:block>
 				<div class="cont_body">
 					<div class="area_slider">
 						<!-- 겉 상품 -->
 						<div class="items_outside">
 							<th:block th:each="item, stat : ${lookbookDetailList}">
-							<div class="itemsOut">
+							<div class="itemsOut" th:id="${'itemsList'+stat.count}">
 								<div class="swiper-container items_inside">
 									<div class="swiper-wrapper">
 										<th:block th:if="${item.lookbookGoodsList != null and !item.lookbookGoodsList.empty}" th:each="goodsItem, goodsStatus : ${item.lookbookGoodsList}">
@@ -83,7 +85,15 @@
 												<div class="item_prod" th:classappend="${(goodsItem.stockQty <= 0 or goodsItem.soldoutYn == 'Y')}? 'unable' : ''"
 													 th:attr="goodsCd=${goodsItem.goodsCd}, optCdInfo=${goodsItem.optCdInfo}, minOrdQty=${goodsItem.minOrdQty},  goodsType=${goodsItem.goodsType}">
 													<div class="item_state">
-														<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsItem.goodsCd}]]);">
+														<th:block th:each="optCd : ${#strings.arraySplit(goodsItem.optCdInfo,',')}">
+															<input type="hidden" name="lookbookGoodsOptCd" th:value="${optCd}"/>
+														</th:block>
+														<th:block th:if="${(goodsItem.stockQty <= 0 or goodsItem.soldoutYn == 'Y')}">
+															<a href="javascript:void(0);" class="itemLink" >
+														</th:block>
+														<th:block th:unless="${(goodsItem.stockQty <= 0 or goodsItem.soldoutYn == 'Y')}">
+															<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsItem.goodsCd}]])">
+														</th:block>
 															<div class="itemPic">
 																<img alt="" class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsItem.sysImgNm}">
 															</div>
@@ -228,6 +238,87 @@
 		$("#lookbookItemPop").append(tag);
 		$('#lookbookItemPop').modal("show");
 	}
+	
+	var fnAddCartLookBookGoods1 = function (obj, idx){
+		let $obj = $(obj);
+		let $target = $('.cont_items #itemsList'+idx).find('.item_prod');
+		let goodsSize = $target.length;
+		let btnType = "C";
+		let params = [];
+		let goodsIdx = 0;
+		
+		$target.each(function(){
+			goodsIdx ++;
+			if ($(this).hasClass('unable')) {
+				
+			}else{
+				// 옵션확인
+				let goodsCnt = $(this).find('input[name=lookbookGoodsOptCd]').length;
+				if(goodsCnt == 1){
+					let arrOpt = $(this).find('input[name=lookbookGoodsOptCd]').val();
+					let arrOptInfo = arrOpt.split(':');
+					
+					let obj = new Object();
+					obj.goodsCd = $(this).attr("goodsCd");
+					obj.optCd = arrOptInfo[1];
+					obj.goodsQty = $(this).attr("minOrdQty");
+					obj.goodsType = $(this).attr("goodsType");
+					obj.cartGb = btnType;
+					obj.afLinkCd = '';
+					obj.ithrCd = $(this).attr("ithrCd");
+					obj.contentsLoc = $(this).attr("contentsLoc");
+					obj.planDtlSq = '';
+					obj.multiGoodsGb = 'O'  // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
+					if (goodsIdx == goodsSize){
+						obj.multiGoodsGb = 'E'  // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
+					}
+					params.push(obj);
+					
+					// 장바구니담기
+					cfnAddCart(params);
+				}else{
+					let $goods = $(this);
+					let cartGoodsList = [];
+					let compsList = [];
+					let goodsList = {
+						cartCompsList : new Array()
+					}
+					
+					let arrInfo = $(this).find('input[name=lookbookGoodsOptCd]').val().split(',');	// 상품코드단위
+					
+					
+					$.each(arrInfo, function(idx, item) {
+						let arrOptInfo = item.split(':');
+						
+						let obj = new Object();
+						obj.cartGb = btnType;
+						obj.goodsType = $goods.attr("goodsType");
+						obj.goodsCd = $goods.attr("goodsCd");
+						obj.itemCd =arrOptInfo[0];
+						obj.optCd = arrOptInfo[1];
+						obj.goodsQty = $goods.attr("minOrdQty");
+						obj.afLinkCd = '';
+						obj.ithrCd =  $goods.attr("ithrCd");
+						obj.contentsLoc = $goods.attr("contentsLoc");
+						obj.planDtlSq = ''
+						obj.multiGoodsGb = 'O'  // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
+						if (goodsIdx == goodsSize){
+							obj.multiGoodsGb = 'E'  // 단품, 세트 혼합쇼핑백처리일경우, 마지막이 아닌경우는 'O'아니고 NULL 아닌값
+						}
+						compsList.push(obj);
+						
+					});
+					
+					goodsList.cartCompsList = compsList;
+					cartGoodsList.push(goodsList);
+					
+					// 장바구니담기
+					cfnAddCart(cartGoodsList);
+				}
+			}
+		});
+	}
+	
 	// 컨텐츠 호출
 	$(document).ready( function() {
 		/* 슬라이드 - 상단_LOOKBOOK */
@@ -253,9 +344,12 @@
 			},
 			on: {
 				slideChange:function(){
+					// 05.06_ 추가 : .ioTit
 					$('.text_cont').removeClass('active');
+					$('.ioTit').removeClass('active');
 					$('.itemsOut').removeClass('active');
 					$('.text_cont').eq(this.realIndex).addClass('active');
+					$('.ioTit').eq(this.realIndex).addClass('active');
 					$('.itemsOut').eq(this.realIndex).addClass('active');
 				}
 			},
@@ -263,7 +357,7 @@
 			watchSlidesVisibility: true,
 			watchSlidesProgress: true,
 		});
-
+		
 		/* 슬라이드 - 룩북 상품 inSide */
 		var togetherIteminner = new Swiper('.br_lookbook_view.cont_items .items_inside', {
 			observer: true,
@@ -276,7 +370,7 @@
 			},
 			// nested: true,
 		});
-
+		
 		/* 슬라이드 - 다른 룩북 보기 */
 		var br_ohter_slide = new Swiper('.br_lookbook_view.cont_others .swiper-container', {
 			slidesPerView: 5,
@@ -286,7 +380,7 @@
 				prevEl: '.br_lookbook_view.cont_others .swiper-button-prev',
 			},
 		});
-
+		
 		// 슬라이드 - 상단_LOOKBOOK > picker - 룩북_피커_상품정보 팝업
 		$(document).on('click','#btn_picker_item01',function(e){
 			$("#lookbookItemPop").modal("show");

+ 3 - 5
src/main/webapp/WEB-INF/views/web/display/LookbookMainFormWeb.html

@@ -23,7 +23,7 @@
 		<div class="breadcrumb">
 			<ul>
 				<li class="bread_home"><a href="javascript:void(0);" id="navHome">홈</a></li>
-				<li class="bread_home" id="brandLi" th:if="${lbInfo.lookbookGb=='BL'}"></li>
+				<li class="bread_home" id="brandLi" th:if="${lbInfo.lookbookGb=='BL'}" th:text="${brandGroupInfo.brandGroupNm}"></li>
 				<li class="bread_2depth">룩북</li>
 			</ul>
 		</div>
@@ -67,7 +67,8 @@
 									<li>
 										<p><img src="/images/pc/ico_content_none.png" alt="등록된 이벤트가 없습니다."></p>
 										<span>등록된 룩북이 없습니다.</span>
-										<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">메인으로 가기</a>
+										<a href="javascript:void(0);" th:unless="${lbInfo.lookbookGb=='BL'}" onclick="cfnGoToPage(_PAGE_MAIN);">메인으로 가기</a>
+										<a href="javascript:void(0);" th:if="${lbInfo.lookbookGb=='BL'}" th:onclick="cfnGoToBrandMain([[${lbInfo.brandCd}]]);" th:text="${brandGroupInfo.brandGroupNm+' 홈으로 가기'}"></a>
 									</li>
 								</ul>
 							</div>
@@ -84,7 +85,6 @@
 		lookbookGb = 'L';
 	}
 	var brandCd = [[${lbInfo.brandCd}]];
-	var navBrandNm = "";
 
 	let fnGetLookbookList = function (lookbookGb, brandGroupNo){
 		let actionUrl = '/display/lookbook/main/list?lookbookGb='+lookbookGb;
@@ -132,8 +132,6 @@
 							tag2 += '		</div>';
 							tag2 += '	</a>';
 							tag2 += '</li>';
-							navBrandNm = item.brandNm;
-							$("#brandLi").text(navBrandNm);
 						});
 						tag2 += '</ul>';
 

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

@@ -273,7 +273,7 @@
 															<div class="itemPic">
 																<img alt="" class="pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
 															</div>
-															<p class="itemBrand" th:text="${goodsData.brandEnm}">BRAND NAME</p>
+															<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
 															<div class="itemName" th:text="${goodsData.goodsNm}">여성 체인 프린트 큐롯 스커트 프린트 큐롯 스커트</div>
 															<p class="itemPrice">
 																[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')} + 원]]

+ 16 - 0
src/main/webapp/WEB-INF/views/web/goods/GoodsDealDescFormWeb.html

@@ -247,4 +247,20 @@
 		<span>상세정보 더보기</span>
 	</button>
 </div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+
+// 상품상세 asis html  이지미 경로 수정
+   $(document).ready( function() {
+   	 $(".pd_descrp_pop .cont_body").find('img').each(function() {
+			let tmpImgSrc = $(this).attr('src');
+			if (tmpImgSrc.indexOf('Upload') == 1 ){  // /Upload
+				$(this).attr('src' , tmpImgSrc.replace('/Upload', _imgUrl+"/Local"));
+			}
+			
+		});
+	});
+/*]]>*/
+</script>	
 </html>

+ 34 - 16
src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html

@@ -199,7 +199,7 @@
 											</div>
 										</div>
 									</div>
-									<div class="form_field">
+									<div class="form_field" id="form_field1_Up">
 										<div class="select_custom deal_opt1" disabled>
 											<div class="combo">
 												<div class="select">옵션1선택</div>
@@ -209,7 +209,7 @@
 											</div>
 										</div>
 									</div>
-									<div class="form_field">
+									<div class="form_field" id="form_field2_Up">
 										<div class="select_custom deal_opt2" disabled>
 											<div class="combo">
 												<div class="select">옵션2선택</div>
@@ -325,16 +325,20 @@
 					if (idx == 0){
 						if (flag == "layer"){
 							$objUp = $('.pd_descrp_pop .opt_select .select_custom.deal_opt1');
-							$objUp.html('');
+					//		$objUp.html('');
+							$objUp.remove();
 						}else if (flag == "Up"){
 							$objUp = $('.pd_detail .opt_select .select_custom.deal_opt1');
-							$objUp.html('');
+					//		$objUp.html('');
+							$objUp.remove();
 						}else{
 							$objDown = $('.pd_desc_wrap .opt_select .select_custom.deal_opt1');
-							$objDown.html('');
+					//		$objDown.html('');
+							$objDown.remove();
 						}
-						$('.form_field .select_custom.deal_opt1').attr('disabled', false);
+					//	$('.form_field .select_custom.deal_opt1').attr('disabled', false);
 						//------
+						tag1 += '<div class="select_custom deal_opt1">\n';	
 						tag1 += '<div class="combo">\n';
 						tag1 += '<div class="select">옵션1선택</div>\n';
 						tag1 += '<ul class="list">\n';
@@ -366,21 +370,26 @@
 					//------
 					tagUpS += '</ul>\n';
 					tagUpS += '</div>\n';
+					tagUpS += '</div>\n';
 					tagDownS += '</ul>\n';
 					tagDownS += '</div>\n';
+					tagDownS += '</div>\n';
 					//------	
 				}
 				
 				if (flag == "layer"){
-					$objUp.prepend(tagUpS);
+				//	$objUp.prepend(tagUpS);
+					$('#form_field1_'+flag).append(tagUpS);
 					var pop_desc_option02 = new sCombo('.pd_descrp_pop .opt_select .select_custom.deal_opt1');
 					//$('.pd_descrp_pop .opt_select .select_custom.deal_opt1').find('.combo .select').trigger('click');
 				}else if (flag == "Up"){
-					$objUp.prepend(tagUpS);
+				//	$objUp.prepend(tagUpS);
+					$('#form_field1_'+flag).append(tagUpS);
 					var detail_deal_option02 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt1');
 					//$('.pd_detail .opt_select .select_custom.deal_opt1').find('.combo .select').trigger('click');
 				}else{
-					$objDown.prepend(tagDownS);
+				//	$objDown.prepend(tagDownS);
+					$('#form_field1_'+flag).append(tagDownS);
 					var desc_option02 = new sCombo('.pd_desc_wrap .opt_select .select_custom.deal_opt1');
 					//$('.pd_desc_wrap .opt_select .select_custom.deal_opt1').find('.combo .select').trigger('click');
 				}
@@ -439,17 +448,21 @@
 					if (idx == 0){
 						if (flag == "layer"){
 							$objUp = $('.pd_descrp_pop .opt_select .select_custom.deal_opt2');
-							$objUp.html('');
+					//		$objUp.html('');
+							$objUp.remove();
 						}else if (flag == "Up"){
 							$objUp = $('.pd_detail .opt_select .select_custom.deal_opt2');
-							$objUp.html('');
+					//		$objUp.html('');
+							$objUp.remove();
 						}else{
 							$objDown = $('.pd_desc_wrap .opt_select .select_custom.deal_opt2');
-							$objDown.html('');
+					//		$objDown.html('');
+							$objDown.remove();
 							
 						}
-						$('.form_field .select_custom.deal_opt2').attr('disabled', false);	
+						//$('.form_field .select_custom.deal_opt2').attr('disabled', false);	
 						//------
+						tag1 += '<div class="select_custom deal_opt2">\n';	
 						tag1 += '<div class="combo">\n';
 						tag1 += '<div class="select">옵션2선택</div>\n';
 						tag1 += '<ul class="list">\n';
@@ -481,21 +494,26 @@
 					//------
 					tagUpS += '</ul>\n';
 					tagUpS += '</div>\n';
+					tagUpS += '</div>\n';
 					tagDownS += '</ul>\n';
 					tagDownS += '</div>\n';
+					tagDownS += '</div>\n';
 					//------	
 				}
 				
 				if (flag == "layer"){
-					$objUp.prepend(tagUpS);
+				//	$objUp.prepend(tagUpS);
+					$('#form_field2_'+flag).append(tagUpS);
 					var pop_desc_option02 = new sCombo('.pd_descrp_pop .opt_select .select_custom.deal_opt2');
 					//$('.pd_descrp_pop .opt_select .select_custom.deal_opt2').find('.combo .select').trigger('click');
 				}else if (flag == "Up"){
-					$objUp.prepend(tagUpS);
+				//	$objUp.prepend(tagUpS);
+					$('#form_field2_'+flag).append(tagUpS);
 					var detail_deal_option03 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt2');
 					//$('.pd_detail .opt_select .select_custom.deal_opt2').find('.combo .select').trigger('click');
 				}else{
-					$objDown.prepend(tagDownS);
+				//	$objDown.prepend(tagDownS);
+					$('#form_field2_'+flag).append(tagDownS);
 					var desc_option03 = new sCombo('.pd_desc_wrap .opt_select .select_custom.deal_opt2');
 					//$('.pd_desc_wrap .opt_select .select_custom.deal_opt2').find('.combo .select').trigger('click');
 				}

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

@@ -275,7 +275,7 @@
 											</div>
 										</div>
 									</div>
-									<div class="form_field">
+									<div class="form_field" th:id="${'form_field2_'+goodsCompose.compsGoodsCd}">
 										<div class="select_custom item_opt2" th:classappend="${'item_opt2_'+status.count +' '+goodsCompose.compsGoodsCd}"  disabled>
 											<div class="combo">
 												<div class="select">옵션2선택</div>
@@ -312,7 +312,7 @@
 											</div>
 										</div>
 									</div>
-									<div class="form_field">
+									<div class="form_field" th:id="${'form_field2_'+goodsInfo.goodsCd}">
 										<div class="select_custom item_opt2 item_opt2_1" th:classappend="${goodsInfo.goodsCd}"  disabled>
 											<div class="combo">
 												<div class="select">옵션2선택</div>
@@ -1419,9 +1419,11 @@
 						//$obj = $('#goodsOpt2'+item.goodsCd);
 						//$obj = $('.form_field .select_custom.item_opt2.item_opt2_1');
 						
-						$obj.html('');
-						$('.form_field .select_custom.item_opt2.' +item.goodsCd ).attr('disabled', false)
+					//	$obj.html('');
+						$obj.remove();
+					//	$('.form_field .select_custom.item_opt2.' +item.goodsCd ).attr('disabled', false)
 						//------
+						tag += '<div class="select_custom item_opt2 item_opt2_'+ridx+ ' '+goodsCd+'">\n';	
 						tag += '<div class="combo">\n';
 						tag += '<div class="select">옵션2선택</div>\n';
 						tag += '<ul class="list">\n';
@@ -1448,11 +1450,12 @@
 					//------
 					tag += '</ul>\n';
 					tag += '</div>\n';
+					tag += '</div>\n';
 					//------	
 				}
 				
-				
-				$obj.append(tag);
+				$('#form_field2_'+ goodsCd).append(tag);
+				//$obj.append(tag);
 				if (selfGoodsYn == "Y"){
 					if (ridx == 1){
 						var opt_selecter02_1 = new sCombo('.opt_set_select .select_custom.item_opt2.item_opt2_1');
@@ -1574,6 +1577,8 @@
 		
 		$('.timer_box').css('display', 'none');
 		
+		
+		
 		//공유 버튼 토글 
 		$("button[data-name=openShare]").on("click", function(){
 			$(this).toggleClass("on").next(".shareWrap").toggleClass("on");
@@ -1851,6 +1856,8 @@
 		
 		// ep 쿠폰확인
 		fnEpCouponDown([[${afLinkCd}]], [[${params.goodsCd}]], 1);
+		
+		
 	});
 	
 	// 상품평 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
@@ -1910,6 +1917,19 @@
              // 이 부분에 적절한 fail-over 코드를 추가하여 주십시요.
          }
      }
+     
+     // 상품상세 asis html  이지미 경로 수정
+     window.onload = function(){
+    	 $(".pd_descrp .cont_body").find('img').each(function() {
+ 			let tmpImgSrc = $(this).attr('src');
+ 			if (tmpImgSrc.indexOf('Upload') == 1 ){  // /Upload
+ 				$(this).attr('src' , tmpImgSrc.replace('/Upload', _imgUrl+"/Local"));
+ 			}
+ 			
+ 		});
+ 	}
+     
+     
 /*]]>*/
 </script>
 

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

@@ -311,7 +311,7 @@
 										</div>
 									</div>
 								</div>
-								<div class="form_field">
+								<div class="form_field" id="form_field1_Down">
 									<div class="select_custom deal_opt1" disabled>
 										<div class="combo">
 											<div class="select">옵션1선택</div>
@@ -321,7 +321,7 @@
 										</div>
 									</div>
 								</div>
-								<div class="form_field">
+								<div class="form_field" id="form_field2_Down">
 									<div class="select_custom deal_opt2" disabled>
 										<div class="combo">
 											<div class="select">옵션2선택</div>
@@ -423,7 +423,7 @@
 			<div class="full_pop_fix_r">
 				<div class="option_box">
 					<div class="opt_select">
-						<div class="form_field">
+						<div class="form_field" id="form_field1_layer">
 							<div class="select_custom deal_opt1" disabled>
 								<div class="combo">
 									<div class="select">옵션1</div>
@@ -433,7 +433,7 @@
 								</div>
 							</div>
 						</div>
-						<div class="form_field">
+						<div class="form_field"  id="form_field2_layer">
 							<div class="select_custom deal_opt2" disabled>
 								<div class="combo">
 									<div class="select">옵션2선택</div>

+ 2 - 1
src/main/webapp/WEB-INF/views/web/goods/GoodsInstockAlarmFormWeb.html

@@ -95,7 +95,8 @@
 		gagajf.ajaxFormSubmit('/goods/instock/alarm/save'
 				, $('#goodsInstockAlarmForm')
 				, function() {
-					cfCloseLayer('layer_instock_alarm');
+					//cfCloseLayer('layer_instock_alarm');
+					$.modal.close();
 				}
 		);
 	}

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

@@ -90,10 +90,11 @@
 										</div>
 										<div class="status_box">
 											<p>
+												<th:block th:if="${exchangeDtl.chgStat == 'G685_21'}" th:text="|결제대기|"></th:block>
 												<th:block th:if="${exchangeDtl.chgStat == 'G685_40' && (exchangeDtl.ordDtlStat == 'G013_20' or exchangeDtl.ordDtlStat == 'G013_30' or exchangeDtl.ordDtlStat == 'G013_35' or exchangeDtl.ordDtlStat == 'G013_40' or exchangeDtl.ordDtlStat == 'G013_50')}" th:text="|교환진행중|"></th:block>
 												<th:block th:if="${exchangeDtl.chgStat == 'G685_40' && (exchangeDtl.ordDtlStat == 'G013_60' or exchangeDtl.ordDtlStat == 'G013_70')}" th:text="|교환완료|"></th:block>
 												<th:block th:if="${exchangeDtl.chgStat == 'G685_49'}" th:text="|접수취소|"></th:block>
-												<th:block th:unless="${exchangeDtl.chgStat == 'G685_40' or exchangeDtl.chgStat == 'G685_49'}" th:text="${exchangeDtl.chgStatNm}"></th:block>
+												<th:block th:unless="${exchangeDtl.chgStat == 'G685_21' or exchangeDtl.chgStat == 'G685_40' or exchangeDtl.chgStat == 'G685_49'}" th:text="${exchangeDtl.chgStatNm}"></th:block>
 												<span class="date" th:text="${exchangeDtl.chgDate}"></span>
 												<span class="time" th:text="${exchangeDtl.chgTime}"></span>
 											</p>
@@ -106,7 +107,7 @@
 										</div>
 									</div>
 									<!-- 교환결제대기 -->
-									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${exchangeDtl.addPayCost}|원 결제 후 교환 가능합니다."></p></div>
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${exchangeDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p></div>
 									<!-- 교환접수 -->
 									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_20'}"><p>교환 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>
 									<!-- 회수요청 -->

+ 2 - 0
src/main/webapp/WEB-INF/views/web/mypage/MypageCreListFormWeb.html

@@ -433,6 +433,8 @@
 						});
 					} else if (cre.chgStat == 'G685_33') {
 						tag += '												환불진행중\n';
+					} else if (cre.chgStat == 'G685_21' || cre.chgStat == 'G685_51') {
+						tag += '												결제대기\n';
 					} else if (cre.chgStat == 'G685_49' || cre.chgStat == 'G685_69') {
 						tag += '												접수취소\n';
 					} else {

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

@@ -83,9 +83,10 @@
 										</div>
 										<div class="status_box">
 											<p>
+												<th:block th:if="${returnDtl.chgStat == 'G685_51'}" th:text="|결제대기|"></th:block>
 												<th:block th:if="${returnDtl.chgStat == 'G685_33'}" th:text="|환불진행중|"></th:block>
 												<th:block th:if="${returnDtl.chgStat == 'G685_69'}" th:text="|접수취소|"></th:block>
-												<th:block th:unless="${returnDtl.chgStat == 'G685_33' or returnDtl.chgStat == 'G685_69'}" th:text="${returnDtl.chgStatNm}"></th:block>
+												<th:block th:unless="${returnDtl.chgStat == 'G685_51' or returnDtl.chgStat == 'G685_33' or returnDtl.chgStat == 'G685_69'}" th:text="${returnDtl.chgStatNm}"></th:block>
 												<span class="date" th:text="${returnDtl.chgDate}"></span>
 												<span class="time" th:text="${returnDtl.chgTime}"></span>
 											</p>

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

@@ -208,7 +208,7 @@
 					tmtbHtml += '		<td><span class="tag deepgray">차감</span></td>';
 				}
 				tmtbHtml += '<td>';
-				tmtbHtml += '<div class="txt_content">'	+ useGiftcard.goodsNm + '</div>';
+				tmtbHtml += '<div class="txt_content" style="padding-left:40px; text-align:left;">'	+ useGiftcard.goodsNm + '</div>';
 				tmtbHtml += '</td>';
 				if(useGiftcard.gfcdAmt<0){
 					tmtbHtml += '<td><span class="amount_minus"> <em>'

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

@@ -397,9 +397,6 @@
 				chkQty += chgQty;
 			}
 		});
-		
-		console.log(ordDtlNoArr);
-		console.log(cnclRtnReqQtyArr);
 
 		// 반품 수량 체크
 		if (chkQty == 0) {

+ 8 - 6
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewDetailFormWeb.html

@@ -95,21 +95,23 @@
 				tag +='			<div class="response_box">\n';
 				tag +='				<div class="full">\n';
 				tag +='					<dl>\n';
-				if (review.goodsOptionList != null && review.goodsOptionList.length > 0){
-					$.each(review.goodsOptionList, function(aIdx, reviewGoods){
 				tag +='						<div>\n';
 				tag +='							<dt>구매옵션</dt>\n';
-				tag +='							<dd>'+ reviewGoods.optCd1Nm +' / '+ reviewGoods.optCd2+'</dd>\n';
-				tag +='						</div>\n';
-					});		
+				if (review.goodsOptionList != null && review.goodsOptionList.length > 0){
+					tag +='							<dd>\n';	
+						$.each(review.goodsOptionList, function(aIdx, reviewGoods){
+					tag +='							<p><span>'+ reviewGoods.optCd1Nm +'</span> / <span>'+ reviewGoods.optCd2+'</span></p>\n';
+						});		
+					tag +='							<dd>\n';	
 				}
+				tag +='						</div>\n';
 				tag +='					</dl>\n';
 				tag +='				</div>\n';
 				tag +='				<div class="full">\n';
 				tag +='					<dl>\n';
 				tag +='						<div>\n';
 				tag +='							<dt>키/몸무게</dt>\n';
-				tag +='							<dd>'+review.height+' / '+review.weight +' \n';
+				tag +='							<dd>'+review.height+'cm / '+review.weight +'kg \n';
 				tag +='							</dd>\n';
 				tag +='						</div>\n';
 				tag +='					</dl>\n';

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

@@ -89,10 +89,11 @@
 										</div>
 										<div class="status_box">
 											<p>
+												<th:block th:if="${exchangeDtl.chgStat == 'G685_21'}" th:text="|결제대기|"></th:block>
 												<th:block th:if="${exchangeDtl.chgStat == 'G685_40' && (exchangeDtl.ordDtlStat == 'G013_20' or exchangeDtl.ordDtlStat == 'G013_30' or exchangeDtl.ordDtlStat == 'G013_35' or exchangeDtl.ordDtlStat == 'G013_40' or exchangeDtl.ordDtlStat == 'G013_50')}" th:text="|교환진행중|"></th:block>
 												<th:block th:if="${exchangeDtl.chgStat == 'G685_40' && (exchangeDtl.ordDtlStat == 'G013_60' or exchangeDtl.ordDtlStat == 'G013_70')}" th:text="|교환완료|"></th:block>
 												<th:block th:if="${exchangeDtl.chgStat == 'G685_49'}" th:text="|접수취소|"></th:block>
-												<th:block th:unless="${exchangeDtl.chgStat == 'G685_40' or exchangeDtl.chgStat == 'G685_49'}" th:text="${exchangeDtl.chgStatNm}"></th:block>
+												<th:block th:unless="${exchangeDtl.chgStat == 'G685_21' or exchangeDtl.chgStat == 'G685_40' or exchangeDtl.chgStat == 'G685_49'}" th:text="${exchangeDtl.chgStatNm}"></th:block>
 												<span class="date" th:text="${exchangeDtl.chgDate}"></span>
 												<span class="time" th:text="${exchangeDtl.chgTime}"></span>
 											</p>
@@ -103,7 +104,7 @@
 										</div>
 									</div>
 									<!-- 교환결제대기 -->
-									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${exchangeDtl.addPayCost}|원 결제 후 교환 가능합니다."></p></div>
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${exchangeDtl.addPayCost}원 결제 후 교환 가능합니다.|"></p></div>
 									<!-- 교환접수 -->
 									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_20'}"><p>교환 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>
 									<!-- 회수요청 -->

+ 2 - 0
src/main/webapp/WEB-INF/views/web/mypage/NoMemberCreListFormWeb.html

@@ -438,6 +438,8 @@
 						});
 					} else if (cre.chgStat == 'G685_33') {
 						tag += '												환불진행중\n';
+					} else if (cre.chgStat == 'G685_21' || cre.chgStat == 'G685_51') {
+						tag += '												결제대기\n';
 					} else if (cre.chgStat == 'G685_49' || cre.chgStat == 'G685_69') {
 						tag += '												접수취소\n';
 					} else {

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

@@ -82,9 +82,10 @@
 										</div>
 										<div class="status_box">
 											<p>
+												<th:block th:if="${returnDtl.chgStat == 'G685_51'}" th:text="|결제대기|"></th:block>
 												<th:block th:if="${returnDtl.chgStat == 'G685_33'}" th:text="|환불진행중|"></th:block>
 												<th:block th:if="${returnDtl.chgStat == 'G685_69'}" th:text="|접수취소|"></th:block>
-												<th:block th:unless="${returnDtl.chgStat == 'G685_33' or returnDtl.chgStat == 'G685_69'}" th:text="${returnDtl.chgStatNm}"></th:block>
+												<th:block th:unless="${returnDtl.chgStat == 'G685_51' or returnDtl.chgStat == 'G685_33' or returnDtl.chgStat == 'G685_69'}" th:text="${returnDtl.chgStatNm}"></th:block>
 												<span class="date" th:text="${returnDtl.chgDate}"></span>
 												<span class="time" th:text="${returnDtl.chgTime}"></span>
 											</p>

+ 13 - 17
src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb.html

@@ -227,28 +227,24 @@
 												</div>
 												<!-- 신용카드 일때 -->
 												<div>
-													<dt>결제방법</dt>
+													<dt class="sr-only">결제방법</dt>
 													<dd th:if="${orderInfo.pgGb == 'NAVER'}">네이버 페이</dd>
 													<dd th:if="${orderInfo.pgGb == 'KAKAO'}">카카오 페이</dd>
 													<dd th:if="${orderInfo.pgGb == 'PAYCO'}">PAYCO</dd>
-													<dd th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_10'}">실시간계좌이체</dd>
-													<dd th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_20'}">무통장입금</dd>
+													<dd th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_10'}">
+														실시간계좌이체
+														<th:blcok th:if="${orderInfo.cashAuthNo} != null and ${orderInfo.cashAuthNo} != ''">
+														(현금영수증신청)
+														</th:blcok>
+													</dd>
+													<dd th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_20'}">
+														무통장입금
+														<th:blcok th:if="${orderInfo.cashAuthNo} != null and ${orderInfo.cashAuthNo} != ''">
+														(현금영수증신청)
+														</th:blcok>
+													</dd>
 													<dd th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_30'}" th:text="|${orderInfo.cardNm}/${orderInfo.cardMips}|"></dd>
 													<dd th:if="${orderInfo.pgGb == 'KCP' and orderInfo.payMeans == 'G014_60'}">휴대폰결제</dd>
-																										
-													<!-- kcp 신용카드
-													<th:block th:if="${orderInfo.payMeans} == 'G014_30'">
-														<th:block th:if="${orderInfo.cardType} == 'Y'">
-															<dd th:text="|체크카드(${orderInfo.cardNm})/${orderInfo.cardMips}|"></dd>
-														</th:block>
-														<th:block th:if="${orderInfo.cardType} == 'N'">
-															<dd th:text="|신용카드(${orderInfo.cardNm})/${orderInfo.cardMips}|"></dd>
-														</th:block>
-													</th:block>
-													<th:block th:if="${orderInfo.payMeans} != 'G014_30'">
-														<dd th:text="${orderInfo.payType}"></dd>
-													</th:block>
-													-->
 												</div>
 												<!-- //신용카드 일때 -->
 											</dl>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/order/OrderCouponApplyPopWeb.html

@@ -5,7 +5,7 @@
 	<div class="modal-dialog" role="document">
 		<div class="modal-content">
 			<div class="modal-header">
-				<h5 class="modal-title" id="couponModifyLabel">할인쿠폰 변</h5>
+				<h5 class="modal-title" id="couponModifyLabel">할인쿠폰 변</h5>
 			</div>
 			<div class="modal-body">
 				<div class="pop_cont">

+ 24 - 21
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -32,7 +32,7 @@
 <!-- 주문금액정보표현 -->
 <form id="orderAmtForm" name="orderAmtForm">
 	<!-- 주문자정보 -->
-	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderInfo" id="orderInfo">
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderInfo">
 		<tbody>
 			<tr style="height:30px;">
 				<th>custNm</th>
@@ -82,7 +82,7 @@
 	<!-- //사은품정보 -->
 	
 	<!-- 주문상세금액 -->
-	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderDetailInfo" id="orderDetailInfo">
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none; width:100%;" name="orderDetailInfo">
 		<tr style="height:30px;">
 			<th>cartSq</th>
 			<th style="display:none">goodsNm</th>
@@ -175,7 +175,7 @@
 	<!-- //주문상세금액 -->
 	
 	<!-- 배송단위목록 -->
-	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none; width:100%;" name="delvFeeCdInfo" id="delvFeeCdInfo">
+	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none; width:100%;" name="delvFeeCdInfo">
 		<tr style="height:30px;">
 			<th>supplyCompCd</th>
 			<th>delvFeeCd</th>
@@ -185,9 +185,9 @@
 		</tr>
 		<th:block th:each="delvFeeCd, index : ${delvFeeCdList}">
 			<tr style="height:30px;">
-				<td class="supplyCompCd" th:text="${delvFeeCd.supplyCompCd}"></td>
-				<td class="delvFeeCd" th:text="${delvFeeCd.delvFeeCd}"></td>
-				<td class="delvFee" th:text="${delvFeeCd.delvFee}"></td>
+				<td class="supplyCompCd" 	th:text="${delvFeeCd.supplyCompCd}"></td>
+				<td class="delvFeeCd" 		th:text="${delvFeeCd.delvFeeCd}"></td>
+				<td class="delvFee" 		th:text="${delvFeeCd.delvFee}"></td>
 				<td class="delvCpnSq">0</td>
 				<td class="delvCpnDcAmt">0</td>
 			</tr>
@@ -348,7 +348,6 @@
 													</tr>
 												</tbody>
 											</table>
-											개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.
 										</div>
 									</div>
 									<!-- 
@@ -448,13 +447,6 @@
 									</div>
 								</th:block>
 							</dl>
-							<!-- 비회원인경우 노출 
-							<th:blcok th:if="!${isLogin}">
-								<div class="t_info">
-									<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_CUSTOMER_JOIN_TYPE);" title="회원가입 하여 할인받기" class="btn_link">회원가입 하여 할인받기</a>
-								</div>
-							</th:blcok>
-							-->
 						</div>
 						<div class="totalprice_box">
 							<dl>
@@ -539,6 +531,7 @@ var foreignBuyYn		= [[${order.foreignBuyYn}]];	// 해외구매대행
 var foreignBuyYn		= [[${foreignBuyYn}]];			// 해외구매대행여부
 var orderMadeYn			= [[${orderMadeYn}]];			// 주문제작상품여부
 var isLogin				= [[${isLogin}]];				// 로그인여부
+var devTempYn			= [[${devTempYn}]];				// 개발자모드가능여부
 
 var custCpnSq 			= 0;
 var cpnIndex			= 0;
@@ -574,6 +567,7 @@ $(document).ready( function() {
 		, "foreignBuyYn"	: foreignBuyYn
 		, "orderMadeYn"		: orderMadeYn
 		, "custDelvAddrSq"	: 0
+		, "cartGoodsList"	: cartGoodsList
 	}
 	
 	jsonData = JSON.stringify(jsonObj);
@@ -590,7 +584,8 @@ $(document).ready( function() {
 	arr[3] = "delvFeeCdInfo";
 	arr[4] = "orderSumAmtInfo";
 	
-	if (devTemp) {
+	// 개발자모드실행
+	if (devTemp == true && devTempYn == true) {
 		$("table").each(function(){
 			var name = $(this).attr("name");
 			for (i=0 ; i<arr.length ; i++) {
@@ -773,7 +768,11 @@ var fnGetDailyDeliveryCheck = function (temp) {
 				}
 
 				// json 값 설정
-				var orderListObj 		= {"cartSqArr":cartSqArr, "shotDelvYn":tempShotDelvYn};
+				var orderListObj 		= {
+					"cartSqArr"			: cartSqArr
+					, "shotDelvYn"		: tempShotDelvYn 
+					, "cartGoodsList"	: cartGoodsList
+				};
 				var orderListJsonData 	= JSON.stringify(orderListObj);
 				
 				if (temp) {
@@ -888,6 +887,9 @@ var freegiftInfoSet = function() {
 						mcxDialog.alert("적용된 할인/혜택이 초기화 됩니다.");
 						pntDcAmtReset();
 					}
+					
+					// 2021.05.07 금액계산실행
+					custCpnSumAmtCal();
 				});
 				
 				// 2021.04.29 무료사은품 기본선택
@@ -1076,7 +1078,7 @@ var paymentInfoSet = function() {
 							return false;
 						}
 					}
-					
+										
 					// 사은품지급할 경우 체크 2020.04.29 사은품지급이 필수가 아닙니다.
 					if ($("#orderAmtForm .freegiftValArr").text().length > 0) {
 						if (!$("#orderForm #chk-agree_gift").is(":checked")) {
@@ -1225,6 +1227,7 @@ var paymentInfoSet = function() {
 						,"freegiftUsePointArr"	: freegiftUsePointArr
 						,"giftMsg"				: ""
 						,"custPayMeans"			: custPayMeans
+						,"cartSqArr"			: cartSqArr
 					};
 					
 					$.ajax( {
@@ -1475,7 +1478,7 @@ var dcAmtInfoSet = function() {
 					}
 					
 					// 2021.04.23 추가
-					mcxDialog.alert("총 " + getZeroMinusDelAmt(pntDcAmt) + " P를 차감 결제 합니다.");
+					mcxDialog.alert("총 " + getZeroMinusDelAmt(pntDcAmt) + " P를 차감 결제 합니다.");
 					
 					// 포인트 적용
 					$("#orderAmtForm .pntDcSumAmt").text(pntDcAmt);
@@ -1539,7 +1542,7 @@ var dcAmtInfoSet = function() {
 					}
 					
 					// 2021.04.23 추가
-					mcxDialog.alert("총 " + gfcdUseAmt.addComma() + " 원를 상품권 금액에서 차감 결제 합니다.”");
+					mcxDialog.alert("총 " + gfcdUseAmt.addComma() + " 원을 상품권 금액에서 차감 결제 합니다.");
 					
 					// 상품권 적용
 					$("#orderAmtForm .gfcdUseSumAmt").text(gfcdUseAmt);
@@ -2259,7 +2262,7 @@ var custCpnSumAmtCal = function() {
 	var freegiftValArr 			= [];
 	var freegiftUsePointArr 	= [];
 		
-	$(".gift_box").each(function(){
+	$("#orderForm .gift_box").each(function(){
 		$(this).find(".freegiftRdo").each(function(){
 			// 사은품필수
 			if ($(this).attr("allYn") == "Y" ) {
@@ -2278,7 +2281,7 @@ var custCpnSumAmtCal = function() {
 		});
 	});
 	
-	$("#orderAmtForm .freegiftValArr").text(freegiftValArr);				// 사은품시퀀스배열
+	$("#orderAmtForm .freegiftValArr").text(freegiftValArr);			// 사은품시퀀스배열
 	$("#orderAmtForm .freegiftUsePointArr").text(freegiftUsePointArr);	// 사은품사용포인트배열
 };
 

+ 5 - 3
src/main/webapp/WEB-INF/views/web/order/OrderFreegiftInfoWeb.html

@@ -34,12 +34,14 @@
 		<th:block th:each="freegift, i : ${freegiftList}">
 			<div class="gift_box">
 				<p class="txt">
+					
 					<th:block th:if="${freegift.allYn} == 'Y'">
-						<span th:text="'사은품필수' + ${i.count} + ' ' + ${freegift.freegiftNm}"></span>
+						<span th:text="'사은품필수' + ${i.count}"></span>
 					</th:block>
 					<th:block th:if="${freegift.allYn} == 'N'">
-						<span th:text="'사은품선택' + ${i.count} + ' ' + ${freegift.freegiftNm}"></span>
+						<span th:text="'사은품선택' + ${i.count}"></span>
 					</th:block>
+					<th:block th:text="${freegift.freegiftNm}"></th:block>
 				</p>
 				<div class="form_field">
 					<!-- 전체지급 사음품(필수) -->
@@ -48,7 +50,7 @@
 							<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
 								<div class="gift">
 									<input type="hidden" th:name="'rdi-gift'+${i.count}" th:id="'rdi-gift'+${i.count}+${k.count}" class="chk_img freegiftRdo" th:value="${freegiftGoods.freegiftValSq}" usepoint="0" allYn="Y">
-									<input type="checkbox" name="chk-gift-required" id="chk-gift-required1" class="chk_img" value="" checked="" onclick="return(false);">
+									<input type="checkbox" name="chk-gift-required" th:id="'chk-gift-required'+${i.count}+${k.count}" class="chk_img" value="" checked="" onclick="return(false);">
 									<label for="rdi-gift'+${i.count}+${k.count}">
 										<span class="thumb"><img src="http://ts5000.ipdisk.co.kr:89/images/pc/thumb/tmp_gift1.jpg" width="" alt=""></span>
 										<span class="name" th:text="${freegiftGoods.goodsNm}"></span>

+ 11 - 9
src/main/webapp/WEB-INF/views/web/order/OrderPaymentInfoWeb.html

@@ -77,16 +77,18 @@
 				</ul>
 			</div>
 		</div>
-		<div class="form_field">
-			<div class="agree_paymethod">
-				<input id="chk-agree_paymethod" type="checkbox">
-				<label for="chk-agree_paymethod">
-					 <span>선택한 결제수단으로 향후 결제 이용에 동의합니다.&nbsp;&nbsp;
-						<em class="tmark_optional">(선택)</em>
-					</span>
-				</label>
+		<th:blcok th:if="${isLogin}">
+			<div class="form_field">
+				<div class="agree_paymethod">
+					<input id="chk-agree_paymethod" type="checkbox">
+					<label for="chk-agree_paymethod">
+						 <span>선택한 결제수단으로 향후 결제 이용에 동의합니다.&nbsp;&nbsp;
+							<em class="tmark_optional">(선택)</em>
+						</span>
+					</label>
+				</div>
 			</div>
-		</div>
+		</th:blcok>
 		<div class="form_field">
 			<div class="agree_insurance">
 				<input id="chk-insurance" type="checkbox" name="insuranceYn"> 

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

@@ -157,6 +157,7 @@
                     <div>
                         <h4 th:if="${planInfo.planGb == 'P'}">다른 기획전 보기</h4>
                         <h4 th:if="${planInfo.planGb == 'E'}">다른 이벤트 보기</h4>
+                        <h4 th:if="${planInfo.planGb == 'C'}">다른 이벤트 보기</h4>
                         <a href="javascript:void(0);" th:if="${planInfo.planGb == 'P'}" onclick="cfnGoToPage(_PAGE_PLANNING_MAIN);">전체보기</a>
                         <a href="javascript:void(0);" th:if="${planInfo.planGb == 'E'}" onclick="cfnGoToPage(_PAGE_EVENT_MAIN);">전체보기</a>
                     </div>
@@ -227,7 +228,6 @@
 	<!-- //댓글 이미지 팝업 -->	    
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
-
 let review = [[${reviewInfo}]];
 let coupon = [[${couponInfo}]];
 let plan = [[${planInfo}]];
@@ -266,69 +266,71 @@ if(planCornerList.length>0){
 		html += '             </div>';
 		html += '             <div class="itemsGrp">';
 		$.each(planCornerGoodsList, function(idx2, item2)  {
-			html += '                 <div class="item_prod">';
-			html += '                     <div class="item_state">';
-			html += '		<button type="button" class="itemLike';
-			if(item2.likeIt == 'likeit'){
-				html += ' likeit';
-			}
-			html += ' "';
-			html += ' onClick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
-			
-			html += '                         <a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')" class="itemLink">';
-			html += '                             <div class="itemPic">';
-			html += '                                 <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ goodsView +'/'+item2.sysImgNm +'">';
-			html += '                             </div>';
-			html += '                             <p class="itemBrand">'+item2.brandGroupNm+'</p>';
-			html += '                             <div class="itemName">'+item2.goodsNm+'</div>';
-			html += '                             <p class="itemPrice">'+item2.currPrice.addComma();
-			if (item2.currPrice != item2.listPrice) {
-				html += '                                 <span class="itemPrice_original">'+item2.listPrice.addComma()+'</span>';
-			}
-			if (item2.dcRate != 0) {
-				html += '                                 <span class=" itemPercent">'+item2.dcRate.addComma()+'%</span>';
-			}
-			
-			
-			html += '                             </p>';
-			html += '                             <div class="itemcolorchip">';
-			if(!gagajf.isNull(item2.colorChips)){
-				var colorArr = item2.colorChips.split(",");
-				var colorCd = '';
-				var rgbColor = '';
-				for(let i=0; i<colorArr.length; i++){
-					var colorInfo = colorArr[i].split(":");
-					colorCd = colorInfo[0];
-					rgbColor = colorInfo[1];
-					if(rgbColor=='#FFFFFF'){
-						html += '	<span class="chip_color" style="background-color: '+rgbColor+';border:1px solid #aaa;" value="'+colorCd+'">'+colorCd+'</span>';
-					}else{
-						html += '	<span class="chip_color" style="background-color: '+rgbColor+'" value="'+colorCd+'">'+colorCd+'</span>';
+			if (item2.cornerNm == item.cornerNm) {
+				html += '                 <div class="item_prod">';
+				html += '                     <div class="item_state">';
+				html += '		<button type="button" class="itemLike';
+				if(item2.likeIt == 'likeit'){
+					html += ' likeit';
+				}
+				html += ' "';
+				html += ' onClick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
+				
+				html += '                         <a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')" class="itemLink">';
+				html += '                             <div class="itemPic">';
+				html += '                                 <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ goodsView +'/'+item2.sysImgNm +'">';
+				html += '                             </div>';
+				html += '                             <p class="itemBrand">'+item2.brandGroupNm+'</p>';
+				html += '                             <div class="itemName">'+item2.goodsNm+'</div>';
+				html += '                             <p class="itemPrice">'+item2.currPrice.addComma();
+				if (item2.currPrice != item2.listPrice) {
+					html += '                                 <span class="itemPrice_original">'+item2.listPrice.addComma()+'</span>';
+				}
+				if (item2.dcRate != 0) {
+					html += '                                 <span class=" itemPercent">'+item2.dcRate.addComma()+'%</span>';
+				}
+				
+				
+				html += '                             </p>';
+				html += '                             <div class="itemcolorchip">';
+				if(!gagajf.isNull(item2.colorChips)){
+					var colorArr = item2.colorChips.split(",");
+					var colorCd = '';
+					var rgbColor = '';
+					for(let i=0; i<colorArr.length; i++){
+						var colorInfo = colorArr[i].split(":");
+						colorCd = colorInfo[0];
+						rgbColor = colorInfo[1];
+						if(rgbColor=='#FFFFFF'){
+							html += '	<span class="chip_color" style="background-color: '+rgbColor+';border:1px solid #aaa;" value="'+colorCd+'">'+colorCd+'</span>';
+						}else{
+							html += '	<span class="chip_color" style="background-color: '+rgbColor+'" value="'+colorCd+'">'+colorCd+'</span>';
+						}
 					}
 				}
-			}
-			html += '                             </div>';
-			if(!gagajf.isNull(item2.icon)){
-				var iconArr = item2.icon.split(",");
-				var iconGb = '';
-				var iconNm = '';
-				html += '	<p class="itemBadge">';
-				for(let i=0; i<iconArr.length; i++){
-					var iconInfo = iconArr[i].split(":");
-					iconGb = iconInfo[0];
-					iconNm = iconInfo[1];
-					html += '	<span class="badge13" value="'+iconGb+'">'+iconNm+' </span>';
+				html += '                             </div>';
+				if(!gagajf.isNull(item2.icon)){
+					var iconArr = item2.icon.split(",");
+					var iconGb = '';
+					var iconNm = '';
+					html += '	<p class="itemBadge">';
+					for(let i=0; i<iconArr.length; i++){
+						var iconInfo = iconArr[i].split(":");
+						iconGb = iconInfo[0];
+						iconNm = iconInfo[1];
+						html += '	<span class="badge13" value="'+iconGb+'">'+iconNm+' </span>';
+					}
+					html += '	</p>';
 				}
-				html += '	</p>';
-			}
-			if(item2.goodsTnm != null){
-				html += '			<div class="itemComment">'+item2.goodsTnm+'</div>';
+				if(item2.goodsTnm != null){
+					html += '			<div class="itemComment">'+item2.goodsTnm+'</div>';
+				}
+				html += '                         </a>';
+				html += '                     </div>';
+				html += '                 </div>';
 			}
-			html += '                         </a>';
-			html += '                     </div>';
-			html += '                 </div>';
+			
 		})
-
 		html += '             </div>';
 		html += '         </div>';
 	})
@@ -948,6 +950,7 @@ var fnReplySave = function() {
 			ajaxReplyList();	
 			$('#replyText').val('');
 			$('.pics').remove();
+			$('.fileAdd').show();
 			//댓글 작성시 글자 카운트
 			$('#cmt_cnt').text(0);
 			});
@@ -1112,7 +1115,7 @@ $(document).ready( function() {
 			$("#replyText").val('');
 			return false;
 		}
-		
+		var imgFiles=$('.imgUpload .pics');
 		var maxFileLength = 10; /* 최대 파일 갯수를 입력해 주세요 */
 		if (imgFiles.length >= maxFileLength) {
 			mcxDialog.alert('이미지는 최대' + maxFileLength +'장 까지 첨부 가능합니다.');

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

@@ -139,12 +139,12 @@
 							<div class="benefit_con">
 							<ul>
 								 <th:block th:each="a, benefitStat : ${benefitList}">
-								<li th:if="${a.benefitGb == 'P'}">
+								<li th:if="${a.benefitGb == 'P' or ( a.basDays > 0 and a.dcVal > 0)}">
 									<div class="benfit_point">
 										<span th:text="${a.basDays}"></span>일 출석 시 <span class="c_primary"><em th:text="${a.pntAmt}"></em>P</span>
 									</div>
 								</li>
-								<li th:if="${a.benefitGb == 'C'}">
+								<li th:if="${a.benefitGb == 'C'  or ( a.basDays > 0 and a.dcVal > 0)}">
 									<div class="benfit_coupon">
 										<th:block th:if="${a.dcWay == '%'}">
 										<span th:text="${a.basDays}"></span>일 출석 시 <span class="c_primary"><em th:text="${a.dcVal}"></em>%</span><strong> 할인 쿠폰</strong>
@@ -154,7 +154,7 @@
 										</th:block>
 									</div>
 								</li>
-								<li th:if="${a.benefitGb == 'A'}">
+								<li th:if="${a.benefitGb == 'A'  or ( a.basDays > 0 and a.dcVal > 0)}">
 									<div class="benfit_coupon">
 									<th:block th:if="${a.dcWay == '%'}">
 										<span th:text="${a.basDays}"></span>일 출석 시<br><span class="c_primary"><em th:text="${a.pntAmt}"></em>P</span> + <span class="c_primary"><em th:text="${a.dcVal}"></em>%</span> <strong>할인 쿠폰</strong>
@@ -199,7 +199,7 @@
                 <div class="cont_head">
                     <div>
                         <h4>다른 이벤트 보기</h4>
-                        <a href="javascript:void(0);" th:if="${planInfo.planGb == 'E'}" onclick="cfnGoToPage(_PAGE_EVENT_MAIN);">전체보기</a>
+                        <a href="javascript:void(0);" th:if="${planInfo.planGb == 'C'}" onclick="cfnGoToPage(_PAGE_EVENT_MAIN);">전체보기</a>
                     </div>
                 </div>
                 <div class="cont_body">

+ 69 - 63
src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html

@@ -35,7 +35,7 @@
 				</div>
 				<div class="cont_body">
 				    <div class="bulletship">
-						<div class="bulletship_head">
+						<div class="bulletship_head" th:utext="${#strings.replace(#strings.replace(shotHtmlTop.fsrcPc,'&amplt;','<'),'&ampgt;','>')}">
                             <img src="/images/pc/thumb/bullet_bg1.png" alt="10시까지 주문하면 당일도착">
                         </div>
                         <div class="bulletship_body" id="shotHtml">
@@ -50,8 +50,13 @@
                             </div> -->
                             		<!-- 비로그인 상태 or 로그인을 했지만 주소정보를 못 가져오는 경우 -->                      
                         </div>
-                        <div class="bulletship_foot"><div class="bulletship_foot"><br></div></div><div class="bulletship_foot"><br></div><div class="bulletship_foot">
-                            <img src="/images/pc/thumb/bullet_bg2.png" alt="주문/도착, 배송일, 대상상품">
+                        <div class="bulletship_foot">
+                        	<div class="bulletship_foot"><br></div>
+                        </div>
+                        <div class="bulletship_foot"><br>
+                        </div>
+                        <div class="bulletship_foot" th:utext="${#strings.replace(#strings.replace(shotHtmlBtm.fsrcPc,'&amplt;','<'),'&ampgt;','>')}">
+                           <!--  <img src="/images/pc/thumb/bullet_bg2.png" alt="주문/도착, 배송일, 대상상품"> -->
                         </div>
                     </div> 
                 </div>
@@ -166,69 +171,70 @@ if(planCornerList.length>0){
 		html += '             </div>';
 		html += '             <div class="itemsGrp">';
 		$.each(planCornerGoodsList, function(idx2, item2)  {
-			html += '                 <div class="item_prod">';
-			html += '                     <div class="item_state">';
-			if(item2.likeIt === 'likeit'){
-			html += '		<button type="button" class="itemLike likeit active"';
-			}else{
-				html += '		<button type="button" class="itemLike"';
-			}
-			html += ' onClick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
-			
-			html += '                         <a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')" class="itemLink">';
-			html += '                             <div class="itemPic">';
-			html += '                                 <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ goodsView +'/'+item2.sysImgNm +'">';
-			html += '                             </div>';
-			html += '                             <p class="itemBrand">'+item2.brandGroupNm+'</p>';
-			html += '                             <div class="itemName">'+item2.goodsNm+'</div>';
-			html += '                             <p class="itemPrice">'+item2.currPrice.addComma();
-			if (item2.currPrice != item2.listPrice) {
-				html += '                                 <span class="itemPrice_original">'+item2.listPrice.addComma()+'</span>';
-			}
-			if (item2.dcRate != 0) {
-				html += '                                 <span class=" itemPercent">'+item2.dcRate.addComma()+'%</span>';
-			}
-			
-			
-			html += '                             </p>';
-			html += '                             <div class="itemcolorchip">';
-			if(!gagajf.isNull(item2.colorChips)){
-				var colorArr = item2.colorChips.split(",");
-				var colorCd = '';
-				var rgbColor = '';
-				for(let i=0; i<colorArr.length; i++){
-					var colorInfo = colorArr[i].split(":");
-					colorCd = colorInfo[0];
-					rgbColor = colorInfo[1];
-					if(rgbColor=='#FFFFFF'){
-						html += '	<span class="chip_color" style="background-color: '+rgbColor+';border:1px solid #aaa;" value="'+colorCd+'">'+colorCd+'</span>';
-					}else{
-						html += '	<span class="chip_color" style="background-color: '+rgbColor+'" value="'+colorCd+'">'+colorCd+'</span>';
+			if (item2.cornerNm == item.cornerNm) {
+				html += '                 <div class="item_prod">';
+				html += '                     <div class="item_state">';
+				if(item2.likeIt === 'likeit'){
+				html += '		<button type="button" class="itemLike likeit active"';
+				}else{
+					html += '		<button type="button" class="itemLike"';
+				}
+				html += ' onClick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
+				
+				html += '                         <a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')" class="itemLink">';
+				html += '                             <div class="itemPic">';
+				html += '                                 <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ goodsView +'/'+item2.sysImgNm +'">';
+				html += '                             </div>';
+				html += '                             <p class="itemBrand">'+item2.brandGroupNm+'</p>';
+				html += '                             <div class="itemName">'+item2.goodsNm+'</div>';
+				html += '                             <p class="itemPrice">'+item2.currPrice.addComma();
+				if (item2.currPrice != item2.listPrice) {
+					html += '                                 <span class="itemPrice_original">'+item2.listPrice.addComma()+'</span>';
+				}
+				if (item2.dcRate != 0) {
+					html += '                                 <span class=" itemPercent">'+item2.dcRate.addComma()+'%</span>';
+				}
+				
+				
+				html += '                             </p>';
+				html += '                             <div class="itemcolorchip">';
+				if(!gagajf.isNull(item2.colorChips)){
+					var colorArr = item2.colorChips.split(",");
+					var colorCd = '';
+					var rgbColor = '';
+					for(let i=0; i<colorArr.length; i++){
+						var colorInfo = colorArr[i].split(":");
+						colorCd = colorInfo[0];
+						rgbColor = colorInfo[1];
+						if(rgbColor=='#FFFFFF'){
+							html += '	<span class="chip_color" style="background-color: '+rgbColor+';border:1px solid #aaa;" value="'+colorCd+'">'+colorCd+'</span>';
+						}else{
+							html += '	<span class="chip_color" style="background-color: '+rgbColor+'" value="'+colorCd+'">'+colorCd+'</span>';
+						}
 					}
 				}
-			}
-			html += '                             </div>';
-			if(!gagajf.isNull(item2.icon)){
-				var iconArr = item2.icon.split(",");
-				var iconGb = '';
-				var iconNm = '';
-				html += '	<p class="itemBadge">';
-				for(let i=0; i<iconArr.length; i++){
-					var iconInfo = iconArr[i].split(":");
-					iconGb = iconInfo[0];
-					iconNm = iconInfo[1];
-					html += '	<span class="badge13" value="'+iconGb+'">'+iconNm+' </span>';
+				html += '                             </div>';
+				if(!gagajf.isNull(item2.icon)){
+					var iconArr = item2.icon.split(",");
+					var iconGb = '';
+					var iconNm = '';
+					html += '	<p class="itemBadge">';
+					for(let i=0; i<iconArr.length; i++){
+						var iconInfo = iconArr[i].split(":");
+						iconGb = iconInfo[0];
+						iconNm = iconInfo[1];
+						html += '	<span class="badge13" value="'+iconGb+'">'+iconNm+' </span>';
+					}
+					html += '	</p>';
 				}
-				html += '	</p>';
-			}
-			if(item2.goodsTnm != null){
-				html += '			<div class="itemComment">'+item2.goodsTnm+'</div>';
+				if(item2.goodsTnm != null){
+					html += '			<div class="itemComment">'+item2.goodsTnm+'</div>';
+				}
+				html += '                         </a>';
+				html += '                     </div>';
+				html += '                 </div>';
 			}
-			html += '                         </a>';
-			html += '                     </div>';
-			html += '                 </div>';
 		})
-
 		html += '             </div>';
 		html += '         </div>';
 	})
@@ -242,7 +248,7 @@ if(planCornerList.length>0){
 }
 
 var shotBody = function () {
-	if (!cfCheckLogin() || (custAddr == null && custAddr == '')) {
+	if (!cfCheckLogin() || (custAddr == null || custAddr == '')) {
 		html = '';
 		html += '<div class="txt_result">                                                                              ';
 		html += '     <p>오전10시 이전 주문 당일도착</p>                                                                         ';
@@ -288,7 +294,7 @@ var fnOpenDaumAddr = function() {
 						success 	: function(result) {
 							if (result != null) {
 								$('#addr').text(cfnGetDaumRoadAddr(data));
-								if(result.shotDelvUseYn == "Y"){
+								if(result.shotYn.shotDelvUseYn == "Y"){
 									$('#shotAdr').text("총알배송");
 									$("#infoTxt").text("오늘 오전 10시까지 주문하시면 오늘 도착합니다. (토, 일, 공휴일 휴무)")
 									

+ 3 - 3
src/main/webapp/WEB-INF/views/web/popup/DelvAddrModifyPopWeb.html

@@ -11,12 +11,12 @@
 				<div class="default_addrs">
 					<div class="form_field">
 						<th:block th:if="${deliveryAddrInfo.defaultYn} == 'Y'">
-							<input id="chk-default-addrs" type="checkbox" name="defaultYn" checked>
+							<input id="chk-default-addrs1" type="checkbox" name="defaultYn" checked>
 						</th:block>
 						<th:block th:if="${deliveryAddrInfo.defaultYn} == 'N'">
-							<input id="chk-default-addrs" type="checkbox" name="defaultYn">
+							<input id="chk-default-addrs1" type="checkbox" name="defaultYn">
 						</th:block>
-						<label for="chk-default-addrs"><span>기본 배송지로 등록</span></label>
+						<label for="chk-default-addrs1"><span>기본 배송지로 등록</span></label>
 					</div>
 				</div>
 				<div class="form_field">

+ 3 - 3
src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html

@@ -37,7 +37,7 @@
 						</button>
 					</div>
 				</div>
-				<th:block th:if="${socialInfo != null}">
+			<th:block th:if="${socialInfo != null}">
 			<div class="content wide dp_hotdeal"> <!-- 페이지특정 클래스 = dp_hotdeal -->
 				<div class="cont_body">
                     <div class="hotdeal">
@@ -74,7 +74,7 @@
 	<input type="hidden" name="pageSize" value ="10"/>
 </form>
 <script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
-	<script src="/ux/plugins/jquery/jquery.history.min.js"></script>
+<script src="/ux/plugins/jquery/jquery.history.min.js"></script>
 <script th:inline="javascript">
 let socialInfo = [[${socialInfo}]];
 let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
@@ -108,7 +108,7 @@ let fnGetSocialList = function(result) {
 
 	$.each(result.dataList, function(idx, item) {
 		
-		html += ' <div class="item_prod"class="item_prod">';
+		html += ' <div class="item_prod">';
 		if (item.stockQtySum == 0) {
 			html += '    <div class="item_state sold_out"> ';
 		}else{

+ 66 - 10
src/main/webapp/biz/goods.js

@@ -175,7 +175,23 @@ var fnCreateGoodsList = function(result, ithrCd, contentLoc, goodsUrl, lastPage,
 		}
 
 		tag += '<div class="item_prod">';
-		tag += '	<div class="item_state">';
+		tag += '	<div class="item_state';
+		if(!gagajf.isNull(item.sizes)){
+			var sizeArr = item.sizes.split(",");
+			let soldOutCnt = 0;
+			for(let i=0; i<sizeArr.length; i++){
+				var sizeInfo = sizeArr[i].split(":");
+				var sizeVal = sizeInfo[0];
+				var soldOutYn = sizeInfo[1];
+				if(soldOutYn=='Y'){
+					soldOutCnt++;
+				}
+			}
+			if(sizeArr.length==soldOutCnt){
+				tag += ' soldout';
+			}
+		}
+		tag += '">';
 		tag += '		<button type="button" class="itemLike';
 		if(item.likeIt == 'likeit'){
 			tag += ' likeit';
@@ -184,8 +200,8 @@ var fnCreateGoodsList = function(result, ithrCd, contentLoc, goodsUrl, lastPage,
 		tag += ' onClick="cfnPutWishList(this);" goodsCd=\''+item.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
 		tag += '<a href="javascript:void(0);" class="itemLink" onclick="cfnGoToGoodsDetail(\''+item.goodsCd+'\');">';
 		tag += '			<div class="itemPic">';
-		if(!gagajf.isNull(item.videoVal)){
-			var videoArr = item.videoVal.split(",");
+		if(!gagajf.isNull(item.videos)){
+			var videoArr = item.videos.split(",");
 			var videoGb = '';
 			var videoUrl = '';
 			for(let i=0; i<videoArr.length; i++){
@@ -194,10 +210,10 @@ var fnCreateGoodsList = function(result, ithrCd, contentLoc, goodsUrl, lastPage,
 				videoUrl = videoInfo[1];
 			}
 			if(videoGb=='Y'){
-				tag += '<iframe id="child" class="pd_mov" src="https://www.youtube.com/embed/'+videoUrl+'"></iframe>';
+				tag += '<iframe id="pdThumbVideo" class="pd_mov" src="https://www.youtube.com/embed/'+videoUrl+'?autoplay=1&mute=1"></iframe>';
 				//tag += '<iframe id="pdThumbVideo" class="pd_mov" src="http://v.kr.kollus.com/164MyIiv?enable_initialize_focus=false&autoplay&mute&controls_activation=none" allow="fullscreen" allowFullScreen></iframe>';
 			}else{
-				tag += '<iframe id="child" class="pd_mov" src="http://v.kr.kollus.com/'+videoUrl+'?enable_initialize_focus=false&autoplay&mute&controls_activation=none" allow="fullscreen" allowFullScreen></iframe>';
+				tag += '<iframe id="pdThumbVideo" class="pd_mov" src="http://v.kr.kollus.com/'+videoUrl+'?enable_initialize_focus=false&autoplay&mute&controls_activation=none" allow="fullscreen" allowFullScreen></iframe>';
 			}
 		}
 		tag += '		<img class=" vLHTC pd_img" src="'+goodsUrl+'/'+item.sysImgNm+'" data-img="'+goodsUrl+'/'+item.sysImgNm2+'" onerror="noneImg(this)">';
@@ -233,7 +249,7 @@ var fnCreateGoodsList = function(result, ithrCd, contentLoc, goodsUrl, lastPage,
 					if(soldOutYn=='N'){
 						tag +='		<li>'+sizeVal+'</li>';
 					}else{
-						tag +='		<li className="none">'+sizeVal+'</li>';
+						tag +='		<li class="none">'+sizeVal+'</li>';
 					}
 				}
 				tag += '</ul>';
@@ -376,7 +392,6 @@ var filterSel = function (obj, gubun, staus, sizeGb){
 		$("#filterData").append(tag);
 		filterStatHtml += tag;
 	}
-
 	gagaInfiniteScroll.pageStatus.filterStatHtml = filterStatHtml;
 	fnFilterSet(gubun, sizeGb);
 }
@@ -429,6 +444,24 @@ var fnDeleteFilter = function (obj, gubun, staus, sizeGb){
 	$(obj).closest("span").remove();
 }
 
+var fnFilterSliderMove = function (min, max){
+	var $range = $(".dp .js-range-slider01, .sch_result .js-range-slider01");
+	var $inputFrom = $("#price_input_from");
+	var $inputTo = $("#price_input_to");
+	var instance;
+	
+	instance = $range.data("ionRangeSlider");
+	instance.update({
+		from: min
+	});
+	$inputFrom.val(min);
+	
+	instance.update({
+		to: max
+	});
+	$inputTo.prop("value",max);
+}
+
 var fnFilterSlider = function (gubun, min, max){
 	let tag = '';
 	let oriMin = '';
@@ -465,16 +498,17 @@ var fnFilterSlider = function (gubun, min, max){
 		tag2 += '<input type="hidden" name="priceFrom" value="'+min.replace(",", "")+'"/>\n';
 		tag2 += '<input type="hidden" name="priceTo" value="'+max.replace(",", "")+'"/>\n';
 		$("#searchGoodsForm").append(tag2);
-		filterStatHtml += tag2;
+		filterHtml += tag2;
 		fnCategoryGoodsInfiniteScrollInit();
 	}else{
 		tag2 += '<input type="hidden" name="dcRateFrom" value="'+min+'"/>\n';
 		tag2 += '<input type="hidden" name="dcRateTo" value="'+max+'"/>\n';
 		$("#searchGoodsForm").append(tag2);
 		fnCategoryGoodsInfiniteScrollInit();
-		filterStatHtml += tag2;
+		filterHtml += tag2;
 	}
-
+	
+	gagaInfiniteScroll.pageStatus.filterHtml = filterHtml;
 	gagaInfiniteScroll.pageStatus.filterStatHtml = filterStatHtml;
 	fnGoodsListSearch();
 }
@@ -522,4 +556,26 @@ var fnDeleteFilterSlider = function (obj, gubun, minVal, maxVal){
 	fnGoodsListSearch();
 }
 
+// 정렬 순서
+var fnSortingChange = function (obj, sortingType, stat){
+	if(stat != 'back'){
+		if($("#searchGoodsForm input[name=sortingType]").val()==sortingType){
+			return;
+		}
+	}
+	
+	$("#sortArea").find('li').each(function (){
+		$(this).find('a').attr('class','off');
+	});
+	
+	$(obj).addClass("on");
+	if(stat=='back'){
+		$("#sorting"+sortingType).addClass("on");
+	}
+	$("#searchGoodsForm").find("[name=sortingType]").val(sortingType);
+	gagaInfiniteScroll.pageStatus.sortingType = sortingType;
+	fnCategoryGoodsInfiniteScrollInit();
+	fnGoodsListSearch();
+}
+
 //****************상품리스트  end **********************************

+ 5 - 10
src/main/webapp/ux/mo/css/layout_m.css

@@ -369,7 +369,10 @@
 /* 슬라이드아이템*/
 .item_prod {display: inline-block;font-size: 0px;vertical-align: top;color: rgb(31, 31, 31);position: relative;letter-spacing: -0.025em;}
 .item_prod .item_state {position: relative; padding:0; box-sizing: border-box;}
-.item_prod .itemLike {position: absolute;top:1rem;right:1rem;font-size: 0px;z-index: 2;width: 1.7rem;height: 1.7rem; background: url('/images/mo/ico_like.png');background-size: 3.4rem;background-position:0px 0px;background-repeat: no-repeat;}
+.item_prod .item_state.soldout .itemPic:before {content:'SOLD OUT'; position: absolute; top: 50%; left: 50%; font-size: 2.0rem; font-weight: 500; color:#fff; background: rgba(0,0,0,.7); width: 100%; height: 100%; transform:translate(-50%, -50%); line-height: 12; z-index: 20; text-align: center;}
+.item_prod .item_state.AD .itemPic:before {content:'AD'; position: absolute; bottom: 0.666rem; right: 0.666rem; font-size: 1rem; font-weight: 300; letter-spacing: -0.025em; color:#888888; width: auto; height: auto; line-height: 1rem; z-index: 21; text-align: right;}
+
+.item_prod .itemLike {position: absolute;top:1rem;right:1rem;font-size: 0px;z-index: 19;width: 1.7rem;height: 1.7rem; background: url('/images/mo/ico_like.png');background-size: 3.4rem;background-position:0px 0px;background-repeat: no-repeat;}
 .item_prod .itemLike::before, 
 .item_prod .itemLike::after {content: "";position: absolute;top: 0px;right: 0px;width: 100%;height: 100%; background-repeat: no-repeat;background-position: right top;background-size: contain;opacity: 0;transition: opacity 200ms ease 0s;}
 .item_prod .itemLike::before {background: url('/images/mo/ico_like.png');background-size: 3.4rem;background-position:-1.7rem 0px;background-repeat: no-repeat;}
@@ -382,6 +385,7 @@
 .item_prod .itemPic {position: relative;width: 100%;margin-bottom: 1.5rem;padding-top: 150%;font-size: 0px;overflow: hidden; background-color: #fff;}
 /*.item_prod .itemPic::after {content: "";display: block;position: absolute;top: 0px;left: 0px;width: 100%;height: 100%;opacity: 0.03;background-color: rgb(0, 0, 0);}*/
 .item_prod .itemPic .pd_img {position: absolute;width: 100%;height: auto;top: 50%;left: 0px;transform: translateY(-50%);}
+.item_prod .itemPic .pd_mov {position: absolute;width: 100%;height: 100%;top: 50%;left: 0px;transform: translateY(-50%);z-index: 2;}
 .item_prod .itemBrand {display: inline-block; margin: 0px 0.5rem 0.3rem; font-size: 1rem;font-weight: 300;color: rgb(137, 137, 137); text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;width:10rem;overflow:hidden;}
 .item_prod .itemComment{margin: 0.8rem 0.5rem 0px;line-height: 1; font-size: 1.1rem;font-weight: 300;color: #fd4802;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
 .item_prod .itemName {margin: 0px 0.5rem 0.8rem; font-size: 1.1rem; font-weight:300; color: rgb(31, 31, 31); max-height: 3rem; position: relative; overflow: hidden; white-space: normal; overflow-wrap: break-word; display: block; letter-spacing: -0.025rem;}
@@ -967,15 +971,6 @@ header .subs .dp_list_btn_gnbs.on span i {transform: rotate(-180deg);-webkit-tra
 .pd_pop.Purchase_pop .btn_box button.cart{background-color:#222222;}
 .pd_pop.Purchase_pop .btn_box button.buyNow{background-color:#fd4801;}
 .pd_pop.Purchase_pop .npay_box{margin-top:2.8rem; margin-bottom:2.5rem; border-top:2px solid #222; height:7.4rem;}
-.pd_pop.Purchase_pop .npay_box .np_head{display:table; padding:1rem 0; width:100%;}
-.pd_pop.Purchase_pop .npay_box .np_head > div{display:table-cell; vertical-align:middle;}
-.pd_pop.Purchase_pop .npay_box .np_head > div:first-child{width:10rem; padding-right:2rem; box-sizing:border-box;}
-.pd_pop.Purchase_pop .npay_box .np_head > div button{background-color:#59c451; display:block; width:100%; text-align:center; height:4rem;}
-.pd_pop.Purchase_pop .npay_box .np_head > div button img{height:1.7rem;}
-.pd_pop.Purchase_pop .npay_box .np_body{padding:0.5rem 0; border-top:1px solid #e9ebed;}
-.pd_pop.Purchase_pop .npay_box .np_body > a{position:relative; display:block; font-size:1.1rem; color:#5d5d5d;}
-.pd_pop.Purchase_pop .npay_box .np_body > a em{color:#59c451; font-weight:500;}
-.pd_pop.Purchase_pop .npay_box .np_body > a:after{display:block; content:''; position:absolute; right:0; top:50%; width:0.6rem; height:1rem; background:url(/images/mo/arrow_npay.png) center center no-repeat; background-size:contain; -webkit-transform:translateY(-50%); transform:translateY(-50%);}
 .pd_pop.Purchase_pop .form_wrap .form_field{display: block; margin-bottom:1rem;}
 
 /* 토스트팝업 > 구매하기 > 옵션선택팝업 */

+ 5 - 4
src/main/webapp/ux/pc/css/common.css

@@ -762,7 +762,7 @@ content: "〉";font-size: 12px;padding-left: 8px;
 .itemsGrp.rowtype .item_prod .itemLike {left:240px; z-index:99;}
 .itemsGrp.rowtype .item_prod .itemPic {position: absolute; top: 0; left: 0; margin-bottom: 0; padding-top: 0; width: 280px; height: 420px;}
 .itemsGrp.rowtype .item_prod .itemPic .shape {z-index: 89;}
-.itemsGrp.rowtype .item_prod .itemPic::after {background: #f5f5f5; opacity:1; z-index: 87;}
+.itemsGrp.rowtype .item_prod .itemPic::after {background: #f9f9f9; opacity:1; z-index: 87;}
 .itemsGrp.rowtype .item_prod .itemPic .pd_img {z-index: 88;}
 .itemsGrp.rowtype .item_state.soldout .itemPic:before {content:'SOLD OUT'; position:absolute; top:50%; left:50%; color:#fff; font-size:28px; font-weight:500; background:rgba(0,0,0,.7); width:100%; height:100%; transform:translate(-50%, -50%); line-height: 420px; z-index: 89; text-align:center;}
 .itemsGrp.rowtype .item_prod .itemBrand {margin:0px; font-size: 16px; font-weight: 300;}
@@ -779,7 +779,8 @@ content: "〉";font-size: 12px;padding-left: 8px;
 
 .item_prod {width: 20%;display: inline-block;font-size: 0px;vertical-align: top;color: rgb(31, 31, 31);position: relative;letter-spacing: -0.2px;}
 .item_state {position: relative; padding: 0px 10px 60px; box-sizing: border-box;}
-.itemsGrp .item_state.soldout .itemPic:before {content:'SOLD OUT'; position: absolute; top: 50%; left: 50%; font-size: 20px; color:#fff; background: rgba(0,0,0,.5); width: 100%; height: 100%; transform:translate(-50%, -50%); line-height: 420px; z-index: 1; text-align: center;}
+.itemsGrp .item_state.soldout .itemPic:before {content:'SOLD OUT'; position: absolute; top: 50%; left: 50%; font-size: 28px; font-weight: 500; color:#fff; background: rgba(0,0,0,.7); width: 100%; height: 100%; transform:translate(-50%, -50%); line-height: 420px; z-index: 20; text-align: center;}
+.itemsGrp .item_state.AD .itemPic:before {content:'AD'; position: absolute; bottom: 20px; right: 20px; font-size: 14px; font-weight: 300; letter-spacing: -0.025em; color:#888888; width: auto; height: auto; line-height: 14px; z-index: 21; text-align: right;}
 @media (max-width: 1919px) and (min-width: 1401px){/* .item_state {padding-left: 6px;padding-right: 6px;} */}
 .hgbgCa {width: 100%;height: 100%;}
 .fgRDJH {padding: 0px 40px;font-size: 0px;box-sizing: border-box;}
@@ -797,7 +798,7 @@ content: "〉";font-size: 12px;padding-left: 8px;
 .itemLike.likeit::before {opacity: 1;}
 
 .itemLink {z-index:20;position: relative;text-decoration: none;color: rgb(102, 102, 102);cursor: pointer;display: block;}
-.itemPic {position: relative;width: 100%;margin-bottom:20px;padding-top: 150%;font-size: 0px;overflow: hidden;background-color: #ffffff;}
+.itemPic {position: relative;width: 100%;margin-bottom:20px;padding-top: 150%;font-size: 0px;overflow: hidden;background-color: #f9f9f9;}
 .itemPic::after {content: "";display: block;position: absolute;top: 0px;left: 0px;width: 100%;height: 100%;opacity: 0;background-color: rgb(0, 0, 0);z-index: 999;}
 .itemPic .pd_img,
 .itemPic .pd_mov {position: absolute;width: 100%;height: auto;top: 50%;left: 0px;transform: translateY(-50%);}
@@ -805,7 +806,7 @@ content: "〉";font-size: 12px;padding-left: 8px;
 .itemPic .pd_img {z-index: 1;transition: 0.5s;}
 .itemPic .pd_img::after {content: '';display: block; height: 100%;width: 100%;background: #333;}
 /* .itemPic .pd_img {position: absolute;width: 100%;width: auto; height: auto;max-height: 500px;top: 50%;left: 50%;transform: translate(-50%,-50%);} */
-.itemOpt{z-index:3; pointer-events:none;position: absolute;bottom: -120px; left: 0; right: 0; width: 100%; height:111px;padding: 32px 0; text-align:center; color: #fff; background: rgb(0 0 0 / 0.8); transition-duration:0.45s;}
+.itemOpt{z-index:3; pointer-events:none;position: absolute;bottom: -120px; left: 0; right: 0; width: 100%; height:62px;padding: 25px 0; text-align:center; color: #fff; background: rgb(0 0 0 / 0.8); transition-duration:0.45s;}
 .itemOpt.on{transition-duration:0.45s;bottom:0;}
 .itemOpt p{font-size: 12px;line-height: 1.2;padding-bottom: 15px;}
 .itemOpt ul{display: block;margin: 0 auto;width: auto;}

+ 22 - 11
src/main/webapp/ux/pc/css/layout.css

@@ -391,7 +391,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 #quick_menu .shopingbag .itemsGrp .item_prod .itemLike {z-index: 99;}
 #quick_menu .shopingbag .itemsGrp .item_prod .itemPic {position: absolute; top: 0; left: 0; margin-bottom: 0; width: 120px; padding-top: 180px;}
 #quick_menu .shopingbag .itemsGrp .item_prod .itemPic .shape {z-index: 89;}
-#quick_menu .shopingbag .itemsGrp .item_prod .itemPic::after {background: #f5f5f5; opacity:1; z-index: 87;}
+#quick_menu .shopingbag .itemsGrp .item_prod .itemPic::after {background: #f9f9f9; opacity:1; z-index: 87;}
 #quick_menu .shopingbag .itemsGrp .item_prod .itemPic .pd_img {z-index: 88;}
 #quick_menu .shopingbag .itemsGrp .item_state.soldout .itemPic:before {content:'SOLD OUT'; position: absolute; top: 50%; left: 50%; font-size: 20px; color:#fff; background: rgba(0,0,0,.5); width: 100%; height: 100%; transform:translate(-50%, -50%); line-height: 420px; z-index: 1; text-align: center;}
 #quick_menu .shopingbag .itemsGrp .item_prod .itemBrand {margin:0px 0 15px; font-size: 12px; line-height:14px; font-weight: 300;}
@@ -1201,7 +1201,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 .goods_info .order_desc .button_box .btn {display:block; width:100%; height:42px; padding:14px; font-size:14px;}
 .goods_info .order_desc .button_box .btn:hover,
 .goods_info .order_desc .button_box .btn:focus,
-.goods_info .order_desc .button_box .btn:active{color: #333333;background-color: #ffffff;border-color: #dddddd;}
+.goods_info .order_desc .button_box .btn:active{}
 .goods_info .order_desc .button_box .btn.btn_primary_line:hover,
 .goods_info .order_desc .button_box .btn.btn_primary_line:focus,
 .goods_info .order_desc .button_box .btn.btn_primary_line:active{color:#fd4802; border-color:#fd4802;}
@@ -1800,7 +1800,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.dp_Exhibition .exhi_list .exhi_item_pr li {height: 150px; margin-bottom: 16px;}
 	.dp_Exhibition .exhi_list .exhi_item_pr li:last-child {margin-bottom: 0;}
 	.dp_Exhibition .exhi_list .exhi_item_pr .item_prod {width: 100%; margin-right: 0; margin-bottom: 0; height: 150px;}
-	.dp_Exhibition .exhi_list .exhi_item_pr .itemPic {position: absolute; left: 0; top: 0; width: 100px; height: 150px; padding-top: 0; margin-bottom: 0; background:#f5f5f5;}
+	.dp_Exhibition .exhi_list .exhi_item_pr .itemPic {position: absolute; left: 0; top: 0; width: 100px; height: 150px; padding-top: 0; margin-bottom: 0; background:#f9f9f9;}
 	.dp_Exhibition .exhi_list .exhi_item_pr .itemLink {position: static; display: table-cell; vertical-align:middle;}
 	.dp_Exhibition .exhi_list .exhi_item_pr .itemName {font-size: 14px; line-height: 1.4; max-height: none; margin: 0px 0px 15px; height:auto;}
 	.dp_Exhibition .exhi_list .exhi_item_pr .itemPrice {margin-left: 0; margin-right: 0;}
@@ -1811,7 +1811,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.dp .dp_detail_visual h3 {padding-top:10px; padding-bottom:80px;}
 	.dp .dp_detail_visual .cont_head > div .period {position:absolute; left:50%; bottom:40px; transform:translateX(-50%); font-size:14px; font-weight:300; color:#888; text-align:center;}
 	.dp_detail_visual .promotion_visual {position:relative; width:100%;}
-	.dp_detail_visual .promotion_visual img {}
+	.dp_detail_visual .promotion_visual img {width: 100%; height: auto;}
 	.dp_detail_visual .promotion_visual.type1 {}
 	.dp_detail_visual .promotion_visual.type1 img {position:relative; left:50%; top:0; transform:translateX(-50%);}
 	.dp_detail_visual .promotion_visual.type2 {}
@@ -2330,11 +2330,12 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.odPayment .fold_cont .area_receiveinfo {}
 	.odPayment .fold_cont .area_receiveinfo + .area_receiveinfo.none {padding-top: 25px;}
 	.odPayment .fold_cont .area_receiveinfo.none {padding:0 0 30px;}
-	.odPayment .fold_cont .area_receiveinfo > dl > div {margin-top:15px; height:16px}
+	.odPayment .fold_cont .area_receiveinfo > dl > div {margin-top:15px; min-height:16px}
 	.odPayment .fold_cont .area_receiveinfo > dl > div:first-child {margin-top:0}
+	.odPayment .fold_cont .area_receiveinfo > dl > div:last-child {margin-top: 5px;}
 	.odPayment .fold_cont .area_receiveinfo > dl > div dt {position:relative; padding-right:10px; margin-right:10px; font-weight:200;}
-	.odPayment .fold_cont .area_receiveinfo > dl > div dt::after {content:':'; position:absolute; right:-2px; top:-1px;}
-	.odPayment .fold_cont .area_receiveinfo > dl > div dd {height:16px}
+	.odPayment .fold_cont .area_receiveinfo > dl > div:last-child dt::after {content:':'; position:absolute; right:-2px; top:-1px;}
+	.odPayment .fold_cont .area_receiveinfo > dl > div dd {min-height:16px}
 	.odPayment .fold_cont .area_receiveinfo > dl > div dd .btn {vertical-align:top; margin-top:-9px; margin-left:15px}
 	.odPayment .fold_cont .area_receiveinfo > dl > div dd .btn_underline {margin-left:12px}
 	.odPayment .fold_cont .area_receiveinfo .icon_tag {margin-top:-3px; margin-left:4px}
@@ -2960,6 +2961,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	[class*="pd_descrp"] .required_box .area_infotbl .title {font-size:24px; font-weight:500; letter-spacing:-0.025em;}
 	[class*="pd_descrp"] .required_box .area_infotbl .tbl table th {width:280px; font-weight:300;}
 	[class*="pd_descrp"] .required_box .area_kcl {display:block; position:relative; min-height:160px; margin-top:100px; padding:40px 40px 40px 160px; box-sizing:border-box; background:#f5f5f5;}
+	[class*="pd_descrp"] .required_box .area_kcl.no-mark{padding-left:65px}
 	[class*="pd_descrp"] .required_box .area_kcl p {margin-top:20px; color:#222; font-size:14px; line-height:1; letter-spacing:-0.025em;}
 	[class*="pd_descrp"] .required_box .area_kcl .tit {margin-top:0; font-size:16px;}
 	[class*="pd_descrp"] .required_box .area_kcl a.linktxt3 {margin-left:20px; color:#888; font-weight:200; text-decoration:none !important;}
@@ -3280,7 +3282,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.pd_pop.pd_lookbook_pop .itemsGrp .item_prod {width: 100%; overflow: hidden;}
 	.pd_pop.pd_lookbook_pop .itemsGrp .item_prod .item_state {display: table; padding-left: 310px; padding-right: 55px; padding-bottom: 0; width: 100%; min-height:390px;}
 	.pd_pop.pd_lookbook_pop .itemsGrp .item_prod .itemLink {display: table-cell; position: static; vertical-align: middle;}
-	.pd_pop.pd_lookbook_pop .itemsGrp .item_prod .itemPic {position: absolute; top: 0; left: 0; margin-bottom: 0; width: 260px; height:390px; padding:0; background: #f5f5f5;}
+	.pd_pop.pd_lookbook_pop .itemsGrp .item_prod .itemPic {position: absolute; top: 0; left: 0; margin-bottom: 0; width: 260px; height:390px; padding:0; background: #f9f9f9;}
 	.pd_pop.pd_lookbook_pop .itemsGrp .item_state.soldout .itemPic:before {content:'SOLD OUT'; position: absolute; top: 50%; left: 50%; font-size: 20px; color:#fff; background: rgba(0,0,0,.5); width: 100%; height: 100%; transform:translate(-50%, -50%); line-height: 420px; z-index: 1; text-align: center;}
 	.pd_pop.pd_lookbook_pop .itemsGrp .item_prod .itemBrand {margin:0px 0px 15px; font-size: 14px; font-weight: 300;}
 	.pd_pop.pd_lookbook_pop .itemsGrp .item_prod .itemName {margin:0px 0px 25px; font-size: 18px; font-weight: 300; line-height: 28px; height:56px;}
@@ -3775,7 +3777,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.sch_result .cont_body .sch_result_cont .exhi_list .itemsGrp .exhi_item_pr li:last-child {margin-bottom: 0;}
 	.sch_result .cont_body .sch_result_cont .exhi_list .itemsGrp .exhi_item_pr .item_prod {width: 100%; margin-right: 0; margin-bottom: 0; height: 150px;}
 	.sch_result .cont_body .sch_result_cont .exhi_list .itemsGrp .exhi_item_pr {background: #fff; padding: 20px; position: relative; z-index: 9; width: 88.4%; margin:-70px auto 0;}
-	.sch_result .cont_body .sch_result_cont .exhi_list .itemsGrp .exhi_item_pr .itemPic {position: absolute; left: 0; top: 0; background:#f5f5f5; width: 100px; height: 150px; padding-top: 0; margin-bottom: 0;}
+	.sch_result .cont_body .sch_result_cont .exhi_list .itemsGrp .exhi_item_pr .itemPic {position: absolute; left: 0; top: 0; background:#f9f9f9; width: 100px; height: 150px; padding-top: 0; margin-bottom: 0;}
 	.sch_result .cont_body .sch_result_cont .exhi_list .itemsGrp .exhi_item_pr .itemLink {position: static; display: table-cell; vertical-align:middle;}
 	.sch_result .cont_body .sch_result_cont .exhi_list .itemsGrp .exhi_item_pr .itemName {font-size: 14px; line-height: 1.4; max-height: none; margin: 0px 0px 15px; height:auto;}
 	.sch_result .cont_body .sch_result_cont .exhi_list .itemsGrp .exhi_item_pr .itemPrice {margin-left: 0; margin-right: 0; font-size: 16px;}
@@ -3851,9 +3853,18 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.br_lookbook_view.cont_visual .cont_head {margin-bottom:60px}
 	.br_lookbook_view.cont_visual .cont_body .area_slider {margin-left:-70px; margin-right:-70px;}
 	.br_lookbook_view.cont_visual .swiper-slide {width: auto; height: 660px;}
+	.br_lookbook_view.cont_visual .swiper-slide-next img,
+	.br_lookbook_view.cont_visual .swiper-slide-prev img {width: 100%; height:auto;max-height: 660px;}
 	/* .br_lookbook_view.cont_visual .swiper-slide img {width: 100%; height:auto;} */
 	.br_lookbook_view.cont_visual .swiper-slide img {width: auto; height:100%;} /* .0506.높이기준으로 변경 */
-	.br_lookbook_view.cont_visual .bt_lb_item {}
+	/* 05.07 다양한 이미지를 리사이징하기 위해 가로 기준이 생성됨 */
+	.br_lookbook_view.cont_visual .bt_lb_item {overflow: hidden;width: 100%;height: 660px;}
+	.br_lookbook_view.cont_visual .swiper-slide img {max-width: 990px;height: auto;display: block;}
+	.br_lookbook_view.cont_visual .swiper-slide .item_picker {display: none;}
+	.br_lookbook_view.cont_visual .swiper-slide-active .item_picker {display: block;}
+	.br_lookbook_view.cont_visual .swiper-slide-prev img,
+	.br_lookbook_view.cont_visual .swiper-slide-next img {transform: translate(-50%,-50%);left: 50%;top: 50%;position: relative;}
+
 	.br_lookbook_view.cont_visual .swiper-container {padding-top:60px;}
 	.br_lookbook_view.cont_visual .swiper-slide .bt_lb_item:after {content:''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,.3);}
 	.br_lookbook_view.cont_visual .swiper-slide-active .bt_lb_item {position: relative; height: 618px; margin-top: -60px; transition: all 200ms ease;}
@@ -4823,7 +4834,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.modal.lookbook_item_pop .itemsGrp .item_prod {width: 100%; overflow: hidden;}
 	.modal.lookbook_item_pop .itemsGrp .item_prod .item_state {display: table; padding-left: 310px; padding-right: 55px; padding-bottom: 0; width: 100%; min-height:390px;}
 	.modal.lookbook_item_pop .itemsGrp .item_prod .itemLink {display: table-cell; position: static; vertical-align: middle;}
-	.modal.lookbook_item_pop .itemsGrp .item_prod .itemPic {position: absolute; top: 0; left: 0; margin-bottom: 0; width: 260px; height:390px; padding:0; background: #f5f5f5;}
+	.modal.lookbook_item_pop .itemsGrp .item_prod .itemPic {position: absolute; top: 0; left: 0; margin-bottom: 0; width: 260px; height:390px; padding:0; background: #f9f9f9;}
 	.modal.lookbook_item_pop .itemsGrp .item_state.soldout .itemPic:before {content:'SOLD OUT'; position: absolute; top: 50%; left: 50%; font-size: 20px; color:#fff; background: rgba(0,0,0,.5); width: 100%; height: 100%; transform:translate(-50%, -50%); line-height: 420px; z-index: 1; text-align: center;}
 	.modal.lookbook_item_pop .itemsGrp .item_prod .itemBrand {margin:0px 0px 15px; font-size: 14px; font-weight: 300;}
 	.modal.lookbook_item_pop .itemsGrp .item_prod .itemName {margin:0px 0px 25px; font-size: 18px; font-weight: 300; line-height: 28px; height:56px;}

+ 3 - 7
src/main/webapp/ux/pc/css/main.css

@@ -86,7 +86,7 @@
 .post-visual .txtWrap dl.w,
 .post-visual .txtWrap dl.w + .btn {color:#ffffff; border-color:#fff;}
 .post-visual .txtWrap dt {font-size:18px; padding-bottom:20px; font-weight:200;}
-.post-visual .txtWrap dd {font-size:62px;line-height:1;font-weight:500; display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 2;-webkit-box-orient: vertical; overflow:hidden;}
+.post-visual .txtWrap dd {font-size:62px; max-height:122px; line-height:1;font-weight:500; display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 2;-webkit-box-orient: vertical; overflow:hidden;}
 .post-visual .txtWrap dd.txt_xs {font-size:18px;line-height:1;font-weight:200;padding:20px 0 0px 0; display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 1;-webkit-box-orient: vertical; max-height:37px; overflow:hidden;}
 /* .post-visual .vrt_txt{width:auto;height:auto;font-size:18px;color:#888888;position:absolute;left:-90px;bottom:-99px;top:0;-webkit-transform:rotate(-90deg);transform:rotate(-180deg); white-space: nowrap; -webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;} */
 .post-visual .vrt_txt{width: 500px;height: 20px;box-sizing: content-box;display: inline-block;text-align: left;font-size: 18px;color: #888888;position: absolute;left: -80%;bottom: 160px;position: relative;left: -65%;bottom: -160px;top: auto;-webkit-transform: rotate(-90deg);transform: rotate(-90deg);white-space: nowrap;}
@@ -154,7 +154,7 @@
 
 	.post-visual .vrt_txt {bottom:-120px !important;}
 	.post-visual.swiper-container {margin-left:0px;}
-	.main .post-visual .swiper-slide {padding-bottom:20px;}
+	.main .post-visual .swiper-slide {padding-bottom:20px; mask-size:none;}
 	.main .post-visual .swiper-slide-prev {}
 	.main .post-visual .swiper-slide-active {}
 	.main .post-visual .swiper-slide::before {display:block;}
@@ -752,11 +752,7 @@ header.minify .common_header.br_header::after {bottom:-565px;}
 
 /* brand_main :ie */
 @media screen and (-ms-high-contrast:active), (-ms-high-contrast:none) {
-	.brand_main .post-visual .swiper-slide {
-		margin:0;
-		box-shadow:none;
-	}
-	.brand_main .post-visual .swiper-slide {z-index:9; padding-bottom:20px;}
+	.brand_main .post-visual .swiper-slide {z-index:9; margin:0; box-shadow:none; padding-bottom:0; width: 1520px;}
 	.brand_main .post-visual .swiper-slide:before {display:none;}
 	.brand_main .post-visual .swiper-slide-active {z-index:8;}
 	.brand_main .post-visual .swiper-slide-active:before {display:block;}

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

@@ -82,6 +82,8 @@ $(document).ready(function() {
 				console.log(filesLength);
 			var cmtLa = $('.cmt .cmt_thumb .form_field .imgUpload label');
 			var cmtIn = $('.cmt .cmt_thumb .form_field .imgUpload input');
+			var myrvLa = $('.myReviewWrite .form_field .imgUpload label');
+			var myrvIn = $('.myReviewWrite .form_field .imgUpload input');
 			for (var i = 0; i < filesLength; i++) {
 				var f = files[i]
 				var fileReader = new FileReader();
@@ -97,6 +99,8 @@ $(document).ready(function() {
 						$(this).parent(".pics").remove();
 						cmtLa.css('display', 'block');
 						cmtIn.css('display', 'block');
+						myrvLa.css('display', 'block');
+						myrvIn.css('display', 'block');
 						$('#fileAdd').removeAttr("disabled");
 					});
 				});
@@ -105,11 +109,15 @@ $(document).ready(function() {
 				var imgFiles=$('.imgUpload .pics');
 				var cmtLa = $('.cmt .cmt_thumb .form_field .imgUpload label');
 				var cmtIn = $('.cmt .cmt_thumb .form_field .imgUpload input');
+				var myrvLa = $('.myReviewWrite .form_field .imgUpload label');
+				var myrvIn = $('.myReviewWrite .form_field .imgUpload input');
 				if (imgFiles.length >= maxFileLength-1) {
-					mcxDialog.alert('이미지는 최대' + maxFileLength +'장 까지 첨부 가능합니다.'); //210420_수정 : 시스템 alert -> dialog 변경.
+					//mcxDialog.alert('이미지는 최대' + maxFileLength +'장 까지 첨부 가능합니다.'); //210507_삭제
 					$('#fileAdd').attr("disabled",true);
 					cmtLa.css('display', 'none');
 					cmtIn.css('display', 'none');
+					myrvLa.css('display', 'none');
+					myrvIn.css('display', 'none');
 				} else if(imgFiles.length < maxFileLength){
 					$('#fileAdd').removeAttr("disabled");
 				}
@@ -244,12 +252,19 @@ function sCombo(selector){
 		});
 	}
 	sCombo.prototype.listOn = function(){
-		this.$selectBox.toggleClass('on');
 		if(this.$selectBox.hasClass('on')){
-			this.$list.css('display', 'block');
-		}else{
+			this.$selectBox.removeClass('on');
 			this.$list.css('display', 'none');
-		};
+		} else {
+			this.$selectBox.addClass('on');
+			this.$list.css('display', 'block');
+		}
+		//this.$selectBox.toggleClass('on');
+		//if(this.$selectBox.hasClass('on')){
+		//	this.$list.css('display', 'block');
+		//}else{
+		//	this.$list.css('display', 'none');
+		//};
 	}
 	sCombo.prototype.listSelect = function($target){
 		$target.addClass('selected').siblings('li').removeClass('selected');
@@ -257,6 +272,7 @@ function sCombo(selector){
 		//this.$select.text($target.text());
 		this.$select.html($target.html());
 		this.$list.css('display', 'none');
+		console.log($target.html())
 	}
 	sCombo.prototype.listOff = function($target){
 		if(!$target.is(this.$select) && this.$selectBox.hasClass('on')){

+ 1 - 1
src/main/webapp/ux/plugins/gaga/gaga.infinite.scrollSession.js

@@ -184,7 +184,7 @@ var gagaInfiniteScroll = {
 				, dataIndex : sDataIndex
 				, htm : sHtml
 				, sortingType : gagaInfiniteScroll.pageStatus.sortingType
-				, ssortingTypeNm : gagaInfiniteScroll.pageStatus.sortingTypeNm
+				, sortingTypeNm : gagaInfiniteScroll.pageStatus.sortingTypeNm
 				, filterHtml : gagaInfiniteScroll.pageStatus.filterHtml
 				, filterStatHtml : gagaInfiniteScroll.pageStatus.filterStatHtml
 				, totalCount : gagaInfiniteScroll.pageStatus.totalCount