瀏覽代碼

마이페이지 취소접수승인 임시 커밋

card007 5 年之前
父節點
當前提交
a124837b3d

+ 20 - 0
src/main/java/com/style24/core/biz/dao/TscOrderChangeDao.java

@@ -526,4 +526,24 @@ public interface TscOrderChangeDao {
 	 * @since 2021. 04. 21
 	 */
 	Order getCurrStockQty(Order order);
+
+	/**
+	 * 결제취소 환불정보 수정
+	 *
+	 * @param Order
+	 * @return int
+	 * @author card007
+	 * @since 2021. 04. 22
+	 */
+	int updateRefundInfo(Order order);
+
+	/**
+	 * 주문취소접수승인 정보 조회
+	 *
+	 * @param Collection<OrderChange>
+	 * @return OrderChange
+	 * @author card007
+	 * @since 2021. 04. 22
+	 */
+	Collection<OrderChange> approveCancelRequestInfo(OrderChange orderChange);
 }

+ 252 - 93
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -179,12 +179,12 @@ public class TscOrderChangeService {
 	 */
 	@SuppressWarnings("unchecked")
 	@Transactional("shopTxnManager")
-	public GagaMap partialCancel(GagaMap map) {
+	public GagaMap partialCancel(GagaMap map, Integer userNo) {
 		// 1. 취소요청목록 및 정보 설정
 		List<Order> cancelOrderRefundList 	= (List<Order>) map.get("cancelOrderRefundList");				// 취소환불금액 목록 (주문상세단품 단위)
 		List<Order> cancelDelvRefundList 	= (List<Order>) map.get("cancelDelvRefundList");				// 취소환불배송금액 목록 (DELV_FEE_CD 단위)
 		int ordNo 							= map.getInt("ordNo");											// 주문번호
-		int custNo							= map.getInt("custNo");											// 고객번호
+		int ordChgSq						= map.getInt("ordChgSq");										// 주문변경일련번호
 		String chgReason 					= map.getString("chgReason");									// 변경사유
 		String chgReasonNm 					= map.getString("chgReasonNm");									// 변경사유명
 		String chgMemo 						= map.getString("chgMemo");										// 변경메모
@@ -196,18 +196,20 @@ public class TscOrderChangeService {
 		String accountNo					= map.getString("accountNo");									// 환불계좌번호
 		String accountNm					= map.getString("accountNm");									// 환불계좌주명
 		String bankCd						= map.getString("bankCd");										// 환불계좌은행코드
+		String reqGbn						= map.getString("reqGbn");										// 신청구분
 		String chgGb						= TscConstants.OrderChangeGb.CANCEL.value(); 					// 취소요청 (공톹코드:G680)
 		String ordDtlStat					= TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value();	// 주문상세상태
 		String chgStat						= TscConstants.OrderChangeStat.PAYMENT_AFTER_CANCEL.value();	// 주문변경상태
 		int realOrdAmt						= map.getInt("spanSumRealOrdAmt");								// 부분취소 전 결제금액
-		String modType;
+		String modType						= "";
 
 		// 무통장입금 결제 주문 전체취소 상태값 처리
-		if (TscConstants.PgGb.KCP.value().equals(pgGb)
-			&& TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payMeans)) {
-			modType = "STPD";															// KCP 무통장입금 부분취소
-		} else {
-			modType = "STPC";															// KCP 부분취소
+		if (TscConstants.PgGb.KCP.value().equals(pgGb)) {
+			if (TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payMeans)) {
+				modType = "STPD";															// KCP 무통장입금 부분취소
+			} else {
+				modType = "STPC";															// KCP 부분취소
+			}
 		}
 
 		// 2. 주문상세단품정보등록, 변경 (단품단위)
@@ -217,8 +219,8 @@ public class TscOrderChangeService {
 
 		for (Order cancelOrderRefundPo : cancelOrderRefundList) {
 			cancelOrderRefundPo.setOrdDtlStat(ordDtlStat);
-			cancelOrderRefundPo.setRegNo(custNo);
-			cancelOrderRefundPo.setUpdNo(custNo);
+			cancelOrderRefundPo.setRegNo(userNo);
+			cancelOrderRefundPo.setUpdNo(userNo);
 
 			// 2-1. 취소수량이 존재하면 주문상세단품정보 수정 및 주문상세단품 이력 등록
 			if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
@@ -239,6 +241,7 @@ public class TscOrderChangeService {
 		}
 
 		// 3. 주문변경정보, 주문정보, 환불정보 (배송정책코드 별)
+		List<Payment> pgList = new ArrayList<>();
 		for (Order obj : cancelDelvRefundList) {
 			// 취소금액 있을 시 처리
 			if (obj.getCnclRtnAmt() > 0) {
@@ -250,10 +253,18 @@ public class TscOrderChangeService {
 				orderChange.setChgMemo(chgMemo);
 				orderChange.setAddPayCost(0);
 				orderChange.setAddPayAmt(0);
-				orderChange.setRegNo(custNo);
-				orderChange.setUpdNo(custNo);
+				orderChange.setRegNo(userNo);
+				orderChange.setUpdNo(userNo);
 
-				orderChangeDao.createOrderChange(orderChange);
+				// 신청구분 처리
+				if ("cnclComplete".equals(reqGbn)) {
+					// 취소 완료 시 생성
+					orderChangeDao.createOrderChange(orderChange);
+					ordChgSq = orderChange.getOrdChgSq();
+				} else {
+					// 취소접수승인 시 ordChgSq 설정
+					orderChange.setOrdChgSq(ordChgSq);
+				}
 
 				// 3-2. 주문상세정보 수정
 				for (Order vo : cancelOrderDetailList) {
@@ -285,8 +296,8 @@ public class TscOrderChangeService {
 								point.setOccurGb(TscConstants.PointOccurGb.USE_POINT_CANCEL.value());
 								point.setPntUploadStat(TscConstants.PntUploadStat.APPLY_COMPLETE.value());
 								point.setOccurDtlDesc("포인트사용취소");
-								point.setRegNo(custNo);
-								point.setUpdNo(custNo);
+								point.setRegNo(userNo);
+								point.setUpdNo(userNo);
 
 								// 포인트 사용 취소 이력 생성 및 포인트 수정
 								orderChangeDao.createCustPointHstRollback(point);
@@ -303,8 +314,8 @@ public class TscOrderChangeService {
 							point.setPntUploadStat(TscConstants.PntUploadStat.APPLY_EXPECT.value());
 							point.setOccurDtlDesc("예정포인트적립취소");
 							point.setPntAmt(savePntAmt * -1);
-							point.setRegNo(custNo);
-							point.setUpdNo(custNo);
+							point.setRegNo(userNo);
+							point.setUpdNo(userNo);
 							
 
 							// 적립예정포인트 취소 이력 생성
@@ -330,8 +341,8 @@ public class TscOrderChangeService {
 
 								giftCard.setOccurGb(TscConstants.GiftCardOccurGb.USE_GIFTCARD_CANCEL.value());
 								giftCard.setOccurDtlDesc("상품권사용취소");
-								giftCard.setRegNo(custNo);
-								giftCard.setUpdNo(custNo);
+								giftCard.setRegNo(userNo);
+								giftCard.setUpdNo(userNo);
 
 								// 포인트 사용 취소 이력 생성 및 포인트 수정
 								orderChangeDao.createCustGiftCardHstRollback(giftCard);
@@ -345,10 +356,25 @@ public class TscOrderChangeService {
 						changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
 						changeDetailPo.setChgQty(vo.getOrdCanChgQty());
 						changeDetailPo.setChgStat(chgStat);
-						changeDetailPo.setRegNo(custNo);
-						changeDetailPo.setUpdNo(custNo);
+						changeDetailPo.setRegNo(userNo);
+						changeDetailPo.setUpdNo(userNo);
+
+						// 신청구분 처리
+						if ("cnclComplete".equals(reqGbn)) {
+							// 취소완료 시 주문변경상세 정보 생성
+							orderChangeDao.createOrderChangeDetail(changeDetailPo);
+						} else {
+							// 취소접수승인 시 주문변경상세 정보 수정
+							Order order = new Order();
+							order.setOrdNo(ordNo);
+							order.setOrdChgSq(ordChgSq);
+							order.setChgStat(chgStat);
+							order.setUpdNo(userNo);
+							order.setDelYn("N");
+
+							orderChangeDao.updateOrderChangeDtlCancel(order);
+						}
 
-						orderChangeDao.createOrderChangeDetail(changeDetailPo);
 						orderChangeDao.createOrderChangeDetailHst(changeDetailPo);
 					}
 				}
@@ -357,7 +383,7 @@ public class TscOrderChangeService {
 				orderChange.setSellGb(TscConstants.SellGb.ORDER_CANCEL.value());
 				orderChangeDao.createSellQty(orderChange);
 
-				// 3-4. PG 결제 취소 처리 (상품권으로만 결제 시 PG점프)
+				// 3-4. PG 결제 취소 정보 설정 (상품권으로만 결제 시 PG점프)
 				int spanRealCnclRtnAmt = obj.getRealOrdAmt();			// 취소금액합계
 				int sumDeliveryFee = obj.getDelvFee();					// 배송비합계
 				int spanTotDeliveryFee = obj.getAddDelvFee();			// 추가배송비합계
@@ -381,33 +407,17 @@ public class TscOrderChangeService {
 				pg.setPayMeans(payMeans);
 				pg.setPartCancelAmt(spanRefundAmt);
 				pg.setLeftAmt(realOrdAmt);
-				pg.setRegNo(custNo);
-				pg.setUpdNo(custNo);
+				pg.setRegNo(userNo);
+				pg.setUpdNo(userNo);
 
 				if (!TscConstants.PgGb.ISTYLE.value().equals(pgGb) && spanRefundAmt > 0) {
-					if (TscConstants.PgGb.KCP.value().equals(pgGb) || TscConstants.PgGb.PAYCO.value().equals(pgGb)) {
-						pg.setModType(modType);
-						pg.setModDesc("가맹점 취소 - 부분 취소");
-						pg.setIpAddress(ipAddress);
-						pg.setAccountNm(accountNm);
-						pg.setAccountNo(accountNo);
-						pg.setBankCd(bankCd);
-
-						kcpService.kcpCancel(pg);
-					} else if (TscConstants.PgGb.NAVER.value().equals(pgGb)) {
-						pg.setPayMeans(payMeans);
-						pg.setChgReasonNm(chgReasonNm);
-
-						naverPayService.cancelNaverPayment(pg);
-					} else if (TscConstants.PgGb.KAKAO.value().equals(pgGb)) {
-						kakaoPayService.cancelKakaoPayment(pg);
-					}
+					pgList.add(pg);
 				}
 
 				// 3-5. 환불정보 등록
 				Order refundOrder = new Order();
 				refundOrder.setOrdNo(ordNo);
-				refundOrder.setPaySq(pg.getPaySq());
+				refundOrder.setPaySq(0);
 				refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
 				refundOrder.setRefundAmt(spanRefundAmt);
 				refundOrder.setRfCpn1Amt(obj.getCpn1DcAmt());
@@ -424,7 +434,7 @@ public class TscOrderChangeService {
 				refundOrder.setRaNo(accountNo);
 				refundOrder.setRaNm(accountNm);
 				refundOrder.setRaBank(bankCd);
-				refundOrder.setRegNo(custNo);
+				refundOrder.setRegNo(userNo);
 
 				orderChangeDao.createRefund(refundOrder);
 
@@ -439,8 +449,8 @@ public class TscOrderChangeService {
 					delvFeeOrder.setRealDelvAmt(obj.getDelvFee());
 					delvFeeOrder.setOrdChgSq(orderChange.getOrdChgSq());
 					delvFeeOrder.setSupplyCompCd(obj.getSupplyCompCd());
-					delvFeeOrder.setRegNo(custNo);
-					delvFeeOrder.setUpdNo(custNo);
+					delvFeeOrder.setRegNo(userNo);
+					delvFeeOrder.setUpdNo(userNo);
 
 					orderChangeDao.createDeliveryFee(delvFeeOrder);
 				}
@@ -451,14 +461,14 @@ public class TscOrderChangeService {
 				// 4-1. 장바구니, 배송비 쿠폰 원복처리
 				Order coupon = new Order();
 				coupon.setOrdNo(ordNo);
-				coupon.setUpdNo(custNo);
+				coupon.setUpdNo(userNo);
 				orderChangeDao.updateCartCpnRollback(coupon);
 				orderChangeDao.updateDeliveryCpnRollback(coupon);
 
 				// 4-2. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
 				Order freegiftOrder = new Order();
 				freegiftOrder.setOrdNo(ordNo);
-				freegiftOrder.setUpdNo(custNo);
+				freegiftOrder.setUpdNo(userNo);
 				orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
 			}
 
@@ -474,6 +484,35 @@ public class TscOrderChangeService {
 			}
 
 			wmsService.updateWmsCancel(wmsList);
+			
+			// 6. PG 취소 처리
+			for (Payment pg : pgList) {
+				if (TscConstants.PgGb.KCP.value().equals(pgGb) || TscConstants.PgGb.PAYCO.value().equals(pgGb)) {
+					pg.setModType(modType);
+					pg.setModDesc("가맹점 취소 - 부분 취소");
+					pg.setIpAddress(ipAddress);
+					pg.setAccountNm(accountNm);
+					pg.setAccountNo(accountNo);
+					pg.setBankCd(bankCd);
+
+					kcpService.kcpCancel(pg);
+				} else if (TscConstants.PgGb.NAVER.value().equals(pgGb)) {
+					pg.setPayMeans(payMeans);
+					pg.setChgReasonNm(chgReasonNm);
+
+					naverPayService.cancelNaverPayment(pg);
+				} else if (TscConstants.PgGb.KAKAO.value().equals(pgGb)) {
+					kakaoPayService.cancelKakaoPayment(pg);
+				}
+
+				Order refundOrder = new Order();
+				refundOrder.setOrdNo(ordNo);
+				refundOrder.setPaySq(pg.getPaySq());
+				refundOrder.setOrdChgSq(ordChgSq);
+				refundOrder.setUpdNo(userNo);
+				
+				orderChangeDao.updateRefundInfo(refundOrder);
+			}
 		}
 
 		return map;
@@ -1688,7 +1727,122 @@ public class TscOrderChangeService {
 
 
 
+	/**
+	 * 취소 접수
+	 * 
+	 * @param OrderChange
+	 * @return GagaMap
+	 * @author card007
+	 * @since 2021. 04. 22
+	 */
+	@SuppressWarnings("unchecked")
+	@Transactional("shopTxnManager")
+	public GagaMap cancelRequest(OrderChange orderChange) {
+		GagaMap result = new GagaMap();
+		int userNo = orderChange.getUserNo();
 
+		// 1. 주문변경 등록
+		// ordNo				: 주문번호
+		// chgGb				: 변경구분
+		// chgReason			: 변경사유
+		// chgMemo				: 변경메모
+		// userNo				: 회원번호
+		// ordDtlNoArr			: 주문상세번호배열
+		// cnclRtnReqQtyArr		: 변경수량배열
+
+		orderChange.setRegNo(userNo);
+		orderChange.setUpdNo(userNo);
+		orderChangeDao.createOrderChange(orderChange);
+
+		for (int i = 0; i < orderChange.getOrdDtlNoArr().length; i++) {
+			Integer ordDtlNo = orderChange.getOrdDtlNoArr()[i];
+			int chgQty = orderChange.getCnclRtnReqQtyArr()[i];
+
+			// 2. 주문변경상세정보 등록
+			OrderChange changeDetailPo = new OrderChange();
+			changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
+			changeDetailPo.setOrdDtlNo(ordDtlNo);
+			changeDetailPo.setChgQty(chgQty);
+			changeDetailPo.setChgStat(TscConstants.OrderChangeStat.CANCEL.value());
+			changeDetailPo.setRegNo(userNo);
+			changeDetailPo.setUpdNo(userNo);
+
+			orderChangeDao.createOrderChangeDetail(changeDetailPo);
+		}
+		
+		result.setInt("status", GagaResponseStatus.SUCCESS.getCode());
+		
+		return result;
+	}
+
+	/**
+	 * 취소접수승인
+	 * 
+	 * @param GagaMap, int
+	 * @return GagaMap
+	 * @author card007
+	 * @since 2021. 04. 22
+	 */
+	@SuppressWarnings("unchecked")
+	@Transactional("shopTxnManager")
+	public GagaMap approveCancelRequest(OrderChange orderChange, Integer userNo) {
+		GagaMap result = new GagaMap();
+
+		// 1. 환불 사전 정보 조회
+		// ordChgSq, accountNo, accountNm, bankCd, ipAddress
+		List<Integer> ordDtlNoList = new ArrayList<>();
+		List<Integer> chgQtyList = new ArrayList<>();
+		for (OrderChange preInfo : orderChangeDao.approveCancelRequestInfo(orderChange)) {
+			ordDtlNoList.add(preInfo.getOrdDtlNo());
+			chgQtyList.add(preInfo.getChgQty());
+		}
+
+		orderChange.setOrdDtlNoArr(ordDtlNoList.stream().mapToInt(Integer::intValue).toArray());
+		orderChange.setCnclRtnReqQtyArr(chgQtyList.stream().mapToInt(Integer::intValue).toArray());
+		orderChange.setReqGbn("cnclReqComplete");
+		// 전체취소 분기처리
+		// 부분취소 신청구분 처리
+
+		GagaMap refundPreInfo = getRefundPreInfo(orderChange);
+		List<Order> cnclReqList = (List<Order>)refundPreInfo.get("cnclReqList");
+		String allCanYn = refundPreInfo.getString("allCanYn");
+		String allLastCanYn = refundPreInfo.getString("allLastCanYn");
+
+		// 2. 전체취소, 부분취소 구분 처리 진행
+		if ("Y".equals(allCanYn)) {
+			orderChange.setChgGb(TscConstants.OrderChangeGb.CANCEL.value());
+			orderChange.setRegNo(userNo);
+			orderChange.setUpdNo(userNo);
+
+			// 전체 취소 처리
+			allCnclComplete(orderChange);
+		} else {
+			// 3. 환불금액계산
+			// 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현
+			result = orderRefundService.cnclRtnRefundAmt(cnclReqList);
+
+			// 4. 부분취소 처리 정보 설정
+			result.setInt("ordNo", orderChange.getOrdNo());						// 주문번호
+			result.setString("chgReason", orderChange.getChgReason());			// 변경사유
+			result.setString("chgReasonNm", orderChange.getChgReasonNm());		// 변경사유명
+			result.setString("chgMemo", orderChange.getChgMemo());				// 변경메모
+			result.setString("accountNo", orderChange.getAccountNo());			// 환불계좌번호
+			result.setString("accountNm", orderChange.getAccountNm());			// 환불계좌예금주명
+			result.setString("bankCd", orderChange.getBankCd());				// 환불계좌은행코드
+			result.setString("allLastCanYn", allLastCanYn);						// 전체 마지막 취소 여부
+			result.setString("reqGbn", orderChange.getReqGbn());				// 신청구분
+			result.setString("ipAddress", orderChange.getIpAddress());			// IP주소
+			result.setInt("custNo", orderChange.getCustNo());					// 고객번호
+			result.setString("pgTid", refundPreInfo.getString("pgTid"));		// PG거래ID
+			result.setString("payMeans", refundPreInfo.getString("payMeans"));	// 결제수단
+			result.setString("pgGb", refundPreInfo.getString("pgGb"));			// PG구분
+
+			// 부분취소 처리
+			partialCancel(result, userNo);
+		}
+
+		return result;
+	}
 
 
 	/**
@@ -2064,7 +2218,49 @@ public class TscOrderChangeService {
 		freegiftOrder.setUpdNo(updNo);
 		orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
 
-		// 8. PG 연동
+		// 8. 주문상세 및 주문상세단품 정보 설정
+		OrderChange orderDetail = new OrderChange();
+		orderDetail.setOrdNo(ordNo);
+		orderDetail.setOrdDtlStat(ordDtlStat);
+		orderDetail.setRegNo(regNo);
+		orderDetail.setUpdNo(updNo);
+
+		// 주문상세정보 수정 및 이력 등록
+		orderChangeDao.updateOrderDetailForAllCancel(orderDetail);
+		orderChangeDao.createOrderDetailHstForAllCancel(orderDetail);
+
+		// 주문상세단품정보 수정 및 이력 등록
+		orderChangeDao.updateOrderDetailItemForAllCancel(orderDetail);
+		orderChangeDao.createOrderDetailItemHstForAllCancel(orderDetail);
+		
+		// 9. WMS 취소 처리
+		List<Order> wmsList = new ArrayList<>();
+		for (int i = 0; i < orderChange.getOrdDtlNoArr().length; i++) {
+			Order wms = new Order();
+			wms.setOrdNo(ordNo);
+			wms.setOrdDtlNo(orderChange.getOrdDtlNoArr()[i]);
+			wms.setChgQty(orderChange.getCnclRtnReqQtyArr()[i]);
+
+			wmsList.add(wms);
+		}
+
+		wmsService.updateWmsCancel(wmsList);
+
+		// 10. 환불금액 등록
+		Order refundOrder = orderChangeDao.getRefundInfoForAllCancel(vo);
+		refundOrder.setOrdNo(ordNo);
+		refundOrder.setPaySq(0);
+		refundOrder.setOrdChgSq(orderChangeDetail.getOrdChgSq());
+		refundOrder.setRefundAmt(refundAmt);
+		refundOrder.setRfRealCnclAmt(refundOrder.getRealOrdAmt() - refundOrder.getRfDeliveryFee());
+		refundOrder.setRaNo(accountNo);
+		refundOrder.setRaNm(accountNm);
+		refundOrder.setRaBank(bankCd);
+		refundOrder.setRegNo(regNo);
+
+		orderChangeDao.createRefund(refundOrder);
+
+		// 11. PG 연동
 		Payment pg = new Payment();
 		pg.setOrdNo(ordNo);
 		pg.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
@@ -2094,49 +2290,12 @@ public class TscOrderChangeService {
 			} else if (TscConstants.PgGb.KAKAO.value().equals(pgGb)) {
 				kakaoPayService.cancelKakaoPayment(pg);
 			}
-		}
-
-		// 9. 환불금액 등록
-		Order refundOrder = orderChangeDao.getRefundInfoForAllCancel(vo);
-		refundOrder.setOrdNo(ordNo);
-		refundOrder.setPaySq(pg.getPaySq());
-		refundOrder.setOrdChgSq(orderChangeDetail.getOrdChgSq());
-		refundOrder.setRefundAmt(refundAmt);
-		refundOrder.setRfRealCnclAmt(refundOrder.getRealOrdAmt() - refundOrder.getRfDeliveryFee());
-		refundOrder.setRaNo(accountNo);
-		refundOrder.setRaNm(accountNm);
-		refundOrder.setRaBank(bankCd);
-		refundOrder.setRegNo(regNo);
 
-		orderChangeDao.createRefund(refundOrder);
+			// 11. 환불금액 정보 수정
+			refundOrder.setPaySq(pg.getPaySq());
 
-		// 10. 주문상세 및 주문상세단품 정보 설정
-		OrderChange orderDetail = new OrderChange();
-		orderDetail.setOrdNo(ordNo);
-		orderDetail.setOrdDtlStat(ordDtlStat);
-		orderDetail.setRegNo(regNo);
-		orderDetail.setUpdNo(updNo);
-
-		// 주문상세정보 수정 및 이력 등록
-		orderChangeDao.updateOrderDetailForAllCancel(orderDetail);
-		orderChangeDao.createOrderDetailHstForAllCancel(orderDetail);
-
-		// 주문상세단품정보 수정 및 이력 등록
-		orderChangeDao.updateOrderDetailItemForAllCancel(orderDetail);
-		orderChangeDao.createOrderDetailItemHstForAllCancel(orderDetail);
-		
-		// 11. WMS 취소 처리
-		List<Order> wmsList = new ArrayList<>();
-		for (int i = 0; i < orderChange.getOrdDtlNoArr().length; i++) {
-			Order wms = new Order();
-			wms.setOrdNo(ordNo);
-			wms.setOrdDtlNo(orderChange.getOrdDtlNoArr()[i]);
-			wms.setChgQty(orderChange.getCnclRtnReqQtyArr()[i]);
-
-			wmsList.add(wms);
+			orderChangeDao.updateRefundInfo(refundOrder);
 		}
-
-		wmsService.updateWmsCancel(wmsList);
 	}
 
 	/**
@@ -2149,7 +2308,7 @@ public class TscOrderChangeService {
 	 */
 	@SuppressWarnings("unchecked")
 	@Transactional("shopTxnManager")
-	public GagaMap orderCancelPreInfo(OrderChange orderChange) {
+	public GagaMap orderCancelPreInfo(OrderChange orderChange, Integer userNo) {
 		GagaMap result = new GagaMap();
 
 		// 1. 환불 사전 정보 조회
@@ -2161,8 +2320,8 @@ public class TscOrderChangeService {
 		// 2. 전체취소, 부분취소 구분 처리 진행
 		if ("Y".equals(allCanYn)) {
 			orderChange.setChgGb(TscConstants.OrderChangeGb.CANCEL.value());
-			orderChange.setRegNo(orderChange.getCustNo());
-			orderChange.setUpdNo(orderChange.getCustNo());
+			orderChange.setRegNo(userNo);
+			orderChange.setUpdNo(userNo);
 
 			// 전체 취소 처리
 			allCnclComplete(orderChange);
@@ -2188,7 +2347,7 @@ public class TscOrderChangeService {
 			result.setString("pgGb", refundPreInfo.getString("pgGb"));			// PG구분
 
 			// 부분취소 처리
-			partialCancel(result);
+			partialCancel(result, userNo);
 		}
 
 		return result;

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

@@ -20,6 +20,7 @@ public class OrderChange extends TscBaseDomain {
 	private Integer ordNo;
 	private Integer ordDtlNo;
 	private Integer custNo;
+	private Integer userNo;
 	private String orderNm;
 	
 	private Integer ordChgSq;
@@ -62,6 +63,8 @@ public class OrderChange extends TscBaseDomain {
 	private int[] ordDtlNoArr;
 	private int[] cnclRtnReqQtyArr;
 	private String[] chgOptCd2Arr;
+	private String ordDtlNos;
+	private String chgQtys;
 
 	private List<Integer> ordDtlNoList;
 	private List<Integer> cnclRtnReqQtyList;

+ 39 - 0
src/main/java/com/style24/persistence/mybatis/shop/TscOrderChange.xml

@@ -2590,6 +2590,45 @@
 		   AND O.DISP_YN = 'Y'
 		</where>
 	</select>
+	
+	<!-- 결제취소 환불정보 수정 -->
+	<update id="updateRefundInfo" parameterType="Order">
+		/* TscOrderChange.updateRefundInfo */
+		UPDATE TB_REFUND
+		   SET PAY_SQ = #{paySq}
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = NOW()
+		 WHERE ORD_NO = #{ordNo}
+		   AND ORD_CHG_SQ = #{ordChgSq}
+	</update>
+	
+	<!-- 주문취소접수승인 정보 조회 -->
+	<select id="approveCancelRequestInfo" parameterType="OrderChange" resultType="OrderChange">
+		/* TscOrderChange.approveCancelRequestInfo */
+		SELECT OD.ORD_NO
+		     , O.CUST_NO
+		     , O.ORD_NM
+		     , OCD.ORD_DTL_NO
+			 , OCD.CHG_QTY
+		     , OC.CHG_REASON
+		     , FN_GET_CODE_NM('G686', OC.CHG_REASON) AS CHG_REASON_NM
+		     , OC.CHG_MEMO
+		     , P.PG_TID
+		     , P.PAY_MEANS
+		     , P.PG_GB
+		  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 OD.ORD_DTL_NO = OCD.ORD_DTL_NO
+		 INNER JOIN TB_ORDER O
+		    ON O.ORD_NO = OD.ORD_NO
+		 INNER JOIN TB_PAYMENT P
+		    ON P.ORD_NO = O.ORD_NO
+		   AND P.PAY_GB = 'O'
+		   AND P.PAY_STAT = 'G016_30'
+		 WHERE OCD.ORD_CHG_SQ = #{ordChgSq}
+	</select>
 </mapper>