|
|
@@ -168,28 +168,25 @@ public class TscOrderChangeService {
|
|
|
//userNo = userNo;
|
|
|
|
|
|
// 2. 취소요정정보목록
|
|
|
- List<Order> cancelReqList = (List<Order>) mav.get("cnclRtnList"); // 취소요청 목록
|
|
|
- List<Order> cancelOrderRefundList = (List<Order>) mav.get("cancelOrderRefundList"); // 취소환불금액 목록 (주문상세단품 단위)
|
|
|
- List<Order> cancelDelvRefundList = (List<Order>) mav.get("cancelDelvRefundList"); // 취소환불배송금액 목록 (DELV_FEE_CD 단위)
|
|
|
+ List<Order> cancelReqList = (List<Order>) mav.get("cnclRtnList"); // 취소요청 목록
|
|
|
+ List<Order> cancelOrderRefundList = (List<Order>) mav.get("cancelOrderRefundList"); // 취소환불금액 목록 (주문상세단품 단위)
|
|
|
+ List<Order> cancelDelvRefundList = (List<Order>) mav.get("cancelDelvRefundList"); // 취소환불배송금액 목록 (DELV_FEE_CD 단위)
|
|
|
|
|
|
// 3. 취소신청정보
|
|
|
- int ordNo = Integer.parseInt(mav.getString("ordNo")); // 주문번호
|
|
|
- String chgReason = mav.getString("chgReason"); // 변경사유
|
|
|
- String chgMemo = mav.getString("chgMemo"); // 변경메모
|
|
|
- String allCanYnBeforePayment = mav.getString("allCanYnBeforePayment"); // 무통장입금전 전체취소 여부
|
|
|
- String isCustomer = mav.getString("isCustomer"); // 귀책사유 (고객, 회사)
|
|
|
- String chgGb = TscConstants.OrderChangeGb.CANCEL.value(); // 취소요청 (공톹코드:G680)
|
|
|
- String reqGbn = mav.get("reqGbn").toString(); // 신청구분
|
|
|
- String ordDtlStat; // 주문상세상태
|
|
|
- String chgStat; // 주문변경상태
|
|
|
-
|
|
|
- if ("Y".equals(allCanYnBeforePayment)) {
|
|
|
- ordDtlStat = TscConstants.OrderDetailStat.PAYMENT_BEFORE_CANCEL.value();
|
|
|
- chgStat = TscConstants.OrderChangeStat.PAYMENT_BEFORE_CANCEL.value();
|
|
|
- } else {
|
|
|
- ordDtlStat = TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value();
|
|
|
- chgStat = TscConstants.OrderChangeStat.PAYMENT_AFTER_CANCEL.value();
|
|
|
- }
|
|
|
+ int ordNo = Integer.parseInt(mav.getString("ordNo")); // 주문번호
|
|
|
+ String chgReason = mav.getString("chgReason"); // 변경사유
|
|
|
+ String chgMemo = mav.getString("chgMemo"); // 변경메모
|
|
|
+ String allLastCanYn = mav.getString("allLastCanYn"); // 마지막 취소 여부
|
|
|
+ String isCustomer = mav.getString("isCustomer"); // 귀책사유 (고객, 회사)
|
|
|
+ String chgGb = TscConstants.OrderChangeGb.CANCEL.value(); // 취소요청 (공톹코드:G680)
|
|
|
+ String reqGbn = mav.getString("reqGbn"); // 신청구분
|
|
|
+ String ordDtlStat = TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value(); // 주문상세상태
|
|
|
+ String chgStat = TscConstants.OrderChangeStat.PAYMENT_AFTER_CANCEL.value(); // 주문변경상태
|
|
|
+ String ipAddress = mav.getString("ipAddress"); // IP주소
|
|
|
+ String pgTid = mav.getString("pgTid"); // PG거래ID
|
|
|
+ String payMeans = mav.getString("payMeans"); // 결제수단
|
|
|
+ String pgGb = mav.getString("pgGb"); // PG구분
|
|
|
+ int pgCancelAmt = 0; // PG취소금액
|
|
|
|
|
|
// 4. 주문상세단품정보등록,변경 (단품단위)
|
|
|
List<Order> cancelOrderDetailList = new ArrayList<>();
|
|
|
@@ -278,6 +275,7 @@ public class TscOrderChangeService {
|
|
|
Order vo = cancelOrderRefundList.get(j);
|
|
|
vo.setRegNo(userNo);
|
|
|
vo.setUpdNo(userNo);
|
|
|
+ int leftQty = vo.getOrdQty() - vo.getCnclRtnQty() - vo.getOrdCanChgQty();
|
|
|
|
|
|
// 5.3.0 DEVL_FEE_CD 단위로 주문상세 정보 처리
|
|
|
if (obj.getDelvFeeCd().equals(vo.getDelvFeeCd())) {
|
|
|
@@ -298,6 +296,73 @@ public class TscOrderChangeService {
|
|
|
if ("cnclComplete".equals(reqGbn) || "cnclReqComplete".equals(reqGbn)) {
|
|
|
orderChangeDao.updateOrderDetail(vo);
|
|
|
}
|
|
|
+
|
|
|
+ // 5.3.3 사용포인트원복
|
|
|
+ int pntDcAmt = vo.getPntDcAmt();
|
|
|
+ vo.setOccurGb(TscConstants.PointOccurGb.USE_POINT.value());
|
|
|
+
|
|
|
+ for (Order point : orderChangeDao.getCustPointHst(vo)) {
|
|
|
+ while (pntDcAmt > 0) {
|
|
|
+ if (pntDcAmt < point.getPntAmt()) {
|
|
|
+ point.setPntAmt(pntDcAmt);
|
|
|
+ pntDcAmt -= pntDcAmt;
|
|
|
+ } else {
|
|
|
+ pntDcAmt -= point.getPntAmt();
|
|
|
+ }
|
|
|
+
|
|
|
+ point.setOccurGb(TscConstants.PointOccurGb.USE_POINT_CANCEL.value());
|
|
|
+ point.setOccurDtlDesc("포인트사용취소");
|
|
|
+ point.setRegNo(userNo);
|
|
|
+ point.setUpdNo(userNo);
|
|
|
+
|
|
|
+ // 포인트 사용 취소 이력 생성 및 포인트 수정
|
|
|
+ orderChangeDao.createCustPointHstRollback(point);
|
|
|
+ orderChangeDao.updateCustPointRollback(point);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 5.3.4 적립예정포인트 수정
|
|
|
+ int savePntAmt = vo.getSavePntAmt();
|
|
|
+ vo.setOccurGb(TscConstants.PointOccurGb.EXPECT_POINT.value());
|
|
|
+
|
|
|
+ for (Order point : orderChangeDao.getCustPointHst(vo)) {
|
|
|
+ point.setOccurGb(TscConstants.PointOccurGb.EXPECT_POINT_CANCEL.value());
|
|
|
+ point.setOccurDtlDesc("예정포인트적립취소");
|
|
|
+ point.setPayAmt(savePntAmt * -1);
|
|
|
+ point.setRegNo(userNo);
|
|
|
+ point.setUpdNo(userNo);
|
|
|
+
|
|
|
+ // 적립예정포인트 취소 이력 생성
|
|
|
+ orderChangeDao.createCustPointHstRollback(point);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 5.3.5 상품쿠폰원복
|
|
|
+ if (leftQty == 0) {
|
|
|
+ orderChangeDao.updateGoodsCpnRollback(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 5.3.6 사용상품권 원복
|
|
|
+ int gfcdUseAmt = vo.getGfcdUseAmt();
|
|
|
+
|
|
|
+ for (Order giftCard : orderChangeDao.getCustGiftCardHst(vo)) {
|
|
|
+ while (gfcdUseAmt > 0) {
|
|
|
+ if (gfcdUseAmt < giftCard.getGfcdAmt()) {
|
|
|
+ giftCard.setGfcdAmt(gfcdUseAmt);
|
|
|
+ gfcdUseAmt -= gfcdUseAmt;
|
|
|
+ } else {
|
|
|
+ gfcdUseAmt -= giftCard.getGfcdAmt();
|
|
|
+ }
|
|
|
+
|
|
|
+ giftCard.setOccurGb(TscConstants.GiftCardOccurGb.USE_GIFTCARD_CANCEL.value());
|
|
|
+ giftCard.setOccurDtlDesc("상품권사용취소");
|
|
|
+ giftCard.setRegNo(userNo);
|
|
|
+ giftCard.setUpdNo(userNo);
|
|
|
+
|
|
|
+ // 포인트 사용 취소 이력 생성 및 포인트 수정
|
|
|
+ orderChangeDao.createCustGiftCardHstRollback(giftCard);
|
|
|
+ orderChangeDao.updateCustGiftCardRollback(giftCard);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음 주문상세단위로 수정
|
|
|
// 5.3 주문변경상세정보 등록
|
|
|
@@ -425,28 +490,66 @@ public class TscOrderChangeService {
|
|
|
orderChangeDao.createDeliveryFee(delvFeeOrder);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ pgCancelAmt += spanRefundAmt;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 마지막 취소 시
|
|
|
+ if ("Y".equals(allLastCanYn)) {
|
|
|
+ // 장바구니, 배송비 쿠폰 원복처리
|
|
|
+ Order coupon = new Order();
|
|
|
+ coupon.setOrdNo(ordNo);
|
|
|
+ coupon.setUpdNo(userNo);
|
|
|
+ orderChangeDao.updateCartCpnRollback(coupon);
|
|
|
+ orderChangeDao.updateDeliveryCpnRollback(coupon);
|
|
|
+
|
|
|
+ // 12. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
|
|
|
+ Order freegiftOrder = new Order();
|
|
|
+ freegiftOrder.setOrdNo(ordNo);
|
|
|
+ freegiftOrder.setUpdNo(userNo);
|
|
|
+ orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // 상품권으로만 결제 시 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(userNo);
|
|
|
+ kcp.setUpdNo(userNo);
|
|
|
+ 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(userNo);
|
|
|
+ naverPay.setUpdNo(userNo);
|
|
|
+
|
|
|
+ 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
|
|
|
- // 9. 포인트원복 (사용포인트, 주문상세단위)
|
|
|
- // 예정적립포인트 취소처리
|
|
|
-
|
|
|
- // TODO
|
|
|
- // 10. 쿠폰원복 (상품쿠폰, 주문상세단위) (전체취소시 장바구니쿠폰, 배송비쿠폰)
|
|
|
-
|
|
|
- // TODO
|
|
|
- // 11. 상품권원복
|
|
|
-
|
|
|
- // 12. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
|
|
|
- //Order freegiftOrder = new Order();
|
|
|
- //freegiftOrder.setOrdNo(ordNo);
|
|
|
- //freegiftOrder.setUpdNo(userNo);
|
|
|
- //orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
|
|
|
-
|
|
|
- // TODO
|
|
|
- // 13. PG 연동
|
|
|
- // 네이버페이, 카카오페이 취소 시 취소 포인트 금액 TB_PAYMENT에 업데이트 처야함
|
|
|
|
|
|
// TODO
|
|
|
// 14. 취소 완료 알림톡 발송 에정
|
|
|
@@ -1260,6 +1363,202 @@ public class TscOrderChangeService {
|
|
|
return orderChangeDao.getExchangeInfo(order);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 전체취소 요청
|
|
|
+ *
|
|
|
+ * @param GagaMap, int
|
|
|
+ * @return GagaMap
|
|
|
+ * @author card007
|
|
|
+ * @since 2021. 04. 15
|
|
|
+ */
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ @Transactional("shopTxnManager")
|
|
|
+ public void allCnclComplete(OrderChange orderChange) {
|
|
|
+ int ordNo = orderChange.getOrdNo();
|
|
|
+ String chgReason = orderChange.getChgReason(); // G686_10:고객변심, G686_20:관리자취소, G686_30:품절취소
|
|
|
+ String chgReasonNm = orderChange.getChgReasonNm(); // 고객변심, 관리자취소, 품절취소
|
|
|
+ String chgGb = TscConstants.OrderChangeGb.CANCEL.value(); // 변경구분
|
|
|
+ String accountNo = orderChange.getAccountNo(); // 환불계좌번호
|
|
|
+ String accountNm = orderChange.getAccountNm(); // 환불계좌주명
|
|
|
+ String bankCd = orderChange.getBankCd(); // 환불은행
|
|
|
+ String ipAddress = orderChange.getIpAddress(); // IP주소
|
|
|
+ int regNo = orderChange.getRegNo(); // 등록자번호
|
|
|
+ int updNo = orderChange.getUpdNo(); // 등록자번호
|
|
|
+
|
|
|
+ // 원주문 결제정보 조회
|
|
|
+ Payment payment = new Payment();
|
|
|
+ payment.setOrdNo(ordNo);
|
|
|
+ payment = orderChangeDao.getPaymentInfo(payment);
|
|
|
+
|
|
|
+ // 환불금액 설정
|
|
|
+ int refundAmt = payment.getPayAmt();
|
|
|
+
|
|
|
+ // 상태값 설정
|
|
|
+ String ordDtlStat = TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value(); // 주문상세상태
|
|
|
+ String chgStat = TscConstants.OrderChangeStat.PAYMENT_AFTER_CANCEL.value(); // 주문변경상태
|
|
|
+ String modType = "STSC"; // KCP 전체취소
|
|
|
+
|
|
|
+ // 무통장입금 결제 주문 전체취소 상태값 처리
|
|
|
+ if (TscConstants.PgGb.KCP.value().equals(payment.getPgGb())
|
|
|
+ && TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payment.getPayMeans())
|
|
|
+ && TscConstants.PaymentStat.PAYMENT_WAIT.value().equals(payment.getPayStat())) {
|
|
|
+
|
|
|
+ ordDtlStat = TscConstants.OrderDetailStat.PAYMENT_BEFORE_CANCEL.value();
|
|
|
+ chgStat = TscConstants.OrderChangeStat.PAYMENT_BEFORE_CANCEL.value();
|
|
|
+ } else if (TscConstants.PgGb.KCP.value().equals(payment.getPgGb())
|
|
|
+ && TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payment.getPayMeans())
|
|
|
+ && TscConstants.PaymentStat.PAYMENT_COMPLETE.value().equals(payment.getPayStat())){
|
|
|
+
|
|
|
+ modType = "STHD"; // KCP 무통장입금 전체취소
|
|
|
+ }
|
|
|
+
|
|
|
+ // 1. 주문변경 및 변경상세 정보 설정
|
|
|
+ OrderChange orderChangeDetail = new OrderChange();
|
|
|
+ orderChangeDetail.setOrdNo(ordNo);
|
|
|
+ orderChangeDetail.setChgGb(chgGb);
|
|
|
+ orderChangeDetail.setChgReason(chgReason);
|
|
|
+ orderChangeDetail.setChgStat(chgStat);
|
|
|
+ orderChangeDetail.setRegNo(regNo);
|
|
|
+ orderChangeDetail.setUpdNo(updNo);
|
|
|
+
|
|
|
+ // 주문변경정보 등록
|
|
|
+ orderChangeDao.createOrderChange(orderChangeDetail);
|
|
|
+
|
|
|
+ // 주문변경상세 및 이력정보 등록
|
|
|
+ orderChangeDao.createOrderChangeDetailForAllCancel(orderChangeDetail);
|
|
|
+ orderChangeDao.createOrderChangeDetailHstForAllCancel(orderChangeDetail);
|
|
|
+
|
|
|
+ // 2. 사용포인트원복
|
|
|
+ Order vo = new Order();
|
|
|
+ vo.setOrdNo(ordNo);
|
|
|
+ vo.setOccurGb(TscConstants.PointOccurGb.USE_POINT.value());
|
|
|
+ vo.setUpdNo(updNo);
|
|
|
+
|
|
|
+ for (Order point : orderChangeDao.getCustPointHst(vo)) {
|
|
|
+ point.setOccurGb(TscConstants.PointOccurGb.USE_POINT_CANCEL.value());
|
|
|
+ point.setOccurDtlDesc("포인트사용취소");
|
|
|
+ point.setPayAmt(point.getPayAmt() * -1);
|
|
|
+ point.setRegNo(regNo);
|
|
|
+ point.setUpdNo(updNo);
|
|
|
+
|
|
|
+ // 포인트 사용 취소 이력 생성 및 포인트 수정
|
|
|
+ orderChangeDao.createCustPointHstRollback(point);
|
|
|
+ orderChangeDao.updateCustPointRollback(point);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 적립예정포인트 취소
|
|
|
+ vo.setOccurGb(TscConstants.PointOccurGb.EXPECT_POINT.value());
|
|
|
+
|
|
|
+ for (Order point : orderChangeDao.getCustPointHst(vo)) {
|
|
|
+ point.setOccurGb(TscConstants.PointOccurGb.EXPECT_POINT_CANCEL.value());
|
|
|
+ point.setOccurDtlDesc("예정포인트적립취소");
|
|
|
+ point.setPayAmt(point.getPayAmt() * -1);
|
|
|
+ point.setRegNo(regNo);
|
|
|
+ point.setUpdNo(updNo);
|
|
|
+
|
|
|
+ // 적립예정포인트 취소 이력 생성
|
|
|
+ orderChangeDao.createCustPointHstRollback(point);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 4. 사용상품권 원복
|
|
|
+ for (Order giftCard : orderChangeDao.getCustGiftCardHst(vo)) {
|
|
|
+ giftCard.setOccurGb(TscConstants.GiftCardOccurGb.USE_GIFTCARD_CANCEL.value());
|
|
|
+ giftCard.setOccurDtlDesc("상품권사용취소");
|
|
|
+ giftCard.setGfcdAmt(giftCard.getGfcdAmt() * -1);
|
|
|
+ giftCard.setRegNo(regNo);
|
|
|
+ giftCard.setUpdNo(updNo);
|
|
|
+
|
|
|
+ // 포인트 사용 취소 이력 생성 및 포인트 수정
|
|
|
+ orderChangeDao.createCustGiftCardHstRollback(giftCard);
|
|
|
+ orderChangeDao.updateCustGiftCardRollback(giftCard);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 5. 상품재고원복
|
|
|
+ OrderChange sellQty = new OrderChange();
|
|
|
+ sellQty.setOrdChgSq(orderChangeDetail.getOrdChgSq());
|
|
|
+ sellQty.setSellGb("11");
|
|
|
+ sellQty.setRegNo(regNo);
|
|
|
+ orderChangeDao.createSellQty(sellQty);
|
|
|
+
|
|
|
+ // 6. 쿠폰 원복처리
|
|
|
+ Order coupon = new Order();
|
|
|
+ coupon.setOrdNo(ordNo);
|
|
|
+ coupon.setUpdNo(updNo);
|
|
|
+ orderChangeDao.updateGoodsCpnRollback(coupon);
|
|
|
+ orderChangeDao.updateCartCpnRollback(coupon);
|
|
|
+ orderChangeDao.updateDeliveryCpnRollback(coupon);
|
|
|
+
|
|
|
+ // 7. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
|
|
|
+ Order freegiftOrder = new Order();
|
|
|
+ freegiftOrder.setOrdNo(ordNo);
|
|
|
+ freegiftOrder.setUpdNo(updNo);
|
|
|
+ orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
|
|
|
+
|
|
|
+ // 8. PG 연동
|
|
|
+ Payment pg = new Payment();
|
|
|
+ pg.setOrdNo(ordNo);
|
|
|
+ pg.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
|
|
|
+ pg.setPayGb("O");
|
|
|
+ pg.setPgTid(payment.getPgTid());
|
|
|
+ pg.setPayAmt(refundAmt);
|
|
|
+ pg.setRegNo(regNo);
|
|
|
+ pg.setUpdNo(updNo);
|
|
|
+
|
|
|
+ // 상품권으로만 결제 시 PG점프
|
|
|
+ String pgGb = payment.getPgGb();
|
|
|
+ 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(payment.getPayMeans());
|
|
|
+ pg.setChgReasonNm(chgReasonNm);
|
|
|
+
|
|
|
+ naverPayService.cancelNaverPayment(pg);
|
|
|
+ } 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);
|
|
|
+
|
|
|
+ // 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);
|
|
|
+
|
|
|
+ // TODO
|
|
|
+ // 11. 취소 완료 알림톡 발송 에정
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 전체취소 요청
|
|
|
*
|
|
|
@@ -1270,7 +1569,7 @@ public class TscOrderChangeService {
|
|
|
*/
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@Transactional("shopTxnManager")
|
|
|
- public GagaMap allCnclComplete(GagaMap map, int userNo) {
|
|
|
+ public GagaMap allCnclCompleteBak(GagaMap map, int userNo) {
|
|
|
// 1. 취소요청정보목록
|
|
|
List<Order> cancelOrderRefundList = (List<Order>) map.get("cancelOrderRefundList"); // 취소환불금액 목록 (주문상세단품 단위)
|
|
|
List<Order> cancelDelvRefundList = (List<Order>) map.get("cancelDelvRefundList"); // 취소환불배송금액 목록 (DELV_FEE_CD 단위)
|
|
|
@@ -1303,7 +1602,7 @@ public class TscOrderChangeService {
|
|
|
}
|
|
|
|
|
|
// 3. 주문상세단품정보등록, 변경 (단품단위)
|
|
|
- Order orderDetailItem = new Order();
|
|
|
+ OrderChange orderDetailItem = new OrderChange();
|
|
|
orderDetailItem.setOrdNo(ordNo);
|
|
|
orderDetailItem.setOrdDtlStat(ordDtlStat);
|
|
|
orderDetailItem.setRegNo(userNo);
|
|
|
@@ -1496,23 +1795,44 @@ public class TscOrderChangeService {
|
|
|
|
|
|
// PG 별 취소 처리
|
|
|
String pgGb = payment.getPgGb();
|
|
|
- if (TscConstants.PgGb.KCP.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("TODO");
|
|
|
- kcp.setPayAmt(pgCancelAmt);
|
|
|
- kcp.setRegNo(userNo);
|
|
|
- kcp.setUpdNo(userNo);
|
|
|
- kcpService.kcpCancel(kcp);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
|
|
|
+ // 상품권으로만 결제 시 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(payment.getPgTid());
|
|
|
+ kcp.setPayAmt(pgCancelAmt);
|
|
|
+ kcp.setRegNo(userNo);
|
|
|
+ kcp.setUpdNo(userNo);
|
|
|
+ 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(payment.getPayMeans());
|
|
|
+ naverPay.setChgReasonNm(chgReason);
|
|
|
+ naverPay.setPgTid(payment.getPgTid());
|
|
|
+ naverPay.setPayAmt(pgCancelAmt);
|
|
|
+ naverPay.setRegNo(userNo);
|
|
|
+ naverPay.setUpdNo(userNo);
|
|
|
+
|
|
|
+ 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(payment.getPgTid());
|
|
|
+ kakaoPay.setPayAmt(pgCancelAmt);
|
|
|
+
|
|
|
+ kakaoPayService.cancelKakaoPayment(kakaoPay);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// TODO
|
|
|
// 14. 취소 완료 알림톡 발송 에정
|