|
|
@@ -727,6 +727,7 @@ public class TscOrderChangeService {
|
|
|
* @author jsh77b
|
|
|
* @since 2021. 01. 19
|
|
|
*/
|
|
|
+ @Transactional("shopTxnManager")
|
|
|
public GagaMap exchReq(OrderChange excReq) {
|
|
|
GagaMap result = new GagaMap();
|
|
|
result.set("status", GagaResponseStatus.FAIL.getCode());
|
|
|
@@ -758,82 +759,123 @@ public class TscOrderChangeService {
|
|
|
String recipBaseAddr = excReq.getRecipBaseAddr();
|
|
|
String recipDtlAddr = excReq.getRecipDtlAddr();
|
|
|
|
|
|
- //
|
|
|
+ // 교환신청 목록 설정
|
|
|
Collection<Order> excReqList = excReq.getCancelReqList();
|
|
|
+
|
|
|
+ // 추가배송비 관련 상태값 설정
|
|
|
+ String orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE.value();
|
|
|
+ String ordDtlStat = TscConstants.OrderDetailStat.REFUND_CONFIRM_WAIT.value();
|
|
|
+
|
|
|
+ if (addPayCost > 0) {
|
|
|
+ orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE_WAIT.value();
|
|
|
+ ordDtlStat = TscConstants.OrderDetailStat.PAYMENT_WAIT.value();
|
|
|
+ }
|
|
|
|
|
|
// 1. 재고 체크 (세트아이템 포함)
|
|
|
-
|
|
|
|
|
|
- // 2. 교환상품 주문 상세 등록
|
|
|
+
|
|
|
+ // 2. TB_DELIVERY_ADDR 등록
|
|
|
+ Order deliveryAddr = new Order();
|
|
|
+ deliveryAddr.setRecipNm(excReq.getRecipNm());
|
|
|
+ deliveryAddr.setRecipPhnno(excReq.getRecipPhnno());
|
|
|
+ deliveryAddr.setRecipTelno(excReq.getRecipTelno());
|
|
|
+ deliveryAddr.setRecipZipcode(excReq.getRecipZipcode());
|
|
|
+ deliveryAddr.setRecipBaseAddr(excReq.getRecipBaseAddr());
|
|
|
+ deliveryAddr.setRecipDtlAddr(excReq.getRecipDtlAddr());
|
|
|
+ deliveryAddr.setDelvMemo(excReq.getDelvMemo());
|
|
|
+ deliveryAddr.setRegNo(excReq.getRegNo());
|
|
|
+ deliveryAddr.setUpdNo(excReq.getUpdNo());
|
|
|
+
|
|
|
+ orderDao.createDeliveryAddr(deliveryAddr);
|
|
|
+
|
|
|
+ int delvAddrSq = deliveryAddr.getDelvAddrSq();
|
|
|
+
|
|
|
+ // 3. TB_ORDER_CHANGE 등록
|
|
|
int preOrdDtlNo = 0;
|
|
|
+ String preDelvFeeCd = "";
|
|
|
+ int ordChgSq = 0;
|
|
|
for (Order order : excReqList) {
|
|
|
+ String delvFeeCd = order.getDelvFeeCd();
|
|
|
+
|
|
|
+ if (!preDelvFeeCd.equals(delvFeeCd)) {
|
|
|
+ OrderChange orderChange = new OrderChange();
|
|
|
+ orderChange.setChgGb(TscConstants.OrderChangeGb.EXCHANGE.value());
|
|
|
+ orderChange.setChgReason(excReq.getChgReason());
|
|
|
+ orderChange.setChgMemo(excReq.getChgMemo());
|
|
|
+ orderChange.setChgerNm(excReq.getChgerNm());
|
|
|
+ orderChange.setChgerPhnno(excReq.getChgerPhnno());
|
|
|
+ orderChange.setChgerTelno(excReq.getChgerTelno());
|
|
|
+ orderChange.setChgerEmail(excReq.getChgerEmail());
|
|
|
+ orderChange.setChgerZipcode(excReq.getChgerZipcode());
|
|
|
+ orderChange.setChgerBaseAddr(excReq.getChgerBaseAddr());
|
|
|
+ orderChange.setChgerDtlAddr(excReq.getChgerDtlAddr());
|
|
|
+ orderChange.setChgerRtnMemo(excReq.getChgerRtnMemo());
|
|
|
+ orderChange.setAddPayCost(excReq.getAddPayCost());
|
|
|
+ orderChange.setAddPayAmt(excReq.getAddPayAmt());
|
|
|
+ orderChange.setRegNo(excReq.getRegNo());
|
|
|
+ orderChange.setUpdNo(excReq.getUpdNo());
|
|
|
+
|
|
|
+ orderChangeDao.createOrderChange(orderChange);
|
|
|
+
|
|
|
+ preDelvFeeCd = delvFeeCd;
|
|
|
+
|
|
|
+ // 생성된 ordChgSq 설정
|
|
|
+ ordChgSq = orderChange.getOrdChgSq();
|
|
|
+
|
|
|
+ // 3. TB_DELIVERY_FEE 추가배송비 등록
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2. 교환대상 정보 등록
|
|
|
int ordDtlNo = order.getOrdDtlNo();
|
|
|
+ int exchangeOrdDtlNo = 0;
|
|
|
|
|
|
if (preOrdDtlNo != ordDtlNo) {
|
|
|
- // 2. TB_ORDER_DETAIL 등록
|
|
|
+ // 2-1. TB_ORDER_DETAIL 등록
|
|
|
Order ordDtl = new Order();
|
|
|
- ordDtl.setOrdDtlNo(order.getOrdDtlNo());
|
|
|
- ordDtl.setOrdDtlStat(TscConstants.OrderDetailStat.WITHDRAW_CONFIRM_WAIT.value());
|
|
|
+ ordDtl.setOrdDtlNo(ordDtlNo);
|
|
|
+ ordDtl.setOrdDtlStat(ordDtlStat);
|
|
|
ordDtl.setChgQty(order.getChgQty());
|
|
|
+ ordDtl.setDelvAddrSq(delvAddrSq);
|
|
|
ordDtl.setRegNo(order.getRegNo());
|
|
|
ordDtl.setUpdNo(order.getUpdNo());
|
|
|
orderDao.createOrderDetailForExchange(ordDtl);
|
|
|
|
|
|
- // 3. TB_ORDER_DETAIL_HST 등록
|
|
|
+ // 2-2. TB_ORDER_DETAIL_HST 등록
|
|
|
orderDao.createOrderDetailHstForExchange(ordDtl);
|
|
|
|
|
|
preOrdDtlNo = ordDtlNo;
|
|
|
+ exchangeOrdDtlNo = ordDtl.getExchangeOrdDtlNo();
|
|
|
+
|
|
|
+ // 2-3. TB_ORDER_CHANGE_DETAIL 등록
|
|
|
+ OrderChange orderChangeDetail = new OrderChange();
|
|
|
+ orderChangeDetail.setOrdChgSq(ordChgSq);
|
|
|
+ orderChangeDetail.setOrdDtlNo(ordDtlNo);
|
|
|
+ orderChangeDetail.setChgQty(order.getChgQty());
|
|
|
+ orderChangeDetail.setChgStat(orderChangeStat);
|
|
|
+ orderChangeDetail.setChgOrdDtlNo(exchangeOrdDtlNo);
|
|
|
+ orderChangeDetail.setRegNo(order.getRegNo());
|
|
|
+ orderChangeDetail.setUpdNo(order.getUpdNo());
|
|
|
}
|
|
|
|
|
|
- // 4. TB_ORDER_DETAIL_ITEM 등록
|
|
|
+ // 2-4. TB_ORDER_DETAIL_ITEM 등록
|
|
|
Order ordDtlItem = new Order();
|
|
|
ordDtlItem.setOrdDtlItemSq(order.getOrdDtlItemSq());
|
|
|
- ordDtlItem.setOrdDtlNo(order.getOrdDtlNo());
|
|
|
- ordDtlItem.setOrdDtlStat(TscConstants.OrderDetailStat.WITHDRAW_CONFIRM_WAIT.value());
|
|
|
+ ordDtlItem.setOrdDtlNo(ordDtlNo);
|
|
|
+ ordDtlItem.setOrdDtlStat(ordDtlStat);
|
|
|
ordDtlItem.setOrdChgOpt(order.getOrdChgOpt());
|
|
|
ordDtlItem.setRegNo(order.getRegNo());
|
|
|
ordDtlItem.setUpdNo(order.getUpdNo());
|
|
|
|
|
|
orderDao.createOrderDetailItemForExchange(ordDtlItem);
|
|
|
|
|
|
- // 5. TB_ORDER_DETAIL_ITEM_HST 등록
|
|
|
+ // 2-5. TB_ORDER_DETAIL_ITEM_HST 등록
|
|
|
orderDao.createOrderDetailItemHstForExchange(ordDtlItem);
|
|
|
- }
|
|
|
-
|
|
|
- // 6. TB_ORDER_CHANGE 등록
|
|
|
- OrderChange orderChange = new OrderChange();
|
|
|
- orderChange.setChgGb(TscConstants.OrderChangeGb.EXCHANGE.value());
|
|
|
- orderChange.setChgReason(excReq.getChgReason());
|
|
|
- orderChange.setChgMemo(excReq.getChgMemo());
|
|
|
- orderChange.setChgerNm(excReq.getChgerNm());
|
|
|
- orderChange.setChgerPhnno(excReq.getChgerPhnno());
|
|
|
- orderChange.setChgerTelno(excReq.getChgerTelno());
|
|
|
- orderChange.setChgerEmail(excReq.getChgerEmail());
|
|
|
- orderChange.setChgerZipcode(excReq.getChgerZipcode());
|
|
|
- orderChange.setChgerBaseAddr(excReq.getChgerBaseAddr());
|
|
|
- orderChange.setChgerDtlAddr(excReq.getChgerDtlAddr());
|
|
|
- orderChange.setChgerRtnMemo(excReq.getChgerRtnMemo());
|
|
|
- orderChange.setAddPayCost(excReq.getAddPayCost());
|
|
|
- orderChange.setAddPayAmt(excReq.getAddPayAmt());
|
|
|
- orderChange.setRegNo(excReq.getRegNo());
|
|
|
- orderChange.setUpdNo(excReq.getUpdNo());
|
|
|
-
|
|
|
- orderChangeDao.createOrderChange(orderChange);
|
|
|
-
|
|
|
- // 생성된 ordChgSq 설정
|
|
|
- excReq.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
|
|
|
- // 7. TB_ORDER_CHANGE_DETAIL 등록
|
|
|
- String orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE.value();
|
|
|
-
|
|
|
- if (addPayCost > 0) {
|
|
|
- orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE_WAIT.value();
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- // 8. TB_DELIVERY_FEE 추가배송비 등록
|
|
|
-
|
|
|
- // 9. TB_SELL_QTY 등록
|
|
|
-
|
|
|
+ // 4. TB_SELL_QTY 등록
|
|
|
|
|
|
result.set("status", GagaResponseStatus.SUCCESS.getCode());
|
|
|
|