|
|
@@ -146,6 +146,7 @@ public class TscOrderChangeService {
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@Transactional("shopTxnManager")
|
|
|
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 단위)
|
|
|
@@ -181,6 +182,12 @@ public class TscOrderChangeService {
|
|
|
modType = "STPC"; // KCP 부분취소
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 2021.06.21 교환출고 재고부족 취소실행
|
|
|
+ Order exchangeDelvFailCnclVo = new Order();
|
|
|
+ exchangeDelvFailCnclVo.setUpdNo(userNo);
|
|
|
+ exchangeDelvFailCnclVo.setOrdChgSq(ordChgSq);
|
|
|
+ orderChangeDao.updateExchangeDelvFailCnclYn(exchangeDelvFailCnclVo);
|
|
|
|
|
|
// 3. 주문변경정보, 주문정보, 환불정보 (배송정책코드 별)
|
|
|
List<Payment> pgList = new ArrayList<>();
|
|
|
@@ -316,9 +323,6 @@ public class TscOrderChangeService {
|
|
|
|
|
|
index++;
|
|
|
}
|
|
|
-
|
|
|
- // 2021.06.15 교환출고 재고부족 취소실행
|
|
|
- orderChangeDao.updateExchangeDelvFailCnclYn(vo);
|
|
|
|
|
|
// 3-2-4. 사용포인트원복
|
|
|
int pntDcAmt = vo.getPntDcAmt();
|
|
|
@@ -546,19 +550,21 @@ public class TscOrderChangeService {
|
|
|
|
|
|
// 4. 장바구니, 배송비 쿠폰 원복 및 사은품 전체 취소 처리 (마지막 취소 시)
|
|
|
if ("Y".equals(allLastCanYn)) {
|
|
|
-
|
|
|
- // 4-1. 장바구니, 배송비 쿠폰 원복처리
|
|
|
- Order coupon = new Order();
|
|
|
- coupon.setOrdNo(ordNo);
|
|
|
- coupon.setUpdNo(userNo);
|
|
|
- orderChangeDao.updateCartCpnRollback(coupon);
|
|
|
- orderChangeDao.updateDeliveryCpnRollback(coupon);
|
|
|
-
|
|
|
- // 4-2. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
|
|
|
- Order freegiftOrder = new Order();
|
|
|
- freegiftOrder.setOrdNo(ordNo);
|
|
|
- freegiftOrder.setUpdNo(userNo);
|
|
|
- orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
|
|
|
+ // 2021.06.21 교환완료가 아닌상태의 변경신청값일때 실행
|
|
|
+ if (!TscConstants.OrderChangeStat.EXCHANGE_CANCEL.value().equals(chgStat)) {
|
|
|
+ // 4-1. 장바구니, 배송비 쿠폰 원복처리
|
|
|
+ Order coupon = new Order();
|
|
|
+ coupon.setOrdNo(ordNo);
|
|
|
+ coupon.setUpdNo(userNo);
|
|
|
+ orderChangeDao.updateCartCpnRollback(coupon);
|
|
|
+ orderChangeDao.updateDeliveryCpnRollback(coupon);
|
|
|
+
|
|
|
+ // 4-2. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
|
|
|
+ Order freegiftOrder = new Order();
|
|
|
+ freegiftOrder.setOrdNo(ordNo);
|
|
|
+ freegiftOrder.setUpdNo(userNo);
|
|
|
+ orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 5. WMS 취소 처리
|
|
|
@@ -3853,4 +3859,71 @@ public class TscOrderChangeService {
|
|
|
|
|
|
return sb.toString();
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 교환추가배송비 취소처리
|
|
|
+ *
|
|
|
+ * @param OrderChange (ordChgSq, userNo)
|
|
|
+ * @author jsh77b
|
|
|
+ * @since 2021. 06. 21
|
|
|
+ */
|
|
|
+ public void addPayCostCncl(OrderChange orderChange) {
|
|
|
+
|
|
|
+ // 2021.06.21
|
|
|
+ int ordQty = orderChangeDao.getExchangeDelvFailQty(orderChange);
|
|
|
+
|
|
|
+ if (ordQty < 1) {
|
|
|
+ // PG 실행 (취소시 추가결제금액 취소처리)
|
|
|
+ Collection<Order> paymentList = orderChangeDao.getAddDeliveryFeePayment(orderChange);
|
|
|
+
|
|
|
+ // 추가배송비 존재 시
|
|
|
+ if (paymentList != null && paymentList.size() > 0) {
|
|
|
+
|
|
|
+ // 추가배송비 결제정보 조회
|
|
|
+ Payment pg = new Payment();
|
|
|
+ pg.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
+ pg = orderChangeDao.getAddPayCostPaymentInfo(pg);
|
|
|
+
|
|
|
+ // 2021.06.21 추가배송비 취소 처리
|
|
|
+ // 회수구분 회수일때는 부분취소 (W)
|
|
|
+ if ("W".equals(orderChange.getWdGb())) {
|
|
|
+ orderChangeDao.createAddDeliveryFeeCancelPart(orderChange);
|
|
|
+
|
|
|
+ // 추가배송비 취소 정보 설정
|
|
|
+ if (StringUtils.isNotBlank(pg.getPgTid())) {
|
|
|
+ pg.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
|
|
|
+ pg.setPayGb(TscConstants.PaymentGb.DELIVERY.value());
|
|
|
+ pg.setModType("STSC");
|
|
|
+ pg.setModDesc("가맹점 취소 - 부분 취소");
|
|
|
+ pg.setIpAddress(orderChange.getIpAddress());
|
|
|
+ pg.setRegNo(orderChange.getUserNo());
|
|
|
+ pg.setUpdNo(orderChange.getUserNo());
|
|
|
+
|
|
|
+ int leftAmt = orderChange.getAddPayCost() / 2;
|
|
|
+
|
|
|
+ pg.setLeftAmt(leftAmt);
|
|
|
+ pg.setPartCancelAmt(leftAmt);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 회수구분 직접일때는 전체취소 (D)
|
|
|
+ else {
|
|
|
+ orderChangeDao.createAddDeliveryFeeCancel(orderChange);
|
|
|
+
|
|
|
+ // 추가배송비 취소 정보 설정
|
|
|
+ if (StringUtils.isNotBlank(pg.getPgTid())) {
|
|
|
+ pg.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
|
|
|
+ pg.setPayGb(TscConstants.PaymentGb.DELIVERY.value());
|
|
|
+ pg.setModType("STSC");
|
|
|
+ pg.setModDesc("가맹점 취소 - 전체 취소");
|
|
|
+ pg.setIpAddress(orderChange.getIpAddress());
|
|
|
+ pg.setRegNo(orderChange.getUserNo());
|
|
|
+ pg.setUpdNo(orderChange.getUserNo());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // KCP 취소 처리
|
|
|
+ kcpService.kcpCancel(pg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|