|
@@ -103,20 +103,136 @@ public class TscOrderChangeService {
|
|
|
* @author jsh77b
|
|
* @author jsh77b
|
|
|
* @since 2021. 01. 19
|
|
* @since 2021. 01. 19
|
|
|
*/
|
|
*/
|
|
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
@Transactional("shopTxnManager")
|
|
@Transactional("shopTxnManager")
|
|
|
public GagaMap cnclReq(GagaMap mav, int userNo) {
|
|
public GagaMap cnclReq(GagaMap mav, int userNo) {
|
|
|
|
|
|
|
|
// 1. 세션회원조회
|
|
// 1. 세션회원조회
|
|
|
//userNo = userNo;
|
|
//userNo = userNo;
|
|
|
|
|
|
|
|
- // 2. 취소요정정보목록
|
|
|
|
|
- //List<Order> cancelReqList = (List<Order>) mav.get("cancelReqList"); //주문 취소 신청 목록
|
|
|
|
|
- //List<Order> cancelOrderRefundList = (List<Order>) mav.get("cancelOrderRefundList"); //주문 환불 금액 목록
|
|
|
|
|
- //List<Order> cancelDelvRefundList = (List<Order>) mav.get("cancelDelvRefundList"); //주문 환불 배송 금액 목록
|
|
|
|
|
|
|
+ // 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 단위)
|
|
|
|
|
+
|
|
|
|
|
+ // 3. 변경신청정보
|
|
|
|
|
+ int ordNo = Integer.parseInt(mav.getString("ordNo").toString()); // 주문번호
|
|
|
|
|
+ String chgReason = mav.getString("chgReason").toString(); // 변경사유
|
|
|
|
|
+ String chgMemo = mav.getString("chgMemo").toString(); // 변경메모
|
|
|
|
|
+ String chgGb = TscConstants.OrderChangeGb.CANCEL.value(); // 취소요청
|
|
|
|
|
|
|
|
- // 2. 주문변경정보등록 (TB_ORDER_CHAGNE) (등록)
|
|
|
|
|
|
|
+ // 4. 주문상세단품정보등록,변경 (단품단위)
|
|
|
|
|
+ List<Order> cancelOrderDetailList = new ArrayList<Order>();
|
|
|
|
|
|
|
|
- // 3. 주문변경상세정보등록 (TB_ORDER_CHANGE_DETAIL) (등록)
|
|
|
|
|
|
|
+ for (int i=0 ; i<cancelOrderRefundList.size() ; i++) {
|
|
|
|
|
+ Order cancelOrderRefundPo = cancelOrderRefundList.get(i);
|
|
|
|
|
+ cancelOrderRefundPo.setRegNo(userNo);
|
|
|
|
|
+ cancelOrderRefundPo.setUpdNo(userNo);
|
|
|
|
|
+
|
|
|
|
|
+ // 4.1 취소수량이 존재하면 주문상세단품정보 수정 및 주문상세단품이력정보 등록
|
|
|
|
|
+ if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
|
|
|
|
|
+ // 4.4 주문변경 상세 단위로 데이타 등록 (ORD_DTL_NO)
|
|
|
|
|
+ Boolean temp = false;
|
|
|
|
|
+ if (cancelOrderDetailList.size() > 0) {
|
|
|
|
|
+ for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
|
|
|
|
|
+ if (cancelOrderRefundPo.getOrdDtlNo() == cancelOrderDetailList.get(j).getOrdDtlNo()) {
|
|
|
|
|
+ temp = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 4.5 주문상세단위 데이타 저장(주문상세 단위)
|
|
|
|
|
+ if (!temp) {
|
|
|
|
|
+ cancelOrderDetailList.add(cancelOrderRefundPo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 2021.01.21 DELV_FEE 배송번호 단위로 TB_ORDER_CHANGE 생성
|
|
|
|
|
+ // 4. 주문변경정보, 주문정보, 환불정보 (업체코드 & 배송정책코드)
|
|
|
|
|
+ for (int i=0 ; i<cancelDelvRefundList.size() ; i++) {
|
|
|
|
|
+
|
|
|
|
|
+ Order obj = cancelDelvRefundList.get(i);
|
|
|
|
|
+
|
|
|
|
|
+ // 취소금액이 있을때 처리
|
|
|
|
|
+ if (obj.getCnclRtnAmt() > 0) {
|
|
|
|
|
+
|
|
|
|
|
+ // 5.1 주문변경 기본정보 등록
|
|
|
|
|
+ OrderChange orderChange = new OrderChange();
|
|
|
|
|
+ orderChange.setOrdNo(ordNo);
|
|
|
|
|
+ orderChange.setChgGb(chgGb);
|
|
|
|
|
+ orderChange.setChgReason(chgReason);
|
|
|
|
|
+ orderChange.setChgMemo(chgMemo);
|
|
|
|
|
+ orderChange.setAddPayCost(0);
|
|
|
|
|
+ orderChange.setAddPayAmt(0);
|
|
|
|
|
+ orderChange.setRegNo(userNo);
|
|
|
|
|
+ orderChange.setUpdNo(userNo);
|
|
|
|
|
+
|
|
|
|
|
+ // 5.2 주문변경 추가정보 등록
|
|
|
|
|
+ String chgerNm = mav.getString("chgerNm").toString(); // 변경자
|
|
|
|
|
+ String chgerPhnno = mav.getString("chgerPhnno").toString(); // 변경핸드폰번호
|
|
|
|
|
+ String chgerTelno = mav.getString("chgerTelno").toString(); // 변경전화번호
|
|
|
|
|
+ String chgerEmail = mav.getString("chgerEmail").toString(); // 변경이메일
|
|
|
|
|
+
|
|
|
|
|
+ orderChange.setChgerNm(chgerNm);
|
|
|
|
|
+ orderChange.setChgerPhnno(chgerPhnno);
|
|
|
|
|
+ orderChange.setChgerTelno(chgerTelno);
|
|
|
|
|
+ orderChange.setChgerEmail(chgerEmail);
|
|
|
|
|
+ orderChange.setChgerRtnMemo("");
|
|
|
|
|
+
|
|
|
|
|
+ orderChangeDao.createOrderChange(orderChange);
|
|
|
|
|
+
|
|
|
|
|
+ // 5.3 주문상세단위 취소정보
|
|
|
|
|
+ for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
|
|
|
|
|
+ Order vo = cancelOrderRefundList.get(j);
|
|
|
|
|
+ vo.setRegNo(userNo);
|
|
|
|
|
+ vo.setUpdNo(userNo);
|
|
|
|
|
+ vo.setOrdDtlStat(TscConstants.OrderChangeStat.CANCEL.value()); // 취소신청
|
|
|
|
|
+
|
|
|
|
|
+ // 5.3.0 DEVL_FEE_CD 단위로 주문상세 정보 처리
|
|
|
|
|
+ if (obj.getDelvFeeCd().equals(vo.getDelvFeeCd())) {
|
|
|
|
|
+
|
|
|
|
|
+ // 5.3.1 주문변경상세정보 이력등록
|
|
|
|
|
+ orderChangeDao.createOrderDetailHstCnclRtn(vo);
|
|
|
|
|
+
|
|
|
|
|
+ // * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음 주문상세단위로 수정
|
|
|
|
|
+ // 5.3 주문변경상세정보 등록
|
|
|
|
|
+ OrderChange changeDetailPo = new OrderChange();
|
|
|
|
|
+ changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
|
|
+ changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
|
|
|
|
|
+ changeDetailPo.setChgQty(vo.getOrdCanChgQty());
|
|
|
|
|
+ changeDetailPo.setChgStat(TscConstants.OrderChangeStat.CANCEL.value()); // 취소신청
|
|
|
|
|
+ changeDetailPo.setRegNo(userNo);
|
|
|
|
|
+ changeDetailPo.setUpdNo(userNo);
|
|
|
|
|
+
|
|
|
|
|
+ orderChangeDao.createOrderChangeDetail(changeDetailPo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 5.4 환불금액 등록
|
|
|
|
|
+ Order refundOrder = new Order();
|
|
|
|
|
+ refundOrder.setOrdNo(ordNo);
|
|
|
|
|
+ refundOrder.setPaySq(0);
|
|
|
|
|
+ refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
|
|
+ refundOrder.setRegNo(userNo);
|
|
|
|
|
+
|
|
|
|
|
+ refundOrder.setRefundAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfCpn1Amt(Integer.parseInt(mav.get("spanCpn1DcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfTmtb1Amt(Integer.parseInt(mav.get("spanTmtb1DcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfTmtb2Amt(Integer.parseInt(mav.get("spanTmtb2DcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfGoodsCpnAmt(Integer.parseInt(mav.get("spanGoodsCpnDcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfCartCpnAmt(Integer.parseInt(mav.get("spanCartCpnDcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfPntAmt(Integer.parseInt(mav.get("spanPntDcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfPrePntAmt(Integer.parseInt(mav.get("spanPrePntDcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfGfcdUseAmt(Integer.parseInt(mav.get("spanGfcdUseAmt").toString()));
|
|
|
|
|
+
|
|
|
|
|
+ refundOrder.setRaNo(mav.get("accountNo").toString());
|
|
|
|
|
+ refundOrder.setRaNm(mav.get("accountNm").toString());
|
|
|
|
|
+ refundOrder.setRaBank(mav.get("bankCd").toString());
|
|
|
|
|
+
|
|
|
|
|
+ orderChangeDao.createRefund(refundOrder);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
return mav;
|
|
return mav;
|
|
|
}
|
|
}
|
|
@@ -172,17 +288,17 @@ public class TscOrderChangeService {
|
|
|
//userNo = userNo;
|
|
//userNo = userNo;
|
|
|
|
|
|
|
|
// 2. 취소요정정보목록
|
|
// 2. 취소요정정보목록
|
|
|
- //List<Order> cancelReqList = (List<Order>) mav.get("cancelReqList"); // 주문 취소 신청 목록
|
|
|
|
|
- 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. 취소신청정보
|
|
// 3. 취소신청정보
|
|
|
int ordNo = Integer.parseInt(mav.getString("ordNo").toString()); // 주문번호
|
|
int ordNo = Integer.parseInt(mav.getString("ordNo").toString()); // 주문번호
|
|
|
String chgReason = mav.getString("chgReason").toString(); // 변경사유
|
|
String chgReason = mav.getString("chgReason").toString(); // 변경사유
|
|
|
String chgMemo = mav.getString("chgMemo").toString(); // 변경메모
|
|
String chgMemo = mav.getString("chgMemo").toString(); // 변경메모
|
|
|
String allCanYn = mav.getString("allCanYn").toString(); // 무통장입금전 전체취소 여부
|
|
String allCanYn = mav.getString("allCanYn").toString(); // 무통장입금전 전체취소 여부
|
|
|
- String isCustomer = mav.getString("isCustomer").toString(); // 변경사유 (고객, 회사)
|
|
|
|
|
- String chgGb = TscConstants.OrderChangeGb.CANCEL.value(); // 취소요청
|
|
|
|
|
|
|
+ String isCustomer = mav.getString("isCustomer").toString(); // 귀책사유 (고객, 회사)
|
|
|
|
|
+ String chgGb = TscConstants.OrderChangeGb.CANCEL.value(); // 취소요청 (공톹코드:G680)
|
|
|
|
|
|
|
|
// 4. 주문상세단품정보등록,변경 (단품단위)
|
|
// 4. 주문상세단품정보등록,변경 (단품단위)
|
|
|
List<Order> cancelOrderDetailList = new ArrayList<Order>();
|
|
List<Order> cancelOrderDetailList = new ArrayList<Order>();
|
|
@@ -194,12 +310,12 @@ public class TscOrderChangeService {
|
|
|
|
|
|
|
|
// 2020.01.05 추후 무통장입금전 전체 취소시 분기 로직 추가 예정
|
|
// 2020.01.05 추후 무통장입금전 전체 취소시 분기 로직 추가 예정
|
|
|
if ("Y".equals(allCanYn)) {
|
|
if ("Y".equals(allCanYn)) {
|
|
|
- cancelOrderRefundPo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_BEFORE_CANCEL.value()); // 결제전주문취소
|
|
|
|
|
|
|
+ cancelOrderRefundPo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_BEFORE_CANCEL.value()); // 결제전주문취소 (공통코드:G685)
|
|
|
} else {
|
|
} else {
|
|
|
- cancelOrderRefundPo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value()); // 결제후주문취소
|
|
|
|
|
|
|
+ cancelOrderRefundPo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value()); // 결제후주문취소 (공통코드:G685)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 4.1 취소수량이 존재하면 주문정보 수정 및 주문변경정보 등록
|
|
|
|
|
|
|
+ // 4.1 취소수량이 존재하면 주문상세단품정보 수정 및 주문상세단품이력정보 등록
|
|
|
if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
|
|
if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
|
|
|
|
|
|
|
|
// 4.2 주문상세단품정보수정 (TB_ORDER_DETAIL_ITEM)
|
|
// 4.2 주문상세단품정보수정 (TB_ORDER_DETAIL_ITEM)
|
|
@@ -222,10 +338,6 @@ public class TscOrderChangeService {
|
|
|
if (!temp) {
|
|
if (!temp) {
|
|
|
cancelOrderDetailList.add(cancelOrderRefundPo);
|
|
cancelOrderDetailList.add(cancelOrderRefundPo);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- // TO DO LIST
|
|
|
|
|
- // 4.6 상품옵션재고등록 (추가개발 TB_SELL_QTY)
|
|
|
|
|
- //orderChangeDao.updateOptionQty(cancelOrderRefundPo);
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -286,7 +398,7 @@ public class TscOrderChangeService {
|
|
|
// 5.3.2 주문변경상세정보 수정
|
|
// 5.3.2 주문변경상세정보 수정
|
|
|
orderChangeDao.updateOrderDetail(vo);
|
|
orderChangeDao.updateOrderDetail(vo);
|
|
|
|
|
|
|
|
- // * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음
|
|
|
|
|
|
|
+ // * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음 주문상세단위로 수정
|
|
|
// 5.3 주문변경상세정보 등록
|
|
// 5.3 주문변경상세정보 등록
|
|
|
OrderChange changeDetailPo = new OrderChange();
|
|
OrderChange changeDetailPo = new OrderChange();
|
|
|
changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
|
|
changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
|
|
@@ -299,6 +411,9 @@ public class TscOrderChangeService {
|
|
|
orderChangeDao.createOrderChangeDetail(changeDetailPo);
|
|
orderChangeDao.createOrderChangeDetail(changeDetailPo);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // 5.31 상품재고원복 (TB_SELL_QTY 등록(취소,반품))
|
|
|
|
|
+ orderChangeDao.createSellQty(orderChange);
|
|
|
|
|
|
|
|
// 5.4 환불결제정보 등록 (업체별 & 배송정책별) 단위
|
|
// 5.4 환불결제정보 등록 (업체별 & 배송정책별) 단위
|
|
|
// 취소, 반품 사유에 따른 추가배송비, 반품배송비를 환불금액에서 추가, 제외 할 수 있다.
|
|
// 취소, 반품 사유에 따른 추가배송비, 반품배송비를 환불금액에서 추가, 제외 할 수 있다.
|
|
@@ -398,7 +513,7 @@ public class TscOrderChangeService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 반품신청 (admin, front,
|
|
|
|
|
|
|
+ * 반품신청 (ADMIN, FRONT, NPAY, EXTMALL)
|
|
|
* @param Order
|
|
* @param Order
|
|
|
* @return Order
|
|
* @return Order
|
|
|
* @author jsh77b
|
|
* @author jsh77b
|
|
@@ -411,71 +526,29 @@ public class TscOrderChangeService {
|
|
|
// 1. 세션회원조회
|
|
// 1. 세션회원조회
|
|
|
//userNo = userNo;
|
|
//userNo = userNo;
|
|
|
|
|
|
|
|
- // 2. 취소요정정보목록
|
|
|
|
|
- //List<Order> cancelReqList = (List<Order>) mav.get("cancelReqList"); // 주문 취소 신청 목록
|
|
|
|
|
- List<Order> cancelOrderRefundList = (List<Order>) mav.get("cancelOrderRefundList"); // 주문 환불 금액 목록
|
|
|
|
|
- List<Order> cancelDelvRefundList = (List<Order>) mav.get("cancelDelvRefundList"); // 주문 환불 배송 금액 목록
|
|
|
|
|
|
|
+ // 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 단위)
|
|
|
|
|
|
|
|
- // 3. 취소신청정보
|
|
|
|
|
|
|
+ // 3. 변경신청정보
|
|
|
int ordNo = Integer.parseInt(mav.getString("ordNo").toString()); // 주문번호
|
|
int ordNo = Integer.parseInt(mav.getString("ordNo").toString()); // 주문번호
|
|
|
String chgReason = mav.getString("chgReason").toString(); // 변경사유
|
|
String chgReason = mav.getString("chgReason").toString(); // 변경사유
|
|
|
String chgMemo = mav.getString("chgMemo").toString(); // 변경메모
|
|
String chgMemo = mav.getString("chgMemo").toString(); // 변경메모
|
|
|
- String allCanYn = mav.getString("allCanYn").toString(); // 무통장입금전 전체취소 여부
|
|
|
|
|
- String isCustomer = mav.getString("isCustomer").toString(); // 변경사유 (고객, 회사)
|
|
|
|
|
String chgGb = TscConstants.OrderChangeGb.RETURN.value(); // 반품요청
|
|
String chgGb = TscConstants.OrderChangeGb.RETURN.value(); // 반품요청
|
|
|
|
|
|
|
|
- // 4.1 주문변경 기본정보 등록
|
|
|
|
|
- OrderChange orderChange = new OrderChange();
|
|
|
|
|
- orderChange.setOrdNo(ordNo);
|
|
|
|
|
- orderChange.setChgGb(chgGb);
|
|
|
|
|
- orderChange.setChgReason(chgReason);
|
|
|
|
|
- orderChange.setChgMemo(chgMemo);
|
|
|
|
|
- orderChange.setAddPayCost(0);
|
|
|
|
|
- orderChange.setAddPayAmt(0);
|
|
|
|
|
- orderChange.setRegNo(userNo);
|
|
|
|
|
- orderChange.setUpdNo(userNo);
|
|
|
|
|
-
|
|
|
|
|
- // 4.2 반품추가정보, 반품회수지 정보 등록
|
|
|
|
|
- String chgerNm = mav.getString("chgerNm").toString();
|
|
|
|
|
- String chgerPhnno = mav.getString("chgerPhnno").toString();
|
|
|
|
|
- String chgerTelno = mav.getString("chgerTelno").toString();
|
|
|
|
|
- String chgerEmail = mav.getString("chgerEmail").toString();
|
|
|
|
|
- String chgerZipNo = mav.getString("chgerZipNo").toString();
|
|
|
|
|
- String chgerBaseAddr = mav.getString("chgerBaseAddr").toString();
|
|
|
|
|
- String chgerDtlAddr = mav.getString("chgerDtlAddr").toString();
|
|
|
|
|
-
|
|
|
|
|
- orderChange.setChgerNm(chgerNm);
|
|
|
|
|
- orderChange.setChgerPhnno(chgerPhnno);
|
|
|
|
|
- orderChange.setChgerTelno(chgerTelno);
|
|
|
|
|
- orderChange.setChgerEmail(chgerEmail);
|
|
|
|
|
- orderChange.setChgerZipNo(chgerZipNo);
|
|
|
|
|
- orderChange.setChgerBaseAddr(chgerBaseAddr);
|
|
|
|
|
- orderChange.setChgerDtlAddr(chgerDtlAddr);
|
|
|
|
|
- orderChange.setChgerRtnMemo("");
|
|
|
|
|
-
|
|
|
|
|
- orderChangeDao.createOrderChange(orderChange);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ // 4. 주문상세단품정보등록,변경 (단품단위)
|
|
|
List<Order> cancelOrderDetailList = new ArrayList<Order>();
|
|
List<Order> cancelOrderDetailList = new ArrayList<Order>();
|
|
|
|
|
|
|
|
- // 4.2 주문변경 상세 단품 정보 등록 (단품단위)
|
|
|
|
|
for (int i=0 ; i<cancelOrderRefundList.size() ; i++) {
|
|
for (int i=0 ; i<cancelOrderRefundList.size() ; i++) {
|
|
|
Order cancelOrderRefundPo = cancelOrderRefundList.get(i);
|
|
Order cancelOrderRefundPo = cancelOrderRefundList.get(i);
|
|
|
cancelOrderRefundPo.setRegNo(userNo);
|
|
cancelOrderRefundPo.setRegNo(userNo);
|
|
|
cancelOrderRefundPo.setUpdNo(userNo);
|
|
cancelOrderRefundPo.setUpdNo(userNo);
|
|
|
-
|
|
|
|
|
- // 2020.01.05 추후 무통장입금전 전체 취소시 분기로직 추가 예정
|
|
|
|
|
- if ("Y".equals(allCanYn)) {
|
|
|
|
|
- cancelOrderRefundPo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_BEFORE_CANCEL.value()); // 결제전주문취소 : 공통코드로관리예정
|
|
|
|
|
- } else {
|
|
|
|
|
- cancelOrderRefundPo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value()); // 결제후주문취소 : 공통코드로관리예정
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- // 4.2.1 취소수량이 존재하면 주문정보 수정 및 주문변경정보 등록
|
|
|
|
|
- if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
|
|
|
|
|
-
|
|
|
|
|
- // 4.3 주문변경 상세 단위로 데이타 등록 (ORD_DTL_NO)
|
|
|
|
|
|
|
+ // 4.1 취소수량이 존재하면 주문상세단품정보 수정 및 주문상세단품이력정보 등록
|
|
|
|
|
+ if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
|
|
|
|
|
+ // 4.4 주문변경 상세 단위로 데이타 등록 (ORD_DTL_NO)
|
|
|
Boolean temp = false;
|
|
Boolean temp = false;
|
|
|
-
|
|
|
|
|
if (cancelOrderDetailList.size() > 0) {
|
|
if (cancelOrderDetailList.size() > 0) {
|
|
|
for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
|
|
for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
|
|
|
if (cancelOrderRefundPo.getOrdDtlNo() == cancelOrderDetailList.get(j).getOrdDtlNo()) {
|
|
if (cancelOrderRefundPo.getOrdDtlNo() == cancelOrderDetailList.get(j).getOrdDtlNo()) {
|
|
@@ -484,143 +557,106 @@ public class TscOrderChangeService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 4.4 주문상세단위 데이타 저장
|
|
|
|
|
|
|
+ // 4.5 주문상세단위 데이타 저장(주문상세 단위)
|
|
|
if (!temp) {
|
|
if (!temp) {
|
|
|
cancelOrderDetailList.add(cancelOrderRefundPo);
|
|
cancelOrderDetailList.add(cancelOrderRefundPo);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- // 5. 주문상세단위 취소 데이타 처리
|
|
|
|
|
- for (int i=0 ; i<cancelOrderDetailList.size() ; i++) {
|
|
|
|
|
- Order vo = cancelOrderRefundList.get(i);
|
|
|
|
|
- vo.setRegNo(userNo);
|
|
|
|
|
- vo.setUpdNo(userNo);
|
|
|
|
|
-
|
|
|
|
|
- // 2020.01.05 추후 무통장입금전 전체 취소시 분기로직 추가 예정
|
|
|
|
|
- if ("Y".equals(allCanYn)) {
|
|
|
|
|
- vo.setOrdDtlStat("G013_98"); // 결제전주문취소 : 공통코드로관리예정
|
|
|
|
|
- } else {
|
|
|
|
|
- vo.setOrdDtlStat("G013_99"); // 결제후주문취소 : 공통코드로관리예정
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 5.1 주문변경상세정보 이력 등록
|
|
|
|
|
- orderChangeDao.createOrderDetailHstCnclRtn(vo);
|
|
|
|
|
-
|
|
|
|
|
- // 4.2 주문변경상세정보 수정
|
|
|
|
|
- //orderChangeDao.updateOrderDetail(vo);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 2021.01.21 DELV_FEE 배송번호 단위로 TB_ORDER_CHANGE 생성
|
|
|
|
|
+ // 4. 주문변경정보, 주문정보, 환불정보 (업체코드 & 배송정책코드)
|
|
|
|
|
+ for (int i=0 ; i<cancelDelvRefundList.size() ; i++) {
|
|
|
|
|
|
|
|
- // * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음
|
|
|
|
|
- // 5.3 주문변경상세정보 등록
|
|
|
|
|
- OrderChange changeDetailPo = new OrderChange();
|
|
|
|
|
- changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
|
|
- changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
|
|
|
|
|
- changeDetailPo.setChgQty(vo.getOrdCanChgQty());
|
|
|
|
|
- changeDetailPo.setChgStat(TscConstants.OrderChangeStat.RETURN.value()); // 반품요청
|
|
|
|
|
- changeDetailPo.setRegNo(userNo);
|
|
|
|
|
- changeDetailPo.setUpdNo(userNo);
|
|
|
|
|
|
|
+ Order obj = cancelDelvRefundList.get(i);
|
|
|
|
|
|
|
|
- orderChangeDao.createOrderChangeDetail(changeDetailPo);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // To Do List
|
|
|
|
|
- // 취소, 반품 사유에 따른 추가배송비, 반품배송비를 환불금액에서 추가, 제외 할 수 있다.
|
|
|
|
|
- int spanRealCnclRtnAmt = Integer.parseInt(mav.get("spanRealCnclRtnAmt").toString()); // 취소금액합계
|
|
|
|
|
- int sumDeliveryFee = Integer.parseInt(mav.get("sumDeliveryFee").toString()); // 배송비합계
|
|
|
|
|
- int spanTotDeliveryFee = Integer.parseInt(mav.get("spanTotDeliveryFee").toString()); // 추가배송비합계
|
|
|
|
|
- int spanTotRtnDelvFee = Integer.parseInt(mav.get("spanTotRtnDelvFee").toString()); // 반품배송비합계
|
|
|
|
|
- int spanRefundAmt = 0;
|
|
|
|
|
-
|
|
|
|
|
- // 고객사유 : 환불금액계산 = (취소금액 + 배송비) - 추가배송비
|
|
|
|
|
- if ("true".equals(isCustomer)) {
|
|
|
|
|
- spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee) - spanTotDeliveryFee - spanTotRtnDelvFee;
|
|
|
|
|
- //Integer.parseInt(mav.get("spanRefundAmt").toString());
|
|
|
|
|
- }
|
|
|
|
|
- // 회사사유 : 환불금액계산 = (취소금액 + 배송비)
|
|
|
|
|
- else {
|
|
|
|
|
- spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee);
|
|
|
|
|
- }
|
|
|
|
|
- mav.set("spanRefundAmt", spanRefundAmt);
|
|
|
|
|
-
|
|
|
|
|
- // 6. 환불결제 정보 등록
|
|
|
|
|
- Order paymentOrder = new Order();
|
|
|
|
|
- paymentOrder.setOrdNo(ordNo);
|
|
|
|
|
- paymentOrder.setPayAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()) * -1);
|
|
|
|
|
- paymentOrder.setPayStat("G016_99");
|
|
|
|
|
- paymentOrder.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
|
|
- paymentOrder.setRegNo(userNo);
|
|
|
|
|
- paymentOrder.setUpdNo(userNo);
|
|
|
|
|
-
|
|
|
|
|
- //orderChangeDao.createPayment(paymentOrder);
|
|
|
|
|
-
|
|
|
|
|
- // 7. 환불금액 등록
|
|
|
|
|
- Order refundOrder = new Order();
|
|
|
|
|
- refundOrder.setOrdNo(ordNo);
|
|
|
|
|
- refundOrder.setPaySq(paymentOrder.getPaySq());
|
|
|
|
|
- refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
|
|
- refundOrder.setRegNo(userNo);
|
|
|
|
|
-
|
|
|
|
|
- refundOrder.setRefundAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()));
|
|
|
|
|
- refundOrder.setRfCpn1Amt(Integer.parseInt(mav.get("spanCpn1DcAmt").toString()));
|
|
|
|
|
- refundOrder.setRfTmtb1Amt(Integer.parseInt(mav.get("spanTmtb1DcAmt").toString()));
|
|
|
|
|
- refundOrder.setRfTmtb2Amt(Integer.parseInt(mav.get("spanTmtb2DcAmt").toString()));
|
|
|
|
|
- refundOrder.setRfGoodsCpnAmt(Integer.parseInt(mav.get("spanGoodsCpnDcAmt").toString()));
|
|
|
|
|
- refundOrder.setRfCartCpnAmt(Integer.parseInt(mav.get("spanCartCpnDcAmt").toString()));
|
|
|
|
|
- refundOrder.setRfPntAmt(Integer.parseInt(mav.get("spanPntDcAmt").toString()));
|
|
|
|
|
- refundOrder.setRfPrePntAmt(Integer.parseInt(mav.get("spanPrePntDcAmt").toString()));
|
|
|
|
|
- refundOrder.setRfGfcdUseAmt(Integer.parseInt(mav.get("spanGfcdUseAmt").toString()));
|
|
|
|
|
-
|
|
|
|
|
- refundOrder.setRaNo(mav.get("accountNo").toString());
|
|
|
|
|
- refundOrder.setRaNm(mav.get("accountNm").toString());
|
|
|
|
|
- refundOrder.setRaBank(mav.get("bankCd").toString());
|
|
|
|
|
-
|
|
|
|
|
- //orderChangeDao.createRefund(refundOrder);
|
|
|
|
|
-
|
|
|
|
|
- // 8. 결제금액이 무료배송금액보다 작으면 배송비 신규 등록
|
|
|
|
|
- for (int i=0 ; i<cancelDelvRefundList.size() ; i++) {
|
|
|
|
|
- Order vo = cancelDelvRefundList.get(i);
|
|
|
|
|
|
|
+ // 취소금액이 있을때 처리
|
|
|
|
|
+ if (obj.getCnclRtnAmt() > 0) {
|
|
|
|
|
|
|
|
- if (vo.getAddDelvFee() > 0) {
|
|
|
|
|
- Order delvFeeOrder = new Order();
|
|
|
|
|
-
|
|
|
|
|
- delvFeeOrder.setPaySq(paymentOrder.getPaySq());
|
|
|
|
|
- delvFeeOrder.setOrdNo(ordNo);
|
|
|
|
|
- delvFeeOrder.setDelvFeeGb("G018_10");
|
|
|
|
|
- delvFeeOrder.setDelvFeeCd(vo.getDelvFeeCd());
|
|
|
|
|
- delvFeeOrder.setDelvFee(vo.getAddDelvFee());
|
|
|
|
|
- delvFeeOrder.setRealDelvAmt(vo.getDelvFee());
|
|
|
|
|
- delvFeeOrder.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
|
|
- delvFeeOrder.setSupplyCompCd(vo.getSupplyCompCd());
|
|
|
|
|
- delvFeeOrder.setRegNo(userNo);
|
|
|
|
|
- delvFeeOrder.setUpdNo(userNo);
|
|
|
|
|
-
|
|
|
|
|
- //orderChangeDao.createDeliveryFee(delvFeeOrder);
|
|
|
|
|
|
|
+ // 5.1 주문변경 기본정보 등록
|
|
|
|
|
+ OrderChange orderChange = new OrderChange();
|
|
|
|
|
+ orderChange.setOrdNo(ordNo);
|
|
|
|
|
+ orderChange.setChgGb(chgGb);
|
|
|
|
|
+ orderChange.setChgReason(chgReason);
|
|
|
|
|
+ orderChange.setChgMemo(chgMemo);
|
|
|
|
|
+ orderChange.setAddPayCost(0);
|
|
|
|
|
+ orderChange.setAddPayAmt(0);
|
|
|
|
|
+ orderChange.setRegNo(userNo);
|
|
|
|
|
+ orderChange.setUpdNo(userNo);
|
|
|
|
|
+
|
|
|
|
|
+ // 5.2 주문변경 추가정보 등록
|
|
|
|
|
+ String chgerNm = mav.getString("chgerNm").toString(); // 변경자
|
|
|
|
|
+ String chgerPhnno = mav.getString("chgerPhnno").toString(); // 변경핸드폰번호
|
|
|
|
|
+ String chgerTelno = mav.getString("chgerTelno").toString(); // 변경전화번호
|
|
|
|
|
+ String chgerEmail = mav.getString("chgerEmail").toString(); // 변경이메일
|
|
|
|
|
+ String chgerZipNo = mav.getString("chgerZipNo").toString(); // 변경우편번호
|
|
|
|
|
+ String chgerBaseAddr = mav.getString("chgerBaseAddr").toString(); // 변경기본주소
|
|
|
|
|
+ String chgerDtlAddr = mav.getString("chgerDtlAddr").toString(); // 변경상세주소
|
|
|
|
|
+
|
|
|
|
|
+ orderChange.setChgerNm(chgerNm);
|
|
|
|
|
+ orderChange.setChgerPhnno(chgerPhnno);
|
|
|
|
|
+ orderChange.setChgerTelno(chgerTelno);
|
|
|
|
|
+ orderChange.setChgerEmail(chgerEmail);
|
|
|
|
|
+ orderChange.setChgerRtnMemo("");
|
|
|
|
|
+ orderChange.setChgerZipNo(chgerZipNo);
|
|
|
|
|
+ orderChange.setChgerBaseAddr(chgerBaseAddr);
|
|
|
|
|
+ orderChange.setChgerDtlAddr(chgerDtlAddr);
|
|
|
|
|
+ orderChange.setChgerRtnMemo("");
|
|
|
|
|
+
|
|
|
|
|
+ orderChangeDao.createOrderChange(orderChange);
|
|
|
|
|
+
|
|
|
|
|
+ // 5.3 주문상세단위 취소정보
|
|
|
|
|
+ for (int j=0 ; j<cancelOrderDetailList.size() ; j++) {
|
|
|
|
|
+ Order vo = cancelOrderRefundList.get(j);
|
|
|
|
|
+ vo.setRegNo(userNo);
|
|
|
|
|
+ vo.setUpdNo(userNo);
|
|
|
|
|
+ vo.setOrdDtlStat(TscConstants.OrderChangeStat.RETURN.value()); // 반품신청
|
|
|
|
|
+
|
|
|
|
|
+ // 5.3.0 DEVL_FEE_CD 단위로 주문상세 정보 처리
|
|
|
|
|
+ if (obj.getDelvFeeCd().equals(vo.getDelvFeeCd())) {
|
|
|
|
|
+
|
|
|
|
|
+ // 5.3.1 주문변경상세정보 이력등록
|
|
|
|
|
+ orderChangeDao.createOrderDetailHstCnclRtn(vo);
|
|
|
|
|
+
|
|
|
|
|
+ // * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음 주문상세단위로 수정
|
|
|
|
|
+ // 5.3 주문변경상세정보 등록
|
|
|
|
|
+ OrderChange changeDetailPo = new OrderChange();
|
|
|
|
|
+ changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
|
|
+ changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
|
|
|
|
|
+ changeDetailPo.setChgQty(vo.getOrdCanChgQty());
|
|
|
|
|
+ changeDetailPo.setChgStat(TscConstants.OrderChangeStat.RETURN.value()); // 반품신청
|
|
|
|
|
+ changeDetailPo.setRegNo(userNo);
|
|
|
|
|
+ changeDetailPo.setUpdNo(userNo);
|
|
|
|
|
+
|
|
|
|
|
+ orderChangeDao.createOrderChangeDetail(changeDetailPo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 5.4 환불금액 등록
|
|
|
|
|
+ Order refundOrder = new Order();
|
|
|
|
|
+ refundOrder.setOrdNo(ordNo);
|
|
|
|
|
+ refundOrder.setPaySq(0);
|
|
|
|
|
+ refundOrder.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
|
|
+ refundOrder.setRegNo(userNo);
|
|
|
|
|
+
|
|
|
|
|
+ refundOrder.setRefundAmt(Integer.parseInt(mav.get("spanRefundAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfCpn1Amt(Integer.parseInt(mav.get("spanCpn1DcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfTmtb1Amt(Integer.parseInt(mav.get("spanTmtb1DcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfTmtb2Amt(Integer.parseInt(mav.get("spanTmtb2DcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfGoodsCpnAmt(Integer.parseInt(mav.get("spanGoodsCpnDcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfCartCpnAmt(Integer.parseInt(mav.get("spanCartCpnDcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfPntAmt(Integer.parseInt(mav.get("spanPntDcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfPrePntAmt(Integer.parseInt(mav.get("spanPrePntDcAmt").toString()));
|
|
|
|
|
+ refundOrder.setRfGfcdUseAmt(Integer.parseInt(mav.get("spanGfcdUseAmt").toString()));
|
|
|
|
|
+
|
|
|
|
|
+ refundOrder.setRaNo(mav.get("accountNo").toString());
|
|
|
|
|
+ refundOrder.setRaNm(mav.get("accountNm").toString());
|
|
|
|
|
+ refundOrder.setRaBank(mav.get("bankCd").toString());
|
|
|
|
|
+
|
|
|
|
|
+ orderChangeDao.createRefund(refundOrder);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // To Do List
|
|
|
|
|
- // 9. 포인트원복 (사용포인트, 주문상세단위)
|
|
|
|
|
-
|
|
|
|
|
- // To Do List
|
|
|
|
|
- // 10. 쿠폰원복 (상품쿠폰, 주문상세단위) (전체취소시 장바구니쿠폰, 배송비쿠폰)
|
|
|
|
|
-
|
|
|
|
|
- // To Do List
|
|
|
|
|
- // 11. 상품권원복
|
|
|
|
|
-
|
|
|
|
|
- // 12. 사은품 전체 취소 (전체취소시 적용) 추후 사은품 관련 취소 로직 개발 예정
|
|
|
|
|
- Order freegiftOrder = new Order();
|
|
|
|
|
- freegiftOrder.setOrdNo(ordNo);
|
|
|
|
|
- freegiftOrder.setUpdNo(userNo);
|
|
|
|
|
- //orderChangeDao.updateOrdFreegiftDel(freegiftOrder);
|
|
|
|
|
-
|
|
|
|
|
- // To Do List
|
|
|
|
|
- // 13. PG 연동
|
|
|
|
|
-
|
|
|
|
|
- // To Do List
|
|
|
|
|
- // 14. 취소 완료 알림톡 발송 에정
|
|
|
|
|
-
|
|
|
|
|
- //int a = 100/0;
|
|
|
|
|
-
|
|
|
|
|
return mav;
|
|
return mav;
|
|
|
}
|
|
}
|
|
|
|
|
|