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

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

jsshin 5 лет назад
Родитель
Сommit
8df6294caf

+ 58 - 0
src/main/java/com/style24/core/biz/dao/TscOrderDao.java

@@ -0,0 +1,58 @@
+package com.style24.core.biz.dao;
+
+import java.util.List;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
+
+/**
+ * 주문관리 Dao
+ *
+ * @author card007
+ * @since 2021. 01. 25
+ */
+@ShopDs
+public interface TscOrderDao {
+	
+	/**
+	 * 주문상세정보 생성
+	 *
+	 * @param Order - 주문 정보
+	 * @return int
+	 * @author card007
+	 * @since 2021. 01. 25
+	 */
+	int createOrderDetailForExchange(Order order);
+
+	/**
+	 * 주문상세정보 생성
+	 *
+	 * @param Order - 주문 정보
+	 * @return int
+	 * @author card007
+	 * @since 2021. 01. 25
+	 */
+	int createOrderDetailHstForExchange(Order order);
+
+	/**
+	 * 주문상세정보 생성
+	 *
+	 * @param Order - 주문 정보
+	 * @return int
+	 * @author card007
+	 * @since 2021. 01. 25
+	 */
+	int createOrderDetailItemForExchange(Order order);
+
+	/**
+	 * 주문상세정보 생성
+	 *
+	 * @param Order - 주문 정보
+	 * @return int
+	 * @author card007
+	 * @since 2021. 01. 25
+	 */
+	int createOrderDetailItemHstForExchange(Order order);
+
+}

+ 231 - 33
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -9,8 +9,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.rest.server.GagaResponseStatus;
 import com.style24.core.biz.dao.TscOrderChangeDao;
+import com.style24.core.biz.dao.TscOrderDao;
 import com.style24.core.support.env.TscConstants;
+import com.style24.persistence.domain.DeliveryFee;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderChange;
 
@@ -29,6 +32,9 @@ public class TscOrderChangeService {
 	@Autowired
 	private TscOrderChangeDao orderChangeDao;
 	
+	@Autowired
+	private TscOrderDao orderDao;
+	
 	/**
 	 * 주문변경정보 (상세번호배열, 취소수량배열) 취소 목록으로 변환
 	 * @param Order
@@ -119,6 +125,8 @@ public class TscOrderChangeService {
 		int ordNo 			= Integer.parseInt(mav.getString("ordNo").toString());				// 주문번호
 		String chgReason 	= mav.getString("chgReason").toString();							// 변경사유
 		String chgMemo 		= mav.getString("chgMemo").toString();								// 변경메모
+		String allCanYn		= mav.getString("allCanYn").toString();								// 무통장입금전 전체취소 여부
+		String isCustomer	= mav.getString("isCustomer").toString();							// 귀책사유 (고객, 회사)		
 		String chgGb		= TscConstants.OrderChangeGb.CANCEL.value(); 						// 취소요청
 		
 		// 4. 주문상세단품정보등록,변경 (단품단위)
@@ -208,6 +216,22 @@ public class TscOrderChangeService {
 						orderChangeDao.createOrderChangeDetail(changeDetailPo);
 					}
 				}
+				// 5.4 환불결제정보 등록 (업체별 & 배송정책별) 단위
+				// 취소, 반품 사유에 따른 추가배송비, 반품배송비를 환불금액에서 추가, 제외 할 수 있다.
+				int spanRealCnclRtnAmt 		= obj.getCnclRtnAmt();		// 취소금액합계
+				int sumDeliveryFee 			= obj.getDelvFee();			// 배송비합계
+				int spanTotDeliveryFee 		= obj.getAddDelvFee();		// 추가배송비합계
+				int spanTotRtnDelvFee 		= obj.getRtnDelvFee();		// 반품배송비합계
+				int spanRefundAmt			= 0;
+
+				// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
+				if ("true".equals(isCustomer)) {
+					spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee) - spanTotDeliveryFee - spanTotRtnDelvFee;
+				}
+				// 회사사유 : 환불금액계산 = (취소금액 + 배송비)
+				else {
+					spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee);
+				}
 				
 				// 5.4 환불금액 등록
 				Order refundOrder = new Order();
@@ -216,15 +240,16 @@ public class TscOrderChangeService {
 				refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
 				refundOrder.setRegNo(userNo);
 				
-				refundOrder.setRefundAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()));
-				refundOrder.setRfCpn1Amt(Integer.parseInt(mav.get("spanCpn1DcAmt").toString()));
-				refundOrder.setRfTmtb1Amt(Integer.parseInt(mav.get("spanTmtb1DcAmt").toString()));
-				refundOrder.setRfTmtb2Amt(Integer.parseInt(mav.get("spanTmtb2DcAmt").toString()));
-				refundOrder.setRfGoodsCpnAmt(Integer.parseInt(mav.get("spanGoodsCpnDcAmt").toString()));
-				refundOrder.setRfCartCpnAmt(Integer.parseInt(mav.get("spanCartCpnDcAmt").toString()));
-				refundOrder.setRfPntAmt(Integer.parseInt(mav.get("spanPntDcAmt").toString()));
-				refundOrder.setRfPrePntAmt(Integer.parseInt(mav.get("spanPrePntDcAmt").toString()));
-				refundOrder.setRfGfcdUseAmt(Integer.parseInt(mav.get("spanGfcdUseAmt").toString()));
+				// 2021.01.25 TB_REFUND 정보 등록을 위해서 분리 작업
+				refundOrder.setRefundAmt(spanRefundAmt);
+				refundOrder.setRfCpn1Amt(obj.getCpn1DcAmt());
+				refundOrder.setRfTmtb1Amt(obj.getTmtb1DcAmt());
+				refundOrder.setRfTmtb2Amt(obj.getTmtb2DcAmt());
+				refundOrder.setRfGoodsCpnAmt(obj.getGoodsCpnDcAmt());
+				refundOrder.setRfCartCpnAmt(obj.getCartCpnDcAmt());
+				refundOrder.setRfPntAmt(obj.getPntAmt());
+				refundOrder.setRfPrePntAmt(obj.getPrePntDcAmt());
+				refundOrder.setRfGfcdUseAmt(obj.getGfcdUseAmt());
 				
 				refundOrder.setRaNo(mav.get("accountNo").toString());
 				refundOrder.setRaNm(mav.get("accountNm").toString());
@@ -449,15 +474,16 @@ public class TscOrderChangeService {
 				refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
 				refundOrder.setRegNo(userNo);
 				
-				refundOrder.setRefundAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()));
-				refundOrder.setRfCpn1Amt(Integer.parseInt(mav.get("spanCpn1DcAmt").toString()));
-				refundOrder.setRfTmtb1Amt(Integer.parseInt(mav.get("spanTmtb1DcAmt").toString()));
-				refundOrder.setRfTmtb2Amt(Integer.parseInt(mav.get("spanTmtb2DcAmt").toString()));
-				refundOrder.setRfGoodsCpnAmt(Integer.parseInt(mav.get("spanGoodsCpnDcAmt").toString()));
-				refundOrder.setRfCartCpnAmt(Integer.parseInt(mav.get("spanCartCpnDcAmt").toString()));
-				refundOrder.setRfPntAmt(Integer.parseInt(mav.get("spanPntDcAmt").toString()));
-				refundOrder.setRfPrePntAmt(Integer.parseInt(mav.get("spanPrePntDcAmt").toString()));
-				refundOrder.setRfGfcdUseAmt(Integer.parseInt(mav.get("spanGfcdUseAmt").toString()));
+				// 2021.01.25 TB_REFUND 정보 등록을 위해서 분리 작업
+				refundOrder.setRefundAmt(spanRefundAmt);
+				refundOrder.setRfCpn1Amt(obj.getCpn1DcAmt());
+				refundOrder.setRfTmtb1Amt(obj.getTmtb1DcAmt());
+				refundOrder.setRfTmtb2Amt(obj.getTmtb2DcAmt());
+				refundOrder.setRfGoodsCpnAmt(obj.getGoodsCpnDcAmt());
+				refundOrder.setRfCartCpnAmt(obj.getCartCpnDcAmt());
+				refundOrder.setRfPntAmt(obj.getPntAmt());
+				refundOrder.setRfPrePntAmt(obj.getPrePntDcAmt());
+				refundOrder.setRfGfcdUseAmt(obj.getGfcdUseAmt());
 				
 				refundOrder.setRaNo(mav.get("accountNo").toString());
 				refundOrder.setRaNm(mav.get("accountNm").toString());
@@ -535,6 +561,8 @@ public class TscOrderChangeService {
 		int ordNo 			= Integer.parseInt(mav.getString("ordNo").toString());				// 주문번호
 		String chgReason 	= mav.getString("chgReason").toString();							// 변경사유
 		String chgMemo 		= mav.getString("chgMemo").toString();								// 변경메모
+		String allCanYn		= mav.getString("allCanYn").toString();								// 무통장입금전 전체취소 여부
+		String isCustomer	= mav.getString("isCustomer").toString();							// 귀책사유 (고객, 회사)
 		String chgGb		= TscConstants.OrderChangeGb.RETURN.value(); 						// 반품요청
 		
 		// 4. 주문상세단품정보등록,변경 (단품단위)
@@ -589,7 +617,7 @@ public class TscOrderChangeService {
 				String chgerPhnno 		= mav.getString("chgerPhnno").toString();		// 변경핸드폰번호
 				String chgerTelno 		= mav.getString("chgerTelno").toString();		// 변경전화번호
 				String chgerEmail 		= mav.getString("chgerEmail").toString();		// 변경이메일
-				String chgerZipNo 		= mav.getString("chgerZipNo").toString();		// 변경우편번호
+				String chgerZipcode 	= mav.getString("chgerZipcode").toString();		// 변경우편번호
 				String chgerBaseAddr 	= mav.getString("chgerBaseAddr").toString();	// 변경기본주소
 				String chgerDtlAddr 	= mav.getString("chgerDtlAddr").toString();		// 변경상세주소
 				
@@ -598,7 +626,7 @@ public class TscOrderChangeService {
 				orderChange.setChgerTelno(chgerTelno);
 				orderChange.setChgerEmail(chgerEmail);
 				orderChange.setChgerRtnMemo("");
-				orderChange.setChgerZipNo(chgerZipNo);
+				orderChange.setChgerZipcode(chgerZipcode);
 				orderChange.setChgerBaseAddr(chgerBaseAddr);
 				orderChange.setChgerDtlAddr(chgerDtlAddr);
 				orderChange.setChgerRtnMemo("");
@@ -632,6 +660,23 @@ public class TscOrderChangeService {
 					}
 				}
 				
+				// 5.4 환불결제정보 등록 (업체별 & 배송정책별) 단위
+				// 취소, 반품 사유에 따른 추가배송비, 반품배송비를 환불금액에서 추가, 제외 할 수 있다.
+				int spanRealCnclRtnAmt 		= obj.getCnclRtnAmt();		// 취소금액합계
+				int sumDeliveryFee 			= obj.getDelvFee();			// 배송비합계
+				int spanTotDeliveryFee 		= obj.getAddDelvFee();		// 추가배송비합계
+				int spanTotRtnDelvFee 		= obj.getRtnDelvFee();		// 반품배송비합계
+				int spanRefundAmt			= 0;
+				
+				// 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
+				if ("true".equals(isCustomer)) {
+					spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee) - spanTotDeliveryFee - spanTotRtnDelvFee;
+				}
+				// 회사사유 : 환불금액계산 = (취소금액 + 배송비)
+				else {
+					spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee);
+				}
+				
 				// 5.4 환불금액 등록
 				Order refundOrder = new Order();
 				refundOrder.setOrdNo(ordNo);
@@ -639,15 +684,16 @@ public class TscOrderChangeService {
 				refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
 				refundOrder.setRegNo(userNo);
 				
-				refundOrder.setRefundAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()));
-				refundOrder.setRfCpn1Amt(Integer.parseInt(mav.get("spanCpn1DcAmt").toString()));
-				refundOrder.setRfTmtb1Amt(Integer.parseInt(mav.get("spanTmtb1DcAmt").toString()));
-				refundOrder.setRfTmtb2Amt(Integer.parseInt(mav.get("spanTmtb2DcAmt").toString()));
-				refundOrder.setRfGoodsCpnAmt(Integer.parseInt(mav.get("spanGoodsCpnDcAmt").toString()));
-				refundOrder.setRfCartCpnAmt(Integer.parseInt(mav.get("spanCartCpnDcAmt").toString()));
-				refundOrder.setRfPntAmt(Integer.parseInt(mav.get("spanPntDcAmt").toString()));
-				refundOrder.setRfPrePntAmt(Integer.parseInt(mav.get("spanPrePntDcAmt").toString()));
-				refundOrder.setRfGfcdUseAmt(Integer.parseInt(mav.get("spanGfcdUseAmt").toString()));
+				// 2021.01.25 TB_REFUND 정보 등록을 위해서 분리 작업
+				refundOrder.setRefundAmt(spanRefundAmt);
+				refundOrder.setRfCpn1Amt(obj.getCpn1DcAmt());
+				refundOrder.setRfTmtb1Amt(obj.getTmtb1DcAmt());
+				refundOrder.setRfTmtb2Amt(obj.getTmtb2DcAmt());
+				refundOrder.setRfGoodsCpnAmt(obj.getGoodsCpnDcAmt());
+				refundOrder.setRfCartCpnAmt(obj.getCartCpnDcAmt());
+				refundOrder.setRfPntAmt(obj.getPntAmt());
+				refundOrder.setRfPrePntAmt(obj.getPrePntDcAmt());
+				refundOrder.setRfGfcdUseAmt(obj.getGfcdUseAmt());
 				
 				refundOrder.setRaNo(mav.get("accountNo").toString());
 				refundOrder.setRaNm(mav.get("accountNm").toString());
@@ -681,13 +727,165 @@ public class TscOrderChangeService {
 	 * @author jsh77b
 	 * @since 2021. 01. 19
 	 */
-	public GagaMap exchReq(List<Order> cnclRtnList) {
-		GagaMap mav = new GagaMap();
+	public GagaMap exchReq(OrderChange excReq) {
+		GagaMap result = new GagaMap();
+		result.set("status", GagaResponseStatus.FAIL.getCode());
+		
+		// 교환 기본 정보
+		int ordNo = excReq.getOrdNo();						// 주문번호
+		String isCustomer = excReq.getIsCustomer();			// 귀책사유
+		String wdGb = excReq.getWdGb();						// 회수구분 (D:직접배송, W:회수요청)
+		String chgMemo = excReq.getChgMemo();				// 교환메모
+		int addPayCost = excReq.getAddPayCost();			// 추가배송비
+		Integer regNo = excReq.getRegNo();					// 등록자번호
+		Integer updNo = excReq.getUpdNo();					// 수정자번호
+		
+		// 회수지 정보
+		String chgerNm = excReq.getChgerNm();
+		String chgerTelno = excReq.getChgerTelno();
+		String chgerPhnno = excReq.getChgerPhnno();
+		String chgerEmail = excReq.getChgerEmail();
+		String chgerZipcode = excReq.getChgerZipcode();
+		String chgerBaseAddr = excReq.getChgerBaseAddr();
+		String chgerDtlAddr = excReq.getChgerDtlAddr();
+		
+		// 교환지 정보
+		String recipNm = excReq.getRecipNm();
+		String recipTelno = excReq.getRecipTelno();
+		String recipPhnno = excReq.getRecipPhnno();
+		String recipEmail = excReq.getRecipEmail();
+		String recipZipcode = excReq.getRecipZipcode();
+		String recipBaseAddr = excReq.getRecipBaseAddr();
+		String recipDtlAddr = excReq.getRecipDtlAddr();
+		
+		// 
+		Collection<Order> excReqList = excReq.getCancelReqList();
+		
+		// 1. 재고 체크 (세트아이템 포함)
+		
+
+		// 2. 교환상품 주문 상세 등록
+		int preOrdDtlNo = 0;
+		for (Order order : excReqList) {
+			int ordDtlNo = order.getOrdDtlNo();
+
+			if (preOrdDtlNo != ordDtlNo) {
+				// 2. TB_ORDER_DETAIL 등록
+				Order ordDtl = new Order();
+				ordDtl.setOrdDtlNo(order.getOrdDtlNo());
+				ordDtl.setOrdDtlStat(TscConstants.OrderDetailStat.WITHDRAW_CONFIRM_WAIT.value());
+				ordDtl.setChgQty(order.getChgQty());
+				ordDtl.setRegNo(order.getRegNo());
+				ordDtl.setUpdNo(order.getUpdNo());
+				orderDao.createOrderDetailForExchange(ordDtl);
+
+				// 3. TB_ORDER_DETAIL_HST 등록
+				orderDao.createOrderDetailHstForExchange(ordDtl);
+				
+				preOrdDtlNo = ordDtlNo;
+			}
+
+			// 4. TB_ORDER_DETAIL_ITEM 등록
+			Order ordDtlItem = new Order();
+			ordDtlItem.setOrdDtlItemSq(order.getOrdDtlItemSq());
+			ordDtlItem.setOrdDtlNo(order.getOrdDtlNo());
+			ordDtlItem.setOrdDtlStat(TscConstants.OrderDetailStat.WITHDRAW_CONFIRM_WAIT.value());
+			ordDtlItem.setOrdChgOpt(order.getOrdChgOpt());
+			ordDtlItem.setRegNo(order.getRegNo());
+			ordDtlItem.setUpdNo(order.getUpdNo());
+			
+			orderDao.createOrderDetailItemForExchange(ordDtlItem);
+
+			// 5. TB_ORDER_DETAIL_ITEM_HST 등록
+			orderDao.createOrderDetailItemHstForExchange(ordDtlItem);
+		}
 		
+		// 6. TB_ORDER_CHANGE 등록
+		OrderChange orderChange = new OrderChange();
+		orderChange.setChgGb(TscConstants.OrderChangeGb.EXCHANGE.value());
+		orderChange.setChgReason(excReq.getChgReason());
+		orderChange.setChgMemo(excReq.getChgMemo());
+		orderChange.setChgerNm(excReq.getChgerNm());
+		orderChange.setChgerPhnno(excReq.getChgerPhnno());
+		orderChange.setChgerTelno(excReq.getChgerTelno());
+		orderChange.setChgerEmail(excReq.getChgerEmail());
+		orderChange.setChgerZipcode(excReq.getChgerZipcode());
+		orderChange.setChgerBaseAddr(excReq.getChgerBaseAddr());
+		orderChange.setChgerDtlAddr(excReq.getChgerDtlAddr());
+		orderChange.setChgerRtnMemo(excReq.getChgerRtnMemo());
+		orderChange.setAddPayCost(excReq.getAddPayCost());
+		orderChange.setAddPayAmt(excReq.getAddPayAmt());
+		orderChange.setRegNo(excReq.getRegNo());
+		orderChange.setUpdNo(excReq.getUpdNo());
+		
+		orderChangeDao.createOrderChange(orderChange);
+		
+		// 생성된 ordChgSq 설정
+		excReq.setOrdChgSq(orderChange.getOrdChgSq());
+
+		// 7. TB_ORDER_CHANGE_DETAIL 등록
+		String orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE.value();
+
+		if (addPayCost > 0) {
+			orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE_WAIT.value();
+		}
+
+		// 8. TB_DELIVERY_FEE 추가배송비 등록
 		
-		return mav;
+		// 9. TB_SELL_QTY 등록
+
+
+		result.set("status", GagaResponseStatus.SUCCESS.getCode());
+		
+		return result;
 	}
-	
+
+	/**
+	 * 교환 추가배송비 조회
+	 * @param Collection<Order>
+	 * @return Collection<DeliveryFee>
+	 * @author card007
+	 * @since 2021. 01. 26
+	 */
+	public GagaMap getAddDeliveryFeeListForExchange(OrderChange orderChange) {
+		GagaMap result = new GagaMap();
+		Collection<DeliveryFee> deliveryFeeList = new ArrayList<>();
+		List<String> delvFeeCdList = new ArrayList<>();
+		int totalDelvFee = 0;
+
+		String wdGb = orderChange.getWdGb();
+		Collection<Order> excReqList = orderChange.getCancelReqList();
+		
+		for (Order order : excReqList) {
+			String delvFeeCd = order.getDelvFeeCd();
+			
+			if (!delvFeeCdList.contains(delvFeeCd)) {
+				int delvFee = 0;
+				
+				if ("true".equals(orderChange.getIsCustomer())) {
+					delvFee = "W".equals(wdGb) ? order.getExcDelvFee() : order.getRtnDelvFee();
+				}
+				
+				DeliveryFee deliveryFee = new DeliveryFee();
+				deliveryFee.setOrdNo(orderChange.getOrdNo());
+				deliveryFee.setDelvFeeGb(TscConstants.DeliveryFeeGb.EXCHANGE_DELIVERY_FEE.value());
+				deliveryFee.setDelvFeeCd(delvFeeCd);
+				deliveryFee.setDelvFee(delvFee);
+				deliveryFee.setRealDelvAmt(delvFee);
+				deliveryFee.setOrdChgSq(orderChange.getOrdChgSq());
+				deliveryFee.setSupplyCompCd(order.getSupplyCompCd());
+				
+				deliveryFeeList.add(deliveryFee);
+				totalDelvFee += delvFee;
+			}
+		}
+		
+		result.set("totalDelvFee", totalDelvFee);
+		result.set("deliveryFeeList", deliveryFeeList);
+		
+		return result;
+	}
+
 	/**
 	 * 교환회수
 	 * @param Order

+ 20 - 0
src/main/java/com/style24/core/biz/service/TscOrderRefundService.java

@@ -167,6 +167,16 @@ public class TscOrderRefundService {
 				cancelDelvRefundList.get(k).setCnclRtnAmt(cancelDelvRefundList.get(k).getCnclRtnAmt() + orderObj.getCnclRtnAmt());
 				cancelDelvRefundList.get(k).setRealOrdAmt(cancelDelvRefundList.get(k).getRealOrdAmt() + orderObj.getRealOrdAmt());
 				
+				// 2021.01.25 TB_REFUND 정보 등록을 위해서 분리 작업
+				cancelDelvRefundList.get(k).setPntDcAmt(cancelDelvRefundList.get(k).getPntDcAmt() + orderObj.getPntDcAmt());
+				cancelDelvRefundList.get(k).setPrePntDcAmt(cancelDelvRefundList.get(k).getPrePntDcAmt() + orderObj.getPrePntDcAmt());
+				cancelDelvRefundList.get(k).setCpn1CpnSq(cancelDelvRefundList.get(k).getCpn1DcAmt() + orderObj.getCpn1DcAmt());
+				cancelDelvRefundList.get(k).setGoodsCpnDcAmt(cancelDelvRefundList.get(k).getGoodsCpnDcAmt() + orderObj.getGoodsCpnDcAmt());
+				cancelDelvRefundList.get(k).setCartCpnDcAmt(cancelDelvRefundList.get(k).getCartCpnDcAmt() + orderObj.getCartCpnDcAmt());
+				cancelDelvRefundList.get(k).setTmtb1DcAmt(cancelDelvRefundList.get(k).getTmtb1DcAmt() + orderObj.getTmtb1DcAmt());
+				cancelDelvRefundList.get(k).setTmtb2DcAmt(cancelDelvRefundList.get(k).getTmtb2DcAmt() + orderObj.getTmtb2DcAmt());
+				cancelDelvRefundList.get(k).setGfcdAmt(cancelDelvRefundList.get(k).getGfcdAmt() + orderObj.getGfcdAmt());
+				
 				if ("N".equals(orderObj.getAllCanYn())) {
 					cancelDelvRefundList.get(k).setAllCanYn("N");
 				}
@@ -180,6 +190,16 @@ public class TscOrderRefundService {
 				delvObj.setCnclRtnAmt(orderObj.getCnclRtnAmt());
 				delvObj.setRealOrdAmt(orderObj.getRealOrdAmt());
 				
+				// 2021.01.25 TB_REFUND 정보 등록을 위해서 분리 작업
+				delvObj.setPntDcAmt(orderObj.getPntDcAmt());
+				delvObj.setPrePntDcAmt(orderObj.getPrePntDcAmt());
+				delvObj.setCpn1CpnSq(orderObj.getCpn1DcAmt());
+				delvObj.setGoodsCpnDcAmt(orderObj.getGoodsCpnDcAmt());
+				delvObj.setCartCpnDcAmt(orderObj.getCartCpnDcAmt());
+				delvObj.setTmtb1DcAmt(orderObj.getTmtb1DcAmt());
+				delvObj.setTmtb2DcAmt(orderObj.getTmtb2DcAmt());
+				delvObj.setGfcdAmt(orderObj.getGfcdAmt());
+				
 				delvObj.setDelvFee(orderObj.getDelvFee());
 				delvObj.setMinOrdAmt(orderObj.getMinOrdAmt());		
 				delvObj.setOrgDelvFee(orderObj.getOrgDelvFee());

+ 22 - 20
src/main/java/com/style24/core/support/env/TscConstants.java

@@ -62,7 +62,7 @@ public class TscConstants {
 	// 접촉유형
 	public enum ContactType {
 		PROMOTION("G054_100"),					// 회원-프로모션
-		CONGRATULATIONS("G054_201"),				// 회원-회원가입축하
+		CONGRATULATIONS("G054_201"),			// 회원-회원가입축하
 		CELLPHONE_AUTHENTICATION("G054_202"),	// 회원-휴대전화인증
 		PASSWORD_INFO("G054_203"), 				// 회원-고객비밀번호발송
 		QNA_INFO("G054_204"),					// 회원-1:1문의답변
@@ -72,9 +72,9 @@ public class TscConstants {
 		BANK_DEPOSIT_INFO("G054_302"),			// 주문-무통장입금안내
 		SOLDOUT_EXPECTED_INFO("G054_303"),		// 주문-결품예정안내
 		SOLDOUT_INFO("G054_304"),				// 주문-결품안내
-		CANCEL_INFO("G054_305"),					// 주문-취소안내
+		CANCEL_INFO("G054_305"),				// 주문-취소안내
 		REPAYMENT_INFO("G054_306"),				// 주문-재결제안내
-		BUY_CONFIRM("G054_307"),					// 주문-구매확정
+		BUY_CONFIRM("G054_307"),				// 주문-구매확정
 		SHIPPING_INFO("G054_401"),				// 배송-주문상품배송안내
 		EXCHANGE_SHIPPING_INFO("G054_402"),		// 배송-교환상품배송안내
 		RETURN_RECEIPT("G054_501"),				// 반품-반품접수완료
@@ -90,6 +90,7 @@ public class TscConstants {
 	// 주문상세상태
 	public enum OrderDetailStat {
 		DEPOSIT_WAIT("G013_10"),			// 입금대기
+		WITHDRAW_CONFIRM_WAIT("G013_17"),	// 회수컨펌대기
 		ORDER_WAIT_PRICE("G013_18"),		// 발주대기-가격차이
 		ORDER_WAIT_POST("G013_19"),			// 발주대기-우편번호상이
 		PAYMENT_COMPLETE("G013_20"),		// 결제완료
@@ -251,6 +252,7 @@ public class TscConstants {
 		EXCHANGE("G685_30"),				// 교환요청
 		EXCHANGE_CANCEL("G685_31"),			// 교환요청 취소
 		EXCHANGE_COMPLETE("G685_32"),		// 교환완료
+		EXCHANGE_WAIT("G685_33"),			// 교환요청대기 (추가배송비 결제 전)
 
 		RETURN("G685_40"),					// 반품요청
 		RETURN_CANCEL("G685_41"),			// 반품요청 취소
@@ -307,23 +309,23 @@ public class TscConstants {
 		}
 	}
 
-//	// 배송비구분
-//	public enum DeliveryFeeGb {
-//		ORIGIN_DELIVERY_FEE("10"),		// 원주문배송비
-//		REPAYMENT_DELIVERY_FEE("20"),	// 재결제배송비
-//		EXCHANGE_DELIVERY_FEE("30"),	// 교환배송비
-//		RETURN_DELIVERY_FEE("40");		// 반품배송비
-//
-//		private String value;
-//
-//		private DeliveryFeeGb(String value) {
-//			this.value = value;
-//		}
-//
-//		public String value() {
-//			return value;
-//		}
-//	}
+	// 배송비구분
+	public enum DeliveryFeeGb {
+		ORIGIN_DELIVERY_FEE("G018_10"),		// 원주문배송비
+		REPAYMENT_DELIVERY_FEE("G018_20"),	// 재결제배송비
+		EXCHANGE_DELIVERY_FEE("G018_30"),	// 교환배송비
+		RETURN_DELIVERY_FEE("G018_40");		// 반품배송비
+
+		private String value;
+
+		private DeliveryFeeGb(String value) {
+			this.value = value;
+		}
+
+		public String value() {
+			return value;
+		}
+	}
 //
 //	// 정산구분
 //	public enum UsacGb {

+ 34 - 0
src/main/java/com/style24/persistence/domain/DeliveryFee.java

@@ -0,0 +1,34 @@
+package com.style24.persistence.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.style24.persistence.TscBaseDomain;
+import com.style24.persistence.TscPageRequest;
+
+import lombok.Data;
+
+/**
+ * 배송비 Domain
+ * 
+ * @author card007
+ * @since 2021. 01. 26
+ */
+@SuppressWarnings("serial")
+@Data
+public class DeliveryFee extends TscBaseDomain {
+
+	private int delvFeeSq;				// 배송비일련번호
+	private int paySq;					// 결제일련번호
+	private int ordNo;					// 주문번호
+	private String delvFeeGb;			// 배송비구분(공통코드G018)
+	private String delvFeeCd;			// 배송비정책코드
+	private int delvFee;				// 배송비
+	private int delvCpnSq;				// 배송비쿠폰일련번호
+	private int delvCpnDcAmt;			// 배송비쿠폰할인금액
+	private int realDelvAmt;			// 배송비실결제금액
+	private int ordChgSq;				// 주문변경일련번호
+	private String supplyCompCd;		// 공급업체코드
+	private String delvUsacYn;			// 배송비정산여부
+	private String delvUsacDt;			// 배송비정산일시
+	private int totalDelvFee;			// 총배송비
+
+}

+ 4 - 2
src/main/java/com/style24/persistence/domain/Order.java

@@ -162,7 +162,7 @@ public class Order extends TscBaseDomain {
 	private String delYn;
 	private String recipPhnno;
 	private String recipTelno;
-	private String recipZipNo;
+	private String recipZipcode;
 	private String recipBaseAddr;
 	private String recipDtlAddr;
 	private String ordEmail;
@@ -202,7 +202,7 @@ public class Order extends TscBaseDomain {
 	private String chgMemo;
 	private String chgerNm;
 	private String chgerPhnno;
-	private String chgerZipNo;
+	private String chgerZipcode;
 	private String chgerBaseAddr;
 	private String chgerDtlAddr;
 	private String wdInvoiceNo;
@@ -373,4 +373,6 @@ public class Order extends TscBaseDomain {
 	private String rtnLocDtlAddr;
 	private String rtnLocTelno;
 	private String rtnLocNm;
+	private String exchangeOrdDtlNo;
+	private String exchangeOrdDtlItemSq;
 }

+ 9 - 2
src/main/java/com/style24/persistence/domain/OrderChange.java

@@ -28,7 +28,7 @@ public class OrderChange extends TscBaseDomain {
 	private String chgerPhnno;
 	private String chgerTelno;
 	private String chgerEmail;
-	private String chgerZipNo;
+	private String chgerZipcode;
 	private String chgerBaseAddr;
 	private String chgerDtlAddr;
 	private String chgerRtnMemo;
@@ -61,9 +61,16 @@ public class OrderChange extends TscBaseDomain {
 	private String wdGb;
 	private String recipNm;
 	private String recipEmail;
-	private String recipZipNo;
+	private String recipZipcode;
 	private String recipBaseAddr;
 	private String recipDtlAddr;
 	private String recipPhnno;
 	private String recipTelno;
+
+	private int chgOrdDtlNo;
+	private String completeDt;
+	private String wdShipState;
+	private String wdReasonCd;
+	private String wdStateDt;
+	private String delYn;
 }

+ 476 - 0
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -0,0 +1,476 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.style24.core.biz.dao.TscOrderDao">
+
+	<!-- 주문상세정보 생성 -->
+	<insert id="createOrderDetailForExchange" parameterType="Order">
+		/* order.createOrderDetailForExchange */
+		<selectKey keyProperty="exchangeOrdDtlNo" resultType="int" order="AFTER">
+			SELECT LAST_INSERT_ID()
+		</selectKey>
+
+		INSERT INTO TB_ORDER_DETAIL (
+			ORD_NO
+		  , ORD_EXCH_GB
+		  , ORD_DTL_STAT
+		  , ORG_ORD_DTL_NO
+		  , SUPPLY_COMP_CD
+		  , GOODS_CD
+		  , PRODUCT_NO
+		  , PRODUCT_CODE
+		  , FORMAL_GB
+		  , GOODS_TYPE
+		  , LIST_PRICE
+		  , CURR_PRICE
+		  , DC_RATE
+		  , OPT_ADD_PRICE
+		  , ORD_QTY
+		  , ORD_AMT
+		  , CNCL_RTN_QTY
+		  , CNCL_RTN_AMT
+		  , CPN1_CPN_SQ
+		  , CPN1_DC_AMT
+		  , TMTB1_SQ
+		  , TMTB1_DC_AMT
+		  , TMTB2_SQ
+		  , TMTB2_DC_AMT
+		  , GOODS_CPN_SQ
+		  , GOODS_CPN_DC_AMT
+		  , CART_CPN_SQ
+		  , CART_CPN_DC_AMT
+		  , BURDEN_RATE
+		  , PNT_DC_AMT
+		  , PRE_PNT_DC_AMT
+		  , SAVE_PNT_AMT
+		  , REAL_ORD_AMT
+		  , GFCD_USE_AMT
+		  , VENDOR_ID
+		  , EXTMALL_ID
+		  , AGENT_ORDER_ID
+		  , EXTMALL_ORDER_ID
+		  , CHANGABLE_YN
+		  , CHANGE_FEE_FREE_YN
+		  , RETURNABLE_YN
+		  , RETURN_FEE_FREE_YN
+		  , SOLDOUT_YN
+		  , SOLDOUT_MEMO
+		  , SOLDOUT_REG_NO
+		  , SOLDOUT_REG_DT
+		  , DELV_ADDR_SQ
+		  , DELV_FEE_CD
+		  , SHOT_DELV_YN
+		  , GIFT_PACK_YN
+		  , MAKE_GOODS_YN
+		  , ENTRY_NO
+		  , DELV_LOC_CD
+		  , DELV_ASSIGN_DT
+		  , DELV_ASSIGN_STAT
+		  , DSTRBT_NOTE
+		  , DELV_STDT
+		  , DELV_EDDT
+		  , SHIP_COMP_CD
+		  , INVOICE_NO
+		  , INVOICE_SEND_YN
+		  , SELL_STORE_CD
+		  , SELL_FEE_RATE
+		  , AF_LINK_CD
+		  , ITHR_CD
+		  , CONTENTS_LOC
+		  , PLAN_DTL_SQ
+		  , SOCIAL_SQ
+		  , REG_NO
+		  , REG_DT
+		  , UPD_NO
+		  , UPD_DT
+		)
+		SELECT ORD_NO
+			 , 'E'
+			 , #{ordDtlStat}
+			 , ORD_DTL_NO
+			 , SUPPLY_COMP_CD
+			 , GOODS_CD
+			 , PRODUCT_NO
+			 , PRODUCT_CODE
+			 , FORMAL_GB
+			 , GOODS_TYPE
+			 , LIST_PRICE
+			 , CURR_PRICE
+			 , DC_RATE
+			 , OPT_ADD_PRICE
+			 , #{chgQty}
+			 , 0
+			 , 0
+			 , 0
+			 , CPN1_CPN_SQ
+			 , 0
+			 , TMTB1_SQ
+			 , 0
+			 , TMTB2_SQ
+			 , 0
+			 , GOODS_CPN_SQ
+			 , 0
+			 , CART_CPN_SQ
+			 , 0
+			 , BURDEN_RATE
+			 , 0
+			 , 0
+			 , 0
+			 , 0
+			 , 0
+			 , VENDOR_ID
+			 , EXTMALL_ID
+			 , AGENT_ORDER_ID
+			 , EXTMALL_ORDER_ID
+			 , CHANGABLE_YN
+			 , CHANGE_FEE_FREE_YN
+			 , RETURNABLE_YN
+			 , RETURN_FEE_FREE_YN
+			 , SOLDOUT_YN
+			 , SOLDOUT_MEMO
+			 , SOLDOUT_REG_NO
+			 , SOLDOUT_REG_DT
+			 , DELV_ADDR_SQ
+			 , DELV_FEE_CD
+			 , SHOT_DELV_YN
+			 , GIFT_PACK_YN
+			 , MAKE_GOODS_YN
+			 , ENTRY_NO
+			 , NULL
+			 , NULL
+			 , 'P'
+			 , NULL
+			 , NULL
+			 , NULL
+			 , NULL
+			 , NULL
+			 , 'N'
+			 , SELL_STORE_CD
+			 , SELL_FEE_RATE
+			 , AF_LINK_CD
+			 , ITHR_CD
+			 , CONTENTS_LOC
+			 , PLAN_DTL_SQ
+			 , SOCIAL_SQ
+			 , #{regNo}
+			 , NOW()
+			 , #{updNo}
+			 , NOW()
+		  FROM TB_ORDER_DETAIL
+		 WHERE ORD_DTL_NO = #{ordDtlNo}
+	</insert>
+
+	<!-- 주문상세정보 이력 생성 -->
+	<insert id="createOrderDetailHstForExchange" parameterType="Order">
+		/* order.createOrderDetailHstForExchange */
+		INSERT INTO TB_ORDER_DETAIL_HST (
+			ORD_DTL_NO
+		  , ORD_NO
+		  , ORD_EXCH_GB
+		  , ORD_DTL_STAT
+		  , ORG_ORD_DTL_NO
+		  , SUPPLY_COMP_CD
+		  , GOODS_CD
+		  , PRODUCT_NO
+		  , PRODUCT_CODE
+		  , FORMAL_GB
+		  , GOODS_TYPE
+		  , LIST_PRICE
+		  , CURR_PRICE
+		  , DC_RATE
+		  , OPT_ADD_PRICE
+		  , ORD_QTY
+		  , ORD_AMT
+		  , CNCL_RTN_QTY
+		  , CNCL_RTN_AMT
+		  , CPN1_CPN_SQ
+		  , CPN1_DC_AMT
+		  , TMTB1_SQ
+		  , TMTB1_DC_AMT
+		  , TMTB2_SQ
+		  , TMTB2_DC_AMT
+		  , GOODS_CPN_SQ
+		  , GOODS_CPN_DC_AMT
+		  , CART_CPN_SQ
+		  , CART_CPN_DC_AMT
+		  , BURDEN_RATE
+		  , PNT_DC_AMT
+		  , PRE_PNT_DC_AMT
+		  , SAVE_PNT_AMT
+		  , REAL_ORD_AMT
+		  , GFCD_USE_AMT
+		  , VENDOR_ID
+		  , EXTMALL_ID
+		  , AGENT_ORDER_ID
+		  , EXTMALL_ORDER_ID
+		  , CHANGABLE_YN
+		  , CHANGE_FEE_FREE_YN
+		  , RETURNABLE_YN
+		  , RETURN_FEE_FREE_YN
+		  , SOLDOUT_YN
+		  , SOLDOUT_MEMO
+		  , SOLDOUT_REG_NO
+		  , SOLDOUT_REG_DT
+		  , DELV_ADDR_SQ
+		  , DELV_FEE_CD
+		  , SHOT_DELV_YN
+		  , GIFT_PACK_YN
+		  , MAKE_GOODS_YN
+		  , ENTRY_NO
+		  , DELV_LOC_CD
+		  , DELV_ASSIGN_DT
+		  , DELV_ASSIGN_STAT
+		  , DSTRBT_NOTE
+		  , DELV_STDT
+		  , DELV_EDDT
+		  , SHIP_COMP_CD
+		  , INVOICE_NO
+		  , INVOICE_SEND_YN
+		  , SELL_STORE_CD
+		  , SELL_FEE_RATE
+		  , AF_LINK_CD
+		  , ITHR_CD
+		  , CONTENTS_LOC
+		  , PLAN_DTL_SQ
+		  , SOCIAL_SQ
+		  , REG_NO
+		  , REG_DT
+		  , UPD_NO
+		  , UPD_DT
+		)
+		SELECT ORD_DTL_NO
+			 , ORD_NO
+			 , ORD_EXCH_GB
+			 , ORD_DTL_STAT
+			 , ORG_ORD_DTL_NO
+			 , SUPPLY_COMP_CD
+			 , GOODS_CD
+			 , PRODUCT_NO
+			 , PRODUCT_CODE
+			 , FORMAL_GB
+			 , GOODS_TYPE
+			 , LIST_PRICE
+			 , CURR_PRICE
+			 , DC_RATE
+			 , OPT_ADD_PRICE
+			 , ORD_QTY
+			 , ORD_AMT
+			 , CNCL_RTN_QTY
+			 , CNCL_RTN_AMT
+			 , CPN1_CPN_SQ
+			 , CPN1_DC_AMT
+			 , TMTB1_SQ
+			 , TMTB1_DC_AMT
+			 , TMTB2_SQ
+			 , TMTB2_DC_AMT
+			 , GOODS_CPN_SQ
+			 , GOODS_CPN_DC_AMT
+			 , CART_CPN_SQ
+			 , CART_CPN_DC_AMT
+			 , BURDEN_RATE
+			 , PNT_DC_AMT
+			 , PRE_PNT_DC_AMT
+			 , SAVE_PNT_AMT
+			 , REAL_ORD_AMT
+			 , GFCD_USE_AMT
+			 , VENDOR_ID
+			 , EXTMALL_ID
+			 , AGENT_ORDER_ID
+			 , EXTMALL_ORDER_ID
+			 , CHANGABLE_YN
+			 , CHANGE_FEE_FREE_YN
+			 , RETURNABLE_YN
+			 , RETURN_FEE_FREE_YN
+			 , SOLDOUT_YN
+			 , SOLDOUT_MEMO
+			 , SOLDOUT_REG_NO
+			 , SOLDOUT_REG_DT
+			 , DELV_ADDR_SQ
+			 , DELV_FEE_CD
+			 , SHOT_DELV_YN
+			 , GIFT_PACK_YN
+			 , MAKE_GOODS_YN
+			 , ENTRY_NO
+			 , DELV_LOC_CD
+			 , DELV_ASSIGN_DT
+			 , DELV_ASSIGN_STAT
+			 , DSTRBT_NOTE
+			 , DELV_STDT
+			 , DELV_EDDT
+			 , SHIP_COMP_CD
+			 , INVOICE_NO
+			 , INVOICE_SEND_YN
+			 , SELL_STORE_CD
+			 , SELL_FEE_RATE
+			 , AF_LINK_CD
+			 , ITHR_CD
+			 , CONTENTS_LOC
+			 , PLAN_DTL_SQ
+			 , SOCIAL_SQ
+			 , #{regNo}
+			 , NOW()
+			 , #{updNo}
+			 , NOW()
+		  FROM TB_ORDER_DETAIL
+		 WHERE ORD_DTL_NO = #{exchangeOrdDtlNo} 
+	</insert>
+
+	<!-- 주문상세단품정보 생성 -->
+	<insert id="createOrderDetailItemForExchange" parameterType="Order">
+		/* order.createOrderDetailItemForExchange */
+		<selectKey keyProperty="exchangeOrdDtlItemSq" resultType="int" order="AFTER">
+			SELECT LAST_INSERT_ID()
+		</selectKey>
+		
+		INSERT INTO TB_ORDER_DETAIL_ITEM (
+			ORD_DTL_NO
+		  , ORD_NO
+		  , ORD_DTL_STAT
+		  , ITEM_CD
+		  , OPT_CD
+		  , OPT_CD1
+		  , OPT_CD2
+		  , SKU_MODEL_NO
+		  , PRODUCT_NO
+		  , PRODUCT_CODE
+		  , ITEM_QTY
+		  , ITEM_PRICE
+		  , OPT_ADD_PRICE
+		  , DISP_ORD
+		  , ORD_AMT
+		  , CNCL_RTN_AMT
+		  , CPN1_DC_AMT
+		  , TMTB1_DC_AMT
+		  , TMTB2_DC_AMT
+		  , GOODS_CPN_DC_AMT
+		  , CART_CPN_DC_AMT
+		  , PNT_DC_AMT
+		  , PRE_PNT_DC_AMT
+		  , SAVE_PNT_AMT
+		  , REAL_ORD_AMT
+		  , GFCD_USE_AMT
+		  , REG_NO
+		  , REG_DT
+		  , UPD_NO
+		  , UPD_DT
+		)
+		SELECT #{ordDtlNo}
+			 , ORD_NO
+			 , #{ordDtlStat}
+			 , ITEM_CD
+			 , OPT_CD
+			 , OPT_CD1
+			 , #{ordChgOpt}
+			 , SKU_MODEL_NO
+			 , PRODUCT_NO
+			 , PRODUCT_CODE
+			 , ITEM_QTY
+			 , ITEM_PRICE
+			 , OPT_ADD_PRICE
+			 , DISP_ORD
+			 , 0
+			 , 0
+			 , 0
+			 , 0
+			 , 0
+			 , 0
+			 , 0
+			 , 0
+			 , 0
+			 , 0
+			 , 0
+			 , 0
+			 , #{regNo}
+			 , NOW()
+			 , #{updNo}
+			 , NOW()
+		  FROM TB_ORDER_DETAIL_ITEM
+		 WHERE ORD_DTL_ITEM_SQ = #{ordDtlItemSq}
+	</insert>
+
+	<!-- 주문상세단품정보 이력 생성 -->
+	<insert id="createOrderDetailItemHstForExchange" parameterType="Order">
+		/* order.createOrderDetailItemHstForExchange */
+		INSERT INTO TB_ORDER_DETAIL_ITEM_HST (
+			ORD_DTL_ITEM_SQ
+		  , ORD_DTL_NO
+		  , ORD_NO
+		  , ORD_DTL_STAT
+		  , ITEM_CD
+		  , OPT_CD
+		  , OPT_CD1
+		  , OPT_CD2
+		  , SKU_MODEL_NO
+		  , PRODUCT_NO
+		  , PRODUCT_CODE
+		  , ITEM_QTY
+		  , ITEM_PRICE
+		  , OPT_ADD_PRICE
+		  , DISP_ORD
+		  , ORD_AMT
+		  , CNCL_RTN_AMT
+		  , CPN1_DC_AMT
+		  , TMTB1_DC_AMT
+		  , TMTB2_DC_AMT
+		  , GOODS_CPN_DC_AMT
+		  , CART_CPN_DC_AMT
+		  , PNT_DC_AMT
+		  , PRE_PNT_DC_AMT
+		  , SAVE_PNT_AMT
+		  , REAL_ORD_AMT
+		  , GFCD_USE_AMT
+		  , REG_NO
+		  , REG_DT
+		  , UPD_NO
+		  , UPD_DT
+		)
+		SELECT ORD_DTL_ITEM_SQ
+			 , ORD_DTL_NO
+			 , ORD_NO
+			 , ORD_DTL_STAT
+			 , ITEM_CD
+			 , OPT_CD
+			 , OPT_CD1
+			 , OPT_CD2
+			 , SKU_MODEL_NO
+			 , PRODUCT_NO
+			 , PRODUCT_CODE
+			 , ITEM_QTY
+			 , ITEM_PRICE
+			 , OPT_ADD_PRICE
+			 , DISP_ORD
+			 , ORD_AMT
+			 , CNCL_RTN_AMT
+			 , CPN1_DC_AMT
+			 , TMTB1_DC_AMT
+			 , TMTB2_DC_AMT
+			 , GOODS_CPN_DC_AMT
+			 , CART_CPN_DC_AMT
+			 , PNT_DC_AMT
+			 , PRE_PNT_DC_AMT
+			 , SAVE_PNT_AMT
+			 , REAL_ORD_AMT
+			 , GFCD_USE_AMT
+			 , REG_NO
+			 , REG_DT
+			 , UPD_NO
+			 , UPD_DT
+		  FROM TB_ORDER_DETAIL_ITEM
+		 WHERE ORD_DTL_ITEM_SQ = #{exchangeOrdDtlItemSq} 
+	</insert>
+
+</mapper>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 22 - 24
src/main/java/com/style24/persistence/mybatis/shop/TscOrderChange.xml

@@ -4,7 +4,7 @@
 
 	<!-- 취소,반품,교환 대상목록 조회 -->
 	<select id="getCancelRequestTargetList" parameterType="Order" resultType="Order">
-		/* order.getCancelRequestTargetList */
+		/* OrderChange.getCancelRequestTargetList */
 		SELECT OD.ORD_NO
 		     , OD.ORD_DTL_NO
 		     , OD.ORD_DTL_STAT
@@ -68,7 +68,7 @@
 		AND    OD.ORD_DTL_NO = ODI.ORD_DTL_NO
 		INNER  JOIN TB_GOODS G2
 		ON     ODI.ITEM_CD = G2.GOODS_CD
-		LEFT   OUTER JOIN (
+		INNER  JOIN (
 			SELECT OD.ORD_DTL_NO
 			     , SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
 			FROM   TB_ORDER_CHANGE_DETAIL OCD
@@ -82,7 +82,7 @@
 			GROUP  BY OCD.ORD_DTL_NO
 		) OCD
 		ON     OD.ORD_DTL_NO = OCD.ORD_DTL_NO
-		INNER  JOIN (
+		LEFT   OUTER JOIN (
 			SELECT X.DELV_FEE_CD
 			     , SUM(X.DELV_FEE) AS DELV_FEE
 			FROM   TB_DELIVERY_FEE X
@@ -92,7 +92,7 @@
 			GROUP  BY X.DELV_FEE_CD
 		) DF
 		ON     OD.DELV_FEE_CD = DF.DELV_FEE_CD  
-		INNER  JOIN TB_DELV_FEE_POLICY DFP
+		LEFT   OUTER JOIN TB_DELV_FEE_POLICY DFP
 		ON     DF.DELV_FEE_CD = DFP.DELV_FEE_CD
 		AND    DFP.USE_YN = 'Y'
 		LEFT   OUTER JOIN (
@@ -137,10 +137,10 @@
 
 	<!-- 주문상세단품정보 수정 -->
 	<update id="updateOrderDetailItem" parameterType="Order">
-		/* Order.updateOrderDetailItem */
+		/* OrderChange.updateOrderDetailItem */
 		UPDATE TB_ORDER_DETAIL_ITEM ODI
 		INNER  JOIN TB_ORDER_DETAIL OD
-		ON     OD.ORD_DTL_NO = OD.ORD_DTL_NO
+		ON     OD.ORD_DTL_NO = ODI.ORD_DTL_NO
 		SET    ODI.ORD_DTL_STAT		= CASE WHEN OD.ORD_QTY > (OD.CNCL_RTN_QTY + #{ordCanChgQty})
 		                                   THEN ODI.ORD_DTL_STAT
 		                                   ELSE #{ordDtlStat}
@@ -166,7 +166,7 @@
 	
 	<!-- 주문상세단품이력정보 등록 -->
 	<insert id="createOrderDetailItemHst" parameterType="Order">
-		/* Order.createOrderDetailItemHst */
+		/* OrderChange.createOrderDetailItemHst */
 		INSERT INTO TB_ORDER_DETAIL_ITEM_HST (
 			ORD_DTL_ITEM_SQ
 			, ORD_DTL_NO
@@ -240,7 +240,7 @@
 	
 	<!-- 상품옵션재고정보 등록 -->
 	<update id="createSellQty" parameterType="OrderChange">
-		/* Order.createSellQty */
+		/* OrderChange.createSellQty */
 		INSERT INTO TB_SELL_QTY (
 			GOODS_CD
 			, OPT_CD
@@ -272,7 +272,7 @@
 	
 	<!-- 주문변경정보 등록 -->
 	<insert id="createOrderChange" parameterType="OrderChange" keyProperty="ordChgSq">
-		/* Order.createOrderChange */
+		/* OrderChange.createOrderChange */
 		INSERT INTO TB_ORDER_CHANGE (
 			CHG_GB
 			, CHG_REASON
@@ -281,7 +281,7 @@
 			, CHGER_PHNNO
 			, CHGER_TELNO
 			, CHGER_EMAIL
-			, CHGER_ZIP_NO
+			, CHGER_ZIPCODE
 			, CHGER_BASE_ADDR
 			, CHGER_DTL_ADDR
 			, CHGER_RTN_MEMO
@@ -299,7 +299,7 @@
 			 , #{chgerPhnno}
 			 , #{chgerTelno}
 			 , #{chgerEmail}
-			 , #{chgerZipNo}
+			 , #{chgerZipcode}
 			 , #{chgerBaseAddr}
 			 , #{chgerDtlAddr}
 			 , #{chgerRtnMemo}
@@ -314,7 +314,7 @@
 	
 	<!-- 주문변경상세정보 등록-->
 	<insert id="createOrderChangeDetail" parameterType="OrderChange">
-		/* Order.createOrderChangeDetail */
+		/* OrderChange.createOrderChangeDetail */
 		INSERT INTO TB_ORDER_CHANGE_DETAIL (
 			ORD_CHG_SQ
 			, ORD_DTL_NO
@@ -340,7 +340,7 @@
 	
 	<!-- 주문상세정보 수정 -->
 	<update id="updateOrderDetail" parameterType="Order">
-		/* Order.updateOrderDetail */
+		/* OrderChange.updateOrderDetail */
 		UPDATE TB_ORDER_DETAIL OD
 		INNER  JOIN (
 		SELECT ODI.ORD_DTL_NO
@@ -384,7 +384,7 @@
 	
 	<!-- 주문상세이력정보 (취소,반품) 등록 -->
 	<insert id="createOrderDetailHstCnclRtn" parameterType="Order">
-		/* Order.createOrderDetailHstCnclRtn */
+		/* OrderChange.createOrderDetailHstCnclRtn */
 		INSERT INTO TB_ORDER_DETAIL_HST (
 				ORD_DTL_NO
 				, ORD_NO
@@ -558,7 +558,7 @@
 
 	<!-- 주문환불금액정보(PG) 등록 -->
 	<insert id="createPayment" parameterType="Order" keyProperty="paySq">
-		/* Order.createPayment */
+		/* OrderChange.createPayment */
 		INSERT INTO TB_PAYMENT (
 			ORD_NO
 			, PAY_DT
@@ -628,7 +628,7 @@
 	
 	<!-- 주문환불정보 등록 -->
 	<insert id="createRefund" parameterType="Order">
-		/* Order.createRefund */
+		/* OrderChange.createRefund */
 		INSERT INTO TB_REFUND (
 			ORD_NO
 			, PAY_SQ
@@ -670,7 +670,7 @@
 
 	<!-- 주문추가배송금액 등록 -->
 	<insert id="createDeliveryFee" parameterType="Order">
-		/* Order.createDeliveryFee */
+		/* OrderChange.createDeliveryFee */
 		INSERT INTO TB_DELIVERY_FEE ( 
 			PAY_SQ
 			, ORD_NO
@@ -710,7 +710,7 @@
 	
 	<!-- 주문사은품전체취소 -->
 	<update id="updateOrdFreegiftDel" parameterType="Order">
-		/* Order.updateOrdFreegiftDel */
+		/* OrderChange.updateOrdFreegiftDel */
 		UPDATE TB_ORD_FREEGIFT_VAL
 		SET    DEL_YN= 'N'
 		     , UPD_NO = #{updNo}
@@ -730,12 +730,10 @@
 								 AND    X.ORD_NO = #{ordNo})
 		)
 	</update>
-	
-	
-	
+
 	<!-- 주문상세 > 주문취소 > 고객환불계좌정보 조회 -->
 	<select id="getRefundAccount" parameterType="Order" resultType="Order">
-		/* Order.getRefundAccount */
+		/* OrderChange.getRefundAccount */
 		SELECT Z.ACCOUNT_NO
 		     , Z.ACCOUNT_NM
 		     , Z.BANK_CD
@@ -764,7 +762,7 @@
 	
 	<!-- 주문상세 > 주문취소 > 고객환불계좌정보 중복체크 -->
 	<select id="getRefundAccountCheck" parameterType="Order" resultType="int">
-		/* Order.getRefundAccountCheck */
+		/* OrderChange.getRefundAccountCheck */
 		SELECT COUNT(1)
 		FROM   TB_CUST_ACCOUNT CA
 		WHERE  1=1
@@ -776,7 +774,7 @@
 	
 	<!-- 주문상세 > 주문취소 > 고객환불계좌정보 등록 -->
 	<insert id="saveRefundAccount" parameterType="Order">
-		/* Order.saveRefundAccount */
+		/* OrderChange.saveRefundAccount */
 		INSERT INTO TB_CUST_ACCOUNT (
 			CUST_NO
 			, BANK_CD