|
|
@@ -179,12 +179,12 @@ public class TscOrderChangeService {
|
|
|
*/
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@Transactional("shopTxnManager")
|
|
|
- public GagaMap partialCancel(GagaMap map) {
|
|
|
+ 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 단위)
|
|
|
int ordNo = map.getInt("ordNo"); // 주문번호
|
|
|
- int custNo = map.getInt("custNo"); // 고객번호
|
|
|
+ int ordChgSq = map.getInt("ordChgSq"); // 주문변경일련번호
|
|
|
String chgReason = map.getString("chgReason"); // 변경사유
|
|
|
String chgReasonNm = map.getString("chgReasonNm"); // 변경사유명
|
|
|
String chgMemo = map.getString("chgMemo"); // 변경메모
|
|
|
@@ -196,18 +196,20 @@ public class TscOrderChangeService {
|
|
|
String accountNo = map.getString("accountNo"); // 환불계좌번호
|
|
|
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(); // 주문변경상태
|
|
|
int realOrdAmt = map.getInt("spanSumRealOrdAmt"); // 부분취소 전 결제금액
|
|
|
- String modType;
|
|
|
+ String modType = "";
|
|
|
|
|
|
// 무통장입금 결제 주문 전체취소 상태값 처리
|
|
|
- if (TscConstants.PgGb.KCP.value().equals(pgGb)
|
|
|
- && TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payMeans)) {
|
|
|
- modType = "STPD"; // KCP 무통장입금 부분취소
|
|
|
- } else {
|
|
|
- modType = "STPC"; // KCP 부분취소
|
|
|
+ if (TscConstants.PgGb.KCP.value().equals(pgGb)) {
|
|
|
+ if (TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payMeans)) {
|
|
|
+ modType = "STPD"; // KCP 무통장입금 부분취소
|
|
|
+ } else {
|
|
|
+ modType = "STPC"; // KCP 부분취소
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 2. 주문상세단품정보등록, 변경 (단품단위)
|
|
|
@@ -217,8 +219,8 @@ public class TscOrderChangeService {
|
|
|
|
|
|
for (Order cancelOrderRefundPo : cancelOrderRefundList) {
|
|
|
cancelOrderRefundPo.setOrdDtlStat(ordDtlStat);
|
|
|
- cancelOrderRefundPo.setRegNo(custNo);
|
|
|
- cancelOrderRefundPo.setUpdNo(custNo);
|
|
|
+ cancelOrderRefundPo.setRegNo(userNo);
|
|
|
+ cancelOrderRefundPo.setUpdNo(userNo);
|
|
|
|
|
|
// 2-1. 취소수량이 존재하면 주문상세단품정보 수정 및 주문상세단품 이력 등록
|
|
|
if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
|
|
|
@@ -239,6 +241,7 @@ public class TscOrderChangeService {
|
|
|
}
|
|
|
|
|
|
// 3. 주문변경정보, 주문정보, 환불정보 (배송정책코드 별)
|
|
|
+ List<Payment> pgList = new ArrayList<>();
|
|
|
for (Order obj : cancelDelvRefundList) {
|
|
|
// 취소금액 있을 시 처리
|
|
|
if (obj.getCnclRtnAmt() > 0) {
|
|
|
@@ -250,10 +253,18 @@ public class TscOrderChangeService {
|
|
|
orderChange.setChgMemo(chgMemo);
|
|
|
orderChange.setAddPayCost(0);
|
|
|
orderChange.setAddPayAmt(0);
|
|
|
- orderChange.setRegNo(custNo);
|
|
|
- orderChange.setUpdNo(custNo);
|
|
|
+ orderChange.setRegNo(userNo);
|
|
|
+ orderChange.setUpdNo(userNo);
|
|
|
|
|
|
- orderChangeDao.createOrderChange(orderChange);
|
|
|
+ // 신청구분 처리
|
|
|
+ if ("cnclComplete".equals(reqGbn)) {
|
|
|
+ // 취소 완료 시 생성
|
|
|
+ orderChangeDao.createOrderChange(orderChange);
|
|
|
+ ordChgSq = orderChange.getOrdChgSq();
|
|
|
+ } else {
|
|
|
+ // 취소접수승인 시 ordChgSq 설정
|
|
|
+ orderChange.setOrdChgSq(ordChgSq);
|
|
|
+ }
|
|
|
|
|
|
// 3-2. 주문상세정보 수정
|
|
|
for (Order vo : cancelOrderDetailList) {
|
|
|
@@ -285,8 +296,8 @@ public class TscOrderChangeService {
|
|
|
point.setOccurGb(TscConstants.PointOccurGb.USE_POINT_CANCEL.value());
|
|
|
point.setPntUploadStat(TscConstants.PntUploadStat.APPLY_COMPLETE.value());
|
|
|
point.setOccurDtlDesc("포인트사용취소");
|
|
|
- point.setRegNo(custNo);
|
|
|
- point.setUpdNo(custNo);
|
|
|
+ point.setRegNo(userNo);
|
|
|
+ point.setUpdNo(userNo);
|
|
|
|
|
|
// 포인트 사용 취소 이력 생성 및 포인트 수정
|
|
|
orderChangeDao.createCustPointHstRollback(point);
|
|
|
@@ -303,8 +314,8 @@ public class TscOrderChangeService {
|
|
|
point.setPntUploadStat(TscConstants.PntUploadStat.APPLY_EXPECT.value());
|
|
|
point.setOccurDtlDesc("예정포인트적립취소");
|
|
|
point.setPntAmt(savePntAmt * -1);
|
|
|
- point.setRegNo(custNo);
|
|
|
- point.setUpdNo(custNo);
|
|
|
+ point.setRegNo(userNo);
|
|
|
+ point.setUpdNo(userNo);
|
|
|
|
|
|
|
|
|
// 적립예정포인트 취소 이력 생성
|
|
|
@@ -330,8 +341,8 @@ public class TscOrderChangeService {
|
|
|
|
|
|
giftCard.setOccurGb(TscConstants.GiftCardOccurGb.USE_GIFTCARD_CANCEL.value());
|
|
|
giftCard.setOccurDtlDesc("상품권사용취소");
|
|
|
- giftCard.setRegNo(custNo);
|
|
|
- giftCard.setUpdNo(custNo);
|
|
|
+ giftCard.setRegNo(userNo);
|
|
|
+ giftCard.setUpdNo(userNo);
|
|
|
|
|
|
// 포인트 사용 취소 이력 생성 및 포인트 수정
|
|
|
orderChangeDao.createCustGiftCardHstRollback(giftCard);
|
|
|
@@ -345,10 +356,25 @@ public class TscOrderChangeService {
|
|
|
changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
|
|
|
changeDetailPo.setChgQty(vo.getOrdCanChgQty());
|
|
|
changeDetailPo.setChgStat(chgStat);
|
|
|
- changeDetailPo.setRegNo(custNo);
|
|
|
- changeDetailPo.setUpdNo(custNo);
|
|
|
+ changeDetailPo.setRegNo(userNo);
|
|
|
+ changeDetailPo.setUpdNo(userNo);
|
|
|
+
|
|
|
+ // 신청구분 처리
|
|
|
+ if ("cnclComplete".equals(reqGbn)) {
|
|
|
+ // 취소완료 시 주문변경상세 정보 생성
|
|
|
+ orderChangeDao.createOrderChangeDetail(changeDetailPo);
|
|
|
+ } else {
|
|
|
+ // 취소접수승인 시 주문변경상세 정보 수정
|
|
|
+ Order order = new Order();
|
|
|
+ order.setOrdNo(ordNo);
|
|
|
+ order.setOrdChgSq(ordChgSq);
|
|
|
+ order.setChgStat(chgStat);
|
|
|
+ order.setUpdNo(userNo);
|
|
|
+ order.setDelYn("N");
|
|
|
+
|
|
|
+ orderChangeDao.updateOrderChangeDtlCancel(order);
|
|
|
+ }
|
|
|
|
|
|
- orderChangeDao.createOrderChangeDetail(changeDetailPo);
|
|
|
orderChangeDao.createOrderChangeDetailHst(changeDetailPo);
|
|
|
}
|
|
|
}
|
|
|
@@ -357,7 +383,7 @@ public class TscOrderChangeService {
|
|
|
orderChange.setSellGb(TscConstants.SellGb.ORDER_CANCEL.value());
|
|
|
orderChangeDao.createSellQty(orderChange);
|
|
|
|
|
|
- // 3-4. PG 결제 취소 처리 (상품권으로만 결제 시 PG점프)
|
|
|
+ // 3-4. PG 결제 취소 정보 설정 (상품권으로만 결제 시 PG점프)
|
|
|
int spanRealCnclRtnAmt = obj.getRealOrdAmt(); // 취소금액합계
|
|
|
int sumDeliveryFee = obj.getDelvFee(); // 배송비합계
|
|
|
int spanTotDeliveryFee = obj.getAddDelvFee(); // 추가배송비합계
|
|
|
@@ -381,33 +407,17 @@ public class TscOrderChangeService {
|
|
|
pg.setPayMeans(payMeans);
|
|
|
pg.setPartCancelAmt(spanRefundAmt);
|
|
|
pg.setLeftAmt(realOrdAmt);
|
|
|
- pg.setRegNo(custNo);
|
|
|
- pg.setUpdNo(custNo);
|
|
|
+ pg.setRegNo(userNo);
|
|
|
+ pg.setUpdNo(userNo);
|
|
|
|
|
|
if (!TscConstants.PgGb.ISTYLE.value().equals(pgGb) && spanRefundAmt > 0) {
|
|
|
- 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);
|
|
|
- }
|
|
|
+ pgList.add(pg);
|
|
|
}
|
|
|
|
|
|
// 3-5. 환불정보 등록
|
|
|
Order refundOrder = new Order();
|
|
|
refundOrder.setOrdNo(ordNo);
|
|
|
- refundOrder.setPaySq(pg.getPaySq());
|
|
|
+ refundOrder.setPaySq(0);
|
|
|
refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
refundOrder.setRefundAmt(spanRefundAmt);
|
|
|
refundOrder.setRfCpn1Amt(obj.getCpn1DcAmt());
|
|
|
@@ -424,7 +434,7 @@ public class TscOrderChangeService {
|
|
|
refundOrder.setRaNo(accountNo);
|
|
|
refundOrder.setRaNm(accountNm);
|
|
|
refundOrder.setRaBank(bankCd);
|
|
|
- refundOrder.setRegNo(custNo);
|
|
|
+ refundOrder.setRegNo(userNo);
|
|
|
|
|
|
orderChangeDao.createRefund(refundOrder);
|
|
|
|
|
|
@@ -439,8 +449,8 @@ public class TscOrderChangeService {
|
|
|
delvFeeOrder.setRealDelvAmt(obj.getDelvFee());
|
|
|
delvFeeOrder.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
delvFeeOrder.setSupplyCompCd(obj.getSupplyCompCd());
|
|
|
- delvFeeOrder.setRegNo(custNo);
|
|
|
- delvFeeOrder.setUpdNo(custNo);
|
|
|
+ delvFeeOrder.setRegNo(userNo);
|
|
|
+ delvFeeOrder.setUpdNo(userNo);
|
|
|
|
|
|
orderChangeDao.createDeliveryFee(delvFeeOrder);
|
|
|
}
|
|
|
@@ -451,14 +461,14 @@ public class TscOrderChangeService {
|
|
|
// 4-1. 장바구니, 배송비 쿠폰 원복처리
|
|
|
Order coupon = new Order();
|
|
|
coupon.setOrdNo(ordNo);
|
|
|
- coupon.setUpdNo(custNo);
|
|
|
+ coupon.setUpdNo(userNo);
|
|
|
orderChangeDao.updateCartCpnRollback(coupon);
|
|
|
orderChangeDao.updateDeliveryCpnRollback(coupon);
|
|
|
|
|
|
// 4-2. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
|
|
|
Order freegiftOrder = new Order();
|
|
|
freegiftOrder.setOrdNo(ordNo);
|
|
|
- freegiftOrder.setUpdNo(custNo);
|
|
|
+ freegiftOrder.setUpdNo(userNo);
|
|
|
orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
|
|
|
}
|
|
|
|
|
|
@@ -474,6 +484,35 @@ public class TscOrderChangeService {
|
|
|
}
|
|
|
|
|
|
wmsService.updateWmsCancel(wmsList);
|
|
|
+
|
|
|
+ // 6. PG 취소 처리
|
|
|
+ for (Payment pg : pgList) {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
+ Order refundOrder = new Order();
|
|
|
+ refundOrder.setOrdNo(ordNo);
|
|
|
+ refundOrder.setPaySq(pg.getPaySq());
|
|
|
+ refundOrder.setOrdChgSq(ordChgSq);
|
|
|
+ refundOrder.setUpdNo(userNo);
|
|
|
+
|
|
|
+ orderChangeDao.updateRefundInfo(refundOrder);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return map;
|
|
|
@@ -1688,7 +1727,122 @@ public class TscOrderChangeService {
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 취소 접수
|
|
|
+ *
|
|
|
+ * @param OrderChange
|
|
|
+ * @return GagaMap
|
|
|
+ * @author card007
|
|
|
+ * @since 2021. 04. 22
|
|
|
+ */
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ @Transactional("shopTxnManager")
|
|
|
+ public GagaMap cancelRequest(OrderChange orderChange) {
|
|
|
+ GagaMap result = new GagaMap();
|
|
|
+ int userNo = orderChange.getUserNo();
|
|
|
|
|
|
+ // 1. 주문변경 등록
|
|
|
+ // ordNo : 주문번호
|
|
|
+ // chgGb : 변경구분
|
|
|
+ // chgReason : 변경사유
|
|
|
+ // chgMemo : 변경메모
|
|
|
+ // userNo : 회원번호
|
|
|
+ // ordDtlNoArr : 주문상세번호배열
|
|
|
+ // cnclRtnReqQtyArr : 변경수량배열
|
|
|
+
|
|
|
+ orderChange.setRegNo(userNo);
|
|
|
+ orderChange.setUpdNo(userNo);
|
|
|
+ orderChangeDao.createOrderChange(orderChange);
|
|
|
+
|
|
|
+ for (int i = 0; i < orderChange.getOrdDtlNoArr().length; i++) {
|
|
|
+ Integer ordDtlNo = orderChange.getOrdDtlNoArr()[i];
|
|
|
+ int chgQty = orderChange.getCnclRtnReqQtyArr()[i];
|
|
|
+
|
|
|
+ // 2. 주문변경상세정보 등록
|
|
|
+ OrderChange changeDetailPo = new OrderChange();
|
|
|
+ changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
+ changeDetailPo.setOrdDtlNo(ordDtlNo);
|
|
|
+ changeDetailPo.setChgQty(chgQty);
|
|
|
+ changeDetailPo.setChgStat(TscConstants.OrderChangeStat.CANCEL.value());
|
|
|
+ changeDetailPo.setRegNo(userNo);
|
|
|
+ changeDetailPo.setUpdNo(userNo);
|
|
|
+
|
|
|
+ orderChangeDao.createOrderChangeDetail(changeDetailPo);
|
|
|
+ }
|
|
|
+
|
|
|
+ result.setInt("status", GagaResponseStatus.SUCCESS.getCode());
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 취소접수승인
|
|
|
+ *
|
|
|
+ * @param GagaMap, int
|
|
|
+ * @return GagaMap
|
|
|
+ * @author card007
|
|
|
+ * @since 2021. 04. 22
|
|
|
+ */
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ @Transactional("shopTxnManager")
|
|
|
+ public GagaMap approveCancelRequest(OrderChange orderChange, Integer userNo) {
|
|
|
+ GagaMap result = new GagaMap();
|
|
|
+
|
|
|
+ // 1. 환불 사전 정보 조회
|
|
|
+ // ordChgSq, accountNo, accountNm, bankCd, ipAddress
|
|
|
+ List<Integer> ordDtlNoList = new ArrayList<>();
|
|
|
+ List<Integer> chgQtyList = new ArrayList<>();
|
|
|
+ for (OrderChange preInfo : orderChangeDao.approveCancelRequestInfo(orderChange)) {
|
|
|
+ ordDtlNoList.add(preInfo.getOrdDtlNo());
|
|
|
+ chgQtyList.add(preInfo.getChgQty());
|
|
|
+ }
|
|
|
+
|
|
|
+ orderChange.setOrdDtlNoArr(ordDtlNoList.stream().mapToInt(Integer::intValue).toArray());
|
|
|
+ orderChange.setCnclRtnReqQtyArr(chgQtyList.stream().mapToInt(Integer::intValue).toArray());
|
|
|
+ orderChange.setReqGbn("cnclReqComplete");
|
|
|
+ // 전체취소 분기처리
|
|
|
+ // 부분취소 신청구분 처리
|
|
|
+
|
|
|
+ GagaMap refundPreInfo = getRefundPreInfo(orderChange);
|
|
|
+ List<Order> cnclReqList = (List<Order>)refundPreInfo.get("cnclReqList");
|
|
|
+ String allCanYn = refundPreInfo.getString("allCanYn");
|
|
|
+ String allLastCanYn = refundPreInfo.getString("allLastCanYn");
|
|
|
+
|
|
|
+ // 2. 전체취소, 부분취소 구분 처리 진행
|
|
|
+ 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.cnclRtnRefundAmt(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구분
|
|
|
+
|
|
|
+ // 부분취소 처리
|
|
|
+ partialCancel(result, userNo);
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -2064,7 +2218,49 @@ public class TscOrderChangeService {
|
|
|
freegiftOrder.setUpdNo(updNo);
|
|
|
orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
|
|
|
|
|
|
- // 8. PG 연동
|
|
|
+ // 8. 주문상세 및 주문상세단품 정보 설정
|
|
|
+ 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);
|
|
|
+
|
|
|
+ // 9. 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);
|
|
|
+
|
|
|
+ // 10. 환불금액 등록
|
|
|
+ Order refundOrder = orderChangeDao.getRefundInfoForAllCancel(vo);
|
|
|
+ refundOrder.setOrdNo(ordNo);
|
|
|
+ refundOrder.setPaySq(0);
|
|
|
+ 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);
|
|
|
+
|
|
|
+ // 11. PG 연동
|
|
|
Payment pg = new Payment();
|
|
|
pg.setOrdNo(ordNo);
|
|
|
pg.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
|
|
|
@@ -2094,49 +2290,12 @@ public class TscOrderChangeService {
|
|
|
} 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);
|
|
|
+ // 11. 환불금액 정보 수정
|
|
|
+ refundOrder.setPaySq(pg.getPaySq());
|
|
|
|
|
|
- // 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);
|
|
|
-
|
|
|
- // 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);
|
|
|
+ orderChangeDao.updateRefundInfo(refundOrder);
|
|
|
}
|
|
|
-
|
|
|
- wmsService.updateWmsCancel(wmsList);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -2149,7 +2308,7 @@ public class TscOrderChangeService {
|
|
|
*/
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@Transactional("shopTxnManager")
|
|
|
- public GagaMap orderCancelPreInfo(OrderChange orderChange) {
|
|
|
+ public GagaMap orderCancelPreInfo(OrderChange orderChange, Integer userNo) {
|
|
|
GagaMap result = new GagaMap();
|
|
|
|
|
|
// 1. 환불 사전 정보 조회
|
|
|
@@ -2161,8 +2320,8 @@ public class TscOrderChangeService {
|
|
|
// 2. 전체취소, 부분취소 구분 처리 진행
|
|
|
if ("Y".equals(allCanYn)) {
|
|
|
orderChange.setChgGb(TscConstants.OrderChangeGb.CANCEL.value());
|
|
|
- orderChange.setRegNo(orderChange.getCustNo());
|
|
|
- orderChange.setUpdNo(orderChange.getCustNo());
|
|
|
+ orderChange.setRegNo(userNo);
|
|
|
+ orderChange.setUpdNo(userNo);
|
|
|
|
|
|
// 전체 취소 처리
|
|
|
allCnclComplete(orderChange);
|
|
|
@@ -2188,7 +2347,7 @@ public class TscOrderChangeService {
|
|
|
result.setString("pgGb", refundPreInfo.getString("pgGb")); // PG구분
|
|
|
|
|
|
// 부분취소 처리
|
|
|
- partialCancel(result);
|
|
|
+ partialCancel(result, userNo);
|
|
|
}
|
|
|
|
|
|
return result;
|