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

Merge branch 'develop' into jsshin

jsshin 5 лет назад
Родитель
Сommit
ecb43b3142
81 измененных файлов с 2733 добавлено и 2519 удалено
  1. 64 36
      src/main/java/com/style24/front/biz/service/TsfCartService.java
  2. 1 0
      src/main/java/com/style24/front/biz/service/TsfGoodsService.java
  3. 12 3
      src/main/java/com/style24/front/biz/service/TsfOrderService.java
  4. 1 0
      src/main/java/com/style24/front/biz/web/TsfCartController.java
  5. 20 18
      src/main/java/com/style24/front/biz/web/TsfGoodsController.java
  6. 61 0
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  7. 87 23
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  8. 2 1
      src/main/java/com/style24/persistence/domain/Goods.java
  9. 11 3
      src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml
  10. 2 2
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  11. 3 3
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml
  12. 1 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml
  13. 280 445
      src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html
  14. 82 1
      src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html
  15. 2 0
      src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html
  16. 3 82
      src/main/webapp/WEB-INF/views/web/common/layout/MypageLayoutWeb.html
  17. 54 47
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  18. 241 469
      src/main/webapp/WEB-INF/views/web/mypage/MypageCancelFormWeb.html
  19. 728 337
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderDetailFormWeb.html
  20. 201 236
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html
  21. 291 277
      src/main/webapp/WEB-INF/views/web/mypage/MypageReturnFormWeb.html
  22. 2 2
      src/main/webapp/WEB-INF/views/web/order/OrderDcAmtInfoWeb.html
  23. 27 33
      src/main/webapp/WEB-INF/views/web/order/OrderDeliveryAddrInfoWeb.html
  24. 157 70
      src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrAddPopWeb.html
  25. 122 68
      src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrChangePopWeb.html
  26. 104 65
      src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrModifyPopWeb.html
  27. 125 271
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html
  28. 8 11
      src/main/webapp/WEB-INF/views/web/order/OrderListInfoWeb.html
  29. 1 3
      src/main/webapp/WEB-INF/views/web/order/OrderPaymentInfoWeb.html
  30. BIN
      src/main/webapp/images/mo/ico_arrow_filter.png
  31. BIN
      src/main/webapp/images/mo/ico_btn_more02.png
  32. BIN
      src/main/webapp/images/mo/ico_bulltet-delivery.png
  33. BIN
      src/main/webapp/images/mo/ico_bulltet-house.png
  34. BIN
      src/main/webapp/images/mo/ico_bulltet-object.png
  35. BIN
      src/main/webapp/images/mo/ico_bulltet-order.png
  36. BIN
      src/main/webapp/images/mo/ico_cate_close.png
  37. BIN
      src/main/webapp/images/mo/ico_dp_arrow.png
  38. BIN
      src/main/webapp/images/mo/ico_dpbanner_arrow.png
  39. BIN
      src/main/webapp/images/mo/ico_filter_close.png
  40. BIN
      src/main/webapp/images/mo/ico_filter_remove.png
  41. BIN
      src/main/webapp/images/mo/ico_filter_reset.png
  42. BIN
      src/main/webapp/images/mo/ico_filter_reset02.png
  43. BIN
      src/main/webapp/images/mo/ico_filter_reset_w.png
  44. BIN
      src/main/webapp/images/mo/ico_pick_cls.png
  45. BIN
      src/main/webapp/images/mo/ico_search_btn.png
  46. BIN
      src/main/webapp/images/mo/ico_shopbag.png
  47. BIN
      src/main/webapp/images/mo/ico_sns_share.png
  48. BIN
      src/main/webapp/images/mo/icon_best_refresh.png
  49. BIN
      src/main/webapp/images/mo/icon_list_filter.png
  50. BIN
      src/main/webapp/images/mo/icon_time_hotdeal.png
  51. BIN
      src/main/webapp/images/mo/shc_arrow.png
  52. BIN
      src/main/webapp/images/mo/shc_clock.png
  53. BIN
      src/main/webapp/images/mo/shc_filter.png
  54. BIN
      src/main/webapp/images/mo/shc_itemplan.png
  55. BIN
      src/main/webapp/images/mo/shc_refresh.png
  56. BIN
      src/main/webapp/images/mo/shc_result_plan.png
  57. BIN
      src/main/webapp/images/mo/thumb/bigbanner_slide01.png
  58. BIN
      src/main/webapp/images/mo/thumb/bullet_bg1.png
  59. BIN
      src/main/webapp/images/mo/thumb/detail_case_bg.png
  60. BIN
      src/main/webapp/images/mo/thumb/dp_case1_item.jpg
  61. BIN
      src/main/webapp/images/mo/thumb/dp_case1_lookbook.jpg
  62. BIN
      src/main/webapp/images/mo/thumb/dp_visual.jpg
  63. BIN
      src/main/webapp/images/mo/thumb/dp_visual_outlets.jpg
  64. BIN
      src/main/webapp/images/mo/thumb/hotdeal_bg.png
  65. BIN
      src/main/webapp/images/mo/thumb/main_visual01.jpg
  66. BIN
      src/main/webapp/images/mo/thumb/main_visual02.jpg
  67. BIN
      src/main/webapp/images/pc/benefit_txt.jpg
  68. BIN
      src/main/webapp/images/pc/bg_check01.png
  69. BIN
      src/main/webapp/images/pc/bg_check02.png
  70. BIN
      src/main/webapp/images/pc/dp_best_livetxt.jpg
  71. BIN
      src/main/webapp/images/pc/ico_best_bedge.jpg
  72. BIN
      src/main/webapp/images/pc/ico_bracket2.png
  73. BIN
      src/main/webapp/images/pc/ico_bread_root_w.png
  74. BIN
      src/main/webapp/images/pc/ico_cart_empty.png
  75. BIN
      src/main/webapp/images/pc/ico_coupon_3000.png
  76. BIN
      src/main/webapp/images/pc/ico_coupon_5.png
  77. BIN
      src/main/webapp/images/pc/ico_filter_close.png
  78. BIN
      src/main/webapp/images/pc/ico_filter_reset02.png
  79. BIN
      src/main/webapp/images/pc/pop_slide_next.png
  80. BIN
      src/main/webapp/images/pc/pop_slide_prev.png
  81. 40 13
      src/main/webapp/ux/pc/js/mypage.js

+ 64 - 36
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -13,6 +13,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.thymeleaf.util.StringUtils;
 
+import com.style24.core.biz.dao.TscEnvsetDao;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.session.TscSession;
@@ -20,6 +21,7 @@ import com.style24.front.biz.dao.TsfCartDao;
 import com.style24.front.support.env.TsfConstants;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Cart;
+import com.style24.persistence.domain.Envset;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.GoodsStock;
 import com.style24.persistence.domain.Login;
@@ -51,6 +53,9 @@ public class TsfCartService {
 	@Autowired
 	private Environment env;
 
+	@Autowired
+	private TscEnvsetDao coreEnvsetDao;
+
 	/**
 	 * 장바구니 저장
 	 * 단품 : goodsCd, optCd, optCd1, optCd2
@@ -73,6 +78,7 @@ public class TsfCartService {
 			Goods goods = new Goods();
 			goods.setGoodsCd(param.getGoodsCd());
 			goods.setFrontGb(TsfSession.getFrontGb());
+			goods.setSiteCd(TscConstants.Site.STYLE24.value());
 
 			goods = goodsService.getGoodsInfo(goods);
 
@@ -289,10 +295,8 @@ public class TsfCartService {
 
 		// 로그인 체크
 		if(TsfSession.isLogin()) {
-			log.info("CHECK LOGIN TRUE ::: {}", TsfSession.getInfo().getCustNo());
 			order.setCustNo(TsfSession.getInfo().getCustNo());
 		} else {
-			log.info("CHECK LOGIN FALSE");
 			order.setCustNo(0);
 		}
 		order.setFrontGb(TsfSession.getFrontGb());
@@ -337,13 +341,11 @@ public class TsfCartService {
 			}
 		}
 
-		if(cartGoodsList != null && cartGoodsList.size() > 0) {
-			// 장바구니 업체별 배송비 계산
-			setCartListDelvFeeInfo(cartGoodsList);
+		// 자사 / 입점업체 리스트 분리
+		order = getCartDelvGoodsCntList(cartGoodsList);
 
-			// 자사 / 입점업체 리스트 분리
-			order = getCartDelvGoodsCntList(cartGoodsList);
-		}
+		// 장바구니 업체별 배송비 계산
+		setCartListDelvFeeInfo(cartGoodsList, order);
 
 		// 총계 금액 계산
 		setCartListTotAmtInfo(cartGoodsList, order);
@@ -545,7 +547,7 @@ public class TsfCartService {
 	 * 장바구니 배송단위별 상품 정보 조회
 	 *
 	 * @param cartGoodsList
-	 * @author jsh77b
+	 * @author xodud1202
 	 * @since 2021. 02. 02
 	 */
 	public Order getCartDelvGoodsCntList(Collection<Order> cartGoodsList) {
@@ -553,6 +555,7 @@ public class TsfCartService {
 		// 1. 장바구니 상품 배송단위별 건수 체크 로직 (자사:총알배송, 자사:일반배송, 입점업체, 예약배송)
 		Order delvOrder = new Order();
 
+		Collection<Order> shotCartList = new ArrayList<Order>();
 		Collection<Order> wmsCartList = new ArrayList<Order>();
 		Collection<Order> delvCartList = new ArrayList<Order>();
 
@@ -566,11 +569,6 @@ public class TsfCartService {
 				order.setOptCd2Arr(order.getOptCd2().split(","));
 				order.setColorNmArr(order.getColorNm().split(","));
 			} else {
-				/*String[] arr = {order.getItemNm()}, arr2 = {order.getOptCd()}, arr3 = {order.getItemQtyr()};
-				order.setItemNmArr(arr);
-				order.setOptCdArr(arr2);
-				order.setItemQtyArr(arr3);*/
-
 				String[] arr = {order.getItemNm()}, arr2 = {order.getOptCd1()}, arr3 = {order.getOptCd2()}, arr4 = {order.getItemQtyr()}, arr5 = {order.getColorNm()};
 				order.setItemNmArr(arr);
 				order.setOptCd1Arr(arr2);
@@ -580,20 +578,30 @@ public class TsfCartService {
 			}
 
 			// 1.3 배송정책별 상품 구분
-			if (order.getDelvFeeCd().equals("WMS")) {
+			if ("SHOT".equals(order.getCartDelvFeeCd())) {
+				shotCartList.add(order);
+			} else if ("WMS".equals(order.getCartDelvFeeCd())) {
 				wmsCartList.add(order);
 			} else {
 				delvCartList.add(order);
 			}
 		}
 
+		delvOrder.setShotCartList(shotCartList);		// 자사 총알배송 상품 목록
 		delvOrder.setWmsCartList(wmsCartList);			// 자사 일반상품 목록
 		delvOrder.setDelvCartList(delvCartList);		// 입점 업체 상품 목록
 
 		return delvOrder;
 	}
 
-	public void setCartListDelvFeeInfo(Collection<Order> params) {
+	/**
+	 * 장바구니 배송단위별 배송비 계산
+	 *
+	 * @param params
+	 * @author xodud1202
+	 * @since 2021. 02. 02
+	 */
+	public void setCartListDelvFeeInfo(Collection<Order> params, Order order) {
 		Order delvInfo = new Order();
 		List<Integer> cartSqArr = new ArrayList<Integer>();
 
@@ -604,10 +612,14 @@ public class TsfCartService {
 		delvInfo.setCartSqArr(cartSqArr.stream().mapToInt(Integer::intValue).toArray());
 
 		// 장바구니 업체별 배송비 정보 조회
-		Collection<Order> delvFeeInfo = cartDao.getCartListDelvFeeInfoList(delvInfo);
+		Collection<Order> delvFeeInfo = new ArrayList<Order>();
+		if(delvInfo.getCartSqArr() != null && delvInfo.getCartSqArr().length > 0) {
+			delvFeeInfo = cartDao.getCartListDelvFeeInfoList(delvInfo);
+		}
 
 		// 업체별 상품 합계 금액 저장
 		int compCnt = 0;
+		Order lastCompCheck = new Order();
 		for (Order delv : delvFeeInfo) {
 			compCnt = 0;
 			for (Order param : params) {
@@ -616,21 +628,22 @@ public class TsfCartService {
 					if("N".equals(param.getSoldoutYn())) {
 						delv.setCompSumPrice(delv.getCompSumPrice() + param.getTmtbDcAmt());
 					}
-
 					if (compCnt == 1) {
 						param.setFirstCompYn("Y");
 					}
-					/* else {
-						param.setFirstCompYn("N");
-					}*/
+
+					// 한 업체의 마지막 params를 확인
+					lastCompCheck = param;
 				}
 			}
+
+			lastCompCheck.setAddDelvFeeYn("Y");
 		}
 
 		// 장바구니 업체별 합계 금액으로 무료배송 여부 저장
 		for (Order delv : delvFeeInfo) {
 			for (Order param : params) {
-				if (param.getDelvFeeCd().equals(delv.getDelvFeeCd())) {		// TODO 자사 배송비는 어떤 금액으로 처리하는지 확인 후 조건 수정 필요 (WMS는 DELV_FEE_CD 동일한거 없음)
+				if (param.getDelvFeeCd().equals(delv.getDelvFeeCd()) && !"WMS".equals(param.getDelvFeeCd())) {
 					param.setCompCnt(delv.getCompCnt());
 					if (TscConstants.DelvFeeCrite.FREE.value().equals(delv.getDelvFeeCrite())) {
 						param.setDelvFee(0);
@@ -643,31 +656,39 @@ public class TsfCartService {
 			}
 		}
 
-		// TODO 자사 배송비는 어떤 금액으로 처리하는지 확인 후 수정 필요
 		int wmsSumPrice = 0;
-		compCnt = 0;
 		for(Order param : params) {
 			if("WMS".equals(param.getDelvFeeCd())) {
-				compCnt++;
-				wmsSumPrice = wmsSumPrice + param.getCurrPrice();
-				if(compCnt == 1) {
-					param.setFirstCompYn("Y");
+				if("N".equals(param.getSoldoutYn())) {
+					wmsSumPrice = wmsSumPrice + param.getCurrPrice();
 				}
 			}
 		}
 
-		// TODO 자사 배송비는 어떤 금액으로 처리하는지 확인 후 수정 필요
-		for (Order param : params) {
-			if ("WMS".equals(param.getDelvFeeCd())) {
-				if (wmsSumPrice > 40000) {
-					param.setDelvFee(0);
-				} else {
-					param.setDelvFee(2500);
-				}
+		// 자사 무료배송비 기준 조회
+		Envset wmsDelvFee = new Envset();
+		wmsDelvFee.setSiteCd(TscConstants.Site.STYLE24.value());
+		wmsDelvFee.setEnvsetType("O10");
+		wmsDelvFee = coreEnvsetDao.getEnvset(wmsDelvFee);
+		int wmsLimitDelvFee = Integer.parseInt(wmsDelvFee.getStrSetVal3());
+
+		// 자사 배송비 등록
+		if(params.size() > 0) {
+			if (wmsSumPrice > wmsLimitDelvFee) {
+				order.setWmsDelvFee(0);
+			} else {
+				order.setWmsDelvFee(2500);
 			}
 		}
 	}
 
+	/**
+	 * 장바구니 배송비 합계금액 계산
+	 * @param cartGoodsList
+	 * @param order
+	 * @author xodud1202
+	 * @since 2021. 02. 02
+	 */
 	public void setCartListTotAmtInfo(Collection<Order> cartGoodsList, Order order) {
 		// 장바구니 합계 금액 계산
 		int notSoldoutCnt = 0;
@@ -686,6 +707,13 @@ public class TsfCartService {
 			}
 		}
 
+		log.info("CHECK TOT_DELV_FEE ::::: {}", order.getTotDelvFee());
+
+		// 자사 배송비 추가
+		order.setTotDelvFee(order.getTotDelvFee() + order.getWmsDelvFee());
+
+		log.info("CHECK TOT_DELV_FEE ::::: {}", order.getTotDelvFee());
+
 		// 상품 할인금액 총계
 		order.setTotDcAmt(order.getSumRealPayAmt() - order.getSumOrdAmt());
 

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

@@ -242,6 +242,7 @@ public class TsfGoodsService {
 		// 상품 마스터 정보 확인
 		Goods goodsInfo = new Goods();
 		goodsInfo.setGoodsCd(param.getGoodsCd());
+		goodsInfo.setSiteCd(TscConstants.Site.STYLE24.value());
 		goodsInfo = getGoodsInfo(goodsInfo);
 
 		if (TscConstants.GoodsStat.SOLDOUT.value().equals(goodsInfo.getGoodsStat())) {

+ 12 - 3
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -69,10 +69,11 @@ public class TsfOrderService {
 		int index = 0;
 		Collection<GagaMap> orderList = new ArrayList<>();
 		Collection<Order> ordDtlList = new ArrayList<>();
+		String allCanYn = "Y";
 
 		for (Order tmpOrder : orderDao.getOrderListForMypage(order)) {
 			if (index > 0 && ordNo != tmpOrder.getOrdNo()) {
-				orderList.add(setOrderMap(ordDtlList));
+				orderList.add(setOrderMap(ordDtlList, allCanYn));
 
 				ordDtlList = new ArrayList<>();
 				ordDtlList.add(tmpOrder);
@@ -80,18 +81,25 @@ public class TsfOrderService {
 				ordDtlList.add(tmpOrder);
 			}
 
+			if ("Y".equals(allCanYn)
+				&& !tmpOrder.getOrdDtlStat().equals(TscConstants.OrderDetailStat.DEPOSIT_WAIT.value())
+				&& !tmpOrder.getOrdDtlStat().equals(TscConstants.OrderDetailStat.PAYMENT_COMPLETE.value())
+				&& !tmpOrder.getOrdDtlStat().equals(TscConstants.OrderDetailStat.GOODS_PREPARE.value())) {
+				allCanYn = "Y";
+			}
+
 			ordNo = tmpOrder.getOrdNo();
 			index++;
 		}
 
 		if (ordDtlList.size() > 0) {
-			orderList.add(setOrderMap(ordDtlList));
+			orderList.add(setOrderMap(ordDtlList, allCanYn));
 		}
 		
 		return orderList;
 	}
 	
-	private GagaMap setOrderMap(Collection<Order> ordDtlList) {
+	private GagaMap setOrderMap(Collection<Order> ordDtlList, String allCanYn) {
 		Order order = ordDtlList.iterator().next();
 
 		GagaMap map = new GagaMap();
@@ -99,6 +107,7 @@ public class TsfOrderService {
 		map.set("ordNo", order.getOrdNo());
 		map.set("ordDt", order.getOrdDt());
 		map.set("freeGiftList", orderDao.getOrderFreeGiftListForMypage(order));
+		map.set("allCanYn", allCanYn);
 		map.set("ordDtlList", ordDtlList);
 
 		return map;

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

@@ -133,6 +133,7 @@ public class TsfCartController extends TsfBaseController {
 
 		model.addAttribute("loginInfo", TsfSession.getInfo());
 		model.addAttribute("order", order);
+		model.addAttribute("shotCartList", order.getShotCartList());
 		model.addAttribute("wmsCartList", order.getWmsCartList());
 		model.addAttribute("delvCartList", order.getDelvCartList());
 		model.addAttribute("IMG_PATH", env.getProperty("upload.goods.view"));

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

@@ -165,14 +165,14 @@ public class TsfGoodsController extends TsfBaseController {
 			mav.addObject("goodsDealComposeList", goodsService.getGoodsDealComposeList(paramsGoods));
 		} else {
 			if (TscConstants.GoodsType.NORMAL.value().equals(goods.getGoodsType())) {	// 일반상품
-				if ("Y".equals(goods.getSelfGoodsYn())) {  // 자사상품
+				//if ("Y".equals(goods.getSelfGoodsYn())) {  // 자사상품
 					// 상품 옵션1(색상) 정보
 					mav.addObject("goodsOption1List", goodsService.getGoodsOption1List(paramsGoods));
 					// 상품 옵션2(사이즈) 정보
 					mav.addObject("goodsOption2List", goodsService.getGoodsOption2List(paramsGoods));
-				} else {
-					mav.addObject("goodsOptionList", goodsService.getGoodsOptionList(paramsGoods));
-				}
+//				} else {
+//					mav.addObject("goodsOptionList", goodsService.getGoodsOptionList(paramsGoods));
+//				}
 
 //				// 상품 고시정보
 				mav.addObject("goodsNotiList", goodsService.getGoodsNotiList(goods));
@@ -200,8 +200,9 @@ public class TsfGoodsController extends TsfBaseController {
 //
 //		// 상품포인트사용방법
 //		mav.addObject("goodsPointMothod", envsetService.getPointMothod(TscConstants.Site.STYLE24.value())); // A:정액, R:정율
-//		// 상품평노출여부 - 미사용
-//		//mav.addObject("reviewDisplayYn", envsetService.getReviewDisplayYn(TsfConstants.SITE_CD));
+		// 상품평노출여부 
+		//mav.addObject("reviewDisplayYn", envsetService.getGoodsReviewDisplayYn(TscConstants.Site.STYLE24.value()));
+		mav.addObject("reviewDisplayYn", "Y");
 
 		// 베스트 상품평
 		Review review = new Review();
@@ -953,22 +954,23 @@ public class TsfGoodsController extends TsfBaseController {
 		Goods goods = new Goods();
 
 		String ckGoodsCds = GagaCookieUtil.getCookie(TsfSession.getHttpServletRequest(), TsfConstants.CK_PREFIX + "_today_goodsCd");
-		String[] arrGoodsCds = ckGoodsCds.split("\\,");
-		StringBuilder sql = new StringBuilder();
-		if (arrGoodsCds.length > 0) {
-			int idx = 1;
-			for (String goodsCd : arrGoodsCds) {
-				if (!StringUtils.isBlank(goodsCd)) {
-					if (idx > 1) {
-						sql.append("UNION ALL ");
+		if (StringUtils.isNotBlank(ckGoodsCds)) {
+			String[] arrGoodsCds = ckGoodsCds.split("\\,");
+			StringBuilder sql = new StringBuilder();
+			if (arrGoodsCds.length > 0) {
+				int idx = 1;
+				for (String goodsCd : arrGoodsCds) {
+					if (!StringUtils.isBlank(goodsCd)) {
+						if (idx > 1) {
+							sql.append("UNION ALL ");
+						}
+						sql.append("SELECT '").append(goodsCd).append("' AS GOODS_CD, ").append(idx++).append(" AS DISP_ORD FROM DUAL\r\n");
 					}
-					sql.append("SELECT '").append(goodsCd).append("' AS GOODS_CD, ").append(idx++).append(" AS DISP_ORD FROM DUAL\r\n");
 				}
+				goods.setTodayGoodsSql(sql.toString());
+				recentlyGoodsList = goodsService.getRecentlyGoodsList(goods);
 			}
-			goods.setTodayGoodsSql(sql.toString());
-			recentlyGoodsList = goodsService.getRecentlyGoodsList(goods);
 		}
-
 		return recentlyGoodsList;
 	}
 	

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

@@ -29,6 +29,7 @@ import com.style24.persistence.domain.CustAccount;
 import com.style24.persistence.domain.Customer;
 import com.style24.persistence.domain.GiftCard;
 import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
 import com.style24.persistence.domain.Point;
 import com.style24.persistence.domain.WishList;
 import lombok.extern.slf4j.Slf4j;
@@ -547,6 +548,66 @@ public class TsfMypageController extends TsfBaseController {
 		return mav;
 	}
 
+	/**
+	 * 마이페이지 취소신청
+	 *
+	 * @param Collection<Order>
+	 * @return GagaMap
+	 * @author card007
+	 * @since 2021. 03. 22
+	 */
+	@PostMapping("/cancel")
+	@ResponseBody
+	public GagaMap cancel(@RequestBody OrderChange cnclReq) {
+		if (cnclReq== null) {
+			throw new IllegalStateException(message.getMessage("FAIL_1001"));
+		}
+
+		List<Order> cnclReqList = cnclReq.getCancelReqList(); // 변경요청정보
+
+		// TODO
+		// @ 결품취소로직 추가
+		// @ 주문취소시 상태값 체크
+		// @ 취소, 반품시 배송비 체크 로직 (선결제 로직)
+
+		// 1. 세션회원조회
+		int custNo = TsfSession.getInfo().getCustNo();
+
+		// 2. 환불금액계산
+		// 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현
+		GagaMap result = coreOrderRefundService.cnclRtnRefundAmt(cnclReqList);
+
+		// 3. 주문변경 기본정보 설정
+		result.set("ordNo"			, cnclReq.getOrdNo());				// 주문번호
+		result.set("ordChgSq"		, cnclReq.getOrdChgSq());			// 주문변경번호
+		result.set("chgReason"		, cnclReq.getChgReason());			// 변경사유
+		result.set("chgMemo"		, cnclReq.getChgMemo());			// 변경메모
+
+		result.set("accountNo"		, cnclReq.getAccountNo());			// 환불계좌번호
+		result.set("accountNm"		, cnclReq.getAccountNm());			// 환불계좌예금주명
+		result.set("bankCd"			, cnclReq.getBankCd());				// 환불계좌은행코드
+
+		result.set("allCanYn"		, cnclReq.getAllCanYn());			// 무통장입금전 전체취소 여부
+		result.set("isCustomer"		, cnclReq.getIsCustomer());			// 변경사유 (고객, 회사)
+
+		// 4. 주문변경 회수지정보 추가
+		result.set("chgerNm"		, cnclReq.getChgerNm());			// 변경자명
+		result.set("chgerEmail"		, cnclReq.getChgerEmail());			// 변경자이메일주소
+		result.set("chgerPhnno"		, cnclReq.getChgerPhnno());			// 변경자핸드폰번호
+		result.set("chgerTelno"		, cnclReq.getChgerTelno());			// 변경자전화번호
+
+		result.set("reqGbn"			, cnclReq.getReqGbn());				// 신청구분
+
+		// 5. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL)
+		coreOrderChangeService.cnclComplete(result, custNo);
+
+		result.set("status", GagaResponseStatus.SUCCESS.getCode());
+		result.set("message", "취소 처리 되었습니다.");
+		// result.set("message", message.getMessage("SUCC_0004"));
+
+		return result;
+	}
+
 	/**
 	 * 마이페이지 STYLE24 포인트화면
 	 *

+ 87 - 23
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -246,27 +246,35 @@ public class TsfOrderController extends TsfBaseController {
 		
 		// 2. 로그인체크 후 고객정보 설정
 		if (TsfSession.isLogin()) {
-			// 2.1 주문고객 정보조회
-			deliveryAddrInfo = coreOrderService.getDeliveryAddrInfo(order);
-			
-			if (deliveryAddrInfo.getDelvAddrNm() == null || "".equals(deliveryAddrInfo.getDelvAddrNm())) {
-				deliveryAddrInfo.setDelvAddrNm(deliveryAddrInfo.getCustNm());
-			}
-			
-			if (deliveryAddrInfo.getRecipZipcode() == null || "".equals(deliveryAddrInfo.getRecipZipcode())) {
-				deliveryAddrInfo.setRecipZipcode("00000");
-			}
-			
-			if (deliveryAddrInfo.getRecipBaseAddr() == null || "".equals(deliveryAddrInfo.getRecipBaseAddr())) {
-				deliveryAddrInfo.setRecipBaseAddr("기본주소정보없음");
-			}
 			
-			if (deliveryAddrInfo.getRecipDtlAddr() == null || "".equals(deliveryAddrInfo.getRecipDtlAddr())) {
-				deliveryAddrInfo.setRecipDtlAddr("상세주소정보없음");
-			}
+			// 2.1 주문고객 배송지정보조회
+			Collection<Order> deliveryAddrList = coreOrderService.getDeliveryAddrInfo(order);
+			int index = 0;
 			
-			if (deliveryAddrInfo.getDelvMemo() == null || "".equals(deliveryAddrInfo.getDelvMemo())) {
-				deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
+			for (Order deliveryAddr : deliveryAddrList) {
+				// 회원 배송지 번호가 존재하면 실행
+				if (order.getCustDelvAddrSq() > 0) {
+					if (order.getCustDelvAddrSq() == deliveryAddr.getCustDelvAddrSq()) {
+						deliveryAddrInfo = deliveryAddr;
+					}
+				}
+				// 회원 배송지 번가 존재하지 않으면 기본배송지 설정
+				else {
+					if (index == 0) {
+						deliveryAddrInfo = deliveryAddr;
+					
+						if (deliveryAddrInfo.getRecipZipcode() == null || "".equals(deliveryAddrInfo.getRecipZipcode())) {
+							deliveryAddrInfo.setDelvAddrNm(deliveryAddrInfo.getCustNm());
+							deliveryAddrInfo.setRecipZipcode("00000");
+							deliveryAddrInfo.setRecipBaseAddr("기본주소정보없음");
+							deliveryAddrInfo.setRecipDtlAddr("상세주소정보없음");
+							deliveryAddrInfo.setDelvMemo("직접받고 부재시 문 앞");
+							deliveryAddrInfo.setRecipNm(deliveryAddrInfo.getCustNm());
+						}
+					}
+				}
+				
+				index++;
 			}
 		} else {
 			// 2.1 주문고객 정보조회			
@@ -670,6 +678,18 @@ public class TsfOrderController extends TsfBaseController {
 	public ModelAndView delvAddrChangePop(Order order) {
 		
 		ModelAndView mav = new ModelAndView();
+		
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setCustNo(0);
+		}
+		
+		// 1.0 주문고객 배송지정보조회
+		Collection<Order> deliveryAddrList = coreOrderService.getDeliveryAddrInfo(order);
+		
+		mav.addObject("deliveryAddrList", deliveryAddrList);	// 배송지정보
 		mav.setViewName(super.getDeviceViewName("order/OrderDelvAddrChangePop"));
 		
 		return mav;
@@ -685,9 +705,31 @@ public class TsfOrderController extends TsfBaseController {
 	 */
 	@ResponseBody
 	@RequestMapping(value = "/delvAddrModifyPop")
-	public ModelAndView delvAddrModifyPop(Order order) {
+	public ModelAndView delvAddrModifyPop(@RequestBody Order order) {
 		
 		ModelAndView mav = new ModelAndView();
+		Order deliveryAddrInfo = new Order();
+		
+		// 2. 로그인체크 후 고객정보 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+			
+			// 2.1 주문고객 배송지정보조회
+			Collection<Order> deliveryAddrList = coreOrderService.getDeliveryAddrInfo(order);
+			
+			log.info("order.getCustDelvAddrSq() ::: {} " ,order.getCustDelvAddrSq());
+			
+			for (Order deliveryAddr : deliveryAddrList) {
+				// 회원 배송지 번호가 존재하면 실행
+				if (order.getCustDelvAddrSq() > 0) {
+					if (order.getCustDelvAddrSq() == deliveryAddr.getCustDelvAddrSq()) {
+						deliveryAddrInfo = deliveryAddr;
+					}
+				}
+			}
+		} 
+		
+		mav.addObject("deliveryAddrInfo", deliveryAddrInfo);						// 배송지정보
 		mav.setViewName(super.getDeviceViewName("order/OrderDelvAddrModifyPop"));
 		
 		return mav;
@@ -711,6 +753,29 @@ public class TsfOrderController extends TsfBaseController {
 		return mav;
 	}
 	
+	/**
+	 * 배송지정보추가
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 17
+	 */
+	@ResponseBody
+	@PostMapping(value = "/createCustDeliveryAddr")
+	public String createDeliveryAddr(@RequestBody Order order) {
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+		} else {
+			order.setCustNo(0);
+		}
+		
+		coreOrderService.createCustDeliveryAddr(order);
+		
+		return message.getMessage("SUCC_0001");
+	}
+	
 	/**
 	 * 배송지메모변경팝업
 	 *
@@ -729,6 +794,8 @@ public class TsfOrderController extends TsfBaseController {
 		return mav;
 	}
 	
+	
+	
 	/**
 	 * 사은품안내팝업
 	 *
@@ -743,9 +810,6 @@ public class TsfOrderController extends TsfBaseController {
 		
 		ModelAndView mav = new ModelAndView();
 		
-		
-		
-		
 		mav.setViewName(super.getDeviceViewName("order/OrderFreegiftInfoPop"));
 		
 		return mav;

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

@@ -99,7 +99,8 @@ public class Goods extends TscBaseDomain {
 	private String soldoutGoodsDisplayYn = "N";	//품절노추여부
 	private int pointUnit = 1;	//포인트단위
 	private String goodsNmFull;	//상품타이틀+ 상품명
-	private String sysImgNm;	//상품이미지
+	private String sysImgNm;	//상품대표이미지
+	private String sysImgNm2;	//상품마우스오버이미지
 	private String logoFileNm;	//브랜드로고이미지
 	private int stockQty;		//재고
 	private String soldoutYn;	//품절여부

+ 11 - 3
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -512,6 +512,7 @@
 			 , Z.GOODS_TYPE
 			 , Z.SUPPLY_COMP_CD
 			 , Z.DELV_FEE_CD
+			 , Z.CART_DELV_FEE_CD
 			 , (Z.CURR_PRICE + Z.OPT_ADD_PRICE) * Z.GOODS_QTY AS CURR_PRICE
 			 , CASE WHEN Z.SOLDOUT_YN = 'N' AND Z.CUST_TODAY_ORD = 0 AND Z.NOCUST_TODAY_ORD = 0 THEN 'N' ELSE 'Y' END AS SOLDOUT_YN
 			 , CASE WHEN #{frontGb} = 'P' THEN (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_PRATE/100)
@@ -524,7 +525,7 @@
 					 , CD.OPT_CD
 					 , CD.ITEM_QTY
 					 , CD.CART_DTL_SQ
-					 , (SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(O.OPT_CD1,'') , G.MAIN_COLOR_CD ) AND USE_YN  = 'Y') AS COLOR_NM
+					 , IFNULL((SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(O.OPT_CD1,'') , G.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), O.OPT_CD1) AS COLOR_NM
 		             , O.OPT_CD1
 					 , O.OPT_CD2
 					 , G.GOODS_TYPE
@@ -546,6 +547,9 @@
 					 , (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CD.ITEM_CD) AS ITEM_NM
 					 , CASE WHEN G.SELF_GOODS_YN = 'Y' THEN 'WMS'
 							ELSE DFP.DELV_FEE_CD END AS DELV_FEE_CD
+					 , CASE WHEN GQDS.GOODS_CD IS NULL AND G.SELF_GOODS_YN = 'Y' THEN 'SHOT'
+							WHEN G.SELF_GOODS_YN = 'Y' THEN 'WMS'
+							ELSE DFP.DELV_FEE_CD END AS CART_DELV_FEE_CD
 					 , CASE WHEN C.CUST_NO > 0 AND (SELECT IFNULL(SUM(OD.ORD_QTY), 0)
 													FROM   TB_ORDER_DETAIL OD
 													INNER  JOIN TB_ORDER O
@@ -558,8 +562,9 @@
 													AND    OD.GOODS_CD = C.GOODS_CD
 													AND    DATE(ORD_DT) = CURRENT_DATE) + C.GOODS_QTY > G.DAY_MAX_ORD_QTY THEN 1 ELSE 0 END CUST_TODAY_ORD
 					 , CASE WHEN C.CUST_NO = 0 AND C.GOODS_QTY > G.DAY_MAX_ORD_QTY THEN 1 ELSE 0 END AS NOCUST_TODAY_ORD
-					 , CASE WHEN G.GOODS_TYPE != 'G056_S' AND G.SELF_GOODS_YN = 'Y' THEN (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = CD.OPT_CD1 AND DEFAULT_IMG_YN = 'Y' LIMIT 1)
-							ELSE (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' LIMIT 1) END AS SYS_IMG_NM
+					 /*, CASE WHEN G.GOODS_TYPE != 'G056_S' AND G.SELF_GOODS_YN = 'Y' THEN (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = CD.OPT_CD1 AND DEFAULT_IMG_YN = 'Y' LIMIT 1)
+							ELSE (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' LIMIT 1) END AS SYS_IMG_NM*/
+					 , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IFNULL(G.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') AS SYS_IMG_NM
 				FROM   TB_CART C
 				INNER  JOIN TB_CART_DETAIL CD
 				ON     C.CART_SQ = CD.CART_SQ
@@ -630,6 +635,8 @@
 				ON     C.CUST_NO = CT.CUST_NO
 				LEFT   OUTER JOIN TB_GOODS_ORDER_GRADE GOG
 				ON     G.GOODS_CD = GOG.GOODS_CD
+				LEFT   OUTER JOIN TB_GOODS_QUICK_DELEVERY_SKIP GQDS
+				ON     G.GOODS_CD = GQDS.GOODS_CD
 				WHERE  G.SELF_MALL_YN = 'Y'
 				AND    G.GOODS_STAT = 'G008_90'
 				<if test="custNo == 0">
@@ -663,6 +670,7 @@
 			 , Z.BRAND_KNM
 			 , Z.SUPPLY_COMP_NM
 			 , Z.DELV_FEE_CD
+			 , Z.CART_DELV_FEE_CD
 			 , Z.CURR_PRICE
 			 , Z.PNT_PRATE
 			 , Z.PNT_MRATE

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

@@ -291,7 +291,7 @@
 		           , (SELECT MIN_ORD_QTY FROM TB_GOODS WHERE GOODS_CD = O.GOODS_CD ) AS MIN_ORD_QTY
 		      FROM TB_GOODS G
 		      INNER JOIN TB_OPTION O ON G.GOODS_CD = O.GOODS_CD
-		                             AND O.OPT_CD1 = #{colorCd}
+		                             AND O.OPT_CD1 = #{optCd1}
 		                             AND O.DISP_YN = 'Y' 
 		      INNER JOIN VW_STOCK VS ON O.GOODS_CD = VS.GOODS_CD
 		                          AND O.OPT_CD = VS.OPT_CD
@@ -659,7 +659,7 @@
 		                            </if>
 		      INNER JOIN TB_BRAND D ON G.BRAND_CD = D.BRAND_CD
 		                    AND D.USE_YN = 'Y'
-		      INNER JOIN TB_SITE_BRAND SB ON B.BRAND_CD  = SB.BRAND_CD
+		      INNER JOIN TB_SITE_BRAND SB ON D.BRAND_CD  = SB.BRAND_CD
 		                            AND SB.USE_YN = 'Y'
 		                            AND SB.SITE_CD = #{siteCd}
 		      INNER JOIN TB_BRAND_GROUP E ON D.BRAND_GROUP_NO = E.BRAND_GROUP_NO

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

@@ -38,9 +38,11 @@
 		     , GI.SYS_IMG_NM
 		     , OD.ORD_DTL_STAT
 		     , OD.ORD_QTY
+		     , OD.CNCL_RTN_QTY
 		     , OD.ORD_AMT
 		     , OD.REAL_ORD_AMT
 		     , OD.SAVE_PNT_AMT
+		     , OD.CNCL_RTN_AMT
 		     , OD.SHIP_COMP_CD
 		     , OD.GIFT_PACK_YN
 		     , (SELECT SHIP_COMP_NM
@@ -321,13 +323,11 @@
 			</if>
 			<if test="payGb != null and payGb != ''">
 		   AND PAY_GB = #{payGb}
-			</if>
-			<if test="payStat != null and payStat != ''">
-		   AND PAY_STAT = #{payStat}
 			</if>
 			<if test="pgGb != null and pgGb != ''">
 		   AND PG_GB = #{pgGb}
 			</if>
+		   AND PAY_STAT = 'G016_30'
 		</where>
 	</select>
 

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

@@ -31,6 +31,7 @@
 		     , OD.GOODS_CD
 		     , G1.GOODS_NM
 		     , G1.GOODS_TYPE
+		     , G1.LIST_PRICE
 		     , FN_GET_CODE_NM('G056', G1.GOODS_TYPE)			AS GOODS_TYPE_NM
 		     , G2.GOODS_CD										AS ITEM_CD
 		     , G2.GOODS_NM										AS ITEM_NM

+ 280 - 445
src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html

@@ -1,5 +1,18 @@
 <html lang="ko"
 	  xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : cartListAjaxFormWeb
+ * @desc	: 장바구니
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE		 AUTHOR	  DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.02   xodud1202   최초 작성
+ *******************************************************************************
+ -->
 <form id="cartListForm" method="post" action="/order/noMember">
 	<!--<input type="hidden" name="cartCpnDcAmt" id="cartCpnDcAmt" th:value="${param.cartCpnDcAmt}" />-->
 
@@ -35,564 +48,383 @@
 			</div>
 		</div>
 		<div class="sec_body">
-			<form class="form_wrap">
-				<div class="sec_select">
-					<div>
-						<div class="form_field">
-							<input id="od_item_all" type="checkbox"><label for="od_item_all"><span>전체선택</span></label>
-						</div>
-						<button type="button" class="btn btn_default btn_sm"><span>선택삭제</span></button>
+			<div class="sec_select">
+				<div>
+					<div class="form_field">
+						<input id="od_item_all" type="checkbox"><label for="od_item_all"><span>전체선택</span></label>
 					</div>
+					<button type="button" class="btn btn_default btn_sm"><span>선택삭제</span></button>
 				</div>
-				<div class="sec_part">
-					<h3 class="subH2">
-						STYLE24 배송
-					</h3>
-					<div class="area_part">
-						<h4 class="subH2">
-							총알배송
-							<span class="tit_info">오늘 자정까지 도착</span>
-						</h4>
-						<div class="part_goods">
-							<div class="goods_cont">
-								<!-- 주문상품 -->
-								<th:block th:each="cart, status : ${wmsCartList}">
-									<div class="cartInfo goods_info wmsCartInfo">
-										<input type="hidden" name="applyQtySectionYn" th:value="${cart.applyQtySectionYn}" />
-										<input type="hidden" name="applyAmtSectionYn" th:value="${cart.applyAmtSectionYn}" />
-										<input type="hidden" name="qtyTmtbSq" th:value="${cart.qtyTmtbSq}" />
-										<input type="hidden" name="qtyTmtbNm" th:value="${cart.qtyTmtbNm}" />
-										<input type="hidden" name="amtTmtbSq" th:value="${cart.amtTmtbSq}" />
-										<input type="hidden" name="amtTmtbNm" th:value="${cart.amtTmtbNm}" />
-										<input type="hidden" name="currPrice" th:value="${cart.currPrice}" />
-										<input type="hidden" name="soldoutYn" th:value="${cart.soldoutYn}" />
-										<input type="hidden" name="tmtbDcAmt" th:value="${cart.tmtbDcAmt}" />
-										<input type="hidden" name="cartSq" th:value="${cart.cartSq}" />
-
-										<div class="order_desc">
-											<div class="form_box">
-												<div class="form_field">
-													<input th:id="|od_item_${cart.cartSq}|" name="cartSqArr" type="checkbox" th:value="${cart.cartSq}" th:checked="${cart.soldoutYn.equals('N')}" th:disabled="${cart.soldoutYn.equals('Y')}"/>
-													<label th:for="|od_item_${cart.cartSq}|">
-														<span class="sr-only">상품선택</span>
-													</label>
-												</div>
-											</div>
-											<div class="goods_box">
-												<div class="gd_item">
-													<a href="">
-														<span class="thumb">
-															<img th:src="${IMG_PATH} + '/' + ${cart.sysImgNm}" src="/" width="100%" alt="">
-														</span>
-														<p>
-															<span class="brand" th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span>
-														</p>
-														<p>
-															<span class="name" th:text="${cart.goodsNm}"></span>
-														</p>
-													</a>
-												</div>
-												<div class="gd_opt">
-													<div class="option_wrap">
-														<span class="title sr-only">주문 옵션</span>
-														<th:block th:each="opt, index : ${cart.itemNmArr}">
-															<th:block th:if="${cart.goodsType.equals('G056_S')}">
-																<span class="option" th:text="${cart.itemNmArr[index.index]} + ' / ' + ${cart.colorNmArr[index.index]} + ' / ' + ${cart.optCd2Arr[index.index]}"></span>
-															</th:block>
-															<th:block th:if="${!cart.goodsType.equals('G056_S')}">
-																<span class="option" th:text="${cart.colorNmArr[index.index]} + ' / ' + ${cart.optCd2Arr[index.index]}"></span>
-															</th:block>
-														</th:block>
-													</div>
-												</div>
-												<div class="gd_calc">
-													<p>
-														<span class="count">수량&nbsp;<em th:text="${cart.goodsQty}"></em>개</span>
-													</p>
-												</div>
-												<div class="gd_exinfo">
-													<p th:if="${!#strings.isEmpty(cart.delvResDt)}"><span class="tag primary_line">총알배송</span><span th:text="|${cart.delvResDt} 배송예정|">2020.12.25 배송예정</span></p>
-													<p th:if="${(cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y') or (cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y')}"><span class="tag primary">SALE</span>다다익선 할인 적용</p>
-												</div>
-											</div>
-											<div class="calc_box">
-												<th:block  th:if="${cart.tmtbDcAmt < cart.currPrice}">
-													<p><span class="price_org"><em th:text="${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')}"></em>원</span></p>
-													<p><span class="price_sale"><em th:text="${#numbers.formatInteger(cart.tmtbDcAmt, 1, 'COMMA')}"></em>원</span></p>
-												</th:block>
-												<th:block th:if="${cart.tmtbDcAmt == cart.currPrice}">
-													<p><span class="price_sale"><em th:text="${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')}"></em>원</span></p>
-												</th:block>
-												<p>
-													<span class="point">
-														<em th:text="${#numbers.formatInteger(cart.savePntAmt, 1, 'COMMA')}"></em><stong>P</stong>&nbsp;적립예정
-													</span>
-												</p>
-											</div>
-											<div class="button_box">
-												<p th:if="${cart.soldoutYn.equals('Y')}"><button type="button" class="btn btn_dark btn_sm" disabled=""><span>구매 불가</span></button></p>
-												<p th:if="${cart.soldoutYn.equals('N')}"><button type="button" class="btn btn_primary btn_sm" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>바로 구매</span></button></p>
-
-												<p><button type="button" id="btn_opt_modify1" class="btn btn_default btn_sm" th:onclick="|fnChangeCartOptCd(${cart.cartSq})|"><span>옵션 / 수량 변경</span></button></p>
-												<div class="util">
-													<span>
-														<button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active" onclick="cfnPutWishList(this)" th:goodsCd="${cart.goodsCd}" th:ithrCd="${cart.ithrCd}" th:contentsLoc="${cart.contentsLoc}">
-															<span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span>
-														</button>
-													</span>
-													<span>
-														<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|">
-															<span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span>
-														</button>
-													</span>
-												</div>
-											</div>
-										</div>
-									</div>
-								</th:block>
-								<!-- //주문상품 -->
-								<!-- 주문상품 -->
-								<div class="goods_info">
-									<div class="order_desc">
-										<div class="form_box">
-											<div class="form_field">
-												<input id="od_item_12" type="checkbox"><label for="od_item_12"><span class="sr-only">상품선택</span></label>
-											</div>
-										</div>
-										<div class="goods_box">
-											<div class="gd_item">
-												<a href="">
-                                                                    <span class="thumb">
-                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
-                                                                    </span>
-													<p>
-														<span class="brand">Mollimelli 몰리멜리</span>
-													</p>
-													<p>
-														<span class="name">남성 오버 소매배색 컬러가디건 (n205ap9829p)</span>
-													</p>
-												</a>
-											</div>
-											<div class="gd_opt">
-												<div class="option_wrap">
-													<span class="title sr-only">주문 옵션</span>
-													<span class="option">BLACK&nbsp;/&nbsp;XXL</span>
-												</div>
-											</div>
-											<div class="gd_calc">
-												<p>
-													<span class="count">수량&nbsp;<em>1</em>개</span>
-												</p>
-											</div>
-										</div>
-										<div class="calc_box">
-											<p>
-												<span class="price_org"><em>39,990</em>원</span>
-											</p>
-											<p>
-												<span class="price_sale"><em>15,120</em>원</span>
-											<p>
-												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
-											</p>
-										</div>
-										<div class="button_box">
-											<p><button type="button" class="btn btn_primary btn_sm"><span>바로 구매</span></button></p>
-											<p><button type="button" id="btn_opt_modify2" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
-											<div class="util">
-                                                                <span>
-                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
-                                                                </span>
-												<span>
-                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
-                                                                </span>
-											</div>
-										</div>
-									</div>
-								</div>
-								<!-- //주문상품 -->
-							</div>
-						</div>
-					</div>
-					<div class="area_part">
-						<h4 class="subH2">
-							일반배송
-						</h4>
-						<div class="part_goods">
-							<div class="goods_cont">
-								<!-- 주문상품 -->
-								<div class="goods_info">
+			</div>
+			<div class="sec_part" th:if="${shotCartList.size() > 0 or wmsCartList.size() > 0}">
+				<h3 class="subH2">
+					STYLE24 배송
+				</h3>
+				<div class="area_part" th:if="${shotCartList.size() > 0}">
+					<h4 class="subH2">
+						총알배송
+						<span class="tit_info">오늘 자정까지 도착</span>
+					</h4>
+					<div class="part_goods">
+						<div class="goods_cont">
+							<!-- 주문상품 -->
+							<th:block th:each="cart, status : ${shotCartList}">
+								<div class="cartInfo goods_info wmsCartInfo">
+									<input type="hidden" name="applyQtySectionYn" th:value="${cart.applyQtySectionYn}" />
+									<input type="hidden" name="applyAmtSectionYn" th:value="${cart.applyAmtSectionYn}" />
+									<input type="hidden" name="qtyTmtbSq" th:value="${cart.qtyTmtbSq}" />
+									<input type="hidden" name="qtyTmtbNm" th:value="${cart.qtyTmtbNm}" />
+									<input type="hidden" name="amtTmtbSq" th:value="${cart.amtTmtbSq}" />
+									<input type="hidden" name="amtTmtbNm" th:value="${cart.amtTmtbNm}" />
+									<input type="hidden" name="currPrice" th:value="${cart.currPrice}" />
+									<input type="hidden" name="soldoutYn" th:value="${cart.soldoutYn}" />
+									<input type="hidden" name="tmtbDcAmt" th:value="${cart.tmtbDcAmt}" />
+									<input type="hidden" name="cartSq" th:value="${cart.cartSq}" />
+
 									<div class="order_desc">
 										<div class="form_box">
 											<div class="form_field">
-												<input id="od_item_21" type="checkbox"><label for="od_item_21"><span class="sr-only">상품선택</span></label>
+												<input th:id="|od_item_${cart.cartSq}|" name="cartSqArr" type="checkbox" th:value="${cart.cartSq}" th:checked="${cart.soldoutYn.equals('N')}" th:disabled="${cart.soldoutYn.equals('Y')}"/>
+												<label th:for="|od_item_${cart.cartSq}|">
+													<span class="sr-only">상품선택</span>
+												</label>
 											</div>
 										</div>
 										<div class="goods_box">
 											<div class="gd_item">
 												<a href="">
-                                                                    <span class="thumb">
-                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
-                                                                    </span>
+													<span class="thumb">
+														<img th:src="${IMG_PATH} + '/' + ${cart.sysImgNm}" src="/" width="100%" alt="">
+													</span>
 													<p>
-														<span class="brand">Mollimelli 몰리멜리</span>
+														<span class="brand" th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span>
 													</p>
 													<p>
-														<span class="name">남성 오버 소매배색 싸이로 리얼 컬러 블록 세미오버핏 이중지 심플 기본 와이넥 원단추 캐시미어 굵은 꼬임 10종 컬러가디건 (n205ap9829p)</span>
+														<span class="name" th:text="${cart.goodsNm}"></span>
 													</p>
 												</a>
 											</div>
 											<div class="gd_opt">
 												<div class="option_wrap">
 													<span class="title sr-only">주문 옵션</span>
-													<span class="option">슬림핏 마이크로 체크 네이비컬러 세미오버핏 이중 심플 기본 와이넥 원단추 캐시미어 굵은 스탠드카라 베이직 셋업수트 자켓&nbsp;/&nbsp;BLACK&nbsp;/&nbsp;XXL</span>
+													<th:block th:each="opt, index : ${cart.itemNmArr}">
+														<th:block th:if="${cart.goodsType.equals('G056_S')}">
+															<span class="option" th:text="${cart.itemNmArr[index.index]} + ' / ' + ${cart.colorNmArr[index.index]} + ' / ' + ${cart.optCd2Arr[index.index]}"></span>
+														</th:block>
+														<th:block th:if="${!cart.goodsType.equals('G056_S')}">
+															<span class="option" th:text="${cart.colorNmArr[index.index]} + ' / ' + ${cart.optCd2Arr[index.index]}"></span>
+														</th:block>
+													</th:block>
 												</div>
 											</div>
 											<div class="gd_calc">
 												<p>
-													<span class="count">수량&nbsp;<em>1</em>개</span>
+													<span class="count">수량&nbsp;<em th:text="${cart.goodsQty}"></em>개</span>
 												</p>
 											</div>
 											<div class="gd_exinfo">
-												<p>2020.12.25 배송예정</p>
-												<p><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
+												<p th:if="${!#strings.isEmpty(cart.delvResDt)}"><span class="tag primary_line">총알배송</span><span th:text="|${cart.delvResDt} 배송예정|"></span></p>
+												<p th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y'}"><span class="tag primary">SALE</span>다다익선 할인 적용</p>
+												<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y'}"><span class="tag primary">SALE</span>다다익선 할인 적용</p>
+												<p th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N'}"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
+												<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N'}"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
+												<p th:if="${cart.soldoutYn.equals('Y')}">해당 상품은 구매 불가능한 상품입니다.</p>
 											</div>
 										</div>
 										<div class="calc_box">
+											<th:block  th:if="${cart.tmtbDcAmt < cart.currPrice}">
+												<p><span class="price_org"><em th:text="${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')}"></em>원</span></p>
+												<p><span class="price_sale"><em th:text="${#numbers.formatInteger(cart.tmtbDcAmt, 1, 'COMMA')}"></em>원</span></p>
+											</th:block>
+											<th:block th:if="${cart.tmtbDcAmt == cart.currPrice}">
+												<p><span class="price_sale"><em th:text="${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')}"></em>원</span></p>
+											</th:block>
 											<p>
-												<span class="price_org"><em>39,990</em>원</span>
-											</p>
-											<p>
-												<span class="price_sale"><em>15,120</em>원</span>
-											<p>
-												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
+												<span class="point">
+													<em th:text="${#numbers.formatInteger(cart.savePntAmt, 1, 'COMMA')}"></em><stong>P</stong>&nbsp;적립예정
+												</span>
 											</p>
 										</div>
 										<div class="button_box">
-											<button type="button" class="btn btn_primary btn_sm"><span>바로 구매</span></button>
-											<p><button type="button" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
+											<p th:if="${cart.soldoutYn.equals('Y')}"><button type="button" class="btn btn_dark btn_sm" disabled=""><span>구매 불가</span></button></p>
+											<p th:if="${cart.soldoutYn.equals('N')}"><button type="button" class="btn btn_primary btn_sm" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>바로 구매</span></button></p>
+
+											<p><button type="button" class="btn btn_default btn_sm" th:onclick="|fnChangeCartOptCd(${cart.cartSq})|"><span>옵션 / 수량 변경</span></button></p>
 											<div class="util">
-                                                                <span>
-                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
-                                                                </span>
 												<span>
-                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
-                                                                </span>
-											</div>
-										</div>
-									</div>
-								</div>
-								<!-- //주문상품 -->
-								<!-- 주문상품 -->
-								<div class="goods_info">
-									<div class="order_desc">
-										<div class="form_box">
-											<div class="form_field">
-												<input id="od_item_22" type="checkbox"><label for="od_item_22"><span class="sr-only">상품선택</span></label>
-											</div>
-										</div>
-										<div class="goods_box">
-											<div class="gd_item">
-												<a href="">
-                                                                    <span class="thumb">
-                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
-                                                                    </span>
-													<p>
-														<span class="brand">Mollimelli 몰리멜리</span>
-													</p>
-													<p>
-														<span class="name">남성 오버 소매배색 컬러가디건 (n205ap9829p)</span>
-													</p>
-												</a>
-											</div>
-											<div class="gd_opt">
-												<div class="option_wrap">
-													<span class="title sr-only">주문 옵션</span>
-													<span class="option">BLACK&nbsp;/&nbsp;XXL</span>
-												</div>
-											</div>
-											<div class="gd_calc">
-												<p>
-													<span class="count">수량&nbsp;<em>1</em>개</span>
-												</p>
-											</div>
-										</div>
-										<div class="calc_box">
-											<p>
-												<span class="price_org"><em>39,990</em>원</span>
-											</p>
-											<p>
-												<span class="price_sale"><em>15,120</em>원</span>
-											<p>
-												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
-											</p>
-										</div>
-										<div class="button_box">
-											<p><button type="button" class="btn btn_primary btn_sm"><span>바로 구매</span></button></p>
-											<p><button type="button" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
-											<div class="util">
-                                                                <span>
-                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
-                                                                </span>
+													<button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active" onclick="cfnPutWishList(this)" th:goodsCd="${cart.goodsCd}" th:ithrCd="${cart.ithrCd}" th:contentsLoc="${cart.contentsLoc}">
+														<span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span>
+													</button>
+												</span>
 												<span>
-                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
-                                                                </span>
+													<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|">
+														<span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span>
+													</button>
+												</span>
 											</div>
 										</div>
 									</div>
 								</div>
-								<!-- //주문상품 -->
-							</div>
-							<div class="goods_foot"> <!-- 일반배송 테이블에만 .goods_foot -->
-								<div class="order_delivery">
-									<span class="dlvr_fee">배송비 무료</span>
-								</div>
-							</div>
+							</th:block>
+							<!-- //주문상품 -->
 						</div>
 					</div>
 				</div>
-				<div class="sec_part">
-					<h3 class="subH2">업체직배송</h3>
-					<div class="area_part">
-						<div class="part_goods">
-							<div class="goods_cont">
-								<!-- 주문상품 -->
-								<div class="goods_info">
+				<div class="area_part" th:if="${wmsCartList.size() > 0}">
+					<h4 class="subH2">
+						일반배송
+					</h4>
+					<div class="part_goods">
+						<div class="goods_cont">
+							<!-- 주문상품 -->
+							<th:block th:each="cart, status : ${wmsCartList}">
+								<div class="goods_info goods_info wmsCartInfo">
+									<input type="hidden" name="applyQtySectionYn" th:value="${cart.applyQtySectionYn}" />
+									<input type="hidden" name="applyAmtSectionYn" th:value="${cart.applyAmtSectionYn}" />
+									<input type="hidden" name="qtyTmtbSq" th:value="${cart.qtyTmtbSq}" />
+									<input type="hidden" name="qtyTmtbNm" th:value="${cart.qtyTmtbNm}" />
+									<input type="hidden" name="amtTmtbSq" th:value="${cart.amtTmtbSq}" />
+									<input type="hidden" name="amtTmtbNm" th:value="${cart.amtTmtbNm}" />
+									<input type="hidden" name="currPrice" th:value="${cart.currPrice}" />
+									<input type="hidden" name="soldoutYn" th:value="${cart.soldoutYn}" />
+									<input type="hidden" name="tmtbDcAmt" th:value="${cart.tmtbDcAmt}" />
+									<input type="hidden" name="cartSq" th:value="${cart.cartSq}" />
+
 									<div class="order_desc">
 										<div class="form_box">
 											<div class="form_field">
-												<input id="od_item_31" type="checkbox"><label for="od_item_31"><span class="sr-only">상품선택</span></label>
+												<input th:id="|od_item_${cart.cartSq}|" name="cartSqArr" type="checkbox" th:value="${cart.cartSq}" th:checked="${cart.soldoutYn.equals('N')}" th:disabled="${cart.soldoutYn.equals('Y')}">
+												<label th:for="|od_item_${cart.cartSq}|">
+													<span class="sr-only">상품선택</span>
+												</label>
 											</div>
 										</div>
 										<div class="goods_box">
 											<div class="gd_item">
 												<a href="">
-                                                                    <span class="thumb">
-                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
-                                                                    </span>
-													<p>
-														<span class="brand">Mollimelli 몰리멜리</span>
-													</p>
-													<p>
-														<span class="name">남성 오버 소매배색 싸이로 리얼 컬러 블록 세미오버핏 이중지 심플 기본 와이넥 원단추 캐시미어 굵은 꼬임 10종 컬러가디건 (n205ap9829p)</span>
-													</p>
+													<span class="thumb"><img th:src="${IMG_PATH} + '/' + ${cart.sysImgNm}" src="/" width="100%" alt=""></span>
+													<p><span class="brand" th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span></p>
+													<p><span class="name" th:text="${cart.goodsNm}"></span></p>
 												</a>
 											</div>
 											<div class="gd_opt">
 												<div class="option_wrap">
 													<span class="title sr-only">주문 옵션</span>
-													<span class="option">슬림핏 마이크로 체크 네이비컬러 세미오버핏 이중 심플 기본 와이넥 원단추 캐시미어 굵은 스탠드카라 베이직 셋업수트 자켓&nbsp;/&nbsp;BLACK&nbsp;/&nbsp;XXL</span>
+													<th:block th:each="opt, index : ${cart.itemNmArr}">
+														<th:block th:if="${cart.goodsType.equals('G056_S')}">
+															<span class="option" th:text="${cart.itemNmArr[index.index]} + ' / ' + ${cart.colorNmArr[index.index]} + ' / ' + ${cart.optCd2Arr[index.index]}"></span>
+														</th:block>
+														<th:block th:if="${!cart.goodsType.equals('G056_S')}">
+															<span class="option" th:text="${cart.colorNmArr[index.index]} + ' / ' + ${cart.optCd2Arr[index.index]}"></span>
+														</th:block>
+													</th:block>
 												</div>
 											</div>
 											<div class="gd_calc">
-												<p>
-													<span class="count">수량&nbsp;<em>1</em>개</span>
-												</p>
+												<p><span class="count">수량&nbsp;<em th:text="${cart.goodsQty}"></em>개</span></p>
 											</div>
 											<div class="gd_exinfo">
-												<p><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
-												<p>2021.03.03 배송예정</p>
-											</div>
-										</div>
-										<div class="calc_box">
-											<p>
-												<span class="price_org"><em>39,990</em>원</span>
-											</p>
-											<p>
-												<span class="price_sale"><em>15,120</em>원</span>
-											<p>
-												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
-											</p>
-										</div>
-										<div class="button_box">
-											<p><button type="button" class="btn btn_primary btn_sm"><span>바로 구매</span></button></p>
-											<p><button type="button" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
-											<div class="util">
-                                                                <span>
-                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
-                                                                </span>
-												<span>
-                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
-                                                                </span>
-											</div>
-										</div>
-									</div>
-								</div>
-								<!-- //주문상품 -->
-								<!-- 주문상품 -->
-								<div class="goods_info">
-									<div class="order_desc">
-										<div class="form_box">
-											<div class="form_field">
-												<input id="od_item_32" type="checkbox"><label for="od_item_32"><span class="sr-only">상품선택</span></label>
-											</div>
-										</div>
-										<div class="goods_box">
-											<div class="gd_item">
-												<a href="">
-                                                                    <span class="thumb">
-                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
-                                                                    </span>
-													<p>
-														<span class="brand">Mollimelli 몰리멜리</span>
-													</p>
-													<p>
-														<span class="name">남성 오버 소매배색 컬러가디건 (n205ap9829p)</span>
-													</p>
-												</a>
-											</div>
-											<div class="gd_opt">
-												<div class="option_wrap">
-													<span class="title sr-only">주문 옵션</span>
-													<span class="option">BLACK&nbsp;/&nbsp;XXL</span>
+												<div class="gd_exinfo">
+													<p th:if="${!#strings.isEmpty(cart.delvResDt)}" th:text="|${cart.delvResDt} 배송예정|"></p>
+													<p th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y'}"><span class="tag primary">SALE</span>다다익선 할인 적용</p>
+													<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y'}"><span class="tag primary">SALE</span>다다익선 할인 적용</p>
+													<p th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N'}"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
+													<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N'}"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
+													<p th:if="${cart.soldoutYn.equals('Y')}">해당 상품은 구매 불가능한 상품입니다.</p>
 												</div>
 											</div>
-											<div class="gd_calc">
-												<p>
-													<span class="count">수량&nbsp;<em>1</em>개</span>
-												</p>
-											</div>
-											<div class="gd_exinfo">
-												<p>해당 상품은 구매 불가능한 상품입니다.</p>
-											</div>
 										</div>
 										<div class="calc_box">
+											<th:block  th:if="${cart.tmtbDcAmt < cart.currPrice}">
+												<p><span class="price_org"><em th:text="${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')}"></em>원</span></p>
+												<p><span class="price_sale"><em th:text="${#numbers.formatInteger(cart.tmtbDcAmt, 1, 'COMMA')}"></em>원</span></p>
+											</th:block>
+											<th:block th:if="${cart.tmtbDcAmt == cart.currPrice}">
+												<p><span class="price_sale"><em th:text="${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')}"></em>원</span></p>
+											</th:block>
 											<p>
-												<span class="price_org"><em>39,990</em>원</span>
-											</p>
-											<p>
-												<span class="price_sale"><em>15,120</em>원</span>
-											<p>
-												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
+												<span class="point">
+													<em th:text="${#numbers.formatInteger(cart.savePntAmt, 1, 'COMMA')}"></em><stong>P</stong>&nbsp;적립예정
+												</span>
 											</p>
 										</div>
 										<div class="button_box">
-											<p><button type="button" class="btn btn_dark btn_sm" disabled=""><span>구매 불가</span></button></p>
-											<p><button type="button" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
+											<p th:if="${cart.soldoutYn.equals('Y')}"><button type="button" class="btn btn_dark btn_sm" disabled=""><span>구매 불가</span></button></p>
+											<p th:if="${cart.soldoutYn.equals('N')}"><button type="button" class="btn btn_primary btn_sm" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>바로 구매</span></button></p>
+
+											<p><button type="button" class="btn btn_default btn_sm" th:onclick="|fnChangeCartOptCd(${cart.cartSq})|"><span>옵션 / 수량 변경</span></button></p>
 											<div class="util">
-                                                                <span>
-                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
-                                                                </span>
 												<span>
-                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
-                                                                </span>
+													<button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active" onclick="cfnPutWishList(this)" th:goodsCd="${cart.goodsCd}" th:ithrCd="${cart.ithrCd}" th:contentsLoc="${cart.contentsLoc}">
+														<span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span>
+													</button>
+												</span>
+												<span>
+													<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|">
+														<span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span>
+													</button>
+												</span>
 											</div>
 										</div>
 									</div>
 								</div>
-								<!-- //주문상품 -->
-							</div>
-							<div class="goods_foot">
-								<div class="order_delivery">
-									<span class="dlvr_fee">배송비&nbsp;<em>3,000</em>원</span>
-									<span class="dlvr_shop"><em>TBJ</em>&nbsp;업체직배송</span>
-									<a href="#" class="btn_popup_save">배송비 SAVE 상품 보기</a>
-								</div>
-							</div>
+							</th:block>
+							<!-- //주문상품 -->
 						</div>
+					</div>
+				</div>
+
+				<!-- 자사 배송비 -->
+				<div class="goods_foot" style="margin-top:40px;">
+					<div class="order_delivery" th:classappend="|delv_${order.cartDelvFeeCd}|">
+						<span class="dlvr_fee" th:if="${order.wmsDelvFee == 0}">배송비 무료</span>
+						<span class="dlvr_fee" th:if="${order.wmsDelvFee > 0}">배송비&nbsp;<em th:text="|배송비 ${#numbers.formatInteger(order.wmsDelvFee, 1, 'COMMA')}|"></em>원</span>
+						<a href="#" class="btn_popup_save" th:if="${order.wmsDelvFee > 0}">배송비 SAVE 상품 보기</a>
+					</div>
+				</div>
+			</div>
+
+
+			<div class="sec_part" th:if="${delvCartList != null and delvCartList.size() > 0}">
+				<h3 class="subH2">업체직배송</h3>
+				<div class="area_part">
+					<th:block th:each="cart, status : ${delvCartList}">
 						<div class="part_goods">
 							<div class="goods_cont">
 								<!-- 주문상품 -->
-								<div class="goods_info">
+								<div class="goods_info cartInfo delvCartInfo">
+									<input type="hidden" name="applyQtySectionYn" th:value="${cart.applyQtySectionYn}" />
+									<input type="hidden" name="applyAmtSectionYn" th:value="${cart.applyAmtSectionYn}" />
+									<input type="hidden" name="qtyTmtbSq" th:value="${cart.qtyTmtbSq}" />
+									<input type="hidden" name="qtyTmtbNm" th:value="${cart.qtyTmtbNm}" />
+									<input type="hidden" name="amtTmtbSq" th:value="${cart.amtTmtbSq}" />
+									<input type="hidden" name="amtTmtbNm" th:value="${cart.amtTmtbNm}" />
+									<input type="hidden" name="currPrice" th:value="${cart.currPrice}" />
+									<input type="hidden" name="soldoutYn" th:value="${cart.soldoutYn}" />
+									<input type="hidden" name="tmtbDcAmt" th:value="${cart.tmtbDcAmt}" />
+									<input type="hidden" name="cartSq" th:value="${cart.cartSq}" />
+
 									<div class="order_desc">
 										<div class="form_box">
 											<div class="form_field">
-												<input id="od_item_33" type="checkbox"><label for="od_item_33"><span class="sr-only">상품선택</span></label>
+												<input th:id="|od_item_${cart.cartSq}|" name="cartSqArr" type="checkbox" th:value="${cart.cartSq}" th:checked="${cart.soldoutYn.equals('N')}" th:disabled="${cart.soldoutYn.equals('Y')}">
+												<label th:for="|od_item_${cart.cartSq}|">
+													<span class="sr-only">상품선택</span>
+												</label>
 											</div>
 										</div>
 										<div class="goods_box">
 											<div class="gd_item">
 												<a href="">
-                                                                    <span class="thumb">
-                                                                        <img src="/images/pc/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
-                                                                    </span>
-													<p>
-														<span class="brand">Mollimelli 몰리멜리</span>
-													</p>
-													<p>
-														<span class="name">남성 오버 소매배색 싸이로 리얼 컬러 블록 세미오버핏 이중지 심플 기본 와이넥 원단추 캐시미어 굵은 꼬임 10종 컬러가디건 (n205ap9829p)</span>
-													</p>
+													<span class="thumb"><img th:src="${IMG_PATH} + '/' + ${cart.sysImgNm}" src="/" width="100%" alt=""></span>
+													<p><span class="brand" th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span></p>
+													<p><span class="name" th:text="${cart.goodsNm}"></span></p>
 												</a>
 											</div>
 											<div class="gd_opt">
 												<div class="option_wrap">
 													<span class="title sr-only">주문 옵션</span>
-													<span class="option">슬림핏 마이크로 체크 네이비컬러 세미오버핏 이중 심플 기본 와이넥 원단추 캐시미어 굵은 스탠드카라 베이직 셋업수트 자켓&nbsp;/&nbsp;BLACK&nbsp;/&nbsp;XXL</span>
+													<th:block th:each="opt, index : ${cart.itemNmArr}">
+														<th:block th:if="${cart.goodsType.equals('G056_S')}">
+															<span class="option" th:text="${cart.itemNmArr[index.index]} + ' / ' + ${cart.colorNmArr[index.index]} + ' / ' + ${cart.optCd2Arr[index.index]}"></span>
+														</th:block>
+														<th:block th:if="${!cart.goodsType.equals('G056_S')}">
+															<span class="option" th:text="${cart.colorNmArr[index.index]} + ' / ' + ${cart.optCd2Arr[index.index]}"></span>
+														</th:block>
+													</th:block>
 												</div>
 											</div>
 											<div class="gd_calc">
-												<p>
-													<span class="count">수량&nbsp;<em>1</em>개</span>
-												</p>
+												<p><span class="count">수량&nbsp;<em th:text="${cart.goodsQty}"></em>개</span></p>
 											</div>
 											<div class="gd_exinfo">
-												<p><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
+												<p th:if="${!#strings.isEmpty(cart.delvResDt)}" th:text="|${cart.delvResDt} 배송예정|"></p>
+												<p th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'Y'}"><span class="tag primary">SALE</span>다다익선 할인 적용</p>
+												<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'Y'}"><span class="tag primary">SALE</span>다다익선 할인 적용</p>
+												<p th:if="${cart.qtyTmtbSq > 0 and cart.applyQtySectionYn == 'N'}"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
+												<p th:if="${cart.amtTmtbSq > 0 and cart.applyAmtSectionYn == 'N'}"><a href="" class="btn_moresale"><span class="tag primary">SALE</span>다다익선 상품보기</a></p>
+												<p th:if="${cart.soldoutYn.equals('Y')}">해당 상품은 구매 불가능한 상품입니다.</p>
 											</div>
 										</div>
 										<div class="calc_box">
+											<th:block  th:if="${cart.tmtbDcAmt < cart.currPrice}">
+												<p><span class="price_org"><em th:text="${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')}"></em>원</span></p>
+												<p><span class="price_sale"><em th:text="${#numbers.formatInteger(cart.tmtbDcAmt, 1, 'COMMA')}"></em>원</span></p>
+											</th:block>
+											<th:block th:if="${cart.tmtbDcAmt == cart.currPrice}">
+												<p><span class="price_sale"><em th:text="${#numbers.formatInteger(cart.currPrice, 1, 'COMMA')}"></em>원</span></p>
+											</th:block>
 											<p>
-												<span class="price_org"><em>39,990</em>원</span>
-											</p>
-											<p>
-												<span class="price_sale"><em>15,120</em>원</span>
-											<p>
-												<span class="point"><em>999,999</em><stong>P</stong>&nbsp;적립예정</span>
+												<span class="point">
+													<em th:text="${#numbers.formatInteger(cart.savePntAmt, 1, 'COMMA')}"></em><stong>P</stong>&nbsp;적립예정
+												</span>
 											</p>
 										</div>
 										<div class="button_box">
-											<p><button type="button" class="btn btn_primary btn_sm"><span>바로 구매</span></button></p>
-											<p><button type="button" class="btn btn_default btn_sm"><span>옵션 / 수량 변경</span></button></p>
+											<p th:if="${cart.soldoutYn.equals('Y')}"><button type="button" class="btn btn_dark btn_sm" disabled=""><span>구매 불가</span></button></p>
+											<p th:if="${cart.soldoutYn.equals('N')}"><button type="button" class="btn btn_primary btn_sm" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>바로 구매</span></button></p>
+
+											<p><button type="button" class="btn btn_default btn_sm" th:onclick="|fnChangeCartOptCd(${cart.cartSq})|"><span>옵션 / 수량 변경</span></button></p>
 											<div class="util">
-                                                                <span>
-                                                                    <button type="button" class="btn_favorite"><span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span></button>
-                                                                </span>
 												<span>
-                                                                    <button type="button" class="btn_delete"><span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span></button>
-                                                                </span>
+													<button type="button" class="btn_favorite" th:classappend="${cart.wishCnt > 0} ? active" onclick="cfnPutWishList(this)" th:goodsCd="${cart.goodsCd}" th:ithrCd="${cart.ithrCd}" th:contentsLoc="${cart.contentsLoc}">
+														<span><i class="ico ico_like2"></i><em class="sr-only">관심상품 추가</em></span>
+													</button>
+												</span>
+												<span>
+													<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq})|">
+														<span><i class="ico ico_trash"></i><em class="sr-only">상품삭제</em></span>
+													</button>
+												</span>
 											</div>
 										</div>
 									</div>
 								</div>
 								<!-- //주문상품 -->
 							</div>
-							<div class="goods_foot">
-								<div class="order_delivery">
-									<span class="dlvr_fee">배송비&nbsp;무료</span>
+
+							<!-- 입점업체 배송비 -->
+							<div class="goods_foot" th:if="${'Y'.equals(cart.addDelvFeeYn)}">
+							<!-- <div class="goods_foot" th:if="${cart.compCnt == status.index + 1}"> -->
+								<div class="order_delivery" th:classappend="|delv_${cart.delvFeeCd}|">
+									<span class="dlvr_fee" th:if="${cart.delvFee == 0}">배송비 무료</span>
+									<span class="dlvr_fee" th:if="${cart.delvFee > 0}">배송비&nbsp;<em th:text="${#numbers.formatInteger(cart.delvFee, 1, 'COMMA')}"></em>원</span>
+									<span class="dlvr_shop"><em th:text="${cart.supplyCompNm}"></em>&nbsp;업체직배송</span>
+									<a href="#" class="btn_popup_save" th:if="${cart.delvFee > 0}">배송비 SAVE 상품 보기</a>
 								</div>
 							</div>
 						</div>
-					</div>
+					</th:block>
 				</div>
-			</form>
+			</div>
 		</div>
 	</div>
 	<div class="od_side">
 		<div class="area_order">
 			<div class="tit_box">
 				<h3>결제 정보</h3>
-				<span>
-                                    <em class="number">14</em>개의 상품
-                                </span>
+				<span><em class="number" th:text="${order.totCartCnt}"></em>개의 상품</span>
 			</div>
 			<div class="od_amount_box">
 				<dl>
 					<div>
 						<dt>상품금액</dt>
-						<dd><em>1,746,500</em>원</dd>
+						<dd><em class="sumCurrPrice" th:text="${#numbers.formatInteger(order.sumOrdAmt, 1, 'COMMA')}"></em>원</dd>
 					</div>
 					<div>
 						<dt>배송비</dt>
-						<dd><em>0</em>원</dd>
+						<dd><em class="totDelvFee" th:text="${#numbers.formatInteger(order.totDelvFee, 1, 'COMMA')}"></em> 원</dd>
 					</div>
 					<div>
 						<dt>할인금액</dt>
-						<dd><span class="disc_amount"><em>-46,500</em>원</span></dd>
+						<dd><span class="disc_amount"><em class="totDcAmt" id="totDcAmt" th:text="${#numbers.formatInteger(order.totDcAmt, 1, 'COMMA')}"></em> 원</span></dd>
 					</div>
 				</dl>
 			</div>
 			<div class="totalprice_box">
 				<dl>
 					<dt>총 결제 예정 금액</dt>
-					<dd><span>1,700,000</span>원</dd>
+					<dd><span class="sumRealPayAmt" id="sumRealPayAmt" th:text="${#numbers.formatInteger(order.sumRealPayAmt + order.totDelvFee, 1, 'COMMA')}"></span> 원</dd>
 				</dl>
 			</div>
 			<div class="btn_box">
@@ -604,9 +436,9 @@
 			<div class="form_field">
 				<div class="input_wrap form_full">
 					<label class="input_label sr-only">할인코드입력</label>
-					<input type="text" class="form_control" placeholder="할인코드를 입력해주세요.">
+					<input type="text" id="serialCpnNm" class="form_control" placeholder="할인코드를 입력해주세요.">
 				</div>
-				<button type="button" class="btn btn_dark btn_sm"><span>적용</span></button>
+				<button type="button" class="btn btn_dark btn_sm" onclick="serialCpnApply()"><span>적용</span></button>
 			</div>
 			<div class="coupon_box">
 				<div class="coupon">
@@ -615,12 +447,13 @@
 							TBJ 시즌오프 20% 할인쿠폰
 						</p>
 						<p class="cp_cont">
-							<span><em>12,399,900</em>원</span>
-							<span><em>40</em>%</span>
+							<!--<span><em>12,399,900</em>원</span>
+							<span><em>40</em>%</span>-->
+							<span class="cp_dc_val"></span>
 						</p>
 						<p class="cp_condition">
-							500,000원 이상 구매 시 최대 50,000원 할인
-							<span><em class="tag primary_line">99장 보유</em></span>
+							<!--500,000원 이상 구매 시 최대 50,000원 할인
+							<span><em class="tag primary_line">99장 보유</em></span>-->
 						</p>
 					</div>
 					<p class="cp_date">
@@ -662,8 +495,8 @@
 	$(document).ready(function() {
 		/*let compsList = [];
 		let temp 			= new Object;
-		temp.goodsCd 		= "10770353";
-		temp.optCd 			= "9383682-1";
+		temp.goodsCd 		= "AOW13QDM76";
+		temp.optCd 			= "13256848-4";
 		temp.goodsQty 		= 1;
 		temp.goodsType 		= "G056_N";
 		temp.cartGb 		= "C";
@@ -673,9 +506,7 @@
 		temp.planDtlSq 		= "123";
 		compsList.push(temp);
 		cfnAddCart(compsList);*/
-		
-		
-		
+
 		if([[${!order.shotCanYn.equals('Y')}]]) {
 			// $(".shotDelvSelect").hide();
 		}
@@ -938,21 +769,25 @@
 			dataType : 'json',
 			data : jsonData,
 			success : function(result) {
-				$("#cartListForm .area_salecoupon .coupon_box").show();
-
-				// 합계 금액
-				$("#cartListForm #sumRealPayAmt").text(Number(sumRealPayAmt - result.serialCpnInfo.dcAmt).toLocaleString());
-				$("#cartListForm #totDcAmt").text(Number(totDcAmt - result.serialCpnInfo.dcAmt).toLocaleString());
-
-				// 쿠폰 정보
-				$("#cartListForm .area_salecoupon .cp_name").text(result.serialCpnInfo.cpnNm);
-				$("#cartListForm .area_salecoupon .cp_condition").html(result.serialCpnInfo.cpnDesc + "<span><em class='tag'>1장 보유</em></span>");
-				$("#cartListForm .area_salecoupon .availStdt").text(result.serialCpnInfo.availStdt);
-				$("#cartListForm .area_salecoupon .availEddt").text(result.serialCpnInfo.availEddt);
-				if(result.serialCpnInfo.dcWay == "G240_10") {
-					$("#cartListForm .area_salecoupon .cp_dc_val").html( "<em>" + Number(result.serialCpnInfo.dcVal).toLocaleString() + "</em> 원");
-				} else if (result.serialCpnInfo.dcWay == "G240_11") {
-					$("#cartListForm .area_salecoupon .cp_dc_val").html( "<em>" + result.serialCpnInfo.dcVal + "%</em>");
+				if(result.serialCpnInfo.result == "SUCCESS") {
+					$("#cartListForm .area_salecoupon .coupon_box").show();
+
+					// 합계 금액
+					$("#cartListForm #sumRealPayAmt").text(Number(sumRealPayAmt - result.serialCpnInfo.dcAmt).toLocaleString());
+					$("#cartListForm #totDcAmt").text(Number(totDcAmt - result.serialCpnInfo.dcAmt).toLocaleString());
+
+					// 쿠폰 정보
+					$("#cartListForm .area_salecoupon .cp_name").text(result.serialCpnInfo.cpnNm);
+					$("#cartListForm .area_salecoupon .cp_condition").html(result.serialCpnInfo.cpnDesc + "<span><em class='tag'>1장 보유</em></span>");
+					$("#cartListForm .area_salecoupon .availStdt").text(result.serialCpnInfo.availStdt);
+					$("#cartListForm .area_salecoupon .availEddt").text(result.serialCpnInfo.availEddt);
+					if (result.serialCpnInfo.dcWay == "G240_10") {
+						$("#cartListForm .area_salecoupon .cp_dc_val").html("<em>" + Number(result.serialCpnInfo.dcVal).toLocaleString() + "</em> 원");
+					} else if (result.serialCpnInfo.dcWay == "G240_11") {
+						$("#cartListForm .area_salecoupon .cp_dc_val").html("<em>" + result.serialCpnInfo.dcVal + "%</em>");
+					}
+				} else {
+					mcxDialog.alert(result.serialCpnInfo.result);
 				}
 			}
 		});

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

@@ -1038,6 +1038,87 @@
 /*]]>*/
 </script>
 
+<script th:inline="javascript">
+/*<![CDATA[*/
+var element_layer = document.getElementById('zipcode_layer');
+var cfnGetDaumRoadAddr = function(data) {
+	// 팝업에서 검색결과 항목을 클릭했을 때 실행할 코드를 작성하는 부분입니다.
+	// 예제를 참고하여 다양한 활용법을 확인해 보세요.
+	// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분
+
+	// 도로명 주소의 노출 규칙에 따라 주소를 조합한다.
+	// 내려오는 변수가 값이 없는 경우엔 공백('') 값을 가지므로, 이를 참고하여 분기한다.
+	let fullRoadAddr = data.roadAddress; // 도로명 주소 변수
+	let extraRoadAddr = ''; // 도로명 조합형 주소 변수
+
+	// 법정동명이 있을 경우 추가한다. (법정리는 제외)
+	// 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다.
+	if (data.bname !== '' && /[동|로|가]$/g.test(data.bname)) {
+		extraRoadAddr += data.bname;
+	}
+
+	// 건물명이 있고, 공동주택일 경우 추가한다.
+	if (data.buildingName !== '' && data.apartment === 'Y') {
+		extraRoadAddr += (extraRoadAddr !== '' ? ', ' + data.buildingName : data.buildingName);
+	}
+	
+	// 도로명, 지번 조합형 주소가 있을 경우, 괄호까지 추가한 최종 문자열을 만든다.
+	if (extraRoadAddr !== '') {
+		extraRoadAddr = ' (' + extraRoadAddr + ')';
+	}
+	
+	// 도로명, 지번 주소의 유무에 따라 해당 조합형 주소를 추가한다.
+	if (fullRoadAddr !== '') {
+		fullRoadAddr += extraRoadAddr;
+	}
+	
+	return fullRoadAddr;
+}
+
+var cfnOpenDaumAddr = function(daumZip) {
+	if ($('html').hasClass('is-ie')) {
+		daumZip.open();
+	} else {
+		daumZip.embed(element_layer);
+		
+		// iframe을 넣은 element를 보이게 한다.
+		element_layer.style.display = 'block';
+
+		// iframe을 넣은 element의 위치를 화면의 가운데로 이동시킨다.
+		cfnInitLayerPosition();
+	}
+}
+
+var cfnCloseDaumAddr = function() {
+	// iframe을 넣은 element를 안보이게 한다.
+	element_layer.style.display = 'none';
+}
+
+// 브라우저의 크기 변경에 따라 레이어를 가운데로 이동시키고자 하실때에는
+// resize이벤트나, orientationchange이벤트를 이용하여 값이 변경될때마다 아래 함수를 실행 시켜 주시거나,
+// 직접 element_layer의 top,left값을 수정해 주시면 됩니다.
+var cfnInitLayerPosition = function() {
+	let width = 420; //우편번호서비스가 들어갈 element의 width
+	let height = 470; //우편번호서비스가 들어갈 element의 height
+	let borderWidth = 1; //샘플에서 사용하는 border의 두께
+
+	// 위에서 선언한 값들을 실제 element에 넣는다.
+	element_layer.style.width = width + 'px';
+	element_layer.style.height = height + 'px';
+	element_layer.style.border = borderWidth + 'px solid';
+	
+	// 실행되는 순간의 화면 너비와 높이 값을 가져와서 중앙에 뜰 수 있도록 위치를 계산한다.
+	/*
+	element_layer.style.left = (((window.innerWidth || document.documentElement.clientWidth) - width) / 2 - borderWidth) + 'px';
+	element_layer.style.top = (((window.innerHeight || document.documentElement.clientHeight) - height) / 2 - borderWidth) + 'px';
+	*/
+	
+	// 다음 레이어 적용
+	$("#__daum__layer_1").css("z-index", 3000);
+}
+/*]]>*/
+</script>
+
 </footer>
 
-</html>
+</html>

+ 2 - 0
src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html

@@ -62,6 +62,8 @@
 	<script src="/ux/pc/js/jquery.ui.datepicker.monthyearpicker.js"></script>
 	<script src="/ux/plugins/jquery.serializeObject.min.js"></script>
 	<script src="/ux/plugins/mcxdialog/mcxdialog_ui.js"></script>
+	
+	<script type="text/javascript" src="https://ssl.daumcdn.net/dmaps/map_js_init/postcode.v2.js"></script>
 
 	<!-- Global site tag (gtag.js) - Google Analytics -->
 <!-- 	<script async src="https://www.googletagmanager.com/gtag/js?id=UA-168660512-1"></script> -->

+ 3 - 82
src/main/webapp/WEB-INF/views/web/common/layout/MypageLayoutWeb.html

@@ -24,49 +24,12 @@
 		<ul id="location">
 			<li class="bread_home"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
 			<li class="bread_2depth"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE);">마이페이지</a></li>
-<!--			<li class="bread_3depth">주문확인/배송조회</li>-->
 		</ul>
 	</div>
 	<div class="wrap">
-		<div class="content myOrderList">
-<!--			<div class="cont_head" style="display: none;">-->
-<!--				CONT-HEAD-->
-<!--				<style>-->
-<!--					.container .wrap .content {max-width:1460px;}-->
-<!--				</style>-->
-<!--				<div class="tit">my_center</div>-->
-<!--				<div class="tit my_tit">my_tit</div>-->
-<!--			</div>-->
-			<div class="cont_body">
-				<!-- CONT-BODY -->
-				<div class="lnb">
-					<div class="lnb_tit">
-						<h2>마이페이지</h2>
-					</div>
-					<div class="lnb_list">
-						<ul id="mypageLnbList">
-							<!--<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);">주문확인/배송조회</a></li>
-							<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_CRS_LIST);">취소/반품/환불내역</a></li>
-							<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_RESTOCK);">재입고 알림 내역</a></li>
-							<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_COUPON);">쿠폰</a></li>
-							<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_POINT);">STYLE24 포인트</a></li>
-							<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);">상품권</a></li>
-							<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_REVIEW);">리뷰</a></li>
-							<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_DELIVERY_ADDR);">배송지 관리</a></li>
-							<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_WISHLIST);">위시리스트</a></li>
-							<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_CUSTOMER);">내정보 관리</a></li>
-							<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_SECEDE);">회원 탈퇴</a></li>-->
-						</ul>
-					</div>
-				</div>
-				
-				<!-- CONTENT AREA -->
-				<th:block layout:fragment="content"></th:block>
-				<!-- // CONTENT AREA -->
-				
-				<!-- // CONT-BODY -->
-			</div>
-		</div>
+		<!-- CONTENT AREA -->
+		<th:block layout:fragment="content"></th:block>
+		<!-- // CONTENT AREA -->
 	</div>
 </div>
 
@@ -78,48 +41,6 @@
 
 <script th:inline="javascript">
 /*<![CDATA[*/
-	var fnSetMypageLnbList = function(lnbLvl) {
-		let tag = '';
-		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);"' + (lnbLvl == 1 ? ' class="on"' : '') + '>주문확인/배송조회</a></li>\n';
-		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_CRS_LIST);"' + (lnbLvl == 2 ? ' class="on"' : '') + '>취소/반품/환불내역</a></li>\n';
-		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_RESTOCK);"' + (lnbLvl == 3 ? ' class="on"' : '') + '>재입고 알림 내역</a></li>\n';
-		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_COUPON);"' + (lnbLvl == 4 ? ' class="on"' : '') + '>쿠폰</a></li>\n';
-		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_POINT);"' + (lnbLvl == 5 ? ' class="on"' : '') + '>STYLE24 포인트</a></li>\n';
-		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);"' + (lnbLvl == 6 ? ' class="on"' : '') + '>상품권</a></li>\n';
-		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_REVIEW);"' + (lnbLvl == 7 ? ' class="on"' : '') + '>리뷰</a></li>\n';
-		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_DELIVERY_ADDR);"' + (lnbLvl == 8 ? ' class="on"' : '') + '>배송지 관리</a></li>\n';
-		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_WISHLIST);"' + (lnbLvl == 9 ? ' class="on"' : '') + '>위시리스트</a></li>\n';
-		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_CUSTOMER);"' + (lnbLvl == 10 ? ' class="on"' : '') + '>내정보 관리</a></li>\n';
-		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_SECEDE);"' + (lnbLvl == 11 ? ' class="on"' : '') + '>회원 탈퇴</a></li>\n';
-		tag += '</ul>';
-		$('#mypageLnbList').html(tag);
-	}
-
-
-	//현재 페이지 활성화 표시
-	//$(".lnb_list [href]").each(function() {
-	//	var linkName = document.location.pathname.split("/ux/pc/")[1].split("_")[1];
-	//	var pagelink = this.href.search(linkName);
-	//	if(pagelink > 0){
-	//		$(this).addClass("on");
-	//	}
-	//});
-
-
-var fnSetMypageLocation = function(depth3, depth3Link, depth4) {
-		let tag = '';
-		if (gagajf.isNull(depth4)) {
-			tag += '<li class="bread_3depth">' + depth3 + '</li>'
-		} else {
-			tag += '<li className="bread_3depth"><a href="javascript:void(0);" onClick="cfnGoToPage(' + depth3Link + ');">' + depth3 + '</a></li>';
-			tag += '<li class="bread_3depth">' + depth4 + '</li>'
-		}
-		$('#location').append(tag);
-	}
-	
-	$(document).ready(function() {
-		
-	});
 /*]]>*/
 </script>
 

+ 54 - 47
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -310,7 +310,7 @@
 							</div>
 							<div class="exinfo_box">
 								<ul>
-									<li>
+									<li th:if="${reviewDisplayYn == 'Y'}">
 										<div class="ex_review">
 											<a href="javascript:void(0);" id="btn_pdReview_pop" th:onclick="cfGoodsReview([[${goodsInfo.goodsCd}]])">	
 												<span class="tit">리뷰<em class="number">(
@@ -896,13 +896,19 @@
 				return false;
 			}
 		}else{
-			// 세트작업시 작업요망 eskim
-			/* var targetSize=$('.sizelist').length;	//구성품 갯수;
-			var itemSize = $('.option').find('.item').find('input[type=radio]:checked').length;	//사이즈 선택 상품수
-			if (targetSize > itemSize){
-				mcxDialog.alert("구성상품들의 사이즈를 선택하세요.");
+			let target=$('.select_custom.item_opt2');
+			let targetSize = target.length;	//구성품 갯수
+			let itemSize = 0;
+			target.each(function(){
+				if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' &&  !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
+					itemSize ++;
+				}
+			});
+			
+			if (targetSize != itemSize){
+				mcxDialog.alert("구성상품들의 옵션을 선택하세요.");
 				return false;
-			} */
+			}
 		}
 
 		let $obj = $(obj);
@@ -933,13 +939,20 @@
 				return false;
 			}
 		}else{
-			// 세트작업시 작업요망 eskim
-			/* var targetSize=$('.sizelist').length;	//구성품 갯수;
-			var itemSize = $('.option').find('.item').find('input[type=radio]:checked').length;	//사이즈 선택 상품수
-			if (targetSize > itemSize){
-				mcxDialog.alert("구성상품들의 사이즈를 선택하세요.");
+			
+			let target=$('.select_custom.item_opt2');
+			let targetSize = target.length;	//구성품 갯수
+			let itemSize = 0;
+			target.each(function(){
+				if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' &&  !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
+					itemSize ++;
+				}
+			});
+			
+			if (targetSize != itemSize){
+				mcxDialog.alert("구성상품들의 옵션을 선택하세요.");
 				return false;
-			} */
+			}
 		}
 
 		//let f = document.cartForm;
@@ -1046,7 +1059,6 @@
 			obj.optCd = $("#cartForm  input[name=optCd]").val();
 			obj.goodsQty = $("#cartForm  input[name=ordQty]").val();
 			obj.goodsType = $("#cartForm  input[name=goodsType]").val();
-			//obj.dealGoodsCd = $("#cartForm  input[name=goodsType]").val();
 			obj.cartGb = btnType;
 			obj.afLinkCd =$("#cartForm  input[name=afLinkCd]").val();
 			obj.ithrCd =$("#cartForm  input[name=ithrCd]").val();
@@ -1055,31 +1067,39 @@
 			params.push(obj);
 
 		}else if (goodsType == 'G056_S'){  //수정요
-			alert("작업필요");
-/* 			var target=$('.sizelistCart');
-			var targetSize=target.length;
-			var itemSize = target.find('.item').find('input[type=radio]:checked').length;
+		
+			let target=$('.select_custom.item_opt2');
+			let targetSize = target.length;	//구성품 갯수
+			let itemSize = 0;
+			target.each(function(){
+				if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' &&  !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
+					itemSize ++;
+				}
+			});
+			
 			if (targetSize != itemSize){
-				mcxDialog.alert("구성상품들의 사이즈를 선택하세요.");
+				mcxDialog.alert("구성상품들의 옵션을 선택하세요.");
 				return false;
 			}
-
-			target.find('.item').find('input[type=radio]:checked').each(function() {
-
-				var arrInfo = $(this).val().split('|');	// 상품코드|사이즈|구성수량
-
+			
+			target.each(function() {
+				var arrInfo = $(this).find('input[name=opt2]').val().split('|');	// 상품코드|사이즈|구성수량
+				
 				var obj = new Object();
-				obj.btnType = btnType;
+				obj.cartGb = btnType;
 				obj.goodsType = $("#cartForm  input[name=goodsType]").val();
 				obj.goodsCd = $("#cartForm  input[name=goodsCd]").val();
 				obj.itemCd = arrInfo[0];
-				obj.sizeCd = arrInfo[1];
+				obj.optCd = arrInfo[1];
 				obj.goodsQty = $("#cartForm  input[name=ordQty]").val();
-				obj.itemQty = Number(arrInfo[2]);
-				obj.planDtlSq =$("#cartForm  input[name=planDtlSq]").val();
+				//obj.itemQty = Number(arrInfo[2]);
+				obj.afLinkCd =$("#cartForm  input[name=afLinkCd]").val();
+				obj.ithrCd =$("#cartForm  input[name=ithrCd]").val();
+				obj.contentsLoc =$("#cartForm  input[name=contentsLoc]").val();
+				obj.planDtlSq = $("#cartForm  input[name=planDtlSq]").val();
 				params.push(obj);
-
-			}); */
+				
+			});
 		}
 		
 		// 장바구니담기
@@ -1182,7 +1202,6 @@
 				}
 			}
 			
-			
 		});
 		
 	}
@@ -1205,25 +1224,25 @@
 		params.goodsOtherGb = "tmtb";
 		params.ithrCd = "tmtb";
 		params.contentsLoc = "tmtb";
-//		fnGoodsTmtbSearch(params);
+		fnGoodsTmtbSearch(params);
 		
 		// 함께본 상품(ajax html)
 		params.goodsOtherGb = "together";
 		params.ithrCd = "tmtb";
 		params.contentsLoc = "tmtb";
-		//		fnGoodsTogetherSearch(params);
+		fnGoodsTogetherSearch(params);
 		
 		// 추천 상품(ajax html)
 		params.goodsOtherGb = "recommend";
 		params.ithrCd = "tmtb";
 		params.contentsLoc = "tmtb";
-		//		fnGoodsRecommendSearch(params);
+		fnGoodsRecommendSearch(params);
 		
 		// 비슷한 상품(ajax html)
 		params.goodsOtherGb = "like";
 		params.ithrCd = "tmtb";
 		params.contentsLoc = "tmtb";
-		//		fnGoodsLikeSearch(params);
+		fnGoodsLikeSearch(params);
 	
 		
 		// 상품 대표설명 > 좌측 상품썸네일 navi, 우측 상품정보 고정 
@@ -1394,18 +1413,6 @@
 			},
 		});			
 		
-
-		//alert -쇼핑백담기
-		/* document.getElementById("btn_add_cart").onclick = function(){
-			mcxDialog.confirm("<div class="+"dialog-title"+">"+"상품이 쇼핑백에 추가되었습니다.</div><p>쇼핑백으로 이동하시겠습니까?</p>", {
-				cancelBtnText: "계속 쇼핑하기",
-				sureBtnText: "쇼핑백 가기",
-				sureBtnClick: function(){
-					location.href=''; 	//내 쇼핑백 이동url
-				}
-			});
-		}; */
-		
 		fnOptionSoldout();
 		
 		// 광고 스크립트용

+ 241 - 469
src/main/webapp/WEB-INF/views/web/mypage/MypageCancelFormWeb.html

@@ -19,456 +19,181 @@
 <body>
 
 <th:block layout:fragment="content">
-	<div class="cont">
-		<div class="sec_head">
-			<h3 class="subH1">주문취소</h3>
-			<span class="order_number">주문번호&nbsp;:&nbsp;<em th:text="${cancelList.oneData.ordNo}"></em></span>
-		</div>
-		<div class="sec_body">
-			<div class="part_goods">
-				<div class="goods_head">
-					<p>주문일 <span th:text="${cancelList.oneData.ordDt}"></span></p>
+	<div class="content myOrderView">
+		<div class="cont_body">
+			<!-- CONT-BODY -->
+			<div class="lnb">
+				<div class="lnb_tit">
+					<h2>마이페이지</h2>
 				</div>
-				<div class="goods_cont">
-					<th:block th:if="${cancelList.cancelList}" th:each="cancel, status : ${cancelList.cancelList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
-					<!-- 주문상품 -->
-					<div class="goods_info">
-						<div class="order_desc">
-							<div class="goods_box">
-								<div class="gd_item">
-									<a href="javascript:void(0)" th:attr="goodsCd=${cancel.goodsCd}" onclick="fnGoToGoodsDetail(this)">
-										<span class="thumb">
-											<img th:src="${imageUrl + '/' + cancel.sysImgNm}" width="100%" alt="">
-										</span>
-										<p>
-											<span class="brand" th:text="${cancel.brandNm}"></span>
-											<span class="tag primary" th:if="${cancel.shotDelvYn == 'Y'}">총알배송</span>
-											<span class="tag" th:if="${cancel.shotDelvYn == 'N' and cancel.selfGoodsYn == 'Y'}">STYLE24 일반배송</span>
-											<span class="tag" th:if="${cancel.selfGoodsYn == 'N'}">업체직배송</span>
-										</p>
-										<p>
-											<span class="name" th:text="${cancel.goodsNm}"></span>
-										</p>
-									</a>
-								</div>
-								<div class="gd_opt">
-									<div class="option_wrap">
-										<span class="title sr-only">주문 옵션</span>
-										<span class="option" th:text="|${cancel.optCd1} / ${cancel.optCd2}|"></span>
-									</div>
-								</div>
-								<div class="gd_calc">
-									<p>
-										<span class="count"><em th:text="${cancel.ordQty}"></em>개</span>
-									</p>
-									<p>
-										<span class="price_org"><em th:text="${#numbers.formatInteger(cancel.listPrice * cancel.ordQty, 1, 'COMMA')}"></em>원</span>
-										<span class="price_sale"><em th:text="${#numbers.formatInteger(cancel.ordAmt, 1, 'COMMA')}"></em>원</span>
-									</p>
-								</div>
-							</div>
-							<div class="button_box">
-								<div class="count_modify">
-									<span class="txt">수량</span>
-									<form class="form_wrap">
-										<div class="form_field">
-											<div class="select_custom select_count">
-												<div class="combo">
-													<input type="hidden" name="chgQty" value="0" th:attr="ordDtlNo=${cancel.ordDtlNo}, ordCanChgQty=${cancel.ordCanChgQty}"/>
-													<div class="select">선택</div>
-													<ul class="list">
-														<li class="selected" value="0">선택</li>
-														<li th:if="${cancel.ordCanChgQty > 0}" th:each="num : ${#numbers.sequence(1,cancel.ordCanChgQty)}" th:value="${num}" th:text="${num}" onclick="fnChangeCancelQty(this);"></li>
-													</ul>
-												</div>
-											</div>
-										</div>
-									</form>
-								</div>
-							</div>
-						</div>
-						<div class="order_text">
-							<p>취소하실 수량을 선택하신 후 주문 취소를 하실 수 있습니다.</p>
-						</div>
-					</div>
-					<!-- //주문상품 -->
-					</th:block>
+				<div class="lnb_list">
+					<ul id="mypageLnbList"></ul>
 				</div>
 			</div>
-			<h4 class="subH3">환불정보</h4>
-			<div class="tbl type6">
-				<table>
-					<colgroup>
-						<col width="50%">
-						<col width="50%">
-					</colgroup>
-					<tr>
-						<td>
-							<dl>
-								<div>
-									<dt>환불 예정 금액</dt>
-									<dd>
-										<div class="price">
-											<span class="return_total_price"><em id="returnAmt">0</em>원</span>
+			<div class="cont">
+				<input type="hidden" name="accountNo" th:value="${cancelList.oneData.accountNo}"/>
+				<input type="hidden" name="accountNm" th:value="${cancelList.oneData.accountNm}"/>
+				<input type="hidden" name="bankCd" th:value="${cancelList.oneData.bankCd}"/>
+				<div class="sec_head">
+					<h3 class="subH1">주문취소</h3>
+					<span class="order_number">주문번호&nbsp;:&nbsp;<em th:text="${cancelList.oneData.ordNo}"></em></span>
+				</div>
+				<div class="sec_body">
+					<div class="part_goods">
+						<div class="goods_head">
+							<p>주문일 <span th:text="${cancelList.oneData.ordDt}"></span></p>
+						</div>
+						<div class="goods_cont">
+							<th:block th:if="${cancelList.cancelList}" th:each="cancel, status : ${cancelList.cancelList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+							<!-- 주문상품 -->
+							<div class="goods_info">
+								<div class="order_desc">
+									<div class="goods_box">
+										<div class="gd_item">
+											<a href="javascript:void(0)" th:attr="goodsCd=${cancel.goodsCd}" onclick="fnGoToGoodsDetail(this)">
+												<span class="thumb">
+													<img th:src="${imageUrl + '/' + cancel.sysImgNm}" width="100%" alt="">
+												</span>
+												<p>
+													<span class="brand" th:text="${cancel.brandNm}"></span>
+													<span class="tag primary" th:if="${cancel.shotDelvYn == 'Y'}">총알배송</span>
+													<span class="tag" th:if="${cancel.shotDelvYn == 'N' and cancel.selfGoodsYn == 'Y'}">STYLE24 일반배송</span>
+													<span class="tag" th:if="${cancel.selfGoodsYn == 'N'}">업체직배송</span>
+												</p>
+												<p>
+													<span class="name" th:text="${cancel.goodsNm}"></span>
+												</p>
+											</a>
 										</div>
-									</dd>
-								</div>
-								<div class="include_item"> <!-- 할인항목 표기 class명 include_item -->
-									<dt>상품 취소 금액</dt>
-									<dd><em id="goodsCancelAmt">0</em>원</dd>
-								</div>
-								<div class="include_item">
-									<dt>배송비</dt>
-									<dd><em id="deliveryFee">0</em>원</dd>
-								</div>
-								<div class="include_item">
-									<dt>할인 금액 차감</dt>
-									<dd><em id="deductDcAmt">0</em>원</dd>
-								</div>
-							</dl>
-						</td>
-						<td>
-							<dl>
-								<div>
-									<dt>환불 수단</dt>
-									<dd th:text="${paymentInfo.payMeansNm}"></dd>
-								</div>
-								<div>
-									<dt>결제 금액 환불</dt>
-									<dd>
-										<em id="refundPayAmt">0</em>원
-									</dd>
-								</div>
-								<div>
-									<dt>포인트 환불</dt>
-									<dd>
-										<em id="refundPoint">0</em>P
-									</dd>
-								</div>
-								<div>
-									<dt>상품권 환불</dt>
-									<dd>
-										<em id="refundGiftCard">0</em>원
-									</dd>
-								</div>
-							</dl>
-						</td>
-					</tr>
-				</table>
-			</div>
-			<div class="txt_info">
-				<ul>
-					<li>
-						카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이 소요될 수 있습니다.
-					</li>
-				</ul>
-			</div>
-			<div class="btn_footer_area">
-				<button type="button" class="btn btn_default btn_md"><span>취소</span></button>
-				<button type="button" id="btn_refund_pop" class="btn btn_dark btn_md"><span>주문 취소</span></button>
-			</div>
-		</div>
-	</div>
-	<!-- // CONT-BODY -->
-
-	<!--<div class="my_cont">
-		<div class="sec_head">
-			<h3>반품 신청</h3>
-			<div class="od_detail">
-				(주문번호 : <span class="num" th:text="${ordNo}"></span>)
-			</div>
-		</div>
-		<div class="sec_body mypage_body">
-			<form class="form_wrap" role="form">
-				<div class="order_list">
-					<section class="order_row">
-						<div class="part_deliver">
-							<div class="tbl_tit">
-								&lt;!&ndash; 주문일/선물일 설정 &ndash;&gt;
-								<span class="start_t" th:unless="${returnList.oneData.giftPackYn == 'Y'}">주문일</span>
-								<span class="gift_t" th:if="${returnList.oneData.giftPackYn == 'Y'}">선물일</span>
-								&lt;!&ndash; //주문일/선물일 설정 &ndash;&gt;
-
-								<span class="order_date" th:text="${returnList.oneData.ordDt}"></span>
-
-								&lt;!&ndash; 배송구분 설정 &ndash;&gt;
-								<span class="order_label02" th:if="${returnList.shotDelv}">총알배송</span>
-								<span class="order_label01" th:if="${returnList.selfMall}">STYLE24 일반배송</span>
-								<span class="order_label01" th:if="${returnList.supplyMall}">업체직배송</span>
-								&lt;!&ndash; //배송구분 설정 &ndash;&gt;
-								<a href="javascript:void(0)" class="detail_btn" th:attr="ordNo=${returnList.oneData.ordNo}" onclick="fnGoToOrderDetail(this)">주문상세보기</a>
-							</div>
-							<div class="tbl type2">
-								<table id="returnList">
-									<colgroup>
-										<col width="1020">
-										<col width="180">
-									</colgroup>
-									<tbody>
-									<th:block th:if="${returnList.returnList}" th:each="return, status : ${returnList.returnList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
-										<tr>
-											<td>
-												<div class="info_item">
-													<div class="thumb_box">
-														<a href="">
-															<img th:src="${imageUrl + '/' + return.sysImgNm}" width="100%" alt="">
-														</a>
-													</div>
-													<div class="info_box">
-														<p class="od_name">
-															<a href="">
-																<span class="brand" th:text="${return.brandNm}"></span>
-																<span class="name" th:text="${return.goodsNm}"></span>
-															</a>
-														</p>
-														<p class="od_opt">
-															<span class="option"><em th:text="${return.optCd1}"></em><em th:text="${return.optCd2}"></em></span>
-															<span class="count">수량 <em th:text="${return.ordQty}"></em>개</span>
-														</p>
-													</div>
-													<div class="info_calc">
-														<p class="price">
-															<span class="selling_price" th:text="|${#numbers.formatInteger(return.ordAmt, 1, 'COMMA')}원|"></span>
-														</p>
-														<p class="point"><span th:text="${#numbers.formatInteger(return.savePntAmt, 1, 'COMMA')}"></span>p</p>
-													</div>
-												</div>
-											</td>
-											<td class="cnt_sel">
-												<span class="cnt_t">수량</span>
+										<div class="gd_opt">
+											<div class="option_wrap">
+												<span class="title sr-only">주문 옵션</span>
+												<span class="option" th:text="|${cancel.optCd1} / ${cancel.optCd2}|"></span>
+											</div>
+										</div>
+										<div class="gd_calc">
+											<p>
+												<span class="count"><em th:text="${cancel.ordQty - cancel.cnclRtnQty}"></em>개</span>
+											</p>
+											<p>
+												<span class="price_org"><em th:text="${#numbers.formatInteger(cancel.listPrice * (cancel.ordQty - cancel.cnclRtnQty), 1, 'COMMA')}"></em>원</span>
+												<span class="price_sale"><em th:text="${#numbers.formatInteger(cancel.ordAmt - cancel.cnclRtnAmt, 1, 'COMMA')}"></em>원</span>
+											</p>
+										</div>
+									</div>
+									<div class="button_box">
+										<div class="count_modify">
+											<span class="txt">수량</span>
+											<form class="form_wrap">
 												<div class="form_field">
-													<div class="select_custom type1">
+													<div class="select_custom select_count">
 														<div class="combo">
-															<input type="hidden" name="chgQty" value="0" th:attr="ordDtlNo=${return.ordDtlNo}, ordCanChgQty=${return.ordCanChgQty}"/>
+															<input type="hidden" name="chgQty" value="0" th:attr="ordDtlNo=${cancel.ordDtlNo}, ordCanChgQty=${cancel.ordCanChgQty}"/>
 															<div class="select">선택</div>
-															<ul class="list" style="width:100px; margin:0 auto">
-																<li class="selected" value="0">선택</li>
-																<li th:if="${return.ordCanChgQty > 0}" th:each="num : ${#numbers.sequence(1,return.ordCanChgQty)}" th:value="${num}" th:text="${num}" onclick="fnChangeQty(this);"></li>
+															<ul class="list">
+																<li class="selected" qty="0" onclick="fnChangeCancelQty(this);">선택</li>
+																<li th:if="${cancel.ordCanChgQty > 0}" th:each="num : ${#numbers.sequence(1,cancel.ordCanChgQty)}" th:attr="qty=${num}" th:text="${num}" onclick="fnChangeCancelQty(this);"></li>
 															</ul>
 														</div>
 													</div>
 												</div>
-&lt;!&ndash;												<select class="select_dress" name="chgQty" onchange="fnChangeQty();">&ndash;&gt;
-&lt;!&ndash;													<option value="">선택</option>&ndash;&gt;
-&lt;!&ndash;													<option th:if="${return.ordQty > 0}" th:each="num : ${#numbers.sequence(1,return.ordQty)}" th:value="${num}" th:text="${num}"></option>&ndash;&gt;
-&lt;!&ndash;												</select>&ndash;&gt;
-											</td>
-										</tr>
-									</th:block>
-									</tbody>
-								</table>
-							</div>
-							<div class="order_confirm">
-								<p class="cf_txt cf_desc c_primary">반품하실 상품의 수량을 선택하신 후 반품 신청을 하실 수 있습니다.</p>
+											</form>
+										</div>
+									</div>
+								</div>
+								<div class="order_text">
+									<p>취소하실 수량을 선택하신 후 주문 취소를 하실 수 있습니다.</p>
+								</div>
 							</div>
+							<!-- //주문상품 -->
+							</th:block>
 						</div>
-					</section>
-					<section class="order_row">
-						<div class="tbl_tit">
-							<h3 class="subH3">반품 사유</h3>
-						</div>
-						<div class="tbl type1">
-							<table>
-								<colgroup>
-									<col width="*">
-								</colgroup>
-								<tbody>
-								<tr>
-									<td>
-										<div class="form_field">
-											<div class="select_custom type1">
-												<div class="combo">
-													<input type="hidden" name="chgReason"/>
-													<div class="select">반품 사유를 선택하세요</div>
-													<ul class="list" style="width:400px">
-														<li class="selected" value="">반품 사유를 선택하세요</li>
-														<li th:if="${returnReason}" th:each="oneData, status : ${returnReason}" th:value="${oneData.cd}" th:text="${oneData.cdNm}" onclick="fnChangeReason(this);"></li>
-													</ul>
+					</div>
+					<h4 class="subH3">환불정보</h4>
+					<div class="tbl type6">
+						<table>
+							<colgroup>
+								<col width="50%">
+								<col width="50%">
+							</colgroup>
+							<tr>
+								<td>
+									<dl>
+										<div>
+											<dt>환불 예정 금액</dt>
+											<dd>
+												<div class="price">
+													<span class="return_total_price"><em id="returnAmt">0</em>원</span>
 												</div>
-											</div>
+											</dd>
 										</div>
-									</td>
-								</tr>
-								<tr>
-									<td>
-										<textarea class="doc_exchange" name="chgMemo" id="chgMemo" placeholder="자세한 사유를 입력해주세요." onkeyup="cfnGetTextLength(this, 200, $('#return_cnt'));"></textarea>
-										<p class="txt_cnt"><span id="return_cnt" class="c_primary">0</span>/200</p>
-									</td>
-								</tr>
-								</tbody>
-							</table>
-						</div>
-					</section>
-					<section class="order_row" id="wdGb">
-						<div class="order_tit">
-							<h3 class="subH3">반품 방식 선택</h3>
-						</div>
-						<div class="tbl type1">
-							<table>
-								<colgroup>
-									<col width="*">
-								</colgroup>
-								<tbody>
-								<tr>
-									<td>
-										<div class="form_field radio_field">
-											<div class="">
-												<input type="radio" name="wdGb" id="withdraw" value="W" checked>
-												<label for="withdraw"><span>방문회수 <b class="c_primary">택배사에서 방문하여 회수</b></span></label>
-											</div>
-											<div class="">
-												<input type="radio" name="wdGb" id="direct" value="D">
-												<label for="direct"><span>직접반송 <b class="c_primary">고객이 직접 반송처리</b></span></label>
-											</div>
+										<div class="include_item"> <!-- 할인항목 표기 class명 include_item -->
+											<dt>상품 취소 금액</dt>
+											<dd><em id="goodsCancelAmt">0</em>원</dd>
 										</div>
-									</td>
-								</tr>
-								</tbody>
-							</table>
-						</div>
-					</section>
-					<section class="order_row" id="chgerLocation">
-						<div class="order_tit">
-							<h3 class="subH3">상품 회수지</h3>
-							<span class="del_t">택배사에서 반품 상품을 직접 회수할 장소 선택</span>
-							<button type="button" class="btn_popup" onclick="fnChangeDeliveryAddr('chger');"><span>회수지 선택</span></button>
-						</div>
-						<div class="tbl type1">
-							<table>
-								<colgroup>
-									<col width="200">
-									<col width="*">
-								</colgroup>
-								<tbody>
-								<tr>
-									<th>성명</th>
-									<td id="chgerNm" th:text="${deliveryAddrInfo.recipNm}"></td>
-									<input type="hidden" name="chgerNm" th:value="${deliveryAddrInfo.recipNm}">
-								</tr>
-								<tr>
-									<th>연락처</th>
-									<td id="chgerPhnno" th:text="${deliveryAddrInfo.recipPhnno}"></td>
-									<input type="hidden" name="chgerPhnno" th:value="${deliveryAddrInfo.recipPhnno}">
-								</tr>
-								<tr>
-									<th>주소</th>
-									<td id="chgerAddr" th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|"></td>
-									<input type="hidden" name="chgerBaseAddr" th:value="${deliveryAddrInfo.recipBaseAddr}">
-									<input type="hidden" name="chgerDtlAddr" th:value="${deliveryAddrInfo.recipDtlAddr}">
-								</tr>
-								</tbody>
-							</table>
-						</div>
-					</section>
-					<section class="order_row" id="returnLocation" style="display:none">
-						<div class="order_tit">
-							<h3 class="subH3">반품하실 배송지</h3>
-						</div>
-						<div class="tbl type1">
-							<table>
-								<colgroup>
-									<col width="200">
-									<col width="*">
-								</colgroup>
-								<tbody>
-								<tr>
-									<th>성명</th>
-									<td th:text="${deliveryAddrInfo.rtnLocNm}"></td>
-									<input type="hidden" name="rtnLocNm" th:value="${deliveryAddrInfo.rtnLocNm}">
-								</tr>
-								<tr>
-									<th>연락처</th>
-									<td th:text="${deliveryAddrInfo.rtnLocTelno}"></td>
-									<input type="hidden" name="rtnLocTelno" th:value="${deliveryAddrInfo.rtnLocTelno}">
-								</tr>
-								<tr>
-									<th>주소</th>
-									<td th:text="|${deliveryAddrInfo.rtnLocBaseAddr} ${deliveryAddrInfo.rtnLocDtlAddr}|"></td>
-									<input type="hidden" name="rtnLocBaseAddr" th:value="${deliveryAddrInfo.rtnLocBaseAddr}">
-									<input type="hidden" name="rtnLocDtlAddr" th:value="${deliveryAddrInfo.rtnLocDtlAddr}">
-								</tr>
-								</tbody>
-							</table>
-						</div>
-					</section>
-					<section class="order_row">
-						<div class="order_tit">
-							<h3 class="subH3">환불 정보</h3>
-							<button type="button" class="btn_popup"><span>취소 전표 보기</span></button>
-						</div>
-						<div class="tbl type1 re_info_tbl">
-							<div class="r_left">
-								<dl>
-									<dt>환불(예정) 금액</dt>
-									<dd>
-										<span class="big_t"><strong id="returnAmt">0</strong>원</span>
-									</dd>
-								</dl>
-								<dl>
-									<dt>상품취소 금액</dt>
-									<dd>
-										<span id="goodsCancelAmt">0</span>원
-									</dd>
-								</dl>
-								<dl>
-									<dt>배송비</dt>
-									<dd>
-										<span id="deliveryFee">0</span>원
-									</dd>
-								</dl>
-								<dl>
-									<dt>할인금액 차감</dt>
-									<dd>
-										<span id="deductDcAmt">0</span>원
-									</dd>
-								</dl>
-							</div>
-							<div class="r_right">
-								<dl>
-									<dt>환불수단</dt>
-									<dd>
-										<span th:text="${paymentInfo.payMeansNm}"></span>
-									</dd>
-								</dl>
-								<dl>
-									<dt>결제금액 환불</dt>
-									<dd>
-										<span id="refundPayAmt">0</span>원
-									</dd>
-								</dl>
-								<dl>
-									<dt>포인트 환불</dt>
-									<dd>
-										<span id="refundPoint">0</span>P
-									</dd>
-								</dl>
-								<dl>
-									<dt>상품권 환불</dt>
-									<dd>
-										<span id="refundGiftCard">0</span>원
-									</dd>
-								</dl>
-							</div>
-						</div>
-						<p class="alert_t">※ 카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이 소요될 수 있습니다.</p>
-					</section>
-					<section class="order_row" id="addDeliveryFee" style="display:none">
-						<div class="ship_fee">
-							<p><span class="c_primary" id="addPayCost">2,500원</span> 배송비 추가 결제가 필요합니다.</p>
-							<input type="hidden" name="addPayCost"/>
-						</div>
-					</section>
-					<div class="btn_wrap">
-						<button type="button" class="btn btn_default cancle_btn" onclick="cfnGoToPage(_PAGE_MYPAGE_CRS_LIST)"><span>반품 취소</span></button>
-						<button tyep="submit" class="btn btn_primary submit_btn" onclick="fnReturn()"><span id="returnButton">반품 신청</span></button>
+										<div class="include_item">
+											<dt>배송비</dt>
+											<dd><em id="deliveryFee">0</em>원</dd>
+										</div>
+										<div class="include_item">
+											<dt>할인 금액 차감</dt>
+											<dd><em id="deductDcAmt">0</em>원</dd>
+										</div>
+									</dl>
+								</td>
+								<td>
+									<dl>
+										<div>
+											<dt>환불 수단</dt>
+											<dd th:if="${paymentInfo.pgGb == 'KCP'}" th:text="${paymentInfo.payMeansNm}"></dd>
+											<dd th:if="${paymentInfo.pgGb == 'NAVER'}" th:text="|네이버페이|"></dd>
+											<dd th:if="${paymentInfo.pgGb == 'KAKAO'}" th:text="|카카오페이|"></dd>
+											<dd th:if="${paymentInfo.pgGb == 'PAYCO'}" th:text="|PAYCO|"></dd>
+										</div>
+										<div>
+											<dt>결제 금액 환불</dt>
+											<dd>
+												<em id="refundPayAmt">0</em>원
+											</dd>
+										</div>
+										<div>
+											<dt>포인트 환불</dt>
+											<dd>
+												<em id="refundPoint">0</em>P
+											</dd>
+										</div>
+										<div>
+											<dt>상품권 환불</dt>
+											<dd>
+												<em id="refundGiftCard">0</em>원
+											</dd>
+										</div>
+									</dl>
+								</td>
+							</tr>
+						</table>
+					</div>
+					<div class="txt_info">
+						<ul>
+							<li>
+								카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이 소요될 수 있습니다.
+							</li>
+						</ul>
+					</div>
+					<div class="btn_footer_area">
+						<button type="button" class="btn btn_default btn_md" onclick="cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);"><span>취소</span></button>
+						<button type="button" id="btn_refund_pop" class="btn btn_dark btn_md" onclick="fnCancel();"><span>주문 취소</span></button>
 					</div>
 				</div>
-			</form>
+			</div>
+			<!-- // CONT-BODY -->
 		</div>
-	</div>-->
+	</div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
 	let cancelList = [[${cancelList}]];
+	let oneData = [[${oneData}]];
+	let paymentInfo = [[${paymentInfo}]];
 	let usedGiftCardInfo = [[${usedGiftCardInfo}]];
 	let usedPointInfo = [[${usedPointInfo}]];
 
@@ -485,8 +210,58 @@
 	
 	// 취소 처리
 	var fnCancel = function() {
-		// TODO
-		// 취소신청 처리
+		// 취소수량 설정
+		fnChangeCancelQty();
+
+		// 취소수량 체크
+		let index = 0;
+		$.each(cancelList.cancelList, function (idx, item) {
+			index += item.ordCanChgQty;
+		});
+		
+		if (index == 0) {
+			mcxDialog.alert('취소 수량을 선택해주세요.');
+			return false;
+		}
+		
+		// 환불계좌 체크
+		let accountNo = $('input[name=accountNo]').val();
+		let accountNm = $('input[name=accountNm]').val();
+		let bankCd = $('input[name=bankCd]').val();
+		
+		if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_00' && (gagajf.isNull(accountNo) || gagajf.isNull(accountNm) || gagajf.isNull(bankCd))) {
+			// TODO
+			// 환불계좌 등록 팝업
+			
+			return false;
+		}
+		
+		// 취소요청 데이터 설정
+		let url = '/mypage/cancel';
+
+		let allCanYn = '';
+		if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_00') {
+			allCanYn = 'Y';
+		}
+
+		let data = {};
+		data.ordNo = oneData.ordNo;
+		data.chgReason = 'G686_10';
+		data.accountNo = accountNo;
+		data.accountNm = accountNm;
+		data.bankCd = bankCd;
+		data.allCanYn = allCanYn;
+		data.isCustomer = 'Y';
+		data.reqGbn = 'cnclComplete';
+		data.cancelReqList = cancelList.cancelList;
+
+		let jsonData = JSON.stringify(data);
+
+		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+			// TODO
+			// 주문취소 콜백처리
+			console.log(result);
+		});
 	}
 	
 	// 취소 수량 변경 이벤트 처리
@@ -494,7 +269,7 @@
 		let url = '/mypage/cancel/refund/amt/calculate';
 
 		if (param != null) {
-			$(param).parent().parent().find('input[name=chgQty]').val($(param).val());
+			$(param).parent().parent().find('input[name=chgQty]').val($(param).attr('qty'));
 		}
 
 		let cancelRequestList = [];
@@ -503,7 +278,6 @@
 		let chgQtyArr = [];
 		let ordDtlNoArr = [];
 		let ordCanChgQtyArr = [];
-		let chgQtyChk = 0;
 		$.each($('input[name=chgQty]'), function(idx, item) {
 			let chgQty = $(item).val();
 			let ordDtlNo = $(item).attr('ordDtlNo');
@@ -512,50 +286,48 @@
 			chgQtyArr.push(Number(chgQty));
 			ordDtlNoArr.push(Number(ordDtlNo));
 			ordCanChgQtyArr.push(Number(ordCanChgQty));
-			
-			chgQtyChk += Number(chgQty);
 		});
 
-		if (chgQtyChk > 0) {
+		$.each(cancelList.cancelList, function (idx, item) {
+			let index = ordDtlNoArr.indexOf(item.ordDtlNo);
+
+			if (index >= 0) {
+				item.ordCanChgQty = chgQtyArr[index];
+			}
+
+			cancelRequestList.push(item);
+		});
+
+		let jsonData = JSON.stringify(cancelRequestList);
+
+		gagajf.ajaxJsonSubmit(url, jsonData, function (result) {
 			// 환불포인트, 환불상품권 금액 계산
 			let refundPoint = fnCalculatePoint(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr);
 			let refundGiftCard = fnCalculateGiftCard(chgQtyArr, ordDtlNoArr, ordCanChgQtyArr);
+
+			let spanCnclRtnAmt = Number(result.spanCnclRtnAmt);
+			let sumDeliveryFee = Number(result.sumDeliveryFee);
+			let spanTotDeliveryFee = Number(result.spanTotDeliveryFee);
+			let spanCpnDcAmt = Number(result.spanCpnDcAmt);
+			let spanTmtbDcAmt = Number(result.spanTmtbDcAmt);
+			let spanPrePntDcAmt = Number(result.spanPrePntDcAmt);
+			let spanRefundAmt = Number(result.spanRefundAmt);
 			
-			$.each(cancelList, function (idx, item) {
-				let index = ordDtlNoArr.indexOf(item.ordDtlNo);
-				item.ordCanChgQty = chgQtyArr[index];
-				
-				cancelRequestList.push(item);
-			})
-			
-			let jsonData = JSON.stringify(cancelRequestList);
+			let goodsCancelAmt = spanCnclRtnAmt;										// 상품취소금액
+			let deliveryFee = sumDeliveryFee - spanTotDeliveryFee;						// 배송비
+			let deductDcAmt = 0 - spanCpnDcAmt - spanTmtbDcAmt - spanPrePntDcAmt;		// 할인금액 차감(쿠폰+다다익선+선포인트)
+			let refundPayAmt = spanRefundAmt;											// 결제금액 환불
+			let returnAmt = refundPayAmt + refundPoint + refundGiftCard;				// 환불예정금액
 			
-			gagajf.ajaxJsonSubmit(url, jsonData, function (result) {
-				let spanCnclRtnAmt = Number(result.spanCnclRtnAmt);
-				let sumDeliveryFee = Number(result.sumDeliveryFee);
-				let spanTotDeliveryFee = Number(result.spanTotDeliveryFee);
-				let spanCpnDcAmt = Number(result.spanCpnDcAmt);
-				let spanTmtbDcAmt = Number(result.spanTmtbDcAmt);
-				let spanPrePntDcAmt = Number(result.spanPrePntDcAmt);
-				let spanRefundAmt = Number(result.spanRefundAmt);
-				
-				let goodsCancelAmt = spanCnclRtnAmt;										// 상품취소금액
-				let deliveryFee = sumDeliveryFee - spanTotDeliveryFee;						// 배송비
-				let deductDcAmt = 0 - spanCpnDcAmt - spanTmtbDcAmt - spanPrePntDcAmt;		// 할인금액 차감(쿠폰+다다익선+선포인트)
-				let refundPayAmt = spanRefundAmt;											// 결제금액 환불
-				let returnAmt = refundPayAmt + refundPoint + refundGiftCard;				// 환불예정금액
-				
-				// 금액 설정
-				$('#returnAmt').text(returnAmt.addComma());
-				$('#goodsCancelAmt').text(goodsCancelAmt.addComma());
-				$('#deliveryFee').text(deliveryFee.addComma());
-				$('#deductDcAmt').text(deductDcAmt.addComma());
-				$('#refundPayAmt').text(refundPayAmt.addComma());
-				$('#refundPoint').text(refundPoint.addComma());
-				$('#refundGiftCard').text(refundGiftCard.addComma());
-				console.log(result);
-			});
-		}
+			// 금액 설정
+			$('#returnAmt').text(returnAmt.addComma());
+			$('#goodsCancelAmt').text(goodsCancelAmt.addComma());
+			$('#deliveryFee').text(deliveryFee.addComma());
+			$('#deductDcAmt').text(deductDcAmt.addComma());
+			$('#refundPayAmt').text(refundPayAmt.addComma());
+			$('#refundPoint').text(refundPoint.addComma());
+			$('#refundGiftCard').text(refundGiftCard.addComma());
+		});
 	}
 
 	// 환불 포인트 계산

+ 728 - 337
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderDetailFormWeb.html

@@ -19,387 +19,778 @@
 <body>
 
 <th:block layout:fragment="content">
-	<div class="my_cont">
-		<div class="sec_head">
-			<h3>주문상세</h3>
-			<div class="od_detail">
-				(주문번호 : <span class="num" th:text="${ordNo}"></span>)
+	<div class="content myOrderList">
+		<div class="cont_body">
+			<!-- CONT-BODY -->
+			<div class="lnb">
+				<div class="lnb_tit">
+					<h2>마이페이지</h2>
+				</div>
+				<div class="lnb_list">
+					<ul id="mypageLnbList"></ul>
+				</div>
 			</div>
-			<button type="button" class="btn btn_default od_del_btn" onclick="fnDeleteOrder()"><span>주문 내역 삭제</span></button>
-		</div>
-		<div class="sec_body">
-			<div class="order_list" id="orderList">
-				<section class="order_row">
-					<th:block th:if="${orderList}" th:each="oneData, status : ${orderList}">
-						<div class="part_deliver">
-							<div class="tbl_tit">
-								<!-- 주문일/선물일 설정 -->
-								<span class="start_t" th:unless="${oneData.giftPackYn == 'Y'}">주문일</span>
-								<span class="gift_t" th:if="${oneData.giftPackYn == 'Y'}">선물일</span>
-								<!-- //주문일/선물일 설정 -->
-
-								<span class="order_date" th:text="${oneData.ordDt}"></span>
-
-								<!-- 배송구분 설정 -->
-								<span class="order_label02" th:if="${oneData.shotDelv}">총알배송</span>
-								<span class="order_label01" th:if="${oneData.selfMall}">STYLE24 일반배송</span>
-								<span class="order_label01" th:if="${oneData.supplyMall}">업체직배송</span>
-								<!-- //배송구분 설정 -->
-<!--								<a href="javascript:void(0)" class="detail_btn" th:attr="ordNo=${oneData.ordNo}" onclick="fnGoToOrderDetail(this)">주문상세보기</a>-->
+			<div class="cont">
+				<div class="sec_head">
+					<h3 class="subH1">주문상세</h3>
+					<span class="order_number">주문번호&nbsp;:&nbsp;<em th:text="${ordNo}"></em></span>
+					<button type="button" id="btn_order_cancel" class="btn_underline" onclick="fnDeleteOrder()"><span>삭제하기</span></button>
+				</div>
+				<div class="sec_body">
+					<th:block th:if="${orderList}" th:each="order, status : ${orderList}">
+						<div class="part_goods">
+							<div class="goods_head">
+								<p th:unless="${order.giftPackYn == 'Y'}">주문일 <span th:text="${order.ordDt}"></span></p>
+								<p th:if="${order.giftPackYn == 'Y'}">선물일 <span th:text="${order.ordDt}"></span></p>
+								<a href="javascript:void(0)" th:if="${allCanYn == 'Y'}" th:onclick="fnAllCancel(${order.ordNo})">주문전체취소</a>
 							</div>
-							<th:block th:if="${oneData.orderList}" th:each="order, status : ${oneData.orderList}">
-								<div class="tbl type2">
-									<table>
-										<colgroup>
-											<col width="1020">
-											<col width="180">
-										</colgroup>
-										<tbody>
-										<th:block th:if="${order.ordDtlList}" th:each="ordDtl, status : ${order.ordDtlList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
-											<input type="hidden" name="ordDtlNo" th:value="${ordDtl.ordDtlNo}"/>
-											<input type="hidden" name="ordDtlStat" th:value="${ordDtl.ordDtlStat}"/>
-											<input type="hidden" name="reviewSq" th:value="${ordDtl.reviewSq}"/>
-											<tr class="bundle_row">
-												<td>
-													<div class="info_item">
-														<div class="thumb_box">
-															<a href="">
-																<img th:src="${imageUrl + '/' + ordDtl.sysImgNm}" width="100%" alt="">
-															</a>
-														</div>
-														<div class="info_box">
-															<p class="od_name">
-																<a href="">
-																	<span class="brand" th:text="${ordDtl.brandNm}"></span>
-																	<span class="name" th:text="${ordDtl.goodsNm}"></span>
-																</a>
-															</p>
-															<p class="od_opt">
-																<span class="option"><em th:text="${ordDtl.optCd1}"></em><em th:text="${ordDtl.optCd2}"></em></span>
-																<span class="count">수량 <em th:text="${ordDtl.ordQty}"></em>개</span>
-															</p>
-															<button type="button" class="btn btn_dark cart_btn" onclick="fnCreateCart(this);">쇼핑백 담기</button>
-														</div>
-														<div class="info_calc">
-															<p class="price">
-																<span class="selling_price" th:text="|${#numbers.formatInteger(ordDtl.ordAmt, 1, 'COMMA')}원|"></span>
-															</p>
-															<p class="point"><span th:text="${#numbers.formatInteger(ordDtl.savePntAmt, 1, 'COMMA')}"></span>p</p>
-														</div>
+							<div class="goods_cont">
+								<!-- 주문상품 -->
+								<th:block th:if="${order.ordDtlList}" th:each="ordDtl, status : ${order.ordDtlList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+									<div class="goods_info">
+										<div class="order_desc">
+											<div class="goods_box">
+												<div class="gd_item">
+													<a href="javascript:void(0)" th:attr="goodsCd=${ordDtl.goodsCd}" onclick="fnGoToGoodsDetail(this)">
+														<span class="thumb">
+															<img th:src="${imageUrl + '/' + ordDtl.sysImgNm}" width="100%" alt="">
+														</span>
+														<p>
+															<span class="brand" th:text="${ordDtl.brandNm}"></span>
+															<span class="tag primary" th:if="${ordDtl.shotDelvYn == 'Y'}">총알배송</span>
+															<span class="tag" th:if="${ordDtl.shotDelvYn == 'N' and ordDtl.selfGoodsYn == 'Y'}">STYLE24 일반배송</span>
+															<span class="tag" th:if="${ordDtl.selfGoodsYn == 'N'}">업체직배송</span>
+														</p>
+														<p>
+															<span class="name" th:text="${ordDtl.goodsNm}"></span>
+														</p>
+													</a>
+												</div>
+												<div class="gd_opt">
+													<div class="option_wrap">
+														<span class="title sr-only">주문 옵션</span>
+														<span class="option" th:text="|${ordDtl.optCd1} / ${ordDtl.optCd2}|"></span>
 													</div>
-												</td>
+												</div>
+												<div class="gd_calc">
+													<p>
+														<span class="count"><em th:text="${ordDtl.ordQty}"></em>개</span>
+													</p>
+													<p>
+														<span class="price_org"><em th:text="${#numbers.formatInteger(ordDtl.listPrice * (ordDtl.ordQty - ordDtl.cnclRtnQty), 1, 'COMMA')}"></em>원</span>
+														<span class="price_sale"><em th:text="${#numbers.formatInteger(ordDtl.ordAmt - ordDtl.cnclRtnAmt, 1, 'COMMA')}"></em>원</span>
+													</p>
+													<p>
+														<span class="point"><em th:text="${#numbers.formatInteger(ordDtl.savePntAmt, 1, 'COMMA')}"></em><stong>P</stong>&nbsp;적립예정</span>
+													</p>
+												</div>
+											</div>
+											<div class="status_box">
+												<!-- 선물 -->
+												<th:block th:if="${order.giftPackYn == 'Y'}">
+													<p th:if="${#strings.isEmpty(ordDtl.recipBaseAddr) and ordDtl.giftLimitDay >= 0}">주소 입력 대기중</p>
+													<p th:if="${!#strings.isEmpty(ordDtl.recipBaseAddr) and ordDtl.ordDtlStat != 'G013_98' and ordDtl.ordDtlStat != 'G013_99'}">선물 완료</p>
+													<p th:if="${ordDtl.ordDtlStat == 'G013_98' or ordDtl.ordDtlStat == 'G013_99'}">선물 취소</p>
+												</th:block>
 												<!-- 주문 -->
-												<td class="merge_row" th:unless="${oneData.giftPackYn == 'Y'}">
-													<div class="delivery">
-														<p class="dlvr_staus" th:text="${ordDtl.ordDtlStatNm}"></p>
-														<p class="dlvr_desc" th:if="${ordDtl.delvEddt}" th:text="|${ordDtl.delvEddt}일 도착|"></p>
-													</div>
-													<div class="tbl_btn_wrap case02">
-														<button type="button" class="btn btn_default btn_sm" onclick="fnCreateExchange(this, 'exchange');"><span>교환</span></button>
-														<button type="button" class="btn btn_default btn_sm" onclick="fnCreateCancel(this, 'cancel');"><span>반품/취소</span></button>
-<!--														<button type="button" class="btn btn_default btn_sm" th:if="${ordDtl.reviewSq == 0}" th:attr="ordNo=${oneData.ordNo}" onclick="fnCreateReview(this);"><span>리뷰작성</span></button>-->
-														<button type="button" class="btn btn_default btn_sm" th:if="${!order.review}" th:attr="ordNo=${oneData.ordNo}" onclick="fnCreateReview(this);"><span>리뷰작성</span></button>
-													</div>
-												</td>
-												<td class="merge_row" th:if="${oneData.giftPackYn == 'Y' and #strings.isEmpty(ordDtl.recipBaseAddr)}">
-													<div class="delivery">
-														<p class="dlvr_staus c_primary">주소 입력 대기</p>
-														<p class="dlvr_desc" th:text="|남은 기간 ${ordDtl.giftLimitDay}일|"></p>
-														<p class="dlvr_desc" th:text="|(${ordDtl.giftLimitDt}까지)|"></p>
-													</div>
-													<div class="tbl_btn_wrap case02">
-														<button type="button" class="btn btn_dark btn_sm" onclick="fnReSendSms(this);"><span>SMS 재전송</span></button>
-													</div>
-												</td>
-												<td class="merge_row" th:if="${oneData.giftPackYn == 'Y' and !#strings.isEmpty(ordDtl.recipBaseAddr)}">
-													<div class="delivery">
-														<p class="dlvr_staus c_primary">선물 완료</p>
-														<p class="dlvr_desc" th:text="|(${ordDtl.giftCompleteDt})|"></p>
-													</div>
-													<div class="tbl_btn_wrap case02">
-													</div>
-												</td>
-											</tr>
+												<th:block th:unless="${order.giftPackYn == 'Y'}">
+													<p th:text="${ordDtl.ordDtlStatNm}"></p>
+												</th:block>
+											</div>
+											<div class="button_box">
+												<!-- 선물 -->
+												<th:block th:if="${order.giftPackYn == 'Y'}">
+													<!-- SMS 재발송 버튼 -->
+													<th:block th:if="${#strings.isEmpty(ordDtl.recipBaseAddr) and ordDtl.giftLimitDay >= 0}">
+														<p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}" onclick="fnReSendSms(this);"><span>SMS 재발송</span></button></p>
+													</th:block>
+													
+													<!-- 리뷰 쓰기 버튼 -->
+													<th:block th:if="${!#strings.isEmpty(ordDtl.recipBaseAddr) and ordDtl.ordDtlStat != 'G013_98' and ordDtl.ordDtlStat != 'G013_99' and ordDtl.reviewableYn == 'Y' and ordDtl.reviewSq == null}">
+														<p><button type="button" class="btn btn_primary_line btn_sm" th:attr="ordNo=${ordDtl.ordNo}" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></p>
+													</th:block>
+												</th:block>
+												<!-- 주문 -->
+												<th:block th:unless="${order.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' or ordDtl.ordDtlStat == 'G013_40'}">
+														<p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnCreateChange(this, 'cancel');"><span>주문 취소</span></button></p>
+													</th:block>
+													
+													<!-- 교환/반품 신청 버튼(배송중, 출고완료, 배송완료) -->
+													<th:block th:if="${ordDtl.ordDtlStat == 'G013_50' or ordDtl.ordDtlStat == 'G013_55' or ordDtl.ordDtlStat == 'G013_60'}">
+														<!-- 교환/반품 가능한 상품 -->
+														<th:block th:if="${ordDtl.changeableYn == 'Y' and ordDtl.returnableYn == 'Y'}">
+															<p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, supplyCompCd=${ordDtl.supplyCompCd}" onclick="fnCreateChange(this, 'exchange');"><span>교환 신청</span></button></p>
+															<p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, supplyCompCd=${ordDtl.supplyCompCd}" onclick="fnCreateChange(this, 'return');"><span>반품 신청</span></button></p>
+														</th:block>
+														
+														<!-- 교환 신청 불가 상품 -->
+														<th:block th:if="${ordDtl.changeableYn == 'N' and ordDtl.returnableYn == 'Y'}">
+															<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>
+															<p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, supplyCompCd=${ordDtl.supplyCompCd}" onclick="fnCreateChange(this, 'return');"><span>반품 신청</span></button></p>
+														</th:block>
+
+														<!-- 반품 신청 불가 상품 -->
+														<th:block th:if="${ordDtl.changeableYn == 'Y' and ordDtl.returnableYn == 'N'}">
+															<p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, supplyCompCd=${ordDtl.supplyCompCd}" onclick="fnCreateChange(this, 'exchange');"><span>교환 신청</span></button></p>
+															<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>
+														</th:block>
+
+														<!-- 교환/반품 신청 불가 상품 -->
+														<th:block th:if="${ordDtl.changeableYn == 'N' and ordDtl.returnableYn == 'N'}">
+															<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>
+														</th:block>
+													</th:block>
+													
+													<!-- 배송조회 버튼(배송중) -->
+													<th:block th:if="${ordDtl.ordDtlStat == 'G013_50' or ordDtl.ordDtlStat == 'G013_55'}">
+														<p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnGoToDelivery(this);"><span>배송 조회</span></button></p>
+													</th:block>
+
+													<!-- 구매확정 버튼(배송완료) -->
+													<th:block th:if="${ordDtl.ordDtlStat == 'G013_60'}">
+														<p><button type="button" class="btn btn_primary_line btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnDecideOrder(this);"><span>구매 확정</span></button></p>
+													</th:block>
+
+													<!-- 리뷰작성 버튼(구매확정) -->
+													<th:block th:if="${ordDtl.ordDtlStat == 'G013_70' and ordDtl.reviewableYn == 'Y' and ordDtl.reviewSq == null}">
+														<p><button type="button" class="btn btn_primary_line btn_sm" th:attr="ordNo=${ordDtl.ordNo}" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></p>
+													</th:block>
+
+													<!-- 쇼핑백담기 버튼(구매확정) -->
+													<th:block th:if="${ordDtl.ordDtlStat == 'G013_70'}">
+														<p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnCreateCart(this);"><span>쇼핑백 담기</span></button></p>
+													</th:block>
+
+													<!-- 1:1문의 버튼(구매확정) -->
+													<th:block th:if="${ordDtl.ordDtlStat == 'G013_70' and (ordDtl.reviewableYn == 'N' or ordDtl.reviewSq > 0)}">
+														<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA);"><span>1:1 문의</span></button></p>
+													</th:block>
+												</th:block>
+											</div>
+										</div>
+										<!-- 선물 -->
+										<th:block th:if="${order.giftPackYn == 'Y'}">
+											<!-- 주소 입력 대기중 -->
+											<div class="order_text" th:if="${#strings.isEmpty(ordDtl.recipBaseAddr) and ordDtl.giftLimitDay >= 0}">
+												<p th:text="|${ordDtl.recipNm}님이 주소를 입력하기 전입니다. (입력기한 ${ordDtl.giftLimitDt})|"></p>
+											</div>
+
+											<!-- 선물 완료 -->
+											<div class="order_text" th:if="${!#strings.isEmpty(ordDtl.recipBaseAddr) and ordDtl.ordDtlStat != 'G013_98' and ordDtl.ordDtlStat != 'G013_99'}">
+												<p th:text="|${ordDtl.recipNm}님께 선물이 발송되었습니다.|"></p>
+											</div>
+
+											<!-- 선물 취소 -->
+											<div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_98' and ordDtl.ordDtlStat == 'G013_99'}">
+												<p th:text="|주소 입력 기한이 경과되어 선물이 취소 되었습니다.|"></p>
+											</div>
 										</th:block>
-										</tbody>
-									</table>
-								</div>
-								<!-- 주문 -->
-								<th:block th:unless="${oneData.giftPackYn == 'Y'}">
-									<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_00' or order.ordDtlStat == 'G013_10' or order.ordDtlStat == 'G013_11'}">
-										<span class="cf_txt">주문 완료 / 결제를 기다리고 있습니다.</span>
-									</div>
-									<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_20' or order.ordDtlStat == 'G013_30' or order.ordDtlStat == 'G013_35'}">
-										<span class="cf_txt">배송할 상품을 준비 중입니다.</span>
-									</div>
-									<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_40'}">
-										<span class="cf_txt">상품준비가 완료되어 곧 배송될 예정입니다.</span>
-									</div>
-									<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_50' or order.ordDtlStat == 'G013_55'}">
-										<span class="cf_txt" th:text="|${order.shipCompNm} / ${order.invoiceNo}|"></span>
-										<button type="button" class="btn btn_primary" th:attr="ordNo=${oneData.ordNo}, invoiceNo=${order.invoiceNo}, shipCompCd=${order.shipCompCd}" onclick="fnGetDeliveryInfo(this)">배송조회</button>
-									</div>
-									<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_60'}">
-										<span class="cf_txt" th:text="|${order.purchaseConfirmDay}일 후 자동으로 구매확정|"></span>
-										<button type="button" class="btn btn_primary" onclick="fnDecideOrder(this);">구매확정 하기</button>
-									</div>
-									<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq == 0}">
-										<span class="cf_txt">리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다.</span>
-										<button type="button" class="btn btn_primary" banner="banner" onclick="fnCreateReview(this, 'Y');">리뷰작성</button>
-									</div>
-									<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq > 0}">
-										<span class="cf_txt">주문내역 다시 구매하기 위해</span>
-										<button type="button" class="btn btn_primary" onclick="fnCreateCart(this, 'Y');">장바구니 담기</button>
-									</div>
-								</th:block>
+										
+										<!-- 주문 -->
+										<th:block th:unless="${order.giftPackYn == 'Y'}">
+											<!-- 주문 접수 -->
+											<div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_10'}">
+												<p>주문이 완료되어 결제를 기다리고 있습니다.</p>
 
-								<!-- 선물 -->
-								<th:block th:if="${oneData.giftPackYn == 'Y'}">
-									<div class="order_confirm" th:if="${#strings.isEmpty(order.recipBaseAddr) and order.giftLimitDay >= 0}">
-										<span class="cf_txt" th:text="|${order.recipNm}님이 주소를 입력하기 전입니다. (입력기한 ${order.giftLimitDt})|"></span>
-									</div>
-									<div class="order_confirm" th:unless="${#strings.isEmpty(order.recipBaseAddr)}">
-										<span class="cf_txt" th:text="|${order.recipNm}님께 선물이 발송되었습니다.|"></span>
-									</div>
-									<div class="order_confirm" th:if="${#strings.isEmpty(order.recipBaseAddr) and order.giftLimitDay < 0}">
-										<span class="cf_txt">주소입력 기한이 경과되어 선물이 취소 되었습니다.</span>
+												<!-- 예약 상품 -->
+												<p th:if="${!#strings.isEmpty(ordDtl.recipBaseAddr)}" th:text="|예약판매 상품으로${ordDtl.delvResDt} 출고 예정입니다.|"></p>
+											</div>
+											
+											<!-- 상품준비중 -->
+											<div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_30'}">
+												<p>배송할 상품을 준비 중입니다.</p>
+
+												<!-- 예약 상품 -->
+												<p th:if="${!#strings.isEmpty(ordDtl.recipBaseAddr)}" th:text="|예약판매 상품으로${ordDtl.delvResDt} 출고 예정입니다.|"></p>
+											</div>
+											
+											<!-- 배송준비중 -->
+											<div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_40'}">
+												<p>상품 준비가 완료되어 곧 배송될 예정입니다.</p>
+
+												<!-- 예약 상품 -->
+												<p th:if="${!#strings.isEmpty(ordDtl.recipBaseAddr)}" th:text="|예약판매 상품으로${ordDtl.delvResDt} 출고 예정입니다.|"></p>
+											</div>
+											
+											<!-- 배송중, 배송완료 -->
+											<div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_50' or ordDtl.ordDtlStat == 'G013_55' or ordDtl.ordDtlStat == 'G013_60'}">
+												<p th:if="${ordDtl.changeableYn == 'N' and ordDtl.returnableYn == 'Y'}">해당 상품은 교환이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>
+												<p th:if="${ordDtl.changeableYn == 'Y' and ordDtl.returnableYn == 'N'}">해당 상품은 반품이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>
+												<p th:if="${ordDtl.changeableYn == 'N' and ordDtl.returnableYn == 'N'}">해당 상품은 교환/반품이 불가능한 상품입니다. 문의사항은 1:1문의를 이용해주세요.</p>
+												<p th:if="${ordDtl.ordDtlStat == 'G013_60'}">15일 후 자동으로 구매확정됩니다.</p>
+											</div>
+											
+											<!-- 구매확정 -->
+											<div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_70' and ordDtl.reviewableYn == 'Y' and ordDtl.reviewSq == null}">
+												<p>리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다.</p>
+											</div>
+										</th:block>
 									</div>
 								</th:block>
-							</th:block>
+								<!-- //주문상품 -->
+							</div>
+							<div class="goods_foot" th:if="${order.freeGiftList != null and order.freeGiftList.length > 0}">
+								<div class="order_gift">
+									<span class="title">사은품</span>
+									<ul>
+										
+									</ul>
+								</div>
+							</div>
 						</div>
 					</th:block>
-
-					<!-- 주문 없을 때 -->
-					<th:block th:unless="${orderList}" th:each="oneData, status : ${orderList}">
-
-					</th:block>
-				</section>
-				<section class="order_row" th:if="${paymentInfo.payMeans == 'G014_20'}">
-					<div class="order_tit">
-						<h3 class="subH3">무통장 입금 정보</h3>
+					<h4 class="subH3">무통장 입금 정보</h4>
+					<div class="tbl type1">
+						<table>
+							<colgroup>
+								<col width="210">
+								<col width="*">
+							</colgroup>
+							<tbody><tr>
+								<th>
+									계좌정보/입금기한
+								</th>
+								<td>
+									<div class="single_line">
+										<ul>
+											<li><span>기업은행</span>&nbsp;<span>(홍길동)</span></li>
+											<li><span>123-45678-91234</span></li>
+											<li><span>2020.01.18</span>&nbsp;<span>12:00:00</span>&nbsp;까지</li>
+										</ul>
+									</div>
+								</td>
+							</tr>
+							</tbody></table>
 					</div>
-					<div class="tbl type1 row_tbl">
+					<h4 class="subH3">주문자/배송지 정보</h4>
+					<div class="tbl type1">
 						<table>
 							<colgroup>
+								<col width="210">
 								<col width="*">
 							</colgroup>
-							<tbody>
-								<tr>
-									<td>
+							<tbody><tr>
+								<th>
+									주문 고객
+								</th>
+								<td>
+									<div class="single_line">
+										<ul>
+											<li><span>홍길동</span></li>
+											<li><span>abcdefg@naver.com</span></li>
+											<li><span>010-3456-7890</span></li>
+										</ul>
+									</div>
+								</td>
+							</tr>
+							<tr>
+								<th>
+									배송지 정보
+								</th>
+								<td>
+									<div class="block_line">
+										<ul>
+											<li>
+												<span>홍길동</span>
+												<span class="tag">기본 배송지</span>
+												<span class="tag primary_line">총알배송</span>
+											</li>
+											<li>
+												<span>010-3456-7890</span>
+											</li>
+											<li>
+												<span>서울시 영등포구 은행로 11, 8층 (여의도동, 일신빌딩)</span><button type="button" class="btn btn_default btn_sm"><span>배송지 변경</span></button>
+											</li>
+											<li>
+												배송요청 사항&nbsp;:&nbsp;<span>직접 받고 부재 시 문 앞</span><button type="button" class="btn_underline"><span>변경하기</span></button>
+											</li>
+										</ul>
+									</div>
+								</td>
+							</tr>
+							</tbody></table>
+					</div>
+					<h4 class="subH3">결제정보</h4>
+					<div class="tbl type6">
+						<table>
+							<colgroup>
+								<col width="50%">
+								<col width="50%">
+							</colgroup>
+							<tbody><tr>
+								<td>
+									<dl>
 										<div>
-											<span th:text="${paymentInfo.vaBank}"></span>(<span th:text="${paymentInfo.vaNm}"></span>)
+											<dt>총 주문금액 (상품금액+배송비+추가비용)</dt>
+											<dd>
+												<div class="price">
+													<span class="order_total_price"><em>3,546,200</em>원</span>
+												</div>
+											</dd>
 										</div>
-										<div>
-											<span th:text="${paymentInfo.vaNo}"></span>
+										<div class="include_item"> <!-- 할인항목 표기 class명 include_item -->
+											<dt>상품할인(즉시할인)</dt>
+											<dd><em>-123,456,789</em>원</dd>
+										</div>
+										<div class="include_item">
+											<dt>다다익선 할인</dt>
+											<dd><em>-123,456,789</em>원</dd>
+										</div>
+										<div class="include_item">
+											<dt>쿠폰할인</dt>
+											<dd><em>-123,456,789</em>원</dd>
+										</div>
+										<div class="include_item">
+											<dt>선포인트 할인</dt>
+											<dd><em>-123,456,789</em>원</dd>
+										</div>
+										<div class="include_item">
+											<dt>포인트 사용</dt>
+											<dd><em>-123,456,789</em>원</dd>
+										</div>
+										<div class="include_item">
+											<dt>상품권 사용</dt>
+											<dd><em>-123,456,789</em>원</dd>
 										</div>
+										<div class="include_item">
+											<dt>마일리지 사용</dt>
+											<dd><em>-123,456,789</em>원</dd>
+										</div>
+										<div class="include_item">
+											<dt>제휴할인</dt>
+											<dd><em>-123,456,789</em>원</dd>
+										</div>
+									</dl>
+								</td>
+								<td>
+									<dl>
 										<div>
-											<span th:text="${paymentInfo.vaDeadlineYmd}"></span><span th:text="${paymentInfo.vaDeadlineHms}"></span> 까지
+											<dt>결제 금액</dt>
+											<dd>
+												<div class="price">
+													<span class="pay_total_price"><em>3,546,200</em>원</span>
+												</div>
+											</dd>
 										</div>
-									</td>
-								</tr>
-							</tbody>
-						</table>
-					</div>
-				</section>
-				<section class="order_row">
-					<div class="order_tit">
-						<h3 class="subH3">주문 고객</h3>
-					</div>
-					<div class="tbl type1 row_tbl">
-						<table>
-							<colgroup>
-								<col width="*">
-							</colgroup>
-							<tbody>
-								<tr>
-									<td>
 										<div>
-											<span th:text="${orderInfo.ordNm}"></span>
+											<dt class="sr-only">결제방법</dt>
+											<dd>
+												신용카드(현대카드) / 일시불
+											</dd>
 										</div>
 										<div>
-											<span th:text="${orderInfo.ordEmail}"></span>
+											<dt class="sr-only">영수증 확인</dt>
+											<dd>
+												<button type="button" class="btn btn_default btn_sm"><span>신용카드 전표</span>
+												</button><button type="button" class="btn btn_default btn_sm"><span>현금 영수증</span>
+											</button><button type="button" class="btn btn_default btn_sm"><span>상품권 현금 영수증 신청</span>
+											</button></dd>
 										</div>
+									</dl>
+									<dl>
 										<div>
-											<span th:text="${orderInfo.ordPhnno}"></span>
+											<dt>적립 예정 포인트</dt>
+											<dd>
+												<span class="save_point"><em>123,456,789P</em></span>
+											</dd>
 										</div>
-									</td>
-								</tr>
-							</tbody>
-						</table>
-					</div>
-				</section>
-				<section class="order_row">
-					<div class="order_tit">
-						<h3 class="subH3">배송지 정보</h3>
-					</div>
-					<div class="tbl type1 row_tbl">
-						<table>
-							<colgroup>
-								<col width="*">
-							</colgroup>
-							<tbody>
-							<tr th:if="${deliveryAddrInfo.recipNm}">
-								<td th:text="${deliveryAddrInfo.recipNm}"><span class="sr-only">배송지명</span></td>
-							</tr>
-							<tr th:if="${${deliveryAddrInfo.recipBaseAddr}}">
-								<td th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|"><span class="sr-only">배송 주소</span></td>
-							</tr>
-							<tr>
-								<td th:text="${deliveryAddrInfo.recipPhnno}"><span class="sr-only">휴대폰 번호</span></td>
-							</tr>
-							<tr>
-								<td>
-									<span class="tit c_primary">배송요청 사항</span>
-									<th:block th:text="${deliveryAddrInfo.delvMemo}"></th:block>
-									<button type="button" class="btn_popup" id="btn_rqstModify_pop" onclick="fnChangeDelvMemo();"><span>변경하기</span></button>
+									</dl>
 								</td>
 							</tr>
-							</tbody>
-						</table>
+							</tbody></table>
 					</div>
-				</section>
-				<section class="order_row">
-					<div class="order_tit">
-						<h3 class="subH3">결제정보</h3>
+					<div class="btn_footer_area">
+						<button type="button" class="btn btn_dark btn_md"><span>확인</span></button>
 					</div>
-					<div class="order_amount">
-						<div class="tbl type3">
-							<table>
-								<colgroup>
-									<col width="33.33%">
-									<col width="33.33%">
-									<col width="*">
-								</colgroup>
-								<thead>
-								<tr>
-									<th>
-										<dl>
-											<dt>총 주문금액</dt>
-											<dd class="price" th:text="|${#numbers.formatInteger(orderAmtInfo.ordAmt + orderAmtInfo.delvFee, 1, 'COMMA')}원|"></dd>
-										</dl>
-										<i class="ico_calc minus"></i>
-									</th>
-									<th>
-										<dl>
-											<dt>총 할인금액</dt>
-											<dd class="price" th:text="|- ${#numbers.formatInteger(orderAmtInfo.totalDcAmt, 1, 'COMMA')}원|"></dd>
-										</dl>
-										<i class="ico_calc result"></i>
-									</th>
-									<th>
-										<dl>
-											<dt>결제금액</dt>
-											<dd class="price" data-weight="price" data-font="lato">
-												<span class="oder_total_price" th:text="${#numbers.formatInteger(orderAmtInfo.realOrdAmt, 1, 'COMMA')}"></span>원
-											</dd>
-										</dl>
-									</th>
-								</tr>
-								</thead>
-								<tbody>
-								<tr>
-									<td>
-										<dl>
-											<div>
-												<dt>상품금액</dt>
-												<dd th:text="|${#numbers.formatInteger(orderAmtInfo.ordAmt, 1, 'COMMA')}원|"></dd>
-											</div>
-											<div th:if="${orderAmtInfo.delvFee > 0}">
-												<dt>배송비</dt>
-												<dd th:text="|${#numbers.formatInteger(orderAmtInfo.delvFee, 1, 'COMMA')}원|"></dd>
-											</div>
-										</dl>
-									</td>
-									<td>
-										<dl>
-											<div th:if="${orderAmtInfo.cpn1DcAmt > 0}">
-												<dt>상품 할인(즉시 할인)</dt>
-												<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.cpn1DcAmt, 1, 'COMMA')}원|"></dd>
+				</div>
+			</div>
+			
+			<div class="my_cont">
+				<div class="sec_head">
+					<h3>주문상세</h3>
+					<div class="od_detail">
+						(주문번호 : <span class="num" th:text="${ordNo}"></span>)
+					</div>
+					<button type="button" class="btn btn_default od_del_btn" onclick="fnDeleteOrder()"><span>주문 내역 삭제</span></button>
+				</div>
+				<div class="sec_body">
+					<div class="order_list" id="orderList">
+						<section class="order_row">
+							<th:block th:if="${orderList}" th:each="oneData, status : ${orderList}">
+								<div class="part_deliver">
+									<div class="tbl_tit">
+										<!-- 주문일/선물일 설정 -->
+										<span class="start_t" th:unless="${oneData.giftPackYn == 'Y'}">주문일</span>
+										<span class="gift_t" th:if="${oneData.giftPackYn == 'Y'}">선물일</span>
+										<!-- //주문일/선물일 설정 -->
+		
+										<span class="order_date" th:text="${oneData.ordDt}"></span>
+		
+										<!-- 배송구분 설정 -->
+										<span class="order_label02" th:if="${oneData.shotDelv}">총알배송</span>
+										<span class="order_label01" th:if="${oneData.selfMall}">STYLE24 일반배송</span>
+										<span class="order_label01" th:if="${oneData.supplyMall}">업체직배송</span>
+										<!-- //배송구분 설정 -->
+		<!--								<a href="javascript:void(0)" class="detail_btn" th:attr="ordNo=${oneData.ordNo}" onclick="fnGoToOrderDetail(this)">주문상세보기</a>-->
+									</div>
+									<th:block th:if="${oneData.orderList}" th:each="order, status : ${oneData.orderList}">
+										<div class="tbl type2">
+											<table>
+												<colgroup>
+													<col width="1020">
+													<col width="180">
+												</colgroup>
+												<tbody>
+												<th:block th:if="${order.ordDtlList}" th:each="ordDtl, status : ${order.ordDtlList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+													<input type="hidden" name="ordDtlNo" th:value="${ordDtl.ordDtlNo}"/>
+													<input type="hidden" name="ordDtlStat" th:value="${ordDtl.ordDtlStat}"/>
+													<input type="hidden" name="reviewSq" th:value="${ordDtl.reviewSq}"/>
+													<tr class="bundle_row">
+														<td>
+															<div class="info_item">
+																<div class="thumb_box">
+																	<a href="">
+																		<img th:src="${imageUrl + '/' + ordDtl.sysImgNm}" width="100%" alt="">
+																	</a>
+																</div>
+																<div class="info_box">
+																	<p class="od_name">
+																		<a href="">
+																			<span class="brand" th:text="${ordDtl.brandNm}"></span>
+																			<span class="name" th:text="${ordDtl.goodsNm}"></span>
+																		</a>
+																	</p>
+																	<p class="od_opt">
+																		<span class="option"><em th:text="${ordDtl.optCd1}"></em><em th:text="${ordDtl.optCd2}"></em></span>
+																		<span class="count">수량 <em th:text="${ordDtl.ordQty}"></em>개</span>
+																	</p>
+																	<button type="button" class="btn btn_dark cart_btn" onclick="fnCreateCart(this);">쇼핑백 담기</button>
+																</div>
+																<div class="info_calc">
+																	<p class="price">
+																		<span class="selling_price" th:text="|${#numbers.formatInteger(ordDtl.ordAmt, 1, 'COMMA')}원|"></span>
+																	</p>
+																	<p class="point"><span th:text="${#numbers.formatInteger(ordDtl.savePntAmt, 1, 'COMMA')}"></span>p</p>
+																</div>
+															</div>
+														</td>
+														<!-- 주문 -->
+														<td class="merge_row" th:unless="${oneData.giftPackYn == 'Y'}">
+															<div class="delivery">
+																<p class="dlvr_staus" th:text="${ordDtl.ordDtlStatNm}"></p>
+																<p class="dlvr_desc" th:if="${ordDtl.delvEddt}" th:text="|${ordDtl.delvEddt}일 도착|"></p>
+															</div>
+															<div class="tbl_btn_wrap case02">
+																<button type="button" class="btn btn_default btn_sm" onclick="fnCreateExchange(this, 'exchange');"><span>교환</span></button>
+																<button type="button" class="btn btn_default btn_sm" onclick="fnCreateCancel(this, 'cancel');"><span>반품/취소</span></button>
+		<!--														<button type="button" class="btn btn_default btn_sm" th:if="${ordDtl.reviewSq == 0}" th:attr="ordNo=${oneData.ordNo}" onclick="fnCreateReview(this);"><span>리뷰작성</span></button>-->
+																<button type="button" class="btn btn_default btn_sm" th:if="${!order.review}" th:attr="ordNo=${oneData.ordNo}" onclick="fnCreateReview(this);"><span>리뷰작성</span></button>
+															</div>
+														</td>
+														<td class="merge_row" th:if="${oneData.giftPackYn == 'Y' and #strings.isEmpty(ordDtl.recipBaseAddr)}">
+															<div class="delivery">
+																<p class="dlvr_staus c_primary">주소 입력 대기</p>
+																<p class="dlvr_desc" th:text="|남은 기간 ${ordDtl.giftLimitDay}일|"></p>
+																<p class="dlvr_desc" th:text="|(${ordDtl.giftLimitDt}까지)|"></p>
+															</div>
+															<div class="tbl_btn_wrap case02">
+																<button type="button" class="btn btn_dark btn_sm" onclick="fnReSendSms(this);"><span>SMS 재전송</span></button>
+															</div>
+														</td>
+														<td class="merge_row" th:if="${oneData.giftPackYn == 'Y' and !#strings.isEmpty(ordDtl.recipBaseAddr)}">
+															<div class="delivery">
+																<p class="dlvr_staus c_primary">선물 완료</p>
+																<p class="dlvr_desc" th:text="|(${ordDtl.giftCompleteDt})|"></p>
+															</div>
+															<div class="tbl_btn_wrap case02">
+															</div>
+														</td>
+													</tr>
+												</th:block>
+												</tbody>
+											</table>
+										</div>
+										<!-- 주문 -->
+										<th:block th:unless="${oneData.giftPackYn == 'Y'}">
+											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_00' or order.ordDtlStat == 'G013_10' or order.ordDtlStat == 'G013_11'}">
+												<span class="cf_txt">주문 완료 / 결제를 기다리고 있습니다.</span>
 											</div>
-											<div th:if="${orderAmtInfo.tmtb1DcAmt + orderAmtInfo.tmtb2DcAmt > 0}">
-												<dt>다다익선 할인</dt>
-												<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.tmtb1DcAmt + orderAmtInfo.tmtb2DcAmt, 1, 'COMMA')}원|"></dd>
+											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_20' or order.ordDtlStat == 'G013_30' or order.ordDtlStat == 'G013_35'}">
+												<span class="cf_txt">배송할 상품을 준비 중입니다.</span>
 											</div>
-											<div th:if="${orderAmtInfo.cartCpnDcAmt + orderAmtInfo.goodsCpnDcAmt > 0}">
-												<dt>쿠폰 할인</dt>
-												<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.cartCpnDcAmt + orderAmtInfo.goodsCpnDcAmt, 1, 'COMMA')}원|">- 30,000원</dd>
+											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_40'}">
+												<span class="cf_txt">상품준비가 완료되어 곧 배송될 예정입니다.</span>
 											</div>
-											<div th:if="${orderAmtInfo.prePntDcAmt > 0}">
-												<dt>선 포인트 할인</dt>
-												<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.prePntDcAmt, 1, 'COMMA')}원|"></dd>
+											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_50' or order.ordDtlStat == 'G013_55'}">
+												<span class="cf_txt" th:text="|${order.shipCompNm} / ${order.invoiceNo}|"></span>
+												<button type="button" class="btn btn_primary" th:attr="ordNo=${oneData.ordNo}, invoiceNo=${order.invoiceNo}, shipCompCd=${order.shipCompCd}" onclick="fnGetDeliveryInfo(this)">배송조회</button>
 											</div>
-											<div th:if="${orderAmtInfo.pntDcAmt > 0}">
-												<dt>포인트 사용</dt>
-												<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.pntDcAmt, 1, 'COMMA')}원|"></dd>
+											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_60'}">
+												<span class="cf_txt" th:text="|${order.purchaseConfirmDay}일 후 자동으로 구매확정|"></span>
+												<button type="button" class="btn btn_primary" onclick="fnDecideOrder(this);">구매확정 하기</button>
 											</div>
-											<div th:if="${orderAmtInfo.gfcdUseAmt > 0}">
-												<dt>상품권 사용</dt>
-												<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.gfcdUseAmt, 1, 'COMMA')}원|"></dd>
+											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq == 0}">
+												<span class="cf_txt">리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다.</span>
+												<button type="button" class="btn btn_primary" banner="banner" onclick="fnCreateReview(this, 'Y');">리뷰작성</button>
 											</div>
-											<!-- 
-											<div th:if="${}">
-												<dt>마일리지 사용</dt>
-												<dd></dd>
+											<div class="order_confirm" th:if="${order.ordDtlStat == 'G013_70' and order.reviewSq > 0}">
+												<span class="cf_txt">주문내역 다시 구매하기 위해</span>
+												<button type="button" class="btn btn_primary" onclick="fnCreateCart(this, 'Y');">장바구니 담기</button>
 											</div>
-											<div th:if="${}">
-												<dt>제휴 할인</dt>
-												<dd></dd>
+										</th:block>
+		
+										<!-- 선물 -->
+										<th:block th:if="${oneData.giftPackYn == 'Y'}">
+											<div class="order_confirm" th:if="${#strings.isEmpty(order.recipBaseAddr) and order.giftLimitDay >= 0}">
+												<span class="cf_txt" th:text="|${order.recipNm}님이 주소를 입력하기 전입니다. (입력기한 ${order.giftLimitDt})|"></span>
 											</div>
-											-->
-										</dl>
-									</td>
-									<td>
-										<dl>
-											<div th:if="${orderAmtInfo.savePntAmt > 0}">
-												<dt>적립 예정 포인트</dt>
-												<dd th:text="|${#numbers.formatInteger(orderAmtInfo.savePntAmt, 1, 'COMMA')}P|"></dd>
+											<div class="order_confirm" th:unless="${#strings.isEmpty(order.recipBaseAddr)}">
+												<span class="cf_txt" th:text="|${order.recipNm}님께 선물이 발송되었습니다.|"></span>
 											</div>
-											<div>
-												<dt>결제방법</dt>
-												<dd>
-													<!-- TODO -->
-													<!-- Style24 간편결제 처리 (STYLE24 간편결제 : STYLE24 간편결제명 / 카드사명 / 할부개월(일시불)) -->
-													<!-- 실시간계좌이체, 무통장입금 현금영수증 신청여부 추가 -->
-													<!-- 네이버페이 처리 (네이버 페이 : 네이버 페이) -->
-													<!-- 카카오페이 처리 (카카오 페이 : 카카오 페이) -->
-													<!-- PAYCO 처리 (PAYCO : PAYCO) -->
-													<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_10'}" th:text="|실시간계좌이체|"></span>
-													<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_20'}" th:text="|무통장입금|"></span>
-													<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_30'}" th:text="|${paymentInfo.cardNm}/${paymentInfo.cardMips}|"></span>
-													<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_60'}">휴대폰결제</span>
-												</dd>
+											<div class="order_confirm" th:if="${#strings.isEmpty(order.recipBaseAddr) and order.giftLimitDay < 0}">
+												<span class="cf_txt">주소입력 기한이 경과되어 선물이 취소 되었습니다.</span>
 											</div>
-											<th:block th:if="${paymentInfo.pgGb == 'KCP'}">
-												<!-- 신용카드 결제시 -->
-												<div th:if="${paymentInfo.payMeans == 'G014_30'}">
-													<dt>&nbsp;</dt>
-													<dd>
-														<button type="button" class="btn btn_default" onclick="fnReceipt('card');"><span>신용카드 전표</span></button>
-													</dd>
+										</th:block>
+									</th:block>
+								</div>
+							</th:block>
+		
+							<!-- 주문 없을 때 -->
+							<th:block th:unless="${orderList}" th:each="oneData, status : ${orderList}">
+		
+							</th:block>
+						</section>
+						<section class="order_row" th:if="${paymentInfo.payMeans == 'G014_20'}">
+							<div class="order_tit">
+								<h3 class="subH3">무통장 입금 정보</h3>
+							</div>
+							<div class="tbl type1 row_tbl">
+								<table>
+									<colgroup>
+										<col width="*">
+									</colgroup>
+									<tbody>
+										<tr>
+											<td>
+												<div>
+													<span th:text="${paymentInfo.vaBank}"></span>(<span th:text="${paymentInfo.vaNm}"></span>)
 												</div>
-												<!-- //무통장 결제시 -->
-												<!-- 무통장 결제시 -->
-												<div th:if="${paymentInfo.payMeans == 'G014_10' or paymentInfo.payMeans == 'G014_20'}">
-													<dt>&nbsp;</dt>
-													<dd>
-														<button type="button" class="btn btn_default" onclick="fnReceipt('cash');"><span>현금영수증</span></button>
-													</dd>
+												<div>
+													<span th:text="${paymentInfo.vaNo}"></span>
 												</div>
-												<!-- //무통장 결제시 -->
-											</th:block>
-											<th:block th:unless="${paymentInfo.pgGb == 'KCP'}">
-												<dt></dt>
-												<dd>NPAY등의 대체결제수단으로 결제시 해당 결제 플롯폼에서 영수증 확인이 가능합니다.</dd>
-											</th:block>
-										</dl>
-									</td>
-								</tr>
-								</tbody>
-							</table>
-						</div>
+												<div>
+													<span th:text="${paymentInfo.vaDeadlineYmd}"></span><span th:text="${paymentInfo.vaDeadlineHms}"></span> 까지
+												</div>
+											</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</section>
+						<section class="order_row">
+							<div class="order_tit">
+								<h3 class="subH3">주문 고객</h3>
+							</div>
+							<div class="tbl type1 row_tbl">
+								<table>
+									<colgroup>
+										<col width="*">
+									</colgroup>
+									<tbody>
+										<tr>
+											<td>
+												<div>
+													<span th:text="${orderInfo.ordNm}"></span>
+												</div>
+												<div>
+													<span th:text="${orderInfo.ordEmail}"></span>
+												</div>
+												<div>
+													<span th:text="${orderInfo.ordPhnno}"></span>
+												</div>
+											</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</section>
+						<section class="order_row">
+							<div class="order_tit">
+								<h3 class="subH3">배송지 정보</h3>
+							</div>
+							<div class="tbl type1 row_tbl">
+								<table>
+									<colgroup>
+										<col width="*">
+									</colgroup>
+									<tbody>
+									<tr th:if="${deliveryAddrInfo.recipNm}">
+										<td th:text="${deliveryAddrInfo.recipNm}"><span class="sr-only">배송지명</span></td>
+									</tr>
+									<tr th:if="${${deliveryAddrInfo.recipBaseAddr}}">
+										<td th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|"><span class="sr-only">배송 주소</span></td>
+									</tr>
+									<tr>
+										<td th:text="${deliveryAddrInfo.recipPhnno}"><span class="sr-only">휴대폰 번호</span></td>
+									</tr>
+									<tr>
+										<td>
+											<span class="tit c_primary">배송요청 사항</span>
+											<th:block th:text="${deliveryAddrInfo.delvMemo}"></th:block>
+											<button type="button" class="btn_popup" id="btn_rqstModify_pop" onclick="fnChangeDelvMemo();"><span>변경하기</span></button>
+										</td>
+									</tr>
+									</tbody>
+								</table>
+							</div>
+						</section>
+						<section class="order_row">
+							<div class="order_tit">
+								<h3 class="subH3">결제정보</h3>
+							</div>
+							<div class="order_amount">
+								<div class="tbl type3">
+									<table>
+										<colgroup>
+											<col width="33.33%">
+											<col width="33.33%">
+											<col width="*">
+										</colgroup>
+										<thead>
+										<tr>
+											<th>
+												<dl>
+													<dt>총 주문금액</dt>
+													<dd class="price" th:text="|${#numbers.formatInteger(orderAmtInfo.ordAmt + orderAmtInfo.delvFee, 1, 'COMMA')}원|"></dd>
+												</dl>
+												<i class="ico_calc minus"></i>
+											</th>
+											<th>
+												<dl>
+													<dt>총 할인금액</dt>
+													<dd class="price" th:text="|- ${#numbers.formatInteger(orderAmtInfo.totalDcAmt, 1, 'COMMA')}원|"></dd>
+												</dl>
+												<i class="ico_calc result"></i>
+											</th>
+											<th>
+												<dl>
+													<dt>결제금액</dt>
+													<dd class="price" data-weight="price" data-font="lato">
+														<span class="oder_total_price" th:text="${#numbers.formatInteger(orderAmtInfo.realOrdAmt, 1, 'COMMA')}"></span>원
+													</dd>
+												</dl>
+											</th>
+										</tr>
+										</thead>
+										<tbody>
+										<tr>
+											<td>
+												<dl>
+													<div>
+														<dt>상품금액</dt>
+														<dd th:text="|${#numbers.formatInteger(orderAmtInfo.ordAmt, 1, 'COMMA')}원|"></dd>
+													</div>
+													<div th:if="${orderAmtInfo.delvFee > 0}">
+														<dt>배송비</dt>
+														<dd th:text="|${#numbers.formatInteger(orderAmtInfo.delvFee, 1, 'COMMA')}원|"></dd>
+													</div>
+												</dl>
+											</td>
+											<td>
+												<dl>
+													<div th:if="${orderAmtInfo.cpn1DcAmt > 0}">
+														<dt>상품 할인(즉시 할인)</dt>
+														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.cpn1DcAmt, 1, 'COMMA')}원|"></dd>
+													</div>
+													<div th:if="${orderAmtInfo.tmtb1DcAmt + orderAmtInfo.tmtb2DcAmt > 0}">
+														<dt>다다익선 할인</dt>
+														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.tmtb1DcAmt + orderAmtInfo.tmtb2DcAmt, 1, 'COMMA')}원|"></dd>
+													</div>
+													<div th:if="${orderAmtInfo.cartCpnDcAmt + orderAmtInfo.goodsCpnDcAmt > 0}">
+														<dt>쿠폰 할인</dt>
+														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.cartCpnDcAmt + orderAmtInfo.goodsCpnDcAmt, 1, 'COMMA')}원|">- 30,000원</dd>
+													</div>
+													<div th:if="${orderAmtInfo.prePntDcAmt > 0}">
+														<dt>선 포인트 할인</dt>
+														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.prePntDcAmt, 1, 'COMMA')}원|"></dd>
+													</div>
+													<div th:if="${orderAmtInfo.pntDcAmt > 0}">
+														<dt>포인트 사용</dt>
+														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.pntDcAmt, 1, 'COMMA')}원|"></dd>
+													</div>
+													<div th:if="${orderAmtInfo.gfcdUseAmt > 0}">
+														<dt>상품권 사용</dt>
+														<dd th:text="|- ${#numbers.formatInteger(orderAmtInfo.gfcdUseAmt, 1, 'COMMA')}원|"></dd>
+													</div>
+													<!-- 
+													<div th:if="${}">
+														<dt>마일리지 사용</dt>
+														<dd></dd>
+													</div>
+													<div th:if="${}">
+														<dt>제휴 할인</dt>
+														<dd></dd>
+													</div>
+													-->
+												</dl>
+											</td>
+											<td>
+												<dl>
+													<div th:if="${orderAmtInfo.savePntAmt > 0}">
+														<dt>적립 예정 포인트</dt>
+														<dd th:text="|${#numbers.formatInteger(orderAmtInfo.savePntAmt, 1, 'COMMA')}P|"></dd>
+													</div>
+													<div>
+														<dt>결제방법</dt>
+														<dd>
+															<!-- TODO -->
+															<!-- Style24 간편결제 처리 (STYLE24 간편결제 : STYLE24 간편결제명 / 카드사명 / 할부개월(일시불)) -->
+															<!-- 실시간계좌이체, 무통장입금 현금영수증 신청여부 추가 -->
+															<!-- 네이버페이 처리 (네이버 페이 : 네이버 페이) -->
+															<!-- 카카오페이 처리 (카카오 페이 : 카카오 페이) -->
+															<!-- PAYCO 처리 (PAYCO : PAYCO) -->
+															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_10'}" th:text="|실시간계좌이체|"></span>
+															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_20'}" th:text="|무통장입금|"></span>
+															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_30'}" th:text="|${paymentInfo.cardNm}/${paymentInfo.cardMips}|"></span>
+															<span class="paymethod" th:if="${paymentInfo.payMeans == 'G014_60'}">휴대폰결제</span>
+														</dd>
+													</div>
+													<th:block th:if="${paymentInfo.pgGb == 'KCP'}">
+														<!-- 신용카드 결제시 -->
+														<div th:if="${paymentInfo.payMeans == 'G014_30'}">
+															<dt>&nbsp;</dt>
+															<dd>
+																<button type="button" class="btn btn_default" onclick="fnReceipt('card');"><span>신용카드 전표</span></button>
+															</dd>
+														</div>
+														<!-- //무통장 결제시 -->
+														<!-- 무통장 결제시 -->
+														<div th:if="${paymentInfo.payMeans == 'G014_10' or paymentInfo.payMeans == 'G014_20'}">
+															<dt>&nbsp;</dt>
+															<dd>
+																<button type="button" class="btn btn_default" onclick="fnReceipt('cash');"><span>현금영수증</span></button>
+															</dd>
+														</div>
+														<!-- //무통장 결제시 -->
+													</th:block>
+													<th:block th:unless="${paymentInfo.pgGb == 'KCP'}">
+														<dt></dt>
+														<dd>NPAY등의 대체결제수단으로 결제시 해당 결제 플롯폼에서 영수증 확인이 가능합니다.</dd>
+													</th:block>
+												</dl>
+											</td>
+										</tr>
+										</tbody>
+									</table>
+								</div>
+							</div>
+						</section>
 					</div>
-				</section>
+				</div>
 			</div>
+			<!-- // CONT-BODY -->
 		</div>
 	</div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>

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

@@ -19,240 +19,194 @@
 <body>
 
 <th:block layout:fragment="content">
-	<div class="cont my_cont">
-		<div class="sec_head">
-			<div class="my_information">
-				<div class="name_box">
-					<strong th:text="${customerInfo.custNm}"></strong>님 반갑습니다.
+	<div class="content myOrderList">
+		<div class="cont_body">
+			<!-- CONT-BODY -->
+			<div class="lnb">
+				<div class="lnb_tit">
+					<h2>마이페이지</h2>
 				</div>
-				<div class="property_box">
-					<div th:class="|level lv_${#strings.toLowerCase(customerInfo.custGradeNm)}|">
-						<span class="txt" th:text="${customerInfo.custGradeNm}"></span>
-						<div class="btn_level">
-							<a href="javascript:void(0);" onclick="fnGoToCustomerBenefit();">등급혜택 보기</a>
-							<button type="button" id="btn_lv_coupon" onclick="fnDownloadCoupon();"><span>등급쿠폰 받기</span></button>
-						</div>
-					</div>
-					<div class="property">
-						<ul>
-							<li>
-								<div>
-									<p class="txt">보유쿠폰 / 만료예정</p>
-									<p class="count"><span id="couponCnt" th:text="${couponCnt}"></span>장 / <span id="expiredSoonCouponCnt" th:text="|${expiredSoonCouponCnt}|"></span>장</p>
-								</div>
-							</li>
-							<li>
-								<div>
-									<p class="txt">STYLE24 포인트</p>
-									<p class="count"><span th:text="${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')}"></span>P</p>
-								</div>
-							</li>
-							<li>
-								<div>
-									<p class="txt">상품권</p>
-									<p class="count"><span th:text="${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')}"></span>원</p>
-								</div>
-							</li>
-						</ul>
-					</div>
+				<div class="lnb_list">
+					<ul id="mypageLnbList"></ul>
 				</div>
 			</div>
-			<div class="my_order_progress">
-				<div class="progress">
-					<ul>
-						<li>
-							<div>
-								<p class="txt">주문접수</p>
-								<p class="count"><span id="orderReceiptCount" th:text="${orderCount.orderReceiptCount}">0</span></p>
-							</div>
-						</li>
-						<li>
-							<div>
-								<p class="txt">결제완료</p>
-								<p class="count"><span id="paymentCompleteCount" th:text="${orderCount.paymentCompleteCount}">0</span></p>
-							</div>
-						</li>
-						<li>
-							<div>
-								<p class="txt">상품 준비 중</p>
-								<p class="count"><span id="goodsPrepareCount" th:text="${orderCount.goodsPrepareCount}">0</span></p>
-							</div>
-						</li>
-						<li>
-							<div>
-								<p class="txt">배송 준비 중</p>
-								<p class="count"><span id="shipPrepareCount" th:text="${orderCount.shipPrepareCount}">0</span></p>
-							</div>
-						</li>
-						<li>
-							<div>
-								<p class="txt">배송 중</p>
-								<p class="count"><span id="shippingCount" th:text="${orderCount.shippingCount}">0</span></p>
+			<div class="cont">
+				<div class="sec_head">
+					<div class="my_information">
+						<div class="name_box">
+							<strong th:text="${customerInfo.custNm}"></strong>님 반갑습니다.
+						</div>
+						<div class="property_box">
+							<div th:class="|level lv_${#strings.toLowerCase(customerInfo.custGradeNm)}|">
+								<span class="txt" th:text="${customerInfo.custGradeNm}"></span>
+								<div class="btn_level">
+									<a href="javascript:void(0);" onclick="fnGoToCustomerBenefit();">등급혜택 보기</a>
+									<button type="button" id="btn_lv_coupon" onclick="fnDownloadCoupon();"><span>등급쿠폰 받기</span></button>
+								</div>
 							</div>
-						</li>
-						<li>
-							<div>
-								<p class="txt">배송 완료</p>
-								<p class="count"><span id="shipCompleteCount" th:text="${orderCount.shipCompleteCount}">0</span></p>
+							<div class="property">
+								<ul>
+									<li>
+										<div>
+											<p class="txt">보유쿠폰 / 만료예정</p>
+											<p class="count"><span id="couponCnt" th:text="${couponCnt}"></span>장 / <span id="expiredSoonCouponCnt" th:text="|${expiredSoonCouponCnt}|"></span>장</p>
+										</div>
+									</li>
+									<li>
+										<div>
+											<p class="txt">STYLE24 포인트</p>
+											<p class="count"><span th:text="${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')}"></span>P</p>
+										</div>
+									</li>
+									<li>
+										<div>
+											<p class="txt">상품권</p>
+											<p class="count"><span th:text="${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')}"></span>원</p>
+										</div>
+									</li>
+								</ul>
 							</div>
-						</li>
-					</ul>
-				</div>
-				<div class="invalid">
-					<p class="txt">취소/교환/반품</p>
-					<p class="count"><span id="orderCrsCount" th:text="${orderCount.cancelCount + orderCount.returnCount + orderCount.exchangeCount}">0</span></p>
-				</div>
-			</div>
-		</div>
-		<div class="sec_body">
-			<h3 class="subH2 mb40">주문확인/배송조회</h3>
-			<!-- 주문조회 검색 -->
-			<div class="area_filter">
-				<div class="select_month_box">
-					<div class="form_field">
-						<div>
-							<input type="radio" name="rdi-month" id="rdi-month1" onclick="fnSetSearchPeriod(1);">
-							<label for="rdi-month1"><span>최근 1개월</span></label>
 						</div>
-						<div>
-							<input type="radio" name="rdi-month" id="rdi-month2" onclick="fnSetSearchPeriod(3);">
-							<label for="rdi-month2"><span>최근 3개월</span></label>
+					</div>
+					<div class="my_order_progress">
+						<div class="progress">
+							<ul>
+								<li>
+									<div>
+										<p class="txt">주문접수</p>
+										<p class="count"><span id="orderReceiptCount" th:text="${orderCount.orderReceiptCount}">0</span></p>
+									</div>
+								</li>
+								<li>
+									<div>
+										<p class="txt">결제완료</p>
+										<p class="count"><span id="paymentCompleteCount" th:text="${orderCount.paymentCompleteCount}">0</span></p>
+									</div>
+								</li>
+								<li>
+									<div>
+										<p class="txt">상품 준비 중</p>
+										<p class="count"><span id="goodsPrepareCount" th:text="${orderCount.goodsPrepareCount}">0</span></p>
+									</div>
+								</li>
+								<li>
+									<div>
+										<p class="txt">배송 준비 중</p>
+										<p class="count"><span id="shipPrepareCount" th:text="${orderCount.shipPrepareCount}">0</span></p>
+									</div>
+								</li>
+								<li>
+									<div>
+										<p class="txt">배송 중</p>
+										<p class="count"><span id="shippingCount" th:text="${orderCount.shippingCount}">0</span></p>
+									</div>
+								</li>
+								<li>
+									<div>
+										<p class="txt">배송 완료</p>
+										<p class="count"><span id="shipCompleteCount" th:text="${orderCount.shipCompleteCount}">0</span></p>
+									</div>
+								</li>
+							</ul>
 						</div>
-						<div>
-							<input type="radio" name="rdi-month" id="rdi-month3" onclick="fnSetSearchPeriod(6);">
-							<label for="rdi-month3"><span>최근 6개월</span></label>
+						<div class="invalid">
+							<p class="txt">취소/교환/반품</p>
+							<p class="count"><span id="orderCrsCount" th:text="${orderCount.cancelCount + orderCount.returnCount + orderCount.exchangeCount}">0</span></p>
 						</div>
 					</div>
 				</div>
-				<div class="select_period_box">
-					<form class="form_wrap">
-						<div class="form_field">
-							<label class="input_label sr-only">선택기간 시작</label>
-							<div class="input_wrap">
-								<input type="text" class="form_control period_datepicker hasDatepicker" value="" id="stDate" onchange="fnCheckPeriod(this);">
+				<div class="sec_body">
+					<h3 class="subH2 mb40">주문확인/배송조회</h3>
+					<!-- 주문조회 검색 -->
+					<div class="area_filter">
+						<div class="select_month_box">
+							<div class="form_field">
+								<div>
+									<input type="radio" name="rdi-month" id="rdi-month1" onclick="fnSetSearchPeriod(1);">
+									<label for="rdi-month1"><span>최근 1개월</span></label>
+								</div>
+								<div>
+									<input type="radio" name="rdi-month" id="rdi-month2" onclick="fnSetSearchPeriod(3);">
+									<label for="rdi-month2"><span>최근 3개월</span></label>
+								</div>
+								<div>
+									<input type="radio" name="rdi-month" id="rdi-month3" onclick="fnSetSearchPeriod(6);">
+									<label for="rdi-month3"><span>최근 6개월</span></label>
+								</div>
 							</div>
 						</div>
-						<div class="form_field">
-							<label class="input_label sr-only">선택기간 끝</label>
-							<div class="input_wrap">
-								<input type="text" class="form_control n_input period_datepicker hasDatepicker" value="" id="edDate" onchange="fnCheckPeriod(this);">
-							</div>
+						<div class="select_period_box">
+							<form class="form_wrap">
+								<div class="form_field">
+									<label class="input_label sr-only">선택기간 시작</label>
+									<div class="input_wrap">
+										<input type="text" class="form_control period_datepicker hasDatepicker" value="" id="stDate" onchange="fnCheckPeriod(this);">
+									</div>
+								</div>
+								<div class="form_field">
+									<label class="input_label sr-only">선택기간 끝</label>
+									<div class="input_wrap">
+										<input type="text" class="form_control n_input period_datepicker hasDatepicker" value="" id="edDate" onchange="fnCheckPeriod(this);">
+									</div>
+								</div>
+								<button type="button" class="btn btn_dark btn_sm" onclick="fnSearchOrderList();"><span>조회</span></button>
+							</form>
 						</div>
-						<button type="button" class="btn btn_dark btn_sm" onclick="fnSearchOrderList();"><span>조회</span></button>
-					</form>
-				</div>
-				<div class="select_status_box">
-					<form class="form_wrap">
-						<div class="form_field">
-							<div class="select_custom order_status">
-								<div class="combo">
-									<div class="select">전체상태</div>
-									<ul class="list">
-										<li class="selected" code="">전체상태</li>
-										<li th:if="${ordDtlStatList}" th:each="oneData, status : ${ordDtlStatList}" th:attr="code=${oneData.cd}" th:text="${oneData.cdNm}"></li>
-									</ul>
+						<div class="select_status_box">
+							<form class="form_wrap">
+								<div class="form_field">
+									<div class="select_custom order_status">
+										<div class="combo">
+											<div class="select">전체상태</div>
+											<ul class="list">
+												<li class="selected" code="">전체상태</li>
+												<li th:if="${ordDtlStatList}" th:each="oneData, status : ${ordDtlStatList}" th:attr="code=${oneData.cd}" th:text="${oneData.cdNm}"></li>
+											</ul>
+										</div>
+									</div>
 								</div>
-							</div>
+							</form>
 						</div>
-					</form>
-				</div>
-			</div>
-			<!-- //주문조회 검색 -->
-			<div class="area_list" id="orderList"></div>
-			<div class="sec_foot">
-				<div class="ui_row">
-					<ul class="pageNav" id="paging">
-					</ul>
-				</div>
-			</div>
-		</div>
-		<!--<div class="sec_body mypage_body">
-			&lt;!&ndash; 주문 경로 &ndash;&gt;
-			<div class="order_info clear">
-				<ul class="clear">
-					<li>
-						<p class="or_p">주문접수</p>
-						<p class="count"><span id="orderReceiptCount" th:text="${orderCount.orderReceiptCount}">0</span></p>
-					</li>
-					<li>
-						<p class="or_p">결제완료</p>
-						<p class="count"><span id="paymentCompleteCount" th:text="${orderCount.paymentCompleteCount}">0</span></p>
-					</li>
-					<li>
-						<p class="or_p">상품 준비 중</p>
-						<p class="count"><span id="goodsPrepareCount" th:text="${orderCount.goodsPrepareCount}">0</span></p>
-					</li>
-					<li>
-						<p class="or_p">배송 준비 중</p>
-						<p class="count"><span id="shipPrepareCount" th:text="${orderCount.shipPrepareCount}">0</span></p>
-					</li>
-					<li>
-						<p class="or_p">배송 중</p>
-						<p class="count"><span id="shippingCount" th:text="${orderCount.shippingCount}">0</span></p>
-					</li>
-					<li>
-						<p class="or_p">배송 완료</p>
-						<p class="count"><span id="shipCompleteCount" th:text="${orderCount.shipCompleteCount}">0</span></p>
-					</li>
-				</ul>
-				<div class="order_right">
-					<p class="or_p">취소/교환/반품</p>
-					<p class="count"><span id="orderCrsCount" th:text="${orderCount.cancelCount + orderCount.returnCount + orderCount.exchangeCount}">0</span></p>
-				</div>
-			</div>
-			&lt;!&ndash; //주문 경로 &ndash;&gt;
-			<h2 class="subH2 my_subtit">주문확인/배송조회</h2>
-			&lt;!&ndash; 주문조회 검색 &ndash;&gt;
-			<div class="order_sch_filter clear">
-				<div class="sch_radio_tab">
-					<input type="checkbox" name="month" value="최근 1개월" id="chk01" onclick="fnSetSearchPeriod(1);">
-					<label for="chk01">최근 1개월</label>
-					<input type="checkbox" name="month" value="최근 3개월" id="chk02" onclick="fnSetSearchPeriod(3);">
-					<label for="chk02">최근 3개월</label>
-					<input type="checkbox" name="month" value="최근 6개월" id="chk03" onclick="fnSetSearchPeriod(6);">
-					<label for="chk03">최근 6개월</label>
-				</div>
-				<div class="sch_right">
-					<div class="sch_datepicker sb">
-						<input type="text" class="n_input my_datepicker" name="stDate" value="" id="stDate" onchange="fnCheckPeriod(this);">
 					</div>
-					<div class="sch_datepicker">
-						<input type="text" class="n_input my_datepicker" name="edDate" value="" id="edDate" onchange="fnCheckPeriod(this);">
+					<!-- //주문조회 검색 -->
+					<div class="area_list" id="orderList"></div>
+					<div class="sec_foot">
+						<div class="ui_row">
+							<ul class="pageNav" id="paging">
+							</ul>
+						</div>
 					</div>
-					<button type="button" class="btn btn_dark" onclick="fnSearchOrderList();">조회</button>
 				</div>
+				<form id="searchForm" name="searchForm" th:action="@{'/mypage/order/list'}" th:method="post">
+					<input type="hidden" name="pageNo" value=1 />
+					<input type="hidden" name="pageSize" value=5 />
+					<input type="hidden" name="pageUnit" value=10 />
+					<input type="hidden" name="ordDtlStat" value="" />
+					<input type="hidden" name="stDate" value="" />
+					<input type="hidden" name="edDate" value="" />
+					<input type="hidden" name="custNo" th:value ="${customerInfo.custNo}"/>
+				</form>
+				<form id="exchangeForm" name="exchangeForm" action="#" th:action="@{'/mypage/exchange/form'}" th:method="post">
+					<input type="hidden" name="ordNo"/>
+					<input type="hidden" name="ordDtlNo"/>
+					<input type="hidden" name="supplyCompCd"/>
+				</form>
+				<form id="returnForm" name="returnForm" action="#" th:action="@{'/mypage/return/form'}" th:method="post">
+					<input type="hidden" name="ordNo"/>
+					<input type="hidden" name="ordDtlNo"/>
+					<input type="hidden" name="supplyCompCd"/>
+				</form>
+				<form id="cancelForm" name="cancelForm" th:action="@{'/mypage/cancel/form'}" th:method="post">
+					<input type="hidden" name="ordNo"/>
+					<input type="hidden" name="ordDtlNo"/>
+				</form>
+				<form id="reviewForm" name="reviewForm" th:action="@{'/mypage/review/form'}" th:method="post">
+					<input type="hidden" name="ordNo"/>
+					<input type="hidden" name="ordDtlNo"/>
+				</form>
 			</div>
-			&lt;!&ndash; //주문조회 검색 &ndash;&gt;
-			<div class="order_list" id="orderList">
-			</div>
-		</div>-->
-		<form id="searchForm" name="searchForm" th:action="@{'/mypage/order/list'}" th:method="post">
-			<input type="hidden" name="pageNo" value=1 />
-			<input type="hidden" name="pageSize" value=5 />
-			<input type="hidden" name="pageUnit" value=10 />
-			<input type="hidden" name="ordDtlStat" value="" />
-			<input type="hidden" name="stDate" value="" />
-			<input type="hidden" name="edDate" value="" />
-			<input type="hidden" name="custNo" th:value ="${customerInfo.custNo}"/>
-		</form>
-		<form id="exchangeForm" name="exchangeForm" action="#" th:action="@{'/mypage/exchange/form'}" th:method="post">
-			<input type="hidden" name="ordNo"/>
-			<input type="hidden" name="ordDtlNo"/>
-			<input type="hidden" name="supplyCompCd"/>
-		</form>
-		<form id="returnForm" name="returnForm" action="#" th:action="@{'/mypage/return/form'}" th:method="post">
-			<input type="hidden" name="ordNo"/>
-			<input type="hidden" name="ordDtlNo"/>
-			<input type="hidden" name="supplyCompCd"/>
-		</form>
-		<form id="cancelForm" name="cancelForm" th:action="@{'/mypage/cancel/form'}" th:method="post">
-			<input type="hidden" name="ordNo"/>
-			<input type="hidden" name="ordDtlNo"/>
-		</form>
-		<form id="reviewForm" name="reviewForm" th:action="@{'/mypage/review/form'}" th:method="post">
-			<input type="hidden" name="ordNo"/>
-			<input type="hidden" name="ordDtlNo"/>
-		</form>
+			<!-- // CONT-BODY -->
+		</div>
 	</div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
@@ -456,11 +410,11 @@
 					tag += '					</div>\n';
 					tag += '					<div class="gd_calc">\n';
 					tag += '						<p>\n';
-					tag += '							<span class="count"><em>' + ordDtl.ordQty + '</em>개</span>\n';
+					tag += '							<span class="count"><em>' + (ordDtl.ordQty - ordDtl.cnclRtnQty) + '</em>개</span>\n';
 					tag += '						</p>\n';
 					tag += '						<p>\n';
-					tag += '							<span class="price_org"><em>' + (ordDtl.listPrice * ordDtl.ordQty).addComma() + '</em>원</span>\n';
-					tag += '							<span class="price_sale"><em>' + ordDtl.ordAmt.addComma() + '</em>원</span>\n';
+					tag += '							<span class="price_org"><em>' + (ordDtl.listPrice * (ordDtl.ordQty - ordDtl.cnclRtnQty)).addComma() + '</em>원</span>\n';
+					tag += '							<span class="price_sale"><em>' + (ordDtl.ordAmt - ordDtl.cnclRtnAmt).addComma() + '</em>원</span>\n';
 					tag += '						</p>\n';
 					tag += '					</div>\n';
 					tag += '				</div>\n';
@@ -483,12 +437,12 @@
 					if (ordDtl.giftPackYn == 'Y') {
 						// SMS 재발송 버튼
 						if (gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.giftLimitDay >= 0) {
-							tag += '					<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" onClick="fnReSendSms(this);"><span>SMS 재발송</span></button></p>\n';
+							tag += '					<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" onclick="fnReSendSms(this);"><span>SMS 재발송</span></button></p>\n';
 						}
 
 						// 리뷰 쓰기 버튼
 						if (!gagajf.isNull(ordDtl.recipBaseAddr) && ordDtl.ordDtlStat != 'G013_98' && ordDtl.ordDtlStat != 'G013_99' && ordDtl.reviewableYn == 'Y' && ordDtl.reviewSq == null) {
-							tag += '					<p><button type="button" class="btn btn_primary_line btn_sm" ordNo="' + ordDtl.ordNo + '" onClick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></p>\n';
+							tag += '					<p><button type="button" class="btn btn_primary_line btn_sm" ordNo="' + ordDtl.ordNo + '" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></p>\n';
 						}
 					} else {
 						// 주문취소 버튼(입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중)
@@ -565,19 +519,35 @@
 					} else {
 						// 주문 접수
 						if (ordDtl.ordDtlStat == 'G013_10') {
-							tag += '			<div class="order_text"><p>주문이 완료되어 결제를 기다리고 있습니다.</p></div>\n';
+							tag += '			<div class="order_text">';
+							tag += '				<p>주문이 완료되어 결제를 기다리고 있습니다.</p>';
+							// 예약상품
+							if (!gagajf.isNull(ordDtl.delvResDt)) {
+								tag += '				<p>예약판매 상품으로' + ordDtl.delvResDt + ' 출고 예정입니다.</p>';
+							}
+							tag += '			</div>\n';
 						}
 						
 						// 상품준비중
-						if (ordDtl.ordDtlStat == 'G013_30' || ordDtl.ordDtlStat == 'G013_40') {
-							// 예약 상품 준비중
+						if (ordDtl.ordDtlStat == 'G013_30') {
+							tag += '			<div class="order_text">';
+							tag += '				<p>배송할 상품을 준비 중입니다.</p>';
+							// 예약상품
 							if (!gagajf.isNull(ordDtl.delvResDt)) {
-								tag += '			<div class="order_text"><p>예약판매 상품으로' + ordDtl.delvResDt + ' 출고 예정입니다.</p></div>\n';
+								tag += '				<p>예약판매 상품으로' + ordDtl.delvResDt + ' 출고 예정입니다.</p>';
 							}
-							// 상품 준비중
-							else {
-								tag += '			<div class="order_text"><p>상품 준비가 완료되어 곧 배송될 예정입니다.</p></div>\n';
+							tag += '			</div>\n';
+						}
+						
+						// 배송준비중
+						if (ordDtl.ordDtlStat == 'G013_40') {
+							tag += '			<div class="order_text">';
+							tag += '				<p>상품 준비가 완료되어 곧 배송될 예정입니다.</p>';
+							// 예약상품
+							if (!gagajf.isNull(ordDtl.delvResDt)) {
+								tag += '				<p>예약판매 상품으로' + ordDtl.delvResDt + ' 출고 예정입니다.</p>';
 							}
+							tag += '			</div>\n';
 						}
 						
 						// 배송중, 배송완료
@@ -619,9 +589,9 @@
 				tag += '	</div>';
 				//사은품 처리
 				if (order.freeGiftList != null && order.freeGiftList.length > 0) {
-					tag += '	<div className="goods_foot">';
-					tag += '		<div className="order_gift">';
-					tag += '			<span className="title">사은품</span>';
+					tag += '	<div class="goods_foot">';
+					tag += '		<div class="order_gift">';
+					tag += '			<span class="title">사은품</span>';
 					tag += '			<ul>';
 					$.each(order.freeGiftList, function(index, freeGift) {
 						tag += '				<li>' + freeGift.goodsNm + ' ' + '<span>(-' + freeGift.usePoint.addComma() + 'P)</span></li>';
@@ -637,14 +607,9 @@
 			tag += '<div class="nodata">';
 			tag += '	<div class="txt_box">';
 			tag += '		<p>';
-			tag += '			현재 노출 할 수 있는 데이터가 없습니다.<br>';
+			tag += '			주문내역이 없습니다.<br>';
 			tag += '		</p>';
 			tag += '	</div>';
-			//tag += '	<!-- 버튼 필요시 -->';
-			//tag += '	<div class="btn_box">';
-			//tag += '		<button class="btn btn_default"><span>행동하기</span></button>';
-			//tag += '	</div>';
-			//tag += '	<!-- //버튼 필요시 -->';
 			tag += '</div>';
 		}
 

+ 291 - 277
src/main/webapp/WEB-INF/views/web/mypage/MypageReturnFormWeb.html

@@ -19,299 +19,313 @@
 <body>
 
 <th:block layout:fragment="content">
-	<div class="my_cont">
-		<div class="sec_head">
-			<h3>반품 신청</h3>
-			<div class="od_detail">
-				(주문번호 : <span class="num" th:text="${ordNo}"></span>)
+	<div class="content myOrderList">
+		<div class="cont_body">
+			<!-- CONT-BODY -->
+			<div class="lnb">
+				<div class="lnb_tit">
+					<h2>마이페이지</h2>
+				</div>
+				<div class="lnb_list">
+					<ul id="mypageLnbList"></ul>
+				</div>
 			</div>
-		</div>
-		<div class="sec_body mypage_body">
-			<form class="form_wrap" role="form">
-				<div class="order_list">
-					<section class="order_row">
-						<div class="part_deliver">
-							<div class="tbl_tit">
-								<!-- 주문일/선물일 설정 -->
-								<span class="start_t" th:unless="${returnList.oneData.giftPackYn == 'Y'}">주문일</span>
-								<span class="gift_t" th:if="${returnList.oneData.giftPackYn == 'Y'}">선물일</span>
-								<!-- //주문일/선물일 설정 -->
-
-								<span class="order_date" th:text="${returnList.oneData.ordDt}"></span>
-
-								<!-- 배송구분 설정 -->
-								<span class="order_label02" th:if="${returnList.shotDelv}">총알배송</span>
-								<span class="order_label01" th:if="${returnList.selfMall}">STYLE24 일반배송</span>
-								<span class="order_label01" th:if="${returnList.supplyMall}">업체직배송</span>
-								<!-- //배송구분 설정 -->
-								<a href="javascript:void(0)" class="detail_btn" th:attr="ordNo=${returnList.oneData.ordNo}" onclick="fnGoToOrderDetail(this)">주문상세보기</a>
-							</div>
-							<div class="tbl type2">
-								<table id="returnList">
-									<colgroup>
-										<col width="1020">
-										<col width="180">
-									</colgroup>
-									<tbody>
-									<th:block th:if="${returnList.returnList}" th:each="return, status : ${returnList.returnList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+			<div class="my_cont">
+				<div class="sec_head">
+					<h3>반품 신청</h3>
+					<div class="od_detail">
+						(주문번호 : <span class="num" th:text="${ordNo}"></span>)
+					</div>
+				</div>
+				<div class="sec_body mypage_body">
+					<form class="form_wrap" role="form">
+						<div class="order_list">
+							<section class="order_row">
+								<div class="part_deliver">
+									<div class="tbl_tit">
+										<!-- 주문일/선물일 설정 -->
+										<span class="start_t" th:unless="${returnList.oneData.giftPackYn == 'Y'}">주문일</span>
+										<span class="gift_t" th:if="${returnList.oneData.giftPackYn == 'Y'}">선물일</span>
+										<!-- //주문일/선물일 설정 -->
+		
+										<span class="order_date" th:text="${returnList.oneData.ordDt}"></span>
+		
+										<!-- 배송구분 설정 -->
+										<span class="order_label02" th:if="${returnList.shotDelv}">총알배송</span>
+										<span class="order_label01" th:if="${returnList.selfMall}">STYLE24 일반배송</span>
+										<span class="order_label01" th:if="${returnList.supplyMall}">업체직배송</span>
+										<!-- //배송구분 설정 -->
+										<a href="javascript:void(0)" class="detail_btn" th:attr="ordNo=${returnList.oneData.ordNo}" onclick="fnGoToOrderDetail(this)">주문상세보기</a>
+									</div>
+									<div class="tbl type2">
+										<table id="returnList">
+											<colgroup>
+												<col width="1020">
+												<col width="180">
+											</colgroup>
+											<tbody>
+											<th:block th:if="${returnList.returnList}" th:each="return, status : ${returnList.returnList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+												<tr>
+													<td>
+														<div class="info_item">
+															<div class="thumb_box">
+																<a href="">
+																	<img th:src="${imageUrl + '/' + return.sysImgNm}" width="100%" alt="">
+																</a>
+															</div>
+															<div class="info_box">
+																<p class="od_name">
+																	<a href="">
+																		<span class="brand" th:text="${return.brandNm}"></span>
+																		<span class="name" th:text="${return.goodsNm}"></span>
+																	</a>
+																</p>
+																<p class="od_opt">
+																	<span class="option"><em th:text="${return.optCd1}"></em><em th:text="${return.optCd2}"></em></span>
+																	<span class="count">수량 <em th:text="${return.ordQty}"></em>개</span>
+																</p>
+															</div>
+															<div class="info_calc">
+																<p class="price">
+																	<span class="selling_price" th:text="|${#numbers.formatInteger(return.ordAmt, 1, 'COMMA')}원|"></span>
+																</p>
+																<p class="point"><span th:text="${#numbers.formatInteger(return.savePntAmt, 1, 'COMMA')}"></span>p</p>
+															</div>
+														</div>
+													</td>
+													<td class="cnt_sel">
+														<span class="cnt_t">수량</span>
+														<div class="form_field">
+															<div class="select_custom type1">
+																<div class="combo">
+																	<input type="hidden" name="chgQty" value="0" th:attr="ordDtlNo=${return.ordDtlNo}, ordCanChgQty=${return.ordCanChgQty}"/>
+																	<div class="select">선택</div>
+																	<ul class="list" style="width:100px; margin:0 auto">
+																		<li class="selected" value="0">선택</li>
+																		<li th:if="${return.ordCanChgQty > 0}" th:each="num : ${#numbers.sequence(1,return.ordCanChgQty)}" th:value="${num}" th:text="${num}" onclick="fnChangeQty(this);"></li>
+																	</ul>
+																</div>
+															</div>
+														</div>
+		<!--												<select class="select_dress" name="chgQty" onchange="fnChangeQty();">-->
+		<!--													<option value="">선택</option>-->
+		<!--													<option th:if="${return.ordQty > 0}" th:each="num : ${#numbers.sequence(1,return.ordQty)}" th:value="${num}" th:text="${num}"></option>-->
+		<!--												</select>-->
+													</td>
+												</tr>
+											</th:block>
+											</tbody>
+										</table>
+									</div>
+									<div class="order_confirm">
+										<p class="cf_txt cf_desc c_primary">반품하실 상품의 수량을 선택하신 후 반품 신청을 하실 수 있습니다.</p>
+									</div>
+								</div>
+							</section>
+							<section class="order_row">
+								<div class="tbl_tit">
+									<h3 class="subH3">반품 사유</h3>
+								</div>
+								<div class="tbl type1">
+									<table>
+										<colgroup>
+											<col width="*">
+										</colgroup>
+										<tbody>
 										<tr>
 											<td>
-												<div class="info_item">
-													<div class="thumb_box">
-														<a href="">
-															<img th:src="${imageUrl + '/' + return.sysImgNm}" width="100%" alt="">
-														</a>
-													</div>
-													<div class="info_box">
-														<p class="od_name">
-															<a href="">
-																<span class="brand" th:text="${return.brandNm}"></span>
-																<span class="name" th:text="${return.goodsNm}"></span>
-															</a>
-														</p>
-														<p class="od_opt">
-															<span class="option"><em th:text="${return.optCd1}"></em><em th:text="${return.optCd2}"></em></span>
-															<span class="count">수량 <em th:text="${return.ordQty}"></em>개</span>
-														</p>
-													</div>
-													<div class="info_calc">
-														<p class="price">
-															<span class="selling_price" th:text="|${#numbers.formatInteger(return.ordAmt, 1, 'COMMA')}원|"></span>
-														</p>
-														<p class="point"><span th:text="${#numbers.formatInteger(return.savePntAmt, 1, 'COMMA')}"></span>p</p>
-													</div>
-												</div>
-											</td>
-											<td class="cnt_sel">
-												<span class="cnt_t">수량</span>
 												<div class="form_field">
 													<div class="select_custom type1">
 														<div class="combo">
-															<input type="hidden" name="chgQty" value="0" th:attr="ordDtlNo=${return.ordDtlNo}, ordCanChgQty=${return.ordCanChgQty}"/>
-															<div class="select">선택</div>
-															<ul class="list" style="width:100px; margin:0 auto">
-																<li class="selected" value="0">선택</li>
-																<li th:if="${return.ordCanChgQty > 0}" th:each="num : ${#numbers.sequence(1,return.ordCanChgQty)}" th:value="${num}" th:text="${num}" onclick="fnChangeQty(this);"></li>
+															<input type="hidden" name="chgReason"/>
+															<div class="select">반품 사유를 선택하세요</div>
+															<ul class="list" style="width:400px">
+																<li class="selected" value="">반품 사유를 선택하세요</li>
+																<li th:if="${returnReason}" th:each="oneData, status : ${returnReason}" th:value="${oneData.cd}" th:text="${oneData.cdNm}" onclick="fnChangeReason(this);"></li>
 															</ul>
 														</div>
 													</div>
 												</div>
-<!--												<select class="select_dress" name="chgQty" onchange="fnChangeQty();">-->
-<!--													<option value="">선택</option>-->
-<!--													<option th:if="${return.ordQty > 0}" th:each="num : ${#numbers.sequence(1,return.ordQty)}" th:value="${num}" th:text="${num}"></option>-->
-<!--												</select>-->
 											</td>
 										</tr>
-									</th:block>
-									</tbody>
-								</table>
-							</div>
-							<div class="order_confirm">
-								<p class="cf_txt cf_desc c_primary">반품하실 상품의 수량을 선택하신 후 반품 신청을 하실 수 있습니다.</p>
-							</div>
-						</div>
-					</section>
-					<section class="order_row">
-						<div class="tbl_tit">
-							<h3 class="subH3">반품 사유</h3>
-						</div>
-						<div class="tbl type1">
-							<table>
-								<colgroup>
-									<col width="*">
-								</colgroup>
-								<tbody>
-								<tr>
-									<td>
-										<div class="form_field">
-											<div class="select_custom type1">
-												<div class="combo">
-													<input type="hidden" name="chgReason"/>
-													<div class="select">반품 사유를 선택하세요</div>
-													<ul class="list" style="width:400px">
-														<li class="selected" value="">반품 사유를 선택하세요</li>
-														<li th:if="${returnReason}" th:each="oneData, status : ${returnReason}" th:value="${oneData.cd}" th:text="${oneData.cdNm}" onclick="fnChangeReason(this);"></li>
-													</ul>
+										<tr>
+											<td>
+												<textarea class="doc_exchange" name="chgMemo" id="chgMemo" placeholder="자세한 사유를 입력해주세요." onkeyup="cfnGetTextLength(this, 200, $('#return_cnt'));"></textarea>
+												<p class="txt_cnt"><span id="return_cnt" class="c_primary">0</span>/200</p>
+											</td>
+										</tr>
+										</tbody>
+									</table>
+								</div>
+							</section>
+							<section class="order_row" id="wdGb">
+								<div class="order_tit">
+									<h3 class="subH3">반품 방식 선택</h3>
+								</div>
+								<div class="tbl type1">
+									<table>
+										<colgroup>
+											<col width="*">
+										</colgroup>
+										<tbody>
+										<tr>
+											<td>
+												<div class="form_field radio_field">
+													<div class="">
+														<input type="radio" name="wdGb" id="withdraw" value="W" checked>
+														<label for="withdraw"><span>방문회수 <b class="c_primary">택배사에서 방문하여 회수</b></span></label>
+													</div>
+													<div class="">
+														<input type="radio" name="wdGb" id="direct" value="D">
+														<label for="direct"><span>직접반송 <b class="c_primary">고객이 직접 반송처리</b></span></label>
+													</div>
 												</div>
-											</div>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<td>
-										<textarea class="doc_exchange" name="chgMemo" id="chgMemo" placeholder="자세한 사유를 입력해주세요." onkeyup="cfnGetTextLength(this, 200, $('#return_cnt'));"></textarea>
-										<p class="txt_cnt"><span id="return_cnt" class="c_primary">0</span>/200</p>
-									</td>
-								</tr>
-								</tbody>
-							</table>
-						</div>
-					</section>
-					<section class="order_row" id="wdGb">
-						<div class="order_tit">
-							<h3 class="subH3">반품 방식 선택</h3>
-						</div>
-						<div class="tbl type1">
-							<table>
-								<colgroup>
-									<col width="*">
-								</colgroup>
-								<tbody>
-								<tr>
-									<td>
-										<div class="form_field radio_field">
-											<div class="">
-												<input type="radio" name="wdGb" id="withdraw" value="W" checked>
-												<label for="withdraw"><span>방문회수 <b class="c_primary">택배사에서 방문하여 회수</b></span></label>
-											</div>
-											<div class="">
-												<input type="radio" name="wdGb" id="direct" value="D">
-												<label for="direct"><span>직접반송 <b class="c_primary">고객이 직접 반송처리</b></span></label>
-											</div>
-										</div>
-									</td>
-								</tr>
-								</tbody>
-							</table>
-						</div>
-					</section>
-					<section class="order_row" id="chgerLocation">
-						<div class="order_tit">
-							<h3 class="subH3">상품 회수지</h3>
-							<span class="del_t">택배사에서 반품 상품을 직접 회수할 장소 선택</span>
-							<button type="button" class="btn_popup" onclick="fnChangeDeliveryAddr('chger');"><span>회수지 선택</span></button>
-						</div>
-						<div class="tbl type1">
-							<table>
-								<colgroup>
-									<col width="200">
-									<col width="*">
-								</colgroup>
-								<tbody>
-								<tr>
-									<th>성명</th>
-									<td id="chgerNm" th:text="${deliveryAddrInfo.recipNm}"></td>
-									<input type="hidden" name="chgerNm" th:value="${deliveryAddrInfo.recipNm}">
-								</tr>
-								<tr>
-									<th>연락처</th>
-									<td id="chgerPhnno" th:text="${deliveryAddrInfo.recipPhnno}"></td>
-									<input type="hidden" name="chgerPhnno" th:value="${deliveryAddrInfo.recipPhnno}">
-								</tr>
-								<tr>
-									<th>주소</th>
-									<td id="chgerAddr" th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|"></td>
-									<input type="hidden" name="chgerBaseAddr" th:value="${deliveryAddrInfo.recipBaseAddr}">
-									<input type="hidden" name="chgerDtlAddr" th:value="${deliveryAddrInfo.recipDtlAddr}">
-								</tr>
-								</tbody>
-							</table>
-						</div>
-					</section>
-					<section class="order_row" id="returnLocation" style="display:none">
-						<div class="order_tit">
-							<h3 class="subH3">반품하실 배송지</h3>
-						</div>
-						<div class="tbl type1">
-							<table>
-								<colgroup>
-									<col width="200">
-									<col width="*">
-								</colgroup>
-								<tbody>
-								<tr>
-									<th>성명</th>
-									<td th:text="${deliveryAddrInfo.rtnLocNm}"></td>
-									<input type="hidden" name="rtnLocNm" th:value="${deliveryAddrInfo.rtnLocNm}">
-								</tr>
-								<tr>
-									<th>연락처</th>
-									<td th:text="${deliveryAddrInfo.rtnLocTelno}"></td>
-									<input type="hidden" name="rtnLocTelno" th:value="${deliveryAddrInfo.rtnLocTelno}">
-								</tr>
-								<tr>
-									<th>주소</th>
-									<td th:text="|${deliveryAddrInfo.rtnLocBaseAddr} ${deliveryAddrInfo.rtnLocDtlAddr}|"></td>
-									<input type="hidden" name="rtnLocBaseAddr" th:value="${deliveryAddrInfo.rtnLocBaseAddr}">
-									<input type="hidden" name="rtnLocDtlAddr" th:value="${deliveryAddrInfo.rtnLocDtlAddr}">
-								</tr>
-								</tbody>
-							</table>
-						</div>
-					</section>
-					<section class="order_row">
-						<div class="order_tit">
-							<h3 class="subH3">환불 정보</h3>
-							<button type="button" class="btn_popup"><span>취소 전표 보기</span></button>
-						</div>
-						<div class="tbl type1 re_info_tbl">
-							<div class="r_left">
-								<dl>
-									<dt>환불(예정) 금액</dt>
-									<dd>
-										<span class="big_t"><strong id="returnAmt">0</strong>원</span>
-									</dd>
-								</dl>
-								<dl>
-									<dt>상품취소 금액</dt>
-									<dd>
-										<span id="goodsCancelAmt">0</span>원
-									</dd>
-								</dl>
-								<dl>
-									<dt>배송비</dt>
-									<dd>
-										<span id="deliveryFee">0</span>원
-									</dd>
-								</dl>
-								<dl>
-									<dt>할인금액 차감</dt>
-									<dd>
-										<span id="deductDcAmt">0</span>원
-									</dd>
-								</dl>
-							</div>
-							<div class="r_right">
-								<dl>
-									<dt>환불수단</dt>
-									<dd>
-										<span th:text="${paymentInfo.payMeansNm}"></span>
-									</dd>
-								</dl>
-								<dl>
-									<dt>결제금액 환불</dt>
-									<dd>
-										<span id="refundPayAmt">0</span>원
-									</dd>
-								</dl>
-								<dl>
-									<dt>포인트 환불</dt>
-									<dd>
-										<span id="refundPoint">0</span>P
-									</dd>
-								</dl>
-								<dl>
-									<dt>상품권 환불</dt>
-									<dd>
-										<span id="refundGiftCard">0</span>원
-									</dd>
-								</dl>
+											</td>
+										</tr>
+										</tbody>
+									</table>
+								</div>
+							</section>
+							<section class="order_row" id="chgerLocation">
+								<div class="order_tit">
+									<h3 class="subH3">상품 회수지</h3>
+									<span class="del_t">택배사에서 반품 상품을 직접 회수할 장소 선택</span>
+									<button type="button" class="btn_popup" onclick="fnChangeDeliveryAddr('chger');"><span>회수지 선택</span></button>
+								</div>
+								<div class="tbl type1">
+									<table>
+										<colgroup>
+											<col width="200">
+											<col width="*">
+										</colgroup>
+										<tbody>
+										<tr>
+											<th>성명</th>
+											<td id="chgerNm" th:text="${deliveryAddrInfo.recipNm}"></td>
+											<input type="hidden" name="chgerNm" th:value="${deliveryAddrInfo.recipNm}">
+										</tr>
+										<tr>
+											<th>연락처</th>
+											<td id="chgerPhnno" th:text="${deliveryAddrInfo.recipPhnno}"></td>
+											<input type="hidden" name="chgerPhnno" th:value="${deliveryAddrInfo.recipPhnno}">
+										</tr>
+										<tr>
+											<th>주소</th>
+											<td id="chgerAddr" th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|"></td>
+											<input type="hidden" name="chgerBaseAddr" th:value="${deliveryAddrInfo.recipBaseAddr}">
+											<input type="hidden" name="chgerDtlAddr" th:value="${deliveryAddrInfo.recipDtlAddr}">
+										</tr>
+										</tbody>
+									</table>
+								</div>
+							</section>
+							<section class="order_row" id="returnLocation" style="display:none">
+								<div class="order_tit">
+									<h3 class="subH3">반품하실 배송지</h3>
+								</div>
+								<div class="tbl type1">
+									<table>
+										<colgroup>
+											<col width="200">
+											<col width="*">
+										</colgroup>
+										<tbody>
+										<tr>
+											<th>성명</th>
+											<td th:text="${deliveryAddrInfo.rtnLocNm}"></td>
+											<input type="hidden" name="rtnLocNm" th:value="${deliveryAddrInfo.rtnLocNm}">
+										</tr>
+										<tr>
+											<th>연락처</th>
+											<td th:text="${deliveryAddrInfo.rtnLocTelno}"></td>
+											<input type="hidden" name="rtnLocTelno" th:value="${deliveryAddrInfo.rtnLocTelno}">
+										</tr>
+										<tr>
+											<th>주소</th>
+											<td th:text="|${deliveryAddrInfo.rtnLocBaseAddr} ${deliveryAddrInfo.rtnLocDtlAddr}|"></td>
+											<input type="hidden" name="rtnLocBaseAddr" th:value="${deliveryAddrInfo.rtnLocBaseAddr}">
+											<input type="hidden" name="rtnLocDtlAddr" th:value="${deliveryAddrInfo.rtnLocDtlAddr}">
+										</tr>
+										</tbody>
+									</table>
+								</div>
+							</section>
+							<section class="order_row">
+								<div class="order_tit">
+									<h3 class="subH3">환불 정보</h3>
+									<button type="button" class="btn_popup"><span>취소 전표 보기</span></button>
+								</div>
+								<div class="tbl type1 re_info_tbl">
+									<div class="r_left">
+										<dl>
+											<dt>환불(예정) 금액</dt>
+											<dd>
+												<span class="big_t"><strong id="returnAmt">0</strong>원</span>
+											</dd>
+										</dl>
+										<dl>
+											<dt>상품취소 금액</dt>
+											<dd>
+												<span id="goodsCancelAmt">0</span>원
+											</dd>
+										</dl>
+										<dl>
+											<dt>배송비</dt>
+											<dd>
+												<span id="deliveryFee">0</span>원
+											</dd>
+										</dl>
+										<dl>
+											<dt>할인금액 차감</dt>
+											<dd>
+												<span id="deductDcAmt">0</span>원
+											</dd>
+										</dl>
+									</div>
+									<div class="r_right">
+										<dl>
+											<dt>환불수단</dt>
+											<dd>
+												<span th:text="${paymentInfo.payMeansNm}"></span>
+											</dd>
+										</dl>
+										<dl>
+											<dt>결제금액 환불</dt>
+											<dd>
+												<span id="refundPayAmt">0</span>원
+											</dd>
+										</dl>
+										<dl>
+											<dt>포인트 환불</dt>
+											<dd>
+												<span id="refundPoint">0</span>P
+											</dd>
+										</dl>
+										<dl>
+											<dt>상품권 환불</dt>
+											<dd>
+												<span id="refundGiftCard">0</span>원
+											</dd>
+										</dl>
+									</div>
+								</div>
+								<p class="alert_t">※ 카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이 소요될 수 있습니다.</p>
+							</section>
+							<section class="order_row" id="addDeliveryFee" style="display:none">
+								<div class="ship_fee">
+									<p><span class="c_primary" id="addPayCost">2,500원</span> 배송비 추가 결제가 필요합니다.</p>
+									<input type="hidden" name="addPayCost"/>
+								</div>
+							</section>
+							<div class="btn_wrap">
+								<button type="button" class="btn btn_default cancle_btn" onclick="cfnGoToPage(_PAGE_MYPAGE_CRS_LIST)"><span>반품 취소</span></button>
+								<button tyep="submit" class="btn btn_primary submit_btn" onclick="fnReturn()"><span id="returnButton">반품 신청</span></button>
 							</div>
 						</div>
-						<p class="alert_t">※ 카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이 소요될 수 있습니다.</p>
-					</section>
-					<section class="order_row" id="addDeliveryFee" style="display:none">
-						<div class="ship_fee">
-							<p><span class="c_primary" id="addPayCost">2,500원</span> 배송비 추가 결제가 필요합니다.</p>
-							<input type="hidden" name="addPayCost"/>
-						</div>
-					</section>
-					<div class="btn_wrap">
-						<button type="button" class="btn btn_default cancle_btn" onclick="cfnGoToPage(_PAGE_MYPAGE_CRS_LIST)"><span>반품 취소</span></button>
-						<button tyep="submit" class="btn btn_primary submit_btn" onclick="fnReturn()"><span id="returnButton">반품 신청</span></button>
-					</div>
+					</form>
 				</div>
-			</form>
+			</div>
+			<!-- // CONT-BODY -->
 		</div>
 	</div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>

+ 2 - 2
src/main/webapp/WEB-INF/views/web/order/OrderDcAmtInfoWeb.html

@@ -15,7 +15,7 @@
  -->
 
 <!-- 할인/혜택 사용 -->
-<div class="fold_head on">
+<div class="fold_head">
 	<a href="javascript:void(0)">
 		<div>
 			<div class="fold_tit">
@@ -33,7 +33,7 @@
 		</div>
 	</a>
 </div>
-<div class="fold_cont" style="display: block;">
+<div class="fold_cont" style="display: none;">
 	<div class="area_seldiscount">
 		<dl>
 			<div>

+ 27 - 33
src/main/webapp/WEB-INF/views/web/order/OrderDeliveryAddrInfoWeb.html

@@ -14,26 +14,25 @@
  *******************************************************************************
  -->
 <!-- 배송지정보 -->
-<input type="hidden" name="delvMemo" th:value="${deliveryAddrInfo.delvMemo}">
+<input type="hidden" name="recipZipcode" 	th:value="${deliveryAddrInfo.recipZipcode}"/>
+<input type="hidden" name="recipBaseAddr" 	th:value="${deliveryAddrInfo.recipBaseAddr}"/>
+<input type="hidden" name="recipDtlAddr" 	th:value="${deliveryAddrInfo.recipDtlAddr}"/>
+<input type="hidden" name="delvMemo" 		th:value="${deliveryAddrInfo.delvMemo}"/>
+<input type="hidden" name="foreignBuyYn" 	th:value="${order.foreignBuyYn}"/>
+<input type="hidden" name="orderMadeYn" 	th:value="${order.orderMadeYn}"/>
+
 <div class="fold_head">
 	<a href="javascript:void(0)">
 		<div>
 			<div class="fold_tit">
 				<span>배송지 정보</span>
 			</div>
-			<div class="data" th:text="${deliveryAddrInfo.recipBaseAddr} + '   ' + ${deliveryAddrInfo.recipDtlAddr}"></div>
+			<div class="data" id="recipAddr" th:text="${deliveryAddrInfo.recipBaseAddr} + '   ' + ${deliveryAddrInfo.recipDtlAddr}"></div>
 		</div>
 	</a>
 </div>
 <div class="fold_cont" style="display: none;">
 	<div class="area_receiveinfo">
-		<input type="hidden" name="recipZipcode" 	th:value="${deliveryAddrInfo.recipZipcode}"/>
-		<input type="hidden" name="recipBaseAddr" 	th:value="${deliveryAddrInfo.recipBaseAddr}"/>
-		<input type="hidden" name="recipDtlAddr" 	th:value="${deliveryAddrInfo.recipDtlAddr}"/>
-		<input type="hidden" name="delvMemo" 		th:value="${deliveryAddrInfo.delvMemo}"/>
-		<input type="hidden" name="foreignBuyYn" 	th:value="${order.foreignBuyYn}"/>
-		<input type="hidden" name="orderMadeYn" 	th:value="${order.orderMadeYn}"/>
-		
 		<dl>
 			<div>
 				<dt>
@@ -42,8 +41,10 @@
 				<dd>
 					<th:block th:text="${deliveryAddrInfo.delvAddrNm}"></th:block>
 					<span class="icon_tag"> 
-						<em class="tag gray">기본 배송지</em> 
-						<th:block th:if="${order.shotDelvUseYn} == 'Y'"> 
+						<th:block th:if="${deliveryAddrInfo.defaultYn} == 'Y'">
+							<em class="tag gray">기본 배송지</em>
+						</th:block> 
+						<th:block th:if="${order.shotDelvUseYn} == 'Y'">
 							<em class="tag primary_line">총알배송</em>
 						</th:block>
 					</span>
@@ -87,35 +88,29 @@
 					<dd>
 						<div class="form_field">
 							<div>
-								<input type="radio" name="rdi-overseas"
-									id="rdi-overs1" value="" checked=""> <label
-									for="rdi-overs1"><span>받는사람 개인통관고유부호</span></label>
+								<input type="radio" name="rdi-overseas" id="rdi-overs1" value="" checked=""> 
+								<label for="rdi-overs1"><span>받는사람 개인통관고유부호</span></label>
 							</div>
 							<div>
-								<input type="radio" name="rdi-overseas"
-									id="rdi-overs2" value=""> <label
-									for="rdi-overs2"><span>입력 안 함</span></label>
+								<input type="radio" name="rdi-overseas" id="rdi-overs2" value=""> 
+								<label for="rdi-overs2"><span>입력 안 함</span></label>
 							</div>
 							<div class="info_box overs1">
 								<div class="input_wrap">
-									<input type="text" class="form_control err"
-										maxlength="13" placeholder="P로 시작하는 13자리">
+									<input type="text" class="form_control err" maxlength="13" placeholder="P로 시작하는 13자리">
 									<!-- 유효하지 않은 개인통관고유부호 일때 class명 'err' 추가 -->
 								</div>
 								<div class="t_err">개인통관고유부호가 유효하지 않습니다.</div>
 								<!-- 유효하지 않은 개인통관고유부호 일때 노출 -->
 								<div class="agree_overs">
 									<input id="chk-overs-agr" type="checkbox" checked="">
-									<label for="chk-overs-agr"><span>위
-											정보는 원활한 통관을 위해 수집 및 판매자에게 제공하며,계속 사용하도록 안전하게
-											STYLE24에서 저장 / 관리 합니다.&nbsp;&nbsp;<em
-											class="tmark_required">(필수)</em>
-									</span></label>
+									<label for="chk-overs-agr">
+										<span>위 정보는 원활한 통관을 위해 수집 및 판매자에게 제공하며,계속 사용하도록 안전하게 STYLE24에서 저장 / 관리 합니다.&nbsp;&nbsp;<em class="tmark_required">(필수)</em></span>
+									</label>
 								</div>
 							</div>
 							<div class="info_box overs2" style="display: none;">
-								<p>개인통관고유부호를 입력하지 않아도 관세사무소에서 개인정보 확인을 위해 별도 연락을
-									드릴 예정입니다.</p>
+								<p>개인통관고유부호를 입력하지 않아도 관세사무소에서 개인정보 확인을 위해 별도 연락을 드릴 예정입니다.</p>
 							</div>
 						</div>
 						<div class="info_txt">
@@ -137,18 +132,17 @@
 			<div class="form_field">
 				<div class="agree_custom">
 					<input id="chk-custom-agr1" type="checkbox" checked="">
-					<label for="chk-custom-agr1"><span>고객님께서
-							주문하신 상품에는 주문제작상품이 포함되어 있습니다.<br>주문제작상품에 대한 안내를
-							확인하였으며 배송에 동의합니다.&nbsp;&nbsp;<em
-							class="tmark_required">(필수)</em>
-					</span></label>
+					<label for="chk-custom-agr1">
+						<span>고객님께서 주문하신 상품에는 주문제작상품이 포함되어 있습니다.<br>주문제작상품에 대한 안내를 확인하였으며 배송에 동의합니다.&nbsp;&nbsp;
+							<em class="tmark_required">(필수)</em>
+						</span>
+					</label>
 				</div>
 			</div>
 			<div class="info_txt">
 				<ul>
 					<li>주문 제작 상품은 주문 후 제작이 진행되며, 제작 완료 후 배송이 시작됩니다.</li>
-					<li>주문 제작 상품의 특성상 주문 완료 후 취소/교환이 불가능합니다. (상품 하자에 한해
-						가능)</li>
+					<li>주문 제작 상품의 특성상 주문 완료 후 취소/교환이 불가능합니다. (상품 하자에 한해 가능)</li>
 				</ul>
 			</div>
 		</div>

+ 157 - 70
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrAddPopWeb.html

@@ -1,4 +1,3 @@
-<!-- 배송지추가 팝업 -->
 <div class="modal-dialog" role="document">
 	<div class="modal-content">
 		<div class="modal-header">
@@ -6,91 +5,179 @@
 		</div>
 		<div class="modal-body">
 			<div class="pop_cont">
-				<div class="area_adrsinfo">
-					<div class="form_field">
-						<label class="input_label sr-only">이름(주문자명)</label>
-						<div class="ui_col_12">
-							<div class="input_wrap">
-								<input type="text" name="userName" placeholder="이름(주문자명)" id="txtName">
+				<form class="form_wrap form_full" name="deliveryAddrForm" id="deliveryAddrForm">
+					<div class="area_adrsinfo">
+						<h6>배송지 정보</h6>
+						<div class="default_addrs">
+							<div class="form_field">
+								<input id="chk-default-addrs" type="checkbox" name="defaultYn" checked="">
+								<label for="chk-default-addrs"><span>기본 배송지로 등록</span></label>
 							</div>
 						</div>
-					</div>
-					<div class="form_field">
-						<label class="input_label sr-only">휴대폰 번호</label>
-						<div class="ui_col_12">
-							<div class="input_wrap">
-								<input type="text" name="userPhone" placeholder="휴대폰 번호" id="userPhone">
+						<div class="form_field">
+							<label class="input_label sr-only">받는 분</label>
+							<div class="ui_col_12">
+								<div class="input_wrap">
+									<input type="text" name="recipNm" placeholder="받는 분">
+								</div>
 							</div>
 						</div>
-					</div>
-					<div class="form_field">
-						<label class="input_label sr-only">배송주소</label>
-						<div class="ui_col_12">
-							<div class="input_wrap">
-								<input type="text" name="userNumber" placeholder="배송주소" id="">
-								<button type="button" class="btn btn_dark btn_default btn_postcode">
-									<span>우편번호 찾기</span>
-								</button>
+						<div class="form_field">
+							<label class="input_label sr-only">휴대폰 번호</label>
+							<div class="ui_col_12">
+								<div class="input_wrap">
+									<input type="text" name="recipPhnno" placeholder="휴대폰 번호" >
+								</div>
+							</div>
+						</div>
+						<div class="form_field">
+							<label class="input_label sr-only">배송주소</label>
+							<div class="ui_col_12">
+								<div class="input_wrap">
+									<input type="text" name="recipZipcode" placeholder="우편번호">
+									<button type="button" class="btn btn_dark btn_sm" onclick="fnOpenDaumAddr();">
+										<span>우편번호 찾기</span>
+									</button>
+								</div>
+							</div>
+						</div>
+						<div class="form_field">
+							<label class="input_label sr-only">기본주소</label>
+							<div class="ui_col_12">
+								<div class="input_wrap">
+									<input type="text" name="recipBaseAddr" placeholder="상세주소">
+								</div>
+							</div>
+						</div>
+						<div class="form_field">
+							<label class="input_label sr-only">상세주소</label>
+							<div class="ui_col_12">
+								<div class="input_wrap">
+									<input type="text" name="recipDtlAddr" placeholder="상세주소">
+								</div>
 							</div>
 						</div>
 					</div>
-					<!-- 주소 출력 -->
-					<div class="adress">
-						<dl>
+					<div class="area_request">
+						<h6>배송요청 사항</h6>
+						<div class="form_field">
 							<div>
-								<dt>
-									<span>도로명</span>
-								</dt>
-								<dd>서울시 영등포구 은행로 11, 일신빌딩 8층</dd>
+								<input type="radio" name="rdi-request1" id="rdi-request11" value="문앞"> 
+								<label for="rdi-request11"><span>문앞</span></label>
 							</div>
 							<div>
-								<dt>
-									<span>지번</span>
-								</dt>
-								<dd>서울특별시 영등포구 여의도동 15-15 일신빌딩 8층</dd>
+								<input type="radio" name="rdi-request1" id="rdi-request12" value="직접받고 부재시 문 앞" checked=""> 
+								<label for="rdi-request12"><span>직접받고 부재시 문 앞</span></label>
 							</div>
-						</dl>
-					</div>
-					<!-- //주소 출력 -->
-				</div>
-				<div class="area_request">
-					<h6>배송요청 사항</h6>
-					<div class="form_field">
-						<div>
-							<input type="radio" name="rdi-request1" id="rdi-request11" value="" checked=""> 
-							<label for="rdi-request11"><span>문앞</span></label>
-						</div>
-						<div>
-							<input type="radio" name="rdi-request1" id="rdi-request12" value="" checked=""> 
-							<label for="rdi-request12"><span>직접받고 부재시 문 앞</span></label>
-						</div>
-						<div>
-							<input type="radio" name="rdi-request1" id="rdi-request13" value="" checked="">
-							 <label for="rdi-request13"><span>경비실</span></label>
-						</div>
-						<div>
-							<input type="radio" name="rdi-request1" id="rdi-request14" value="" checked=""> 
-							<label for="rdi-request14"><span>택배함</span></label>
-						</div>
-						<div>
-							<input type="radio" name="rdi-request1" id="rdi-request15"value="" checked=""> 
-							<label for="rdi-request15"><span>기타사항</span></label>
-							<div class="info_box">
-								<div class="input_wrap">
-									<input type="text" class="form_control" maxlength="30" placeholder="보관장소만 입력">
-									<p>보관 장소 외 다른 내용 입력시 통보없이 삭제 될 수 있습니다.</p>
+							<div>
+								<input type="radio" name="rdi-request1" id="rdi-request13" value="경비실"> 
+								<label for="rdi-request13"><span>경비실</span></label>
+							</div>
+							<div>
+								<input type="radio" name="rdi-request1" id="rdi-request14" value="택배함"> 
+								<label for="rdi-request14"><span>택배함</span></label>
+							</div>
+							<div>
+								<input type="radio" name="rdi-request1" id="rdi-request15" value="기타사항"> 
+								<label for="rdi-request15"><span>기타사항</span></label>
+								<div class="info_box">
+									<div class="input_wrap">
+										<input type="text" class="form_control" maxlength="30" placeholder="보관장소만 입력">
+										<p>보관 장소 외 다른 내용 입력시 통보없이 삭제 될 수 있습니다.</p>
+									</div>
 								</div>
 							</div>
 						</div>
 					</div>
-				</div>
-				<div class="btn_group_block">
-					<button class="btn btn_dark btn_block">
-						<span>배송지 등록</span>
-					</button>
-				</div>
+					<div class="btn_group_block">
+						<button type="button" class="btn btn_dark btn_block" id="btn_delivery_addr_save">
+							<span>배송지 등록</span>
+						</button>
+					</div>
+				</form>
 			</div>
 		</div>
 	</div>
 </div>
-<!-- //배송지추가 팝업 -->
+<a href="#close-modal" rel="modal:close" id="adrsAddPop_close" class="close-modal">Close</a>
+
+<script th:inline="javascript">
+// 우편번호 DAUM을 이용한 우편번호 팝업 레이어
+var fnOpenDaumAddr = function() {
+	let daumZip = new daum.Postcode({
+		oncomplete: function(data) {
+			$('#deliveryAddrForm input[name=recipZipcode]').val(data.zonecode);
+			$('#deliveryAddrForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
+			$('#deliveryAddrForm input[name=recipDtlAddr]').focus();
+			cfnCloseDaumAddr();
+		},
+		width: '100%'
+	});
+	
+	cfnOpenDaumAddr(daumZip);
+}
+
+// 배송지등록버튼
+$("#btn_delivery_addr_save").on("click", function(){
+	// 기본배송지여부
+	var defaultYn = "N";
+	if ($("#deliveryAddrForm input[name=defaultYn]").is(":checked")) {
+		defaultYn = "Y";
+	}
+	
+	// 배송지정보설정
+	var jsonObj = {
+		"defaultYn"			: defaultYn
+		, "recipNm"			: $("#deliveryAddrForm input[name=recipNm]").val()
+		, "recipPhnno"		: $("#deliveryAddrForm input[name=recipPhnno]").val()
+		, "recipZipcode"	: $("#deliveryAddrForm input[name=recipZipcode]").val()
+		, "recipBaseAddr"	: $("#deliveryAddrForm input[name=recipBaseAddr]").val()
+		, "recipDtlAddr"	: $("#deliveryAddrForm input[name=recipDtlAddr]").val()
+		, "delvMemo"		: $("#deliveryAddrForm input[name=rdi-request1]:checked").parent().find('span').text()
+	}
+	
+	var jsonData = JSON.stringify(jsonObj);jsonObj
+	
+	$.ajax( {
+		type		: "POST",
+		url 		: '/order/createCustDeliveryAddr',
+		data		: jsonData,
+		dataType 	: 'html',
+		beforeSend : function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+			gagajf.showProgressbar(true);
+		},
+		success 	: function(result) {
+			
+			// 배송지변경팝업호출
+			$.ajax( {
+				type		: "POST",
+				url 		: '/order/delvAddrChangePop',
+				data		: jsonData,
+				dataType 	: 'html',
+				beforeSend : function(xhr, settings) {
+					xhr.setRequestHeader("AJAX"			, "true");
+					xhr.setRequestHeader('Accept'		, 'application/json');
+					xhr.setRequestHeader('Content-Type'	, 'application/json');
+					gagajf.showProgressbar(true);
+				},
+				success 	: function(result) {
+					$("#adrsAddPop").html(result);
+					$("#adrsAddPop").modal("show");
+				}
+			});	
+		}
+	});
+});
+</script>
+
+
+
+
+
+
+
+
+

+ 122 - 68
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrChangePopWeb.html

@@ -1,4 +1,5 @@
 <!-- 배송지변경 팝업 -->
+<form name="delvAddrChangeForm" id="delvAddrChangeForm">
 <div class="modal-dialog" role="document">
 	<div class="modal-content">
 		<div class="modal-header">
@@ -7,76 +8,129 @@
 		<div class="modal-body">
 			<div class="pop_cont">
 				<ul>
-					<li>
-						<div class="adrs_box">
-							<dl>
-								<div>
-									<dt><span class="sr-only">배송지명</span></dt>
-									<dd>홍길동 
-										<span class="icon_tag"> 
-											<em class="tag_stype1">기본 배송지</em>
-											<em class="tag_stype2">총알배송</em>
-										</span>
-									</dd>
-								</div>
-								<div>
-									<dt><span class="sr-only">배송주소</span></dt>
-									<dd>서울시 영등포구 은행로 11,8층(여의도동,일신빌딩)</dd>
-								</div>
-								<div>
-									<dt><span class="sr-only">휴대폰 번호</span></dt>
-									<dd>010-1234-5647</dd>
-								</div>
-								<div>
-									<dt>배송요청 사항</dt>
-									<dd>직접받고 부재 시 문앞</dd>
-								</div>
-								<button class="btn btn_default btn_sm" id="btn_addrModify_pop">
-									<span>수정</span>
-								</button>
-								<button class="btn btn_dark btn_sm" id="">
-									<span>선택</span>
-								</button>
-							</dl>
-						</div>
-					</li>
-					<li>
-						<div class="adrs_box">
-							<dl>
-								<div>
-									<dt><span class="sr-only">배송지명</span></dt>
-									<dd>홍길동 <span class="icon_tag"> <em class="tag_stype1">기본 배송지</em> <em class="tag_stype2">총알배송</em></span></dd>
-								</div>
-								<div>
-									<dt><span class="sr-only">배송주소</span></dt>
-									<dd>서울시 영등포구 은행로 11,8층(여의도동,일신빌딩)</dd>
-								</div>
-								<div>
-									<dt><span class="sr-only">휴대폰 번호</span></dt>
-									<dd>010-1234-5647</dd>
-								</div>
-								<div>
-									<dt>배송요청 사항</dt>
-									<dd>직접받고 부재 시 문앞</dd>
-								</div>
-								<button class="btn btn_default btn_sm"
-									id="btn_addrModify_pop">
-									<span>수정</span>
-								</button>
-								<button class="btn btn_dark btn_sm" id="">
-									<span>선택</span>
-								</button>
-							</dl>
-						</div>
-					</li>
+					<!-- 배송지목록 -->
+					<th:block th:each="deliveryAddr, index : ${deliveryAddrList}">
+						<li>
+							<div class="adrs_box">
+								<dl>
+									<div>
+										<input type="hidden" name="recipNm" 			th:value="${deliveryAddr.recipNm}"/>
+										<input type="hidden" name="recipPhnno" 			th:value="${deliveryAddr.recipPhnno}"/>
+										<input type="hidden" name="recipZipcode" 		th:value="${deliveryAddr.recipZipcode}"/>
+										<input type="hidden" name="recipBaseAddr" 		th:value="${deliveryAddr.recipBaseAddr}"/>
+										<input type="hidden" name="recipDtlAddr" 		th:value="${deliveryAddr.recipDtlAddr}"/>
+										<input type="hidden" name="delvMemo" 			th:value="${deliveryAddr.delvMemo}"/>
+										
+										<dt><span class="sr-only">배송지명</span></dt>
+										<dd>
+											<th:block th:text="${deliveryAddr.recipNm}"></th:block>
+											<span class="icon_tag">
+												<th:block th:if="${deliveryAddr.defaultYn} == 'Y'">
+													<em class="tag">기본 배송지</em>
+												</th:block>
+												<th:block th:if="${deliveryAddr.shotDelvUseYn} == 'Y'">
+													<em class="tag primary_line">총알배송</em>
+												</th:block>
+											</span>
+										</dd>
+									</div>
+									<div>
+										<dt><span class="sr-only">휴대폰 번호</span></dt>
+										<dd th:text="${deliveryAddr.recipPhnno}"></dd>
+									</div>
+									<div>
+										<dt><span class="sr-only">배송주소</span></dt>
+										<dd th:text="${deliveryAddr.recipBaseAddr} + ' ' + ${deliveryAddr.recipDtlAddr}"></dd>
+									</div>
+									<div>
+										<dt>배송요청 사항</dt>
+										<dd th:text="${deliveryAddr.delvMemo}"></dd>
+									</div>
+									<button type="button" class="btn btn_default btn_sm btn_addrModify_pop" th:value="${deliveryAddr.custDelvAddrSq}"><span>수정</span></button>
+									<button type="button" class="btn btn_dark btn_sm btn_sel_delvAddr" th:value="${deliveryAddr.custDelvAddrSq}"><span>선택</span></button>
+								</dl>
+							</div>
+						</li>
+					</th:block>
+					<!-- //배송지목록 -->
 				</ul>
-				<div class="btn_group_block">
-					<button class="btn btn_dark btn_block" id="btn_addrAdd_pop">
-						<span>배송지 추가</span>
-					</button>
-				</div>
 			</div>
 		</div>
+		<div class="modal-footer">
+			<button class="btn btn_dark" id="btn_addrAdd_pop"><span>배송지 추가</span></button>
+		</div>
 	</div>
 </div>
-<!-- //배송지변경 팝업 -->
+<a href="#close-modal" rel="modal:close" id="adrsChangePop_close" class="close-modal">Close</a>
+</form>
+<!-- //배송지변경 팝업 -->
+
+<script th:inline="javascript">
+//컨텐츠 호출
+$(document).ready( function() {
+});
+
+// 2. 버튼기능구현
+// 2.1 배송지변경 팝업열기
+$('#btn_addrAdd_pop').on("click", function(){
+	$.ajax( {
+		type		: "POST",
+		url 		: '/order/delvAddrAddPop',
+		data		: jsonData,
+		dataType 	: 'html',
+		beforeSend : function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+			gagajf.showProgressbar(true);
+		},
+		success 	: function(result) {
+			$("#adrsChangePop").html(result);
+			$("#adrsChangePop").modal("show");
+		}
+	});	
+});
+
+// 2.2 배송지선택버튼
+$(".btn_sel_delvAddr").on("click", function(){
+	// 배송지정보 새로고침
+	jsonObj.custDelvAddrSq = $(this).attr("value");
+	jsonObj.dispYn = "Y";
+	
+	// 배송지정보로드실행
+	deliveryAddrInfoSet(false);
+	
+	// 팝업닫기
+	$(".close-modal").trigger("click");
+});
+
+// 2.3 배송지수정버튼
+$(".btn_addrModify_pop").on("click", function(){
+		
+	var obj = {
+		"custDelvAddrSq" : $(this).attr("value")
+	} 
+	
+	$.ajax( {
+		type		: "POST",
+		url 		: '/order/delvAddrModifyPop',
+		data		: JSON.stringify(obj),
+		dataType 	: 'html',
+		beforeSend : function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+			gagajf.showProgressbar(true);
+		},
+		success 	: function(result) {
+			$("#adrsModifyPop").html(result);
+			$("#adrsModifyPop").modal("show");
+		}
+	});	
+});
+
+
+
+
+
+</script>

+ 104 - 65
src/main/webapp/WEB-INF/views/web/order/OrderDelvAddrModifyPopWeb.html

@@ -1,4 +1,10 @@
 <!-- 배송지수정 팝업 -->
+<form name="delvAddrChangeForm" id="delvAddrChangeForm">
+<input type="hidden" name="delvMemo" 			th:value="${deliveryAddrInfo.delvMemo}"/>
+<input type="hidden" name="recipZipcode" 		th:value="${deliveryAddrInfo.recipZipcode}"/>
+<input type="hidden" name="recipBaseAddr" 		th:value="${deliveryAddrInfo.recipBaseAddr}"/>
+<input type="hidden" name="recipDtlAddr" 		th:value="${deliveryAddrInfo.recipDtlAddr}"/>
+										
 <div class="modal-dialog" role="document">
 	<div class="modal-content">
 		<div class="modal-header">
@@ -6,87 +12,120 @@
 		</div>
 		<div class="modal-body">
 			<div class="pop_cont">
-				<div class="area_adrsinfo">
-					<div class="form_field">
-						<label class="input_label sr-only">이름(주문자명)</label>
-						<div class="ui_col_12">
-							<div class="input_wrap">
-								<input type="text" name="userName" placeholder="이름(주문자명)" id="txtName">
+				<form class="form_wrap form_full">
+					<div class="area_adrsinfo">
+						<div class="form_field">
+							<label class="input_label sr-only">이름(주문자명)</label>
+							<div class="ui_col_12">
+								<div class="input_wrap">
+									<input type="text" name="recipNm" placeholder="이름(주문자명)" th:value="${deliveryAddrInfo.recipNm}">
+								</div>
 							</div>
 						</div>
-					</div>
-					<div class="form_field">
-						<label class="input_label sr-only">휴대폰 번호</label>
-						<div class="ui_col_12">
-							<div class="input_wrap">
-								<input type="text" name="userPhone" placeholder="휴대폰 번호" id="userPhone">
+						<div class="form_field">
+							<label class="input_label sr-only">휴대폰 번호</label>
+							<div class="ui_col_12">
+								<div class="input_wrap">
+									<input type="text" name="recipPhnno" placeholder="휴대폰 번호" th:value="${deliveryAddrInfo.recipPhnno}">
+								</div>
 							</div>
 						</div>
-					</div>
-					<div class="form_field">
-						<label class="input_label sr-only">배송주소</label>
-						<div class="ui_col_12">
-							<div class="input_wrap">
-								<input type="text" name="userNumber" placeholder="배송주소" id="">
-								<button type="button" class="btn btn_dark btn_default btn_postcode">
-									<span>우편번호 찾기</span>
-								</button>
+						<div class="form_field">
+							<label class="input_label sr-only">배송주소</label>
+							<div class="ui_col_12">
+								<div class="input_wrap">
+									<input type="text" name="recipZipcode" placeholder="배송주소" th:value="${deliveryAddrInfo.recipZipcode}">
+									<button type="button" class="btn btn_dark btn_default btn_postcode" onclick="fnOpenDaumAddr();">
+										<span>우편번호 찾기</span>
+									</button>
+								</div>
 							</div>
 						</div>
+						<!-- 주소 출력 -->
+						<div class="adress">
+							<dl>
+								<div>
+									<dt><span>도로명</span></dt>
+									<dd class="recipBaseAddr" th:text="${deliveryAddrInfo.recipBaseAddr}"></dd>
+								</div>
+								<div>
+									<dt><span>지번</span></dt>
+									<dd class="recipDtlAddr" th:text="${deliveryAddrInfo.recipDtlAddr}"></dd>
+								</div>
+							</dl>
+						</div>
+						<!-- //주소 출력 -->
 					</div>
-					<!-- 주소 출력 -->
-					<div class="adress">
-						<dl>
+					<div class="area_request">
+						<h6>배송요청 사항</h6>
+						<div class="form_field">
 							<div>
-								<dt><span>도로명</span></dt>
-								<dd>서울시 영등포구 은행로 11, 일신빌딩 8층</dd>
+								<input type="radio" name="rdi-request2" id="rdi-request21"> 
+								<label for="rdi-request21"><span>문앞</span></label>
 							</div>
 							<div>
-								<dt><span>지번</span></dt>
-								<dd>서울특별시 영등포구 여의도동 15-15 일신빌딩 8층</dd>
+								<input type="radio" name="rdi-request2" id="rdi-request22">
+								<label for="rdi-request22"><span>직접받고 부재시 문 앞</span></label>
 							</div>
-						</dl>
-					</div>
-					<!-- //주소 출력 -->
-				</div>
-				<div class="area_request">
-					<h6>배송요청 사항</h6>
-					<div class="form_field">
-						<div>
-							<input type="radio" name="rdi-request2" id="rdi-request21" value="" checked=""> 
-							<label for="rdi-request21"><span>문앞</span></label>
-						</div>
-						<div>
-							<input type="radio" name="rdi-request2" id="rdi-request22" value="" checked=""> 
-							<label for="rdi-request22"><span>직접받고 부재시 문 앞</span></label>
-						</div>
-						<div>
-							<input type="radio" name="rdi-request2" id="rdi-request23" value="" checked=""> 
-							<label for="rdi-request23"><span>경비실</span></label>
-						</div>
-						<div>
-							<input type="radio" name="rdi-request2" id="rdi-request24" value="" checked=""> 
-							<label for="rdi-request24"><span>택배함</span></label>
-						</div>
-						<div>
-							<input type="radio" name="rdi-request2" id="rdi-request25" value="" checked=""> 
-							<label for="rdi-request25"><span>기타사항</span></label>
-							<div class="info_box">
-								<div class="input_wrap">
-									<input type="text" class="form_control" maxlength="30" placeholder="보관장소만 입력">
-									<p>보관 장소 외 다른 내용 입력시 통보없이 삭제 될 수 있습니다.</p>
+							<div>
+								<input type="radio" name="rdi-request2" id="rdi-request23"> 
+								<label for="rdi-request23"><span>경비실</span></label>
+							</div>
+							<div>
+								<input type="radio" name="rdi-request2" id="rdi-request24"> 
+								<label for="rdi-request24"><span>택배함</span></label>
+							</div>
+							<div>
+								<input type="radio" name="rdi-request2" id="rdi-request25"> 
+								<label for="rdi-request25"><span>기타사항</span></label>
+								<div class="info_box">
+									<div class="input_wrap">
+										<input type="text" class="form_control" maxlength="30" placeholder="보관장소만 입력">
+										<p>보관 장소 외 다른 내용 입력시 통보없이 삭제 될 수 있습니다.</p>
+									</div>
 								</div>
 							</div>
 						</div>
 					</div>
-				</div>
-				<div class="btn_group_block">
-					<button class="btn btn_dark btn_block">
-						<span>배송지 수정완료</span>
-					</button>
-				</div>
+					<div class="btn_group_block">
+						<button type="button" class="btn btn_dark btn_block"><span>배송지 수정완료</span></button>
+					</div>
+				</form>
 			</div>
 		</div>
 	</div>
 </div>
-<!-- //배송지수정 팝업 -->
+<a href="#close-modal" rel="modal:close" id="adrsModifyPop_close" class="close-modal">Close</a>
+</form>
+<!-- //배송지수정 팝업 -->
+
+<script th:inline="javascript">
+
+//우편번호 DAUM을 이용한 우편번호 팝업 레이어
+var fnOpenDaumAddr = function() {
+	let daumZip = new daum.Postcode({
+		oncomplete: function(data) {
+			$('#deliveryAddrForm input[name=recipZipcode]').val(data.zonecode);
+			$('#deliveryAddrForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
+			$('#deliveryAddrForm input[name=recipDtlAddr]').focus();
+			
+			$('#deliveryAddrForm .recipBaseAddr').text(cfnGetDaumRoadAddr(data));
+			cfnCloseDaumAddr();
+		},
+		width: '100%'
+	});
+	
+	cfnOpenDaumAddr(daumZip);
+}
+
+$(document).ready( function() {
+	var delvMemo = $("#delvAddrChangeForm input[name=delvMemo]").val();
+	
+	$("#delvAddrChangeForm input[name=rdi-request2]").each(function(){
+		if (delvMemo == $(this).parent().find("span").text()) {
+			$(this).attr("checked", true);
+		}
+	});
+});
+</script>
+

+ 125 - 271
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -28,6 +28,7 @@
 <form id="order_info" name="order_info" method="post" action="/order/pay/result/response" ></form>
 
 <!-- 주문고객정보 -->
+<form id="orderForm" name="orderForm">
 <table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="orderInfo" id="orderInfo">
 	<tbody>
 		<tr style="height:30px;">
@@ -331,266 +332,83 @@
 							
 							<div class="area_paybtn">
 								<div class="form_field">
-									<button type="button" class="btn btn_primary btn_block">
-										<span>동의 후 <em>123,456,789원</em> 결제하기</span>
+									<button type="button" class="btn btn_primary btn_block" id="btn_payment">
+										<span>동의 후 <em class="realOrdAmt"></em> 결제하기</span>
 									</button>
 								</div>
 							</div>
 						</div>
 					</form>
 				</div>
-				
-				
+
 				<div class="od_side">
 					<div class="area_order">
 						<div class="tit_box">
 							<h3>주문내역</h3>
-							<span> <em class="number">14</em>개의 상품
+							<span> <em class="number" th:text="${goodsTotCnt}"></em> 개의 상품
 							</span>
 						</div>
-						<div class="od_item_box">
-							<!-- 총알배송 -->
-							<div class="part_dlvr">
-								<h4 class="subH3">
-									STYLE24 총알배송 <span>오늘 자정까지 도착</span>
-								</h4>
-								<div class="gd_list">
-									<div class="item_gd">
-										<figure>
-											<span class="thumb"><img
-												src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-											<figcaption>
-												<div class="brand">CURLYSUE 컬리수</div>
-												<div class="name">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51
-													[겨울] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
-												<div class="option">
-													<span>01_루돌프융기모상하복_D오렌지/110</span> <span>수량:<em>99</em>개
-													</span>
-												</div>
-												<div class="price">
-													<span class="selling_price">1,000,000</span>
-												</div>
-											</figcaption>
-										</figure>
-									</div>
-									<div class="item_gd">
-										<figure>
-											<span class="thumb"><img
-												src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-											<figcaption>
-												<div class="brand">CURLYSUE 컬리수</div>
-												<div class="name">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51
-													[겨울] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
-												<div class="option">
-													<span>01_루돌프융기모상하복_D오렌지/110</span> <span>수량:<em>99</em>개
-													</span>
-												</div>
-												<div class="price">
-													<span class="selling_price">1,000,000</span>
-												</div>
-											</figcaption>
-										</figure>
-									</div>
-								</div>
-							</div>
-							<!-- //총알배송 -->
-							<!-- 일반배송 -->
-							<div class="part_dlvr">
-								<h4 class="subH3">STYLE24 일반배송</h4>
-								<div class="gd_list">
-									<div class="item_gd">
-										<figure>
-											<span class="thumb"><img
-												src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-											<figcaption>
-												<div class="brand">CURLYSUE 컬리수</div>
-												<div class="name">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51
-													[겨울] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
-												<div class="option">
-													<span>01_루돌프융기모상하복_D오렌지/110</span> <span>수량:<em>99</em>개
-													</span>
-												</div>
-												<div class="price">
-													<span class="selling_price">1,000,000</span>
-												</div>
-											</figcaption>
-										</figure>
-									</div>
-									<div class="item_gd">
-										<figure>
-											<span class="thumb"><img
-												src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-											<figcaption>
-												<div class="brand">CURLYSUE 컬리수</div>
-												<div class="name">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51
-													[겨울] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
-												<div class="option">
-													<span>01_루돌프융기모상하복_D오렌지/110</span> <span>수량:<em>99</em>개
-													</span>
-												</div>
-												<div class="price">
-													<span class="selling_price">1,000,000</span>
-												</div>
-											</figcaption>
-										</figure>
-									</div>
-								</div>
-							</div>
-							<!-- //일반배송 -->
-							<!-- 업체직배송 -->
-							<div class="part_dlvr">
-								<h4 class="subH3">업체직배송</h4>
-								<div class="gd_list">
-									<div class="item_gd">
-										<figure>
-											<span class="thumb"><img
-												src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-											<figcaption>
-												<div class="brand">CURLYSUE 컬리수</div>
-												<div class="name">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51
-													[겨울] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
-												<div class="option">
-													<span>01_루돌프융기모상하복_D오렌지/110</span> <span>수량:<em>99</em>개
-													</span>
-												</div>
-												<div class="price">
-													<span class="selling_price">1,000,000</span>
-												</div>
-											</figcaption>
-										</figure>
-									</div>
-								</div>
-								<div class="gd_list">
-									<div class="item_gd">
-										<figure>
-											<span class="thumb"><img
-												src="/images/pc/thumb/tmp_odSide2.jpg" alt=""></span>
-											<figcaption>
-												<div class="brand">CURLYSUE 컬리수</div>
-												<div class="name">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51
-													[겨울] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
-												<div class="option">
-													<span>01_루돌프융기모상하복_D오렌지/110</span> <span>수량:<em>99</em>개
-													</span>
-												</div>
-												<div class="price">
-													<span class="selling_price">1,000,000</span>
-												</div>
-											</figcaption>
-										</figure>
-									</div>
-								</div>
-							</div>
-							<!-- //업체직배송 -->
-							<!-- 예약배송 -->
-							<div class="part_dlvr">
-								<h4 class="subH3">예약배송</h4>
-								<div class="gd_list">
-									<div class="item_gd">
-										<figure>
-											<span class="thumb"><img
-												src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-											<figcaption>
-												<div class="brand">CURLYSUE 컬리수</div>
-												<div class="name">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51
-													[겨울] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
-												<div class="option">
-													<span>01_루돌프융기모상하복_D오렌지/110</span> <span>수량:<em>99</em>개
-													</span>
-												</div>
-												<div class="price">
-													<span class="selling_price">1,000,000</span>
-												</div>
-											</figcaption>
-										</figure>
-										<p class="info_reserv">
-											<i class="ico ico_calender"></i><span>2021.01.15</span>
-											배송예정상품
-										</p>
-									</div>
-									<div class="item_gd">
-										<figure>
-											<span class="thumb"><img
-												src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
-											<figcaption>
-												<div class="brand">CURLYSUE 컬리수</div>
-												<div class="name">[★2020 겨울신상★] 리버시블 경량점퍼 CPW0XQJM51
-													[겨울] 리버시블 경량점퍼 CPW0XQJM51 [겨울]</div>
-												<div class="option">
-													<span>01_루돌프융기모상하복_D오렌지/110</span> <span>수량:<em>99</em>개
-													</span>
-												</div>
-												<div class="price">
-													<span class="selling_price">1,000,000</span>
-												</div>
-											</figcaption>
-										</figure>
-										<p class="info_reserv">
-											<i class="ico ico_calender"></i><span>2021.01.15</span>
-											배송예정상품
-										</p>
-									</div>
-								</div>
-							</div>
-							<!-- //예약배송 -->
-						</div>
+						
+						<div id="orderListInfo" style="display:none"></div>
+						
 						<div class="od_amount_box">
 							<dl>
 								<div>
 									<dt>상품금액</dt>
-									<dd>1,590,000 원</dd>
+									<dd id="orgGoodsSumAmt" th:text="|${#numbers.formatInteger(orgGoodsSumAmt, 1, 'COMMA')} 원|"></dd>
 								</div>
 								<div>
 									<dt>배송비</dt>
-									<dd>0원</dd>
+									<dd id="delvSumAmt" th:text="|${#numbers.formatInteger(sumDelvFee, 1, 'COMMA')} 원|"></dd>
 								</div>
 								<div>
 									<dt>할인금액</dt>
-									<dd>
-										<span class="disc_amount">-1,746,500원</span>
-									</dd>
+									<th:block th:if="${cpn1DcSumAmt} > 0">
+										<dd><span class="disc_amount" id="cpn1DcSumAmt" th:text="|-${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')} 원|"></span></dd>
+									</th:block>
+									<th:block th:if="${cpn1DcSumAmt} < 1">
+										<dd><span class="disc_amount" id="cpn1DcSumAmt" th:text="|${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')} 원|"></span></dd>
+									</th:block>
 								</div>
 								<div>
-									<dt>다다익선할인</dt>
-									<dd>
-										<span class="disc_amount">25,000원</span>
-									</dd>
+									<dt>다다익선할인금액</dt>
+									<th:block th:if="${tmtbDcSumAmt} > 0">
+										<dd><span class="disc_amount" id="tmtbDcSumAmt" th:text="|-${#numbers.formatInteger(tmtbDcSumAmt, 1, 'COMMA')} 원|"></span></dd>
+									</th:block>
+									<th:block th:if="${tmtbDcSumAmt} < 1">
+										<dd><span class="disc_amount" id="tmtbDcSumAmt" th:text="|${#numbers.formatInteger(tmtbDcSumAmt, 1, 'COMMA')} 원|"></span></dd>
+									</th:block>
 								</div>
 								<div>
 									<dt>쿠폰할인</dt>
-									<dd>
-										<span class="disc_amount">3,000원</span>
-									</dd>
+									<dd><span class="disc_amount" id="couponDcSumAmt"></span></dd>
 								</div>
 								<div>
 									<dt>선포인트 사용</dt>
-									<dd>
-										<span class="disc_amount">-1,500P</span>
-									</dd>
+									<th:block th:if="${prePntDcAmt} > 0">
+										<dd><span class="disc_amount" id="prePntDcAmt" th:text="|-${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')} 원|"></span></dd>
+									</th:block>
+									<th:block th:if="${prePntDcAmt} < 1">
+										<dd><span class="disc_amount" id="prePntDcAmt" th:text="|${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')} 원|"></span></dd>
+									</th:block>
 								</div>
 								<div>
 									<dt>포인트 사용</dt>
-									<dd>
-										<span class="disc_amount">-5,500P</span>
-									</dd>
+									<dd><span class="disc_amount" id="pntDcAmt"></span></dd>
 								</div>
 								<div>
 									<dt>상품권 사용</dt>
-									<dd>
-										<span class="disc_amount">-50,000원</span>
-									</dd>
+									<dd><span class="disc_amount" id="gfcdUseAmt"></span></dd>
 								</div>
 							</dl>
 						</div>
 						<div class="totalprice_box">
 							<dl>
 								<dt>총 결제 예정 금액</dt>
-								<dd>
-									<span>3,546,200</span>원
-								</dd>
+								<dd><span id="realOrdAmt"></span> 원</dd>
 							</dl>
 							<p class="info_point">
-								<span class="save_point">3,500 P</span> 적립예정
+								<span span class="save_point" id="savePntSumAmt" th:text="|${#numbers.formatInteger(savePntSumAmt, 1, 'COMMA')} P|"></span> 적립예정
 							</p>
 						</div>
 					</div>
@@ -600,6 +418,19 @@
 		</div>
 	</div>
 </div>
+</form>
+
+<!-- 배송지변경 -->
+<div class="modal fade od_pop adrsChange_pop" id="adrsChangePop" tabindex="-1" role="dialog" aria-labelledby="adrsChangeLabel" aria-hidden="true"></div>
+<!-- //배송지변경 -->
+
+<!-- 배송지추가 팝업 -->
+<div class="modal fade od_pop adrsAdd_pop" id="adrsAddPop" tabindex="-1" role="dialog" aria-labelledby="adrsAddLabel" aria-hidden="true"></div>
+<!-- //배송지추가 팝업 -->
+
+<!-- 배송지수정 팝업 -->
+<div class="modal fade od_pop adrsModify_pop" id="adrsModifyPop" tabindex="-1" role="dialog" aria-labelledby="adrsModifyLabel" aria-hidden="true"></div>
+<!-- //배송지수정 팝업 -->
 
 <script th:inline="javascript">
 // 배송관련정보 변수선언
@@ -631,7 +462,6 @@ var cpnApplyTemp		= false;
 
 //AJAX 로드를 위한 변수 설정
 var jsonObj 			= {};
-var jsonData			= null;
 
 // 컨텐츠 호출
 $(document).ready( function() {
@@ -652,12 +482,13 @@ $(document).ready( function() {
 		, "shotDelvYn"		: shotDelvUseYn
 		, "foreignBuyYn"	: foreignBuyYn
 		, "orderMadeYn"		: orderMadeYn
+		, "custDelvAddrSq"	: 0
 	}
 	
 	jsonData = JSON.stringify(jsonObj);
 
 	// 1. AJAX 정보(회원정보로드)
-	custemerInfoSet(jsonData);
+	custemerInfoSet();
 	
 	// 999. 개발화면정보설정
 	var devTemp = false;
@@ -683,11 +514,12 @@ $(document).ready( function() {
 
 // 1. 함수기능 정의
 // 1.1 고객정보로드
-var custemerInfoSet = function(jsonData) {
+var custemerInfoSet = function() {
+	
 	$.ajax( {
 		type		: "POST",
 		url 		: '/order/custemerInfo',
-		data		: jsonData,
+		data		: JSON.stringify(jsonObj),
 		dataType 	: 'html',
 		beforeSend : function(xhr, settings) {
 			xhr.setRequestHeader("AJAX"			, "true");
@@ -706,17 +538,18 @@ var custemerInfoSet = function(jsonData) {
 				$(".cellPhnno").text($("input[name='cellPhnno']").val());
 			}
 			// 1.2 배송정보로드
-			deliveryAddrInfoSet(jsonData);
+			deliveryAddrInfoSet(true);
 		}
 	});
 }
 
 // 1.2 배송정보로드
-var deliveryAddrInfoSet = function(jsonData) {
+var deliveryAddrInfoSet = function(temp) {
+	
 	$.ajax( {
 		type		: "POST",
 		url 		: '/order/deliveryAddrInfo',
-		data		: jsonData,
+		data		: JSON.stringify(jsonObj),
 		dataType 	: 'html',
 		beforeSend : function(xhr, settings) {
 			xhr.setRequestHeader("AJAX"			, "true");
@@ -725,21 +558,41 @@ var deliveryAddrInfoSet = function(jsonData) {
 			gagajf.showProgressbar(true);
 		},
 		success 	: function(result) {
-			if (result != null) {
-				$("#deliveryAddrInfo").css("display", "block");
-				$("#deliveryAddrInfo").html(result);
-				
-				// 배송정보설정
-				$(".recipZipcode").text($("input[name='recipZipcode']").val());
-				$(".recipBaseAddr").text($("input[name='recipBaseAddr']").val());
-				$(".recipDtlAddr").text($("input[name='recipDtlAddr']").val());
-				$(".delvMemo").text($("input[name='delvMemo']").val());
-				$(".foreignBuyYn").text($("input[name='foreignBuyYn']").val());
-				$(".orderMadeYn").text($("input[name='orderMadeYn']").val());
-			}
 			
+			$("#deliveryAddrInfo").css("display", "block");
+			$("#deliveryAddrInfo").html(result);
+			
+			// 배송정보설정
+			$(".recipZipcode").text($("input[name='recipZipcode']").val());
+			$(".recipBaseAddr").text($("input[name='recipBaseAddr']").val());
+			$(".recipDtlAddr").text($("input[name='recipDtlAddr']").val());
+			$(".delvMemo").text($("input[name='delvMemo']").val());
+			$(".foreignBuyYn").text($("input[name='foreignBuyYn']").val());
+			$(".orderMadeYn").text($("input[name='orderMadeYn']").val());
+			
+			// 2. 버튼기능구현
+			// 2.1 배송지변경 팝업열기
+			$('#btn_adrsChange_pop').on("click", function(){
+				$.ajax( {
+					type		: "POST",
+					url 		: '/order/delvAddrChangePop',
+					data		: JSON.stringify(jsonObj),
+					dataType 	: 'html',
+					beforeSend : function(xhr, settings) {
+						xhr.setRequestHeader("AJAX"			, "true");
+						xhr.setRequestHeader('Accept'		, 'application/json');
+						xhr.setRequestHeader('Content-Type'	, 'application/json');
+						gagajf.showProgressbar(true);
+					},
+					success 	: function(result) {
+						$("#adrsAddPop").html(result);
+						$("#adrsAddPop").modal("show");
+					}
+				});	
+			});
+
 			// 1.3 총알배송가능 지역, 총알배송 가능 시간 체크(초기로드정보)
-			fnGetDailyDeliveryCheck(true);
+			fnGetDailyDeliveryCheck(temp);
 		}
 	});
 }
@@ -747,6 +600,8 @@ var deliveryAddrInfoSet = function(jsonData) {
 // 1.3 총알배송가능 지역, 총알배송 가능 시간 체크
 var fnGetDailyDeliveryCheck = function (temp) {
 	
+	jsonData = JSON.stringify(jsonObj);
+	
 	// 장바구니 총알배송 사용여부 체크 N
 	if (shotDelvUseYn == "N") {
 		// 초기에 한번 데이타 로드
@@ -790,7 +645,6 @@ var fnGetDailyDeliveryCheck = function (temp) {
 						orderListInfoSet(orderListJsonData, temp);
 					}
 				}
-				
 				shotDelvYn = tempShotDelvYn;
 			}
 		)
@@ -818,19 +672,19 @@ var orderListInfoSet = function(orderListJsonData, temp) {
 			
 			// 1.5 사은품정보로드
 			if (temp) {
-				freegiftInfoSet(jsonData);
+				freegiftInfoSet();
 			}
 		}
 	});
 }
 
 // 1.5 사은품정보로드
-var freegiftInfoSet = function(jsonData) {
+var freegiftInfoSet = function() {
 	
 	$.ajax( {
 		type		: "POST",
 		url 		: '/order/freegiftInfo',
-		data		: jsonData,
+		data		: JSON.stringify(jsonObj),
 		dataType 	: 'html',
 		beforeSend : function(xhr, settings) {
 			xhr.setRequestHeader("AJAX"			, "true");
@@ -885,17 +739,18 @@ var freegiftInfoSet = function(jsonData) {
 			}
 			
 			// 1.6 결제타입로드
-			paymentInfoSet(jsonData);
+			paymentInfoSet();
 		}
 	});
 }
 
 // 1.6 결제타입로드 (결제버튼기능구현)
-var paymentInfoSet = function(jsonData) {
+var paymentInfoSet = function() {
+	
 	$.ajax( {
 		type		: "POST",
 		url 		: '/order/paymentInfo',
-		data		: jsonData,
+		data		: JSON.stringify(jsonObj),
 		dataType 	: 'html',
 		beforeSend : function(xhr, settings) {
 			xhr.setRequestHeader("AJAX"			, "true");
@@ -1007,12 +862,10 @@ var paymentInfoSet = function(jsonData) {
 						,"freegiftUsePointArr"	: $(".freegiftUsePointArr").text().split(",")
 					};
 					
-					var orderData = JSON.stringify(orderData);
-					
 					$.ajax( {
 						type		: "POST",
 						url 		: '/order/create/preOrder',
-						data		: orderData,
+						data		: JSON.stringify(orderData),
 						dataType 	: 'html',
 						beforeSend : function(xhr, settings) {
 							xhr.setRequestHeader("AJAX"			, "true");
@@ -1030,7 +883,7 @@ var paymentInfoSet = function(jsonData) {
 								fnNaverPaymentReady();
 							} else if (pgGb == "KAKAO") {
 								fnKakaoPaymentReady();
-							} else if (pgGb == "KCP") {
+							} else if (pgGb == "KCP" || pgGb == "PAYCO") {
 								jsf__pay(document.order_info);
 							}
 						}
@@ -1050,14 +903,12 @@ var serialCpnApply = function(){
 		rdCpnNm : $("#payForm #serialCpnNm").val()
 	}
 
-	let jsonData = JSON.stringify(data);
-
 	$.ajax( {
 		type			: "POST",
 		url 			: '/cart/list/serialCpnApply',
 		contentType		: 'application/json',
 		dataType 		: 'json',
-		data 			: jsonData,
+		data 			: JSON.stringify(data),
 		success 		: function(result) {
 			var jsonObj 	= {"cartSqArr" : cartSqArr,"dispYn" : "Y"};
 			var jsonData 	= JSON.stringify(jsonObj);
@@ -1074,12 +925,12 @@ var serialCpnApply = function(){
 }
 
 // 1.8 할인영역 설정 (쿠폰, 선포인트, 포인트, 상품권)
-var dcAmtInfoSet = function(jsonData) {
+var dcAmtInfoSet = function() {
 	// 1.8.1 할인정보로드
 	$.ajax( {
 		type		: "POST",
 		url 		: '/order/dcAmtInfo',
-		data		: jsonData,
+		data		: JSON.stringify(jsonObj),
 		dataType 	: 'html',
 		beforeSend : function(xhr, settings) {
 			xhr.setRequestHeader("AJAX"			, "true");
@@ -1589,7 +1440,7 @@ var prePntDcAmtReset = function() {
 var pntDcAmtReset = function() {
 	$(".pntDcSumAmt").text("0");
 	$("input[name='pntDcAmtStr']").val("");
-	$("#pntDcAmt").text("0원");
+	$("#pntDcAmt").text("0 원");
 	
 	// 상품권리셋기능
 	gfcdUseAmtReset();
@@ -1599,7 +1450,7 @@ var pntDcAmtReset = function() {
 var gfcdUseAmtReset = function() {
 	$(".gfcdUseSumAmt").text("0");
 	$("input[name='gfcdUseAmtStr']").val("");
-	$("#gfcdUseAmt").text("0원");
+	$("#gfcdUseAmt").text("0 원");
 	
 	// 금액전체계산
 	custCpnSumAmtCal();
@@ -1621,19 +1472,19 @@ var custCpnSumAmtCal = function() {
 	
 	// 쿠폰영역
 	if (cpnDcSumAmt > 0) {
-		$(".maxdisc_amount").text("(-"+cpnDcSumAmt.addComma()+"원)"); // 쿠폰할인금액합계	
+		$(".maxdisc_amount").text("(-"+cpnDcSumAmt.addComma()+" 원)"); // 쿠폰할인금액합계	
 	} else {
-		$(".maxdisc_amount").text("("+cpnDcSumAmt.addComma()+"원)"); // 쿠폰할인금액합계
+		$(".maxdisc_amount").text("("+cpnDcSumAmt.addComma()+" 원)"); // 쿠폰할인금액합계
 	}
 	
 	
-	$("#cpnApplyCnt").text(cpnApplyCnt + "장");
+	$("#cpnApplyCnt").text(cpnApplyCnt + " 장");
 	
 	// 상품목록영역
 	if (cpnDcSumAmt > 0) {
-		$("#couponDcSumAmt").text("-" + cpnDcSumAmt.addComma() + "원"); // 쿠폰할인금액합계
+		$("#couponDcSumAmt").text("-" + cpnDcSumAmt.addComma() + " 원"); // 쿠폰할인금액합계
 	} else {
-		$("#couponDcSumAmt").text(cpnDcSumAmt.addComma() + "원"); // 쿠폰할인금액합계
+		$("#couponDcSumAmt").text(cpnDcSumAmt.addComma() + " 원"); // 쿠폰할인금액합계
 	}
 	$(".cpnDcSumAmt").text(cpnDcSumAmt);
 	
@@ -1645,7 +1496,7 @@ var custCpnSumAmtCal = function() {
 			var delvSumAmt = parseInt(orgSumDelvFee) - parseInt($(this).parent().find("input[name='cpnDcAmt']").val());
 			
 			// 최종배송비
-			$("#delvSumAmt").text(delvSumAmt.addComma() + "원");
+			$("#delvSumAmt").text(delvSumAmt.addComma() + " 원");
 			$(".delvSumAmt").text(delvSumAmt);
 		}
 	});
@@ -1760,6 +1611,7 @@ var custCpnSumAmtCal = function() {
 	$(".savePntSumAmt").text(savePntSumAmt);
 	
 	$("#realOrdAmt").text(realOrdSumAmt.addComma()); // 총 결제 예정 금액
+	$(".realOrdAmt").text(realOrdSumAmt.addComma() + " 원"); // 총 결제 예정 금액
 	
 	var tempSavePnt			= savePntSumAmt - prePntDcAmt;
 	
@@ -1767,13 +1619,13 @@ var custCpnSumAmtCal = function() {
 	var rmPntAmt 			= parseInt($("input[name='rmPntAmt']").val());
 	var freegiftUsePnt 		= parseInt($(".freegiftUsePnt").text());
 	rmPntAmt 				= rmPntAmt - freegiftUsePnt; 
-	$(".rmPntAmt").text("보유 : " + rmPntAmt.addComma() + "P");
+	$(".rmPntAmt").text("보유 : " + rmPntAmt.addComma() + " P");
 	
 	// 걸제영역
-	$("#btn_payment").text("동의 후 "+realOrdSumAmt.addComma()+"원 결제하기");
+	//$("#btn_payment").text("동의 후 "+realOrdSumAmt.addComma()+" 원 결제하기");
 	
 	// 적립포인트
-	$("#savePntSumAmt").text(savePntSumAmt.addComma()+"P");
+	$("#savePntSumAmt").text(savePntSumAmt.addComma()+" P");
 	
 	// 사은품정보 설정
 	var freegiftValArr 			= [];
@@ -1801,11 +1653,17 @@ var custCpnSumAmtCal = function() {
 	$(".freegiftValArr").text(freegiftValArr);				// 사은품시퀀스배열
 	$(".freegiftUsePointArr").text(freegiftUsePointArr);	// 사은품사용포인트배열
 };
-
-
 </script>
 
 <script type="text/javascript">
+
+// 2. 버튼기능구현
+// 2.1 배송지변경 팝업열기
+$('#btn_adrsChange_pop').on("click", function(){
+	$("#adrsChangePop").modal("show");
+});
+
+
 $(document).ready( function() {
 	//해외배송 입력
 	$(document).on('change','.odPayment .area_overseas #rdi-overs1',function(e){
@@ -1870,7 +1728,7 @@ $(document).ready( function() {
 		return false;
 	});
 
-	//개인정보동의 열고닫기
+	// 개인정보동의 열고닫기
 	$(document).on('click','.area_paymentinfo .payinfo_blk a',function(e){
 		e.preventDefault();
 		$(this).parents('.payinfo_blk').toggleClass('on');
@@ -1879,11 +1737,7 @@ $(document).ready( function() {
 		return false;
 	});
 
-	//배송지변경 팝업열기
-	$(document).on('click','#btn_adrsChange_pop',function(e){
-		$("#adrsChangePop").modal("show");
-		return false;
-	});
+	
 
 	//배송지추가 팝업열기
 	$(document).on('click','#btn_addrAdd_pop',function(e){

+ 8 - 11
src/main/webapp/WEB-INF/views/web/order/OrderListInfoWeb.html

@@ -13,38 +13,37 @@
  * 1.0  2021.02.01   jsh77b     최초 작성
  *******************************************************************************
  -->
-<!-- 주문목록 -->
 <div class="od_item_box">
-	<!-- 전체배송목록 sort --> 
 	<th:block th:each="delvAllCart, i : ${delvAllCartList}">
 		<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
 			<div class="part_dlvr">
 				<th:block th:if="${i.index} == 0">
 					<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-						<h4 class="subH3 mb20">STYLE24 총알배송 <span>오늘 자정까지 도착</span></h4>
+						<h4 class="subH3">STYLE24 총알배송 <span>오늘 자정까지 도착</span></h4>
 					</th:block>
 				</th:block>
 				<th:block th:if="${i.index} == 1">
 					<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-						<h4 class="subH3 mb20">STYLE24 일반배송</h4>
+						<h4 class="subH3">STYLE24 일반배송</h4>
 					</th:block>
 				</th:block>
 				<th:block th:if="${i.index} == 2">
 					<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-						<h4 class="subH3 mb20">업체직배송</h4>
+						<h4 class="subH3">업체직배송</h4>
 					</th:block>
 				</th:block>
 				<th:block th:if="${i.index} == 3">
 					<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-						<h4 class="subH3 mb20">예약배송</h4>
+						<h4 class="subH3">예약배송</h4>
 					</th:block>
 				</th:block>
-				
+		
 				<div class="gd_list">
 					<th:block th:each="goods, i : ${delvAllCart}">
 						<div class="item_gd">
 							<figure>
-								<span class="thumb"><img src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
+								<span class="thumb"><img
+									src="/images/pc/thumb/tmp_odSide1.jpg" alt=""></span>
 								<figcaption>
 									<div class="brand" th:text="${goods.brandEnm} + ' ' + ${goods.brandKnm}"></div>
 									<div class="name" th:text="${goods.goodsNm}"></div>
@@ -66,9 +65,7 @@
 					</th:block>
 				</div>
 			</div>
+			
 		</th:block>
 	</th:block>
-<!-- //전체배송목록 sort -->
-</div>
-<!-- //주문목록 -->
 </html>

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

@@ -109,12 +109,10 @@ var dispYn = [[${order.dispYn}]]; // 노출여부
 
 //컨텐츠 호출
 $(document).ready( function() {
-	dispYn = "Y";
-	
 	// 화면펼침
 	if (dispYn == "Y") {
 		$("#paymentInfo .fold_head").addClass("on");
-		//$("#paymentInfo .fold_cont").css("display", "block");
+		$("#paymentInfo .fold_cont").css("display", "block");
 		$("#rdi-paymethod-normal").attr("checked", "checked");
 	}
 });

BIN
src/main/webapp/images/mo/ico_arrow_filter.png


BIN
src/main/webapp/images/mo/ico_btn_more02.png


BIN
src/main/webapp/images/mo/ico_bulltet-delivery.png


BIN
src/main/webapp/images/mo/ico_bulltet-house.png


BIN
src/main/webapp/images/mo/ico_bulltet-object.png


BIN
src/main/webapp/images/mo/ico_bulltet-order.png


BIN
src/main/webapp/images/mo/ico_cate_close.png


BIN
src/main/webapp/images/mo/ico_dp_arrow.png


BIN
src/main/webapp/images/mo/ico_dpbanner_arrow.png


BIN
src/main/webapp/images/mo/ico_filter_close.png


BIN
src/main/webapp/images/mo/ico_filter_remove.png


BIN
src/main/webapp/images/mo/ico_filter_reset.png


BIN
src/main/webapp/images/mo/ico_filter_reset02.png


BIN
src/main/webapp/images/mo/ico_filter_reset_w.png


BIN
src/main/webapp/images/mo/ico_pick_cls.png


BIN
src/main/webapp/images/mo/ico_search_btn.png


BIN
src/main/webapp/images/mo/ico_shopbag.png


BIN
src/main/webapp/images/mo/ico_sns_share.png


BIN
src/main/webapp/images/mo/icon_best_refresh.png


BIN
src/main/webapp/images/mo/icon_list_filter.png


BIN
src/main/webapp/images/mo/icon_time_hotdeal.png


BIN
src/main/webapp/images/mo/shc_arrow.png


BIN
src/main/webapp/images/mo/shc_clock.png


BIN
src/main/webapp/images/mo/shc_filter.png


BIN
src/main/webapp/images/mo/shc_itemplan.png


BIN
src/main/webapp/images/mo/shc_refresh.png


BIN
src/main/webapp/images/mo/shc_result_plan.png


BIN
src/main/webapp/images/mo/thumb/bigbanner_slide01.png


BIN
src/main/webapp/images/mo/thumb/bullet_bg1.png


BIN
src/main/webapp/images/mo/thumb/detail_case_bg.png


BIN
src/main/webapp/images/mo/thumb/dp_case1_item.jpg


BIN
src/main/webapp/images/mo/thumb/dp_case1_lookbook.jpg


BIN
src/main/webapp/images/mo/thumb/dp_visual.jpg


BIN
src/main/webapp/images/mo/thumb/dp_visual_outlets.jpg


BIN
src/main/webapp/images/mo/thumb/hotdeal_bg.png


BIN
src/main/webapp/images/mo/thumb/main_visual01.jpg


BIN
src/main/webapp/images/mo/thumb/main_visual02.jpg


BIN
src/main/webapp/images/pc/benefit_txt.jpg


BIN
src/main/webapp/images/pc/bg_check01.png


BIN
src/main/webapp/images/pc/bg_check02.png


BIN
src/main/webapp/images/pc/dp_best_livetxt.jpg


BIN
src/main/webapp/images/pc/ico_best_bedge.jpg


BIN
src/main/webapp/images/pc/ico_bracket2.png


BIN
src/main/webapp/images/pc/ico_bread_root_w.png


BIN
src/main/webapp/images/pc/ico_cart_empty.png


BIN
src/main/webapp/images/pc/ico_coupon_3000.png


BIN
src/main/webapp/images/pc/ico_coupon_5.png


BIN
src/main/webapp/images/pc/ico_filter_close.png


BIN
src/main/webapp/images/pc/ico_filter_reset02.png


BIN
src/main/webapp/images/pc/pop_slide_next.png


BIN
src/main/webapp/images/pc/pop_slide_prev.png


+ 40 - 13
src/main/webapp/ux/pc/js/mypage.js

@@ -1,3 +1,34 @@
+// 마이페이지 LNB 처리
+var fnSetMypageLnbList = function(lnbLvl) {
+	let tag = '';
+	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);"' + (lnbLvl == 1 ? ' class="on"' : '') + '>주문확인/배송조회</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_CRS_LIST);"' + (lnbLvl == 2 ? ' class="on"' : '') + '>취소/반품/환불내역</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_RESTOCK);"' + (lnbLvl == 3 ? ' class="on"' : '') + '>재입고 알림 내역</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_COUPON);"' + (lnbLvl == 4 ? ' class="on"' : '') + '>쿠폰</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_POINT);"' + (lnbLvl == 5 ? ' class="on"' : '') + '>STYLE24 포인트</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);"' + (lnbLvl == 6 ? ' class="on"' : '') + '>상품권</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_REVIEW);"' + (lnbLvl == 7 ? ' class="on"' : '') + '>리뷰</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_DELIVERY_ADDR);"' + (lnbLvl == 8 ? ' class="on"' : '') + '>배송지 관리</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_WISHLIST);"' + (lnbLvl == 9 ? ' class="on"' : '') + '>위시리스트</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_CUSTOMER);"' + (lnbLvl == 10 ? ' class="on"' : '') + '>내정보 관리</a></li>\n';
+	tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_MYPAGE_SECEDE);"' + (lnbLvl == 11 ? ' class="on"' : '') + '>회원 탈퇴</a></li>\n';
+	tag += '</ul>';
+	$('#mypageLnbList').html(tag);
+}
+
+
+// 마이페이지 로케이션 처리
+var fnSetMypageLocation = function(depth3, depth3Link, depth4) {
+	let tag = '';
+	if (gagajf.isNull(depth4)) {
+		tag += '<li class="bread_3depth">' + depth3 + '</li>'
+	} else {
+		tag += '<li className="bread_3depth"><a href="javascript:void(0);" onClick="cfnGoToPage(' + depth3Link + ');">' + depth3 + '</a></li>';
+		tag += '<li class="bread_3depth">' + depth4 + '</li>'
+	}
+	$('#location').append(tag);
+}
+
 // 주문상세보기 버튼 클릭 이벤트 처리
 var fnGoToOrderDetail = function(param) {
 	let ordNo = $(param).attr('ordNo');
@@ -105,19 +136,15 @@ var fnCreateChange = function(param, gubun) {
 
 	$('#' + gubun + 'Form input[name=ordNo]').val(ordNo);
 	$('#' + gubun + 'Form input[name=ordDtlNo]').val(ordDtlNo);
-	mcxDialog.alertC(gubun,  {
-		sureBtnText: "확인",
-		sureBtnClick: function() {
-			if (gubun == 'cancel') {
-				document.cancelForm.submit();
-			} else if (gubun == 'return') {
-				document.returnForm.submit();
-			} else if (gubun == 'exchange') {
-				document.exchangeForm.submit();
-			}
-		}
-	});
-	
+
+	if (gubun == 'cancel') {
+		document.cancelForm.submit();
+	} else if (gubun == 'return') {
+		document.returnForm.submit();
+	} else if (gubun == 'exchange') {
+		document.exchangeForm.submit();
+	}
+
 }
 
 // 주문 내역 삭제 처리