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

Merge branch 'develop' into eskim

Conflicts:
	src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
eskim 5 лет назад
Родитель
Сommit
7df1617c6e

+ 28 - 0
src/main/java/com/style24/front/biz/dao/TsfCartDao.java

@@ -3,6 +3,7 @@ package com.style24.front.biz.dao;
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.Cart;
 import com.style24.persistence.domain.GoodsStock;
+import com.style24.persistence.domain.Order;
 
 import java.util.Collection;
 import java.util.List;
@@ -86,4 +87,31 @@ public interface TsfCartDao {
      * @since 2021. 02. 02
      */
     void insertCartDetailHst(Cart param);
+
+    /**
+     * 다다익선 기본 상품 조회
+     * @param Cart
+     * @return void
+     * @author xodud1202
+     * @since 2021. 02. 04
+     */
+    Collection<Order> selectMoreBetterApplyCartList(Order param);
+
+   /**
+    * 다다익선 적용 상품 SUM DATA 조회
+    * @param Cart
+    * @return void
+    * @author xodud1202
+    * @since 2021. 02. 04
+    */
+   Collection<Order> selectApplyMoreBetterCartInfoList(Order param);
+
+    /**
+     * 다다익선 SECTION 적용 조건 조회
+     * @param Cart
+     * @return void
+     * @author xodud1202
+     * @since 2021. 02. 04
+     */
+    Collection<Order> selectTmtbSectionValList(List<Integer> param);
 }

+ 168 - 7
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -1,5 +1,7 @@
 package com.style24.front.biz.service;
 
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.session.TscSession;
 import com.style24.front.biz.dao.TsfCartDao;
@@ -8,12 +10,16 @@ import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Cart;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.GoodsStock;
+import com.style24.persistence.domain.Order;
+
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 /**
  * 장바구니 Service
@@ -31,13 +37,15 @@ public class TsfCartService {
 	@Autowired
 	private TsfGoodsService goodsService;
 
+	@Autowired
+	private TscOrderService coreOrderService;
+
 	/**
 	 * 장바구니 저장
 	 * 단품 : goodsCd, optCd, optCd1, optCd2
 	 * 세트 : goodsCd,
 	 * @param cart
 	 */
-	@Transactional("shopTxnManager")
 	public String saveCartInfo(Collection<Cart> params) {
 		Cart cart = new Cart();
 		// JSESSION_ID 저장
@@ -59,11 +67,8 @@ public class TsfCartService {
 			if (goods == null) {
 				throw new IllegalArgumentException("상품 정보가 존재하지 않습니다.");
 			}
-
-			cart.setGoodsCd(param.getGoodsCd());
-			int goodsCartCnt = cartDao.getHasGoodsCartCnt(param);
-			if(param.getGoodsQty() + goodsCartCnt > goods.getDayMaxOrdQty()) {
-				throw new IllegalArgumentException("1일 구매한도 수량이 초과되었습니다.");
+			if(TscConstants.GoodsStat.SOLDOUT.value().equals(goods.getGoodsStat())) {
+				throw new IllegalArgumentException("품절입니다.");
 			}
 
 			// 상품 재고 확인
@@ -79,11 +84,17 @@ public class TsfCartService {
 				throw new IllegalArgumentException(stockResult);
 			}
 
+			cart.setGoodsCd(param.getGoodsCd());
+			int goodsCartCnt = cartDao.getHasGoodsCartCnt(param);
+			if(param.getGoodsQty() + goodsCartCnt > goods.getDayMaxOrdQty()) {
+				throw new IllegalArgumentException("1일 구매한도 수량이 초과되었습니다.");
+			}
+
 			cart = param;
 		}
 
 		// 장바구니 정보 수정
-		if(cart.getGoodsType().equals(TscConstants.GOODS_TYPE.SET.value())) {
+		if(cart.getGoodsType().equals(TscConstants.GoodsType.SET.value())) {
 			// 세트상품일 경우
 			saveSetTypeCartInfo(params);
 		} else {
@@ -208,4 +219,154 @@ public class TsfCartService {
 			cartDao.insertCartDetailHst(param);             // 장바구니 수정 이력 저장
 		}
 	}
+
+	public GagaMap selecCartGoodsList() {
+		GagaMap result = new GagaMap();							// return
+		List<Integer> cartSqs = new ArrayList<Integer>();		// 품절 제외 장바구니 리스트
+		Order order = new Order();								// 조회 조건
+
+		// Device check
+		order.setFrontGb(TsfSession.getFrontGb());
+
+		// TODO 로그인 체크
+		order.setJsessionId(TscSession.getSessionId());
+		order.setJsessionId("aaec62cc-5f91-47bb-ba65-ebc9a61385cf");
+		order.setCustNo(0);
+		order.setRegNo(0);
+		order.setUpdNo(0);
+
+		// 장바구니 상품 조회
+		Collection<Order> cartGoodsList = coreOrderService.getCartGoodsList(order);
+
+		// 품절체크
+		for(Order goods : cartGoodsList) {
+			// 상품 재고 확인
+			GoodsStock checkParam = new GoodsStock();
+			checkParam.setGoodsCd(goods.getGoodsCd());
+			checkParam.setItemCd(goods.getItemCd());
+			checkParam.setOptCd(goods.getOptCd());
+			checkParam.setGoodsQty(goods.getGoodsQty());
+			checkParam.setGoodsType(goods.getGoodsType());
+			String stockResult = goodsService.getCheckStock(checkParam);
+
+			if("SUCCESS".equals(stockResult)) {
+				goods.setSoldoutYn("N");
+				cartSqs.add(goods.getCartSq());
+			} else {
+				goods.setSoldoutYn("Y");
+			}
+		}
+
+		order.setCartSqs(cartSqs.stream().mapToInt(Integer::intValue).toArray());
+
+		// 다다익선 할인 상품 조회
+		Collection<Order> moreBetterAmtList = selecMoreBetterAmtList(order);
+
+		result.put("cartGoodsList", cartGoodsList);
+
+		return result;
+	}
+
+	/**
+	 * 다다익선 할인 금액 조회
+	 * @param Order
+	 * param.cartSqs[] : 필수
+	 * @return String
+	 * @author xodud1202
+	 * @since 2021. 01. 28
+	 */
+	public Collection<Order> selecMoreBetterAmtList(Order param) {
+		Collection<Order> result = new ArrayList<Order>();
+
+		// 장바구니 상품 조회
+		param.setFrontGb(TsfSession.getFrontGb());
+		Collection<Order> cartGoodsList = coreOrderService.getCartGoodsList(param);
+
+		// 장바구니 내 적용 가능 다다익선 조회 (등록된 기본,적용 상품 정보 전체 조회)
+		Collection<Order> tmtbApplyList = cartDao.selectMoreBetterApplyCartList(param);
+
+		// 장바구니에 담긴 상품 금액 (즉시할인가 + 상품 옵션가)를 tmtbApplyList 에 저장 (추후 계산식을 위함)
+		for(Order cart : cartGoodsList) {
+			for(Order apply : tmtbApplyList) {
+				if(cart.getCartSq() == apply.getCartSq() && TscConstants.GoodsType.SET.value().equals(cart.getGoodsType())) {
+					apply.setCurrPrice(cart.getCurrPrice());
+				} else if(cart.getCartSq() == apply.getCartSq() && !TscConstants.GoodsType.SET.value().equals(cart.getGoodsType())) {
+					apply.setCurrPrice(cart.getCurrPrice() + cart.getOptAddPrice());
+				}
+			}
+		}
+
+		// 장바구니 등록 다다익선 일련번호 지정
+		List<Integer> applySq = new ArrayList<Integer>();
+		for(Order tmtbApply : tmtbApplyList) {
+			if(TscConstants.GoodsGb.BASE.value().equals(tmtbApply.getGoodsGb())) {
+				applySq.add(tmtbApply.getTmtbSq());
+			}
+		}
+		param.setTmtbSqs(applySq.stream().mapToInt(Integer::intValue).toArray());
+
+		// 장바구니 등록 다다익선 총합 금액
+		Collection<Order> tmtbSumDataList = cartDao.selectApplyMoreBetterCartInfoList(param);
+		// 기본상품 목록에 총합 데이터 등록
+		for(Order applyInfo : tmtbApplyList) {
+			for(Order tmtbSumInfo : tmtbSumDataList) {
+				if(applyInfo.getTmtbSq() == tmtbSumInfo.getTmtbSq()) {
+					applyInfo.setTmtbSumAmt(tmtbSumInfo.getTmtbSumAmt());
+					applyInfo.setTmtbSumQty(tmtbSumInfo.getTmtbSumQty());
+				}
+			}
+		}
+
+		// 섹션 정보 조회 후 할인 여부 판단
+		Collection<Order> tmtbSectionList = cartDao.selectTmtbSectionValList(applySq);
+		for(Order applyInfo : tmtbApplyList) {						// 기준 상품 및 다다익선 정보 조회
+			for(Order section : tmtbSectionList) {					// 다다익선 할인 조건 조회
+				if(applyInfo.getTmtbSq() == section.getTmtbSq()) {
+					applyInfo.setTmtbNm(section.getTmtbNm());
+
+					if(TscConstants.ApplyGb.QTY.value().equals(applyInfo.getApplyGb())) {		// 수량 적용
+						if(section.getSectionVal() < applyInfo.getTmtbSumQty()) {				// 장바구니 수량 할인 기준 달성시
+							if(applyInfo.getSectionVal() < section.getSectionVal()) {			// 기존 달성된 기준치보다 할인폭이 클 경우 기준할인 수정
+								applyInfo.setSectionVal(section.getSectionVal());
+								applyInfo.setApplyQtySectionVal(section.getTmtbSumQty());
+								applyInfo.setApplyAmtSectionVal(section.getTmtbSumAmt());
+								applyInfo.setApplyQtySectionYn("Y");
+							}
+						}
+					} else if (TscConstants.ApplyGb.AMT.value().equals(applyInfo.getApplyGb())) {
+						if(section.getSectionVal() < applyInfo.getTmtbSumQty()) {				// 장바구니 수량 할인 기준 달성시
+							if(applyInfo.getSectionVal() < section.getSectionVal()) {	// 기존 달성된 기준치보다 할인폭이 클 경우 기준할인 수정
+								applyInfo.setSectionVal(section.getSectionVal());
+								applyInfo.setApplyAmtSectionVal(section.getSectionVal());
+								applyInfo.setApplyAmtSectionYn("Y");
+							}
+						}
+					}
+				}
+			}
+		}
+
+		// 다다익선 적용 상품 할인 금액 계산
+		// resultAmt.currPrice = 즉시할인 + 옵션가 (수량계산안한값)
+		// resultAmt.getApplyAmtSectionVal = 다다익선 등록 상품 총합계금액 (수량, 금액 모두 들어있음)
+		// resultAmt.getApplyQtySectionVal = 다다익선 등록 상품 총합계수량 (수량만)
+		// resultAmt.getApplyAmtSectionYn() = 다다익선 금액할인 만족 여부
+		// resultAmt.getApplyQtySectionYn() = 다다익선 수량할인 만족 여부
+		for(Order resultAmt : tmtbApplyList) {
+			if("Y".equals(resultAmt.getApplyQtySectionYn())) {
+				if(TscConstants.DcWay.AMT.value().equals(resultAmt.getDcWay())) {		// 할인 방식 금액일경우
+
+				} else {		// 할인 방식 할인율일 경우
+
+				}
+			}
+
+		}
+
+		// 할인 cartGoodsList에 할인 금액 세팅
+		// 장바구니 등록 상품 중 tmtbSq는 이제 존재하나 setApplyAmtSectionYn가 없는 경우 N으로 등록해주어야함 >> 장바구니 화면에서 추천상품 보여주기 위함
+
+
+		return result;
+	}
 }

+ 10 - 5
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -69,7 +69,16 @@ public class TsfGoodsService {
 	 * @since 2021. 01. 28
 	 */
 	public String getCheckStock(GoodsStock param) {
-		if(param.getGoodsType().equals(TscConstants.GOODS_TYPE.SET.value())) {		// 세트상품이면 구성 상품코드로 조회
+		// 상품 마스터 정보 확인
+		Goods goodsInfo = new Goods();
+		goodsInfo.setGoodsCd(param.getGoodsCd());
+		goodsInfo = getGoodsInfo(goodsInfo);
+
+		if(TscConstants.GoodsStat.SOLDOUT.value().equals(goodsInfo.getGoodsStat())) {
+			return param.getGoodsCd() + "는 품절 상품입니다.";
+		}
+
+		if(param.getGoodsType().equals(TscConstants.GoodsType.SET.value())) {		// 세트상품이면 구성 상품코드로 조회
 			GoodsStock stockCheck = new GoodsStock();		// 재고 조회 결과
 			stockCheck.setGoodsCd(param.getItemCd());
 			stockCheck.setOptCd(param.getOptCd());
@@ -83,10 +92,6 @@ public class TsfGoodsService {
 
 			compsInfo = goodsDao.getGoodsCompsInfo(compsInfo);						// 구성상품 정보 조회
 
-			log.info("CHECK param.getGoodsQty() INFO >> " + param.getGoodsQty());
-			log.info("CHECK compsInfo.getQty() INFO >> " + compsInfo.getQty());
-			log.info("CHECK stockCheck.getCurrStockQty() INFO >> " + stockCheck.getCurrStockQty());
-
 			// 재고 체크
 			if(param.getGoodsQty() * compsInfo.getQty() > stockCheck.getCurrStockQty()) {
 				return param.getItemCd() + "의 재고가 충분하지 않습니다.";

+ 7 - 2
src/main/java/com/style24/front/biz/web/TsfCartController.java

@@ -3,18 +3,23 @@ package com.style24.front.biz.web;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.rest.server.GagaResponse;
+import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.core.support.session.TscSession;
 import com.style24.front.biz.service.TsfCartService;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.persistence.domain.Cart;
+import com.style24.persistence.domain.Order;
+
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 /**
  * 장바구니 Controller
@@ -79,10 +84,10 @@ public class TsfCartController extends TsfBaseController {
 
 	@ResponseBody
 	@PostMapping("/goods/list")
-	public GagaMap freeGoodsPromotionSave(@RequestBody Collection<Cart> params) {
+	public GagaMap selecCartGoodsList() {
 		GagaMap result = new GagaMap();
 
-
+		result.putAll(cartService.selecCartGoodsList());
 
 		return result;
 	}

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

@@ -1,9 +1,15 @@
 package com.style24.front.biz.web;
 
+import java.util.Collection;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
 
+import com.style24.core.biz.service.TscCustomerService;
+import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCouponService;
 import com.style24.front.biz.service.TsfCustomerService;
@@ -13,6 +19,9 @@ import com.style24.front.biz.service.TsfPointService;
 import com.style24.front.biz.service.TsfReviewService;
 import com.style24.front.biz.service.TsfWishlistService;
 import com.style24.front.support.controller.TsfBaseController;
+import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.domain.Customer;
+import com.style24.persistence.domain.Order;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -32,9 +41,15 @@ public class TsfMypageController extends TsfBaseController {
 
 	@Autowired
 	private TsfCustomerService customerService;
+	
+	@Autowired
+	private TscCustomerService coreCustomerService;
 
 	@Autowired
 	private TsfOrderService orderService;
+	
+	@Autowired
+	private TscOrderService coreOrderService;
 
 	@Autowired
 	private TsfReviewService reviewService;
@@ -51,4 +66,45 @@ public class TsfMypageController extends TsfBaseController {
 	@Autowired
 	private TsfCouponService couponService;
 
+	/**
+	 * 마이페이지 메인 화면
+	 *
+	 * @return
+	 * @author card007
+	 * @since 2021. 02. 04
+	 */
+	@GetMapping({"/main/form", "/order/list/form"})
+	public ModelAndView mypageOrderList() {
+		ModelAndView mav = new ModelAndView();
+		
+		// int custNo = TsfSession.getInfo().getCustNo();
+		int custNo = 1000007;
+
+		// 고객정보 조회
+		Customer customer = new Customer();
+		customer.setCustNo(custNo);
+		customer = coreCustomerService.getCustomerInfo(customer);
+
+		mav.addObject("customerInfo", customer);
+
+		// 주문정보 조회
+		Order order = new Order();
+		order.setCustNo(custNo);
+		Collection<Order> orderList = coreOrderService.getOrderListForMypage(order);
+
+		mav.addObject("orderInfo", orderList);
+
+		// 쿠폰정보 조회
+
+		// 포인트 정보 조회
+		mav.addObject("rmPntAmt", coreOrderService.getCustPointInfo(order));
+
+		// 상품권 정보 조회
+		mav.addObject("rmGfcdAmt", coreOrderService.getGiftcardInfo(order));
+
+		mav.setViewName(super.getDeviceViewName("mypage/MypageOrderListForm"));
+
+		return mav;
+	}
+
 }

+ 58 - 35
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -7,9 +7,11 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.gagaframework.web.parameter.GagaMap;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.support.controller.TsfBaseController;
+import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Cart;
 import com.style24.persistence.domain.Order;
 
@@ -30,7 +32,7 @@ public class TsfOrderController extends TsfBaseController {
 	private TscMessageByLocale message;
 
 	@Autowired
-	private TscOrderService orderService;
+	private TscOrderService coreOrderService;
 	
 	/**
 	 * 주문페이지
@@ -43,56 +45,77 @@ public class TsfOrderController extends TsfBaseController {
 	@RequestMapping(value = "/form")
 	public ModelAndView orderForm(Cart cart) {
 		ModelAndView mav = new ModelAndView();
-		
-		// 1. 비회주문, 회원 주문 판단 로직
-		String temp = "true"; //회원
-		
-		if (temp.equals("true")) {
-			
+ 		
+		// 1.비회주문, 회원 주문 판단 로직,  고객정보 세션 판단
+		// 세션고객정보가 존재하면 회원주문 없으면 비회원 주문
+		Order order = new Order();
+		if (TsfSession.getInfo().getCustNo() == null) {
+			order.setCustNo(0); // 고객번호등록
 		} else {
-			
+			order.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
 		}
 		
-		Order order = new Order();
+		// 1.1 주문고객 정보조회
+		Order custemerInfo = coreOrderService.getCustemerInfo(order);
+		
+		// 1.2 배송지 정보조회 (기본배송지)
+		Order deliveryAddrInfo = coreOrderService.getDeliveryAddrInfo(order);
+
 		
-		// 1. 배송단위별 장바구니 상품 건수 조회
-		//Collection<Order> cartGodsList = orderService.getCartGoodsList(order);
 		
-		// 2. 배송단위별 상품 목록 조회
-		Collection<Order> cartGoodsList = orderService.getCartGoodsList(order);
+		// 2. 장바구니시퀀스 배열 등록 (장바구니 상품 정보 조회)
+		int[] cartSqArr = new int[3];
+		order.setCartSqArr(cartSqArr);
 		
-		// 3. 주문고객 정보조회
-		Order custemerInfo = orderService.getCustemerInfo(order);
+		// 2.1 배송단위별 상품 목록 조회 (장바구니)
+		Collection<Order> cartGoodsList = coreOrderService.getCartGoodsList(order);
 		
-		// 4. 배송지 정보조회 (기본배송지)
-		Order deliveryAddrInfo = orderService.getDeliveryAddrInfo(order);
+		// 2.2 배송단위별 장바구니 상품 건수 조회 (장바구니상품)
+		Order delvOrder = (Order) coreOrderService.getCartDelvGoodsCntList(cartGoodsList);
+
 		
-		// 5. 장바구니상품 다다익선 적용 정보 조회
+		// 3. 할인구간정보조회
+		// 3.1 장바구니상품 즉시할인, 다다익선 할인 금액 적용 정보 조회 (주문상세목록)
+		Collection<Order> tmtbGoodsList = coreOrderService.getCartGoodsList(order);		
 		
-		// 6. 장바구니상품 사음품 적용 정보 조회
+		// 3.2 장바구니상품 상품쿠폰, 장바구니쿠폰 정보 조회
+		Collection<Order> goodsCartCpnApplyGoodsList = coreOrderService.getGoodsCartCpnApplyGoodsList(order);
 		
-		// 7. 장바구니상품 즉시할인 쿠폰 적용 정보 조회
-		Collection<Order> cpn1ApplyGoodsList = orderService.getCpn1ApplyGoodsList(order);
+		// 3.3 고객 보유 포인트 정보 조회
+		int custPointInfo = coreOrderService.getCustPointInfo(order);
 		
-		// 8. 장바구니상품 상품쿠폰, 장바구니쿠폰 정보 조회
-		Collection<Order> goodsCartCpnApplyGoodsList = orderService.getGoodsCartCpnApplyGoodsList(order);
+		// 3.4 고객 보유 상품권 정보 조회
+		int giftcardInfo = coreOrderService.getGiftcardInfo(order);
 		
-		// 9. 결제수단정보 조회
 		
-		// 10. 고객 보유 포인트 정보 조회
-		int custPointInfo = orderService.getCustPointInfo(order);
 		
-		// 11. 고객 보유 상품권 정보 조회
-		int giftcardInfo = orderService.getGiftcardInfo(order);
+		// 4. 사은품 정보
+		// 4.1 장바구니상품 사음품 적용 정보 조회
 		
 		
-		mav.addObject("cartGoodsList"					, cartGoodsList);
-		mav.addObject("custemerInfo"					, custemerInfo);
-		mav.addObject("deliveryAddrInfo"				, deliveryAddrInfo);
-		mav.addObject("cpn1ApplyGoodsList"				, cpn1ApplyGoodsList);
-		mav.addObject("goodsCartCpnApplyGoodsList"		, goodsCartCpnApplyGoodsList);
-		mav.addObject("custPointInfo"					, custPointInfo);
-		mav.addObject("giftcardInfo"					, giftcardInfo);
+		
+		
+
+		
+
+		
+		// 101. 상품정보
+		mav.addObject("cartGoodsList"					, cartGoodsList);					// 장바구니상품목록
+		mav.addObject("wmsCnt" 							, delvOrder.getWmsCnt());			// 자사상품건수
+		mav.addObject("resCnt" 							, delvOrder.getResCnt());			// 자사예약상품건수
+		mav.addObject("delvCnt" 						, delvOrder.getDelvCnt());			// 입점업체상품건수
+		mav.addObject("wmsCartList" 					, delvOrder.getWmsCartList());		// 자사장바구니상품목록
+		mav.addObject("resCartList" 					, delvOrder.getResCartList());		// 자사장바구니예약상품목록
+		mav.addObject("delvCartList" 					, delvOrder.getDelvCartList());		// 입점업체장바구니상품목록
+		
+		// 102. 고객정보
+		mav.addObject("custemerInfo"					, custemerInfo);					// 고객정보
+		mav.addObject("deliveryAddrInfo"				, deliveryAddrInfo);				// 배송지정보
+		
+		// 103. 할인정보
+		mav.addObject("goodsCartCpnApplyGoodsList"		, goodsCartCpnApplyGoodsList);		// 상품쿠폰, 장바구니쿠폰 상품단위 조회
+		mav.addObject("custPointInfo"					, custPointInfo);					// 고객포인트정보
+		mav.addObject("giftcardInfo"					, giftcardInfo);					// 고객상품권정보
 		
 		mav.setViewName(super.getDeviceViewName("order/OrderForm"));
 		

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

@@ -21,6 +21,7 @@ public class Goods extends TscBaseDomain {
 	private String compsGoodsCd;	// 세트 구성품 상품번호
 	private String optCd;			// 옵션코드
 	private String optCd1;			// 옵션코드1
+	private String goodsStat;		// 상품 상태(공통코드G008)
 	private int dayMaxOrdQty;		// 일일 최대 구매 수량
 	private int qty;				// 세트 상품 구성 수량
 }

+ 134 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -246,4 +246,138 @@
 		FROM   TB_CART_DETAIL CD
 		WHERE  CD.CART_DTL_SQ = #{cartDtlSq}
 	</insert>
+
+	<!-- 다다익선 기본 상품 조회 -->
+	<select id="selectMoreBetterApplyCartList" parameterType="Order" resultType="Order">
+		/* TsfCart.selectMoreBetterApplyCartList : 다다익선 기본 상품 조회 */
+		SELECT C.CART_SQ
+			 , T.TMTB_SQ
+			 , T.APPLY_GB
+		     , TAG.GOODS_CD
+		     , TAG.GOODS_GB
+			 , T.TMTB_NM
+			 , C.GOODS_QTY
+		FROM   TB_CART C
+		INNER  JOIN TB_TMTB_APPLY_GOODS TAG
+		ON	   C.GOODS_CD = TAG.GOODS_CD
+		AND	   TAG.DEL_YN = 'N'
+		INNER  JOIN TB_TMTB T
+		ON	   T.TMTB_SQ = TAG.TMTB_SQ
+		AND	   T.TMTB_STAT = 'G232_11' /*진행*/
+		INNER  JOIN TB_GOODS G
+		ON	   C.GOODS_CD = G.GOODS_CD
+		LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
+		ON     T.TMTB_SQ = NOT_APPLY.TMTB_SQ
+		AND    C.GOODS_CD = NOT_APPLY.GOODS_CD
+		AND    NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
+		WHERE  1=1
+		AND    NOT_APPLY.TMTB_SQ IS NULL
+		AND    T.TMTB_ST_DT <![CDATA[<=]]> NOW()
+		AND    T.TMTB_ED_DT >= NOW()
+		AND    C.CART_GB = 'G026_BC'
+		AND    G.GOODS_STAT = 'G008_90'
+		AND    G.SELF_MALL_YN = 'Y'
+		<if test="cartSqs != null and cartSqs.length > 0">
+		AND   C.CART_SQ IN
+			<foreach collection="cartSqs" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+	</select>
+
+	<!-- 다다익선 적용 상품 SUM DATA 조회 -->
+	<select id="selectApplyMoreBetterCartInfoList" parameterType="Order" resultType="Order">
+		/* TsfCart.selectApplyMoreBetterCartInfoList : 다다익선 적용 상품 SUM DATA 조회 */
+		SELECT TAG.TMTB_SQ
+			 , SUM((FN_GET_APPLY_CPN1_PRICE(CA.GOODS_CD, #{frontGb}) + IFNULL(OP.ADD_PRICE, 0)) * C.GOODS_QTY) AS TMTB_SUM_AMT
+			 , SUM(C.GOODS_QTY) AS TMTB_SUM_QTY
+		FROM   TB_TMTB_APPLY_GOODS TAG
+		INNER  JOIN TB_CART C
+		ON     TAG.GOODS_CD = C.GOODS_CD
+		INNER  JOIN TB_GOODS G
+		ON     C.GOODS_CD = G.GOODS_CD
+		LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
+		ON     TAG.GOODS_CD = NOT_APPLY.GOODS_CD
+		AND    NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
+		LEFT   OUTER JOIN (SELECT OP.ADD_PRICE
+								, C.CART_SQ
+		                   FROM   TB_CART C
+						   INNER  JOIN TB_CART_DETAIL CD
+		                   ON     C.CART_SQ = CD.CART_SQ
+						   INNER  JOIN TB_OPTION OP
+						   ON     C.GOODS_CD = OP.GOODS_CD
+						   AND    CD.OPT_CD = OP.OPT_CD
+		                   WHERE  1=1
+		       ) OP
+		ON     C.CART_SQ = OP.CART_SQ
+		WHERE  1=1
+		AND    NOT_APPLY.TMTB_SQ IS NULL
+		AND    TAG.DEL_YN = 'N'
+		AND    C.JSESSION_ID = #{jsessionId}
+		AND    C.CART_GB = 'G026_BC'
+		AND    G.GOODS_STAT = 'G008_90'
+		AND    G.SELF_MALL_YN = 'Y'
+		<if test="tmtbSqs != null and tmtbSqs.length > 0">
+		AND    TAG.TMTB_SQ IN
+			<foreach collection="tmtbSqs" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		<if test="cartSqs != null and cartSqs.length > 0">
+		AND    C.CART_SQ IN
+			<foreach collection="cartSqs" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		GROUP BY TAG.TMTB_SQ
+	</select>
+
+	<!-- 다다익선 적용 상품 조회 -->
+	<select id="selectApplyMoreBetterCartList" parameterType="int" resultType="Order">
+		/* TsfCart.selectApplyMoreBetterCartList : 다다익선 적용 상품 SUM DATA 조회 */
+		SELECT TAG.GOODS_CD
+			 , TAG.TMTB_SQ
+		FROM   TB_TMTB_APPLY_GOODS TAG
+		INNER  JOIN TB_CART C
+		ON     TAG.GOODS_CD = C.GOODS_CD
+		INNER  JOIN TB_GOODS G
+		ON     C.GOODS_CD = G.GOODS_CD
+		LEFT   OUTER JOIN TB_TMTB_APPLY_GOODS NOT_APPLY
+		ON     TAG.GOODS_CD = NOT_APPLY.GOODS_CD
+		AND    NOT_APPLY.GOODS_GB = 'G800_30'   /* 제외상품 */
+		WHERE  1=1
+		AND    NOT_APPLY.TMTB_SQ IS NULL
+		AND    TAG.DEL_YN = 'N'
+		AND    C.JSESSION_ID = #{jsessionId}
+		AND    C.CART_GB = 'G026_BC'
+		AND    G.GOODS_STAT = 'G008_90'
+		AND    G.SELF_MALL_YN = 'Y'
+		<if test="list != null and list.size() > 0">
+			AND    TAG.TMTB_SQ IN
+			<foreach collection="list" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+	</select>
+
+	<!-- 다다익선 SECTION 적용 조건 조회 -->
+	<select id="selectTmtbSectionValList" parameterType="int" resultType="Order">
+		/* TsfCart.selectTmtbSectionValList : 다다익선 SECTION 적용 조건 조회 */
+		SELECT TC.SECTION_GB
+			 , TC.SECTION_VAL
+			 , TC.TMTB_SQ
+			 , TV.
+		FROM   TB_TMTB_SECTION TC
+		INNER  JOIN TB_TMTB_VAL TV
+		ON     TC.TMTB_SECTION_SQ = TV.TMTB_SECTION_SQ
+		WHERE  1=1
+		AND    TC.DEL_YN = 'N'
+		<if test="list != null and list.size() > 0">
+		AND    TC.TMTB_SQ IN
+			<foreach collection="list" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		ORDER  BY TMTB_SQ, SECTION_VAL
+	</select>
 </mapper>

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

@@ -165,12 +165,13 @@
 		     , GC.QTY
 		     , G.PRODUCT_NO
 		     , G.PRODUCT_CODE
+			 , G.GOODS_STAT
 		  FROM TB_GOODS_COMPOSE GC
 		 INNER JOIN TB_GOODS G
 		    ON GC.COMPS_GOODS_CD = G.GOODS_CD
 		 WHERE GC.USE_YN = 'Y'
-		   AND G.SELF_MALL_YN = 'Y'			<!-- 자사몰 노출 여부 -->
-		   AND G.GOODS_STAT = 'G008_90'		<!-- 상품 승인완료 -->
+		   AND G.SELF_MALL_YN = 'Y'							<!-- 자사몰 노출 여부 -->
+		   AND G.GOODS_STAT IN ('G008_90', 'G008_70')		<!-- 상품 승인완료, 일시품절 (품절도 프론트에서 보여져야함) -->
 		   AND GC.GOODS_TYPE = #{goodsType}
 		   AND GC.GOODS_CD = #{goodsCd}
 		   AND GC.COMPS_GOODS_CD = #{compsGoodsCd}

+ 3 - 3
src/main/webapp/WEB-INF/views/web/cart/cartListFormWeb.html

@@ -1205,16 +1205,16 @@
 
         $(document).ready(function() {
             // 장바구니 상품 정보 select
-
+            getCartList();
         });
 
-        function selectCartList() {
+        function getCartList() {
             $.ajax( {
                 type: "POST",
                 url : '/cart/goods/list',
                 dataType : 'json',
                 success : function(result) {
-                    alert(1);
+
                 }
             });
         }

+ 110 - 0
src/main/webapp/WEB-INF/views/web/common/layout/MypageLayoutWeb.html

@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
+
+<head th:replace="~{web/common/fragments/HeadWeb :: head}"></head>
+
+<body>
+
+<div class="skipComment">
+	<a href="#content">본문 바로가기</a>
+	<a href="#gnb">주메뉴 바로가기</a>
+	<a href="#footer">하단메뉴 바로가기</a>
+</div>
+	
+<th:block th:replace="~{web/common/fragments/VariablesWeb :: variables}"></th:block>
+
+<!-- GNB -->
+<header id="header" th:replace="~{web/common/fragments/GnbWeb :: gnb}"></header>
+<!--// GNB -->
+
+<div id="container" class="container my">
+	<div class="breadcrumb">
+		<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">
+			<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 mypage">
+				<!-- CONT-BODY -->
+				<div class="my_lnb">
+					<div class="lnb_tit">
+						<h2>마이페이지</h2>
+					</div>
+					<div class="lnb_list">
+						<ul id="mypageLnbList">
+							<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_ORDER_LIST);">주문확인/배송조회</a></li>
+							<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_CRS_LIST);">취소/반품/환불내역</a></li>
+							<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_RESTOCK);">재입고 알림 내역</a></li>
+							<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_REVIEW);">리뷰</a></li>
+							<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_DELIVERY_ADDR);">배송지 관리</a></li>
+							<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_WISHLIST);">위시리스트</a></li>
+							<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_CUSTOMER);">내정보 관리</a></li>
+							<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_SECEDE);">회원 탈퇴</a></li>
+						</ul>
+					</div>
+				</div>
+				
+				<!-- CONTENT AREA -->
+				<th:block layout:fragment="content"></th:block>
+				<!-- // CONTENT AREA -->
+				
+				<!-- // CONT-BODY -->
+			</div>
+		</div>
+	</div>
+</div>
+
+<!-- Footer -->
+<footer id="footer" th:replace="~{web/common/fragments/FooterWeb :: footer}"></footer>
+
+<th:block th:replace="~{web/common/fragments/ScriptsWeb :: scripts}"></th:block>
+<!-- <th:block th:replace="~{web/common/fragments/MarketingScripts :: mscripts}"></th:block> -->
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+	var fnSetMypageLnbList = function(lnbLvl) {
+		let tag = '';
+		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_ORDER_LIST);"' + (lnbLvl == 1 ? ' class="on"' : '') + '>주문확인/배송조회</a></li>\n';
+		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_CRS_LIST);"' + (lnbLvl == 2 ? ' class="on"' : '') + '>취소/반품/환불내역</a></li>\n';
+		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_RESTOCK);"' + (lnbLvl == 3 ? ' class="on"' : '') + '>재입고 알림 내역</a></li>\n';
+		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_REVIEW);"' + (lnbLvl == 4 ? ' class="on"' : '') + '>리뷰</a></li>\n';
+		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_DELIVERY_ADDR);"' + (lnbLvl == 5 ? ' class="on"' : '') + '>배송지 관리</a></li>\n';
+		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_WISHLIST);"' + (lnbLvl == 6 ? ' class="on"' : '') + '>위시리스트</a></li>\n';
+		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_CUSTOMER);"' + (lnbLvl == 7 ? ' class="on"' : '') + '>내정보 관리</a></li>\n';
+		tag += '<li><a href="javascript:void(0);" onClick="cfnGoToPage(_PAGE_SECEDE);"' + (lnbLvl == 8 ? ' 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);
+	}
+	
+	$(document).ready(function() {
+		
+	});
+/*]]>*/
+</script>
+
+</body>
+</html>

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

@@ -0,0 +1,566 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="web/common/layout/MypageLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : MypageOrderListFormWeb.html
+ * @desc    : 마이페이지 > 주문확인/배송조회 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.04   card007     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+	<div class="my_cont">
+		<div class="sec_head">
+			<h3 class="mem_name"><strong>홍길동</strong>님 반갑습니다.</h3>
+			<div class="mem_info clear">
+				<div class="mem_rank">
+					<div class="rank_icon vip">V</div>
+					<div class="rank_txt01">VIP</div>
+					<div class="rank_txt02">
+						<a href="">등급혜택  보기</a>
+						<a href="">등급쿠폰 다운</a>
+					</div>
+				</div>
+				<div class="mem_box">
+					<div class="mem_coupon">
+						<p class="tit">보유쿠폰&nbsp;/&nbsp;<span class="c_primary">만료예정</span></p>
+						<span class="coupon_txt01"><span class="big_txt">30</span>장</span>&nbsp;/&nbsp;<span class="coupon_txt02 c_primary">13장</span>
+					</div>
+					<div class="mem_point">
+						<p class="tit">STYLE  24 포인트</p>
+						<a href="#pop"><span class="big_txt">25,000</span>P</a>
+					</div>
+					<div class="mem_gift">
+						<p class="tit">상품권</p>
+						<a href="#pop"><span class="big_txt">25,000</span>원</a>
+					</div>
+				</div>
+			</div>
+		</div>
+		<div class="sec_body mypage_body">
+			<!-- 주문 경로 -->
+			<div class="order_info clear">
+				<ul class="clear">
+					<li class="orl01">
+						<p class="or_p">주문접수</p>
+						<p class="count"><span>5</span></p>
+					</li>
+					<li class="orl02">
+						<p class="or_p">결제완료</p>
+						<p class="count"><span>9</span></p>
+					</li>
+					<li class="orl03">
+						<p class="or_p">상품 준비 중</p>
+						<p class="count"><span>3</span></p>
+					</li>
+					<li class="orl04">
+						<p class="or_p">배송 중</p>
+						<p class="count"><span>10</span></p>
+					</li>
+					<li class="orl05">
+						<p class="or_p">배송 완료</p>
+						<p class="count"><span>12</span></p>
+					</li>
+				</ul>
+				<div class="order_right">
+					<ul>
+						<li>취소 내역<span>2</span></li>
+						<li>교환 내역<span>3</span></li>
+						<li>반품 내역<span>0</span></li>
+					</ul>
+				</div>
+			</div>
+			<!-- //주문 경로 -->
+			<h2 class="subH2 my_subtit">주문확인/배송조회</h2>
+			<!-- 주문조회 검색 -->
+			<div class="order_sch_filter clear">
+				<div class="sch_radio_tab">
+					<button type="button" class="btn btn_default">6월</button>
+					<button type="button" class="btn btn_default">7월</button>
+					<button type="button" class="btn btn_default">8월</button>
+					<button type="button" class="btn btn_default">9월</button>
+					<button type="button" class="btn btn_default">10월</button>
+					<button type="button" class="btn btn_default">11월</button>
+				</div>
+				<div class="sch_right">
+					<div class="sch_datepicker sb">
+						<input type="text" class="n_input hasDatepicker" name="dt_fr_input" value="" placeholder="20.10.05" id="">
+					</div>
+					<div class="sch_datepicker">
+						<input type="text" class="n_input hasDatepicker" name="dt_to_input" value="" placeholder="20.10.05" id="">
+					</div>
+					<button type="button" class="btn btn_dark">조회</button>
+				</div>
+			</div>
+			<!-- //주문조회 검색 -->
+			<div class="order_list">
+				<!-- 1개주문 -->
+				<div class="part_dlvr">
+					<div class="tbl_tit">
+						<span class="start_t">주문일</span>
+						<!-- 선물일 -->
+						<!-- <span class="gift_t">선물일</span> -->
+						<span class="order_date">2020.10.25</span>
+						<span class="order_method">업체직배송</span>
+						<a href="" class="detail_btn">주문상세보기</a>
+					</div>
+					<div class="tbl type2">
+						<table>
+							<colgroup>
+								<col width="660">
+								<col width="180">
+								<col width="180">
+								<col width="*">
+							</colgroup>
+							<tbody>
+							<tr>
+								<td class="t_l">
+									<div class="info_item">
+										<div class="thumb_box">
+											<a href="">
+												<img src="../ux/images/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+											</a>
+										</div>
+										<div class="info_box">
+											<p class="od_name">
+												<a href="">
+													<span class="brand">Mollimelli 몰리멜리</span>
+													<span class="name">몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트</span>
+												</a>
+											</p>
+											<p class="od_opt">
+												<span class="option">옵션:<em>01_루돌프융기모상하복_D오렌지/110</em></span>
+												<span class="count">수량:<em>99</em>개</span>
+											</p>
+										</div>
+									</div>
+								</td>
+								<td>
+									<div class="info_calc">
+										<p class="price">
+											<span class="selling_price">61,200원</span>
+										</p>
+										<p class="point"><span>49</span>p</p>
+									</div>
+								</td>
+								<td class="">
+									<div class="delivery">
+										<p class="dlvr_staus">배송 중</p>
+										<p class="dlvr_desc">10/26일 도착 예정</p>
+									</div>
+								</td>
+								<td class="">
+									<div class="tbl_btn_wrap case02">
+										<ul>
+											<li><button type="button" class="btn btn_default btn_sm"><span>교환</span></button></li>
+											<li><button type="button" class="btn btn_default btn_sm"><span>반품/취소</span></button></li>
+											<li><button type="button" class="btn btn_dark btn_sm"><span>리뷰작성</span></button></li>
+										</ul>
+									</div>
+								</td>
+							</tr>
+							</tbody>
+						</table>
+					</div>
+					<div class="order_confirm">
+						<span class="cf_txt">15일 후 자동으로 구매확정</span>
+						<button type="button" class="btn btn_primary">구매확정</button>
+						<!-- <a href="" class="case02">구매확정 하기 >> (<span>X</span>일 후 자동으로 구매확정)</a> 구매확정 대기-->
+						<!-- <a href="" class="case03">주소입력 대기 : 남은일자 <span>3</span>일 (<span>YYYY.MM.DD HH:MM:SS</span>까지)</a>  주소입력 대기-->
+					</div>
+				</div>
+				<!-- //1개주문 -->
+				<!-- n개 주문 -->
+				<div class="part_dlvr">
+					<div class="tbl_tit">
+						<span class="start_t">주문일</span>
+						<!-- 선물일 -->
+						<!-- <span class="gift_t">선물일</span> -->
+						<span class="order_date">2020.10.25</span>
+						<span class="order_method">업체직배송</span>
+						<a href="" class="detail_btn">주문상세보기</a>
+					</div>
+					<div class="tbl type2">
+						<table>
+							<colgroup>
+								<col width="660">
+								<col width="180">
+								<col width="180">
+								<col width="*">
+							</colgroup>
+							<tbody>
+							<tr>
+								<td class="t_l">
+									<div class="info_item">
+										<div class="thumb_box">
+											<a href="">
+												<img src="../ux/images/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+											</a>
+										</div>
+										<div class="info_box">
+											<p class="od_name">
+												<a href="">
+													<span class="brand">Mollimelli 몰리멜리</span>
+													<span class="name">몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트 몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트</span>
+												</a>
+											</p>
+											<p class="od_opt">
+												<span class="option">옵션:<em>01_루돌프융기모상하복_D오렌지/110</em></span>
+												<span class="count">수량:<em>99</em>개</span>
+											</p>
+											<p class="od_freebies">
+												<span class="freebies_tit">사은품</span>
+												<span class="freebies_con">DECKE 고급 에코백(블랙)</span>
+												<span class="c_primary">(- 140p)</span>
+											</p>
+										</div>
+									</div>
+								</td>
+								<td>
+									<div class="info_calc">
+										<p class="price">
+											<span class="selling_price">61,200원</span>
+										</p>
+										<p class="point"><span>49</span>p</p>
+									</div>
+								</td>
+								<td class="merge_row">
+									<div class="delivery">
+										<p class="dlvr_staus">배송 완료</p>
+										<p class="dlvr_desc">10/26일 도착</p>
+									</div>
+								</td>
+								<td class="merge_row">
+									<div class="tbl_btn_wrap case02">
+										<ul>
+											<li><button type="button" class="btn btn_default btn_sm"><span>교환</span></button></li>
+											<li><button type="button" class="btn btn_default btn_sm"><span>반품/취소</span></button></li>
+											<li><button type="button" class="btn btn_dark btn_sm"><span>리뷰작성</span></button></li>
+										</ul>
+									</div>
+								</td>
+							</tr>
+							<tr>
+								<td class="t_l">
+									<div class="info_item">
+										<div class="thumb_box">
+											<a href="">
+												<img src="../ux/images/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+											</a>
+										</div>
+										<div class="info_box">
+											<p class="od_name">
+												<a href="">
+													<span class="brand">Mollimelli 몰리멜리</span>
+													<span class="name">몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트 몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트</span>
+												</a>
+											</p>
+											<p class="od_opt">
+												<span class="option">옵션:<em>01_루돌프융기모상하복_D오렌지/110</em></span>
+												<span class="count">수량:<em>99</em>개</span>
+											</p>
+											<p class="od_freebies">
+												<span class="freebies_tit">사은품</span>
+												<span class="freebies_con">DECKE 고급 에코백(블랙)</span>
+												<span class="c_primary">(- 140p)</span>
+											</p>
+										</div>
+									</div>
+								</td>
+								<td>
+									<div class="info_calc">
+										<p class="price">
+											<span class="selling_price">61,200원</span>
+										</p>
+										<p class="point"><span>49</span>p</p>
+									</div>
+								</td>
+								<td class="merge_row">
+									<div class="delivery">
+										<p class="dlvr_staus">배송 완료</p>
+										<p class="dlvr_desc">10/26일 도착</p>
+									</div>
+								</td>
+								<td class="merge_row">
+									<div class="tbl_btn_wrap case02">
+										<ul>
+											<li><button type="button" class="btn btn_default btn_sm"><span>교환</span></button></li>
+											<li><button type="button" class="btn btn_default btn_sm"><span>반품/취소</span></button></li>
+											<li><button type="button" class="btn btn_dark btn_sm"><span>리뷰작성</span></button></li>
+										</ul>
+									</div>
+								</td>
+							</tr>
+							</tbody>
+						</table>
+					</div>
+					<div class="order_confirm">
+						<span class="cf_txt">15일 후 자동으로 구매확정</span>
+						<button type="button" class="btn btn_primary">구매확정</button>
+						<!-- <a href="" class="case02">구매확정 하기 >> (<span>X</span>일 후 자동으로 구매확정)</a> 구매확정 대기-->
+						<!-- <a href="" class="case03">주소입력 대기 : 남은일자 <span>3</span>일 (<span>YYYY.MM.DD HH:MM:SS</span>까지)</a>  주소입력 대기-->
+					</div>
+				</div>
+				<!-- //n개 주문 -->
+				<!-- 배송중 -->
+				<div class="part_dlvr">
+					<div class="tbl_tit">
+						<span class="start_t">주문일</span>
+						<!-- 선물일 -->
+						<!-- <span class="gift_t">선물일</span> -->
+						<span class="order_date">2020.10.25</span>
+						<span class="order_method">업체직배송</span>
+						<a href="" class="detail_btn">주문상세보기</a>
+					</div>
+					<div class="tbl type2">
+						<table>
+							<colgroup>
+								<col width="660">
+								<col width="180">
+								<col width="180">
+								<col width="*">
+							</colgroup>
+							<tbody>
+							<tr>
+								<td class="t_l">
+									<div class="info_item">
+										<div class="thumb_box">
+											<a href="">
+												<img src="../ux/images/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+											</a>
+										</div>
+										<div class="info_box">
+											<p class="od_name">
+												<a href="">
+													<span class="brand">Mollimelli 몰리멜리</span>
+													<span class="name">몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트</span>
+												</a>
+											</p>
+											<p class="od_opt">
+												<span class="option">옵션:<em>01_루돌프융기모상하복_D오렌지/110</em></span>
+												<span class="count">수량:<em>99</em>개</span>
+											</p>
+											<p class="od_freebies">
+												<span class="freebies_tit">사은품</span>
+												<span class="freebies_con">DECKE 고급 에코백(블랙)</span>
+												<span class="c_primary">(- 140p)</span>
+											</p>
+										</div>
+									</div>
+								</td>
+								<td>
+									<div class="info_calc">
+										<p class="price">
+											<span class="selling_price">61,200원</span>
+										</p>
+										<p class="point"><span>49</span>p</p>
+									</div>
+								</td>
+								<td class="">
+									<div class="delivery">
+										<p class="dlvr_staus">배송 중</p>
+										<p class="dlvr_desc">10/26일 도착 예정</p>
+									</div>
+								</td>
+								<td class="">
+									<div class="tbl_btn_wrap case02">
+										<ul>
+											<li><button type="button" class="btn btn_default btn_sm"><span>교환</span></button></li>
+											<li><button type="button" class="btn btn_default btn_sm"><span>반품/취소</span></button></li>
+											<li><button type="button" class="btn btn_dark btn_sm"><span>리뷰작성</span></button></li>
+										</ul>
+									</div>
+								</td>
+							</tr>
+							</tbody>
+						</table>
+					</div>
+					<div class="order_confirm">
+						<span class="cf_txt">CJ대한통운 365462211296</span>
+						<button type="button" class="btn btn_primary">배송조회</button>
+						<!-- <a href="" class="case02">구매확정 하기 >> (<span>X</span>일 후 자동으로 구매확정)</a> 구매확정 대기-->
+						<!-- <a href="" class="case03">주소입력 대기 : 남은일자 <span>3</span>일 (<span>YYYY.MM.DD HH:MM:SS</span>까지)</a>  주소입력 대기-->
+					</div>
+				</div>
+				<!-- //배송중 -->
+				<!-- 배송완료 (구매확정) -->
+				<div class="part_dlvr">
+					<div class="tbl_tit">
+						<span class="start_t">주문일</span>
+						<!-- 선물일 -->
+						<!-- <span class="gift_t">선물일</span> -->
+						<span class="order_date">2020.10.25</span>
+						<span class="order_method">업체직배송</span>
+						<a href="" class="detail_btn">주문상세보기</a>
+					</div>
+					<div class="tbl type2">
+						<table>
+							<colgroup>
+								<col width="660">
+								<col width="180">
+								<col width="180">
+								<col width="*">
+							</colgroup>
+							<tbody>
+							<tr>
+								<td class="t_l">
+									<div class="info_item">
+										<div class="thumb_box">
+											<a href="">
+												<img src="../ux/images/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+											</a>
+										</div>
+										<div class="info_box">
+											<p class="od_name">
+												<a href="">
+													<span class="brand">Mollimelli 몰리멜리</span>
+													<span class="name">몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트 몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트</span>
+												</a>
+											</p>
+											<p class="od_opt">
+												<span class="option">옵션:<em>01_루돌프융기모상하복_D오렌지/110</em></span>
+												<span class="count">수량:<em>99</em>개</span>
+											</p>
+											<p class="od_freebies">
+												<span class="freebies_tit">사은품</span>
+												<span class="freebies_con">DECKE 고급 에코백(블랙)</span>
+												<span class="c_primary">(- 140p)</span>
+											</p>
+										</div>
+									</div>
+								</td>
+								<td>
+									<div class="info_calc">
+										<p class="price">
+											<span class="selling_price">61,200원</span>
+										</p>
+										<p class="point"><span>49</span>p</p>
+									</div>
+								</td>
+								<td>
+									<div class="delivery">
+										<p class="dlvr_staus">배송 완료</p>
+										<p class="dlvr_desc">10/26일 도착</p>
+									</div>
+								</td>
+								<td>
+									<div class="tbl_btn_wrap case02">
+										<ul>
+											<li><button type="button" class="btn btn_default btn_sm"><span>교환</span></button></li>
+											<li><button type="button" class="btn btn_default btn_sm"><span>반품/취소</span></button></li>
+											<li><button type="button" class="btn btn_dark btn_sm"><span>리뷰작성</span></button></li>
+										</ul>
+									</div>
+								</td>
+							</tr>
+							</tbody>
+						</table>
+					</div>
+					<div class="order_confirm">
+						<span class="cf_txt">구매확정</span>
+						<span class="cf_date">(2020.10.05 23:24:22)</span>
+						<!-- <a href="" class="case02">구매확정 하기 >> (<span>X</span>일 후 자동으로 구매확정)</a> 구매확정 대기-->
+						<!-- <a href="" class="case03">주소입력 대기 : 남은일자 <span>3</span>일 (<span>YYYY.MM.DD HH:MM:SS</span>까지)</a>  주소입력 대기-->
+					</div>
+				</div>
+				<!-- //배송완료(구매확정) -->
+				<!-- 주소 입력 대기 -->
+				<div class="part_dlvr">
+					<div class="tbl_tit">
+						<span class="start_t">주문일</span>
+						<!-- 선물일 -->
+						<!-- <span class="gift_t">선물일</span> -->
+						<span class="order_date">2020.10.25</span>
+						<span class="order_method">업체직배송</span>
+						<a href="" class="detail_btn">주문상세보기</a>
+					</div>
+					<div class="tbl type2">
+						<table>
+							<colgroup>
+								<col width="660">
+								<col width="180">
+								<col width="180">
+								<col width="*">
+							</colgroup>
+							<tbody>
+							<tr>
+								<td class="t_l">
+									<div class="info_item">
+										<div class="thumb_box">
+											<a href="">
+												<img src="../ux/images/thumb/tmp_pdClickother1.jpg" width="100%" alt="">
+											</a>
+										</div>
+										<div class="info_box">
+											<p class="od_name">
+												<a href="">
+													<span class="brand">Mollimelli 몰리멜리</span>
+													<span class="name">몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트 몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트</span>
+												</a>
+											</p>
+											<p class="od_opt">
+												<span class="option">옵션:<em>01_루돌프융기모상하복_D오렌지/110</em></span>
+												<span class="count">수량:<em>99</em>개</span>
+											</p>
+										</div>
+									</div>
+								</td>
+								<td>
+									<div class="info_calc">
+										<p class="price">
+											<span class="selling_price">61,200원</span>
+										</p>
+										<p class="point"><span>49</span>p</p>
+									</div>
+								</td>
+								<td>
+									<div class="delivery">
+										<p class="dlvr_staus c_primary">주소 입력 대기</p>
+										<p class="dlvr_desc">남은 기간 3일</p>
+										<p class="dlvr_desc">(2020.10.05까지)</p>
+									</div>
+								</td>
+								<td>
+									<div class="tbl_btn_wrap case02">
+										<ul>
+											<li><button type="button" class="btn btn_dark btn_sm"><span>SMS 재전송</span></button></li>
+										</ul>
+									</div>
+								</td>
+							</tr>
+							</tbody>
+						</table>
+					</div>
+				</div>
+				<!-- //주소 입력 대기 -->
+			</div>
+		</div>
+	</div>
+<script src="/ux/plugins/gaga/gaga.paging.js"></script>
+<script th:inline="javascript">
+/*<![CDATA[*/
+	$(document).ready(function() {
+		// 마이페이지 LNB 설정
+		fnSetMypageLnbList(1);
+		
+		// 마이페이지 location 설정
+		fnSetMypageLocation('주문확인/배송조회');
+	});
+	
+/*]]>*/
+</script>
+
+</th:block>
+
+</body>
+</html>

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

@@ -16,6 +16,16 @@ const _PAGE_MAIN = _frontUrl + "/display/mall/main/form";	// 몰메인
 //== 주문 ==/
 
 //== 마이페이지 ==/
+const _PAGE_MYPAGE = _frontUrl + "/mypage/main/form";							// 마이페이지 > 메인
+const _PAGE_ORDER_LIST = _frontUrl + "/mypage/order/list/form";					// 마이페이지 > 주문확인/배송조회
+const _PAGE_ORDER_DETAIL = _frontUrl + "/mypage/order/detail/form?ordNo=";		// 마이페이지 > 주문/배송 상세
+const _PAGE_CRS_LIST = _frontUrl + "/mypage/crs/list/form";						// 마이페이지 > 취소/교환/반품 목록
+const _PAGE_RESTOCK = _frontUrl + "/mypage/restock/form";						// 마이페이지 > 재입고 알림 내역
+const _PAGE_REVIEW = _frontUrl + "/mypage/review/form";							// 마이페이지 > 리뷰
+const _PAGE_DELIVERY_ADDR = _frontUrl + "/mypage/delivery/addr/form";			// 마이페이지 > 배송지 관리
+const _PAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form";					// 마이페이지 > 위시리스트
+const _PAGE_CUSTOMER = _frontUrl + "/mypage/customer/form";						// 마이페이지 > 내정보 관리
+const _PAGE_SECEDE = _frontUrl + "/mypage/customer/secede/form";				// 마이페이지 > 회원탈퇴
 
 //== 검색 ==/