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

마이페이지 교환 임시 커밋

card007 5 лет назад
Родитель
Сommit
6c2b1410a8

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

@@ -288,14 +288,14 @@ public interface TscOrderChangeDao {
 	Order getAddDeliveryFeePayment(OrderChange orderChange);
 
 	/**
-	 * 추가배송비 결제 취소 정보 생성
+	 * 추가배송비 결제 취소 정보 생성 (사용안함)
 	 *
 	 * @param Order - 주문 정보
 	 * @return 
 	 * @author card007
 	 * @since 2021. 02. 02
 	 */
-	int createAddDeliveryFeeCancelPayment(Order order);
+	// int createAddDeliveryFeeCancelPayment(Order order);
 
 	/**
 	 * 교환철회 주문상세 상태코드 변경

+ 83 - 47
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -57,6 +57,9 @@ public class TscOrderChangeService {
 
 	@Autowired
 	private TscNaverPayService naverPayService;
+	
+	@Autowired
+	private TscWmsService wmsService;
 
 	/**
 	 * 주문변경정보 (상세번호배열, 취소수량배열) 취소 목록으로 변환 (사용안함)
@@ -183,7 +186,7 @@ public class TscOrderChangeService {
 		int ordNo 							= map.getInt("ordNo");											// 주문번호
 		int custNo							= map.getInt("custNo");											// 고객번호
 		String chgReason 					= map.getString("chgReason");									// 변경사유
-		String chgReasonNm 					= "고객변심";														// 변경사유명
+		String chgReasonNm 					= map.getString("chgReasonNm");									// 변경사유명
 		String chgMemo 						= map.getString("chgMemo");										// 변경메모
 		String allLastCanYn					= map.getString("allLastCanYn");								// 마지막 취소 여부
 		String ipAddress					= map.getString("ipAddress");									// IP주소
@@ -210,6 +213,7 @@ public class TscOrderChangeService {
 		// 2. 주문상세단품정보등록, 변경 (단품단위)
 		List<Order> cancelOrderDetailList = new ArrayList<>();
 		List<Integer> ordDtlNoList = new ArrayList<>();
+		List<Integer> ordCanChgQtyList = new ArrayList<>();
 
 		for (Order cancelOrderRefundPo : cancelOrderRefundList) {
 			cancelOrderRefundPo.setOrdDtlStat(ordDtlStat);
@@ -226,9 +230,11 @@ public class TscOrderChangeService {
 
 			// 2-2. 주문상세단위로 데이터 설정
 			Integer ordDtlNo = cancelOrderRefundPo.getOrdDtlNo();
+			int ordCanChgQty = cancelOrderRefundPo.getOrdCanChgQty();
 			if (!ordDtlNoList.contains(ordDtlNo)) {
 				cancelOrderDetailList.add(cancelOrderRefundPo);
 				ordDtlNoList.add(ordDtlNo);
+				ordCanChgQtyList.add(ordCanChgQty);
 			}
 		}
 
@@ -455,6 +461,19 @@ public class TscOrderChangeService {
 				freegiftOrder.setUpdNo(custNo);
 				orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
 			}
+
+			// 5. WMS 취소 처리
+			List<Order> wmsList = new ArrayList<>();
+			for (int i = 0; i < ordDtlNoList.size(); i++) {
+				Order wms = new Order();
+				wms.setOrdNo(ordNo);
+				wms.setOrdDtlNo(ordDtlNoList.get(i));
+				wms.setChgQty(ordCanChgQtyList.get(i));
+
+				wmsList.add(wms);
+			}
+
+			wmsService.updateWmsCancel(wmsList);
 		}
 
 		return map;
@@ -993,11 +1012,13 @@ public class TscOrderChangeService {
 				orderChangeDao.createDeliveryFee(deliveryFee);
 
 				// 추가배송비 등록
-				deliveryFee.setDelvFeeGb(TscConstants.DeliveryFeeGb.ORIGIN_DELIVERY_FEE.value());
-				deliveryFee.setDelvFee(spanTotDeliveryFee);
-				deliveryFee.setRealDelvAmt(spanTotDeliveryFee);
+				if (spanTotDeliveryFee > 0) {
+					deliveryFee.setDelvFeeGb(TscConstants.DeliveryFeeGb.ORIGIN_DELIVERY_FEE.value());
+					deliveryFee.setDelvFee(spanTotDeliveryFee);
+					deliveryFee.setRealDelvAmt(spanTotDeliveryFee);
 
-				orderChangeDao.createDeliveryFee(deliveryFee);
+					orderChangeDao.createDeliveryFee(deliveryFee);
+				}
 
 				// 3-4. 주문상세정보 수정
 				ordChgSq = orderChange.getOrdChgSq();
@@ -1305,7 +1326,6 @@ public class TscOrderChangeService {
 	@Transactional("shopTxnManager")
 	public GagaMap exchReq(OrderChange excReq) {
 		GagaMap result = new GagaMap();
-		result.set("status", GagaResponseStatus.FAIL.getCode());
 
 		// 교환 기본 정보
 		int ordNo = excReq.getOrdNo();						// 주문번호
@@ -1323,7 +1343,7 @@ public class TscOrderChangeService {
 		String orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE.value();
 		String ordDtlStat = TscConstants.OrderDetailStat.REFUND_CONFIRM_WAIT.value();
 
-		if (addPayCost > 0) { // 프론트 결제 여부 체크 필요
+		if (addPayCost > 0) {
 			orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE_WAIT.value();
 		}
 
@@ -1564,25 +1584,32 @@ public class TscOrderChangeService {
 		int regNo = orderChange.getRegNo();					// 등록자번호
 		int updNo = orderChange.getUpdNo();					// 수정자번호
 
-		// 추가배송비 조회
+		// 1. PG 실행 (취소시 추가결제금액 취소처리)
 		Order payment = orderChangeDao.getAddDeliveryFeePayment(orderChange);
 
-		// 추가배송비 결제취소 처리
+		// 추가배송비 존재 시
 		if (payment != null && payment.getPayAmt() > 0) {
-			payment.setOrdNo(ordNo);
-			payment.setOrdChgSq(ordChgSq);
-			payment.setPayAmt(payment.getPayAmt() * -1);
-			payment.setPayStat(TscConstants.PaymentStat.PAYMENT_WAIT.value());
-			payment.setPayGb(TscConstants.PaymentGb.DELIVERY.value());
-			payment.setRegNo(regNo);
-			payment.setUpdNo(updNo);
-			orderChangeDao.createAddDeliveryFeeCancelPayment(payment);
-
-			// TODO
-			// PG취소처리
+			// 1-1. 추가배송비 결제정보 조회
+			Payment pg = new Payment();
+			pg.setOrdChgSq(ordChgSq);
+			pg = orderChangeDao.getAddPayCostPaymentInfo(pg);
+
+			// 1-2. 추가배송비 취소 정보 설정
+			if (StringUtils.isNotBlank(pg.getPgTid())) {
+				pg.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
+				pg.setPayGb("D");
+				pg.setModType("STSC");
+				pg.setModDesc("가맹점 취소 - 전체 취소");
+				pg.setIpAddress(orderChange.getIpAddress());
+				pg.setRegNo(regNo);
+				pg.setUpdNo(updNo);
+			}
+
+			// 1-3. PG 취소 처리
+			kcpService.kcpCancel(pg);
 		}
 
-		// 교환철회 처리
+		// 2. 교환철회 처리
 		Order exchangeCancel = new Order();
 		exchangeCancel.setOrdNo(ordNo);
 		exchangeCancel.setOrdChgSq(ordChgSq);
@@ -1592,22 +1619,22 @@ public class TscOrderChangeService {
 		exchangeCancel.setRegNo(regNo);
 		exchangeCancel.setUpdNo(updNo);
 
-		// TB_ORDER_DETAIL 상태값 변경
+		// 2-1. TB_ORDER_DETAIL 상태값 변경
 		orderChangeDao.updateOrderDetailForExchangeCancel(exchangeCancel);
 
-		// TB_ORDER_DETAIL_HST 생성
+		// 2-2. TB_ORDER_DETAIL_HST 생성
 		orderChangeDao.createOrderDtlHstCancel(exchangeCancel);
 
-		// TB_ORDER_DETAIL_ITEM 상태값 변경
+		// 2-3. TB_ORDER_DETAIL_ITEM 상태값 변경
 		orderChangeDao.updateOrderDetailItemForExchangeCancel(exchangeCancel);
 
-		// TB_ORDER_DETAIL_ITEM_HST 생성
+		// 2-4. TB_ORDER_DETAIL_ITEM_HST 생성
 		orderChangeDao.createOrderDetailItemHstForExchangeCancel(exchangeCancel);
 
-		// TB_ORDER_CHANGE_DETAIL 상태값 변경 및 DEL_YN Y로 업데이트
+		// 2-5. TB_ORDER_CHANGE_DETAIL 상태값 변경 및 DEL_YN Y로 업데이트
 		orderChangeDao.updateOrderChangeDtlCancel(exchangeCancel);
 
-		// 결과값 처리
+		// 3. 결과값 처리
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
 
 		return result;
@@ -2097,60 +2124,69 @@ public class TscOrderChangeService {
 		// 주문상세단품정보 수정 및 이력 등록
 		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);
+		}
+
+		wmsService.updateWmsCancel(wmsList);
 	}
 
+	/**
+	 * 취소완료 요청
+	 *
+	 * @param OrderChange
+	 * @return GagaMap
+	 * @author card007
+	 * @since 2021. 04. 21
+	 */
+	@SuppressWarnings("unchecked")
 	public GagaMap orderCancelPreInfo(OrderChange orderChange) {
 		GagaMap result = new GagaMap();
 
-		// 2. 환불 사전 정보 조회
+		// 1. 환불 사전 정보 조회
 		GagaMap refundPreInfo = getRefundPreInfo(orderChange);
 		List<Order> cnclReqList = (List<Order>)refundPreInfo.get("cnclReqList");
 		String allCanYn = refundPreInfo.getString("allCanYn");
 		String allLastCanYn = refundPreInfo.getString("allLastCanYn");
-		// String allCanYnBeforePayment = refundPreInfo.getString("allCanYnBeforePayment");
 
-		// 전체취소, 부분취소 구분 처리 진행
+		// 2. 전체취소, 부분취소 구분 처리 진행
 		if ("Y".equals(allCanYn)) {
 			orderChange.setChgGb(TscConstants.OrderChangeGb.CANCEL.value());
 			orderChange.setRegNo(orderChange.getCustNo());
 			orderChange.setUpdNo(orderChange.getCustNo());
 
+			// 전체 취소 처리
 			allCnclComplete(orderChange);
 		} else {
 			// 3. 환불금액계산
 			// 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현
 			result = orderRefundService.cnclRtnRefundAmt(cnclReqList);
 
-			// 4. 주문변경 기본정보 설정
+			// 4. 부분취소 처리 정보 설정
 			result.setInt("ordNo", orderChange.getOrdNo());						// 주문번호
-			// result.setInt("ordChgSq", orderChange.getOrdChgSq());				// 주문변경번호
 			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("allCanYnBeforePayment", allCanYnBeforePayment);	// 무통장입금전 전체취소 여부
-			// result.setString("allCanYn", allCanYn);								// 전체취소 여부
 			result.setString("allLastCanYn", allLastCanYn);						// 전체 마지막 취소 여부
-			// result.setString("isCustomer", orderChange.getIsCustomer());		// 변경사유 (고객, 회사)
-
-			// 5. 주문변경 회수지정보 추가
-			// result.setString("chgerNm", orderChange.getChgerNm());				// 변경자명
-			// result.setString("chgerEmail", orderChange.getChgerEmail());			// 변경자이메일주소
-			// result.setString("chgerPhnno", orderChange.getChgerPhnno());			// 변경자핸드폰번호
-			// result.setString("chgerTelno", orderChange.getChgerTelno());			// 변경자전화번호
-
 			// result.setString("reqGbn", orderChange.getReqGbn());				// 신청구분
 			result.setString("ipAddress", orderChange.getIpAddress());			// IP주소
-			result.setInt("custNo", orderChange.getCustNo());									// 고객번호
+			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구분
 
-			// 6. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL)
-			// coreOrderChangeService.cnclComplete(result, custNo);
+			// 부분취소 처리
 			partialCancel(result);
 		}
 

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

@@ -1679,7 +1679,7 @@
 		   AND OC.ADD_PAY_COST > 0
 	</select>
 	
-	<!-- 추가배송비 결제 취소 정보 생성 -->
+	<!-- 추가배송비 결제 취소 정보 생성(사용안함) -->
 	<insert id="createAddDeliveryFeeCancelPayment" parameterType="Order" keyProperty="paySq">
 		/* OrderChange.createAddDeliveryFeeCancelPayment */
 		INSERT INTO TB_PAYMENT (