Kaynağa Gözat

마이페이지 부분취소 임시 커밋

card007 5 yıl önce
ebeveyn
işleme
481940811e

+ 1 - 0
src/main/java/com/style24/core/biz/service/TscKakaoPayService.java

@@ -120,6 +120,7 @@ public class TscKakaoPayService {
 			// 카카오페이 카드결제 시 카드정보 설정
 			if ("CARD".equals(kakaoPay.getPayment_method_type())) {
 				payment.setCardKind(kakaoPay.getCard_info().getPurchase_corp());
+				payment.setCardCd(kakaoPay.getCard_info().getIssuer_corp_code());
 				payment.setCardNm(kakaoPay.getCard_info().getIssuer_corp());
 				payment.setCardType("신용".equals(kakaoPay.getCard_info().getCard_type()) ? "N" : "Y");
 				payment.setCardMips(kakaoPay.getCard_info().getInstall_month());

+ 2 - 1
src/main/java/com/style24/core/biz/service/TscNaverPayService.java

@@ -102,7 +102,8 @@ public class TscNaverPayService {
 		if (statusCode == 200) {
 			payment.setPgTradeNo(naverPay.getBody().getDetail().getPayHistId());
 			payment.setPgTid(naverPay.getBody().getDetail().getPaymentId());
-			payment.setPgShopId(naverPay.getBody().getDetail().getMerchantId());
+			payment.setPgShopId(env.getProperty("naverPay.clientId"));
+			payment.setPgShopKey(env.getProperty("naverPay.clientSecret"));
 			payment.setPayDt(naverPay.getBody().getDetail().getAdmissionYmdt());
 			payment.setPayStat(TscConstants.PaymentStat.PAYMENT_COMPLETE.value());
 			payment.setOrdNo(Integer.parseInt(naverPay.getBody().getDetail().getMerchantPayKey()));

+ 77 - 65
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -170,9 +170,10 @@ public class TscOrderChangeService {
 		int ordNo 							= map.getInt("ordNo");											// 주문번호
 		int custNo							= map.getInt("custNo");											// 고객번호
 		String chgReason 					= map.getString("chgReason");									// 변경사유
+		String chgReasonNm 					= "고객변심";														// 변경사유명
 		String chgMemo 						= map.getString("chgMemo");										// 변경메모
 		String allLastCanYn					= map.getString("allLastCanYn");								// 마지막 취소 여부
-		String isCustomer					= map.getString("isCustomer");									// 귀책사유 (고객, 회사)
+		// String isCustomer					= map.getString("isCustomer");									// 귀책사유 (고객, 회사)
 		String ipAddress					= map.getString("ipAddress");									// IP주소
 		String pgTid						= map.getString("pgTid");										// PG거래ID
 		String payMeans						= map.getString("payMeans");									// 결제수단
@@ -183,7 +184,17 @@ public class TscOrderChangeService {
 		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");								// 부분취소 전 결제금액
 		int pgCancelAmt						= 0;															// PG취소금액
+		String modType;
+
+		// 무통장입금 결제 주문 전체취소 상태값 처리
+		if (TscConstants.PgGb.KCP.value().equals(pgGb)
+			&& TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payMeans)) {
+			modType = "STPD";															// KCP 무통장입금 부분취소
+		} else {
+			modType = "STPC";															// KCP 부분취소
+		}
 
 		// 2. 주문상세단품정보등록, 변경 (단품단위)
 		List<Order> cancelOrderDetailList = new ArrayList<>();
@@ -246,11 +257,11 @@ public class TscOrderChangeService {
 
 						for (Order point : orderChangeDao.getCustPointHst(vo)) {
 							while (pntDcAmt > 0) {
-								if (pntDcAmt < point.getPntAmt()) {
+								if (pntDcAmt < (point.getPntAmt() * -1)) {
 									point.setPntAmt(pntDcAmt);
 									pntDcAmt -= pntDcAmt;
 								} else {
-									pntDcAmt -= point.getPntAmt();
+									pntDcAmt -= (point.getPntAmt() * -1);
 								}
 
 								point.setOccurGb(TscConstants.PointOccurGb.USE_POINT_CANCEL.value());
@@ -271,9 +282,10 @@ public class TscOrderChangeService {
 						for (Order point : orderChangeDao.getCustPointHst(vo)) {
 							point.setOccurGb(TscConstants.PointOccurGb.EXPECT_POINT_CANCEL.value());
 							point.setOccurDtlDesc("예정포인트적립취소");
-							point.setPayAmt(savePntAmt * -1);
+							point.setPntAmt(savePntAmt * -1);
 							point.setRegNo(custNo);
 							point.setUpdNo(custNo);
+							
 
 							// 적립예정포인트 취소 이력 생성
 							orderChangeDao.createCustPointHstRollback(point);
@@ -289,11 +301,11 @@ public class TscOrderChangeService {
 
 						for (Order giftCard : orderChangeDao.getCustGiftCardHst(vo)) {
 							while (gfcdUseAmt > 0) {
-								if (gfcdUseAmt < giftCard.getGfcdAmt()) {
+								if (gfcdUseAmt < (giftCard.getGfcdAmt() * -1)) {
 									giftCard.setGfcdAmt(gfcdUseAmt);
 									gfcdUseAmt -= gfcdUseAmt;
 								} else {
-									gfcdUseAmt -= giftCard.getGfcdAmt();
+									gfcdUseAmt -= (giftCard.getGfcdAmt() * -1);
 								}
 
 								giftCard.setOccurGb(TscConstants.GiftCardOccurGb.USE_GIFTCARD_CANCEL.value());
@@ -326,24 +338,59 @@ public class TscOrderChangeService {
 				orderChangeDao.createSellQty(orderChange);
 
 				// 3-4. 환불결제정보 등록 (배송정책 별)
-				int spanRealCnclRtnAmt = obj.getRealOrdAmt();        // 취소금액합계
-				int sumDeliveryFee = obj.getDelvFee();            // 배송비합계
+				// int spanRealCnclRtnAmt = obj.getRealOrdAmt();        // 취소금액합계
+				// int sumDeliveryFee = obj.getDelvFee();            // 배송비합계
+				// int spanRefundAmt = spanRealCnclRtnAmt + sumDeliveryFee;
+				//
+				// Order paymentOrder = new Order();
+				// paymentOrder.setOrdNo(ordNo);
+				// paymentOrder.setPayAmt(spanRefundAmt * -1);
+				// paymentOrder.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
+				// paymentOrder.setOrdChgSq(orderChange.getOrdChgSq());
+				// paymentOrder.setRegNo(custNo);
+				// paymentOrder.setUpdNo(custNo);
+				//
+				// orderChangeDao.createPayment(paymentOrder);
+
+				// 3-4. PG 결제 취소 처리 (상품권으로만 결제 시 PG점프)
+				int spanRealCnclRtnAmt = obj.getRealOrdAmt();			// 취소금액합계
+				int sumDeliveryFee = obj.getDelvFee();					// 배송비합계
 				int spanRefundAmt = spanRealCnclRtnAmt + sumDeliveryFee;
-
-				Order paymentOrder = new Order();
-				paymentOrder.setOrdNo(ordNo);
-				paymentOrder.setPayAmt(spanRefundAmt * -1);
-				paymentOrder.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
-				paymentOrder.setOrdChgSq(orderChange.getOrdChgSq());
-				paymentOrder.setRegNo(custNo);
-				paymentOrder.setUpdNo(custNo);
-
-				orderChangeDao.createPayment(paymentOrder);
+				
+				Payment pg = new Payment();
+				pg.setOrdNo(ordNo);
+				pg.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
+				pg.setPayGb("O");
+				pg.setPgTid(pgTid);
+				pg.setPayAmt(spanRefundAmt);
+				pg.setLeftAmt(realOrdAmt);
+				pg.setRegNo(custNo);
+				pg.setUpdNo(custNo);
+
+				if (!TscConstants.PgGb.ISTYLE.value().equals(pgGb)) {
+					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);
+					}
+				}
 
 				// 3-5. 환불정보 등록
 				Order refundOrder = new Order();
 				refundOrder.setOrdNo(ordNo);
-				refundOrder.setPaySq(paymentOrder.getPaySq());
+				refundOrder.setPaySq(pg.getPaySq());
 				refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
 				refundOrder.setRefundAmt(spanRefundAmt);
 				refundOrder.setRfCpn1Amt(obj.getCpn1DcAmt());
@@ -351,12 +398,12 @@ public class TscOrderChangeService {
 				refundOrder.setRfTmtb2Amt(obj.getTmtb2DcAmt());
 				refundOrder.setRfGoodsCpnAmt(obj.getGoodsCpnDcAmt());
 				refundOrder.setRfCartCpnAmt(obj.getCartCpnDcAmt());
-				refundOrder.setRfPntAmt(obj.getPntAmt());
+				refundOrder.setRfPntAmt(obj.getPntDcAmt());
 				refundOrder.setRfPrePntAmt(obj.getPrePntDcAmt());
-				refundOrder.setRfGfcdUseAmt(obj.getGfcdUseAmt());
-				refundOrder.setRfCnclAmt(obj.getRfCnclAmt());
-				refundOrder.setRfDeliveryFee(obj.getRfDeliveryFee());
-				refundOrder.setRfRealCnclAmt(obj.getRfRealCnclAmt());
+				refundOrder.setRfGfcdUseAmt(obj.getGfcdAmt());
+				refundOrder.setRfCnclAmt(obj.getCnclRtnAmt());
+				refundOrder.setRfDeliveryFee(obj.getAddDelvFee());
+				refundOrder.setRfRealCnclAmt(spanRefundAmt + obj.getAddDelvFee());
 				refundOrder.setRaNo(accountNo);
 				refundOrder.setRaNm(accountNm);
 				refundOrder.setRaBank(bankCd);
@@ -367,7 +414,7 @@ public class TscOrderChangeService {
 				// 3-6. 결제금액이 무료배송금액보다 작으면 배송비 신규 등록
 				if (obj.getAddDelvFee() > 0) {
 					Order delvFeeOrder = new Order();
-					delvFeeOrder.setPaySq(paymentOrder.getPaySq());
+					delvFeeOrder.setPaySq(pg.getPaySq());
 					delvFeeOrder.setOrdNo(ordNo);
 					delvFeeOrder.setDelvFeeGb(TscConstants.DeliveryFeeGb.ORIGIN_DELIVERY_FEE.value());
 					delvFeeOrder.setDelvFeeCd(obj.getDelvFeeCd());
@@ -399,48 +446,13 @@ public class TscOrderChangeService {
 				freegiftOrder.setUpdNo(custNo);
 				orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
 			}
+		}
 
-			// 5. PG 결제 취소 처리 (상품권으로만 결제 시 PG점프)
-			if (!TscConstants.PgGb.ISTYLE.value().equals(pgGb)) {
-				if (TscConstants.PgGb.KCP.value().equals(pgGb) || TscConstants.PgGb.PAYCO.value().equals(pgGb)) {
-					Payment kcp = new Payment();
-					kcp.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
-					kcp.setPayGb("O");
-					kcp.setModType("STSC");
-					kcp.setModDesc("가맹점 취소 - 전체 취소");
-					kcp.setIpAddress(ipAddress);
-					kcp.setPgTid(pgTid);
-					kcp.setPayAmt(pgCancelAmt);
-					kcp.setRegNo(custNo);
-					kcp.setUpdNo(custNo);
-					kcpService.kcpCancel(kcp);
-				} else if (TscConstants.PgGb.NAVER.value().equals(pgGb)) {
-					Payment naverPay = new Payment();
-					naverPay.setOrdNo(ordNo);
-					naverPay.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
-					naverPay.setPayGb("O");
-					naverPay.setPayMeans(payMeans);
-					naverPay.setChgReasonNm(chgReason);
-					naverPay.setPgTid(pgTid);
-					naverPay.setPayAmt(pgCancelAmt);
-					naverPay.setRegNo(custNo);
-					naverPay.setUpdNo(custNo);
-
-					naverPayService.cancelNaverPayment(naverPay);
-				} else if (TscConstants.PgGb.KAKAO.value().equals(pgGb)) {
-					Payment kakaoPay = new Payment();
-					kakaoPay.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
-					kakaoPay.setPayGb("O");
-					kakaoPay.setPgTid(pgTid);
-					kakaoPay.setPayAmt(pgCancelAmt);
-
-					kakaoPayService.cancelKakaoPayment(kakaoPay);
-				}
-			}
+		// TODO
+		// 14. 취소 완료 알림톡 발송 에정
 
-		}
-			return map;
-		}
+		return map;
+	}
 
 
 		/**

+ 3 - 7
src/main/java/com/style24/core/biz/service/TscOrderRefundService.java

@@ -125,10 +125,6 @@ public class TscOrderRefundService {
 			orderObj.setPrePntDcAmt((int)(oneData.getPrePntDcAmt() 			* _appQty));
 			orderObj.setSavePntAmt((int)(oneData.getSavePntAmt() 			* _appQty));
 			orderObj.setGfcdUseAmt((int)(oneData.getGfcdUseAmt() 			* _appQty));
-			// TODO
-			// RF_CNCL_AMT 상품취소금액
-			// RF_DELIVERY_FEE (환불배송비 - 추가배송비)
-			// RF_REAL_CNCL_AMT (배송비 제외 환불금액)
 			
 			// 3.4 취소할인합계금액 적용
 			int dcTotAmt		= 0;
@@ -179,7 +175,7 @@ public class TscOrderRefundService {
 				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());
+				cancelDelvRefundList.get(k).setGfcdAmt(cancelDelvRefundList.get(k).getGfcdAmt() + orderObj.getGfcdUseAmt());
 				
 				if("Y".equals(orderObj.getDelvYn())) {
 					cancelDelvRefundList.get(k).setDelvYn(orderObj.getDelvYn());
@@ -205,12 +201,12 @@ public class TscOrderRefundService {
 				// 2021.01.25 TB_REFUND 정보 등록을 위해서 분리 작업
 				delvObj.setPntDcAmt(orderObj.getPntDcAmt());
 				delvObj.setPrePntDcAmt(orderObj.getPrePntDcAmt());
-				delvObj.setCpn1CpnSq(orderObj.getCpn1DcAmt());
+				delvObj.setCpn1DcAmt(orderObj.getCpn1DcAmt());
 				delvObj.setGoodsCpnDcAmt(orderObj.getGoodsCpnDcAmt());
 				delvObj.setCartCpnDcAmt(orderObj.getCartCpnDcAmt());
 				delvObj.setTmtb1DcAmt(orderObj.getTmtb1DcAmt());
 				delvObj.setTmtb2DcAmt(orderObj.getTmtb2DcAmt());
-				delvObj.setGfcdAmt(orderObj.getGfcdAmt());
+				delvObj.setGfcdAmt(orderObj.getGfcdUseAmt());
 				
 				delvObj.setDelvFee(orderObj.getDelvFee());
 				delvObj.setMinOrdAmt(orderObj.getMinOrdAmt());

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

@@ -556,6 +556,7 @@ public class Order extends TscBaseDomain {
 	private int cancelCount;
 	private int exchangeCount;
 	private int returnCount;
+	private int confirmCount;
 	private String reviewableYn;
 
 	// 카카오페이 & 네이버페이

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

@@ -108,5 +108,6 @@ public class Payment extends TscBaseDomain {
 	private String cancelRequester;			// 네이버페이 취소 요청자(1: 구매자, 2: 가맹점 관리자)
 	private String chgReasonNm;				// 취소 사유
 	private String naverMethodType;			// 네이버페이 주 결제 수단 (CARD:신용카드, BANK:계좌이체)
+	private String pgShopKey;				// 네이버페이 시크릿키
 
 }

+ 47 - 29
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -2317,6 +2317,7 @@
 			, CARD_BANK
 			, CARD_CD
 			, CARD_NM
+			, COM_CARD_CD
 			, CARD_MIPS
 			, CARD_PCABLE_YN
 			, VA_NO
@@ -2345,6 +2346,7 @@
 			 , CARD_BANK
 		     , CARD_CD
 			 , CARD_NM
+			 , COM_CARD_CD
 			 , CARD_MIPS
 			 , CARD_PCABLE_YN
 			 , VA_NO
@@ -2376,11 +2378,13 @@
 			, PG_TID
 			, PG_TRADE_NO
 			, PG_SHOP_ID
+			, PG_SHOP_KEY
 			, CARD_TYPE
 			, CARD_KIND
 			, CARD_BANK
 			, CARD_CD
 			, CARD_NM
+			, COM_CARD_CD
 			, CARD_MIPS
 			, CARD_PCABLE_YN
 			, VA_NO
@@ -2407,11 +2411,13 @@
 			, #{pgTid}
 			, #{pgTradeNo}
 			, #{pgShopId}
+			, #{pgShopKey}
 			, #{cardType}
 			, #{cardKind}
 			, #{cardBank}
 			, #{cardCd}
 			, #{cardNm}
+			, FN_GET_CARD_CODE(#{pgGb}, #{cardCd})
 			, #{cardMips}
 			, IFNULL(#{cardPcableYn}, 'Y')
 			, #{vaNo}
@@ -3537,51 +3543,63 @@
 		     , IFNULL(SUM(Z.SHIPPING), 0)                               AS SHIPPING_COUNT
 		     , IFNULL(SUM(Z.SHIP_COMPLETE), 0)                          AS SHIP_COMPLETE_COUNT
 		     , IFNULL(SUM(Z.CANCEL_COUNT), 0)                           AS CANCEL_COUNT
-		     , IFNULL(SUM(Z.EXCHANGE_COUNT + Z.EXCHANGE_WAIT_COUNT), 0) AS EXCHANGE_COUNT
+		     , IFNULL(SUM(Z.EXCHANGE_COUNT), 0)                         AS EXCHANGE_COUNT
 		     , IFNULL(SUM(Z.RETURN_COUNT), 0)                           AS RETURN_COUNT
-		FROM (
-		      SELECT IFNULL(CASE OD.ORD_DTL_STAT WHEN 'G013_00' THEN 1
-		                    END, 0) AS ORDER_RECEIPT
+		     , IFNULL(SUM(Z.CONFIRM_COUNT), 0)                          AS CONFIRM_COUNT
+		FROM (SELECT IFNULL(CASE OD.ORD_DTL_STAT WHEN 'G013_00' THEN 1
+		                     END, 0) AS ORDER_RECEIPT
 		           , IFNULL(CASE OD.ORD_DTL_STAT WHEN 'G013_10' THEN 1
-		                    END, 0) AS DEPOSIT_WAITING
+		                     END, 0) AS DEPOSIT_WAITING
 		           , IFNULL(CASE OD.ORD_DTL_STAT WHEN 'G013_11' THEN 1
-		                    END, 0) AS WAITING_ADD_PAYMENT
+		                     END, 0) AS WAITING_ADD_PAYMENT
 		           , IFNULL(CASE OD.ORD_DTL_STAT WHEN 'G013_20' THEN 1
-		                    END, 0) AS PAYMENT_COMPLETE
+		                     END, 0) AS PAYMENT_COMPLETE
 		           , IFNULL(CASE OD.ORD_DTL_STAT WHEN 'G013_30' THEN 1
-		                    END, 0) AS GOODS_PREPARE
-		           , IFNULL(CASE OD.ORD_DTL_STAT WHEN 'G013_40' THEN 1
-		                    END, 0) AS SHIP_PREPARE
+		                     END, 0) AS GOODS_PREPARE
+		           , IFNULL(CASE OD.ORD_DTL_STAT WHEN 'G013_35' THEN 1
+		                                         WHEN 'G013_40' THEN 1
+		                     END, 0) AS SHIP_PREPARE
 		           , IFNULL(CASE OD.ORD_DTL_STAT WHEN 'G013_50' THEN 1
-		                    END, 0) AS SHIPPING
+		                                         WHEN 'G013_55' THEN 1
+		                     END, 0) AS SHIPPING
 		           , IFNULL(CASE WHEN OD.ORD_DTL_STAT = 'G013_60'
-		                    AND O.ORD_DT >= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 WEEK, '%Y-%m-%d') THEN 1
-		                    END, 0) AS SHIP_COMPLETE
-		           , IFNULL(CASE OCD.CHG_STAT WHEN 'G685_20' THEN 1
-		                    END, 0) AS CANCEL_COUNT
+		                          AND O.ORD_DT >= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 WEEK, '%Y-%m-%d') THEN 1
+		                     END, 0) AS SHIP_COMPLETE
+		           , IFNULL(CASE OCD.CHG_STAT WHEN 'G685_10' THEN 1
+		                                      WHEN 'G685_11' THEN 1
+		                     END, 0) AS CANCEL_COUNT
+		           , IFNULL(CASE WHEN OCD.CHG_STAT = 'G685_20' THEN 1
+		                         WHEN OCD.CHG_STAT = 'G685_21' THEN 1
+		                         WHEN OCD.CHG_STAT = 'G685_34' THEN 1
+		                         WHEN OCD.CHG_STAT = 'G685_40' AND (OD2.ORD_DTL_STAT <![CDATA[<>]]> 'G013_60' AND OD2.ORD_DTL_STAT <![CDATA[<>]]> 'G013_70') THEN 1
+		                     END, 0) AS EXCHANGE_COUNT
+		           , IFNULL(CASE OCD.CHG_STAT WHEN 'G685_50' THEN 1
+		                                      WHEN 'G685_51' THEN 1
+		                                      WHEN 'G685_33' THEN 1
+		                     END, 0) AS RETURN_COUNT
 		           , IFNULL(CASE OCD.CHG_STAT WHEN 'G685_30' THEN 1
-		                    END, 0) AS EXCHANGE_COUNT
-		           , IFNULL(CASE OCD.CHG_STAT WHEN 'G685_33' THEN 1
-		                    END, 0) AS EXCHANGE_WAIT_COUNT
-		           , IFNULL(CASE OCD.CHG_STAT WHEN 'G685_40' THEN 1
-		                    END, 0) AS RETURN_COUNT
-		      FROM TB_ORDER O
-		      INNER JOIN TB_ORDER_DETAIL OD
-		      ON O.ORD_NO = OD.ORD_NO
-		      LEFT OUTER JOIN TB_ORDER_CHANGE_DETAIL OCD
-		      ON OD.ORD_DTL_NO = OCD.ORD_DTL_NO
+		                                      WHEN 'G685_31' THEN 1
+		                                      WHEN 'G685_32' THEN 1
+		                     END, 0) AS CONFIRM_COUNT
+		        FROM TB_ORDER O
+		       INNER JOIN TB_ORDER_DETAIL OD
+		          ON O.ORD_NO = OD.ORD_NO
+		        LEFT OUTER JOIN TB_ORDER_CHANGE_DETAIL OCD
+		          ON OD.ORD_DTL_NO = OCD.ORD_DTL_NO
+		        LEFT OUTER JOIN TB_ORDER_DETAIL OD2
+		          ON OCD.CHG_ORD_DTL_NO = OD2.ORD_DTL_NO
 		      <where>
 		         <choose>
 		             <when test='custNo != null and custNo != ""'>
-		      AND O.CUST_NO  = #{custNo}
+		         AND O.CUST_NO  = #{custNo}
 		             </when>
 		             <otherwise>
-		      AND O.ORD_NO = #{ordNo}
-		      AND O.ORD_NM = #{orderNm}
+		         AND O.ORD_NO = #{ordNo}
+		         AND O.ORD_NM = #{orderNm}
 		             </otherwise>
 		         </choose>
 		      </where>
-		      AND O.DISP_YN = 'Y'
+		         AND O.DISP_YN = 'Y'
 		) AS Z
 	</select>
 	

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

@@ -226,7 +226,7 @@
 			 , ODI.CNCL_RTN_AMT     = ODI.CNCL_RTN_AMT + #{cnclRtnAmt}
 			 , ODI.CPN1_DC_AMT      = ODI.CPN1_DC_AMT - #{cpn1DcAmt}
 			 , ODI.TMTB1_DC_AMT     = ODI.TMTB1_DC_AMT - #{tmtb1DcAmt}
-			 , ODI.TMTB2_DC_AMT     = ODI.TMTB1_DC_AMT - #{tmtb2DcAmt}
+			 , ODI.TMTB2_DC_AMT     = ODI.TMTB2_DC_AMT - #{tmtb2DcAmt}
 			 , ODI.GOODS_CPN_DC_AMT = ODI.GOODS_CPN_DC_AMT - #{goodsCpnDcAmt}
 			 , ODI.CART_CPN_DC_AMT  = ODI.CART_CPN_DC_AMT - #{cartCpnDcAmt}
 			 , ODI.PNT_DC_AMT       = ODI.PNT_DC_AMT - #{pntDcAmt}
@@ -837,8 +837,20 @@
 			, NOW()
 		)
 	</insert>
-	
+
 	<!-- 주문사은품전체취소 -->
+	<update id="updateOrdFreegiftDel" parameterType="Order">
+		/* OrderChange.updateOrdFreegiftDel */
+		UPDATE TB_ORD_FREEGIFT OFG
+		 INNER JOIN TB_ORD_FREEGIFT_VAL OFGV
+		    ON OFGV.ORD_FREEGIFT_SQ = OFG.ORD_FREEGIFT_SQ
+		   SET OFG.DEL_YN= 'Y'
+			 , OFG.UPD_NO = #{updNo}
+			 , OFG.UPD_DT = NOW()
+		 WHERE OFG.ORD_NO = #{ordNo}
+	</update>
+
+	<!-- 주문사은품전체취소(백업)
 	<update id="updateOrdFreegiftDel" parameterType="Order">
 		/* OrderChange.updateOrdFreegiftDel */
 		UPDATE TB_ORD_FREEGIFT_VAL
@@ -863,6 +875,7 @@
 			   ) Z
 		 )
 	</update>
+	 -->
 
 	<!-- 주문상세 > 주문취소 > 고객환불계좌정보 조회 -->
 	<select id="getRefundAccount" parameterType="Order" resultType="Order">