Browse Source

오류 수정 임시 커밋

card007 5 years ago
parent
commit
9d0f1151db

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

@@ -608,8 +608,8 @@ public class TscOrderChangeService {
 	@Transactional("shopTxnManager")
 	public GagaMap partialCancelTemp(GagaMap map, Integer userNo) {
 		// 1. 취소요청목록 및 정보 설정
-		List<Order> cancelOrderRefundList 	= (List<Order>) map.get("cancelOrderRefundList");				// 취소환불금액 목록 (주문상세단품 단위)
-		List<Order> cancelDelvRefundList 	= (List<Order>) map.get("cancelDelvRefundList");				// 취소환불배송금액 목록 (DELV_FEE_CD 단위)
+		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 ordChgSq						= map.getInt("ordChgSq");										// 주문변경일련번호
 		String chgReason 					= map.getString("chgReason");									// 변경사유
@@ -625,9 +625,9 @@ public class TscOrderChangeService {
 		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();	// 주문변경상태
+		String chgGb						= TscConstants.OrderChangeGb.CANCEL.value(); 						// 취소요청 (공톹코드:G680)
+		String ordDtlStat					= TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value();		// 주문상세상태
+		String chgStat						= TscConstants.OrderChangeStat.PAYMENT_AFTER_CANCEL.value();		// 주문변경상태
 		int payAmt							= map.getInt("spanPayAmt");										// 부분취소 전 결제금액
 		String modType						= "";
 		String batchYn						= map.getString("batchYn");										// 배치여부
@@ -635,9 +635,9 @@ public class TscOrderChangeService {
 		// 무통장입금 결제 주문 전체취소 상태값 처리
 		if (TscConstants.PgGb.KCP.value().equals(pgGb)) {
 			if (TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payMeans)) {
-				modType = "STPD";															// KCP 무통장입금 부분취소
+				modType = "STPD";																				// KCP 무통장입금 부분취소
 			} else {
-				modType = "STPC";															// KCP 부분취소
+				modType = "STPC";																				// KCP 부분취소
 			}
 		}
 
@@ -2810,6 +2810,64 @@ public class TscOrderChangeService {
 		return result;
 	}
 
+	/**
+	 * 취소완료 요청
+	 *
+	 * @param OrderChange
+	 * @return GagaMap
+	 * @author card007
+	 * @since 2021. 04. 21
+	 */
+	@SuppressWarnings("unchecked")
+	@Transactional("shopTxnManager")
+	public GagaMap orderCancelPreInfoTemp(OrderChange orderChange, Integer userNo) {
+		GagaMap result = new GagaMap();
+
+		// 1. 환불 사전 정보 조회
+		GagaMap refundPreInfo = getRefundPreInfo2(orderChange);
+		List<Order> cnclReqList = (List<Order>)refundPreInfo.get("cnclReqList");
+		String allCanYn = refundPreInfo.getString("allCanYn");
+		String allLastCanYn = refundPreInfo.getString("allLastCanYn");
+
+		// 2. 전체취소, 부분취소 구분 처리 진행
+		orderChange.setReqGbn("cnclComplete");
+
+		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.cnclRtnRefundAmt2(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구분
+			result.setString("cashAuthNo", refundPreInfo.getString("cashAuthNo"));	// 현금영수증 승인번호
+			result.setString("batchYn", orderChange.getBatchYn());
+			// 부분취소 처리
+			partialCancelTemp(result, userNo);
+		}
+
+		return result;
+	}
+
 	/**
 	 * 취소/반품 환불 사전 정보 조회
 	 *

+ 12 - 8
src/main/java/com/style24/core/biz/service/TscOrderRefundService.java

@@ -51,6 +51,7 @@ public class TscOrderRefundService {
 		int spanGoodsCpnDcAmt		= 0; // 상품쿠폰
 		int spanCartCpnDcAmt		= 0; // 장바구니쿠폰
 		int spanDelvCpnDcAmt		= 0; // 배송비쿠폰
+		int spanRefundDelvCpnAmt	= 0; // 배송비쿠폰 환불 금액
 		int spanTmtbDcAmt			= 0; // 취소 다다익선 금액
 		int spanTmtb1DcAmt			= 0; // 수량할인
 		int spanTmtb2DcAmt			= 0; // 금액할인
@@ -259,7 +260,7 @@ public class TscOrderRefundService {
 							// if ("Y".equals(obj.getAllCanYn())) {
 							if ("Y".equals(obj.getLastCanYn())) {
 								sumDeliveryFee += obj.getDelvFee(); // 전체취소시 배송금액도 같이 환불
-								spanDelvCpnDcAmt += obj.getDelvCpnDcAmt(); // 전체취소시 배송비쿠폰 금액 제외하고 환불
+								spanRefundDelvCpnAmt += obj.getDelvCpnDcAmt(); // 전체취소시 배송비쿠폰 금액 제외하고 환불
 							}
 						}
 					} else {
@@ -302,6 +303,7 @@ public class TscOrderRefundService {
 			}
 
 			spanSumDeliveryFee		+= obj.getDelvFee();
+			spanDelvCpnDcAmt		+= obj.getDelvCpnDcAmt();
 			spanRtnSumDeliveryFee	+= obj.getRtnDelvFee();
 			spanExcSumDeliveryFee	+= obj.getExcDelvFee();
 			spanOrdAmt				+= obj.getOrdAmt();
@@ -315,11 +317,11 @@ public class TscOrderRefundService {
 		// 관리자 화면에서 사용하는 환불 칼럼 정보
 		// 환불금액표시
 		// 2021.05.18 배송비쿠폰 사용금액 제외 후 환불금액 계산 처리
-		spanPayAmt 			= spanSumRealOrdAmt + spanSumDeliveryFee;
+		spanPayAmt 			= spanSumRealOrdAmt + spanSumDeliveryFee - spanDelvCpnDcAmt;
 		spanTotPntDcAmt 	= spanPntDcAmt + spanPrePntDcAmt;
-		spanCpnDcAmt 		= spanCpn1DcAmt + spanGoodsCpnDcAmt + spanCartCpnDcAmt + spanDelvCpnDcAmt;
+		spanCpnDcAmt 		= spanCpn1DcAmt + spanGoodsCpnDcAmt + spanCartCpnDcAmt + spanRefundDelvCpnAmt;
 		spanTmtbDcAmt 		= spanTmtb1DcAmt + spanTmtb2DcAmt;
-		spanRefundAmt 		= (spanRealCnclRtnAmt + sumDeliveryFee) - spanDelvCpnDcAmt - spanTotDeliveryFee;
+		spanRefundAmt 		= (spanRealCnclRtnAmt + sumDeliveryFee) - spanRefundDelvCpnAmt - spanTotDeliveryFee;
 
 		mav.set("cnclRtnList"			, cnclRtnList);				//주문 취소 신청 목록
 		mav.set("cancelOrderRefundList"	, cancelOrderRefundList);	//주문 환불 금액 목록
@@ -377,6 +379,7 @@ public class TscOrderRefundService {
 		int spanGoodsCpnDcAmt		= 0; // 상품쿠폰
 		int spanCartCpnDcAmt		= 0; // 장바구니쿠폰
 		int spanDelvCpnDcAmt		= 0; // 배송비쿠폰
+		int spanRefundDelvCpnAmt	= 0; // 배송비쿠폰 환불 금액
 		int spanTmtbDcAmt			= 0; // 취소 다다익선 금액
 		int spanTmtb1DcAmt			= 0; // 수량할인
 		int spanTmtb2DcAmt			= 0; // 금액할인
@@ -578,7 +581,7 @@ public class TscOrderRefundService {
 							// if ("Y".equals(obj.getAllCanYn())) {
 							if ("Y".equals(obj.getLastCanYn())) {
 								sumDeliveryFee += obj.getDelvFee(); // 전체취소시 배송금액도 같이 환불
-								spanDelvCpnDcAmt += obj.getDelvCpnDcAmt(); // 전체취소시 배송비쿠폰 금액 제외하고 환불
+								spanRefundDelvCpnAmt += obj.getDelvCpnDcAmt(); // 전체취소시 배송비쿠폰 금액 제외하고 환불
 							}
 						}
 					} else {
@@ -618,6 +621,7 @@ public class TscOrderRefundService {
 				}
 			}
 
+			spanDelvCpnDcAmt		+= obj.getDelvCpnDcAmt();
 			spanSumDeliveryFee		+= obj.getDelvFee();
 			spanRtnSumDeliveryFee	+= obj.getRtnDelvFee();
 			spanExcSumDeliveryFee	+= obj.getExcDelvFee();
@@ -632,11 +636,11 @@ public class TscOrderRefundService {
 		// 관리자 화면에서 사용하는 환불 칼럼 정보
 		// 환불금액표시
 		// 2021.05.18 배송비쿠폰 사용금액 제외 후 환불금액 계산 처리
-		spanPayAmt 			= spanSumRealOrdAmt + spanSumDeliveryFee;
+		spanPayAmt 			= spanSumRealOrdAmt + spanSumDeliveryFee - spanDelvCpnDcAmt;
 		spanTotPntDcAmt 	= spanPntDcAmt + spanPrePntDcAmt;
-		spanCpnDcAmt 		= spanCpn1DcAmt + spanGoodsCpnDcAmt + spanCartCpnDcAmt + spanDelvCpnDcAmt;
+		spanCpnDcAmt 		= spanCpn1DcAmt + spanGoodsCpnDcAmt + spanCartCpnDcAmt + spanRefundDelvCpnAmt;
 		spanTmtbDcAmt 		= spanTmtb1DcAmt + spanTmtb2DcAmt;
-		spanRefundAmt 		= (spanRealCnclRtnAmt + sumDeliveryFee) - spanDelvCpnDcAmt - spanTotDeliveryFee;
+		spanRefundAmt 		= (spanRealCnclRtnAmt + sumDeliveryFee) - spanRefundDelvCpnAmt - spanTotDeliveryFee;
 
 		mav.set("cnclRtnList"			, cnclRtnList);				//주문 취소 신청 목록
 		mav.set("cancelOrderRefundList"	, cancelOrderRefundList);	//주문 환불 금액 목록