|
|
@@ -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;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
/**
|