Bläddra i källkod

Merge branch 'develop' into eskim

eskim 5 år sedan
förälder
incheckning
b8e0c265a7
38 ändrade filer med 4256 tillägg och 4024 borttagningar
  1. 10 0
      src/main/java/com/style24/front/biz/dao/TsfOrderDao.java
  2. 10 4
      src/main/java/com/style24/front/biz/service/TsfCartService.java
  3. 2 0
      src/main/java/com/style24/front/biz/service/TsfCouponService.java
  4. 143 0
      src/main/java/com/style24/front/biz/service/TsfCustomerService.java
  5. 42 2
      src/main/java/com/style24/front/biz/service/TsfOrderService.java
  6. 1 0
      src/main/java/com/style24/front/biz/service/TsfSocialService.java
  7. 30 3
      src/main/java/com/style24/front/biz/thirdparty/Yes24Login.java
  8. 34 40
      src/main/java/com/style24/front/biz/web/TsfIndexController.java
  9. 101 80
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  10. 31 56
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  11. 52 1
      src/main/java/com/style24/front/biz/web/TsfPgController.java
  12. 47 0
      src/main/java/com/style24/front/support/config/TsfMybatisWmsConfig.java
  13. 6 0
      src/main/java/com/style24/persistence/domain/Social.java
  14. 1 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml
  15. 18 8
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml
  16. 7 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfSocial.xml
  17. 15 7
      src/main/resources/config/application-run.yml
  18. 2 2
      src/main/resources/config/application-tsit.yml
  19. 24 0
      src/main/resources/persistence/mybatis-wms-config.xml
  20. 1 1
      src/main/webapp/WEB-INF/views/mob/cart/CartListFormMob.html
  21. 4 2
      src/main/webapp/WEB-INF/views/mob/pg/kcpOrderMob.html
  22. 45 0
      src/main/webapp/WEB-INF/views/web/Yes24CallBackFormWeb.html
  23. 53 3
      src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html
  24. 1 1
      src/main/webapp/WEB-INF/views/web/common/fragments/GnbWeb.html
  25. 44 2
      src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html
  26. 0 1
      src/main/webapp/WEB-INF/views/web/common/layout/BrandLayoutWeb.html
  27. 0 1
      src/main/webapp/WEB-INF/views/web/common/layout/CallcenterLayoutWeb.html
  28. 0 1
      src/main/webapp/WEB-INF/views/web/common/layout/DefaultLayoutWeb.html
  29. 34 14
      src/main/webapp/WEB-INF/views/web/common/layout/MypageLayoutWeb.html
  30. 58 3
      src/main/webapp/WEB-INF/views/web/mypage/MypageCustModifyFormWeb.html
  31. 199 101
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListFormWeb.html
  32. 63 43
      src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListWeb.html
  33. 224 1997
      src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb.html
  34. 12 1
      src/main/webapp/WEB-INF/views/web/order/OrderDcAmtInfoWeb.html
  35. 1098 1646
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html
  36. 1842 0
      src/main/webapp/WEB-INF/views/web/order/OrderFormWeb20210317.html
  37. 2 2
      src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html
  38. 0 0
      src/main/webapp/ux/sha512.min.js

+ 10 - 0
src/main/java/com/style24/front/biz/dao/TsfOrderDao.java

@@ -36,6 +36,16 @@ public interface TsfOrderDao {
 	 */
 	Order getOrderStatCount(Order order);
 
+	/**
+	 * 마이페이지 주문목록 페이징 처리 주문번호 수 조회
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 03. 16
+	 */
+	int getPagingOrdNoListCount(Order order);
+
 	/**
 	 * 마이페이지 주문목록 페이징 처리 주문번호 조회
 	 *

+ 10 - 4
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -289,7 +289,11 @@ 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());
 		order.setJsessionId(TscSession.getSessionId());
@@ -333,11 +337,13 @@ public class TsfCartService {
 			}
 		}
 
-		// 장바구니 업체별 배송비 계산
-		setCartListDelvFeeInfo(cartGoodsList);
+		if(cartGoodsList != null && cartGoodsList.size() > 0) {
+			// 장바구니 업체별 배송비 계산
+			setCartListDelvFeeInfo(cartGoodsList);
 
-		// 자사 / 입점업체 리스트 분리
-		order = getCartDelvGoodsCntList(cartGoodsList);
+			// 자사 / 입점업체 리스트 분리
+			order = getCartDelvGoodsCntList(cartGoodsList);
+		}
 
 		// 총계 금액 계산
 		setCartListTotAmtInfo(cartGoodsList, order);

+ 2 - 0
src/main/java/com/style24/front/biz/service/TsfCouponService.java

@@ -72,6 +72,8 @@ public class TsfCouponService {
 			param.setCustNo(login.getCustNo());
 			param.setRegNo(login.getCustNo());
 			param.setUpdNo(login.getCustNo());
+		} else {
+			throw new IllegalStateException("로그인을 해야합니다.");
 		}
 
 		param.setFrontGb(TsfSession.getFrontGb());

+ 143 - 0
src/main/java/com/style24/front/biz/service/TsfCustomerService.java

@@ -3,6 +3,7 @@ package com.style24.front.biz.service;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.security.GagaPasswordEncoder;
+import com.kcp.J_PP_CLI_N;
 import com.style24.core.biz.service.TscCustomerService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.session.TscSession;
@@ -18,12 +19,18 @@ import com.style24.persistence.domain.WishList;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -56,6 +63,8 @@ public class TsfCustomerService {
 	@Autowired
 	private ObjectMapper objectMapper;
 
+	@Autowired
+	private Environment env;
 
 	/**
 	 * 고객아이디 찾기
@@ -776,4 +785,138 @@ public class TsfCustomerService {
 
 		return result;
 	}
+
+	/**
+	 * KCP 계좌인증 처리
+	 *
+	 * @param request
+	 * @result GagaMap
+	 * @author jsshin
+	 * @since 2021. 03. 17
+	 */
+	public GagaMap checkAccount(HttpServletRequest request) {
+		try {
+			request.setCharacterEncoding("euc-kr");
+		} catch (Exception e) {
+			e.getMessage();
+		}
+		GagaMap resultMap = new GagaMap();
+		J_PP_CLI_N c_PayPlus = new J_PP_CLI_N();
+		// c_PayPlus.mf_init( "", env.getProperty("pg.kcp.gw.url"), env.getProperty("pg.kcp.gw.port"), 0, env.getProperty("pg.kcp.log.dir") );
+		c_PayPlus.mf_init( "", "paygw.kcp.co.kr", "8090", 0, env.getProperty("pg.kcp.log.dir") );
+		c_PayPlus.mf_init_set();
+//		String siteCd = env.getProperty("pg.kcp.site.cd");
+//		String siteKey = env.getProperty("pg.kcp.site.key");
+		String kcpSiteCd = "U3476";
+		String kcpsiteKey = "4aVa--.Xz8Fc78nwYPsrmmY__";
+
+		String custIp = request.getRemoteAddr();
+		String tranCd = "00100000";
+		String ordNo = "0";
+		String bankCode = "04";//map.getString("bankList");   //"04";
+		String accountNo = "27560104388848";//map.getString("accountNumber"); //"27560104388848";
+
+
+		int payx_data_set;
+		int common_data_set;
+
+		payx_data_set = c_PayPlus.mf_add_set("payx_data");
+		common_data_set = c_PayPlus.mf_add_set("common");
+
+		c_PayPlus.mf_set_us(common_data_set, "amount", "0");
+		c_PayPlus.mf_set_us(common_data_set, "cust_ip", custIp);
+		c_PayPlus.mf_set_us(common_data_set, "escw_mod", "N");
+
+		c_PayPlus.mf_add_rs(payx_data_set, common_data_set);
+
+		// 주문 정보
+		int ordr_data_set = c_PayPlus.mf_add_set("ordr_data");
+
+		c_PayPlus.mf_set_us(ordr_data_set, "ordr_idxx", ordNo);
+
+		// 계좌 정보
+		int acnt_data_set = c_PayPlus.mf_add_set("bank");
+		log.info("accountHolder {}" , request.getParameter("accountHolder"));
+		c_PayPlus.mf_set_us(acnt_data_set, "bk_owner_nm", request.getParameter("accountHolder"));				// 예금주명
+		c_PayPlus.mf_set_us(acnt_data_set, "bk_txtype", "74200000");	    // 지불 타입 (계좌 인증)
+		c_PayPlus.mf_set_us(acnt_data_set, "bk_code", bankCode);					// 은행 코드
+		c_PayPlus.mf_set_us(acnt_data_set, "bk_account_no", accountNo);			// 발급 계좌
+		c_PayPlus.mf_add_rs(payx_data_set, acnt_data_set);
+
+		c_PayPlus.mf_do_tx(kcpSiteCd, kcpsiteKey, tranCd, custIp, ordNo, "3", "0" );
+
+		log.info("recCd =====> {}", c_PayPlus.m_res_cd);
+		log.info("resMsg =====> {}", c_PayPlus.m_res_msg);
+		try {
+			log.info("resMsg 1. kr =====> {}", euckrToUtf8(c_PayPlus.m_res_msg));
+			log.info("resMsg 2. kr =====> {}", euckrToUtf82(c_PayPlus.m_res_msg));
+			log.info("resMsg 3. kr =====> {}", utf83(c_PayPlus.m_res_msg));
+			log.info("resMsg 4. kr =====> {}", new String(c_PayPlus.m_res_msg.getBytes("utf-8"), "utf-8"));
+
+		} catch (Exception e) {
+			log.error(e.getMessage());
+		}
+
+		log.info("res_en_msg =====> {}", c_PayPlus.getRecvMsgOfKey("res_en_msg"));
+		resultMap.set("ResMsg", c_PayPlus.getRecvMsgOfKey("res_en_msg"));				// 결과 메시지
+
+		if ("0000".equals(c_PayPlus.m_res_cd)) {
+			resultMap.setBoolean("isPossible", true);
+			log.info("tno ====> {}", c_PayPlus.mf_get_res("tno"));				// KCP 거래 고유 번호
+			log.info("app_time ====> {}", c_PayPlus.mf_get_res("app_time"));
+		} else {
+			resultMap.setBoolean("isPossible", false);
+		}
+
+		return resultMap;
+	}
+
+	private String euckrToUtf8(String euc_kr_str) throws UnsupportedEncodingException {
+		//euc_kr_str - euc-kr 문자열
+
+		CharBuffer cbuffer = CharBuffer.wrap((new String(euc_kr_str.getBytes(Charset.forName("EUC-KR")), "EUC-KR")).toCharArray());
+
+		Charset utf8charset = StandardCharsets.UTF_8;
+
+		ByteBuffer bbuffer = utf8charset.encode(cbuffer);
+
+
+
+		//변환된 UTF-8 문자열
+
+		return  new String(bbuffer.array());
+	}
+
+	private String utf8ToEuckr(String euc_kr_str) throws UnsupportedEncodingException {
+		//euc_kr_str - euc-kr 문자열
+
+		CharBuffer cbuffer = CharBuffer.wrap((new String(euc_kr_str.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8)).toCharArray());
+
+		Charset utf8charset = Charset.forName("EUC-KR");
+
+		ByteBuffer bbuffer = utf8charset.encode(cbuffer);
+
+
+
+		//변환된 UTF-8 문자열
+
+		return  new String(bbuffer.array());
+	}
+
+	private String utf8ToEuckr2(String value) throws UnsupportedEncodingException {
+		byte[] eucKr = value.getBytes("EUC-KR");
+		return eucKr.toString();
+	}
+
+	private String euckrToUtf82(String value) throws UnsupportedEncodingException {
+		byte[] utf8 = value.getBytes("UTF-8");
+		return utf8.toString();
+	}
+
+	private String utf83(String value) throws UnsupportedEncodingException {
+		CharBuffer cbuffer = CharBuffer.wrap((new String(value.getBytes("EUC-KR"), "EUC-KR")).toCharArray());
+		Charset utf8charset = Charset.forName("UTF-8");
+		ByteBuffer bbuffer = utf8charset.encode(cbuffer);
+		return new String(bbuffer.array());
+	}
 }

+ 42 - 2
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -18,6 +18,7 @@ import com.style24.core.biz.service.TscKakaoPayService;
 import com.style24.core.biz.service.TscKcpService;
 import com.style24.core.biz.service.TscNaverPayService;
 import com.style24.core.support.env.TscConstants;
+import com.style24.core.support.session.TscSession;
 import com.style24.front.biz.dao.TsfOrderDao;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Coupon;
@@ -75,6 +76,7 @@ public class TsfOrderService {
 				orderList.add(setOrderMap(ordDtlList));
 
 				ordDtlList = new ArrayList<>();
+				ordDtlList.add(tmpOrder);
 			} else {
 				ordDtlList.add(tmpOrder);
 			}
@@ -255,6 +257,11 @@ public class TsfOrderService {
 	public Payment orderPgPayResult(Payment param, HttpServletRequest request, HttpServletResponse response) {
 		Payment result = new Payment();
 
+		if(TscConstants.FrontGb.MOB.value().equals(TsfSession.getFrontGb()) && StringUtils.isEmpty(param.getPgGb())) {
+			param.setPgGb(TscConstants.PgGb.KCP.value());
+			param.setPayMeans(TscConstants.PayMeans.CREDIT_CARD.value());
+		}
+
 		try {
 			if(StringUtils.isEmpty(param.getPgGb())) {
 				throw new IllegalArgumentException("결제수단을 선택해주세요.");
@@ -270,13 +277,17 @@ public class TsfOrderService {
 				throw new IllegalArgumentException("결제 수단이 잘못 입력되었습니다. 새로고침 후 다시 시도해주세요.");
 			}
 
+			// 결제 수단이 없는 경우(KAKAO, NAVER) CARD로 세팅
+			if(StringUtils.isEmpty(param.getPayMeans())) {
+				result.setPayMeans(TscConstants.PayMeans.CREDIT_CARD.value());
+			}
+
 			result.setPaySq(param.getPaySq());
 			result.setUpdNo(param.getCustNo());
 			result.setRegNo(param.getCustNo());
 			result.setPayGb("O");
 
 			if(coreOrderDao.insertPayment(result) < 1) {
-				// TODO 전체 취소 로직 추가
 				if(TscConstants.PgGb.KCP.value().equals(param.getPgGb()) || TscConstants.PgGb.PAYCO.value().equals(param.getPgGb())) {
 					coreKcpService.kcpPayRollBack(result, request);
 				} else if (TscConstants.PgGb.KAKAO.value().equals(param.getPgGb())) {
@@ -287,6 +298,8 @@ public class TsfOrderService {
 					throw new IllegalArgumentException("결제 정보 저장 실패. 새로고침 후 다시 시작해주세요.");
 				}
 			}
+
+			coreKcpService.kcpPayRollBack(result, request);
 		} catch(Exception e) {
 			e.printStackTrace();
 			throw new IllegalArgumentException(e.getMessage());
@@ -310,6 +323,16 @@ public class TsfOrderService {
 	 */
 	public Order getOrderStatCount(Order order) { return orderDao.getOrderStatCount(order); }
 
+	/**
+	 * 마이페이지 주문목록 페이징 처리 주문번호 수 조회
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 03. 16
+	 */
+	public int getPagingOrdNoListCount(Order order) { return orderDao.getPagingOrdNoListCount(order); }
+
 	/**
 	 * 마이페이지 주문목록 페이징 처리 주문번호 조회
 	 *
@@ -509,7 +532,24 @@ public class TsfOrderService {
 		
 	}
 	
-	
+	// public ModelAndView getOrderList(Order order) {
+	// 	ModelAndView mav = new ModelAndView();
+	// 	// 페이징 처리 및 주문정보 조회
+	// 	List<Integer> ordNoList = new ArrayList<>();
+	//
+	// 	for (Order tmpOrder : this.getPagingOrdNoList(order)) {
+	// 		ordNoList.add(tmpOrder.getOrdNo());
+	// 	}
+	//
+	// 	if (ordNoList.size() > 0) {
+	// 		order.setOrdNoList(ordNoList.stream().mapToInt(Integer::intValue).toArray());
+	// 	}
+	//
+	// 	mav.addObject("orderList", this.getOrderListForMypage(order));
+	// 	mav.addObject("orderInfo", order);
+	//
+	// 	mav.setViewName(super.getDeviceViewName("mypage/MypageOrderList"));
+	// }
 	
 	
 	

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

@@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.style24.front.biz.dao.TsfSocialDao;
+import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Social;
 
 import lombok.extern.slf4j.Slf4j;

+ 30 - 3
src/main/java/com/style24/front/biz/thirdparty/Yes24Login.java

@@ -2,6 +2,7 @@ package com.style24.front.biz.thirdparty;
 
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.util.GagaFileUtil;
+import com.style24.core.support.util.CryptoUtils;
 import com.style24.front.support.security.session.TsfSession;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,7 +30,7 @@ public class Yes24Login {
 	public static final String PROTOCOL = "http://";
 
 	/**
-	 * YES24 로그인 
+	 * YES24 로그인 화면
 	 * @param state - 콜백 시 해당 값으로 비교 및 모바일을 redirect 값이 있음
 	 * @return String - 호출 url정보
 	 * @author jsshin
@@ -38,19 +39,45 @@ public class Yes24Login {
 	public String getAuthorizeUrl(String state) {
 		String authorizeUrl = "https://www.yes24.com/Templates/FTLoginPartner.aspx";
 		String callBackUrl = "/signin/yes24LoginCallback";
+		String id = TsfSession.getFrontGb().equals("P") ? "PID" : "MID";
 		StringBuilder apiUrlBuilder = new StringBuilder();
 		String redirectUri = GagaFileUtil.getConcatenationPath(PROTOCOL + TsfSession.getHttpServletRequest().getServerName(), callBackUrl);
 		apiUrlBuilder.append(authorizeUrl)
-				.append("?PID=101582")
+				.append("?"+id+"=101582")
 				.append("&ReturnURL=")
 				.append(redirectUri);
 		log.info("apiUrlBuilder ===> {}", apiUrlBuilder.toString());
 		return apiUrlBuilder.toString();
 	}
 
-	public GagaMap getAccessInfo(String ci) {
+	/**
+	 * YES24 정보
+	 * @param inpin - yes24 전달 해준 암호화된 : "요청날짜|CI"
+	 * @return String - 호출 url정보
+	 * @author jsshin
+	 * @since 2021. 03. 03
+	 */
+	public GagaMap getAccessInfo(String inpin) {
 		GagaMap result = new GagaMap();
+		//1. ipin 복호화
+		String decryptIpin = CryptoUtils.decryptAES(inpin);
+		log.info("decryptIpin {}", decryptIpin);
+
+		//2. ipin 값에서 ci 값 분리
+		String decryptIpinValues[] = decryptIpin.split("|");
+		log.info("decryptIpinValues.length {}", decryptIpinValues.length);
+		log.info("decryptIpinValues0 {}", decryptIpinValues[0]);
+		log.info("decryptIpinValues1 {}", decryptIpinValues[1]);
+
+		//3. ci값 추출 후 통신
+		String encryptCi = CryptoUtils.encryptAES(decryptIpinValues[0]);
+
+
 
 		return result;
 	}
+
+
+
+
 }

+ 34 - 40
src/main/java/com/style24/front/biz/web/TsfIndexController.java

@@ -1,24 +1,18 @@
 package com.style24.front.biz.web;
 
-import java.io.IOException;
-import java.math.BigInteger;
-import java.security.SecureRandom;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.gagaframework.web.parameter.GagaMap;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
+import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.style24.core.support.env.TscConstants;
+import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCustomerService;
 import com.style24.front.biz.thirdparty.KaKaoLogin;
 import com.style24.front.biz.thirdparty.NaverLogin;
 import com.style24.front.biz.thirdparty.Yes24Login;
+import com.style24.front.support.controller.TsfBaseController;
+import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.CustSnsInfo;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -29,13 +23,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.servlet.ModelAndView;
 
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.support.controller.TsfBaseController;
-import com.style24.front.support.security.session.TsfSession;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.rest.server.GagaResponseStatus;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.math.BigInteger;
+import java.security.SecureRandom;
 
 /**
  * Index Controller
@@ -334,34 +328,34 @@ public class TsfIndexController extends TsfBaseController {
 		GagaMap userInfo = new GagaMap();
 
 		if (StringUtils.isNotBlank(ipin)) {
-			log.info(ipin);
+
 		}
 
 
 		GagaMap resultMap = new GagaMap();
 
 		// SNS 로그인 성공시 정보 세션 저장
-		if (isSnsLoing) {
-			CustSnsInfo custSnsInfo = objectMapper.convertValue(userInfo, CustSnsInfo.class);
-			log.info("custSnsInfo ==> {}", custSnsInfo.toString());
-
-			//SNS 로그인 처리
-			resultMap = customerService.customerSnsProcessing(custSnsInfo);
-			resultMap.setString("snsId", custSnsInfo.getSnsId());
-			resultMap.setString("snsType", custSnsInfo.getSnsType());
-
-			String custStat = resultMap.getString("custStat");
-
-			// 신규가입 이면 바로 로그인 처리
-			if ("NEW_CUST".equals(custStat)) {
-				customerService.getLogin(Integer.parseInt(resultMap.getString("custNo")), request);
-			}
-
-			// 가입 폼으로 이동
-			if ("EMPTY_PHONE_CUST".equals(custStat)) {
-				session.setAttribute("custSnsInfo", custSnsInfo);
-			}
-		}
+//		if (isSnsLoing) {
+//			CustSnsInfo custSnsInfo = objectMapper.convertValue(userInfo, CustSnsInfo.class);
+//			log.info("custSnsInfo ==> {}", custSnsInfo.toString());
+//
+//			//SNS 로그인 처리
+//			resultMap = customerService.customerSnsProcessing(custSnsInfo);
+//			resultMap.setString("snsId", custSnsInfo.getSnsId());
+//			resultMap.setString("snsType", custSnsInfo.getSnsType());
+//
+//			String custStat = resultMap.getString("custStat");
+//
+//			// 신규가입 이면 바로 로그인 처리
+//			if ("NEW_CUST".equals(custStat)) {
+//				customerService.getLogin(Integer.parseInt(resultMap.getString("custNo")), request);
+//			}
+//
+//			// 가입 폼으로 이동
+//			if ("EMPTY_PHONE_CUST".equals(custStat)) {
+//				session.setAttribute("custSnsInfo", custSnsInfo);
+//			}
+//		}
 		mav.addObject("resultMap", resultMap);
 		mav.setViewName(super.getDeviceViewName("SnsCallBackForm"));
 

+ 101 - 80
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -1,8 +1,24 @@
 package com.style24.front.biz.web;
 
-import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.rest.server.GagaResponse;
-import com.gagaframework.web.rest.server.GagaResponseStatus;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+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.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
 import com.style24.core.biz.service.TscCouponService;
 import com.style24.core.biz.service.TscCustomerService;
 import com.style24.core.biz.service.TscKakaoPayService;
@@ -30,22 +46,12 @@ import com.style24.persistence.domain.GiftCard;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.Point;
 import com.style24.persistence.domain.WishList;
+
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-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.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.servlet.ModelAndView;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
+import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.rest.server.GagaResponse;
+import com.gagaframework.web.rest.server.GagaResponseStatus;
 
 /**
  * 마이페이지 Controller
@@ -72,7 +78,7 @@ public class TsfMypageController extends TsfBaseController {
 
 	@Autowired
 	private TscOrderService coreOrderService;
-	
+
 	@Autowired
 	private TsfOrderChangeService orderChangeService;
 
@@ -99,13 +105,13 @@ public class TsfMypageController extends TsfBaseController {
 
 	@Autowired
 	private TsfRendererService rendererService;
-	
+
 	@Autowired
 	private TscKakaoPayService kakaoPayService;
 
 	@Autowired
 	private NiceCertify niceCertify;
-	
+
 	@Autowired
 	private TscCouponService coreCouponService;
 
@@ -123,7 +129,7 @@ public class TsfMypageController extends TsfBaseController {
 		if (order == null) {
 			order = new Order();
 		}
-		
+
 		// 고객번호 설정
 		int custNo = TsfSession.getInfo().getCustNo();
 		order.setCustNo(custNo);
@@ -137,7 +143,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 쿠폰정보 조회
 		mav.addObject("couponCnt", coreOrderService.getCouponInfo(order));
-		
+
 		order.setExpiredSoon("Y");
 		mav.addObject("expiredSoonCouponCnt", coreOrderService.getCouponInfo(order));
 
@@ -151,7 +157,7 @@ public class TsfMypageController extends TsfBaseController {
 		mav.addObject("orderCount", orderService.getOrderStatCount(order));
 
 		// 주문상세상태코드 설정
-		mav.addObject("ordDtlStatList", rendererService.getCommonCodeList("G059", "Y", new String[] {"G013_25", "G013_35", "G013_55", "G013_97", "G013_98", "G013_99"}));
+		mav.addObject("ordDtlStatList", rendererService.getCommonCodeList("G013", "Y", new String[] {"G013_25", "G013_35", "G013_55", "G013_97", "G013_98", "G013_99"}));
 
 		mav.setViewName(super.getDeviceViewName("mypage/MypageOrderListForm"));
 
@@ -185,11 +191,10 @@ public class TsfMypageController extends TsfBaseController {
 		// 주문번호 설정
 		mav.addObject("ordNo", ordNo);
 
-		
 		Order order = new Order();
 		order.setCustNo(custNo);
 		order.setOrdNo(ordNo);
-		
+
 		// 주문목록 조회
 		Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
 
@@ -208,7 +213,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 주문 결제정보 조회
 		mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
-		
+
 		// 주문 배송지 정보 조회
 		mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
 
@@ -227,11 +232,18 @@ public class TsfMypageController extends TsfBaseController {
 	 */
 	@PostMapping("/order/list")
 	@ResponseBody
-	public ModelAndView getOrderList(@RequestBody Order order) {
+	public GagaMap getOrderList(@RequestBody Order order) {
+		GagaMap map = new GagaMap();
 		ModelAndView mav = new ModelAndView();
 
 		// 페이징 처리 설정
-		order.setPageable(new TscPageRequest(order.getPageNo() - 1, 5));
+		// order.setPageable(new TscPageRequest(order.getPageNo() - 1, 5));
+		TscPageRequest pageable = new TscPageRequest((order.getPageNo() > 0 ? order.getPageNo() - 1 : 0), order.getPageSize(), order.getPageUnit());
+		pageable.setTotalCount(orderService.getPagingOrdNoListCount(order));
+		order.setPageable(pageable);
+		log.info("pageable: {}", pageable);
+		log.info("totalCount {}", pageable.getTotalCount());
+		log.info("order >>> {}", order);
 
 		// 페이징 처리 및 주문정보 조회
 		List<Integer> ordNoList = new ArrayList<>();
@@ -246,10 +258,12 @@ public class TsfMypageController extends TsfBaseController {
 
 		mav.addObject("orderList", orderService.getOrderListForMypage(order));
 		mav.addObject("orderInfo", order);
-		
+
 		mav.setViewName(super.getDeviceViewName("mypage/MypageOrderList"));
-		
-		return mav;
+
+		map.set("mav", mav);
+		map.set("pageable", order.getPageable());
+		return map;
 	}
 
 	/**
@@ -267,7 +281,7 @@ public class TsfMypageController extends TsfBaseController {
 		// 고객번호 설정
 		int custNo = TsfSession.getInfo().getCustNo();
 		order.setUpdNo(custNo);
-		
+
 		// 주문내역 삭제 처리
 		int chk = orderService.updateOrderDisplayYn(order);
 
@@ -305,10 +319,10 @@ public class TsfMypageController extends TsfBaseController {
 		order.setCustNo(custNo);
 		order.setRegNo(custNo);
 		order.setUpdNo(custNo);
-		
+
 		// 구매확정 처리
 		result = coreOrderService.decideOrder(order);
-		
+
 		return result;
 	}
 
@@ -324,7 +338,7 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public ModelAndView exchangeForm(Order order) {
 		ModelAndView mav = new ModelAndView();
-		
+
 		// 주문번호 설정
 		mav.addObject("ordNo", order.getOrdNo());
 
@@ -342,7 +356,6 @@ public class TsfMypageController extends TsfBaseController {
 
 		mav.addObject("customerInfo", customer);
 
-
 		// 주문목록 조회
 		Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
 
@@ -355,12 +368,12 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 주문 배송지 정보 조회
 		mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
-		
+
 		// 교환 사유 목록 조회
 		mav.addObject("exchangeReason", rendererService.getCommonCodeList("G689", "Y"));
-		
+
 		mav.setViewName(super.getDeviceViewName("/mypage/MypageExchangeForm"));
-		
+
 		return mav;
 	}
 
@@ -389,9 +402,9 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 등급쿠폰 다운 처리
 		int count = couponService.createCustGradeAllCoupon(coupon);
-		
+
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
-		
+
 		if (count == 0) {
 			result.set("message", message.getMessage("COUPON_0002"));
 		} else {
@@ -474,7 +487,6 @@ public class TsfMypageController extends TsfBaseController {
 
 		mav.addObject("customerInfo", customer);
 
-
 		// 반품 가능 리스트 조회
 		mav.addObject("returnList", orderChangeService.getCancelListForMypage(order));
 
@@ -497,7 +509,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 STYLE24 포인트화면
 	 *
@@ -516,28 +528,27 @@ public class TsfMypageController extends TsfBaseController {
 		map.setString("bankNm", "김지철");
 		map.setString("accountNo", "110500288201");
 		map.setString("bankCd", "88");
-		coreOrderService.checkAccount(map);
 		// 테스트용 (삭제예정)
-		
+
 		int custNo = TsfSession.getInfo().getCustNo();
 		point.setCustNo(custNo);
 		// 잔여포인트
-		mav.addObject("pointInfo", pointService.getUsablePointInfo(point));		
+		mav.addObject("pointInfo", pointService.getUsablePointInfo(point));
 		// 적립예정포인트 expectedPntAmt
 		mav.addObject("expectedpointInfo", pointService.getExpectedPointInfo(point));
 		// 한달 이내 소멸 예정 포인트
 		mav.addObject("extinctpointInfo", pointService.getExtinctPointInfo(point));
 		// 전체내역 조회
-		mav.addObject("allPointList",pointService.getAllPointList(point));
+		mav.addObject("allPointList", pointService.getAllPointList(point));
 		// 적립내역 조회
-		mav.addObject("accumulatePointList",pointService.getAccumulatePointList(point));
+		mav.addObject("accumulatePointList", pointService.getAccumulatePointList(point));
 		// 사용내역 조회
-		mav.addObject("usePointList",pointService.getUsePointList(point));
-		
+		mav.addObject("usePointList", pointService.getUsePointList(point));
+
 		mav.setViewName(super.getDeviceViewName("mypage/MypagePointForm"));
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 STYLE24 포인트 전체,적립,사용내역
 	 *
@@ -550,17 +561,17 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public GagaMap getAllPointList(@RequestBody Point point) {
 		GagaMap result = new GagaMap();
-		
+
 		int custNo = TsfSession.getInfo().getCustNo();
 		point.setCustNo(custNo);
-		
+
 		// 전체내역 조회
-		result.set("allPointList",pointService.getAllPointList(point));
+		result.set("allPointList", pointService.getAllPointList(point));
 		// 적립내역 조회
-		result.set("accumulatePointList",pointService.getAccumulatePointList(point));
+		result.set("accumulatePointList", pointService.getAccumulatePointList(point));
 		// 사용내역 조회
-		result.set("usePointList",pointService.getUsePointList(point));
-		
+		result.set("usePointList", pointService.getUsePointList(point));
+
 		return result;
 	}
 
@@ -616,8 +627,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		return result;
 	}
-	
-	
+
 	/* 김소원 상품권 쿠폰 시작 */
 	/**
 	 * 마이페이지 상품권화면
@@ -635,7 +645,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 상품권 사용 리스트
 	 *
@@ -647,10 +657,10 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public GagaMap getGiftcardUseList(@RequestBody GiftCard giftcard) {
 		GagaMap result = new GagaMap();
-		result.set("giftcardUseList",giftcardService.getGiftcardUseList(giftcard));
+		result.set("giftcardUseList", giftcardService.getGiftcardUseList(giftcard));
 		return result;
 	}
-	
+
 	/**
 	 * 마이페이지 상품권 보유 리스트
 	 *
@@ -662,7 +672,7 @@ public class TsfMypageController extends TsfBaseController {
 	@ResponseBody
 	public GagaMap getGiftcardOwnList(@RequestBody GiftCard giftcard) {
 		GagaMap result = new GagaMap();
-		result.set("giftcardOwnList",giftcardService.getGiftcardOwnList(giftcard));
+		result.set("giftcardOwnList", giftcardService.getGiftcardOwnList(giftcard));
 		return result;
 	}
 
@@ -680,7 +690,7 @@ public class TsfMypageController extends TsfBaseController {
 		giftcardService.getGiftcardUseConfirm(giftcard);
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
-	
+
 	/**
 	 * 마이페이지 쿠폰화면
 	 *
@@ -691,13 +701,13 @@ public class TsfMypageController extends TsfBaseController {
 	@GetMapping("/coupon/form")
 	public ModelAndView mypageCouponForm(Coupon coupon) {
 		ModelAndView mav = new ModelAndView();
-		mav.addObject("couponList",couponService.getMypageCouponList(coupon));
-		mav.addObject("couponInfo",couponService.getMypageCouponInfo(coupon));
+		mav.addObject("couponList", couponService.getMypageCouponList(coupon));
+		mav.addObject("couponInfo", couponService.getMypageCouponInfo(coupon));
 		mav.setViewName(super.getDeviceViewName("mypage/MypageCouponForm"));
-		
+
 		return mav;
 	}
-	
+
 	/**
 	 * 마이페이지 쿠폰 상세보기 팝업
 	 *
@@ -705,10 +715,10 @@ public class TsfMypageController extends TsfBaseController {
 	 * @author sowon	
 	 * @since 2021. 03. 17
 	 */
-	@GetMapping(value="/coupon/detailPop")
+	@GetMapping(value = "/coupon/detailPop")
 	public ModelAndView mypageCouponDetailPop(@RequestParam(value = "cpnId") int cpnId) {
 		ModelAndView mav = new ModelAndView();
-		
+
 		// 쿠폰 - 기본정보
 		mav.addObject("couponDetailInfo", couponService.getCouponDetailInfo(cpnId));
 		// 쿠폰적용대상 - 공급업체 조회
@@ -725,9 +735,6 @@ public class TsfMypageController extends TsfBaseController {
 		return mav;
 	}
 
-
-
-
 	/*신주승 시작*/
 
 	/**
@@ -761,7 +768,6 @@ public class TsfMypageController extends TsfBaseController {
 		return result;
 	}
 
-
 	/**
 	 * 마이페이지 - 회원정보수정 화면
 	 *
@@ -771,16 +777,16 @@ public class TsfMypageController extends TsfBaseController {
 	 * @since 2021. 03. 15
 	 */
 	@GetMapping("/customer/modify/form")
-	public ModelAndView getCustomerModifyForm(@RequestParam(required = false)String confirmYn) {
+	public ModelAndView getCustomerModifyForm(@RequestParam(required = false) String confirmYn) {
 		ModelAndView mav = new ModelAndView();
-		String referer = StringUtils.defaultIfBlank(TsfSession.getHttpServletRequest().getHeader("referer"),"");
+		String referer = StringUtils.defaultIfBlank(TsfSession.getHttpServletRequest().getHeader("referer"), "");
 		boolean redirect = false;
 
-		if(StringUtils.isBlank(referer)) {
+		if (StringUtils.isBlank(referer)) {
 			redirect = true;
-		} else if(!referer.contains("/mypage/customer/confirm/form")) {
+		} else if (!referer.contains("/mypage/customer/confirm/form")) {
 			redirect = true;
-		} else if(!"Y".equals(confirmYn)) {
+		} else if (!"Y".equals(confirmYn)) {
 			redirect = true;
 		}
 
@@ -789,7 +795,7 @@ public class TsfMypageController extends TsfBaseController {
 			return mav;
 		}
 
-		mav.addObject("bankList", rendererService.getCommonCodeList("G050", "Y"));
+		mav.addObject("bankList", rendererService.getCommonCodeList("G940", "Y"));
 		mav.addObject("genderGbList", rendererService.getCommonCodeList("G007", "Y"));
 
 		mav.setViewName(super.getDeviceViewName("/mypage/MypageCustModifyForm"));
@@ -829,5 +835,20 @@ public class TsfMypageController extends TsfBaseController {
 		customer.setBirthYmd(authInfo.getString("sBirthDate"));
 		return customerService.updateCustomerAuth(customer);
 	}
+
+	/**
+	 * 마이페이지 - 계좌인증
+	 *
+	 * @return GagaMap - 결과
+	 * @author jsshin
+	 * @since 2021. 03. 16
+	 */
+	@RequestMapping("/account/check")
+	@ResponseBody
+	public GagaMap getAccountCheck(HttpServletRequest request, HttpServletResponse response) throws Exception {
+		log.info("request2 accountHolder {}", request.getParameter("accountHolder"));
+		GagaMap result = customerService.checkAccount(request);
+		return result;
+	}
 	/*신주승 끝*/
 }

+ 31 - 56
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -19,8 +19,6 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import com.gagaframework.web.parameter.GagaMap;
 import com.style24.core.biz.service.TscFreegiftService;
-import com.style24.core.biz.service.TscKakaoPayService;
-import com.style24.core.biz.service.TscNaverPayService;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCartService;
@@ -326,7 +324,7 @@ public class TsfOrderController extends TsfBaseController {
 		
 		// 2. 로그인체크 후 정보 설정
 		if (TsfSession.isLogin()) {
-			// 4. 사은품 정보 (장바구니상품 사음품 적용 정보 조회)
+			// 3. 사은품 정보 (장바구니상품 사음품 적용 정보 조회)
 			resultMap = coreFreegiftService.getOrderFreegift(order);
 		} 
 		
@@ -432,7 +430,7 @@ public class TsfOrderController extends TsfBaseController {
 	}
 	
 	/**
-	 * 할인정보조회
+	 * 결제정보조회
 	 *
 	 * @param
 	 * @return
@@ -463,7 +461,7 @@ public class TsfOrderController extends TsfBaseController {
 	}
 
 	/**
-	 * 주문 데이터 생성
+	 * 주문 데이터 생성 (주문접수)
 	 *
 	 * @param
 	 * @return
@@ -510,7 +508,6 @@ public class TsfOrderController extends TsfBaseController {
 			log.info("order.getFreegiftGoodsArr()  ::: {}", order.getFreegiftGoodsArr()[i]);
 		}
 
-		// TODO PG 데이터 세팅 처리 (order)
 		// 필수 데이터
 		// pgGb = 결제타입, payMeans = 결제수단, ordNo = 주문번호, goodsNm = 상품명, payAmt = 실결제금액, ordNm = 주문자명, ordPhnno = 휴대폰번호, custNo = 고객번호
 		// 선택 데이터
@@ -571,64 +568,25 @@ public class TsfOrderController extends TsfBaseController {
 		
 		// TODO 3. 주문정보 업데이트
 		coreOrderService.updateOrderInfo(order);
-
-		mav.addObject("payment", param);
-
-		mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
+		
+		// 2021.03.16 주문완료화면이동처리
+		//mav.addObject("payment", param);
+		//mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
+		
+		mav.setViewName("redirect:/order/complete?ordNo=" + order.getOrdNo());
 		return mav;
 	}
 
-	/**
-	 * PG 결과 처리 메서드
-	 *
-	 * @param
-	 * @return
-	 * @author xodud1202
-	 * @since 2021. 03. 05
-	 */
-	@RequestMapping(value = "/pay/result/test")
-	public ModelAndView payResultTest(Payment param, HttpServletRequest request, HttpServletResponse response) {
-
-		ModelAndView mav = new ModelAndView();
-
-		// 1. 로그인체크 후 custNo 설정
-		if (TsfSession.isLogin()) {
-			param.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
-		} else {
-			param.setCustNo(0);
-		}
-
-		param.setUpdNo(param.getCustNo());
-
-		// 7. 결재정보등록(TB_PAYMENT)
-		param = orderService.orderPgPayResult(param, request, response);
-
-		log.info("param.getOrdNo() ::: {}", param.getOrdNo());
-
-		// TODO 주문정보 업데이트
-		// 1. 주문상태업데이트
-		// 2. 재고처리
-		// 3. 포인트사용처리
-		// 4. 예정포인트적립처리
-		// 5. 쿠폰사용처리
-		// 6. 상품권사용처리
-
-		mav.addObject("payment", param);
-
-		mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
-		return mav;
-	}
-	
 	/**
 	 * 주문완료페이지
 	 *
 	 * @param
 	 * @return
-	 * @author xodud1202
-	 * @since 2021. 03. 05
+	 * @author jsh77b
+	 * @since 2021. 03. 16
 	 */
 	@ResponseBody
-	@RequestMapping(value = "/order/complete")
+	@RequestMapping(value = "/complete")
 	public ModelAndView orderComplete(Order order) {
 		
 		ModelAndView mav = new ModelAndView();
@@ -640,10 +598,27 @@ public class TsfOrderController extends TsfBaseController {
 			order.setCustNo(0);
 		}
 		
-		log.info("order.getOrdNo() ::: {}", order.getOrdNo());
+		// 2. 결제완료정보조회
+		GagaMap resultMap = coreOrderService.getOrderCompleteInfo(order);
+		
+		// 3. 화면전송변수설정
+		mav.addObject("orderInfo"			, resultMap.get("orderInfo"));			// 주문기본정보
+		mav.addObject("ordSumAmt"			, resultMap.get("ordSumAmt"));			// 주문금액합계
+		mav.addObject("dcSumAmt"			, resultMap.get("dcSumAmt"));			// 할인금액합계
+		mav.addObject("realOrdSumAmt"		, resultMap.get("realOrdSumAmt"));		// 결제금액합계
+		mav.addObject("goodsSumAmt"			, resultMap.get("goodsSumAmt"));		// 상품금액합계
+		mav.addObject("delvFeeSumAmt"		, resultMap.get("delvFeeSumAmt"));		// 배송비합계
+		mav.addObject("cpn1DcSumAmt"		, resultMap.get("cpn1DcSumAmt"));		// 즉시할인합계
+		mav.addObject("tmtbSumAmt"			, resultMap.get("tmtbSumAmt"));			// 다다익선합계
+		mav.addObject("cpnDcSumAmt"			, resultMap.get("cpnDcSumAmt"));		// 쿠폰할인합계
+		mav.addObject("prePntDcSumAmt"		, resultMap.get("prePntDcSumAmt"));		// 선포인트할인합계
+		mav.addObject("pntDcSumAmt"			, resultMap.get("pntDcSumAmt"));		// 포인트사용합계
+		mav.addObject("gfcdUseSumAmt"		, resultMap.get("gfcdUseSumAmt"));		// 상품권사용합계
+		mav.addObject("savePntSumAmt"		, resultMap.get("savePntSumAmt"));		// 적립예정포인트합계
+		mav.addObject("mileageDcAmt"		, resultMap.get("mileageDcAmt"));		// 마일리지사용합계
+		mav.addObject("allianceDcAmt"		, resultMap.get("allianceDcAmt"));		// 제휴할인합계
 		
 		// TODO 주문정보조회
-		mav.addObject("payment", order);
 		mav.setViewName(super.getDeviceViewName("order/OrderComplete"));
 		return mav;
 	}

+ 52 - 1
src/main/java/com/style24/front/biz/web/TsfPgController.java

@@ -10,9 +10,13 @@ import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import com.style24.core.biz.service.TscOrderService;
+import com.style24.front.biz.service.TsfOrderService;
+import com.style24.front.support.controller.TsfBaseController;
+import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.Payment;
 
@@ -25,11 +29,14 @@ import lombok.extern.slf4j.Slf4j;
 @Controller
 @RequestMapping("/pg")
 @Slf4j
-public class TsfPgController {
+public class TsfPgController extends TsfBaseController {
 	
 	@Autowired
 	private TscOrderService coreOrderService;
 
+	@Autowired
+	private TsfOrderService orderService;
+
 	@Autowired
 	private Environment env;
 
@@ -120,4 +127,48 @@ public class TsfPgController {
 
 		return null;
 	}
+
+	/**
+	 * 결제 PG 요청 완료
+	 *
+	 * @param
+	 * @return
+	 * @author xodud1202
+	 * @since 2021. 03. 05
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/pay/result/response")
+	public ModelAndView payResultResponse(Payment param, HttpServletRequest request, HttpServletResponse response) {
+
+		ModelAndView mav = new ModelAndView();
+
+		Order order = new Order();
+
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			param.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+			order.setCustNo(TsfSession.getInfo().getCustNo());
+		} else {
+			param.setCustNo(0);
+			order.setCustNo(0);
+		}
+
+		param.setUpdNo(param.getCustNo());
+
+		// 2. 결재정보등록(TB_PAYMENT)
+		param = orderService.orderPgPayResult(param, request, response);
+
+		order.setOrdNo(param.getOrdNo());
+		order.setSellGb("10");
+		order.setPgGb(param.getPgGb());
+		order.setPayMeans(param.getPayMeans());
+
+		// TODO 3. 주문정보 업데이트
+		coreOrderService.updateOrderInfo(order);
+
+		mav.addObject("payment", param);
+
+		mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
+		return mav;
+	}
 }

+ 47 - 0
src/main/java/com/style24/front/support/config/TsfMybatisWmsConfig.java

@@ -0,0 +1,47 @@
+package com.style24.front.support.config;
+
+import com.style24.core.support.annotation.WmsDs;
+import com.style24.core.support.env.TscConstants;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.sql.DataSource;
+
+/**
+ * wmsDs용 Mybatis Configuration
+ * 
+ * @author gagamel
+ * @since 2020. 11. 26
+ */
+@Configuration
+@MapperScan(basePackages = TscConstants.BASE_PACKAGE, annotationClass = WmsDs.class, sqlSessionFactoryRef = "wmsSqlSessionFactory")
+public class TsfMybatisWmsConfig {
+
+	@Autowired
+	private ApplicationContext applicationContext;
+
+	@Bean(name = "wmsSqlSessionFactory")
+	public SqlSessionFactory wmsSqlSessionFactory(@Qualifier("wmsDataSource") DataSource dataSource) throws Exception {
+		SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
+
+		sessionFactoryBean.setDataSource(dataSource);
+		sessionFactoryBean.setTypeAliasesPackage(TscConstants.DOMAIN_PACKAGE);
+		sessionFactoryBean.setConfigLocation(applicationContext.getResource("classpath:persistence/mybatis-wms-config.xml"));
+		sessionFactoryBean.setMapperLocations(applicationContext.getResources(TscConstants.MAPPER_LOCATION_PATH + "/shop/*.xml"));
+
+		return sessionFactoryBean.getObject();
+	}
+
+	@Bean(name = "wmsSqlSessionTemplate")
+	public SqlSessionTemplate wmsSqlSessionTemplate(@Qualifier("wmsSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
+		return new SqlSessionTemplate(sqlSessionFactory);
+	}
+
+}

+ 6 - 0
src/main/java/com/style24/persistence/domain/Social.java

@@ -60,6 +60,9 @@ public class Social extends TscBaseDomain{
 		private String goodsTnm;	//상품타이틀
 		private int stockQtySum;	//상품 재고
 		
+		// 고객
+		private Integer custNo;		//고객번호
+		
 		// 브랜드
 		private String brandKnm;	//브랜드이름(한글)
 		private String brandEnm;	//브랜드이름(영어)
@@ -70,6 +73,9 @@ public class Social extends TscBaseDomain{
 		private String stDate;	// 시작일시
 		private String edDate;	// 종료일시
 		
+		// wish
+		private String wishYn;	// 위시리스트 등록 여부
+		
 		
 		// Pagination
 		private TscPageRequest pageable;

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

@@ -500,7 +500,7 @@
 			 , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.CART_DTL_SQ) AS OPT_CD1
 			 , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.CART_DTL_SQ) AS OPT_CD2
 			 , GROUP_CONCAT(Z.ITEM_QTY ORDER BY Z.CART_DTL_SQ) AS ITEM_QTYR
-			 , (SELECT COUNT(1) CNT FROM TB_WISHLIST WHERE CUST_NO = ${custNo} AND CUST_NO != 0 AND GOODS_CD = Z.GOODS_CD) AS WISH_CNT
+			 , (SELECT COUNT(1) CNT FROM TB_WISHLIST WHERE CUST_NO = #{custNo} AND CUST_NO != 0 AND GOODS_CD = Z.GOODS_CD) AS WISH_CNT
 			 , Z.CART_SQ
 			 , Z.GOODS_CD
 			 , Z.GOODS_NM

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

@@ -67,11 +67,11 @@
 		  FROM TB_ORDER O
 		 INNER JOIN TB_ORDER_DETAIL OD
 		    ON O.ORD_NO = OD.ORD_NO
-		   AND OD.ORD_DTL_STAT NOT IN ('G013_11', 'G013_25', 'G013_97')
+		   AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
 		 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
 		    ON OD.ORD_NO = ODI.ORD_NO
 		   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		   AND ODI.ORD_DTL_STAT NOT IN ('G013_11', 'G013_25', 'G013_97')
+		   AND ODI.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25', 'G013_97', 'G013_98', 'G013_99')
 		 INNER JOIN TB_GOODS G
 		    ON OD.GOODS_CD = G.GOODS_CD
 		 INNER JOIN TB_BRAND B
@@ -112,14 +112,12 @@
 			</if>
 		   AND O.DISP_YN = 'Y'
 		</where>
-		 ORDER BY OD.SUPPLY_COMP_CD
-				, OD.DELV_FEE_CD
-				, OD.ORD_NO DESC
-		        , OD.GIFT_PACK_YN DESC
+		 ORDER BY OD.ORD_NO DESC
+				, OD.ORD_DTL_STAT
 				, G.SELF_GOODS_YN DESC
 				, OD.SHOT_DELV_YN DESC
-				, OD.ORD_DTL_STAT
-				, R.REVIEW_SQ
+		 		, OD.SUPPLY_COMP_CD
+				, OD.DELV_FEE_CD
 	</select>
 
 	<!-- 마이페이지 주문 상태 별 수량 조회 -->
@@ -175,6 +173,18 @@
 		) AS Z
 	</select>
 
+	<!-- 마이페이지 주문목록 페이징 처리 주문번호 수 조회 -->
+	<select id="getPagingOrdNoListCount" parameterType="Order" resultType="int">
+		/* TscOrder.getPagingOrdNoList */
+		SELECT COUNT(ORD_NO) AS CNT
+		  FROM TB_ORDER
+		 WHERE CUST_NO = #{custNo}
+		   AND DISP_YN = 'Y'
+		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
+		   AND ORD_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
+		</if>
+	</select>
+
 	<!-- 마이페이지 주문목록 페이징 처리 주문번호 조회 -->
 	<select id="getPagingOrdNoList" parameterType="Order" resultType="Order">
 		/* TscOrder.getPagingOrdNoList */

+ 7 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfSocial.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.style24.front.biz.dao.TsfSocialDao">
 	<select id="getSocialInfo" resultType="Social" parameterType="Social">
-		<!-- TsfSocial.getSocialInfo -->
+		/* TsfSocial.getSocialInfo*/
 		SELECT A.SOCIAL_SQ
 		     , A.SOCIAL_NM
 		     , A.SOCIAL_TYPE
@@ -23,6 +23,7 @@
 	</select>
 	
 	<select id="getSocialGoodsList" resultType="Social" parameterType="Social">
+		/* TsfSocial.getSocialGoodsList*/
 		SELECT F.* 
 			 ,  (CASE WHEN F.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = F.GOODS_CD) 
 			    ELSE (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = F.GOODS_CD) 
@@ -31,6 +32,7 @@
 			 , CASE IFNULL((SELECT COUNT(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = F.GOODS_CD AND COLOR_CD = F.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ),0) 
 			            WHEN 0 THEN 'N'
 			            ELSE 'Y' END AS GOODS_IMAGE_YN
+			 ,(CASE WHEN F.WISH_GOOD IS NULL THEN 'N' ELSE 'Y' END) AS WISH_YN
 			FROM
 			(   
 				 SELECT A.SOCIAL_SQ
@@ -58,9 +60,13 @@
 				     , C.MAIN_COLOR_CD 
 				     , D.BRAND_KNM 
 				     , D.BRAND_ENM 
+				     , W.CUST_NO 
+				     , W.GOODS_CD AS WISH_GOOD
 				FROM TB_SOCIAL A INNER JOIN tb_social_goods B ON A.SOCIAL_SQ = B.SOCIAL_SQ 
 				                 INNER JOIN TB_GOODS C ON B.GOODS_CD = C.GOODS_CD 
 				                 INNER JOIN TB_BRAND D ON C.BRAND_CD = D.BRAND_CD
+				                 LEFT JOIN TB_WISHLIST W ON C.GOODS_CD = W.GOODS_CD
+		                             AND W.CUST_NO  = IFNULL(#{custNo},0)
 				WHERE 1=1
 				  AND NOW() BETWEEN A.SOCIAL_STDT AND A.SOCIAL_EDDT 
 				  AND A.USE_YN = 'Y'		    		 /*사용여부*/

+ 15 - 7
src/main/resources/config/application-run.yml

@@ -63,13 +63,21 @@ mail:
 
 # PG
 pg:
-    nicepay:
-        merchantId: wivismallm
-        merchantKey: pXTdML8rIaOVCeXQQsyRp1uCfTSTT/n80BV4LCqa+/yJM64MYIqeBCIQdH1rKhJRwSOsdCxVPa1V6hRxkkdJxg==
-        cancelPwd: wivis@2020
-        log.path: /app/was/applogs/nicepay
-        account.cert.url: https://webapi.nicepay.co.kr/api/checkBankAccountAPI.jsp
-        vbank.refund.url: https://webapi.nicepay.co.kr/v2/api/merchant/vbank_refund.jsp
+    kcp:
+        log.dir: /WIDE/workspace/files/data/style24/logs/front
+        gw:
+            url: paygw.kcp.co.kr
+            port: 8090
+        user.type: PGNW
+        js.url: https://pay.kcp.co.kr/plugin/payplus_web.jsp
+        server: true
+        site:
+            cd: U3476
+            key: 4aVa--.Xz8Fc78nwYPsrmmY__
+            name: ISTYLE
+        log.level: 3
+        module.type: 01
+        tx.mode: 0
 
 # 네이버페이 API
 naverPay:

+ 2 - 2
src/main/resources/config/application-tsit.yml

@@ -60,9 +60,9 @@ pg:
     kcp:
         log.dir: D:/TSIT/servers/bin/apache-tomcat/startup/style24/style24.front/kcpLogs/front
         gw:
-            url: http://testpaygw.kcp.co.kr
+            url: testpaygw.kcp.co.kr
             port: 8090
-        js.url: http://testpay.kcp.co.kr/plugin/payplus_web.jsp
+        js.url: https://testpay.kcp.co.kr/plugin/payplus_web.jsp
         server: false
         site:
             cd: T0000

+ 24 - 0
src/main/resources/persistence/mybatis-wms-config.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "HTTP://mybatis.org/dtd/mybatis-3-config.dtd">
+
+<configuration>
+
+	<settings>
+		<setting name="cacheEnabled" value="false" /> <!-- 설정에서 각 매퍼에 설정된 캐시를 전역적으로 사용할지 말지에 대한 여부 (default true)-->
+		<!-- <setting name="lazyLoadingEnabled" value="true" /> --> <!-- 지연로딩을 사용할지에 대한 여부. 사용하지 않는다면 모두 즉시 로딩 (default true) -->
+		<!-- <setting name="multipleResultSetsEnabled" value="true" /> --> <!-- 한개의 구문에서 여러개의 ResultSet을 허용할지의 여부 (default true) -->
+		<setting name="useGeneratedKeys" value="true" /> <!-- 생성키를 강제로 생성 (default false) -->
+		<setting name="defaultExecutorType" value="REUSE" /> <!-- 디폴트 실행자(executor) 설정. PreparedStatement를 재사용 (default SIMPLE)-->
+		<setting name="defaultStatementTimeout" value="25" /> <!-- 데이터베이스로의 응답을 얼마나 오래 기다릴지를 판단하는 타임아웃(초)를 설정 -->
+		<setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 데이터베이스 칼럼명 형태인 A_COLUMN을 CamelCase 형태의 자바 프로퍼티명 형태인 aColumn으로 자동으로 매핑하도록 함 (default false) -->
+		<setting name="logImpl" value="NO_LOGGING" /> <!-- 마이바티스가 사용할 로깅 구현체를 명시. 이 설정을 사용하지 않으면 마이바티스가 사용할 로깅 구현체를 자동으로 찾는다. -->
+		<setting name="jdbcTypeForNull" value="NULL"/> <!-- JDBC 타입을 파라미터에 제공하지 않을 때 null 값을 처리한 JDBC 타입을 명시 -->
+		<setting name="callSettersOnNulls" value="true"/> <!-- 가져온 값이 null일때 setter나 맵의 put 메소드를 호출할지를 명시 (default false) -->
+		<setting name="returnInstanceForEmptyRow" value="true"/> <!-- 모든 컬럼이 null이면 row를 null 인스턴스로 리턴 (default false: row를 null로 리턴) -->
+	</settings>
+	
+	<typeAliases>
+		<typeAlias alias="paramMap" type="com.gagaframework.web.parameter.GagaMap" />
+	</typeAliases>
+
+</configuration>

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/cart/CartListFormMob.html

@@ -14,7 +14,7 @@
 <script type="text/javascript">
 	$(document).on("click", "#buyBtn", function() {
 		let orderData = {
-			pgGb		: "KCP"
+			pgGb		: "PAYCO"
 			, payMeans	: "G014_30"
 			, ordNo		: "5"
 			, goodsNm	: "상품 테스트"

+ 4 - 2
src/main/webapp/WEB-INF/views/mob/pg/kcpOrderMob.html

@@ -29,10 +29,12 @@
 	<input type="hidden" name="van_code"		value="">							<!-- 인증시 필요한 파라미터(변경불가)-->
 	<input type="hidden" name="quotaopt"		th:value="${payment.quotaopt}"/>	<!-- 최대 할부 개월 수(0 ~ 18까지 설정 가능) -->
 	<input type="hidden" name="ipgm_date"		value=""/>							<!-- 가상계좌설정 -->
-	<input type="hidden" name="Ret_URL"			value="http://ldfront.style24.com/order/pay/result/test">	<!-- 리턴 URL (kcp와 통신후 결제를 요청할 수 있는 암호화 데이터를 전송 받을 가맹점의 주문페이지 URL) -->
+	<input type="hidden" name="PayUrl"			th:value="${'http:' + @environment.getProperty('domain.front') + '/order/create/preOrder'}" id="PayUrl"/>	<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->
+	<input type="hidden" name="Ret_URL"			th:value="${'http:' + @environment.getProperty('domain.front') + '/pg/pay/result/response'}">			<!-- 리턴 URL (kcp와 통신후 결제를 요청할 수 있는 암호화 데이터를 전송 받을 가맹점의 주문페이지 URL) -->
+
 	<input type="hidden" name="tablet_size"		value="1.0">						<!-- 화면 크기 조정 -->
 	<input type="hidden" name="response_type"	value="TEXT"/>						<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->
-	<input type="hidden" name="PayUrl"			value="http://ldfront.style24.com/order/create/preOrder" id="PayUrl"/>	<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->
+
 	<input type="hidden" name="traceNo"			value="" id="traceNo"/>				<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->
 	<input type="hidden" name="res_cd"			value=""/>							<!-- 결과코드 -->
 	<input type="hidden" name="res_msg"			value=""/>							<!-- 결과메세지 -->

+ 45 - 0
src/main/webapp/WEB-INF/views/web/Yes24CallBackFormWeb.html

@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : Yes24CallBackFormWeb.html
+ * @desc    : Yes24 동의화면 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.15   gagamel     최초 작성
+ *******************************************************************************
+ -->
+<head th:replace="~{web/common/fragments/HeadWeb :: head}"></head>
+<th:block th:replace="~{web/common/fragments/VariablesWeb :: variables}"></th:block>
+<th:block th:replace="~{web/common/fragments/ScriptsWeb :: scripts}"></th:block>
+<body>
+
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+
+	// const resultMap = [[${resultMap}]];
+	// if (gagajf.isNull(resultMap.snsId) && gagajf.isNull(resultMap.snsType)){
+	// 	mcxDialog.alertC("인증에 실패하였습니다.<br> 로그인 정보를 확인해주시기 바랍니다.", {
+	// 		sureBtnText: "확인",
+	// 		sureBtnClick: function() {
+	// 			self.close();
+	// 		}
+	// 	});
+	// } else {
+	// 	opener.fnSnsSigninCallback(resultMap);
+	// 	self.close();
+	// }
+
+
+/*]]>*/
+</script>
+
+
+</body>
+</html>

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

@@ -396,9 +396,6 @@
 
 <!-- 즉시구매 form -->
 <form id="cartInfoForm" method="post" action="/order/noMember"></form>
-<!-- KCP PG TEST -->
-<form name="order_info" method="post" action="pp_cli_hub.jsp" >
-</form>
 
 <script th:inline="javascript">
 	let sumRealPayAmt = [[${order.sumRealPayAmt + order.totDelvFee}]];
@@ -996,4 +993,57 @@
 		}
 	}
 </script>
+
+
+
+
+
+
+<!-- payment.js -->
+<script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
+<script type="text/javascript" src="/ux/pc/js/payment.js"></script>
+<form id="order_info" name="order_info" method="post" action="/order/pay/result/response" ></form>
+<input type="button" id="buyBtn" value="KCP TEST" style="width:100px;height:200px;" />
+<script type="text/javascript">
+	$(document).on("click", "#buyBtn", function() {
+		let orderData = {
+			  pgGb		: "PAYCO"
+			, payMeans	: "G014_30"
+			, ordNo		: "5"
+			, goodsNm	: "상품 테스트"
+			, payAmt	: "1233"
+			, ordNm		: "이태영"
+			, ordEmail	: "xodud1202@naver.com"
+			, ordTelno	: "02-0000-0000"
+			, ordPhnno	: "010-7111-0000"
+		};
+
+		let jsonData = JSON.stringify(orderData);
+
+		$.ajax( {
+			type		: "POST",
+			url			: '/order/create/preOrder',
+			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);
+			},
+			error : function(e) {
+				alert(3);
+			},
+			success 	: function(result) {
+				// 결재정보로드
+				$("#order_info").html(result);
+				//kcp_AJAX();
+				jsf__pay(document.order_info);
+				//fnKakaoPaymentReady();
+				//fnNaverPaymentReady();
+			}
+		});
+	});
+</script>
+
 </html>

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

@@ -265,7 +265,7 @@
 							$('#divGnbTab').html('');
 							$('#ulGnbTab').html('');
 							$.each(result, function(idx, item) {
-								console.log(item);
+								//console.log(item);
 								
 								if (item.contentsType == 'C' || item.contentsType == 'O') { // 컨텐츠유형:카테고리, 아울렛
 									$.each(allCate, function(allCateIdx, allCateItem) {

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

@@ -54,7 +54,7 @@
 	<link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css" />
 	
 	<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
-	<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
+	<!-- <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> -->
 	<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
 	<script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.0/js/swiper.min.js"></script>
 	<script src="/ux/pc/js/jquery.modal.min.js"></script>
@@ -71,6 +71,48 @@
 // 		gtag('js', new Date());
 // 		gtag('config', 'UA-168660512-1');
 	</script>
+	
+	<th:block th:if="${sessioninfo != null}">
+		<script th:inline="javascript">
+		/*<![CDATA[*/
+			var gCustId = [[${sessionInfo.custId}]];
+			/*]]>*/
+		</script>
+	</th:block>
+	<th:block th:if="${sessioninfo == null}">
+		<script th:inline="javascript">
+		/*<![CDATA[*/
+			var gCustId = '';
+			/*]]>*/
+		</script>
+	</th:block>
+	
+	<script src="/ux/sha512.min.js"></script>
+	<script>
+		String.prototype.hashCode = function() {
+			var hash = 0;
+			for (var i = 0; i < this.length; i++) {
+				var character = this.charCodeAt(i);
+				hash = ((hash<<5) - hash) + character;
+				hash = hash & hash; // Convert to 32bit integer
+			}
+			return hash;
+		}
+		var eglqueueCuid = '1252aed4-78dc-46e8-b784-94ac42e86dd4';
+		var hCustId = gCustId ? hex_sha512(gCustId).toString().hashCode() : '';
+		
+		/* Eiengine Script (Visit) */
+		window._eglqueue = window._eglqueue || [];
+		_eglqueue.push(['setVar', 'cuid', eglqueueCuid]);
+		_eglqueue.push(['setVar', 'userId', hCustId]);
+		_eglqueue.push(['track', 'visit']);
+		(function (s, x) {
+			s = document.createElement('script'); s.type = 'text/javascript';
+			s.async = true; s.defer = true; s.src = (('https:' == document.location.protocol) ? 'https' : 'http') + '://logger.eigene.io/js/logger.min.js';
+			x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);
+		})();
+		/* \\Eiengine Script (Visit) */
+	</script>
 </head>
 
-</html>
+</html>

+ 0 - 1
src/main/webapp/WEB-INF/views/web/common/layout/BrandLayoutWeb.html

@@ -27,7 +27,6 @@
 <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[*/

+ 0 - 1
src/main/webapp/WEB-INF/views/web/common/layout/CallcenterLayoutWeb.html

@@ -27,7 +27,6 @@
 <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[*/

+ 0 - 1
src/main/webapp/WEB-INF/views/web/common/layout/DefaultLayoutWeb.html

@@ -27,7 +27,6 @@
 <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[*/

+ 34 - 14
src/main/webapp/WEB-INF/views/web/common/layout/MypageLayoutWeb.html

@@ -28,23 +28,34 @@
 		</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">
+		<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="my_lnb">
+				<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>
@@ -63,8 +74,6 @@
 <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:src="@{'/ux/pc/js/mypage.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/ux/pc/js/mypage.js"></script>
 
 <script th:inline="javascript">
@@ -86,7 +95,18 @@
 		$('#mypageLnbList').html(tag);
 	}
 
-	var fnSetMypageLocation = function(depth3, depth3Link, depth4) {
+
+	//현재 페이지 활성화 표시
+	//$(".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>'

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

@@ -16,6 +16,7 @@
  * 1.0  2021.03.15   jsshin      최초 작성
  *******************************************************************************
  -->
+<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
 <body>
 <th:block layout:fragment="content">
 	<div class="my_cont">
@@ -23,7 +24,7 @@
 			<h3>회원정보 수정</h3>
 		</div>
 		<div class="sec_body mypage_body">
-			<form id="custModiFyForm" class="form_wrap" role="form" method="post">
+			<form id="custModiFyForm" class="form_wrap" role="form" method="post" action="/mypage/account/check" accept-charset="EUC-KR" onsubmit="document.charset='euc-kr';">
 				<div class="order_list">
 					<section class="order_row">
 						<div class="order_tit">
@@ -113,7 +114,7 @@
 										<th>은행명</th>
 										<td>
 											<div class="form_field">
-												<select id="bankList">
+												<select id="bankList" name="bankList">
 													<option value="">선택</option>
 													<option th:if="${bankList}" th:each="oneData, status : ${bankList}" th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
 												</select>
@@ -123,8 +124,11 @@
 									<tr>
 										<th>계좌번호</th>
 										<td>
-											<input type="text" id="accountNumber" name="accountNumber" class="form_control" value="" placeholder=""/>
+											<input type="text" id="accountNumber" name="accountNumber" class="form_control" value="27560104388848" placeholder=""/>
 										</td>
+										<button type="button" id="btnAccountCheck" class="btn btn_dark submit_btn">
+											<span>계좌인증</span>
+										</button>
 									</tr>
 								</tbody>
 							</table>
@@ -270,6 +274,53 @@
 		console.log('jsonData', jsonData);
 	});
 
+	$('#btnAccountCheck').on('click', function () {
+		let custInfo = {};
+		let jsonData = JSON.stringify(custInfo)
+		//gagajf.ajaxJsonSubmit('/mypage/account/check', jsonData, fnAccountCheckCallback);
+		//ajaxSubmit('/mypage/account/check','html','accountHolder')
+		$('#custModiFyForm').submit();
+	});
+
+	var fnAccountCheckCallback = function (result) {
+		console.log('result', result);
+
+	}
+
+	var ajaxSubmit = function(actionUrl, type, callback, params) {
+		$.ajax({
+			type : "POST",
+			url : actionUrl,
+			data : $('#custModiFyForm').serialize(),
+			dataType : type,
+			contentType: 'application/x-www-form-urlencoded;charset=euc-kr',
+			beforeSend : function(xhr) {
+				// Button disabled
+				xhr.overrideMimeType('application/x-www-form-urlencoded;charset=euc-kr');
+				// ProgressBar show
+			},
+			complete : function() {
+				// Button enabled
+
+				// ProgressBar hide
+			},
+			success : function(result) {
+				console.log(result);
+				if (type === "html") {
+					if (!gagajf.isNull(callback))
+						$(document.getElementById(callback)).html(result);
+				} else {
+					// Callback 함수 호출
+					if (typeof(callback) === "function")
+						callback.call(this, result);
+				}
+			},
+			error : function() {
+				alert("오류로 인해 처리되지 않았습니다.");
+			}
+		});
+	}
+
 	$(document).ready(function() {
 		// 마이페이지 LNB 설정
 		fnSetMypageLnbList(10);
@@ -281,6 +332,10 @@
 		fnGetCustInfo();
 
 	});
+
+
+
+
 	/*]]>*/
 </script>
 </th:block>

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

@@ -19,27 +19,14 @@
 <body>
 
 <th:block layout:fragment="content">
-	<form id="exchangeForm" name="exchangeForm" action="#" th:action="@{'/mypage/exchange/form'}" th:method="post">
-		<input type="hidden" name="ordNo"/>
-		<input type="hidden" name="ordDtlNoArr"/>
-	</form>
-	<form id="cancelForm" name="cancelForm" th:action="@{'/mypage/cancel/form'}" th:method="post">
-		<input type="hidden" name="ordNo"/>
-		<input type="hidden" name="ordDtlNoArr"/>
-	</form>
-	<form id="reviewForm" name="reviewForm" th:action="@{'/mypage/review/form'}" th:method="post">
-		<input type="hidden" name="ordNo"/>
-		<input type="hidden" name="ordDtlNoArr"/>
-	</form>
-	<div class="cont">
+	<div class="cont my_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 class="level lv_vip"> <!-- 레벨별 클래스명 : VIP (lv_vip) / GOLD (lv_gold) / SILVER (lv_silver) / BRONZE (lv_bronze) / WELCOME (lv_welcome) -->
-					<div th:class="|level lv_${#strings.toLowerCase(customerInfo.custGradeNm)}|"></div>
+					<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>
@@ -70,76 +57,51 @@
 					</div>
 				</div>
 			</div>
-			<!--<h3 class="mem_name"><strong th:text="${customerInfo.custNm}"></strong>님 반갑습니다.</h3>
-			<div class="mem_info clear">
-				<div class="mem_rank">
-					<div th:class="|rank_icon ${#strings.toLowerCase(customerInfo.custGradeNm)}|" th:text="${#strings.substring(customerInfo.custGradeNm, 0, 1)}"></div>
-					<div class="rank_txt01" th:text="${customerInfo.custGradeNm}"></div>
-					<div class="rank_txt02">
-						<button type="button" onclick="fnGoToCustomerBenefit();">등급혜택  보기</button>
-						<button type="button" id="cp_down" onclick="fnDownloadCoupon();">등급쿠폰 다운</button>
-					</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 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" id="couponCnt" th:text="${couponCnt}"></span>장</span>&nbsp;/&nbsp;<span class="coupon_txt02 c_primary" id="expiredSoonCouponCnt" th:text="|${expiredSoonCouponCnt}장|"></span>
-					</div>
-					<div class="mem_point">
-						<p class="tit">STYLE  24 포인트</p>
-						<a href="#pop"><span class="big_txt" th:text="${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')}"></span>P</a>
-					</div>
-					<div class="mem_gift">
-						<p class="tit">상품권</p>
-						<a href="#pop"><span class="big_txt" th:text="${#numbers.formatInteger(rmGfcdAmt, 1, 'COMMA')}"></span>원</a>
-					</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="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 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 class="sec_body">
@@ -206,8 +168,7 @@
 				</div>
 			</div>
 			<!-- //주문조회 검색 -->
-			<div class="area_list" id="orderList">
-			</div>
+			<th:block th:id="orderList"></th:block>
 		</div>
 		<!--<div class="sec_body mypage_body">
 			&lt;!&ndash; 주문 경로 &ndash;&gt;
@@ -269,6 +230,26 @@
 			<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="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="ordDtlNoArr"/>
+		</form>
+		<form id="cancelForm" name="cancelForm" th:action="@{'/mypage/cancel/form'}" th:method="post">
+			<input type="hidden" name="ordNo"/>
+			<input type="hidden" name="ordDtlNoArr"/>
+		</form>
+		<form id="reviewForm" name="reviewForm" th:action="@{'/mypage/review/form'}" th:method="post">
+			<input type="hidden" name="ordNo"/>
+			<input type="hidden" name="ordDtlNoArr"/>
+		</form>
 	</div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
 <script th:inline="javascript">
@@ -284,9 +265,21 @@
 		
 		// datepicker 설정
 		$(".my_datepicker").datepicker();
+
+		// 셀렉트박스 활성화
+		$('.select_custom.order_status').each(function(index) {
+			var selecter01 = new sCombo($(this));
+		});
 		
 		// 주문 검색 기간 설정
-		fnSetSearchPeriod(3);
+		$('#rdi-month2').click();
+		//fnSetSearchPeriod(3);
+
+		// Initialize a pagination
+		//gagaPaging.init('searchForm', fnSearchOrderList, 'paging', 5);
+		
+		// Load data
+		//gagaPaging.load(1);
 		
 		// 주문 리스트 조회
 		fnSearchOrderList(1);
@@ -295,22 +288,31 @@
 	// 검색기간 버튼 클릭 이벤트 처리
 	var fnSetSearchPeriod = function(period) {
 		let date = new Date();
-		$('#edDate').val(date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + (date.getDate() + 1)).slice(-2));
+		let edDate = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + (date.getDate() + 1)).slice(-2);
 		date.setMonth(date.getMonth() - period);
-		$('#stDate').val(date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + (date.getDate() + 1)).slice(-2));
+		let stDate = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + (date.getDate() + 1)).slice(-2);
+
+		$('#edDate').val(edDate);
+		$('#searchForm input[name=edDate]').val(edDate);
+		$('#stDate').val(stDate);
+		$('#searchForm input[name=stDate]').val(stDate);
 	}
 	
 	// 주문 목록 조회
 	var fnSearchOrderList = function(pageNo) {
 		if (pageNo == null) {
-			pageNo = $('#pageNo').val();
+			pageNo = $('#searchForm input[name=pageNo]').val();
+		} else {
+			pageNo = 0;
 		}
 		let stDate = $('#stDate').val();
 		let edDate = $('#edDate').val();
 		//let ordDtlStat = $('#ordDtlStat').val();
-		
+
 		let data = {};
 		data.pageNo = pageNo;
+		data.pageSize = 5;
+		data.pageUnit = 10;
 		data.stDate = stDate;
 		data.edDate = edDate;
 		data.custNo = customerInfo.custNo;
@@ -331,22 +333,30 @@
 			},
 			success 	: function(result) {
 				$('#orderList').html(result);
-				fnMergeRow();
+
+				//let paging = {};
+				//paging.pageNo = $('#searchForm input[name=pageNo]').val();
+				//paging.pageSize = $('#searchForm input[name=pageSize]').val();
+				//paging.pageUnit = $('#searchForm input[name=pageUnit]').val();
+				//
+				//console.log(result);
+				//// Create pagination
+				//gagaPaging.createPagination(paging);
 			}
 		});
 	}
 	
 	// rowspan 처리
-	var fnMergeRow = function() {
-		$(".merge_row").each(function() {
-			var txt = $(this).text();
-			var rows = $(this).parents("table").find(".merge_row:contains('" + txt + "')");
-			if (rows.length > 1) {
-				rows.eq(0).attr("rowspan", rows.length);
-				rows.not(":eq(0)").remove();
-			}
-		});
-	}
+	//var fnMergeRow = function() {
+	//	$(".merge_row").each(function() {
+	//		var txt = $(this).text();
+	//		var rows = $(this).parents("table").find(".merge_row:contains('" + txt + "')");
+	//		if (rows.length > 1) {
+	//			rows.eq(0).attr("rowspan", rows.length);
+	//			rows.not(":eq(0)").remove();
+	//		}
+	//	});
+	//}
 	
 	// 검색기간 설정 체크
 	var fnCheckPeriod = function(param) {
@@ -437,6 +447,94 @@
 		// TODO
 		// 배송조회 페이지 이동
 	}
+
+	// 페이징 처리
+	var fnPaging = function(pageNo, totalPageNo) {
+		let startNo = ((pageNo / 10) * 10) + 1;
+		let tag = '';
+		
+		if ((pageNo / 10) > 0 && pageNo != 10) {
+			tag += '<li className="disabled"><a href="#">«</a></li>';
+		}
+		
+		if ((pageNo > 1)) {
+			tag += '<li className="prev disabled"><a href="#">‹</a></li>';
+		}
+		
+		/*<li><a href="#">1</a></li>
+		<li className="active"><a href="#">2</a></li>
+		<li><a href="#">3</a></li>
+		<li><a href="#">4</a></li>
+		<li><a href="#">5</a></li>
+		<li><a href="#">6</a></li>
+		<li><a href="#">7</a></li>
+		<li><a href="#">8</a></li>
+		<li><a href="#">9</a></li>
+		<li><a href="#">10</a></li>
+		<li className="next"><a href="#">›</a></li>
+		<li><a href="#">»</a></li>*/
+	}
+	
+	// 주문내역 리스트 처리
+	var fnCreateOrderList = function(param) {
+		let tag = '';
+		let imageUrl = [[${@environment.getProperty('upload.goods.view')}]];
+		$.each(param.orderList, function(idx, order) {
+			tag += '<div class="part_goods">';
+			tag += '	<div class="goods_head">';
+			if (order.giftPackYn == 'Y') {
+				tag += '		<p>주문일 <span>' + order.ordDt + '</span></p>';
+			} else {
+				tag += '		<p>선물일 <span>' + order.ordDt + '</span></p>';
+			}
+			tag += '		<a href="javascript:void(0)" class="btn_detail_view" attr="ordNo=' + order.ordNo + '" onclick="fnGoToOrderDetail(this)">주문상세보기</a>';
+			tag += '	</div>';
+			tag += '	<div class="goods_cont">';
+			$.each(item.ordDtlList, function(index, ordDtl) {
+				tag += '		<div class="goods_info">';
+				tag += '			<div class="order_desc">';
+				tag += '				<div class="goods_box">';
+				tag += '					<div class="gd_item">';
+				tag += '						<a href="">';
+				tag += '							<span class="thumb">';
+				tag += '								<img src="' + imageUrl + '/' + ordDtl.sysImgNm + '" width="100%" alt="">';
+				tag += '							</span>';
+				tag += '							<p>';
+				tag += '								<span class="brand">' + ordDtl.brandNm + '</span>';
+				if (ordDtl.shotDelvYn == 'Y') {
+					tag += '<span class="tag primary">총알배송</span>';
+				} else if (ordDtl.selfGoodsYn == 'Y') {
+					tag += '';
+				}
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+				tag += '';
+			});
+		});
+	}
 /*]]>*/
 </script>
 

+ 63 - 43
src/main/webapp/WEB-INF/views/web/mypage/MypageOrderListWeb.html

@@ -14,7 +14,7 @@
  * 1.1  2021.03.15   card007     퍼블 수정
  *******************************************************************************
  -->
-<input type="hidden" th:value="${orderInfo.pageNo}" id="pageNo"/>
+<div class="area_list" id="orderList">
 <th:block th:if="${orderList}" th:each="oneData, status : ${orderList}">
 	<div class="part_goods">
 		<div class="goods_head">
@@ -23,10 +23,10 @@
 			<a href="javascript:void(0)" class="btn_detail_view" th:attr="ordNo=${oneData.ordNo}" onclick="fnGoToOrderDetail(this)">주문상세보기</a>
 		</div>
 		<div class="goods_cont">
-			<th:block th:if="${oneData.ordDtlList}" th:each="ordDtl, status : ${oneData.ordDtlList}">
+			<th:block th:if="${oneData.ordDtlList}" th:each="ordDtl, status : ${oneData.ordDtlList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
 			<!-- 주문상품 -->
 			<div class="goods_info">
-				<div class="oder_desc">
+				<div class="order_desc">
 					<div class="goods_box">
 						<div class="gd_item">
 							<a href="">
@@ -47,7 +47,7 @@
 						<div class="gd_opt">
 							<div class="option_wrap">
 								<span class="title sr-only">주문 옵션</span>
-								<span class="option" th:text="|${ordDtl.optCd1} / ${ordDtl.optCd2}|"></span>
+								<span class="option" th:text="|${ordDtl.optCd1} / ${ordDtl.optCd2} / ${ordDtl.reviewSq} / ${ordDtl.ordDtlStat} / ${ordDtl.recipBaseAddr}|"></span>
 							</div>
 						</div>
 						<div class="gd_calc">
@@ -62,30 +62,30 @@
 					</div>
 					<div class="status_box">
 						<!-- 주문 -->
-						<th:block th:unless="${ordDtl.gifyPackYn == 'Y'}">
+						<th:block th:unless="${ordDtl.giftPackYn == 'Y'}">
 							<p th:text="${ordDtl.ordDtlStatNm}"></p>
 						</th:block>
 						
 						<!-- 선물 -->
-						<th:block th:if="${ordDtl.gifyPackYn == 'Y'}">
+						<th:block th:if="${ordDtl.giftPackYn == 'Y'}">
 							<!-- <p th:if="${ordDtl.ordDtlStatNm}">선물 결제</p> -->
 							<!-- 주소 입력 대기중 -->
-							<p th:if="${ordDtl.ordDtlStat == 'G013_20' and #strings.isEmpty(order.recipBaseAddr) and order.giftLimitDay >= 0}">주소 입력 대기중</p>
+							<p th:if="${#strings.isEmpty(ordDtl.recipBaseAddr) and ordDtl.giftLimitDay >= 0}">주소 입력 대기중</p>
 							<!-- 선물 완료 -->
-							<p th:if="${ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35' or ordDtl.ordDtlStat == 'G013_40' or ordDtl.ordDtlStat == 'G013_50' or ordDtl.ordDtlStat == 'G013_55' or ordDtl.ordDtlStat == 'G013_60' or ordDtl.ordDtlStat == 'G013_70'}">선물 완료</p>
+							<p th:if="${!#strings.isEmpty(ordDtl.recipBaseAddr)}">선물 완료</p>
 							<!-- 선물 취소 -->
-							<p th:if="${ordDtl.ordDtlStat == 'G013_98' or ordDtl.ordDtlStat == 'G013_99'}">선물 취소</p>
+							<p th:if="${ordDtl.ordDtlStat == 'G013_98' and ordDtl.ordDtlStat == 'G013_99'}">선물 취소</p>
 						</th:block>
 					</div>
 					<div class="button_box">
 						<!-- 주문 -->
-						<th:block th:unless="${ordDtl.gifyPackYn == 'Y'}">
+						<th:block th:unless="${ordDtl.giftPackYn == 'Y'}">
 							<!-- 주문취소 버튼(입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중) -->
 							<th:block th:if="${ordDtl.ordDtlStat == 'G013_10' or ordDtl.ordDtlStat == 'G013_20' or ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35'} 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.changableYn == 'Y' and (ordDtl.ordDtlStat == 'G013_50' or ordDtl.ordDtlStat == 'G013_55' or ordDtl.ordDtlStat == 'G013_60')}">
+							<th:block th:if="${ordDtl.changeableYn == 'Y' and (ordDtl.ordDtlStat == 'G013_50' or ordDtl.ordDtlStat == 'G013_55' or ordDtl.ordDtlStat == 'G013_60')}">
 								<p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnCreateChange(this, 'exchange');"><span>교환 신청</span></button></p>
 							</th:block>
 							<!-- 반품신청 버튼(배송중, 출고완료, 배송완료)  -->
@@ -98,14 +98,14 @@
 							</th:block>
 							<!-- 구매확정 버튼(배송완료) -->
 							<th:block th:if="${ordDtl.ordDtlStat == 'G013_60'}">
-								<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>
+								<p><button type="button" class="btn btn_default 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'}">
-								<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>
+								<p><button type="button" class="btn btn_primary_line btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}" onclick="fnCreateCart(this);"><span>쇼핑백 담기</span></button></p>
 							</th:block>
 							<!-- 리뷰작성 버튼 -->
-							<th:block th:if="${ordDtl.ordDtlStat == 'G013_70' and ordDtl.reviewableYn == 'Y' and ordDtl.reviewSq == 0}">
+							<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=${oneData.ordNo}" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></p>
 							</th:block>
 							<!-- 1:1문의 버튼 -->
@@ -115,58 +115,78 @@
 						</th:block>
 						
 						<!-- 선물 -->
-						<th:block th:if="${ordDtl.gifyPackYn == 'Y'}">
+						<th:block th:if="${ordDtl.giftPackYn == 'Y'}">
 							<!-- 주소 입력 대기중 -->
-							<th:block th:if="${ordDtl.ordDtlStat == 'G013_20' and #strings.isEmpty(order.recipBaseAddr) and order.giftLimitDay >= 0}">
+							<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=${oneData.ordNo}" onclick="fnReSendSms(this);"><span>SMS 재발송</span></button></p>
 							</th:block>
 							<!-- 선물 완료 -->
-							<th:block th:if="${ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35' or ordDtl.ordDtlStat == 'G013_40' or ordDtl.ordDtlStat == 'G013_50' or ordDtl.ordDtlStat == 'G013_55' or ordDtl.ordDtlStat == 'G013_60' or ordDtl.ordDtlStat == 'G013_70'}">
+							<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=${oneData.ordNo}" onclick="fnCreateReview(this);"><span>리뷰 쓰기</span></button></p>
 							</th:block>
 						</th:block>
 					</div>
 				</div>
-				<div class="oder_text">
-					<!-- 주문 -->
-					<th:block th:unless="${ordDtl.gifyPackYn == 'Y'}">
-						<!-- 주문접수 -->
-						<p th:if="${ordDtl.ordDtlStat == 'G013_10'}">주문이 완료되어 결제를 기다리고 있습니다.</p>
-						<!-- 상품준비중 -->
-						<p th:if="${ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_40'}">상품 준비가 완료되어 곧 배송될 예정입니다.</p>
-						<!-- 예약상품 상품준비중 -->
-						<!-- <p th:if="${ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35' or ordDtl.ordDtlStat == 'G013_40'}">예약판매 상품으로 YYYY.MM.DD 출고 예정입니다.</p> -->
-						<!-- 배송완료 -->
-						<p th:if="${ordDtl.ordDtlStat == 'G013_60'}">15일 후 자동으로 구매확정됩니다.</p>
-						<!-- 구매확정 -->
-						<p th:if="${ordDtl.ordDtlStat == 'G013_70' and ordDtl.reviewableYn == 'Y' and ordDtl.reviewSq == 0}">리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다.</p>
-					</th:block>
+				
+				<!-- 주문 -->
+				<th:block th:unless="${ordDtl.giftPackYn == 'Y'}">
+					<!-- 주문접수 -->
+					<div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_10'}"><p>주문이 완료되어 결제를 기다리고 있습니다.</p></div>
+					<!-- 상품준비중 -->
+					<div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_40'}"><p>상품 준비가 완료되어 곧 배송될 예정입니다.</p></div>
+					<!-- 예약상품 상품준비중 -->
+					<!-- <div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35' or ordDtl.ordDtlStat == 'G013_40'}"><p>예약판매 상품으로 YYYY.MM.DD 출고 예정입니다.</p></div> -->
+					<!-- 배송완료 -->
+					<div class="order_text" th:if="${ordDtl.ordDtlStat == 'G013_60'}"><p>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>
 
-					<!-- 선물 -->
-					<th:block th:if="${ordDtl.gifyPackYn == 'Y'}">
-						<!-- 주소 입력 대기중 -->
-						<p th:if="${ordDtl.ordDtlStat == 'G013_20' and #strings.isEmpty(order.recipBaseAddr) and order.giftLimitDay >= 0}" th:text="|${order.recipNm}님이 주소를 입력하기 전입니다. (입력기한 ${order.giftLimitDt})|"></p>
-						<!-- 선물 완료 -->
-						<p th:if="${ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35' or ordDtl.ordDtlStat == 'G013_40' or ordDtl.ordDtlStat == 'G013_50' or ordDtl.ordDtlStat == 'G013_55' or ordDtl.ordDtlStat == 'G013_60' or ordDtl.ordDtlStat == 'G013_70'}" th:text="|${order.recipNm}님께 선물이 발송되었습니다.|"></p>
-						<!-- 선물 취소 -->
-						<p th:if="${ordDtl.ordDtlStat == 'G013_98' or ordDtl.ordDtlStat == 'G013_99'}">주소 입력 기한이 경과되어 선물이 취소 되었습니다.</p>
-					</th:block>
-				</div>
+				<!-- 선물 -->
+				<th:block th:if="${ordDtl.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>주소 입력 기한이 경과되어 선물이 취소 되었습니다.</p></div>
+				</th:block>
 			</div>
 			<!-- //주문상품 -->
 			</th:block>
 		</div>
 	</div>
+	<div class="sec_foot">
+		<div class="ui_row">
+			<ul class="pageNav" id="paging">
+			</ul>
+		</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="stDate" value =""/>
+		<input type="hidden" name="edDate" value =""/>
+		<input type="hidden" name="custNo" th:value ="${customerInfo.custNo}"/>
+	</form>
 </th:block>
 
 <!-- 주문 없을 때 -->
-<th:block th:unless="${orderList}" th:each="oneData, status : ${orderList}">
-
+<th:block th:unless="${orderList}">
+	
 </th:block>
+</div>
+<input type="hidden" th:value="${orderInfo.pageNo}" id="pageNo"/>
 
 <script th:inline="javascript">
 /*<![CDATA[*/
+	let orderInfo = [[${orderInfo}]];
 	$(document).ready(function() {
+		// Initialize a pagination
+		gagaPaging.init('searchForm', fnSearchOrderList, 'paging', 5);
+		
+		gagaPaging.createPagination(orderInfo.paging);
 	});
 /*]]>*/
 </script>

+ 224 - 1997
src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb.html

@@ -1,2032 +1,259 @@
 <!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/DefaultLayoutWeb">
+<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="web/common/layout/DefaultLayoutWeb">
 <!--
  *******************************************************************************
- * @source  : OrderFormWeb.html
- * @desc    : 주문/결제 Page
+ * @source  : OrderCompleteWeb.html
+ * @desc    : 주문완료 Page
  *============================================================================
  * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION
  * ===  ===========  ==========  =============================================
- * 1.0  2021.02.01   jsh77b     최초 작성
+ * 1.0  2021.03.16   jsh77b     최초 작성
  *******************************************************************************
  -->
 <body>
 <th:block layout:fragment="content">
-
-<link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css">
-<script type="text/javascript" src="/ux/pc/js/swiper.min.js"></script>
-<script type="text/javascript" src="/ux/pc/js/slick.min.js"></script>
-<script type="text/javascript" src="/ux/pc/js/jquery-ui.js"></script>
-
-<!-- payment.js -->
-<script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
-<script type="text/javascript" src="/ux/pc/js/payment.js"></script>
-	<script type="text/javascript">
-		$(document).on("click", "#buyBtn", function() {
-			$.ajax({
-				type: "POST",
-				url : '/order/create/preOrder',
-				dataType : 'html',
-				data : {
-					  pgGb		: "KCP"
-					, payMeans	: "G014_30"
-					, ordNo		: "5"
-					, goodsNm	: "상품 테스트"
-					, payAmt	: "1233"
-					, ordNm		: "이태영"
-					, ordEmail	: "xodud1202@naver.com"
-					, ordTelno	: "02-0000-0000"
-					, ordPhnno	: "010-7111-0000"
-				},
-				error : function(e) {
-					alert(3);
-				},
-				success : function(result) {
-					$("#order_info").html(result);
-					jsf__pay(document.order_info);
-				}
-			});
-		});
-	</script>
-	
-	
-
-	<form id="order_info" name="order_info" method="post" action="/order/pay/result/response" ></form>
-	
-	<div style="margin:20px;">
-		<input type="button" id="buyBtn" value="KCP테스트버튼" style="width:200px; height:70px; background-color: #fd4801; color: white; border: unset;"/>
-		<input type="button" id="kakaoBtn" value="카카오테스트버튼" style="width:200px; height:70px; background-color: #fffa00; color: black; border: unset;"/>
-		<input type="button" id="naverBtn" value="네이버테스트버튼" style="width:200px; height:70px; background-color: lawngreen; color: black; border: unset;"/>
-	</div>
-<!-- // xodud1202 -->
-
-
-<!-- card007 -->
-	<script th:inline="javascript">
-		$(document).on("click", "#kakaoBtn", function() {
-			$.ajax({
-				type: "POST",
-				url : '/order/create/preOrder',
-				dataType : 'html',
-				data : {
-					pgGb			: "KAKAO"
-					, custNo		: [[${sessionInfo.custNo}]]
-					, ordNo			: 1000
-					, goodsNm		: "상품 테스트"
-					, payAmt		: 30000
-					, ordGoodsQty	: [[${goodsTotCnt}]]
-				},
-				error : function(e) {
-					console.log(e.responseText);
-				},
-				success : function(result) {
-					$("#order_info").html(result);
-					fnKakaoPaymentReady();
-				}
-			});
-			//let url = '/order/create/preOrder';
-			//let data = {};
-			//data.pgGb = 'KAKAO';
-			//data.ordNo = 1000;
-			//data.custNo = [[${sessionInfo.custNo}]];
-			//data.goodsNm = '상품 테스트';
-			//data.ordGoodsQty = [[${goodsTotCnt}]];
-			//data.payAmt = 30000;
-			//
-			//let jsonData = JSON.stringify(data);
-			//
-			//gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-			//	$("#order_info").html(result);
-			//	console.log(result);
-			//	fnKakaoPaymentReady();
-			//});
-		});
-
-		// 카카오페이 결제준비 처리
-		var fnKakaoPaymentReady = function() {
-			let nextRedirectUrl = $('#order_info input[name=nextRedirectPcUrl]').val();
-			let option = 'width=420, height=520';
-
-			window.open(nextRedirectUrl, 'kakaoPaymentPopup', option);
-		}
-
-		// 카카오페이 결제 승인 요청
-		var fnKakaoPaymentRequest = function(pgToken) {
-			$('#order_info input[name=pgToken]').val(pgToken);
-
-			// TODO
-			// formSubmit
-
-			// 테스트용 호출
-			let url = '/order/kakao/payment/approve';
-			let data = {};
-			data.pgTid = $('#order_info input[name=pgTid]').val();
-			data.partnerOrderId = $('#order_info input[name=partnerOrderId]').val();
-			data.partnerUserId = $('#order_info input[name=partnerUserId]').val();
-			data.pgToken = $('#order_info input[name=pgToken]').val();
-
-			let jsonData = JSON.stringify(data);
-
-			gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-				console.log('====== kakaoPaymentRequest ======');
-				console.log(result.payment);
-				console.log(' ');
-				fnKakaoPaymentOrder();
-			});
-
-			return true;
-		}
-
-		// 카카오페이 결제 정보 조회 (테스트용 호출)
-		var fnKakaoPaymentOrder = function() {
-			let url = '/order/kakao/payment/order';
-			let data = {};
-			data.pgTid = $('#order_info input[name=pgTid]').val();
-
-			let jsonData = JSON.stringify(data);
-
-			gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-				console.log('====== kakaoPaymentOrder ======');
-				console.log(result.kakaoPay);
-				console.log(' ');
-				fnCancelKakaoPayment();
-			});
-
-			return true;
-		}
-
-		// 카카오페이 결제 취소 (테스트용 호출)
-		var fnCancelKakaoPayment = function() {
-			let url = '/order/kakao/payment/cancel';
-			let data = {};
-			data.pgTid = $('#order_info input[name=pgTid]').val();
-			data.payAmt = 1000;
-
-			let jsonData = JSON.stringify(data);
-
-			gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-				console.log('====== kakaoPaymentCancel ======');
-				console.log(result.kakaoPay);
-				console.log(' ');
-
-			});
-		}
-
-	</script>
-
-	<!-- =========== 네이버페이 ============= -->
-	<script th:inline="javascript">
-		$(document).on("click", "#naverBtn", function() {
-			$.ajax({
-				type: "POST",
-				url : '/order/create/preOrder',
-				dataType : 'html',
-				data : {
-					pgGb			: "NAVER"
-					, custNo		: [[${sessionInfo.custNo}]]
-					, ordNo			: 1000
-					, goodsNm		: "상품 테스트"
-					, payAmt		: 1000
-					, ordGoodsQty	: [[${goodsTotCnt}]]
-				},
-				error : function(e) {
-					mcxDialog.alert(e.responseText);
-				},
-				success : function(result) {
-					$("#order_info").html(result);
-					fnNaverPaymentReady();
-				}
-			});
-			//let url = '/order/create/preOrder';
-			//let data = {};
-			//data.pgGb = 'NAVER';
-			//data.ordNo = 1000;
-			//data.custNo = [[${sessionInfo.custNo}]];
-			//data.goodsNm = "상품 테스트";
-			//data.ordGoodsQty = [[${goodsTotCnt}]];
-			//data.payAmt = 30000;
-			//
-			//let jsonData = JSON.stringify(data);
-			//
-			//gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-			//	$("#order_info").html(result);
-			//	fnNaverPaymentReady();
-			//});
-		});
-		
-		// 네이버페이 결제준비 처리
-		var fnNaverPaymentReady = function() {
-			let naverPayUrl = 'https://' + [[${@environment.getProperty('naverPay.payUrl.web')}]];
-			let reserveId = $('#order_info input[name=reserveId]').val();
-			let url = naverPayUrl + '/payments/' + reserveId;
-			console.log(url);
-			let option = 'width=750, height=' + $(window).height();
-			
-			window.open(url, 'naverPaymentPopup', option);
-		}
-
-		// 네이버페이 결제 승인 요청
-		var fnNaverPaymentRequest = function(paymentId) {
-			$('#order_info input[name=pgTid]').val(paymentId);
-			
-			// TODO
-			// formSubmit
-			
-			// 테스트용 호출
-			let url = '/order/naver/payment/approve';
-			let data = {};
-			data.pgTid = $('#order_info input[name=pgTid]').val();
-			data.paySq = 1234;
-			data.custNo = [[${sessionInfo.custNo}]];
-			data.updNo = [[${sessionInfo.custNo}]];
-
-			let jsonData = JSON.stringify(data);
-
-			gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-				console.log('====== naverPaymentRequest ======');
-				console.log(result.payment);
-				console.log(' ');
-				fnNaverPaymentOrder();
-			});
-
-			return true;
-		}
-		
-		// 네이버페이 결제 정보 조회 (테스트용 호출)
-		var fnNaverPaymentOrder = function() {
-			let url = '/order/naver/payment/order';
-			let data = {};
-			data.pgTid = $('#order_info input[name=pgTid]').val();
-			
-			let jsonData = JSON.stringify(data);
-			
-			gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-				console.log('====== naverPaymentOrder ======');
-				console.log(result.naverPay);
-				console.log(' ');
-				fnCancelNaverPayment();
-			});
-			
-			return true;
-		}
-
-		// 네이버페이 결제 취소 (테스트용 호출)
-		var fnCancelNaverPayment = function() {
-			let url = '/order/naver/payment/cancel';
-			let data = {};
-			data.pgTid = $('#order_info input[name=pgTid]').val();
-			data.cancelRequester = '1';
-			data.chgReasonNm = '고객변심';
-			data.payAmt = 1000;
-			data.paySq = 1234;
-			data.custNo = [[${sessionInfo.custNo}]];
-			data.updNo = [[${sessionInfo.custNo}]];
-
-			let jsonData = JSON.stringify(data);
-
-			gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-				console.log('====== naverPaymentCancel ======');
-				console.log(result.naverPay);
-				console.log(' ');
-			});
-		}
-
-	</script>
-<!-- // card007 -->
-
-
-
-
-
-
-
-
-
-<!--  container -->
-<form id="payForm" name="payForm">
-
-	<!-- 주문고객정보 -->
-	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="orderInfo">
-		<tbody>
-			<tr style="height:30px;">
-				<th>custNm</th>
-				<th>email</th>
-				<th>cellPhnno</th>
-				<th>recipZipcode</th>
-				<th>recipBaseAddr</th>
-				<th>recipDtlAddr</th>
-				<th>delvMemo</th>
-				<th>foreignBuyYn</th>
-				<th>orderMadeYn</th>
-			</tr>
-			<tr style="height:30px;">
-				<td class="custNm"></td>
-				<td class="email"></td>
-				<td class="cellPhnno"></td>
-				<td class="recipZipcode"></td>
-				<td class="recipBaseAddr"></td>
-				<td class="recipDtlAddr"></td>
-				<td class="delvMemo"></td>
-				<td class="foreignBuyYn"></td>
-				<td class="orderMadeYn"></td>
-			</tr>
-		</tbody>
-	</table>
-
-	<!-- 사은품정보 -->
-	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="freegiftInfo">
-		<tr style="height:30px;">
-			<th>freegiftValArr</th>
-			<th>freegiftUsePointArr</th>
-		</tr>
-		<tr style="height:30px;">
-			<td class="freegiftValArr"></td>
-			<td class="freegiftUsePointArr"></td>
-		</tr>
-	</table>
-
-	<!-- 주문상세금액 -->
-	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="orderDetailInfo">
-		<tr style="height:30px;">
-			<th>cartSq</th>
-			<th style="display:none">goodsNm</th>
-			<th>orgCurrPrice</th>
-			<th>cpn1DcSq</th>
-			<th>cpn1DcAmt</th>
-			<th>optAddPrice</th>
-			<th>goodsQty</th>
-			<th>ordAmt</th>
-			<th>tmtb1Sq</th>
-			<th>tmtb1DcAmt</th>
-			<th>tmtb2Sq</th>
-			<th>tmtb2DcAmt</th>
-			<th>goodsCpnSq</th>
-			<th>goodsCpnDcAmt</th>
-			<th>cartCpnSq</th>
-			<th>cartCpnDcAmt</th>
-			<th>prePntDcAmt1</th>
-			<th>dcSumAmt</th>
-			<th>pntDcAmt1</th>
-			<th>gfcdUseAmt1</th>
-			<th>realOrdAmt1</th>
-			<th>savePntAmt1</th>
-			<th>shotDelvYn</th>
-			<th>foreignYn</th>
-			<th>orderMadeYn</th>
-			<th>delvFeeCd</th>
-		</tr>
-		<th:block th:each="delvAllCart, index : ${delvAllCartList}">
-			<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-				<th:block th:each="goods, i : ${delvAllCart}">
-					<tr style="height:30px;">
-						<td class="cartSq" 			th:text="${goods.cartSq}"></td>
-						<td class="goodsNm" 		th:text="${goods.goodsNm}" style="display:none"></td>
-						<td class="orgCurrPrice" 	th:text="${goods.orgCurrPrice}"></td>
-						<td class="cpn1CpnSq" 		th:text="${goods.cpn1CpnSq}"></td>
-						<td class="cpn1DcAmt" 		th:text="${goods.orgCurrPrice} - ${goods.currPrice}"></td>
-						<td class="optAddPrice" 	th:text="${goods.optAddPrice}"></td>
-						<td class="goodsQty" 		th:text="${goods.goodsQty}"></td>
-						<td class="ordAmt">0</td>
-						<th:block th:if="${goods.applyQtySectionYn} == 'Y' and ${goods.qtyTmtbSq} > 0">
-							<td class="tmtb1Sq" 	th:text="${goods.qtyTmtbSq}"></td>
-							<td class="tmtb1DcAmt" 	th:text="${goods.tmtb1DcAmt}"></td>
-						</th:block>
-						<th:block th:if="${goods.applyQtySectionYn} != 'Y'">
-							<td class="tmtb1Sq">0</td>
-							<td class="tmtb1DcAmt">0</td>
-						</th:block>
-						<th:block th:if="${goods.applyAmtSectionYn} == 'Y' and ${goods.amtTmtbSq} > 0">
-							<td class="tmtb2Sq" 	th:text="${goods.amtTmtbSq}"></td>
-							<td class="tmtb2DcAmt" 	th:text="${goods.tmtb2DcAmt}"></td>
-						</th:block>
-						<th:block th:if="${goods.applyAmtSectionYn} != 'Y'">
-							<td class="tmtb2Sq" >0</td>
-							<td class="tmtb2DcAmt" >0</td>
-						</th:block>
-						<td class="goodsCpnSq">0</td>
-						<td class="goodsCpnDcAmt">0</td>
-						<td class="cartCpnSq">0</td>
-						<td class="cartCpnDcAmt">0</td>
-						<td class="prePntDcAmt1" 	th:text="${goods.prePntDcAmt}"></td>
-						<td class="dcSumAmt">0</td>
-						<td class="pntDcAmt1">0</td>
-						<td class="gfcdUseAmt1">0</td>
-						<td class="realOrdAmt1">0</td>
-						<td class="savePntAmt1" 	th:text="${goods.savePntAmt}"></td>
-						<td class="shotDelvYn" 		th:text="${goods.shotDelvYn}"></td>
-						<td class="foreignBuyYn" 	th:text="${goods.foreignBuyYn}"></td>
-						<td class="orderMadeYn" 	th:text="${goods.orderMadeYn}"></td>
-						<td class="delvFeeCd" 		th:text="${goods.delvFeeCd}"></td>
-					</tr>
-				</th:block>
-			</th:block>
-		</th:block>
-	</table>
-
-	<!-- 배송단위목록 -->
-	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none;" name="delvFeeCdInfo">
-		<tr style="height:30px;">
-			<th>supplyCompCd</th>
-			<th>delvFeeCd</th>
-			<th>delvFee</th>
-			<th>delvCpnSq</th>
-			<th>delvCpnDcAmt</th>
-		</tr>
-		<th:block th:each="delvFeeCd, index : ${delvFeeCdList}">
-			<tr style="height:30px;">
-				<td class="supplyCompCd" th:text="${delvFeeCd.supplyCompCd}"></td>
-				<td class="delvFeeCd" th:text="${delvFeeCd.delvFeeCd}"></td>
-				<td class="delvFee" th:text="${delvFeeCd.delvFee}"></td>
-				<td class="delvCpnSq">0</td>
-				<td class="delvCpnDcAmt">0</td>
-			</tr>
-		</th:block>
-	</table>
-
-	<!-- 주문금액합계 -->
-	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none;" name="orderSumAmtInfo">
-		<tr style="height:30px;">
-			<th>orgGoodsSumAmt</th>
-			<th>delvSumAmt</th>
-			<th>freegiftUsePnt</th>
-			<th>cpn1DcSumAmt</th>
-			<th>ordSumAmt</th>
-			<th>tmtb1DcSumAmt</th>
-			<th>tmtb2DcSumAmt</th>
-			<th>tmtbDcSumAmt</th>
-			<th>goodsCpnDcSumAmt</th>
-			<th>cartCpnDcSumAmt</th>
-			<th>delvCpnDcSumAmt</th>
-			<th>cpnDcSumAmt</th>
-			<th>prePntDcAmt</th>
-			<th>pntDcSumAmt</th>
-			<th>gfcdUseSumAmt</th>
-			<th>realOrdSumAmt</th>
-			<th>savePntSumAmt</th>
-		</tr>
-		<tr style="height:30px;">
-			<td class="orgGoodsSumAmt">0</td>
-			<td class="delvSumAmt" th:text="${sumDelvFee}"></td>
-			<td class="freegiftUsePnt">0</td>
-			<td class="cpn1DcSumAmt">0</td>
-			<td class="ordSumAmt">0</td>
-			<td class="tmtb1DcSumAmt">0</td>
-			<td class="tmtb2DcSumAmt">0</td>
-			<td class="tmtbDcSumAmt">0</td>
-			<td class="goodsCpnDcSumAmt">0</td>
-			<td class="cartCpnDcSumAmt">0</td>
-			<td class="delvCpnDcSumAmt">0</td>
-			<td class="cpnDcSumAmt">0</td>
-			<td class="prePntDcSumAmt">0</td>
-			<td class="pntDcSumAmt">0</td>
-			<td class="gfcdUseSumAmt">0</td>
-			<td class="realOrdSumAmt">0</td>
-			<td class="savePntSumAmt">0</td>
-		</tr>
-	</table>
-
-	<div id="container" class="container od">
-		<div class="wrap">
-			<div class="content odPayment">
-				<!-- 페이지특정 클래스 = odPayment -->
-				<div class="cont_head">
-					<h2>주문&#47;결제</h2>
-					<div class="oder_steps">
-						<ul>
-							<li>01 쇼핑백</li>
-							<li class="on">02 주문/결제</li>
-							<li>03 주문완료</li>
-						</ul>
-					</div>
+<div id="container" class="container od">
+	<div class="wrap">
+		<div class="content completed">
+			<div class="cont_head">
+				<h2>주문완료</h2>
+				<div class="oder_steps">
+					<ul>
+						<li>01 쇼핑백</li>
+						<li>02 주문/결제</li>
+						<li class="on">03 주문완료</li>
+					</ul>
 				</div>
-				
-				<div class="cont_body">
-					<!-- CONT-BODY -->
-					<form class="form_wrap">
-						<div class="od_cont">
-							<div class="sec_head">
-								<div class="tbl type4">
+			</div>
+			<div class="cont_body">
+				<!-- CONT-BODY -->
+				<div class="od_cont">
+					<div class="sec_head">
+						<div class="info_complete">
+							<p class="txt_box">감사합니다. <span th:text="${orderInfo.ordNm}"></span> 고객님의 주문이 완료되었습니다.</p>
+							<dl class="report_box">
+								<div>
+									<dt>주문번호</dt>
+									<dd th:text="${orderInfo.ordNo}"></dd>
+								</div>
+								<!-- 무통장입금 결제시 -->
+								<th:block th:if="${orderInfo.payMeans} == 'G014_20'">
+									<div>
+										<dt>무통장입금정보</dt>
+										<dd th:text="${orderInfo.cardNm}+${orderInfo.vaBank}"></dd>
+									</div>
+									<div class="closedate">
+										<dt>입금마감</dt>
+										<dd th:text="|${orderInfo.vaDeadline}까지|"></dd>
+									</div>
+								</th:block>
+								<!-- //무통장 입금 결제시 -->
+							</dl>
+						</div>
+					</div>
+					<div class="sec_body">
+						<div class="area_payinfo">
+							<h3>주문고객</h3>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="*">
+									</colgroup>   
+									<tbody>
+										<tr>
+											<td>
+												<span class="sr-only">주문자명</span>
+												<th:block th:text="${orderInfo.ordNm}"></th:block>
+											</td>
+										</tr>
+										<tr>
+											<td>
+												<span class="sr-only">이메일</span>
+												<th:block th:text="${orderInfo.ordEmail}"></th:block>
+											</td>
+										</tr>
+										<tr>
+											<td>
+												<span class="sr-only">휴대폰 번호</span>
+												<th:block th:text="${orderInfo.ordPhnno}"></th:block>
+											</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</div>
+						<div class="area_payinfo">
+							<h3>배송지 정보</h3>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="*">
+									</colgroup>   
+									<tbody>
+										<tr>
+											<td>
+												<span class="sr-only">배송지명</span>
+												<th:block th:text="${orderInfo.recipNm}"></th:block>
+											</td>
+										</tr>
+										<tr>
+											<td>
+												<span class="sr-only">배송 주소</span>
+												<th:block th:text="${orderInfo.recipBaseAddr} + ${orderInfo.recipDtlAddr}"></th:block>
+											</td>
+										</tr>
+										<tr>
+											<td>
+												<span class="sr-only">휴대폰 번호</span>
+												<th:block th:text="${orderInfo.recipPhnno}"></th:block>
+											</td>
+										</tr>
+										<tr>
+											<td>
+												<span class="tit">배송요청 사항</span>
+												<th:block th:text="${orderInfo.delvMemo}"></th:block>
+												<button type="button" class="btn_popup" id="btn_rqstModify_pop">
+													<span>변경하기</span>
+												</button>
+											</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</div>
+						<div class="area_payinfo">
+							<h3>결제정보</h3>
+							<div class="order_amount">
+								<div class="tbl type3">
 									<table>
 										<colgroup>
-											<col width="240">
+											<col width="33.33%">
+											<col width="33.33%">
 											<col width="*">
 										</colgroup>
+										<thead>
+											<tr>
+												<th>
+													<dl>
+														<dt>총 주문금액</dt>
+														
+														<dd class="price" th:text="|${#numbers.formatInteger(ordSumAmt, 1, 'COMMA')}원|"></dd>
+													</dl>
+													<i class="ico_calc minus"></i>
+												</th>
+												<th>
+													<dl>
+														<dt>총 할인금액</dt>
+														<dd class="price" th:if="${dcSumAmt}>0" th:text="|- ${#numbers.formatInteger(dcSumAmt, 1, 'COMMA')}원|"></dd>
+														<dd class="price" th:if="${dcSumAmt}<1" th:text="|${#numbers.formatInteger(dcSumAmt, 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(realOrdSumAmt, 1, 'COMMA')}"></span>원
+														</dd>
+													</dl>
+												</th>
+											</tr>
+										</thead>
 										<tbody>
 											<tr>
-												<th>총 <span class="c_primary bold" th:text="${delvFeeCdCnt}"></span> 건으로 나뉘어 배송 예정</th>
-												<td class="t_l">
-													<span>총알배송<em class="c_primary bold" th:text="${shotCnt}" id="shotCnt"></em>건</span>
-													<span>STYLE24<em class="c_primary bold" th:text="${wmsCnt}" id="wmsCnt"></em>건</span>
-													<span>업체직배송<em class="c_primary bold" th:text="${delvCnt}"></em>건</span>
-													<span>예약배송<em class="c_primary bold" th:text="${resCnt}"></em>건</span>
+												<td>
+													<dl>
+														<div>
+															<dt>상품금액</dt>
+															<dd th:text="|${#numbers.formatInteger(goodsSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>배송비</dt>
+															<dd th:text="|${#numbers.formatInteger(delvFeeSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+													</dl>
+												</td>
+												<td>
+													<dl>
+														<div>
+															<dt>상품 할인(즉시 할인)</dt>
+															<dd th:if="${cpn1DcSumAmt}>0" th:text="|- ${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${cpn1DcSumAmt}<1" th:text="|${#numbers.formatInteger(cpn1DcSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>다다익선 할인</dt>
+															<dd th:if="${tmtbSumAmt}>0" th:text="|- ${#numbers.formatInteger(tmtbSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${tmtbSumAmt}<1" th:text="|${#numbers.formatInteger(tmtbSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>쿠폰 할인</dt>
+															<dd th:if="${cpnDcSumAmt}>0" th:text="|- ${#numbers.formatInteger(cpnDcSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${cpnDcSumAmt}<1" th:text="|${#numbers.formatInteger(cpnDcSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>선 포인트 할인</dt>
+															<dd th:if="${prePntDcSumAmt}>0" th:text="|- ${#numbers.formatInteger(prePntDcSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${prePntDcSumAmt}<1" th:text="|${#numbers.formatInteger(prePntDcSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>포인트 사용</dt>
+															<dd th:if="${pntDcSumAmt}>0" th:text="|- ${#numbers.formatInteger(pntDcSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${pntDcSumAmt}<1" th:text="|${#numbers.formatInteger(pntDcSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>상품권 사용</dt>
+															<dd th:if="${gfcdUseSumAmt}>0" th:text="|- ${#numbers.formatInteger(gfcdUseSumAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${gfcdUseSumAmt}<1" th:text="|${#numbers.formatInteger(gfcdUseSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>마일리지 사용</dt>
+															<dd th:if="${mileageDcAmt}>0" th:text="|- ${#numbers.formatInteger(mileageDcAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${mileageDcAmt}<1" th:text="|${#numbers.formatInteger(mileageDcAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>제휴 할인</dt>
+															<dd th:if="${allianceDcAmt}>0" th:text="|- ${#numbers.formatInteger(allianceDcAmt, 1, 'COMMA')}원|"></dd>
+															<dd th:if="${allianceDcAmt}<1" th:text="|${#numbers.formatInteger(allianceDcAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+													</dl>
+												</td>		
+												<td>
+													<dl>
+														<div>
+															<dt>적립 예정 포인트</dt>
+															<dd th:text="|${#numbers.formatInteger(savePntSumAmt, 1, 'COMMA')}원|"></dd>
+														</div>
+														<div>
+															<dt>결제방법</dt>
+															<dd>
+																<span class="paymethod" th:if="!${orderInfo.cardNm}" th:text="${orderInfo.payType}"></span>
+																<span class="paymethod" th:if="${orderInfo.cardNm}" th:text="${orderInfo.cardNm}"></span>
+															</dd>
+														</div>
+													</dl>
 												</td>
 											</tr>
 										</tbody>
 									</table>
 								</div>
 							</div>
-							
-							<div class="sec_body">
-								<div class="foldGroup">
-									<ul>
-										<!-- 주문고객정보 -->
-										<li class="fold_mbinfo" id="custemerInfo" style="display:none"></li>
-										<!-- //주문고객정보 -->
-										
-										<!-- 배송지정보 -->
-										<li class="fold_mbinfo" id="deliveryAddrInfo" style="display:none"></li>
-										<!-- //배송지정보 -->
-										
-										<!-- 사은품선택 -->
-										<li id="freegiftInfo" style="display:none"></li>
-										<!-- //사은품선택 -->
-										
-										<!-- 할인/혜택 사용 -->
-										<li id="dcAmtInfo" style="display:none"></li>
-										<!-- //할인/혜택 사용 -->
-										
-										<!-- 결제수단 선택 -->
-										<li class="fold_paymethod" id="paymentInfo" style="display:none"></li>
-										<!-- //결제수단 선택 -->
-									</ul>
-								</div>
-							</div>
 						</div>
-						
-						<div class="od_side">
-							<div class="area_order">
-								<div class="tit_box">
-									<h3 class="subH2">주문내역</h3>
-									<span> <em class="number" th:text="${goodsTotCnt}"></em>개의 상품</span>
-								</div>
-								
-								<div id="orderListInfo" style="display:none">
-								</div>
-								
-								<div class="od_amount_box">
-									<dl>
-										<div>
-											<dt>상품금액</dt>
-											<dd id="orgGoodsSumAmt" th:text="|${#numbers.formatInteger(orgGoodsSumAmt, 1, 'COMMA')}원|"></dd>
-										</div>
-										<div>
-											<dt>배송비</dt>
-											<dd id="delvSumAmt" th:text="|${#numbers.formatInteger(sumDelvFee, 1, 'COMMA')}원|"></dd>
-										</div>
-										<div>
-											<dt>할인금액</dt>
-											<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>
-											<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" id="couponDcSumAmt"></span></dd>
-										</div>
-										<div>
-											<dt>선포인트 사용</dt>
-											<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" id="pntDcAmt">0원</span></dd>
-										</div>
-										<div>
-											
-											<dt>상품권 사용</dt>
-											<dd><span class="disc_amount" id="gfcdUseAmt">0원</span></dd>
-										</div>
-									</dl>
-								</div>
-								
-								<div class="totalprice_box">
-									<dl>
-										<dt>총 결제 예정 금액</dt>
-										<dd data-weight="price" data-font="lato">
-											<span id="realOrdAmt"></span>원
-										</dd>
-									</dl>
-									<p class="info_point">스타일 포인트 
-										<span class="save_point" id="savePntSumAmt" th:text="|${#numbers.formatInteger(savePntSumAmt, 1, 'COMMA')}P|"></span> 적립예정
-									</p>
-								</div>
-								
-							</div>
+					</div>
+					<div class="sec_foot">
+						<div class="btn_group_md">
+							<button type="button" class="btn btn_default btn_md"><span>주문 상세보기</span></button>
+							<button type="button" class="btn btn_dark btn_md"><span>쇼핑 계속하기</span></button>
 						</div>
-					</form>
-					<!-- // CONT-BODY -->
+					</div>
 				</div>
+				<!-- //CONT-BODY -->
 			</div>
 		</div>
 	</div>
-</form>
-
-<!-- // container -->
-<footer id="footer"></footer>
-
-<!-- 배송지변경팝업 -->
-<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 adrsModify_pop" id="adrsModifyPop" tabindex="-1" role="dialog" aria-labelledby="adrsModifyLabel" 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 rqstModify_pop" id="rqstModifyPop" tabindex="-1" role="dialog" aria-labelledby="rqstModifyLabel" aria-hidden="true"></div>
-
-<!-- 사은품지급안내 팝업 -->
-<div class="modal fade od_pop infoGift_pop" id="infoGiftPop" tabindex="-1" role="dialog" aria-labelledby="infoGiftLabel" aria-hidden="true"></div>
-
-<script th:inline="javascript">
-// 배송관련정보 변수선언
-var cartGoodsList		= [[${cartGoodsList}]]			// 배송목록
-var shotCnt 			= [[${shotCnt}]];				// 자사 총알 배송건수
-var wmsCnt 				= [[${wmsCnt}]];				// 자사 일반 배송건수
-var shotWmsCnt 			= [[${shotWmsCnt}]];			// 자사 총알,일반 배송건수
-var resCnt 				= [[${resCnt}]];				// 자사 예약 배송건수
-var delvCnt 			= [[${delvCnt}]];				// 입점 일반 배송건수
-var orgSumDelvFee		= [[${sumDelvFee}]];			// 최초배송비합계
-var prePntDcAmt			= [[${prePntDcAmt}]];			// 선포인트사용가능금액
-
-var custNm				= [[${order.custNm}]];			// 주문자명
-var cellPhnno			= [[${order.cellPhnno}]];		// 핸드폰번호
-var email				= [[${order.email}]];			// 이메일
-var recipZipcode		= [[${order.recipZipcode}]];	// 우편번호
-var recipBaseAddr		= [[${order.recipBaseAddr}]];	// 기본주소
-var recipDtlAddr		= [[${order.recipDtlAddr}]];	// 상세주소
-var cartSqArr			= [[${order.cartSqArr}]];		// 장바구니시퀀스 목록
-var shotDelvUseYn		= [[${order.shotDelvUseYn}]];	// 총알배송사용여부(장바구니)
-var shotDelvYn			= [[${order.shotDelvUseYn}]];	// 총알배송사용여부(장바구니)
-
-var foreignBuyYn		= [[${foreignBuyYn}]];			// 해외구매대행여부
-var orderMadeYn			= [[${orderMadeYn}]];			// 주문제작상품여부
-
-var custCpnSq 			= 0;
-var cpnIndex			= 0;
-var cpnApplyTemp		= false;
-
-//AJAX 로드를 위한 변수 설정
-var jsonObj 			= {};
-var jsonData			= null;
-
-// 컨텐츠 호출
-$(document).ready( function() {
-	
-	// 장바구니시퀀스 배열 변환
-	cartSqArr = String(cartSqArr).split(",");
-	
-	// AJAX 로드를 위한 변수 설정
-	jsonObj = {
-		"custNm" 			: custNm
-		, "cellPhnno" 		: cellPhnno
-		, "email" 			: email
-		, "recipZipcode" 	: recipZipcode
-		, "recipBaseAddr" 	: recipBaseAddr
-		, "recipDtlAddr" 	: recipDtlAddr
-		, "cartSqArr"		: cartSqArr
-		, "dispYn"			: "N"
-		, "shotDelvYn"		: shotDelvUseYn
-		, "foreignBuyYn"	: foreignBuyYn
-		, "orderMadeYn"		: orderMadeYn
-	}
-	
-	jsonData = JSON.stringify(jsonObj);
-
-	// 1. AJAX 정보(회원정보로드)
-	custemerInfoSet(jsonData);
-	
-	// 999. 개발화면정보설정
-	var devTemp = false;
-	var arr = []
-	arr[0] = "orderInfo";
-	arr[1] = "freegiftInfo";
-	arr[2] = "orderDetailInfo";
-	arr[3] = "delvFeeCdInfo";
-	arr[4] = "orderSumAmtInfo";
-	
-	if (devTemp) {
-		$("table").each(function(){
-			var name = $(this).attr("name");
-			for (i=0 ; i<arr.length ; i++) {
-				if (name == arr[i]) {
-					$(this).show();
-				}
-			}
-		});
-	}
-	
-});
-
-// 1. 함수기능 정의
-// 1.1 고객정보로드
-var custemerInfoSet = function(jsonData) {
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/custemerInfo',
-		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) {
-			if (result != null) {
-				$("#custemerInfo").css("display", "block");
-				$("#custemerInfo").html(result);
-
-				// 고객정보설정
-				$(".custNm").text($("input[name='custNm'").val());
-				$(".email").text($("input[name='email'").val());
-				$(".cellPhnno").text($("input[name='cellPhnno'").val());
-			}
-			// 1.2 배송정보로드
-			deliveryAddrInfoSet(jsonData);
-		}
-	});
-}
-
-// 1.2 배송정보로드
-var deliveryAddrInfoSet = function(jsonData) {
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/deliveryAddrInfo',
-		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) {
-			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());
-			}
-			
-			// 1.3 총알배송가능 지역, 총알배송 가능 시간 체크(초기로드정보)
-			fnGetDailyDeliveryCheck(true);
-		}
-	});
-}
-
-// 1.3 총알배송가능 지역, 총알배송 가능 시간 체크
-var fnGetDailyDeliveryCheck = function (temp) {
-	
-	// 장바구니 총알배송 사용여부 체크 N
-	if (shotDelvUseYn == "N") {
-		// 초기에 한번 데이타 로드
-		if (temp) {
-			// 1.4 주문상품목록로드
-			orderListInfoSet(jsonData, temp);
-		}
-	} else {
-		// 배송지 우편번호 체크
-		var zipcode		= $("input[name='recipZipcode']").val();
-	
-		// 총알배송여부 체크 배송지정보 존재여부 체크
-		if (zipcode == null || zipcode == '') {
-			//alert("배송지정보가 없습니다. 기본 총알배송 가능지역으로 설정 합니다.");
-			zipcode = "04320"; // 기본 서울역 우편번호로 설정
-		}
-		
-		// TODO
-		var shotDelvObj 	= {"zipNo" : zipcode};
-	
-		gagajf.ajaxJsonSubmit(
-			"/order/getDailyDeliveryCheck"
-			, JSON.stringify(shotDelvObj)
-			, function (result) {
-				// 총알배송여부체크
-				var tempShotDelvYn = "N";
-				
-				if (parseInt(result) > 0) {
-					tempShotDelvYn = "Y";
-				}
-				
-				// json 값 설정
-				var orderListObj 		= {"cartSqArr":cartSqArr, "shotDelvYn":tempShotDelvYn};
-				var orderListJsonData 	= JSON.stringify(orderListObj);
-				
-				if (temp) {
-					// 1.3 주문상품목록로드
-					orderListInfoSet(orderListJsonData, temp);
-				} else {
-					if (tempShotDelvYn != shotDelvYn) {
-						orderListInfoSet(orderListJsonData, temp);
-					}
-				}
-				
-				shotDelvYn = tempShotDelvYn;
-			}
-		)
-	}
-}
-
-// 1.4 주문상품목록로드
-var orderListInfoSet = function(orderListJsonData, temp) {
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/orderListInfo',
-		data		: orderListJsonData,
-		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) {
-			if (result != null) {
-				$("#orderListInfo").css("display", "block");
-				$("#orderListInfo").html(result);
-			}
-			
-			// 1.5 사은품정보로드
-			if (temp) {
-				freegiftInfoSet(jsonData);
-			}
-		}
-	});
-}
-
-// 1.5 사은품정보로드
-var freegiftInfoSet = function(jsonData) {
-	
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/freegiftInfo',
-		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) {
-			if (result != null) {
-				$("#freegiftInfo").html(result);
-				
-				var total_gift 		= 0;
-				var total_deduct 	= 0;
-				
-				// 2.2 사은품선택 라디오 버튼 기능
-				$(".freegiftRdo").on("click", function() {
-					total_gift 		= 0;
-					total_deduct 	= 0;
-					
-					$(".freegiftRdo").each(function(){
-						if ($(this).attr("allYn") == "Y" ) {
-							total_gift 		+= 1;
-						}
-						
-						// 라디오버튼 사은품 체크
-						if ($(this).is(":checked")) {
-							// 수령거부가 아닐때 체크
-							if ($(this).val() != "noSel") {
-								total_gift 		+= 1;
-								total_deduct 	+= parseInt($(this).attr("usepoint"));
-							}
-						}
-					});
-					
-					$(".total_gift").text(total_gift);							// 사은품총선택개수
-					$(".total_deduct").text(total_deduct.addComma());			// 사은품총사용포인트
-					$(".freegiftUsePnt").text(total_deduct);
-					
-					// 포인트초기화기능
-					pntDcAmtReset();
-				});
-				
-				// 사은품테이블 그리기
-				$(".gift_box").each(function(){
-					$(this).find(".freegiftRdo").each(function(){
-						if ($(this).attr("allYn") == "Y" ) {
-							total_gift += 1;
-						}
-						$(".total_gift").text(total_gift);							// 사은품총선택개수
-					});
-				});
-			}
-			
-			// 1.6 결제타입로드
-			paymentInfoSet(jsonData);
-		}
-	});
-}
-
-// 1.6 결제타입로드 (결제버튼기능구현)
-var paymentInfoSet = function(jsonData) {
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/paymentInfo',
-		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) {
-			if (result != null) {
-				$("#paymentInfo").css("display", "block");
-				$("#paymentInfo").html(result);
-				
-				// 결재하기
-				$("#btn_payment").on("click", function(){
-					// 사은품정보
-					var freegiftValArr 		= $(".freegiftValArr").text().split(",");
-					var prePntDcAmtYn		= $("input[name='rdi-beforpoint']:checked").val();
-					var orderDetailList		= [];
-					var delvFeeCdList		= [];
-					var ordGoodsQty			= 0;
-					var goodsNm				= "";
-
-					// 주문상세데이타 생성
-					$(".cartSq").each(function(){
-						var orderDetailData = {
-							"cartSq"			: $(this).text()
-							,"currPrice"		: $(this).parent().find(".orgCurrPrice").text()
-							,"optAddPrice"		: $(this).parent().find(".optAddPrice").text()
-							,"ordAmt"			: $(this).parent().find(".ordAmt").text()
-							,"cpn1DcSq"			: $(this).parent().find(".cpn1DcSq").text()
-							,"cpn1DcAmt"		: $(this).parent().find(".cpn1DcAmt").text()
-							,"goodsQty"			: $(this).parent().find(".goodsQty").text()
-							,"tmtb1Sq"			: $(this).parent().find(".tmtb1Sq").text()
-							,"tmtb1DcAmt"		: $(this).parent().find(".tmtb1DcAmt").text()
-							,"tmtb2Sq"			: $(this).parent().find(".tmtb2Sq").text()
-							,"tmtb2DcAmt"		: $(this).parent().find(".tmtb2DcAmt").text()
-							,"goodsCpnSq"		: $(this).parent().find(".goodsCpnSq").text()
-							,"goodsCpnDcAmt"	: $(this).parent().find(".goodsCpnDcAmt").text()
-							,"cartCpnSq"		: $(this).parent().find(".cartCpnSq").text()
-							,"cartCpnDcAmt"		: $(this).parent().find(".cartCpnDcAmt").text()
-							,"prePntDcAmt"		: $(this).parent().find(".prePntDcAmt1").text()
-							,"pntDcAmt"			: $(this).parent().find(".pntDcAmt1").text()
-							,"gfcdUseAmt"		: $(this).parent().find(".gfcdUseAmt1").text()
-							,"realOrdAmt"		: $(this).parent().find(".realOrdAmt1").text()
-							,"savePntAmt"		: $(this).parent().find(".savePntAmt1").text()
-							,"shotDelvYn"		: $(this).parent().find(".shotDelvYn").text()
-							,"foreignBuyYn"		: $(this).parent().find(".foreignYn").text()
-							,"makeGoodsYn"		: $(this).parent().find(".orderMadeYn").text()
-							,"delvFeeCd"		: $(this).parent().find(".delvFeeCd").text()
-						}
-						
-						// 상품수
-						ordGoodsQty++;
-						
-						orderDetailList.push(orderDetailData);
-					});
-					
-					// 주문배송업체정보 생성
-					$(".delvFeeCd").each(function(){
-						var delvFeeCdData = {
-							"delvFeeCd"			: $(this).text()
-							,"supplyCompCd"		: $(this).parent().find(".supplyCompCd").text()
-							,"delvFee"			: $(this).parent().find(".delvFee").text()
-							,"delvCpnSq"		: $(this).parent().find(".delvCpnSq").text()
-							,"delvCpnDcAmt"		: $(this).parent().find(".delvCpnDcAmt").text()
-						}
-						
-						delvFeeCdList.push(delvFeeCdData);
-					});
-					
-					// 주문데이타 생성
-					var orderData = {
-						"custNm"				: $(".custNm").text()
-						,"email"				: $(".email").text()
-						,"recipPhnno"			: $(".cellPhnno").text()
-						,"recipZipcode"			: $(".recipZipcode").text()
-						,"recipBaseAddr"		: $(".recipBaseAddr").text()
-						,"recipDtlAddr"			: $(".recipDtlAddr").text()
-						,"delvMemo"				: $(".delvMemo").text()
-						,"freegiftValArr"		: freegiftValArr
-						,"prePntDcAmtYn"		: prePntDcAmtYn
-						,"orderDetailList"		: orderDetailList
-						,"delvFeeCdList"		: delvFeeCdList
-						,"shotDelvYn"			: shotDelvYn
-						,"entryNo"				: $("input[name='entryNo']").val()
-						,"pgGb"					: "KCP"
-						,"payMeans"				: "G014_30"
-						,"payAmt"				: $(".realOrdSumAmt").text()
-						,"ordNm"				: $(".custNm").text()
-						,"ordPhnno"				: $(".cellPhnno").text()
-						,"goodsNm"				: $(".goodsNm").eq(0).text()
-						,"ordGoodsQty"			: ordGoodsQty
-					};
-					
-					var orderData = JSON.stringify(orderData);
-					
-					$.ajax( {
-						type		: "POST",
-						url 		: '/order/create/preOrder',
-						data		: orderData,
-						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) {
-							// 결재정보로드
-							$("#order_info").html(result);
-							jsf__pay(document.order_info);
-						}
-					});
-				});
-
-				// 1.8 할인영역 설정
-				dcAmtInfoSet(jsonData);
-			}
-		}
-	});
-}
-
-// 1.7 프로모션 쿠폰 적용 함수
-var serialCpnApply = function(){
-	let data = {
-		rdCpnNm : $("#payForm #serialCpnNm").val()
-	}
-
-	let jsonData = JSON.stringify(data);
-
-	$.ajax( {
-		type			: "POST",
-		url 			: '/cart/list/serialCpnApply',
-		contentType		: 'application/json',
-		dataType 		: 'json',
-		data 			: jsonData,
-		success 		: function(result) {
-			var jsonObj 	= {"cartSqArr" : cartSqArr,"dispYn" : "Y"};
-			var jsonData 	= JSON.stringify(jsonObj);
-
-			// 성공일때는 쿠폰정보 및 포인트 정보 reset
-			if (result.serialCpnInfo.result == "SUCCESS") {
-				// 1.8 할인영역 재로드
-				dcAmtInfoSet(jsonData);
-			} else {
-				alert(result.serialCpnInfo.result);
-			}
-		}
-	});
-}
-
-// 1.8 할인영역 설정 (쿠폰, 선포인트, 포인트, 상품권)
-var dcAmtInfoSet = function(jsonData) {
-	// 1.8.1 할인정보로드
-	$.ajax( {
-		type		: "POST",
-		url 		: '/order/dcAmtInfo',
-		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) {
-			if (result != null) {
-				$("#dcAmtInfo").css("display", "block");
-				$("#dcAmtInfo").html(result);
-				
-				// 1.8.2 쿠폰적용초기화(할인율최고)
-				custCpnInit();
-				
-				// 1.8.3 쿠폰 SELECT BOX 기능 설정(js적용)
-				$('.select_custom.type1').each(function(index){
-					var selecter01 	= new sCombo($(this));
-					
-					// 선택박스 버튼기능 구현
-					$(this).find("ul li").each(function(i){
-						
-						// SELECT BOX 버튼 기능 설정
-						$(this).on("click", function(){
-							// 쿠폰 선택없음
-							if ($(this).prop("value") == 0) {
-								// 쿠폰 선택없음
-								cpnApplyDel($(this));
-							}
-							// 쿠폰선택
-							else {
-								// 쿠폰중복체크 후 적용
-								if (custCpnDuplicationCheck($(this).prop("value"), index)) {
-									// 쿠폰적용
-									custCpnApply($(this));
-								} else {
-									alert("이미 적용된 쿠폰 입니다.");
-									
-									// 쿠폰적용불가
-									custCpnNotApply($(this));
-								}
-								
-								// 쿠폰할인금액 SUM
-								custCpnSumAmtCal();
-								
-								// 최대할인혜택적용 체크해제
-								if ($("#chk-maxdisc").is(":checked")) {
-									$("#chk-maxdisc").attr("checked", false);
-								}
-							}
-						});
-					});
-				});
-				
-				// 1.8.4 쿠폰 최대할인금액 초기화 버튼 설정
-				$("#chk-maxdisc").on("click", function(){
-					if ($(this).is(":checked")) {
-						custCpnInit();
-					}
-				});
-
-				// 1.8.5 쿠폰할인적용 삭제 버튼
-				$(".btn_del_coupon").on("click", function(){
-					//선택없음선택
-					$(this).parent().parent().find("ul li").each(function(i){
-						if (i == 0) {
-							cpnApplyDel($(this)); // 쿠폰 선택없음
-						}
-					});
-				});
-				
-				// 1.8.6 선포인트 적용 버튼 기능
-				$("input[name='rdi-beforpoint']").each(function(){
-					// 선포인트 초기 설정 사용함
-					if ($(this).val() == "Y") {
-						$(this).attr("checked", true);
-					}
-					
-					// 버튼기능 구현
-					$(this).on("click", function(){
-						var rmPrePntAmt 		= parseInt($("input[name='rmPrePntAmt']").val());
-						
-						// 선포인트적용
-						if ($(this).val() == "Y") {
-							$("#prePntDcAmt").text("-"+rmPrePntAmt.addComma()+"원");
-						} else {
-							$("#prePntDcAmt").text("0원");
-						}
-						
-						// 쿠폰할인금액 SUM
-						custCpnSumAmtCal();
-					});
-				});
-				
-				// 1.8.7 포인트 적용버튼 기능
-				$("#btn_point_apply").on("click", function(){
-					var rmPntAmt 			= parseInt($("input[name='rmPntAmt']").val());
-					var freegiftUsePnt 		= parseInt($(".freegiftUsePnt").text());
-					var pntDcAmt 			= parseInt($("input[name='pntDcAmtStr']").val());
-					var realOrdAmt 			= parseInt($(".realOrdSumAmt").text());
-					var applyPntDcAmt 		= (realOrdAmt * 40) / 100;
-					
-					rmPntAmt				= rmPntAmt - freegiftUsePnt;
-					
-					// 입력여부체크
-					if (pntDcAmt < 1) {
-						alert("사용할 포인트를 입력해주세요");
-						// 포인트리셋기능
-						pntDcAmtReset();
-						return false;
-					}
-					
-					// 보유포인트보다 초과 사용 불가
-					if (pntDcAmt > rmPntAmt) {
-						alert("보유포인트 보다 초과 사용 할 수 없습니다.");
-						// 포인트리셋기능
-						pntDcAmtReset();
-						return false;
-					}
-
-					// TODO 포인트 사용금액 1000P 이상 사용
-					if (pntDcAmt < 1000) {
-						alert("포인트는 최소 1,000P이상 사용해야 합니다.");
-						// 포인트리셋기능
-						pntDcAmtReset();
-						return false;
-					}
-					
-					// 실결제금액보다 크게 적용 되었을때 적용 불가능
-					if (pntDcAmt > applyPntDcAmt) {
-						alert("결제금액의 최대 40%를 초과 사용 할 수 없습니다.");
-						// 포인트리셋기능
-						pntDcAmtReset();
-						return false;
-					}
-					
-					// 포인트 적용
-					$(".pntDcSumAmt").text(pntDcAmt);
-					$("#pntDcAmt").text("-"+pntDcAmt.addComma()+"원");
-					
-					// 상품권리렛기능
-					gfcdUseAmtReset();
-				});
-				
-				// 1.8.8 상품권 적용버튼 기능
-				$("#btn_gfcd_apply").on("click", function(){
-					var rmGfcdAmt 		= parseInt($("input[name='rmGfcdAmt']").val());
-					var gfcdUseAmt 		= parseInt($("input[name='gfcdUseAmtStr']").val());
-					
-					// 입력여부체크
-					if (gfcdUseAmt < 1 || $("input[name='gfcdUseAmtStr']").val() == "") {
-						alert("사용할 금액을 입력해주세요");
-						// 상품권리셋기능
-						gfcdUseAmtReset();
-						return false;
-					}
-					
-					// 보유금액보다 초과 사용 불가
-					if (gfcdUseAmt > rmGfcdAmt) {
-						alert("보유금액 보다 초과 사용 할 수 없습니다.");
-						// 상품권리셋기능
-						gfcdUseAmtReset();
-						return false;
-					}
-
-					// TODO 포인트 사용금액 1000원 이상 사용
-					if (gfcdUseAmt < 1000) {
-						alert("상품권 사용금액은 최소 1,000원 이상 사용해야 합니다.");
-						// 상품권리셋기능
-						gfcdUseAmtReset();
-						return false;
-					}
-					
-					// 상품권 적용
-					$(".gfcdUseSumAmt").text(gfcdUseAmt);
-					$("#gfcdUseAmt").text("-"+gfcdUseAmt.addComma()+"원");
-					
-					// 금액전체계산
-					custCpnSumAmtCal();
-				});
-				
-				// 금액계산초기화
-				custCpnSumAmtCal();
-			}
-		}
-	});
-}
-
-// 1.9 쿠폰 최대할인율 쿠폰적용
-var custCpnInit = function() {
-	
-	// 쿠폰적용없음적용
-	$(".select_custom.type1").each(function(index){
-		// select box 쿠폰 적용
-		var cpnCartSq = $(this).find("input[name='cpnCartSq']").val();
-		
-		// 장바구니시퀀스 체크
-		$(".cartSq").each(function(){
-			if (cpnCartSq == $(this).text()) {
-				$(this).parent().find(".goodsCpnSq").text("0");			// 상품쿠폰시퀀스
-				$(this).parent().find(".goodsCpnDcAmt").text("0");		// 상품쿠폰할인금액
-			}
-		});
-		
-		$(this).find("input[name='custCpnSq']").val("0");
-		$(this).find("input[name='cpnDcAmt']").val("0");
-		
-		$(this).find(".select").text("선택없음");
-		$(this).find(".cp_discount").css("display", "none");
-	});
-	
-	// 최대할인율 쿠폰적용
-	$('.select_custom.type1').each(function(index){
-		cpnIndex 		= 0;
-		cpnApplyTemp 	= false;
-		
-		// select 박스 반복문 실행
-		$(this).find("ul li").each(function(i){
-			cpnIndex++;
-			
-			// 1이상부터 중복 체크
-			if (cpnApplyTemp == false) {
-				if (cpnIndex > 1) {
-					if (custCpnDuplicationCheck($(this).prop("value"), index)) {
-						// 쿠폰적용
-						custCpnApply($(this));
-						// 쿠폰할인적용
-						cpnApplyTemp = true;
-					}
-				}
-			}
-		});
-	});
-	
-	// 포인트기능 리렛
-	pntDcAmtReset();
-}
-
-// 1.10 쿠폰중복사용체크
-var custCpnDuplicationCheck = function(custCpnSq, index) {
-	var selCustSq 	= 0;
-	var cnt 		= 0;
-
-	// 쿠폰중본사용체크
-	$("input[name='custCpnSq']").each(function(i){
-		if (index != i) {
-			selCustSq = $(this).val();
-			if (selCustSq == custCpnSq) {
-				cnt++;
-			}
-		}
-	});
-	
-	// 쿠폰적용불가
-	if (cnt > 0) {
-		return false;
-	}
-	// 쿠폰적용가능
-	else {
-		return true;
-	}
-}
-
-// 1.11 쿠폰중복체크 후 적용가능
-var custCpnApply = function(obj) {
-	// select box 쿠폰 적용
-	var cpnType 	= obj.parent().parent().find("input[name='cpnType']").val();
-	
-	// 상품쿠폰적용
-	if (cpnType == "goodsCpn") {
-		// 적용된 할인금액 text 설정 
-		var dcAmtStr = "- " + parseInt(obj.attr("data")).addComma() + " 원 할인적용";
-		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
-		
-		var cpnCartSq 	= obj.parent().parent().find("input[name='cpnCartSq']").val();
-		
-		// 장바구니시퀀스 체크
-		$(".cartSq").each(function(){
-			if (cpnCartSq == $(this).text()) {
-				$(this).parent().find(".goodsCpnSq").text(obj.prop("value"));			// 상품쿠폰시퀀스
-				$(this).parent().find(".goodsCpnDcAmt").text(obj.attr("data"));			// 상품쿠폰할인금액
-			}
-		});
-		
-		obj.parent().parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
-	} 
-	// 장바구니쿠폰적용
-	else if (cpnType == "cartCpn") {
-		var dcWay 				= obj.parent().find("input[name='dcWay']").val();
-		var dcVal 				= obj.parent().find("input[name='dcVal']").val();
-		var cartCpnDcSumAmt		= 0;
-		var tempSumAmt			= 0;
-		var cartSqLen			= $(".cartSq").length;
-		var leftAmt				= 0;
-		var index				= 1;
-		
-		// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
-		obj.find("input[name='cartCpnCartSq']").each(function(){
-			var cartCpnCartSq 		= $(this).val();
-			var cartCpnDcAmt		= 0;
-			
-			// 장바구니시퀀스 체크
-			$(".cartSq").each(function(){
-				if (cartCpnCartSq == $(this).text()) {
-					var orgCurrPrice 	= parseInt($(this).parent().find(".orgCurrPrice").text());
-					var tmtb1DcAmt 		= parseInt($(this).parent().find(".tmtb1DcAmt").text());
-					var tmtb2DcAmt 		= parseInt($(this).parent().find(".tmtb2DcAmt").text());
-					var goodsCpnDcAmt 	= parseInt($(this).parent().find(".goodsCpnDcAmt").text());
-					
-					var tempAmt 		= orgCurrPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
-					tempSumAmt			= tempSumAmt + tempAmt; 
-					
-					// 할인율일때 할인금액 
-					if (dcWay == "G240_20") {
-						cartCpnDcAmt = (tempAmt * dcVal) / 100;
-						cartCpnDcSumAmt = cartCpnDcSumAmt + cartCpnDcAmt;
-						
-						$(this).parent().find(".cartCpnSq").val(obj.prop("value"));
-						$(this).parent().find(".cartCpnDcAmt").val(cartCpnDcAmt);
-					}
-				}
-			});
-		});
-		
-		// 금액일때 할인금액 적용
-		if (dcWay == "G240_10") {
-			cartCpnDcSumAmt = dcVal;
-			leftAmt			= dcVal;
-			index = 1;
-			
-			// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
-			obj.find("input[name='cartCpnCartSq']").each(function(){
-				var cartCpnCartSq 		= $(this).val();
-				var cartCpnDcAmt		= 0;
-									
-				// 장바구니시퀀스 체크
-				$(".cartSq").each(function(){
-					if (cartCpnCartSq == $(this).text()) {
-						var orgCurrPrice 	= parseInt($(this).parent().find(".orgCurrPrice").text());
-						var tmtb1DcAmt 		= parseInt($(this).parent().find(".tmtb1DcAmt").text());
-						var tmtb2DcAmt 		= parseInt($(this).parent().find(".tmtb2DcAmt").text());
-						var goodsCpnDcAmt 	= parseInt($(this).parent().find(".goodsCpnDcAmt").text());
-						
-						var tempAmt 		= orgCurrPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
-						var tempDiv 		= parseInt((tempAmt / tempSumAmt) * 100);
-						var cartCpnDcAmt	= 0;
-				
-						if (index == cartSqLen) {
-							cartCpnDcAmt 	= leftAmt;
-						} else {
-							cartCpnDcAmt	= parseInt((cartCpnDcSumAmt * tempDiv) / 100);
-							leftAmt 		= leftAmt - cartCpnDcAmt;
-						}
-						
-						$(this).parent().find(".cartCpnSq").text(obj.prop("value"));
-						$(this).parent().find(".cartCpnDcAmt").text(cartCpnDcAmt);
-						
-						index++;
-					}
-				});
-			});
-		} 
-		
-		obj.parent().parent().find("input[name='cpnDcAmt']").val(cartCpnDcSumAmt);
-		
-		var dcAmtStr = "- " + cartCpnDcSumAmt.addComma() + " 원 할인적용";
-		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
-	}
-	// 배송비쿠폰적용
-	else if (cpnType == "delvCpn") {
-		var delvFee 		= parseInt(obj.attr("delvfee"));
-		var delvCpnDcAmt 	= parseInt(obj.attr("data"));
-		var delvFeeCd 		= obj.attr("delvfeecd");
-		
-		// 배송비가 배송비쿠폰할인금액보다 클경우 배송비 - 배송비쿠폰할인금액을 적용
-		if (delvFee > delvCpnDcAmt) {
-			cpnDcAmt = delvFee - delvCpnDcAmt;
-		} else {
-			cpnDcAmt = delvFee;
-		}
-		
-		// 적용된 할인금액 text 설정 
-		var dcAmtStr = "- " + cpnDcAmt.addComma() + " 원 할인적용";
-		
-		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
-		
-		obj.parent().parent().find("input[name='cpnDcAmt']").val(cpnDcAmt);
-		obj.parent().parent().find("input[name='delvFeeCd']").val(obj.attr("delvfeecd"));
-		
-		$(".delvCpnDcSumAmt").text(obj.attr("data"));
-				
-		// 배송비쿠폰 테이블 적용
-		
-		$(".delvFeeCd").each(function(){
-			if ($(this).text() == delvFeeCd) {
-				$(this).parent().find(".delvCpnSq").text(obj.prop("value"));
-				$(this).parent().find(".delvCpnDcAmt").text(obj.attr("data"));
-			}
-		});
-	}
-	
-	// select box 쿠폰 적용 (공통적용)
-	obj.parent().parent().find("input[name='custCpnSq']").val(obj.prop("value"));
-	obj.parent().parent().find(".select").text(obj.text());
-	
-	// 선택된 할인금액 노출
-	obj.parent().parent().parent().parent().parent().find(".cp_discount").css("display", "block");
-	
-	// 포인트기능 리렛
-	pntDcAmtReset();
-}
-
-// 1.12 쿠폰중복체크 후 적용불가
-var custCpnNotApply = function(obj) {
-	// 이전에 등록된 쿠폰시퀀스  
-	var custCpnSq = obj.parent().parent().find("input[name='custCpnSq']").val();
-
-	// 이전에 등록된 쿠폰시퀀스 비교후 데이타 원복
-	obj.parent().find("li").each(function(){
-		if ($(this).prop("value") == custCpnSq) {
-			$(this).parent().parent().find(".select").text($(this).text());
-			
-			if (custCpnSq == 0) {
-				$(this).parent().parent().parent().parent().parent().find(".cp_discount").css("display", "none");
-			} else {
-				$(this).parent().parent().parent().parent().parent().find(".cp_discount").css("display", "block");
-			}
-		}
-	});
-	
-	// 포인트기능 리렛
-	pntDcAmtReset();
-}
-
-// 1.13 쿠폰 선택없음 기능 구현
-var cpnApplyDel = function(obj) {
-	// 쿠폰타입(상품쿠폰, 장바구니쿠폰, 배송비쿠폰)
-	var cpnType = obj.parent().parent().find("input[name='cpnType']").val();
-	
-	// 상품쿠폰적용
-	if (cpnType == "goodsCpn") {
-		// select box 쿠폰 적용
-		var cpnCartSq = obj.parent().parent().find("input[name='cpnCartSq']").val();
-		
-		// 장바구니시퀀스 체크
-		$(".cartSq").each(function(){
-			if (cpnCartSq == $(this).text()) {
-				$(this).parent().find(".goodsCpnSq").text("0");			// 상품쿠폰시퀀스
-				$(this).parent().find(".goodsCpnDcAmt").text("0");		// 상품쿠폰할인금액
-			}
-		});
-	}
-	// 장바구니쿠폰적용
-	else if (cpnType == "cartCpn") {
-		// 장바구니쿠폰 시퀀스 0, 장바구니할인금액 0
-		$(".cartSq").each(function(){
-			$(this).parent().find(".cartCpnSq").text("0");
-			$(this).parent().find(".cartCpnDcAmt").text("0");
-		});
-	}
-	// 배송비쿠폰적용
-	else if (cpnType == "delvCpn") {
-		// 장바구니쿠폰 시퀀스 0, 장바구니할인금액 0
-		//$("input[name='custCpnSq']").each(function(){
-			//$(this).parent().find("input[name='delvFeeCd']").val("0");
-		//});
-		
-		obj.parent().parent().find("input[name='delvFeeCd']").val("0");
-		$(".delvCpnSq").text("0");
-	}
-	
-	obj.parent().parent().find("input[name='custCpnSq']").val("0");
-	obj.parent().parent().find("input[name='cpnDcAmt']").val("0");
-
-	obj.parent().parent().find(".select").text("선택없음");
-	obj.parent().parent().parent().parent().parent().find(".cp_discount").css("display", "none");
-	
-	// 포인트기능 리렛
-	pntDcAmtReset();
-	
-	// 최대할인혜택적용 체크해제
-	if ($("#chk-maxdisc").is(":checked")) {
-		$("#chk-maxdisc").attr("checked", false);
-	}
-}
-
-// 1.14 선포인트리셋기능 (사용안함)
-var prePntDcAmtReset = function() {
-	var rmPrePntAmt = parseInt($("input[name='rmPrePntAmt']").val());
-	$("input[name='prePntDcAmt']").val(rmPrePntAmt);
-	
-	// 선포인트사용여부 체크 후 적용
-	$("input[name='rdi-beforpoint']").each(function(){
-		// 선포인트 초기 설정 사용함
-		if ($(this).val() == "Y") {
-			$(this).attr("checked", true);
-		}
-	});
-
-	$("#prePntDcAmt").text("-"+rmPrePntAmt.addComma()+"원");
-	
-	// 포인트기능 리렛
-	pntDcAmtReset();
-}
-
-// 1.15 포인트리셋기능
-var pntDcAmtReset = function() {
-	$(".pntDcSumAmt").text("0");
-	$("input[name='pntDcAmtStr']").val("");
-	$("#pntDcAmt").text("0원");
-	
-	// 상품권리셋기능
-	gfcdUseAmtReset();
-}
-
-// 1.16 상품권리셋기능
-var gfcdUseAmtReset = function() {
-	$(".gfcdUseSumAmt").text("0");
-	$("input[name='gfcdUseAmtStr']").val("");
-	$("#gfcdUseAmt").text("0원");
-	
-	// 금액전체계산
-	custCpnSumAmtCal();
-}
-
-// 1.17 쿠폰할인금액합계설정(금액전체계산)
-var custCpnSumAmtCal = function() {
-	var cpnDcSumAmt = 0;
-	var cpnApplyCnt = 0;
-	
-	$("input[name='cpnDcAmt']").each(function(){
-		cpnDcSumAmt = cpnDcSumAmt + parseInt($(this).val());
-		
-		// 적용된 쿠폰 수량
-		if (parseInt($(this).val()) > 0) {
-			cpnApplyCnt++;
-		}
-	});
-	
-	// 쿠폰영역
-	$(".maxdisc_amount").text("(-" + cpnDcSumAmt.addComma() + "원)"); // 쿠폰할인금액합계
-	$("#cpnApplyCnt").text(cpnApplyCnt + "장");
-	
-	// 상품목록영역
-	$("#couponDcSumAmt").text("-" + cpnDcSumAmt.addComma() + "원"); // 쿠폰할인금액합계
-	$(".cpnDcSumAmt").text(cpnDcSumAmt);
-	
-	// 배송비할인적용
-	$("input[name='cpnType']").each(function(){
-		if ($(this).val() == "delvCpn") {
-			var delvSumAmt = parseInt(orgSumDelvFee) - parseInt($(this).parent().find("input[name='cpnDcAmt']").val());
-			
-			// 최종배송비
-			$("#delvSumAmt").text(delvSumAmt.addComma() + "원");
-			$(".delvSumAmt").text(delvSumAmt);
-		}
-	});
-	
-	// 2021.03.06 주문상세 테이블 적용
-	// 포인트금액 상품상세에 포인트금액 분배 작업
-	var prePntDcAmtYn 		= $("input[name='rdi-beforpoint']:checked").val();
-	var leftPntAmt			= parseInt($(".pntDcSumAmt").text());
-	var leftGfcdAmt			= parseInt($(".gfcdUseSumAmt").text());
-	var cartSqLenght		= $(".cartSq").length; 
-	var index				= 1;
-	
-	var orgGoodsSumAmt		= 0;
-	var cpn1DcSumAmt		= 0;
-	var ordSumAmt			= 0;
-	var tmtb1DcSumAmt		= 0;
-	var tmtb2DcSumAmt		= 0;
-	var tmtbDcSumAmt		= 0;
-	var goodsCpnDcSumAmt	= 0;
-	var cartCpnDcSumAmt		= 0;
-	var delvCpnDcSumAmt		= 0;
-	var cpnDcSumAmt			= 0;
-	var prePntDcSumAmt		= 0;
-	var pntDcSumAmt 		= parseInt($(".pntDcSumAmt").text());
-	var gfcdUseSumAmt 		= parseInt($(".gfcdUseSumAmt").text());
-	var realOrdSumAmt		= 0;
-	var savePntSumAmt		= 0;
-	
-	$(".cartSq").each(function(){
-		var orgCurrPrice 	= parseInt($(this).parent().find(".orgCurrPrice").text());
-		var cpn1DcAmt		= parseInt($(this).parent().find(".cpn1DcAmt").text());
-		var optAddPrice 	= parseInt($(this).parent().find(".optAddPrice").text());
-		var goodsQty 		= parseInt($(this).parent().find(".goodsQty").text());
-		var tmtb1DcAmt		= parseInt($(this).parent().find(".tmtb1DcAmt").text());
-		var tmtb2DcAmt		= parseInt($(this).parent().find(".tmtb2DcAmt").text());
-		var goodsCpnDcAmt	= parseInt($(this).parent().find(".goodsCpnDcAmt").text());
-		var cartCpnDcAmt	= parseInt($(this).parent().find(".cartCpnDcAmt").text());
-		var prePntDcAmt1	= parseInt($(this).parent().find(".prePntDcAmt1").text());
-		var dcSumAmt		= 0;
-		var savePntAmt1		= parseInt($(this).parent().find(".savePntAmt1").text());
-		
-		// 주문금액 = ((판매가 - 즉시할인가) + 옵션추가금액) * 장바구니수량
-		orgGoodsSumAmt		= orgGoodsSumAmt + (orgCurrPrice + optAddPrice) * goodsQty;
-		cpn1DcSumAmt		= cpn1DcSumAmt + cpn1DcAmt;
-		tmtb1DcSumAmt		= tmtb1DcSumAmt + tmtb1DcAmt;
-		tmtb2DcSumAmt		= tmtb2DcSumAmt + tmtb2DcAmt;
-		tmtbDcSumAmt		= tmtbDcSumAmt + (tmtb1DcAmt + tmtb2DcAmt);
-		goodsCpnDcSumAmt	= goodsCpnDcSumAmt + goodsCpnDcAmt;
-		cartCpnDcSumAmt		= cartCpnDcSumAmt + cartCpnDcAmt;
-		cpnDcSumAmt			= cpnDcSumAmt + (goodsCpnDcAmt + cartCpnDcAmt);
-		prePntDcSumAmt		= prePntDcSumAmt + prePntDcAmt1;
-		
-		var ordAmt			= ((orgCurrPrice +  - cpn1DcAmt) + optAddPrice) * goodsQty;
-		ordSumAmt			= ordSumAmt + ordAmt;
-		
-		// 선포인트사용여부
-		// 할인금액합계 = 다다익선수량금액 + 다다익선금액금액 + 상품쿠폰금액 + 장바구니금액 + 선포인트금액
-		if (prePntDcAmtYn == "Y") {
-			dcSumAmt		= tmtb1DcAmt + tmtb2DcAmt + goodsCpnDcAmt + cartCpnDcAmt + prePntDcAmt1;
-		} else {
-			dcSumAmt		= tmtb1DcAmt + tmtb2DcAmt + goodsCpnDcAmt + cartCpnDcAmt;
-		}
-		
-		// 주문금액설정
-		$(this).parent().find(".ordAmt").text(ordAmt);
-		$(this).parent().find(".dcSumAmt").text(dcSumAmt);
-		
-		savePntSumAmt		= savePntSumAmt + savePntAmt1;
-	});
-	
-	// 포인트, 상품권 금액 분배
-	$(".cartSq").each(function(){
-		var ordAmt 			= parseInt($(this).parent().find(".ordAmt").text());
-		var dcSumAmt		= parseInt($(this).parent().find(".dcSumAmt").text()); 
-		var tempDiv 		= parseInt((ordAmt / ordSumAmt) * 100);
-		var pntDcAmt1 		= 0;
-		var gfcdUseAmt1		= 0;
-		
-		if (index == cartSqLenght) {
-			pntDcAmt1 		= leftPntAmt;
-			gfcdUseAmt1		= leftGfcdAmt;
-		} else {
-			pntDcAmt1 		= parseInt((pntDcSumAmt * tempDiv) / 100);
-			gfcdUseAmt1		= parseInt((gfcdUseSumAmt * tempDiv) / 100);
-			leftPntAmt		= leftPntAmt - pntDcAmt1;
-			leftGfcdAmt		= leftGfcdAmt - gfcdUseAmt1;
-		}
-		
-		var realOrdAmt1		= ordAmt - dcSumAmt - (pntDcAmt1 - gfcdUseAmt1);
-		realOrdSumAmt		= realOrdSumAmt + realOrdAmt1;
-		
-		$(this).parent().find(".pntDcAmt1").text(pntDcAmt1);
-		$(this).parent().find(".gfcdUseAmt1").text(gfcdUseAmt1);
-		$(this).parent().find(".realOrdAmt1").text(realOrdAmt1);
-		
-		index++;
-	});
-	
-	$(".orgGoodsSumAmt").text(orgGoodsSumAmt);
-	$(".cpn1DcSumAmt").text(cpn1DcSumAmt);
-	$(".ordSumAmt").text(ordSumAmt);
-	$(".tmtb1DcSumAmt").text(tmtb1DcSumAmt);
-	$(".tmtb2DcSumAmt").text(tmtb2DcSumAmt);
-	$(".tmtbDcSumAmt").text(tmtbDcSumAmt);
-	$(".goodsCpnDcSumAmt").text(goodsCpnDcSumAmt);
-	$(".cartCpnDcSumAmt").text(cartCpnDcSumAmt);
-	$(".cpnDcSumAmt").text(cpnDcSumAmt);
-	$(".prePntDcSumAmt").text(prePntDcSumAmt);
-	$(".realOrdSumAmt").text(realOrdSumAmt);
-	$(".savePntSumAmt").text(savePntSumAmt);
-	
-	$("#realOrdAmt").text(realOrdSumAmt.addComma() + "원"); // 총 결제 예정 금액
-	
-	var tempSavePnt			= savePntSumAmt - prePntDcAmt;
-	
-	// 사은품사용 후 보유포인트	
-	var rmPntAmt 			= parseInt($("input[name='rmPntAmt']").val());
-	var freegiftUsePnt 		= parseInt($(".freegiftUsePnt").text());
-	rmPntAmt 				= rmPntAmt - freegiftUsePnt; 
-	$(".rmPntAmt").text("보유 : " + rmPntAmt.addComma() + "P");
-	
-	// 걸제영역
-	$("#btn_payment").text("동의 후 "+realOrdSumAmt.addComma()+"원 결제하기");
-	
-	// 적립포인트
-	$("#savePntSumAmt").text(savePntSumAmt.addComma()+"P");
-	
-	// 사은품정보 설정
-	var freegiftValArr 			= [];
-	var freegiftUsePointArr 	= [];
-		
-	$(".gift_box").each(function(){
-		$(this).find(".freegiftRdo").each(function(){
-			// 사은품필수
-			if ($(this).attr("allYn") == "Y" ) {
-				freegiftValArr.push($(this).val());
-				freegiftUsePointArr.push($(this).attr("usepoint"));
-			}
-			
-			// 라디오버튼 선택 사은품 체크
-			if ($(this).is(":checked")) {
-				// 수령거부가 아닐때 체크
-				if ($(this).val() != "noSel") {
-					freegiftValArr.push($(this).val());
-					freegiftUsePointArr.push($(this).attr("usepoint"));
-				}
-			}
-		});
-	});
-	
-	$(".freegiftValArr").text(freegiftValArr);				// 사은품시퀀스배열
-	$(".freegiftUsePointArr").text(freegiftUsePointArr);	// 사은품사용포인트배열
-};
-
-
-</script>
-
-<script th:inline="javascript">
-// 화면준비상태
-$(document).ready( function() {
-	// 배송지변경 팝업열기
-	$(document).on('click','#btn_adrsChange_pop',function(e){
-		$.ajax( {
-			type		: "POST",
-			url 		: '/order/delvAddrChangePop',
-			dataType 	: 'html',
-			success 	: function(result) {
-				if (result != null) {
-					$("#adrsChangePop").html(result);
-					$("#adrsChangePop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 배송지추가 팝업열기
-	$(document).on('click','#btn_addrAdd_pop',function(e){
-		$.ajax( {
-			type		: "POST",
-			url 		: '/order/delvAddrAddPop',
-			dataType 	: 'html',
-			success 	: function(result) {
-				if (result != null) {
-					$("#adrsAddPop").html(result);
-					$("#adrsAddPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 배송지수정 팝업열기
-	$("#btn_addrModify_pop").on("click", function(e){
-		$.ajax( {
-			type		: "POST",
-			url 		: '/order/delvAddrModifyPop',
-			dataType 	: 'html',
-			success 	: function(result) {
-				if (result != null) {
-					$("#adrsModifyPop").html(result);
-					$("#adrsModifyPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 배송요청사항 팝업열기
-	$("#btn_rqstModify_pop").on("click", function(e){
-		var jsonObj = new Object();
-		jsonObj.delvMemo = $("input[name='delvMemo']").val();
-		
-		$.ajax({
-			type		: "POST",
-			url 		: "/order/delvMemoChangePop",
-			data		: jsonObj,
-			dataType 	: "html",
-			success 	: function(result) {
-				if (result != null) {
-					$("#rqstModifyPop").html(result);
-					$("#rqstModifyPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-	
-	// 해외배송 입력
-	$(document).on('change','.odPayment .area_overseas #rdi-overs1', function(e){
-		$('.info_box.overs2').hide();
-		$('.info_box.overs1').show();
-		return false;
-	}).on('change','.odPayment .area_overseas #rdi-overs2', function(e){
-		$('.info_box.overs1').hide();
-		$('.info_box.overs2').show();
-		return false;
-	});
-
-	// 사은품지급안내 팝업열기
-	$("#btn_infoGift_pop").on("click",function(e){
-		$.ajax({
-			type		: "POST",
-			url 		: "/order/freegiftInfoPop",
-			dataType 	: "html",
-			success 	: function(result) {
-				if (result != null) {
-					$("#infoGiftPop").html(result);
-					$("#infoGiftPop").modal("show");
-				}
-			}
-		});
-		
-		return false;
-	});
-
-	// 할인쿠폰 확인
-	$(document).on('click','.odPayment .area_seldiscount .btn_coupon_toggle',function(e){
-		$('.coupon_list').toggle();
-		$(this).toggleClass('on');
-		return false;
-	});
-
-	// 결제수단 선택
-	$(document).on('change','.odPayment .area_paymethod .paymethod_radio input',function(e){
-		$('.radio_blk').removeClass('on');
-		$(this).parents('.radio_blk').addClass('on');
-		$(this).parents('.radio_blk').find('.paymethod_box').show();
-		$(this).parents('.radio_blk').siblings('div').find('.paymethod_box').hide();
-	
-		var paymethodlabel =  $(this).prop('labels');
-		$(this).parents('li').find('.fold_head .data span').text($(paymethodlabel).text());
-	
-		// 간편결제 카드추가 슬라이드
-		var swiper = new Swiper('.paymethod_box .card_quickpay .list_card', {
-			slidesPerView: 'auto',
-			spaceBetween: 160,
-			centeredSlides: true,
-			navigation: {
-				nextEl: '.list_card .swiper-button-next',
-				prevEl: '.list_card .swiper-button-prev',
-			},
-		});
-		return false;
-	});
-
-	// STYLE24 간편결제 배너닫기
-	$(document).on('click','.odPayment .area_paymethod .quickpay_bnr .btn_close_bnr',function(e){
-		$('.quickpay_bnr').hide();
-	});
-
-	// 결제수단 선택 > 즐겨찾기 추가시 
-	$(document).on('click','.odPayment .area_paymethod .paymethod_box .card .etc .btn_favorcard',function(e){
-		$(this).toggleClass('active');
-		return false;
-	});
-
-	// 결제수단 > 일반결제> 실시간계좌이체 선택시            
-	$(document).on('change','.odPayment input:radio[name=rdi-paynormal]',function(e){
-		var paynormalValue = $(this).attr('id');
-		
-		if (paynormalValue == 'rdi-paynormal2') {
-			$('.area_paymethod .agree_insurance').show();
-		} else {
-			$('.area_paymethod .agree_insurance').hide();
-		}
-		return false;
-	});
-
-	// 개인정보동의 열고닫기
-	$(document).on('click','.area_paymentinfo .payinfo_blk a',function(e){		
-		e.preventDefault();
-		$(this).parents('.payinfo_blk').toggleClass('on');
-		var privacyToggle = $(this).find('span');
-		$(privacyToggle).text($(privacyToggle).text() == '보기' ? '닫기' : '보기');
-		return false;
-	});
-
-	// 간편결제등록 > STEP1.이용약관 팝업열기
-	$(document).on('click','.btn_addcard',function(e){
-		$("#qPayAgree_pop").modal("show");
-		return false;
-	});
-
-	// 간편결제등록 > STEP1.이용약관 체크
-	$(document).on('click','.area_QpayCk .agr_select button',function(e){
-		$(this).parents('.area_QpayCk').find('.info_agrQpay').toggle();
-		var payagrToggle = $(this).find('span');
-		$(payagrToggle).text($(payagrToggle).text() == '약관열기' ? '약관닫기' : '약관열기');
-		return false;
-	});
-
-	// 간편결제등록 > STEP1.이용약관 체크박스 전체선택
-	$(document).on('click','#chk-Qpay-agrAll',function(e){
-		$(this).parents(".qPayAgree_pop").find('.agree_Qpay input').prop("checked", $(this).is(":checked"));
-	});
-
-	// 간편결제등록 > STEP1.이용약관 체크박스 개별선택
-	$(document).on("click", ".agree_Qpay input",function(e){
-		var is_checked = true;
-		$(".agree_Qpay input").each(function(){
-			is_checked = is_checked && $(this).is(":checked");
-		});
-		$("#chk-Qpay-agrAll").prop("checked", is_checked);
-	});
-
-	// 간편결제등록 > 본인인증 팝업열기
-	$(document).on('click','#btn_qPayidConfirm_pop',function(e){
-		$("#qPayidConfirm_pop").modal("show");
-		return false;
-	});
-});
-</script>
-
+</div>
 </th:block>
 </body>
 </html>

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

@@ -45,7 +45,7 @@
 					</div>
 				</dd>
 			</div>
-			<div>
+			<div id="custCpnInfo" style="display:none">
 				<dt>할인쿠폰</dt>
 				<dd>
 					<a href="javascript:void(0);" class="btn_coupon_toggle">할인쿠폰 <span id="cpnApplyCnt"></span>적용</a>
@@ -270,6 +270,17 @@ $(document).ready( function() {
 
 		$("#dcAmtInfo .fold_cont .btn_coupon_toggle").addClass("on");
 		$("#dcAmtInfo .fold_cont .coupon_list").css("display", "block");
+		
+		// 2021.03.15 보유쿠폰존재하면 할인쿠폰 영역 노출
+		var custCpnCnt  = 0;
+		$("#custCpnInfo .coupon").each(function(){
+			custCpnCnt++;
+		});
+		
+		if (custCpnCnt > 0) {
+			$("#custCpnInfo").show();
+		}
+		
 	}
 });
 </script>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1098 - 1646
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html


+ 1842 - 0
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb20210317.html

@@ -0,0 +1,1842 @@
+<!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/DefaultLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : OrderFormWeb.html
+ * @desc    : 주문/결제 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.01   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+
+<link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css">
+<script type="text/javascript" src="/ux/pc/js/swiper.min.js"></script>
+<script type="text/javascript" src="/ux/pc/js/slick.min.js"></script>
+<script type="text/javascript" src="/ux/pc/js/jquery-ui.js"></script>
+
+<!-- payment.js -->
+<script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
+<script type="text/javascript" src="/ux/pc/js/payment.js"></script>
+
+<form id="order_info" name="order_info" method="post" action="/order/pay/result/response" ></form>
+
+<!--  container -->
+<form id="payForm" name="payForm">
+
+	<!-- 주문고객정보 -->
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="orderInfo" id="orderInfo">
+		<tbody>
+			<tr style="height:30px;">
+				<th>custNm</th>
+				<th>email</th>
+				<th>cellPhnno</th>
+				<th>recipZipcode</th>
+				<th>recipBaseAddr</th>
+				<th>recipDtlAddr</th>
+				<th>delvMemo</th>
+				<th>foreignBuyYn</th>
+				<th>orderMadeYn</th>
+			</tr>
+			<tr style="height:30px;">
+				<td class="custNm"></td>
+				<td class="email"></td>
+				<td class="cellPhnno"></td>
+				<td class="recipZipcode"></td>
+				<td class="recipBaseAddr"></td>
+				<td class="recipDtlAddr"></td>
+				<td class="delvMemo"></td>
+				<td class="foreignBuyYn"></td>
+				<td class="orderMadeYn"></td>
+			</tr>
+		</tbody>
+	</table>
+
+	<!-- 사은품정보 -->
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="freegiftInfo">
+		<tr style="height:30px;">
+			<th>freegiftValArr</th>
+			<th>freegiftUsePointArr</th>
+			<th>freegiftSqArr</th>
+			<th>freegiftGoodsArr</th>
+		</tr>
+		<tr style="height:30px;">
+			<td class="freegiftValArr"></td>
+			<td class="freegiftUsePointArr"></td>
+			<td class="freegiftSqArr"></td>
+			<td class="freegiftGoodsArr"></td>
+		</tr>
+	</table>
+
+	<!-- 주문상세금액 -->
+	<table border="1" style="font-size:10px; text-align:center; margin-top:20px; display:none;" name="orderDetailInfo" id="orderDetailInfo">
+		<tr style="height:30px;">
+			<th>cartSq</th>
+			<th style="display:none">goodsNm</th>
+			<th>goodsCd</th>
+			<th>goodsType</th>
+			<th>itemCd</th>
+			<th>optCd</th>
+			<th style="display:none">optCd1</th>
+			<th style="display:none">optCd2</th>
+			<th style="display:none">itemQtyr</th>
+			<th>orgCurrPrice</th>
+			<th>cpn1DcSq</th>
+			<th>cpn1DcAmt</th>
+			<th>optAddPrice</th>
+			<th>goodsQty</th>
+			<th>ordAmt</th>
+			<th>tmtb1Sq</th>
+			<th>tmtb1DcAmt</th>
+			<th>tmtb2Sq</th>
+			<th>tmtb2DcAmt</th>
+			<th>goodsCpnSq</th>
+			<th>goodsCpnDcAmt</th>
+			<th>cartCpnSq</th>
+			<th>cartCpnDcAmt</th>
+			<th>prePntDcAmt1</th>
+			<th>dcSumAmt</th>
+			<th>pntDcAmt1</th>
+			<th>gfcdUseAmt1</th>
+			<th>realOrdAmt1</th>
+			<th>savePntAmt1</th>
+			<th>shotDelvYn</th>
+			<th>foreignYn</th>
+			<th>orderMadeYn</th>
+			<th>delvFeeCd</th>
+		</tr>
+		<th:block th:each="delvAllCart, index : ${delvAllCartList}">
+			<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
+				<th:block th:each="goods, i : ${delvAllCart}">
+					<tr style="height:30px;">
+						<td class="cartSq" 			th:text="${goods.cartSq}"></td>
+						<td class="goodsNm" 		th:text="${goods.goodsNm}" style="display:none"></td>
+						<td class="goodsCd"			th:text="${goods.goodsCd}"></td>
+						<td class="goodsType"		th:text="${goods.goodsType}"></td>
+						<td class="itemCd"			th:text="${goods.itemCd}"></td>
+						<td class="optCd"			th:text="${goods.optCd}"></td>
+						<td class="optCd1"			th:text="${goods.optCd1}" style="display:none"></td>
+						<td class="optCd2"			th:text="${goods.optCd2}" style="display:none"></td>
+						<td class="itemQtyr"		th:text="${goods.itemQtyr}" style="display:none"></td>
+						<td class="orgCurrPrice" 	th:text="${goods.orgCurrPrice}"></td>
+						<td class="cpn1CpnSq" 		th:text="${goods.cpn1CpnSq}"></td>
+						<td class="cpn1DcAmt" 		th:text="${goods.orgCurrPrice} - ${goods.currPrice}"></td>
+						<td class="optAddPrice" 	th:text="${goods.optAddPrice}"></td>
+						<td class="goodsQty" 		th:text="${goods.goodsQty}"></td>
+						<td class="ordAmt">0</td>
+						<th:block th:if="${goods.applyQtySectionYn} == 'Y' and ${goods.qtyTmtbSq} > 0">
+							<td class="tmtb1Sq" 	th:text="${goods.qtyTmtbSq}"></td>
+							<td class="tmtb1DcAmt" 	th:text="${goods.tmtb1DcAmt}"></td>
+						</th:block>
+						<th:block th:if="${goods.applyQtySectionYn} != 'Y'">
+							<td class="tmtb1Sq">0</td>
+							<td class="tmtb1DcAmt">0</td>
+						</th:block>
+						<th:block th:if="${goods.applyAmtSectionYn} == 'Y' and ${goods.amtTmtbSq} > 0">
+							<td class="tmtb2Sq" 	th:text="${goods.amtTmtbSq}"></td>
+							<td class="tmtb2DcAmt" 	th:text="${goods.tmtb2DcAmt}"></td>
+						</th:block>
+						<th:block th:if="${goods.applyAmtSectionYn} != 'Y'">
+							<td class="tmtb2Sq" >0</td>
+							<td class="tmtb2DcAmt" >0</td>
+						</th:block>
+						<td class="goodsCpnSq">0</td>
+						<td class="goodsCpnDcAmt">0</td>
+						<td class="cartCpnSq">0</td>
+						<td class="cartCpnDcAmt">0</td>
+						<td class="prePntDcAmt1" 	th:text="${goods.prePntDcAmt}"></td>
+						<td class="dcSumAmt">0</td>
+						<td class="pntDcAmt1">0</td>
+						<td class="gfcdUseAmt1">0</td>
+						<td class="realOrdAmt1">0</td>
+						<td class="savePntAmt1" 	th:text="${goods.savePntAmt}"></td>
+						<td class="shotDelvYn" 		th:text="${goods.shotDelvYn}"></td>
+						<td class="foreignBuyYn" 	th:text="${goods.foreignBuyYn}"></td>
+						<td class="orderMadeYn" 	th:text="${goods.orderMadeYn}"></td>
+						<td class="delvFeeCd" 		th:text="${goods.delvFeeCd}"></td>
+					</tr>
+				</th:block>
+			</th:block>
+		</th:block>
+	</table>
+
+	<!-- 배송단위목록 -->
+	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none;" name="delvFeeCdInfo" id="delvFeeCdInfo">
+		<tr style="height:30px;">
+			<th>supplyCompCd</th>
+			<th>delvFeeCd</th>
+			<th>delvFee</th>
+			<th>delvCpnSq</th>
+			<th>delvCpnDcAmt</th>
+		</tr>
+		<th:block th:each="delvFeeCd, index : ${delvFeeCdList}">
+			<tr style="height:30px;">
+				<td class="supplyCompCd" th:text="${delvFeeCd.supplyCompCd}"></td>
+				<td class="delvFeeCd" th:text="${delvFeeCd.delvFeeCd}"></td>
+				<td class="delvFee" th:text="${delvFeeCd.delvFee}"></td>
+				<td class="delvCpnSq">0</td>
+				<td class="delvCpnDcAmt">0</td>
+			</tr>
+		</th:block>
+	</table>
+
+	<!-- 주문금액합계 -->
+	<table border="1" style="font-size:10px; text-align:center;  margin-top:20px; display:none;" name="orderSumAmtInfo" id="orderSumAmtInfo">
+		<tr style="height:30px;">
+			<th>orgGoodsSumAmt</th>
+			<th>delvSumAmt</th>
+			<th>freegiftUsePnt</th>
+			<th>cpn1DcSumAmt</th>
+			<th>ordSumAmt</th>
+			<th>tmtb1DcSumAmt</th>
+			<th>tmtb2DcSumAmt</th>
+			<th>tmtbDcSumAmt</th>
+			<th>goodsCpnDcSumAmt</th>
+			<th>cartCpnDcSumAmt</th>
+			<th>delvCpnDcSumAmt</th>
+			<th>cpnDcSumAmt</th>
+			<th>prePntDcAmt</th>
+			<th>pntDcSumAmt</th>
+			<th>gfcdUseSumAmt</th>
+			<th>realOrdSumAmt</th>
+			<th>savePntSumAmt</th>
+		</tr>
+		<tr style="height:30px;">
+			<td class="orgGoodsSumAmt">0</td>
+			<td class="delvSumAmt" th:text="${sumDelvFee}"></td>
+			<td class="freegiftUsePnt">0</td>
+			<td class="cpn1DcSumAmt">0</td>
+			<td class="ordSumAmt">0</td>
+			<td class="tmtb1DcSumAmt">0</td>
+			<td class="tmtb2DcSumAmt">0</td>
+			<td class="tmtbDcSumAmt">0</td>
+			<td class="goodsCpnDcSumAmt">0</td>
+			<td class="cartCpnDcSumAmt">0</td>
+			<td class="delvCpnDcSumAmt">0</td>
+			<td class="cpnDcSumAmt">0</td>
+			<td class="prePntDcSumAmt">0</td>
+			<td class="pntDcSumAmt">0</td>
+			<td class="gfcdUseSumAmt">0</td>
+			<td class="realOrdSumAmt">0</td>
+			<td class="savePntSumAmt">0</td>
+		</tr>
+	</table>
+
+	<div id="container" class="container od">
+		<div class="wrap">
+			<div class="content odPayment">
+				<!-- 페이지특정 클래스 = odPayment -->
+				<div class="cont_head">
+					<h2>주문&#47;결제</h2>
+					<div class="oder_steps">
+						<ul>
+							<li>01 쇼핑백</li>
+							<li class="on">02 주문/결제</li>
+							<li>03 주문완료</li>
+						</ul>
+					</div>
+				</div>
+				
+				<div class="cont_body">
+					<!-- CONT-BODY -->
+					<form class="form_wrap">
+						<div class="od_cont">
+							<div class="sec_head">
+								<div class="tbl type4">
+									<table>
+										<colgroup>
+											<col width="240">
+											<col width="*">
+										</colgroup>
+										<tbody>
+											<tr>
+												<th>총 <span class="c_primary bold" th:text="${delvFeeCdCnt}"></span> 건으로 나뉘어 배송 예정</th>
+												<td class="t_l">
+													<span>총알배송<em class="c_primary bold" th:text="${shotCnt}" id="shotCnt"></em>건</span>
+													<span>STYLE24<em class="c_primary bold" th:text="${wmsCnt}" id="wmsCnt"></em>건</span>
+													<span>업체직배송<em class="c_primary bold" th:text="${delvCnt}"></em>건</span>
+													<span>예약배송<em class="c_primary bold" th:text="${resCnt}"></em>건</span>
+												</td>
+											</tr>
+										</tbody>
+									</table>
+								</div>
+							</div>
+							
+							<div class="sec_body">
+								<div class="foldGroup">
+									<ul>
+										<!-- 주문고객정보 -->
+										<li class="fold_mbinfo" id="custemerInfo" style="display:none"></li>
+										<!-- //주문고객정보 -->
+										
+										<!-- 배송지정보 -->
+										<li class="fold_mbinfo" id="deliveryAddrInfo" style="display:none"></li>
+										<!-- //배송지정보 -->
+										
+										<!-- 사은품선택 -->
+										<li id="freegiftInfo" style="display:none"></li>
+										<!-- //사은품선택 -->
+										
+										<!-- 할인/혜택 사용 -->
+										<li id="dcAmtInfo" style="display:none"></li>
+										<!-- //할인/혜택 사용 -->
+										
+										<!-- 결제수단 선택 -->
+										<li class="fold_paymethod" id="paymentInfo" style="display:none"></li>
+										<!-- //결제수단 선택 -->
+									</ul>
+								</div>
+							</div>
+						</div>
+						
+						<div class="od_side">
+							<div class="area_order">
+								<div class="tit_box">
+									<h3 class="subH2">주문내역</h3>
+									<span> <em class="number" th:text="${goodsTotCnt}"></em>개의 상품</span>
+								</div>
+								
+								<div id="orderListInfo" style="display:none">
+								</div>
+								
+								<div class="od_amount_box">
+									<dl>
+										<div>
+											<dt>상품금액</dt>
+											<dd id="orgGoodsSumAmt" th:text="|${#numbers.formatInteger(orgGoodsSumAmt, 1, 'COMMA')}원|"></dd>
+										</div>
+										<div>
+											<dt>배송비</dt>
+											<dd id="delvSumAmt" th:text="|${#numbers.formatInteger(sumDelvFee, 1, 'COMMA')}원|"></dd>
+										</div>
+										<div>
+											<dt>할인금액</dt>
+											<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>
+											<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" id="couponDcSumAmt"></span></dd>
+										</div>
+										<div>
+											<dt>선포인트 사용</dt>
+											<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" id="pntDcAmt">0원</span></dd>
+										</div>
+										<div>
+											
+											<dt>상품권 사용</dt>
+											<dd><span class="disc_amount" id="gfcdUseAmt">0원</span></dd>
+										</div>
+									</dl>
+								</div>
+								
+								<div class="totalprice_box">
+									<dl>
+										<dt>총 결제 예정 금액</dt>
+										<dd data-weight="price" data-font="lato">
+											<span id="realOrdAmt"></span>원
+										</dd>
+									</dl>
+									<p class="info_point">스타일 포인트 
+										<span class="save_point" id="savePntSumAmt" th:text="|${#numbers.formatInteger(savePntSumAmt, 1, 'COMMA')}P|"></span> 적립예정
+									</p>
+								</div>
+								
+							</div>
+						</div>
+					</form>
+					<!-- // CONT-BODY -->
+				</div>
+			</div>
+		</div>
+	</div>
+</form>
+
+<!-- // container -->
+<footer id="footer"></footer>
+
+<!-- 배송지변경팝업 -->
+<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 adrsModify_pop" id="adrsModifyPop" tabindex="-1" role="dialog" aria-labelledby="adrsModifyLabel" 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 rqstModify_pop" id="rqstModifyPop" tabindex="-1" role="dialog" aria-labelledby="rqstModifyLabel" aria-hidden="true"></div>
+
+<!-- 사은품지급안내 팝업 -->
+<div class="modal fade od_pop infoGift_pop" id="infoGiftPop" tabindex="-1" role="dialog" aria-labelledby="infoGiftLabel" aria-hidden="true"></div>
+
+<script th:inline="javascript">
+// 배송관련정보 변수선언
+var cartGoodsList		= [[${cartGoodsList}]]			// 배송목록
+var shotCnt 			= [[${shotCnt}]];				// 자사 총알 배송건수
+var wmsCnt 				= [[${wmsCnt}]];				// 자사 일반 배송건수
+var shotWmsCnt 			= [[${shotWmsCnt}]];			// 자사 총알,일반 배송건수
+var resCnt 				= [[${resCnt}]];				// 자사 예약 배송건수
+var delvCnt 			= [[${delvCnt}]];				// 입점 일반 배송건수
+var orgSumDelvFee		= [[${sumDelvFee}]];			// 최초배송비합계
+var prePntDcAmt			= [[${prePntDcAmt}]];			// 선포인트사용가능금액
+
+var custNm				= [[${order.custNm}]];			// 주문자명
+var cellPhnno			= [[${order.cellPhnno}]];		// 핸드폰번호
+var email				= [[${order.email}]];			// 이메일
+var recipZipcode		= [[${order.recipZipcode}]];	// 우편번호
+var recipBaseAddr		= [[${order.recipBaseAddr}]];	// 기본주소
+var recipDtlAddr		= [[${order.recipDtlAddr}]];	// 상세주소
+var cartSqArr			= [[${order.cartSqArr}]];		// 장바구니시퀀스 목록
+var shotDelvUseYn		= [[${order.shotDelvUseYn}]];	// 총알배송사용여부(장바구니)
+var shotDelvYn			= [[${order.shotDelvUseYn}]];	// 총알배송사용여부(장바구니)
+
+var foreignBuyYn		= [[${foreignBuyYn}]];			// 해외구매대행여부
+var orderMadeYn			= [[${orderMadeYn}]];			// 주문제작상품여부
+
+var custCpnSq 			= 0;
+var cpnIndex			= 0;
+var cpnApplyTemp		= false;
+
+//AJAX 로드를 위한 변수 설정
+var jsonObj 			= {};
+var jsonData			= null;
+
+// 컨텐츠 호출
+$(document).ready( function() {
+	
+	// 장바구니시퀀스 배열 변환
+	cartSqArr = String(cartSqArr).split(",");
+	
+	// AJAX 로드를 위한 변수 설정
+	jsonObj = {
+		"custNm" 			: custNm
+		, "cellPhnno" 		: cellPhnno
+		, "email" 			: email
+		, "recipZipcode" 	: recipZipcode
+		, "recipBaseAddr" 	: recipBaseAddr
+		, "recipDtlAddr" 	: recipDtlAddr
+		, "cartSqArr"		: cartSqArr
+		, "dispYn"			: "N"
+		, "shotDelvYn"		: shotDelvUseYn
+		, "foreignBuyYn"	: foreignBuyYn
+		, "orderMadeYn"		: orderMadeYn
+	}
+	
+	jsonData = JSON.stringify(jsonObj);
+
+	// 1. AJAX 정보(회원정보로드)
+	custemerInfoSet(jsonData);
+	
+	// 999. 개발화면정보설정
+	var devTemp = false;
+	var arr = []
+	arr[0] = "orderInfo";
+	arr[1] = "freegiftInfo";
+	arr[2] = "orderDetailInfo";
+	arr[3] = "delvFeeCdInfo";
+	arr[4] = "orderSumAmtInfo";
+	
+	if (devTemp) {
+		$("table").each(function(){
+			var name = $(this).attr("name");
+			for (i=0 ; i<arr.length ; i++) {
+				if (name == arr[i]) {
+					$(this).show();
+				}
+			}
+		});
+	}
+	
+});
+
+// 1. 함수기능 정의
+// 1.1 고객정보로드
+var custemerInfoSet = function(jsonData) {
+	$.ajax( {
+		type		: "POST",
+		url 		: '/order/custemerInfo',
+		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) {
+			if (result != null) {
+				$("#custemerInfo").css("display", "block");
+				$("#custemerInfo").html(result);
+
+				// 고객정보설정
+				$(".custNm").text($("input[name='custNm']").val());
+				$(".email").text($("input[name='email']").val());
+				$(".cellPhnno").text($("input[name='cellPhnno']").val());
+			}
+			// 1.2 배송정보로드
+			deliveryAddrInfoSet(jsonData);
+		}
+	});
+}
+
+// 1.2 배송정보로드
+var deliveryAddrInfoSet = function(jsonData) {
+	$.ajax( {
+		type		: "POST",
+		url 		: '/order/deliveryAddrInfo',
+		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) {
+			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());
+			}
+			
+			// 1.3 총알배송가능 지역, 총알배송 가능 시간 체크(초기로드정보)
+			fnGetDailyDeliveryCheck(true);
+		}
+	});
+}
+
+// 1.3 총알배송가능 지역, 총알배송 가능 시간 체크
+var fnGetDailyDeliveryCheck = function (temp) {
+	
+	// 장바구니 총알배송 사용여부 체크 N
+	if (shotDelvUseYn == "N") {
+		// 초기에 한번 데이타 로드
+		if (temp) {
+			// 1.4 주문상품목록로드
+			orderListInfoSet(jsonData, temp);
+		}
+	} else {
+		// 배송지 우편번호 체크
+		var zipcode		= $("input[name='recipZipcode']").val();
+	
+		// 총알배송여부 체크 배송지정보 존재여부 체크
+		if (zipcode == null || zipcode == '') {
+			//alert("배송지정보가 없습니다. 기본 총알배송 가능지역으로 설정 합니다.");
+			zipcode = "04320"; // 기본 서울역 우편번호로 설정
+		}
+		
+		// TODO
+		var shotDelvObj 	= {"zipNo" : zipcode};
+	
+		gagajf.ajaxJsonSubmit(
+			"/order/getDailyDeliveryCheck"
+			, JSON.stringify(shotDelvObj)
+			, function (result) {
+				// 총알배송여부체크
+				var tempShotDelvYn = "N";
+				
+				if (parseInt(result) > 0) {
+					tempShotDelvYn = "Y";
+				}
+				
+				// json 값 설정
+				var orderListObj 		= {"cartSqArr":cartSqArr, "shotDelvYn":tempShotDelvYn};
+				var orderListJsonData 	= JSON.stringify(orderListObj);
+				
+				if (temp) {
+					// 1.3 주문상품목록로드
+					orderListInfoSet(orderListJsonData, temp);
+				} else {
+					if (tempShotDelvYn != shotDelvYn) {
+						orderListInfoSet(orderListJsonData, temp);
+					}
+				}
+				
+				shotDelvYn = tempShotDelvYn;
+			}
+		)
+	}
+}
+
+// 1.4 주문상품목록로드
+var orderListInfoSet = function(orderListJsonData, temp) {
+	$.ajax( {
+		type		: "POST",
+		url 		: '/order/orderListInfo',
+		data		: orderListJsonData,
+		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) {
+			if (result != null) {
+				$("#orderListInfo").css("display", "block");
+				$("#orderListInfo").html(result);
+			}
+			
+			// 1.5 사은품정보로드
+			if (temp) {
+				freegiftInfoSet(jsonData);
+			}
+		}
+	});
+}
+
+// 1.5 사은품정보로드
+var freegiftInfoSet = function(jsonData) {
+	
+	$.ajax( {
+		type		: "POST",
+		url 		: '/order/freegiftInfo',
+		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) {
+			if (result != null) {
+				$("#freegiftInfo").html(result);
+				
+				var total_gift 		= 0;
+				var total_deduct 	= 0;
+				
+				// 2.2 사은품선택 라디오 버튼 기능
+				$(".freegiftRdo").on("click", function() {
+					total_gift 		= 0;
+					total_deduct 	= 0;
+					
+					$(".freegiftRdo").each(function(){
+						if ($(this).attr("allYn") == "Y" ) {
+							total_gift 		+= 1;
+						}
+						
+						// 라디오버튼 사은품 체크
+						if ($(this).is(":checked")) {
+							// 수령거부가 아닐때 체크
+							if ($(this).val() != "noSel") {
+								total_gift 		+= 1;
+								total_deduct 	+= parseInt($(this).attr("usepoint"));
+							}
+						}
+					});
+					
+					$(".total_gift").text(total_gift);							// 사은품총선택개수
+					$(".total_deduct").text(total_deduct.addComma());			// 사은품총사용포인트
+					$(".freegiftUsePnt").text(total_deduct);
+					
+					// 포인트초기화기능
+					pntDcAmtReset();
+				});
+				
+				// 사은품테이블 그리기
+				$(".gift_box").each(function(){
+					$(this).find(".freegiftRdo").each(function(){
+						if ($(this).attr("allYn") == "Y" ) {
+							total_gift += 1;
+						}
+						$(".total_gift").text(total_gift);						// 사은품총선택개수
+					});
+				});
+			}
+			
+			// 1.6 결제타입로드
+			paymentInfoSet(jsonData);
+		}
+	});
+}
+
+// 1.6 결제타입로드 (결제버튼기능구현)
+var paymentInfoSet = function(jsonData) {
+	$.ajax( {
+		type		: "POST",
+		url 		: '/order/paymentInfo',
+		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) {
+			if (result != null) {
+				$("#paymentInfo").css("display", "block");
+				$("#paymentInfo").html(result);
+				
+				// 결재하기
+				$("#btn_payment").on("click", function(){
+					// 사은품정보
+					var prePntDcAmtYn		= $("input[name='rdi-beforpoint']:checked").val();
+					var paynormal			= $("input[name='rdi-paynormal']:checked").val();
+					var orderDetailList		= [];
+					var delvFeeCdList		= [];
+					var ordGoodsQty			= 0;
+					var goodsNm				= "";
+					
+					if (paynormal == null || paynormal == '') {
+						alert("결제수단을 선택해 주세요.");
+						return false;
+					}
+					
+					var paynormalArr		= paynormal.split("|");
+					var pgGb				= paynormalArr[0];
+					var payMeans			= paynormalArr[1];
+
+					// 주문상세데이타 생성
+					$("#orderDetailInfo .cartSq").each(function(){
+						var orderDetailData = {
+							"cartSq"			: $(this).text()
+							,"currPrice"		: $(this).parent().find(".orgCurrPrice").text()
+							,"optAddPrice"		: $(this).parent().find(".optAddPrice").text()
+							,"ordAmt"			: $(this).parent().find(".ordAmt").text()
+							,"cpn1DcSq"			: $(this).parent().find(".cpn1DcSq").text()
+							,"cpn1DcAmt"		: $(this).parent().find(".cpn1DcAmt").text()
+							,"goodsQty"			: $(this).parent().find(".goodsQty").text()
+							,"tmtb1Sq"			: $(this).parent().find(".tmtb1Sq").text()
+							,"tmtb1DcAmt"		: $(this).parent().find(".tmtb1DcAmt").text()
+							,"tmtb2Sq"			: $(this).parent().find(".tmtb2Sq").text()
+							,"tmtb2DcAmt"		: $(this).parent().find(".tmtb2DcAmt").text()
+							,"goodsCpnSq"		: $(this).parent().find(".goodsCpnSq").text()
+							,"goodsCpnDcAmt"	: $(this).parent().find(".goodsCpnDcAmt").text()
+							,"cartCpnSq"		: $(this).parent().find(".cartCpnSq").text()
+							,"cartCpnDcAmt"		: $(this).parent().find(".cartCpnDcAmt").text()
+							,"prePntDcAmt"		: $(this).parent().find(".prePntDcAmt1").text()
+							,"pntDcAmt"			: $(this).parent().find(".pntDcAmt1").text()
+							,"gfcdUseAmt"		: $(this).parent().find(".gfcdUseAmt1").text()
+							,"realOrdAmt"		: $(this).parent().find(".realOrdAmt1").text()
+							,"savePntAmt"		: $(this).parent().find(".savePntAmt1").text()
+							,"shotDelvYn"		: $(this).parent().find(".shotDelvYn").text()
+							,"foreignBuyYn"		: $(this).parent().find(".foreignYn").text()
+							,"makeGoodsYn"		: $(this).parent().find(".orderMadeYn").text()
+							,"delvFeeCd"		: $(this).parent().find(".delvFeeCd").text()
+							,"goodsCd"			: $(this).parent().find(".goodsCd").text()
+							,"itemCdArr"		: $(this).parent().find(".itemCd").text().split(",")
+							,"optCdArr"			: $(this).parent().find(".optCd").text().split(",")
+							,"itemQtyArr"		: $(this).parent().find(".itemQtyr").text().split(",")
+							,"goodsType"		: $(this).parent().find(".goodsType").text()
+						}
+						
+						// 상품수
+						ordGoodsQty++;
+						
+						orderDetailList.push(orderDetailData);
+					});
+					
+					// 주문배송업체정보 생성
+					$("#delvFeeCdInfo .delvFeeCd").each(function(){
+						var delvFeeCdData = {
+							"delvFeeCd"			: $(this).text()
+							,"supplyCompCd"		: $(this).parent().find(".supplyCompCd").text()
+							,"delvFee"			: $(this).parent().find(".delvFee").text()
+							,"delvCpnSq"		: $(this).parent().find(".delvCpnSq").text()
+							,"delvCpnDcAmt"		: $(this).parent().find(".delvCpnDcAmt").text()
+						}
+						
+						delvFeeCdList.push(delvFeeCdData);
+					});
+					
+					// 주문데이타 생성
+					var orderData = {
+						"custNm"				: $(".custNm").text()
+						,"email"				: $(".email").text()
+						,"recipPhnno"			: $(".cellPhnno").text()
+						,"recipZipcode"			: $(".recipZipcode").text()
+						,"recipBaseAddr"		: $(".recipBaseAddr").text()
+						,"recipDtlAddr"			: $(".recipDtlAddr").text()
+						,"delvMemo"				: $(".delvMemo").text()
+						,"prePntDcAmtYn"		: prePntDcAmtYn
+						,"orderDetailList"		: orderDetailList
+						,"delvFeeCdList"		: delvFeeCdList
+						,"shotDelvYn"			: shotDelvYn
+						,"entryNo"				: $("input[name='entryNo']").val()
+						,"pgGb"					: pgGb
+						,"payMeans"				: payMeans // 네이버페이, 카카오페이
+						,"payAmt"				: $(".realOrdSumAmt").text()
+						,"ordNm"				: $(".custNm").text()
+						,"ordPhnno"				: $(".cellPhnno").text()
+						,"goodsNm"				: $(".goodsNm").eq(0).text()
+						,"ordGoodsQty"			: ordGoodsQty
+						,"freegiftValArr"		: $(".freegiftValArr").text().split(",")
+						,"freegiftSqArr"		: $(".freegiftSqArr").text().split(",")
+						,"freegiftGoodsArr"		: $(".freegiftGoodsArr").text().split(",")
+						,"freegiftUsePointArr"	: $(".freegiftUsePointArr").text().split(",")
+					};
+					
+					var orderData = JSON.stringify(orderData);
+					
+					$.ajax( {
+						type		: "POST",
+						url 		: '/order/create/preOrder',
+						data		: orderData,
+						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) {
+							// 결재정보로드
+							$("#order_info").html(result);
+							
+							var pgGb = $("#order_info input[name=pgGb]").val();
+							
+							if (pgGb == "NAVFER") {
+								fnNaverPaymentReady();
+							} else if (pgGb == "KAKAO") {
+								fnKakaoPaymentReady();
+							} else if (pgGb == "KCP") {
+								jsf__pay(document.order_info);
+							}
+						}
+					});
+				});
+
+				// 1.8 할인영역 설정
+				dcAmtInfoSet(jsonData);
+			}
+		}
+	});
+}
+
+// 1.7 프로모션 쿠폰 적용 함수
+var serialCpnApply = function(){
+	let data = {
+		rdCpnNm : $("#payForm #serialCpnNm").val()
+	}
+
+	let jsonData = JSON.stringify(data);
+
+	$.ajax( {
+		type			: "POST",
+		url 			: '/cart/list/serialCpnApply',
+		contentType		: 'application/json',
+		dataType 		: 'json',
+		data 			: jsonData,
+		success 		: function(result) {
+			var jsonObj 	= {"cartSqArr" : cartSqArr,"dispYn" : "Y"};
+			var jsonData 	= JSON.stringify(jsonObj);
+
+			// 성공일때는 쿠폰정보 및 포인트 정보 reset
+			if (result.serialCpnInfo.result == "SUCCESS") {
+				// 1.8 할인영역 재로드
+				dcAmtInfoSet(jsonData);
+			} else {
+				alert(result.serialCpnInfo.result);
+			}
+		}
+	});
+}
+
+// 1.8 할인영역 설정 (쿠폰, 선포인트, 포인트, 상품권)
+var dcAmtInfoSet = function(jsonData) {
+	// 1.8.1 할인정보로드
+	$.ajax( {
+		type		: "POST",
+		url 		: '/order/dcAmtInfo',
+		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) {
+			if (result != null) {
+				$("#dcAmtInfo").css("display", "block");
+				$("#dcAmtInfo").html(result);
+				
+				// 1.8.2 쿠폰적용초기화(할인율최고)
+				custCpnInit();
+				
+				// 1.8.3 쿠폰 SELECT BOX 기능 설정(js적용)
+				$('.select_custom.type1').each(function(index){
+					var selecter01 	= new sCombo($(this));
+					
+					// 선택박스 버튼기능 구현
+					$(this).find("ul li").each(function(i){
+						
+						// SELECT BOX 버튼 기능 설정
+						$(this).on("click", function(){
+							// 쿠폰 선택없음
+							if ($(this).prop("value") == 0) {
+								// 쿠폰 선택없음
+								cpnApplyDel($(this));
+							}
+							// 쿠폰선택
+							else {
+								// 쿠폰중복체크 후 적용
+								if (custCpnDuplicationCheck($(this).prop("value"), index)) {
+									// 쿠폰적용
+									custCpnApply($(this));
+								} else {
+									alert("이미 적용된 쿠폰 입니다.");
+									
+									// 쿠폰적용불가
+									custCpnNotApply($(this));
+								}
+								
+								// 쿠폰할인금액 SUM
+								custCpnSumAmtCal();
+								
+								// 최대할인혜택적용 체크해제
+								if ($("#chk-maxdisc").is(":checked")) {
+									$("#chk-maxdisc").attr("checked", false);
+								}
+							}
+						});
+					});
+				});
+				
+				// 1.8.4 쿠폰 최대할인금액 초기화 버튼 설정
+				$("#chk-maxdisc").on("click", function(){
+					if ($(this).is(":checked")) {
+						custCpnInit();
+					}
+				});
+
+				// 1.8.5 쿠폰할인적용 삭제 버튼
+				$(".btn_del_coupon").on("click", function(){
+					//선택없음선택
+					$(this).parent().parent().find("ul li").each(function(i){
+						if (i == 0) {
+							cpnApplyDel($(this)); // 쿠폰 선택없음
+						}
+					});
+				});
+				
+				// 1.8.6 선포인트 적용 버튼 기능
+				$("input[name='rdi-beforpoint']").each(function(){
+					// 선포인트 초기 설정 사용함
+					if ($(this).val() == "Y") {
+						$(this).attr("checked", true);
+					}
+					
+					// 버튼기능 구현
+					$(this).on("click", function(){
+						var rmPrePntAmt 		= parseInt($("input[name='rmPrePntAmt']").val());
+						
+						// 선포인트적용
+						if ($(this).val() == "Y") {
+							$("#prePntDcAmt").text("-"+rmPrePntAmt.addComma()+"원");
+						} else {
+							$("#prePntDcAmt").text("0원");
+						}
+						
+						// 쿠폰할인금액 SUM
+						custCpnSumAmtCal();
+					});
+				});
+				
+				// 1.8.7 포인트 적용버튼 기능
+				$("#btn_point_apply").on("click", function(){
+					var rmPntAmt 			= parseInt($("input[name='rmPntAmt']").val());
+					var freegiftUsePnt 		= parseInt($(".freegiftUsePnt").text());
+					var pntDcAmt 			= parseInt($("input[name='pntDcAmtStr']").val());
+					var realOrdAmt 			= parseInt($(".realOrdSumAmt").text());
+					var applyPntDcAmt 		= (realOrdAmt * 40) / 100;
+					
+					rmPntAmt				= rmPntAmt - freegiftUsePnt;
+					
+					// 입력여부체크
+					if (pntDcAmt < 1) {
+						alert("사용할 포인트를 입력해주세요");
+						// 포인트리셋기능
+						pntDcAmtReset();
+						return false;
+					}
+					
+					// 보유포인트보다 초과 사용 불가
+					if (pntDcAmt > rmPntAmt) {
+						alert("보유포인트 보다 초과 사용 할 수 없습니다.");
+						// 포인트리셋기능
+						pntDcAmtReset();
+						return false;
+					}
+
+					// TODO 포인트 사용금액 1000P 이상 사용
+					if (pntDcAmt < 1000) {
+						alert("포인트는 최소 1,000P이상 사용해야 합니다.");
+						// 포인트리셋기능
+						pntDcAmtReset();
+						return false;
+					}
+					
+					// 실결제금액보다 크게 적용 되었을때 적용 불가능
+					if (pntDcAmt > applyPntDcAmt) {
+						alert("결제금액의 최대 40%를 초과 사용 할 수 없습니다.");
+						// 포인트리셋기능
+						pntDcAmtReset();
+						return false;
+					}
+					
+					// 포인트 적용
+					$(".pntDcSumAmt").text(pntDcAmt);
+					$("#pntDcAmt").text("-"+pntDcAmt.addComma()+"원");
+					
+					// 상품권리렛기능
+					gfcdUseAmtReset();
+				});
+				
+				// 1.8.8 상품권 적용버튼 기능
+				$("#btn_gfcd_apply").on("click", function(){
+					var rmGfcdAmt 		= parseInt($("input[name='rmGfcdAmt']").val());
+					var gfcdUseAmt 		= parseInt($("input[name='gfcdUseAmtStr']").val());
+					
+					// 입력여부체크
+					if (gfcdUseAmt < 1 || $("input[name='gfcdUseAmtStr']").val() == "") {
+						alert("사용할 금액을 입력해주세요");
+						// 상품권리셋기능
+						gfcdUseAmtReset();
+						return false;
+					}
+					
+					// 보유금액보다 초과 사용 불가
+					if (gfcdUseAmt > rmGfcdAmt) {
+						alert("보유금액 보다 초과 사용 할 수 없습니다.");
+						// 상품권리셋기능
+						gfcdUseAmtReset();
+						return false;
+					}
+
+					// TODO 포인트 사용금액 1000원 이상 사용
+					if (gfcdUseAmt < 1000) {
+						alert("상품권 사용금액은 최소 1,000원 이상 사용해야 합니다.");
+						// 상품권리셋기능
+						gfcdUseAmtReset();
+						return false;
+					}
+					
+					// 상품권 적용
+					$(".gfcdUseSumAmt").text(gfcdUseAmt);
+					$("#gfcdUseAmt").text("-"+gfcdUseAmt.addComma()+"원");
+					
+					// 금액전체계산
+					custCpnSumAmtCal();
+				});
+				
+				// 금액계산초기화
+				custCpnSumAmtCal();
+			}
+		}
+	});
+}
+
+// 1.9 쿠폰 최대할인율 쿠폰적용
+var custCpnInit = function() {
+	
+	// 쿠폰적용없음적용
+	$(".select_custom.type1").each(function(index){
+		// select box 쿠폰 적용
+		var cpnCartSq = $(this).find("input[name='cpnCartSq']").val();
+		
+		// 장바구니시퀀스 체크
+		$(".cartSq").each(function(){
+			if (cpnCartSq == $(this).text()) {
+				$(this).parent().find(".goodsCpnSq").text("0");			// 상품쿠폰시퀀스
+				$(this).parent().find(".goodsCpnDcAmt").text("0");		// 상품쿠폰할인금액
+			}
+		});
+		
+		$(this).find("input[name='custCpnSq']").val("0");
+		$(this).find("input[name='cpnDcAmt']").val("0");
+		
+		$(this).find(".select").text("선택없음");
+		$(this).find(".cp_discount").css("display", "none");
+	});
+	
+	// 최대할인율 쿠폰적용
+	$('.select_custom.type1').each(function(index){
+		cpnIndex 		= 0;
+		cpnApplyTemp 	= false;
+		
+		// select 박스 반복문 실행
+		$(this).find("ul li").each(function(i){
+			cpnIndex++;
+			
+			// 1이상부터 중복 체크
+			if (cpnApplyTemp == false) {
+				if (cpnIndex > 1) {
+					if (custCpnDuplicationCheck($(this).prop("value"), index)) {
+						// 쿠폰적용
+						custCpnApply($(this));
+						// 쿠폰할인적용
+						cpnApplyTemp = true;
+					}
+				}
+			}
+		});
+	});
+	
+	// 포인트기능 리렛
+	pntDcAmtReset();
+}
+
+// 1.10 쿠폰중복사용체크
+var custCpnDuplicationCheck = function(custCpnSq, index) {
+	var selCustSq 	= 0;
+	var cnt 		= 0;
+
+	// 쿠폰중본사용체크
+	$("input[name='custCpnSq']").each(function(i){
+		if (index != i) {
+			selCustSq = $(this).val();
+			if (selCustSq == custCpnSq) {
+				cnt++;
+			}
+		}
+	});
+	
+	// 쿠폰적용불가
+	if (cnt > 0) {
+		return false;
+	}
+	// 쿠폰적용가능
+	else {
+		return true;
+	}
+}
+
+// 1.11 쿠폰중복체크 후 적용가능
+var custCpnApply = function(obj) {
+	// select box 쿠폰 적용
+	var cpnType 	= obj.parent().parent().find("input[name='cpnType']").val();
+	
+	// 상품쿠폰적용
+	if (cpnType == "goodsCpn") {
+		// 적용된 할인금액 text 설정 
+		var dcAmtStr = "- " + parseInt(obj.attr("data")).addComma() + " 원 할인적용";
+		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
+		
+		var cpnCartSq 	= obj.parent().parent().find("input[name='cpnCartSq']").val();
+		
+		// 장바구니시퀀스 체크
+		$(".cartSq").each(function(){
+			if (cpnCartSq == $(this).text()) {
+				$(this).parent().find(".goodsCpnSq").text(obj.prop("value"));			// 상품쿠폰시퀀스
+				$(this).parent().find(".goodsCpnDcAmt").text(obj.attr("data"));			// 상품쿠폰할인금액
+			}
+		});
+		
+		obj.parent().parent().find("input[name='cpnDcAmt']").val(obj.attr("data"));
+	} 
+	// 장바구니쿠폰적용
+	else if (cpnType == "cartCpn") {
+		var dcWay 				= obj.parent().find("input[name='dcWay']").val();
+		var dcVal 				= obj.parent().find("input[name='dcVal']").val();
+		var cartCpnDcSumAmt		= 0;
+		var tempSumAmt			= 0;
+		var cartSqLen			= $(".cartSq").length;
+		var leftAmt				= 0;
+		var index				= 1;
+		
+		// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
+		obj.find("input[name='cartCpnCartSq']").each(function(){
+			var cartCpnCartSq 		= $(this).val();
+			var cartCpnDcAmt		= 0;
+			
+			// 장바구니시퀀스 체크
+			$(".cartSq").each(function(){
+				if (cartCpnCartSq == $(this).text()) {
+					var orgCurrPrice 	= parseInt($(this).parent().find(".orgCurrPrice").text());
+					var tmtb1DcAmt 		= parseInt($(this).parent().find(".tmtb1DcAmt").text());
+					var tmtb2DcAmt 		= parseInt($(this).parent().find(".tmtb2DcAmt").text());
+					var goodsCpnDcAmt 	= parseInt($(this).parent().find(".goodsCpnDcAmt").text());
+					
+					var tempAmt 		= orgCurrPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
+					tempSumAmt			= tempSumAmt + tempAmt; 
+					
+					// 할인율일때 할인금액 
+					if (dcWay == "G240_20") {
+						cartCpnDcAmt = (tempAmt * dcVal) / 100;
+						cartCpnDcSumAmt = cartCpnDcSumAmt + cartCpnDcAmt;
+						
+						$(this).parent().find(".cartCpnSq").val(obj.prop("value"));
+						$(this).parent().find(".cartCpnDcAmt").val(cartCpnDcAmt);
+					}
+				}
+			});
+		});
+		
+		// 금액일때 할인금액 적용
+		if (dcWay == "G240_10") {
+			cartCpnDcSumAmt = dcVal;
+			leftAmt			= dcVal;
+			index = 1;
+			
+			// 장바구니쿠폰 해당 장바구니상품들 할인가 적용
+			obj.find("input[name='cartCpnCartSq']").each(function(){
+				var cartCpnCartSq 		= $(this).val();
+				var cartCpnDcAmt		= 0;
+									
+				// 장바구니시퀀스 체크
+				$(".cartSq").each(function(){
+					if (cartCpnCartSq == $(this).text()) {
+						var orgCurrPrice 	= parseInt($(this).parent().find(".orgCurrPrice").text());
+						var tmtb1DcAmt 		= parseInt($(this).parent().find(".tmtb1DcAmt").text());
+						var tmtb2DcAmt 		= parseInt($(this).parent().find(".tmtb2DcAmt").text());
+						var goodsCpnDcAmt 	= parseInt($(this).parent().find(".goodsCpnDcAmt").text());
+						
+						var tempAmt 		= orgCurrPrice - tmtb1DcAmt - tmtb2DcAmt - goodsCpnDcAmt;
+						var tempDiv 		= parseInt((tempAmt / tempSumAmt) * 100);
+						var cartCpnDcAmt	= 0;
+				
+						if (index == cartSqLen) {
+							cartCpnDcAmt 	= leftAmt;
+						} else {
+							cartCpnDcAmt	= parseInt((cartCpnDcSumAmt * tempDiv) / 100);
+							leftAmt 		= leftAmt - cartCpnDcAmt;
+						}
+						
+						$(this).parent().find(".cartCpnSq").text(obj.prop("value"));
+						$(this).parent().find(".cartCpnDcAmt").text(cartCpnDcAmt);
+						
+						index++;
+					}
+				});
+			});
+		} 
+		
+		obj.parent().parent().find("input[name='cpnDcAmt']").val(cartCpnDcSumAmt);
+		
+		var dcAmtStr = "- " + cartCpnDcSumAmt.addComma() + " 원 할인적용";
+		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
+	}
+	// 배송비쿠폰적용
+	else if (cpnType == "delvCpn") {
+		var delvFee 		= parseInt(obj.attr("delvfee"));
+		var delvCpnDcAmt 	= parseInt(obj.attr("data"));
+		var delvFeeCd 		= obj.attr("delvfeecd");
+		
+		// 배송비가 배송비쿠폰할인금액보다 클경우 배송비 - 배송비쿠폰할인금액을 적용
+		if (delvFee > delvCpnDcAmt) {
+			cpnDcAmt = delvFee - delvCpnDcAmt;
+		} else {
+			cpnDcAmt = delvFee;
+		}
+		
+		// 적용된 할인금액 text 설정 
+		var dcAmtStr = "- " + cpnDcAmt.addComma() + " 원 할인적용";
+		
+		obj.parent().parent().parent().parent().parent().find(".cp_amount").text(dcAmtStr);
+		
+		obj.parent().parent().find("input[name='cpnDcAmt']").val(cpnDcAmt);
+		obj.parent().parent().find("input[name='delvFeeCd']").val(obj.attr("delvfeecd"));
+		
+		$(".delvCpnDcSumAmt").text(obj.attr("data"));
+				
+		// 배송비쿠폰 테이블 적용
+		
+		$(".delvFeeCd").each(function(){
+			if ($(this).text() == delvFeeCd) {
+				$(this).parent().find(".delvCpnSq").text(obj.prop("value"));
+				$(this).parent().find(".delvCpnDcAmt").text(obj.attr("data"));
+			}
+		});
+	}
+	
+	// select box 쿠폰 적용 (공통적용)
+	obj.parent().parent().find("input[name='custCpnSq']").val(obj.prop("value"));
+	obj.parent().parent().find(".select").text(obj.text());
+	
+	// 선택된 할인금액 노출
+	obj.parent().parent().parent().parent().parent().find(".cp_discount").css("display", "block");
+	
+	// 포인트기능 리렛
+	pntDcAmtReset();
+}
+
+// 1.12 쿠폰중복체크 후 적용불가
+var custCpnNotApply = function(obj) {
+	// 이전에 등록된 쿠폰시퀀스  
+	var custCpnSq = obj.parent().parent().find("input[name='custCpnSq']").val();
+
+	// 이전에 등록된 쿠폰시퀀스 비교후 데이타 원복
+	obj.parent().find("li").each(function(){
+		if ($(this).prop("value") == custCpnSq) {
+			$(this).parent().parent().find(".select").text($(this).text());
+			
+			if (custCpnSq == 0) {
+				$(this).parent().parent().parent().parent().parent().find(".cp_discount").css("display", "none");
+			} else {
+				$(this).parent().parent().parent().parent().parent().find(".cp_discount").css("display", "block");
+			}
+		}
+	});
+	
+	// 포인트기능 리렛
+	pntDcAmtReset();
+}
+
+// 1.13 쿠폰 선택없음 기능 구현
+var cpnApplyDel = function(obj) {
+	// 쿠폰타입(상품쿠폰, 장바구니쿠폰, 배송비쿠폰)
+	var cpnType = obj.parent().parent().find("input[name='cpnType']").val();
+	
+	// 상품쿠폰적용
+	if (cpnType == "goodsCpn") {
+		// select box 쿠폰 적용
+		var cpnCartSq = obj.parent().parent().find("input[name='cpnCartSq']").val();
+		
+		// 장바구니시퀀스 체크
+		$(".cartSq").each(function(){
+			if (cpnCartSq == $(this).text()) {
+				$(this).parent().find(".goodsCpnSq").text("0");			// 상품쿠폰시퀀스
+				$(this).parent().find(".goodsCpnDcAmt").text("0");		// 상품쿠폰할인금액
+			}
+		});
+	}
+	// 장바구니쿠폰적용
+	else if (cpnType == "cartCpn") {
+		// 장바구니쿠폰 시퀀스 0, 장바구니할인금액 0
+		$(".cartSq").each(function(){
+			$(this).parent().find(".cartCpnSq").text("0");
+			$(this).parent().find(".cartCpnDcAmt").text("0");
+		});
+	}
+	// 배송비쿠폰적용
+	else if (cpnType == "delvCpn") {
+		// 장바구니쿠폰 시퀀스 0, 장바구니할인금액 0
+		//$("input[name='custCpnSq']").each(function(){
+			//$(this).parent().find("input[name='delvFeeCd']").val("0");
+		//});
+		
+		obj.parent().parent().find("input[name='delvFeeCd']").val("0");
+		$(".delvCpnSq").text("0");
+	}
+	
+	obj.parent().parent().find("input[name='custCpnSq']").val("0");
+	obj.parent().parent().find("input[name='cpnDcAmt']").val("0");
+
+	obj.parent().parent().find(".select").text("선택없음");
+	obj.parent().parent().parent().parent().parent().find(".cp_discount").css("display", "none");
+	
+	// 포인트기능 리렛
+	pntDcAmtReset();
+	
+	// 최대할인혜택적용 체크해제
+	if ($("#chk-maxdisc").is(":checked")) {
+		$("#chk-maxdisc").attr("checked", false);
+	}
+}
+
+// 1.14 선포인트리셋기능 (사용안함)
+var prePntDcAmtReset = function() {
+	var rmPrePntAmt = parseInt($("input[name='rmPrePntAmt']").val());
+	$("input[name='prePntDcAmt']").val(rmPrePntAmt);
+	
+	// 선포인트사용여부 체크 후 적용
+	$("input[name='rdi-beforpoint']").each(function(){
+		// 선포인트 초기 설정 사용함
+		if ($(this).val() == "Y") {
+			$(this).attr("checked", true);
+		}
+	});
+
+	$("#prePntDcAmt").text("-"+rmPrePntAmt.addComma()+"원");
+	
+	// 포인트기능 리렛
+	pntDcAmtReset();
+}
+
+// 1.15 포인트리셋기능
+var pntDcAmtReset = function() {
+	$(".pntDcSumAmt").text("0");
+	$("input[name='pntDcAmtStr']").val("");
+	$("#pntDcAmt").text("0원");
+	
+	// 상품권리셋기능
+	gfcdUseAmtReset();
+}
+
+// 1.16 상품권리셋기능
+var gfcdUseAmtReset = function() {
+	$(".gfcdUseSumAmt").text("0");
+	$("input[name='gfcdUseAmtStr']").val("");
+	$("#gfcdUseAmt").text("0원");
+	
+	// 금액전체계산
+	custCpnSumAmtCal();
+}
+
+// 1.17 쿠폰할인금액합계설정(금액전체계산)
+var custCpnSumAmtCal = function() {
+	var cpnDcSumAmt = 0;
+	var cpnApplyCnt = 0;
+	
+	$("input[name='cpnDcAmt']").each(function(){
+		cpnDcSumAmt = cpnDcSumAmt + parseInt($(this).val());
+		
+		// 적용된 쿠폰 수량
+		if (parseInt($(this).val()) > 0) {
+			cpnApplyCnt++;
+		}
+	});
+	
+	// 쿠폰영역
+	if (cpnDcSumAmt > 0) {
+		$(".maxdisc_amount").text("(-"+cpnDcSumAmt.addComma()+"원)"); // 쿠폰할인금액합계	
+	} else {
+		$(".maxdisc_amount").text("("+cpnDcSumAmt.addComma()+"원)"); // 쿠폰할인금액합계
+	}
+	
+	
+	$("#cpnApplyCnt").text(cpnApplyCnt + "장");
+	
+	// 상품목록영역
+	$("#couponDcSumAmt").text("-" + cpnDcSumAmt.addComma() + "원"); // 쿠폰할인금액합계
+	$(".cpnDcSumAmt").text(cpnDcSumAmt);
+	
+	// 배송비할인적용
+	$("input[name='cpnType']").each(function(){
+		if ($(this).val() == "delvCpn") {
+			var delvSumAmt = parseInt(orgSumDelvFee) - parseInt($(this).parent().find("input[name='cpnDcAmt']").val());
+			
+			// 최종배송비
+			$("#delvSumAmt").text(delvSumAmt.addComma() + "원");
+			$(".delvSumAmt").text(delvSumAmt);
+		}
+	});
+	
+	// 2021.03.06 주문상세 테이블 적용
+	// 포인트금액 상품상세에 포인트금액 분배 작업
+	var prePntDcAmtYn 		= $("input[name='rdi-beforpoint']:checked").val();
+	var leftPntAmt			= parseInt($(".pntDcSumAmt").text());
+	var leftGfcdAmt			= parseInt($(".gfcdUseSumAmt").text());
+	var cartSqLenght		= $(".cartSq").length; 
+	var index				= 1;
+	
+	var orgGoodsSumAmt		= 0;
+	var cpn1DcSumAmt		= 0;
+	var ordSumAmt			= 0;
+	var tmtb1DcSumAmt		= 0;
+	var tmtb2DcSumAmt		= 0;
+	var tmtbDcSumAmt		= 0;
+	var goodsCpnDcSumAmt	= 0;
+	var cartCpnDcSumAmt		= 0;
+	var delvCpnDcSumAmt		= 0;
+	var cpnDcSumAmt			= 0;
+	var prePntDcSumAmt		= 0;
+	var pntDcSumAmt 		= parseInt($(".pntDcSumAmt").text());
+	var gfcdUseSumAmt 		= parseInt($(".gfcdUseSumAmt").text());
+	var realOrdSumAmt		= 0;
+	var savePntSumAmt		= 0;
+	
+	$(".cartSq").each(function(){
+		var orgCurrPrice 	= parseInt($(this).parent().find(".orgCurrPrice").text());
+		var cpn1DcAmt		= parseInt($(this).parent().find(".cpn1DcAmt").text());
+		var optAddPrice 	= parseInt($(this).parent().find(".optAddPrice").text());
+		var goodsQty 		= parseInt($(this).parent().find(".goodsQty").text());
+		var tmtb1DcAmt		= parseInt($(this).parent().find(".tmtb1DcAmt").text());
+		var tmtb2DcAmt		= parseInt($(this).parent().find(".tmtb2DcAmt").text());
+		var goodsCpnDcAmt	= parseInt($(this).parent().find(".goodsCpnDcAmt").text());
+		var cartCpnDcAmt	= parseInt($(this).parent().find(".cartCpnDcAmt").text());
+		var prePntDcAmt1	= parseInt($(this).parent().find(".prePntDcAmt1").text());
+		var dcSumAmt		= 0;
+		var savePntAmt1		= parseInt($(this).parent().find(".savePntAmt1").text());
+		
+		// 주문금액 = ((판매가 - 즉시할인가) + 옵션추가금액) * 장바구니수량
+		orgGoodsSumAmt		= orgGoodsSumAmt + (orgCurrPrice + optAddPrice) * goodsQty;
+		cpn1DcSumAmt		= cpn1DcSumAmt + cpn1DcAmt;
+		tmtb1DcSumAmt		= tmtb1DcSumAmt + tmtb1DcAmt;
+		tmtb2DcSumAmt		= tmtb2DcSumAmt + tmtb2DcAmt;
+		tmtbDcSumAmt		= tmtbDcSumAmt + (tmtb1DcAmt + tmtb2DcAmt);
+		goodsCpnDcSumAmt	= goodsCpnDcSumAmt + goodsCpnDcAmt;
+		cartCpnDcSumAmt		= cartCpnDcSumAmt + cartCpnDcAmt;
+		cpnDcSumAmt			= cpnDcSumAmt + (goodsCpnDcAmt + cartCpnDcAmt);
+		prePntDcSumAmt		= prePntDcSumAmt + prePntDcAmt1;
+		
+		var ordAmt			= ((orgCurrPrice +  - cpn1DcAmt) + optAddPrice) * goodsQty;
+		ordSumAmt			= ordSumAmt + ordAmt;
+		
+		// 선포인트사용여부
+		// 할인금액합계 = 다다익선수량금액 + 다다익선금액금액 + 상품쿠폰금액 + 장바구니금액 + 선포인트금액
+		if (prePntDcAmtYn == "Y") {
+			dcSumAmt		= tmtb1DcAmt + tmtb2DcAmt + goodsCpnDcAmt + cartCpnDcAmt + prePntDcAmt1;
+		} else {
+			dcSumAmt		= tmtb1DcAmt + tmtb2DcAmt + goodsCpnDcAmt + cartCpnDcAmt;
+		}
+		
+		// 주문금액설정
+		$(this).parent().find(".ordAmt").text(ordAmt);
+		$(this).parent().find(".dcSumAmt").text(dcSumAmt);
+		
+		savePntSumAmt		= savePntSumAmt + savePntAmt1;
+	});
+	
+	// 포인트, 상품권 금액 분배
+	$(".cartSq").each(function(){
+		var ordAmt 			= parseInt($(this).parent().find(".ordAmt").text());
+		var dcSumAmt		= parseInt($(this).parent().find(".dcSumAmt").text()); 
+		var tempDiv 		= parseInt((ordAmt / ordSumAmt) * 100);
+		var pntDcAmt1 		= 0;
+		var gfcdUseAmt1		= 0;
+		
+		if (index == cartSqLenght) {
+			pntDcAmt1 		= leftPntAmt;
+			gfcdUseAmt1		= leftGfcdAmt;
+		} else {
+			pntDcAmt1 		= parseInt((pntDcSumAmt * tempDiv) / 100);
+			gfcdUseAmt1		= parseInt((gfcdUseSumAmt * tempDiv) / 100);
+			leftPntAmt		= leftPntAmt - pntDcAmt1;
+			leftGfcdAmt		= leftGfcdAmt - gfcdUseAmt1;
+		}
+		
+		var realOrdAmt1		= ordAmt - dcSumAmt - (pntDcAmt1 - gfcdUseAmt1);
+		realOrdSumAmt		= realOrdSumAmt + realOrdAmt1;
+		
+		$(this).parent().find(".pntDcAmt1").text(pntDcAmt1);
+		$(this).parent().find(".gfcdUseAmt1").text(gfcdUseAmt1);
+		$(this).parent().find(".realOrdAmt1").text(realOrdAmt1);
+		
+		index++;
+	});
+	
+	$(".orgGoodsSumAmt").text(orgGoodsSumAmt);
+	$(".cpn1DcSumAmt").text(cpn1DcSumAmt);
+	$(".ordSumAmt").text(ordSumAmt);
+	$(".tmtb1DcSumAmt").text(tmtb1DcSumAmt);
+	$(".tmtb2DcSumAmt").text(tmtb2DcSumAmt);
+	$(".tmtbDcSumAmt").text(tmtbDcSumAmt);
+	$(".goodsCpnDcSumAmt").text(goodsCpnDcSumAmt);
+	$(".cartCpnDcSumAmt").text(cartCpnDcSumAmt);
+	$(".cpnDcSumAmt").text(cpnDcSumAmt);
+	$(".prePntDcSumAmt").text(prePntDcSumAmt);
+	$(".realOrdSumAmt").text(realOrdSumAmt);
+	$(".savePntSumAmt").text(savePntSumAmt);
+	
+	$("#realOrdAmt").text(realOrdSumAmt.addComma()); // 총 결제 예정 금액
+	
+	var tempSavePnt			= savePntSumAmt - prePntDcAmt;
+	
+	// 사은품사용 후 보유포인트	
+	var rmPntAmt 			= parseInt($("input[name='rmPntAmt']").val());
+	var freegiftUsePnt 		= parseInt($(".freegiftUsePnt").text());
+	rmPntAmt 				= rmPntAmt - freegiftUsePnt; 
+	$(".rmPntAmt").text("보유 : " + rmPntAmt.addComma() + "P");
+	
+	// 걸제영역
+	$("#btn_payment").text("동의 후 "+realOrdSumAmt.addComma()+"원 결제하기");
+	
+	// 적립포인트
+	$("#savePntSumAmt").text(savePntSumAmt.addComma()+"P");
+	
+	// 사은품정보 설정
+	var freegiftValArr 			= [];
+	var freegiftUsePointArr 	= [];
+		
+	$(".gift_box").each(function(){
+		$(this).find(".freegiftRdo").each(function(){
+			// 사은품필수
+			if ($(this).attr("allYn") == "Y" ) {
+				freegiftValArr.push($(this).val());
+				freegiftUsePointArr.push($(this).attr("usepoint"));
+			}
+			
+			// 라디오버튼 선택 사은품 체크
+			if ($(this).is(":checked")) {
+				// 수령거부가 아닐때 체크
+				if ($(this).val() != "noSel") {
+					freegiftValArr.push($(this).val());
+					freegiftUsePointArr.push($(this).attr("usepoint"));
+				}
+			}
+		});
+	});
+	
+	$(".freegiftValArr").text(freegiftValArr);				// 사은품시퀀스배열
+	$(".freegiftUsePointArr").text(freegiftUsePointArr);	// 사은품사용포인트배열
+};
+
+
+</script>
+
+<script th:inline="javascript">
+// 화면준비상태
+$(document).ready( function() {
+	// 배송지변경 팝업열기
+	$(document).on('click','#btn_adrsChange_pop',function(e){
+		$.ajax( {
+			type		: "POST",
+			url 		: '/order/delvAddrChangePop',
+			dataType 	: 'html',
+			success 	: function(result) {
+				if (result != null) {
+					$("#adrsChangePop").html(result);
+					$("#adrsChangePop").modal("show");
+				}
+			}
+		});
+		
+		return false;
+	});
+
+	// 배송지추가 팝업열기
+	$(document).on('click','#btn_addrAdd_pop',function(e){
+		$.ajax( {
+			type		: "POST",
+			url 		: '/order/delvAddrAddPop',
+			dataType 	: 'html',
+			success 	: function(result) {
+				if (result != null) {
+					$("#adrsAddPop").html(result);
+					$("#adrsAddPop").modal("show");
+				}
+			}
+		});
+		
+		return false;
+	});
+
+	// 배송지수정 팝업열기
+	$("#btn_addrModify_pop").on("click", function(e){
+		$.ajax( {
+			type		: "POST",
+			url 		: '/order/delvAddrModifyPop',
+			dataType 	: 'html',
+			success 	: function(result) {
+				if (result != null) {
+					$("#adrsModifyPop").html(result);
+					$("#adrsModifyPop").modal("show");
+				}
+			}
+		});
+		
+		return false;
+	});
+
+	// 배송요청사항 팝업열기
+	$("#btn_rqstModify_pop").on("click", function(e){
+		var jsonObj = new Object();
+		jsonObj.delvMemo = $("input[name='delvMemo']").val();
+		
+		$.ajax({
+			type		: "POST",
+			url 		: "/order/delvMemoChangePop",
+			data		: jsonObj,
+			dataType 	: "html",
+			success 	: function(result) {
+				if (result != null) {
+					$("#rqstModifyPop").html(result);
+					$("#rqstModifyPop").modal("show");
+				}
+			}
+		});
+		
+		return false;
+	});
+	
+	// 해외배송 입력
+	$(document).on('change','.odPayment .area_overseas #rdi-overs1', function(e){
+		$('.info_box.overs2').hide();
+		$('.info_box.overs1').show();
+		return false;
+	}).on('change','.odPayment .area_overseas #rdi-overs2', function(e){
+		$('.info_box.overs1').hide();
+		$('.info_box.overs2').show();
+		return false;
+	});
+
+	// 사은품지급안내 팝업열기
+	$("#btn_infoGift_pop").on("click",function(e){
+		$.ajax({
+			type		: "POST",
+			url 		: "/order/freegiftInfoPop",
+			dataType 	: "html",
+			success 	: function(result) {
+				if (result != null) {
+					$("#infoGiftPop").html(result);
+					$("#infoGiftPop").modal("show");
+				}
+			}
+		});
+		
+		return false;
+	});
+
+	// 할인쿠폰 확인
+	$(document).on('click','.odPayment .area_seldiscount .btn_coupon_toggle',function(e){
+		$('.coupon_list').toggle();
+		$(this).toggleClass('on');
+		return false;
+	});
+
+	// 결제수단 선택
+	$(document).on('change','.odPayment .area_paymethod .paymethod_radio input',function(e){
+		$('.radio_blk').removeClass('on');
+		$(this).parents('.radio_blk').addClass('on');
+		$(this).parents('.radio_blk').find('.paymethod_box').show();
+		$(this).parents('.radio_blk').siblings('div').find('.paymethod_box').hide();
+	
+		var paymethodlabel =  $(this).prop('labels');
+		$(this).parents('li').find('.fold_head .data span').text($(paymethodlabel).text());
+	
+		// 간편결제 카드추가 슬라이드
+		var swiper = new Swiper('.paymethod_box .card_quickpay .list_card', {
+			slidesPerView: 'auto',
+			spaceBetween: 160,
+			centeredSlides: true,
+			navigation: {
+				nextEl: '.list_card .swiper-button-next',
+				prevEl: '.list_card .swiper-button-prev',
+			},
+		});
+		return false;
+	});
+
+	// STYLE24 간편결제 배너닫기
+	$(document).on('click','.odPayment .area_paymethod .quickpay_bnr .btn_close_bnr',function(e){
+		$('.quickpay_bnr').hide();
+	});
+
+	// 결제수단 선택 > 즐겨찾기 추가시 
+	$(document).on('click','.odPayment .area_paymethod .paymethod_box .card .etc .btn_favorcard',function(e){
+		$(this).toggleClass('active');
+		return false;
+	});
+
+	// 결제수단 > 일반결제> 실시간계좌이체 선택시            
+	$(document).on('change','.odPayment input:radio[name=rdi-paynormal]',function(e){
+		var paynormalValue = $(this).attr('id');
+		
+		if (paynormalValue == 'rdi-paynormal2') {
+			$('.area_paymethod .agree_insurance').show();
+		} else {
+			$('.area_paymethod .agree_insurance').hide();
+		}
+		return false;
+	});
+
+	// 개인정보동의 열고닫기
+	$(document).on('click','.area_paymentinfo .payinfo_blk a',function(e){		
+		e.preventDefault();
+		$(this).parents('.payinfo_blk').toggleClass('on');
+		var privacyToggle = $(this).find('span');
+		$(privacyToggle).text($(privacyToggle).text() == '보기' ? '닫기' : '보기');
+		return false;
+	});
+
+	// 간편결제등록 > STEP1.이용약관 팝업열기
+	$(document).on('click','.btn_addcard',function(e){
+		$("#qPayAgree_pop").modal("show");
+		return false;
+	});
+
+	// 간편결제등록 > STEP1.이용약관 체크
+	$(document).on('click','.area_QpayCk .agr_select button',function(e){
+		$(this).parents('.area_QpayCk').find('.info_agrQpay').toggle();
+		var payagrToggle = $(this).find('span');
+		$(payagrToggle).text($(payagrToggle).text() == '약관열기' ? '약관닫기' : '약관열기');
+		return false;
+	});
+
+	// 간편결제등록 > STEP1.이용약관 체크박스 전체선택
+	$(document).on('click','#chk-Qpay-agrAll',function(e){
+		$(this).parents(".qPayAgree_pop").find('.agree_Qpay input').prop("checked", $(this).is(":checked"));
+	});
+
+	// 간편결제등록 > STEP1.이용약관 체크박스 개별선택
+	$(document).on("click", ".agree_Qpay input",function(e){
+		var is_checked = true;
+		$(".agree_Qpay input").each(function(){
+			is_checked = is_checked && $(this).is(":checked");
+		});
+		$("#chk-Qpay-agrAll").prop("checked", is_checked);
+	});
+
+	// 간편결제등록 > 본인인증 팝업열기
+	$(document).on('click','#btn_qPayidConfirm_pop',function(e){
+		$("#qPayidConfirm_pop").modal("show");
+		return false;
+	});
+
+	// 카카오페이 결제준비 처리
+	var fnKakaoPaymentReady = function() {
+		let nextRedirectUrl = $('#order_info input[name=nextRedirectPcUrl]').val();
+		let option = 'width=420, height=520';
+		
+		window.open(nextRedirectUrl, 'kakaoPaymentPopup', option);
+	}
+
+	// 카카오페이 결제 승인 요청
+	var fnKakaoPaymentRequest = function(pgToken) {
+		// Token 값 설정
+		$('#order_info input[name=pgToken]').val(pgToken);
+		
+		// Form Submit
+		document.order_info.submit();
+		
+		return true;
+	}
+	
+	// 네이버페이 결제준비 처리
+	var fnNaverPaymentReady = function() {
+		let naverPayUrl = 'https://' + [[${@environment.getProperty('naverPay.payUrl.web')}]];
+		let reserveId = $('#order_info input[name=reserveId]').val();
+		let url = naverPayUrl + '/payments/' + reserveId;
+		let option = 'width=750, height=' + $(window).height();
+		
+		window.open(url, 'naverPaymentPopup', option);
+	}
+	
+	// 네이버페이 결제 승인 요청
+	var fnNaverPaymentRequest = function(paymentId) {
+		// TID 설정
+		$('#order_info input[name=pgTid]').val(paymentId);
+
+		// Form Submit
+		document.order_info.submit();
+
+		return true;
+	}
+});
+</script>
+
+</th:block>
+</body>
+</html>

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

@@ -30,7 +30,7 @@
 			<div class="content dp_hotdeal"> <!-- 페이지특정 클래스 = dp_hotdeal -->
 				<div class="cont_head">
 					<div>
-                        <h3>[[${socialInfo.socialNm}]]</h3>
+                        <h3 th:text="${socialInfo.socialNm}"></h3>
                     </div>
 				</div>
 				<div class="cont_body">
@@ -50,7 +50,7 @@
                                         <div class="itemPic">
                                             <div class="shape ranker"><span>특가</span></div>
                                             <img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + SocialData.sysImgNm}">
-                                            <button type="button" class="itemLike active">관심상품 추가</button>
+                                            <button type="button" class="itemLike" th:classappend="${SocialData.wishYn == 'Y'}? 'active' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${SocialData.goodsCd}, ithrCd='', contentsLoc='', planDtlSq=''">관심상품 추가</button>
                                         </div>
                                         <p class="itemBrand" th:text="${SocialData.brandKnm}"></p>
                                         <div class="itemName" th:text="${SocialData.goodsNm}" style="font-size: 18px;"></div>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/ux/sha512.min.js


Vissa filer visades inte eftersom för många filer har ändrats