|
|
@@ -14,6 +14,7 @@ import com.gagaframework.web.rest.server.GagaResponseStatus;
|
|
|
import com.style24.core.biz.dao.TscOrderChangeDao;
|
|
|
import com.style24.core.biz.dao.TscOrderDao;
|
|
|
import com.style24.core.support.env.TscConstants;
|
|
|
+import com.style24.core.support.message.TscMessageByLocale;
|
|
|
import com.style24.persistence.domain.DeliveryFee;
|
|
|
import com.style24.persistence.domain.Order;
|
|
|
import com.style24.persistence.domain.OrderChange;
|
|
|
@@ -31,6 +32,9 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
@Slf4j
|
|
|
public class TscOrderChangeService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TscMessageByLocale message;
|
|
|
+
|
|
|
@Autowired
|
|
|
private TscOrderChangeDao orderChangeDao;
|
|
|
|
|
|
@@ -925,13 +929,15 @@ public class TscOrderChangeService {
|
|
|
// 회사사유 : 환불금액계산 = (취소금액 + 배송비)
|
|
|
else {
|
|
|
spanRefundAmt = (spanRealCnclRtnAmt + sumDeliveryFee);
|
|
|
+ spanTotDeliveryFee = 0;
|
|
|
+ spanTotRtnDelvFee = 0;
|
|
|
}
|
|
|
|
|
|
// 추가배송비 발생 시 반품대기 상태 처리
|
|
|
if (addDelvFee > 0) {
|
|
|
chgStat = TscConstants.OrderChangeStat.RETURN_WAIT.value();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 3-2. 주문변경정보 생성
|
|
|
OrderChange orderChange = new OrderChange();
|
|
|
orderChange.setOrdNo(ordNo);
|
|
|
@@ -955,7 +961,29 @@ public class TscOrderChangeService {
|
|
|
|
|
|
orderChangeDao.createOrderChange(orderChange);
|
|
|
|
|
|
- // 3-3. 주문상세정보 수정
|
|
|
+ // 3-3. TB_DELIVERY_FEE 추가배송비 등록
|
|
|
+ // 반품배송비 등록
|
|
|
+ Order deliveryFee = new Order();
|
|
|
+ deliveryFee.setOrdNo(ordNo);
|
|
|
+ deliveryFee.setDelvFeeCd(obj.getDelvFeeCd());
|
|
|
+ deliveryFee.setOrdChgSq(orderChange.getOrdChgSq());
|
|
|
+ deliveryFee.setSupplyCompCd(obj.getSupplyCompCd());
|
|
|
+ deliveryFee.setDelvFeeGb(TscConstants.DeliveryFeeGb.RETURN_DELIVERY_FEE.value());
|
|
|
+ deliveryFee.setDelvFee(spanTotRtnDelvFee);
|
|
|
+ deliveryFee.setRealDelvAmt(spanTotRtnDelvFee);
|
|
|
+ deliveryFee.setRegNo(custNo);
|
|
|
+ deliveryFee.setUpdNo(custNo);
|
|
|
+
|
|
|
+ orderChangeDao.createDeliveryFee(deliveryFee);
|
|
|
+
|
|
|
+ // 추가배송비 등록
|
|
|
+ deliveryFee.setDelvFeeGb(TscConstants.DeliveryFeeGb.ORIGIN_DELIVERY_FEE.value());
|
|
|
+ deliveryFee.setDelvFee(spanTotDeliveryFee);
|
|
|
+ deliveryFee.setRealDelvAmt(spanTotDeliveryFee);
|
|
|
+
|
|
|
+ orderChangeDao.createDeliveryFee(deliveryFee);
|
|
|
+
|
|
|
+ // 3-4. 주문상세정보 수정
|
|
|
ordChgSq = orderChange.getOrdChgSq();
|
|
|
for (Order vo : cancelOrderDetailList) {
|
|
|
// 배송정책코드 별 주문상세 처리
|
|
|
@@ -977,7 +1005,7 @@ public class TscOrderChangeService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 3-4. 환불정보 등록
|
|
|
+ // 3-5. 환불정보 등록
|
|
|
Order refundOrder = new Order();
|
|
|
refundOrder.setOrdNo(ordNo);
|
|
|
refundOrder.setPaySq(0);
|
|
|
@@ -1264,11 +1292,13 @@ public class TscOrderChangeService {
|
|
|
result.set("status", GagaResponseStatus.FAIL.getCode());
|
|
|
|
|
|
// 교환 기본 정보
|
|
|
+ int ordNo = excReq.getOrdNo(); // 주문번호
|
|
|
int addPayCost = excReq.getAddPayCost(); // 추가배송비
|
|
|
String wdGb = excReq.getWdGb(); // 회수구분
|
|
|
String wdInvoiceNo = excReq.getWdInvoiceNo(); // 회수송장번호
|
|
|
Integer regNo = excReq.getRegNo(); // 등록자번호
|
|
|
Integer updNo = excReq.getUpdNo(); // 수정자번호
|
|
|
+ int ordChgSq; // 주문변경일련번호
|
|
|
|
|
|
// 교환신청 목록 설정
|
|
|
Collection<Order> excReqList = excReq.getCancelReqList();
|
|
|
@@ -1279,11 +1309,17 @@ public class TscOrderChangeService {
|
|
|
|
|
|
if (addPayCost > 0) { // 프론트 결제 여부 체크 필요
|
|
|
orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE_WAIT.value();
|
|
|
- ordDtlStat = TscConstants.OrderDetailStat.PAYMENT_WAIT.value();
|
|
|
}
|
|
|
|
|
|
// 1. 재고 체크 (세트아이템 포함)
|
|
|
+ for (Order order : excReqList) {
|
|
|
+ Order currStockQty = orderChangeDao.getCurrStockQty(order);
|
|
|
|
|
|
+ if ((currStockQty.getCurrStockQty() < (order.getChgQty() * currStockQty.getItemQty()))
|
|
|
+ || "Y".equals(currStockQty.getSoldoutYn())) {
|
|
|
+ throw new IllegalStateException(message.getMessage("EXCHANGE_0003"));
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// 2. TB_DELIVERY_ADDR 등록
|
|
|
Order deliveryAddr = new Order();
|
|
|
@@ -1305,7 +1341,7 @@ public class TscOrderChangeService {
|
|
|
// 교환대상 정보 등록
|
|
|
int preOrdDtlNo = 0;
|
|
|
String preDelvFeeCd = "";
|
|
|
- int ordChgSq = 0;
|
|
|
+ ordChgSq = 0;
|
|
|
int exchangeOrdDtlNo = 0;
|
|
|
|
|
|
for (Order order : excReqList) {
|
|
|
@@ -1345,27 +1381,40 @@ public class TscOrderChangeService {
|
|
|
log.info("############# ordChgSq >>> {} ##############", ordChgSq);
|
|
|
|
|
|
// 4. TB_DELIVERY_FEE 추가배송비 등록
|
|
|
- int delvFee = 0;
|
|
|
-
|
|
|
- if ("true".equals(excReq.getIsCustomer())) {
|
|
|
- delvFee = "W".equals(wdGb) ? order.getExcDelvFee() : order.getRtnDelvFee();
|
|
|
- }
|
|
|
+ int rtnDelvFee = 0;
|
|
|
+ int excDelvFee = 0;
|
|
|
|
|
|
Order deliveryFee = new Order();
|
|
|
deliveryFee.setOrdNo(excReq.getOrdNo());
|
|
|
- deliveryFee.setDelvFeeGb(TscConstants.DeliveryFeeGb.EXCHANGE_DELIVERY_FEE.value());
|
|
|
deliveryFee.setDelvFeeCd(delvFeeCd);
|
|
|
- deliveryFee.setDelvFee(delvFee);
|
|
|
- deliveryFee.setRealDelvAmt(delvFee);
|
|
|
deliveryFee.setOrdChgSq(ordChgSq);
|
|
|
deliveryFee.setSupplyCompCd(order.getSupplyCompCd());
|
|
|
deliveryFee.setRegNo(regNo);
|
|
|
deliveryFee.setUpdNo(updNo);
|
|
|
|
|
|
+ // 반품, 교환 배송비 설정
|
|
|
+ if ("true".equals(excReq.getIsCustomer())) {
|
|
|
+ rtnDelvFee = order.getRtnDelvFee();
|
|
|
+ excDelvFee = order.getExcDelvFee() - rtnDelvFee;
|
|
|
+
|
|
|
+ if ("D".equals(wdGb)) {
|
|
|
+ rtnDelvFee = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 반품배송비 등록
|
|
|
+ deliveryFee.setDelvFeeGb(TscConstants.DeliveryFeeGb.RETURN_DELIVERY_FEE.value());
|
|
|
+ deliveryFee.setDelvFee(rtnDelvFee);
|
|
|
+ deliveryFee.setRealDelvAmt(rtnDelvFee);
|
|
|
+
|
|
|
orderChangeDao.createDeliveryFee(deliveryFee);
|
|
|
|
|
|
- // TODO
|
|
|
- // 추가배송비 결제 여부 확인 후 TB_PAYMENT 생성
|
|
|
+ // 교환배송비 등록
|
|
|
+ deliveryFee.setDelvFeeGb(TscConstants.DeliveryFeeGb.EXCHANGE_DELIVERY_FEE.value());
|
|
|
+ deliveryFee.setDelvFee(excDelvFee);
|
|
|
+ deliveryFee.setRealDelvAmt(excDelvFee);
|
|
|
+
|
|
|
+ orderChangeDao.createDeliveryFee(deliveryFee);
|
|
|
}
|
|
|
|
|
|
if (preOrdDtlNo != ordDtlNo) {
|
|
|
@@ -1400,6 +1449,7 @@ public class TscOrderChangeService {
|
|
|
orderChangeDetail.setUpdNo(updNo);
|
|
|
|
|
|
orderChangeDao.createOrderChangeDetail(orderChangeDetail);
|
|
|
+ orderChangeDao.createOrderChangeDetailHst(orderChangeDetail);
|
|
|
|
|
|
preOrdDtlNo = ordDtlNo;
|
|
|
}
|
|
|
@@ -1428,6 +1478,8 @@ public class TscOrderChangeService {
|
|
|
orderChangeDao.createSellQtyForExchange(sellQty);
|
|
|
|
|
|
result.set("status", GagaResponseStatus.SUCCESS.getCode());
|
|
|
+ result.set("ordNo", ordNo);
|
|
|
+ result.set("ordChgSq", ordChgSq);
|
|
|
|
|
|
return result;
|
|
|
}
|