Ver código fonte

취소통합작업 중간 COMMIT

jsh77b 5 anos atrás
pai
commit
48fdadfe17

+ 11 - 1
src/main/java/com/style24/core/biz/dao/TscOrderChangeDao.java

@@ -16,7 +16,7 @@ import com.style24.persistence.domain.OrderChange;
 public interface TscOrderChangeDao {
 	
 	/**
-	 * 취소,반품,교환 대상목록 조회
+	 * 주문변경대상목록 조회(취소, 반품, 교환)
 	 *
 	 * @param Order - 주문 정보
 	 * @return
@@ -25,6 +25,16 @@ public interface TscOrderChangeDao {
 	 */
 	List<Order> getCancelRequestTargetList(Order order);
 	
+	/**
+	 * 주문변경신청목록 조회 (취소, 반품, 교환)
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2020. 12. 16
+	 */
+	List<Order> getOrderChangeDetailList(Order order);
+	
 	/**
 	 * 주문상세단품정보 수정
 	 *

+ 237 - 199
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -36,7 +36,7 @@ public class TscOrderChangeService {
 	private TscOrderDao orderDao;
 	
 	/**
-	 * 주문변경정보 (상세번호배열, 취소수량배열) 취소 목록으로 변환
+	 * 주문변경정보 (상세번호배열, 취소수량배열) 취소 목록으로 변환 (사용안함)
 	 * @param Order
 	 * @return Order
 	 * @author jsh77b
@@ -92,7 +92,7 @@ public class TscOrderChangeService {
 	}
 	
 	/**
-	 * 주문변경 대상목록 조회
+	 * 주문변경 대상목록 조회 (취소, 반품, 교환)
 	 * @param Order
 	 * @return Order
 	 * @author jsh77b
@@ -103,166 +103,18 @@ public class TscOrderChangeService {
 	}
 	
 	/**
-	 * 취소신청 (batch(napy), batch(extmall))
+	 * 주문변경신청목록 조회 (취소, 반품, 교환)
 	 * @param Order
 	 * @return Order
 	 * @author jsh77b
-	 * @since 2021. 01. 19
+	 * @since 2021. 01. 27
 	 */
-	@SuppressWarnings("unchecked")
-	@Transactional("shopTxnManager")
-	public GagaMap cnclReq(GagaMap mav, int userNo) {
-		
-		// 1. 세션회원조회
-		//userNo = userNo;
-		
-		// 2. 변경요정정보목록
-		List<Order> cancelReqList		 	= (List<Order>) mav.get("cnclRtnList");				// 변경요청 목록
-		List<Order> cancelOrderRefundList 	= (List<Order>) mav.get("cancelOrderRefundList");	// 변경환불금액 목록 (주문상세단품 단위)
-		List<Order> cancelDelvRefundList 	= (List<Order>) mav.get("cancelDelvRefundList");	// 변경환불배송금액 목록 (DELV_FEE_CD 단위)
-				
-		// 3. 변경신청정보
-		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(); 						// 취소요청
-		String reqGbn		= mav.get("reqGbn").toString();										// 신청구분							
-		
-		// 4. 주문상세단품정보등록,변경 (단품단위)
-		List<Order> cancelOrderDetailList = new ArrayList<Order>();
-		
-		for (int i=0 ; i<cancelOrderRefundList.size() ; i++) {
-			Order cancelOrderRefundPo = cancelOrderRefundList.get(i);
-			cancelOrderRefundPo.setRegNo(userNo);
-			cancelOrderRefundPo.setUpdNo(userNo);
-
-			// 4.1 취소수량이 존재하면 주문상세단품정보 수정 및 주문상세단품이력정보 등록
-			if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {				
-				// 4.4 주문변경 상세 단위로 데이타 등록 (ORD_DTL_NO)
-				Boolean temp = false;
-				if (cancelOrderDetailList.size() > 0) {
-					for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
-						if (cancelOrderRefundPo.getOrdDtlNo() == cancelOrderDetailList.get(j).getOrdDtlNo()) {
-							temp = true;
-						}
-					}
-				}
-				
-				// 4.5 주문상세단위 데이타 저장(주문상세 단위)
-				if (!temp) {
-					cancelOrderDetailList.add(cancelOrderRefundPo);
-				}
-			}
-		}
-		
-		// 2021.01.21 DELV_FEE 배송번호 단위로 TB_ORDER_CHANGE 생성
-		// 4. 주문변경정보, 주문정보, 환불정보 (업체코드 & 배송정책코드)
-		for (int i=0 ; i<cancelDelvRefundList.size() ; i++) {
-			
-			Order obj = cancelDelvRefundList.get(i);
-			
-			// 취소금액이 있을때 처리
-			if (obj.getCnclRtnAmt() > 0) {
-			
-				// 5.1 주문변경 기본정보 등록 
-				OrderChange orderChange = new OrderChange();
-				orderChange.setOrdNo(ordNo);
-				orderChange.setChgGb(chgGb);
-				orderChange.setChgReason(chgReason);
-				orderChange.setChgMemo(chgMemo);
-				orderChange.setAddPayCost(0);
-				orderChange.setAddPayAmt(0);
-				orderChange.setRegNo(userNo);
-				orderChange.setUpdNo(userNo);
-				
-				// 5.2 주문변경 추가정보 등록
-				String chgerNm 			= mav.getString("chgerNm").toString();		// 변경자
-				String chgerPhnno 		= mav.getString("chgerPhnno").toString();	// 변경핸드폰번호
-				String chgerTelno 		= mav.getString("chgerTelno").toString();	// 변경전화번호
-				String chgerEmail 		= mav.getString("chgerEmail").toString();	// 변경이메일
-				
-				orderChange.setChgerNm(chgerNm);
-				orderChange.setChgerPhnno(chgerPhnno);
-				orderChange.setChgerTelno(chgerTelno);
-				orderChange.setChgerEmail(chgerEmail);
-				orderChange.setChgerRtnMemo("");
-				
-				orderChangeDao.createOrderChange(orderChange);
-				
-				// 5.3 주문상세단위 취소정보
-				for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
-					Order vo = cancelOrderRefundList.get(j);
-					vo.setRegNo(userNo);
-					vo.setUpdNo(userNo);
-					vo.setOrdDtlStat(TscConstants.OrderChangeStat.CANCEL.value()); 					// 취소신청
-					
-					// 5.3.0 DEVL_FEE_CD 단위로 주문상세 정보 처리
-					if (obj.getDelvFeeCd().equals(vo.getDelvFeeCd())) {
-						
-						// 5.3.1 주문변경상세정보 이력등록
-						orderChangeDao.createOrderDetailHstCnclRtn(vo);
-						
-						// * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음 주문상세단위로 수정
-						// 5.3 주문변경상세정보 등록
-						OrderChange changeDetailPo = new OrderChange();
-						changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
-						changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
-						changeDetailPo.setChgQty(vo.getOrdCanChgQty());
-						changeDetailPo.setChgStat(TscConstants.OrderChangeStat.CANCEL.value()); 	// 취소신청
-						changeDetailPo.setRegNo(userNo);
-						changeDetailPo.setUpdNo(userNo);
-						
-						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();
-				refundOrder.setOrdNo(ordNo);
-				refundOrder.setPaySq(0);
-				refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
-				refundOrder.setRegNo(userNo);
-				
-				// 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());
-				refundOrder.setRaBank(mav.get("bankCd").toString());
-				
-				orderChangeDao.createRefund(refundOrder);
-			}
-		}
-		
-		return mav;
+	public List<Order> getOrderChangeDetailList(Order order) {
+		return orderChangeDao.getOrderChangeDetailList(order);
 	}
 	
+	
+	
 	/**
 	 * 취소신청철회 (admin)
 	 * @param Order
@@ -286,48 +138,12 @@ public class TscOrderChangeService {
 		// 2. 주문정보 이력 등록 (TB_ORDER_DETAIL_HST(등록))
 		orderChangeDao.createOrderDtlHstCancel(order);
 		
-		// To Do List
+		// TODO
 		// 3. PG 실행 (취소시 추가결제금액 취소처리)
 		
 		return mav;
 	}
 	
-	/**
-	 * 취소신청승인 (admin)
-	 * @param Order
-	 * @return Order
-	 * @author jsh77b
-	 * @since 2021. 01. 19
-	 */
-	@Transactional("shopTxnManager")
-	public GagaMap cnclcnclComplete(GagaMap mav, int userNo) {
-		
-		// 1. 환불금액계산
-		
-		// 2. 사용포인트원복 (TB_CUST_POINT(수정), TB_CUST_POINT_HST(등록))
-		
-		// 3. 사용쿠폰원복 (TB_CUST_COUPON(수정))
-		
-		// 4. 상품권금액원복 (TB_CUST_GIFTCARD(수정), TB_CUST_GIFTCARD_HST(등록))
-		
-		// 5. 사은품취소 (TB_ORD_FREEGIFT(수정), TB_ORD_FREEGIFT(등록), TB_ORD_FREEGIFT_VAL(수정))
-		
-		// 6. 주문정보 수정 (TB_ORDER_DETAIL(수정), TB_ORDER_DETAIL_HST(등록), TB_ORDER_DETAIL_ITEM(수정), TB_ORDER_DETAIL_ITEM_HST(등록))
-		
-		// 7. 재고정보 (TB_SELL_QTY(등록))
-		
-		// 8. 주문변경정보 (TB_ORDER_CHANGE(수정), TB_ORDER_CHANGE_DTL(수정), TB_REFUND(수정))
-		
-		// PG 결제 금액 체크
-		// 9. PG 실행
-		
-		// 10. 결제정보 (TB_PAYMENT(등록))
-		
-		// 11. 추가배송비발생 (TB_PAYMENT(등록))
-		
-		return mav;
-	}
-	
 	/**
 	 * 취소완료 (admin, front, batch(soldout), batch(gift), batch(napy), batch(extmall))
 	 * @param Order
@@ -482,7 +298,7 @@ public class TscOrderChangeService {
 						if ("cnclComplete".equals(reqGbn)) {
 							changeDetailPo.setChgStat(TscConstants.OrderChangeStat.CANCEL_COMPLETE.value()); 	// 취소완료
 						} else {
-							changeDetailPo.setChgStat(TscConstants.OrderChangeStat.CANCEL.value()); 	// 취소신청
+							changeDetailPo.setChgStat(TscConstants.OrderChangeStat.CANCEL.value()); 			// 취소신청
 						}
 						
 						orderChangeDao.createOrderChangeDetail(changeDetailPo);
@@ -492,6 +308,7 @@ public class TscOrderChangeService {
 				// 2021.01.26 취소완료일때실행
 				// 5.31 상품재고원복 (TB_SELL_QTY 등록(취소,반품))
 				if ("cnclComplete".equals(reqGbn)) {
+					orderChange.setSellGb("11");
 					orderChangeDao.createSellQty(orderChange);
 				}
 				
@@ -572,13 +389,13 @@ public class TscOrderChangeService {
 			}
 		}
 		
-		// To Do List
+		// TODO
 		// 9. 포인트원복 (사용포인트, 주문상세단위)
 		
-		// To Do List
+		// TODO
 		// 10. 쿠폰원복 (상품쿠폰, 주문상세단위) (전체취소시 장바구니쿠폰, 배송비쿠폰)
 		
-		// To Do List
+		// TODO
 		// 11. 상품권원복
 		
 		// 12. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
@@ -587,10 +404,10 @@ public class TscOrderChangeService {
 		//freegiftOrder.setUpdNo(userNo);
 		//orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
 		
-		// To Do List
+		// TODO
 		// 13. PG 연동
 		
-		// To Do List
+		// TODO
 		// 14. 취소 완료 알림톡 발송 에정
 		
 		//int a = 100/0;
@@ -974,4 +791,225 @@ public class TscOrderChangeService {
 		
 		return mav;
 	}
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	/**
+	 * 취소신청 (admin, npay, extmall) (사용안함)
+	 * @param Order
+	 * @return Order
+	 * @author jsh77b
+	 * @since 2021. 01. 19
+	 */
+	@SuppressWarnings("unchecked")
+	@Transactional("shopTxnManager")
+	public GagaMap cnclReq(GagaMap mav, int userNo) {
+		
+		// 1. 세션회원조회
+		//userNo = userNo;
+		
+		// 2. 변경요정정보목록
+		List<Order> cancelReqList		 	= (List<Order>) mav.get("cnclRtnList");				// 변경요청 목록
+		List<Order> cancelOrderRefundList 	= (List<Order>) mav.get("cancelOrderRefundList");	// 변경환불금액 목록 (주문상세단품 단위)
+		List<Order> cancelDelvRefundList 	= (List<Order>) mav.get("cancelDelvRefundList");	// 변경환불배송금액 목록 (DELV_FEE_CD 단위)
+				
+		// 3. 변경신청정보
+		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(); 						// 취소요청
+		String reqGbn		= mav.get("reqGbn").toString();										// 신청구분							
+		
+		// 4. 주문상세단품정보등록,변경 (단품단위)
+		List<Order> cancelOrderDetailList = new ArrayList<Order>();
+		
+		for (int i=0 ; i<cancelOrderRefundList.size() ; i++) {
+			Order cancelOrderRefundPo = cancelOrderRefundList.get(i);
+			cancelOrderRefundPo.setRegNo(userNo);
+			cancelOrderRefundPo.setUpdNo(userNo);
+
+			// 4.1 취소수량이 존재하면 주문상세단품정보 수정 및 주문상세단품이력정보 등록
+			if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {				
+				// 4.4 주문변경 상세 단위로 데이타 등록 (ORD_DTL_NO)
+				Boolean temp = false;
+				if (cancelOrderDetailList.size() > 0) {
+					for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
+						if (cancelOrderRefundPo.getOrdDtlNo() == cancelOrderDetailList.get(j).getOrdDtlNo()) {
+							temp = true;
+						}
+					}
+				}
+				
+				// 4.5 주문상세단위 데이타 저장(주문상세 단위)
+				if (!temp) {
+					cancelOrderDetailList.add(cancelOrderRefundPo);
+				}
+			}
+		}
+		
+		// 2021.01.21 DELV_FEE 배송번호 단위로 TB_ORDER_CHANGE 생성
+		// 4. 주문변경정보, 주문정보, 환불정보 (업체코드 & 배송정책코드)
+		for (int i=0 ; i<cancelDelvRefundList.size() ; i++) {
+			
+			Order obj = cancelDelvRefundList.get(i);
+			
+			// 취소금액이 있을때 처리
+			if (obj.getCnclRtnAmt() > 0) {
+			
+				// 5.1 주문변경 기본정보 등록 
+				OrderChange orderChange = new OrderChange();
+				orderChange.setOrdNo(ordNo);
+				orderChange.setChgGb(chgGb);
+				orderChange.setChgReason(chgReason);
+				orderChange.setChgMemo(chgMemo);
+				orderChange.setAddPayCost(0);
+				orderChange.setAddPayAmt(0);
+				orderChange.setRegNo(userNo);
+				orderChange.setUpdNo(userNo);
+				
+				// 5.2 주문변경 추가정보 등록
+				String chgerNm 			= mav.getString("chgerNm").toString();		// 변경자
+				String chgerPhnno 		= mav.getString("chgerPhnno").toString();	// 변경핸드폰번호
+				String chgerTelno 		= mav.getString("chgerTelno").toString();	// 변경전화번호
+				String chgerEmail 		= mav.getString("chgerEmail").toString();	// 변경이메일
+				
+				orderChange.setChgerNm(chgerNm);
+				orderChange.setChgerPhnno(chgerPhnno);
+				orderChange.setChgerTelno(chgerTelno);
+				orderChange.setChgerEmail(chgerEmail);
+				orderChange.setChgerRtnMemo("");
+				
+				orderChangeDao.createOrderChange(orderChange);
+				
+				// 5.3 주문상세단위 취소정보
+				for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
+					Order vo = cancelOrderRefundList.get(j);
+					vo.setRegNo(userNo);
+					vo.setUpdNo(userNo);
+					vo.setOrdDtlStat(TscConstants.OrderChangeStat.CANCEL.value()); 					// 취소신청
+					
+					// 5.3.0 DEVL_FEE_CD 단위로 주문상세 정보 처리
+					if (obj.getDelvFeeCd().equals(vo.getDelvFeeCd())) {
+						
+						// 5.3.1 주문변경상세정보 이력등록
+						orderChangeDao.createOrderDetailHstCnclRtn(vo);
+						
+						// * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음 주문상세단위로 수정
+						// 5.3 주문변경상세정보 등록
+						OrderChange changeDetailPo = new OrderChange();
+						changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
+						changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
+						changeDetailPo.setChgQty(vo.getOrdCanChgQty());
+						changeDetailPo.setChgStat(TscConstants.OrderChangeStat.CANCEL.value()); 	// 취소신청
+						changeDetailPo.setRegNo(userNo);
+						changeDetailPo.setUpdNo(userNo);
+						
+						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();
+				refundOrder.setOrdNo(ordNo);
+				refundOrder.setPaySq(0);
+				refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
+				refundOrder.setRegNo(userNo);
+				
+				// 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());
+				refundOrder.setRaBank(mav.get("bankCd").toString());
+				
+				orderChangeDao.createRefund(refundOrder);
+			}
+		}
+		
+		return mav;
+	}
+	
+	
+	/**
+	 * 취소신청승인 (admin) (사용안함)
+	 * @param Order
+	 * @return Order
+	 * @author jsh77b
+	 * @since 2021. 01. 19
+	 */
+	@Transactional("shopTxnManager")
+	public GagaMap cnclcnclComplete(GagaMap mav, int userNo) {
+		
+		// 1. 환불금액계산
+		
+		// 2. 사용포인트원복 (TB_CUST_POINT(수정), TB_CUST_POINT_HST(등록))
+		
+		// 3. 사용쿠폰원복 (TB_CUST_COUPON(수정))
+		
+		// 4. 상품권금액원복 (TB_CUST_GIFTCARD(수정), TB_CUST_GIFTCARD_HST(등록))
+		
+		// 5. 사은품취소 (TB_ORD_FREEGIFT(수정), TB_ORD_FREEGIFT(등록), TB_ORD_FREEGIFT_VAL(수정))
+		
+		// 6. 주문정보 수정 (TB_ORDER_DETAIL(수정), TB_ORDER_DETAIL_HST(등록), TB_ORDER_DETAIL_ITEM(수정), TB_ORDER_DETAIL_ITEM_HST(등록))
+		
+		// 7. 재고정보 (TB_SELL_QTY(등록))
+		
+		// 8. 주문변경정보 (TB_ORDER_CHANGE(수정), TB_ORDER_CHANGE_DTL(수정), TB_REFUND(수정))
+		
+		// PG 결제 금액 체크
+		// 9. PG 실행
+		
+		// 10. 결제정보 (TB_PAYMENT(등록))
+		
+		// 11. 추가배송비발생 (TB_PAYMENT(등록))
+		
+		return mav;
+	}
 }

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

@@ -75,4 +75,5 @@ public class OrderChange extends TscBaseDomain {
 	private String delYn;
 	
 	private String reqGbn;
+	private String sellGb;
 }

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

@@ -51,7 +51,7 @@
 		     , DFP.DELV_FEE AS ORG_DELV_FEE
 		     , DFP.RTN_DELV_FEE
 		     , DFP.DELV_FEE + DFP.RTN_DELV_FEE AS EXC_DELV_FEE
-		     , 0			AS ORD_CAN_CHG_QTY
+		     , X.CHG_QTY AS ORD_CAN_CHG_QTY
 		     , VS.OPT_CD2S
 		     , VS.CURR_STOCK_QTYS
 		     , DL.RTN_LOC_NM
@@ -120,6 +120,10 @@
 		) VS
 		ON     ODI.ITEM_CD = VS.GOODS_CD
 		AND    ODI.OPT_CD1 = VS.OPT_CD1
+		LEFT   OUTER JOIN TB_ORDER_CHANGE_DETAIL X
+		ON     OD.ORD_DTL_NO = X.ORD_DTL_NO
+		AND    X.DEL_YN = 'N'
+		AND    X.ORD_CHG_SQ = #{ordChgSq}
 		WHERE  1=1
 		<if test="ordDtlStatArr != null and ordDtlStatArr != ''">
         AND    OD.ORD_DTL_STAT IN
@@ -135,6 +139,60 @@
 	         , OD.ORD_NO
 	         , OD.ORD_DTL_NO
 	</select>
+	
+	<!-- 주문변경신청목록 조회 (취소, 반품, 교환) -->
+	<select id="getOrderChangeDetailList" parameterType="Order" resultType="Order">
+		/* order.getOrderChangeList */
+		SELECT OCD.ORD_CHG_SQ
+		     , OCD.ORD_DTL_NO
+		     , OC.CHG_GB
+		     , FN_GET_CODE_NM('G680', OC.CHG_GB) AS CHG_GB_NM
+		     , OD.GOODS_CD
+		     , ODI.OPT_CD1
+		     , ODI.OPT_CD2
+		     , OCD.CHG_STAT 
+		     , FN_GET_CODE_NM('G685', OCD.CHG_STAT) AS CHG_STAT_NM
+		     , OCD.CHG_QTY
+		     , DATE_FORMAT(OCD.REG_DT,'%Y%m%d%H%i%S') AS REG_DT
+		     , OC.CHG_REASON 
+		     , CASE WHEN OC.CHG_GB = 'G680_20' THEN FN_GET_CODE_NM('G686', OC.CHG_REASON)
+		            WHEN OC.CHG_GB = 'G680_30' THEN FN_GET_CODE_NM('G688', OC.CHG_REASON)
+		            WHEN OC.CHG_GB = 'G680_40' THEN FN_GET_CODE_NM('G689', OC.CHG_REASON)
+		            ELSE '결제전취소'
+		            END  CHG_REASON_NM
+		     , OC.CHG_MEMO
+		     , OC.CHGER_NM
+		     , OC.CHGER_PHNNO 
+		     , OC.CHGER_ZIPCODE
+		     , OC.CHGER_BASE_ADDR
+		     , OC.CHGER_DTL_ADDR
+		     , OC.WD_INVOICE_SEND_YN
+		     , OC.WD_INVOICE_NO
+		FROM   TB_ORDER_CHANGE_DETAIL OCD
+		INNER  JOIN TB_ORDER_CHANGE OC
+		ON     OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ 
+		INNER  JOIN TB_ORDER_DETAIL OD
+		ON     OCD.ORD_DTL_NO = OD.ORD_DTL_NO 
+		INNER  JOIN (
+			SELECT X.ORD_DTL_ITEM_SQ
+			     , X.ORD_DTL_NO
+			     , X.ITEM_CD
+			     , X.OPT_CD
+			     , X.OPT_CD1
+			     , X.OPT_CD2
+			FROM   TB_ORDER_DETAIL_ITEM X
+			WHERE  X.ORD_NO = #{ordNo}
+			LIMIT  1
+		) ODI 
+		WHERE  1=1
+		AND    OD.ORD_NO = #{ordNo}
+		<if test='ordChgSq != null and ordChgSq != ""'>
+		AND    OCD.ORD_CHG_SQ = #{ordChgSq}	
+		</if>
+		AND    OCD.DEL_YN = 'N'
+		ORDER  BY OC.ORD_CHG_SQ
+		     , OCD.ORD_DTL_NO 
+	</select>
 
 	<!-- 주문상세단품정보 수정 -->
 	<update id="updateOrderDetailItem" parameterType="Order">
@@ -256,7 +314,7 @@
 		) 
 		SELECT ODI.ITEM_CD 
 		     , ODI.OPT_CD
-		     , '11'
+		     , #{sellGb}
 		     , ODI.ORD_DTL_NO
 		     , OCD.ORD_CHG_SQ
 		     , OD.AGENT_ORDER_ID