|
|
@@ -701,6 +701,13 @@ public class TscOrderService {
|
|
|
return orderDao.getDelvCpnList(order);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 상품단위 상품쿠폰 등록
|
|
|
+ *
|
|
|
+ * @param Order
|
|
|
+ * @author jsh77b
|
|
|
+ * @since 2021. 02. 02
|
|
|
+ */
|
|
|
public Collection<Order> getGoodsCpnApplyList(Collection<Order> tmtbGoodsApplyList, Collection<Order> goodsCpnAllList) {
|
|
|
Collection<Order> goodsApplyCpnList = new ArrayList<Order>();
|
|
|
|
|
|
@@ -730,7 +737,7 @@ public class TscOrderService {
|
|
|
goodsCpn.setCpnId(goodsCpnAll.getCpnId());
|
|
|
goodsCpn.setGoodsCd(tmtbGoods.getGoodsCd());
|
|
|
goodsCpn.setCpnNm(goodsCpnAll.getCpnNm());
|
|
|
-
|
|
|
+ goodsCpn.setCustCpnSq(goodsCpnAll.getCustCpnSq());
|
|
|
|
|
|
// 5. 할인방식 금액, 율 판단
|
|
|
// 할인금액 (G240_10)
|
|
|
@@ -772,6 +779,32 @@ public class TscOrderService {
|
|
|
return goodsApplyCpnList;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 장바구니쿠폰단위 상품 등록
|
|
|
+ *
|
|
|
+ * @param Order
|
|
|
+ * @author jsh77b
|
|
|
+ * @since 2021. 02. 02
|
|
|
+ */
|
|
|
+ public Collection<Order> getCartCpnApplyList(Collection<Order> tmtbGoodsApplyList, Collection<Order> cartCpnAllList) {
|
|
|
+ Collection<Order> cartApplyCpnList = new ArrayList<Order>();
|
|
|
+
|
|
|
+ // 1. 쿠폰대상이 있는 상품만 정리
|
|
|
+ for (Order cartCpn : cartCpnAllList) {
|
|
|
+ List<Order> cartCpnGoodsList = new ArrayList<Order>();
|
|
|
+
|
|
|
+ for (Order tmtbGoods : tmtbGoodsApplyList) {
|
|
|
+ if ("A".equals(cartCpn.getApplyScope()) || tmtbGoods.getGoodsCd().equals(cartCpn.getGoodsCd())) {
|
|
|
+ cartCpnGoodsList.add(tmtbGoods);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ cartCpn.setCartCpnGoodsList(cartCpnGoodsList);
|
|
|
+ cartApplyCpnList.add(cartCpn);
|
|
|
+ }
|
|
|
+
|
|
|
+ return cartApplyCpnList;
|
|
|
+ }
|
|
|
+
|
|
|
// 쿠폰할인금액이 높은순으로 정렬 함수
|
|
|
private List<Order> getListSort(List<Order> goodsCpnList) {
|
|
|
int cnt = 0;
|
|
|
@@ -821,6 +854,40 @@ public class TscOrderService {
|
|
|
return orderDao.getDailyDeliveryZoneInfo(order);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 배송단위별 장바구니 상품 건수 조회
|
|
|
+ *
|
|
|
+ * @param Order
|
|
|
+ * @author jsh77b
|
|
|
+ * @since 2021. 02. 02
|
|
|
+ */
|
|
|
+ @SuppressWarnings({ "unchecked", "rawtypes" })
|
|
|
+ public GagaMap getGoodsDcAmt(Collection<Order> tmtbGoodsApplyList) {
|
|
|
+
|
|
|
+ GagaMap resultMap = new GagaMap();
|
|
|
+
|
|
|
+ int prePntDcAmt = 0;
|
|
|
+ int goodsSumAmt = 0;
|
|
|
+ int tmtbDcSumAmt = 0;
|
|
|
+
|
|
|
+ // 상품금액, 배송비, 할인금액, 다다익선할인금액, 쿠폰할인금액, 선포인트사용, 포인트사용, 상품권사용
|
|
|
+ for (Order tmtbGoodsApply : tmtbGoodsApplyList) {
|
|
|
+ prePntDcAmt = prePntDcAmt + tmtbGoodsApply.getPrePntDcAmt();
|
|
|
+ goodsSumAmt = goodsSumAmt + ((tmtbGoodsApply.getCurrPrice() + tmtbGoodsApply.getOptAddPrice()) * tmtbGoodsApply.getGoodsQty());
|
|
|
+
|
|
|
+ // 다다익선 할인금액이 있을때 적용
|
|
|
+ if (tmtbGoodsApply.getTmtbDcAmt() > 0) {
|
|
|
+ tmtbDcSumAmt = tmtbDcSumAmt + (((tmtbGoodsApply.getCurrPrice() + tmtbGoodsApply.getOptAddPrice()) * tmtbGoodsApply.getGoodsQty()) - tmtbGoodsApply.getTmtbDcAmt());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ resultMap.set("prePntDcAmt" , prePntDcAmt);
|
|
|
+ resultMap.set("goodsSumAmt" , goodsSumAmt);
|
|
|
+ resultMap.set("tmtbDcSumAmt" , tmtbDcSumAmt);
|
|
|
+
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 배송단위별 장바구니 상품 건수 조회
|
|
|
*
|
|
|
@@ -844,6 +911,11 @@ public class TscOrderService {
|
|
|
Collection<Order> resCartList = (Collection<Order>)new ArrayList();
|
|
|
Collection<Order> delvCartList = (Collection<Order>)new ArrayList();
|
|
|
|
|
|
+ List<Order> delvFeeCdList = (ArrayList<Order>)new ArrayList();
|
|
|
+ int ordAmt = 0; // 주문금액
|
|
|
+ int sumOrdAmt = 0; // 배송단위 주문합계금액
|
|
|
+ int sumDelvFee = 0; // 전체배송금액
|
|
|
+
|
|
|
for (Order order : cartGoodsList) {
|
|
|
|
|
|
// 1.1 세트상품 옵션별 배열로 담기
|
|
|
@@ -852,7 +924,7 @@ public class TscOrderService {
|
|
|
order.setOptCdArr(order.getOptCd().split(","));
|
|
|
order.setItemQtyArr(order.getItemQtyr().split(","));
|
|
|
} else {
|
|
|
- String[] arr = {order.getItemNm()}, arr2 = {order.getOptCd()},arr3 = {order.getItemQtyr()};
|
|
|
+ String[] arr = {order.getItemNm()}, arr2 = {order.getOptCd()}, arr3 = {order.getItemQtyr()};
|
|
|
order.setItemNmArr(arr);
|
|
|
order.setOptCdArr(arr2);
|
|
|
order.setItemQtyArr(arr3);
|
|
|
@@ -862,20 +934,67 @@ public class TscOrderService {
|
|
|
order.setCurrPrice(order.getCurrPrice() * order.getGoodsQty());
|
|
|
|
|
|
// 1.3 배송정책별 상품 구분
|
|
|
+ // 1.3.1 자사일반배송
|
|
|
if ("WMS".equals(order.getResDelvFeeCd())) {
|
|
|
wmsCartList.add(order);
|
|
|
wmsCnt++;
|
|
|
}
|
|
|
+ // 1.3.2 자사예약배송
|
|
|
else if ("RES".equals(order.getResDelvFeeCd())) {
|
|
|
resCartList.add(order);
|
|
|
resCnt++;
|
|
|
}
|
|
|
+ // 1.3.3 입점업체일반배송
|
|
|
else {
|
|
|
delvCartList.add(order);
|
|
|
delvCnt++;
|
|
|
}
|
|
|
+ delvTotCnt++;
|
|
|
|
|
|
- delvTotCnt++;
|
|
|
+ // 1.4 배송단위별 배송비 설정
|
|
|
+ ordAmt = (order.getCurrPrice() + order.getOptAddPrice()) * order.getGoodsQty(); // 주문금액
|
|
|
+ Boolean temp = false;
|
|
|
+
|
|
|
+ // 1.4.1 업체별 배송비 합계
|
|
|
+ if (delvFeeCdList.size() > 0) {
|
|
|
+ for (int i=0 ; i<delvFeeCdList.size() ; i++) {
|
|
|
+ Order delvFeeCdObj = delvFeeCdList.get(i);
|
|
|
+
|
|
|
+ // 1.4.2 업체코드가 같으면 SUM
|
|
|
+ if (delvFeeCdObj.getDelvFeeCd().equals(order.getDelvFeeCd())) {
|
|
|
+ sumOrdAmt = delvFeeCdObj.getSumOrdAmt() + ordAmt;
|
|
|
+ delvFeeCdObj.setSumOrdAmt(sumOrdAmt);
|
|
|
+ }
|
|
|
+ // 1.4.2 업체코드가 다르면 ADD
|
|
|
+ else {
|
|
|
+ temp = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (temp) {
|
|
|
+ order.setSumOrdAmt(ordAmt);
|
|
|
+ delvFeeCdList.add(order);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ // 1.4.2 최초등록이면 ADD
|
|
|
+ else {
|
|
|
+ order.setSumOrdAmt(ordAmt);
|
|
|
+ delvFeeCdList.add(order);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 배송비
|
|
|
+ for (int i=0 ; i<delvFeeCdList.size() ; i++) {
|
|
|
+ Order delvFeeCdObj = delvFeeCdList.get(i);
|
|
|
+
|
|
|
+ // 배송정책별 무료배송비 체크
|
|
|
+ if (delvFeeCdObj.getMinOrdAmt() > delvFeeCdObj.getSumOrdAmt()) {
|
|
|
+ delvFeeCdObj.setDelvFee(delvFeeCdObj.getDelvFee());
|
|
|
+ sumDelvFee += delvFeeCdObj.getDelvFee();
|
|
|
+ } else {
|
|
|
+ delvFeeCdObj.setDelvFee(0);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 입점업체건수 적용
|
|
|
@@ -884,9 +1003,9 @@ public class TscOrderService {
|
|
|
// 자사배송건수 1추가
|
|
|
if (wmsCnt > 0) {
|
|
|
delvFeeTotCnt++;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- // 자사 예약배송건술 1추가
|
|
|
+ // 자사 예약배송건수 1추가
|
|
|
if (resCnt > 0) {
|
|
|
delvFeeTotCnt++;
|
|
|
}
|
|
|
@@ -899,6 +1018,7 @@ public class TscOrderService {
|
|
|
resultMap.set("wmsCartList" , wmsCartList); // 자사 일반상품 목록
|
|
|
resultMap.set("resCartList" , resCartList); // 자사 예약상품 목록
|
|
|
resultMap.set("delvCartList" , delvCartList); // 입점업체 상품 목록
|
|
|
+ resultMap.set("sumDelvFee" , sumDelvFee); // 배송비합계
|
|
|
|
|
|
return resultMap;
|
|
|
}
|