jsh77b пре 5 година
родитељ
комит
aed071d2a2

+ 1 - 14
src/main/java/com/style24/core/biz/service/TscFreegiftService.java

@@ -40,7 +40,6 @@ public class TscFreegiftService {
 	 * @author jsh77b
 	 * @since 2020. 12. 16
 	 */
-	@SuppressWarnings("null")
 	public GagaMap getOrderFreegift(Order order) {
 		
 		GagaMap resultMap = new GagaMap();
@@ -50,8 +49,6 @@ public class TscFreegiftService {
 		// 1. 장바구니 담긴 상품으로 적용된 사은품 프로모션 정보 조회 (with 상품금액)
 		Collection<Order> fregiftGoodsApplyAmtList = freegiftDao.getFreeGiftGoodsApplyAmt(order);
 		
-		log.info("fregiftGoodsApplyAmtList.size() ::: {}", fregiftGoodsApplyAmtList.size());
-		
 		// 1.1 장바구니 상품으로 적용된 사은품 여부 판단
 		if (fregiftGoodsApplyAmtList.size() > 0) {
 			int[] freegiftSqArr = new int[fregiftGoodsApplyAmtList.size()];
@@ -88,24 +85,14 @@ public class TscFreegiftService {
 						
 						// 같은 사은품 프로모션끼리 등록
 						if (fregiftGoodsApplyAmt.getFreegiftSq() == freegiftGoodsApplySection.getFreegiftSq()) {
-							
-							log.info("fregiftGoodsApplyAmt.getFreegiftSq() ::: {}", fregiftGoodsApplyAmt.getFreegiftSq());
-							log.info("freegiftAmt ::: {}", freegiftAmt);
-							log.info("sectionVal ::: {}", sectionVal);
-							log.info("tempFreegiftSectionSq ::: {}", tempFreegiftSectionSq);
-
 							if (freegiftAmt > sectionVal) {
 								tempFreegiftSectionSq = freegiftSectionSq;
-							} else {
-								if (tempFreegiftSectionSq > 0) {
-									freegiftSectionSqArr[k] = tempFreegiftSectionSq;
-									k++;
-								}
 							}
 						}
 					}
 					
 					freegiftSectionSqArr[k] = tempFreegiftSectionSq;
+					k++;
 				}
 				
 				// 3. 사은품 적용구간 의 적용 사은품정보조회

+ 76 - 27
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -966,23 +966,30 @@ public class TscOrderService {
 	 * @since 2021. 02. 02
 	 */	
 	@SuppressWarnings({ "unchecked", "rawtypes" })
-	public GagaMap getCartDelvGoodsCntList(Collection<Order> cartGoodsList) {
+	public GagaMap getCartDelvGoodsCntList(Collection<Order> cartGoodsList, Order orderInfo) {
 		
 		// 1. 장바구니 상품 배송단위별 건수 체크 로직 (자사:총알배송, 자사:일반배송, 입점업체, 예약배송)
 		GagaMap resultMap = new GagaMap();
 		
-		int shotCnt			= 0; // 자사총알배송 건수
-		int wmsCnt 			= 0; // 자사일반배송 건수
-		int resCnt 			= 0; // 자사예약배송 건수
-		int delvCnt 		= 0; // 업체직배송 건수
-		int delvFeeTotCnt 	= 0; // 배송단위 총 건수
-		int delvTotCnt		= 0; // 배송 총 건수
+		int shotCnt				= 0; // 자사총알배송 건수
+		int wmsCnt 				= 0; // 자사일반배송 건수
+		int shotWmsCnt 			= 0; // 자사총알,일반배송 건수
+		int resCnt 				= 0; // 자사예약배송 건수
+		int delvCnt 			= 0; // 업체직배송 건수
+		int delvFeeCdCnt 		= 0; // 배송정책단위 총 건수
+		int goodsTotCnt			= 0; // 상품 총 건수
+		
+		String foreignBuyYn 	= "N"; // 해외구매대행여부
+		String orderMadeYn 		= "N"; // 주문제작상품여부
 		
 		Collection<Order> shotCartList 						= (Collection<Order>)new ArrayList();					// 자사 총알배송
 		Collection<Order> wmsCartList 						= (Collection<Order>)new ArrayList();					// 자사 일반배송
+		Collection<Order> shotWmsCartList 					= (Collection<Order>)new ArrayList();					// 자사 총알,일반배송
 		Collection<Order> resCartList 						= (Collection<Order>)new ArrayList();					// 자사 예약배송
 		Collection<Order> delvCartList 						= (Collection<Order>)new ArrayList();					// 입점 일반배송
 		Collection<Collection<Order>> delvAllCartList 		= (Collection<Collection<Order>>)new ArrayList();		// 배송전체목록
+		Collection<Collection<Order>> delvCartGoodsList 	= (Collection<Collection<Order>>)new ArrayList();		// 장바구니상품목록
+		
 		
 		List<Order> delvFeeCdList 		= (ArrayList<Order>)new ArrayList();
 		int ordAmt 						= 0; // 주문금액
@@ -1008,8 +1015,13 @@ public class TscOrderService {
 			order.setOrgCurrPrice(order.getOrgCurrPrice() * order.getGoodsQty());
 			
 			// 1.3 배송정책별 상품 구분
-			// 1.3.1 자사일반배송
-			if ("WMS".equals(order.getResDelvFeeCd())) {
+			// 1.3.1 자사총알배송
+			if ("SHOT".equals(order.getResDelvFeeCd())) {
+				shotCartList.add(order);
+				shotCnt++;
+			}
+			// 1.3.2 자사일반배송
+			else if ("WMS".equals(order.getResDelvFeeCd())) {
 				wmsCartList.add(order);
 				wmsCnt++;
 			} 
@@ -1023,7 +1035,7 @@ public class TscOrderService {
 				delvCartList.add(order);
 				delvCnt++;
 			}
-			delvTotCnt++;
+			goodsTotCnt++;
 			
 			// 1.4 배송단위별 배송비 설정
 			// 다다익선 할인 금액 적용
@@ -1062,6 +1074,16 @@ public class TscOrderService {
 				order.setSumOrdAmt(ordAmt);
 				delvFeeCdList.add(order);
 			}
+			
+			// 1.5 해외구매대행여부체크
+			if ("Y".equals(order.getForeignBuyYn())) {
+				foreignBuyYn = "Y";
+			}
+			
+			// 1.6 주문제작여부체크
+			if ("Y".equals(order.getOrderMadeYn())) {
+				orderMadeYn = "Y";
+			}
 		}
 		
 		// 배송비
@@ -1078,41 +1100,68 @@ public class TscOrderService {
 		}
 		
 		// 입점업체건수 적용
-		delvFeeTotCnt = delvCnt;
+		delvFeeCdCnt = delvCnt;
 		
 		// 자사총알배송건수 추가
 		if (shotCnt > 0) {
-			delvFeeTotCnt++;
+			delvFeeCdCnt++;
 		}
 		
 		// 자사일반배송건수 1추가
 		if (wmsCnt > 0) {
-			delvFeeTotCnt++;
+			delvFeeCdCnt++;
 		}
 		
 		// 자사예약배송건수 1추가
 		if (resCnt > 0) {
-			delvFeeTotCnt++;
+			delvFeeCdCnt++;
 		}
 		
-		delvAllCartList.add(shotCartList);
-		delvAllCartList.add(wmsCartList);
-		delvAllCartList.add(delvCartList);
-		delvAllCartList.add(resCartList);
-
-		resultMap.set("wmsCnt"				, wmsCnt);				// 자사몰 일반배송건수
+		shotWmsCnt = shotCnt + wmsCnt;
+		
+		// 총알배송, 일반배송 
+		shotWmsCartList.addAll(shotCartList);
+		shotWmsCartList.addAll(wmsCartList);
+		
+		// 전체배송정보
+		// 총알배송일때 배송정보 목록 분기처리
+		if ("Y".equals(orderInfo.getShotDelvYn())) {
+			delvAllCartList.add(shotCartList);						// index 0
+			delvAllCartList.add(wmsCartList);						// index 1
+		} else {
+			// 배송카운트(총알배송 + 일반배송)
+			shotCnt 	= 0;
+			wmsCnt 		= shotWmsCnt;
+			
+			delvAllCartList.add(null);								// index 0
+			delvAllCartList.add(shotWmsCartList);					// index 1
+		}
+		
+		delvAllCartList.add(delvCartList);							// index 4
+		delvAllCartList.add(resCartList);							// index 5
+		
+		delvCartGoodsList.add(shotCartList);
+		delvCartGoodsList.add(wmsCartList);
+		delvCartGoodsList.add(delvCartList);
+		delvCartGoodsList.add(resCartList);
+		
+		resultMap.set("delvFeeCdCnt"		, delvFeeCdCnt);		// 배송타입건수
+		resultMap.set("shotCnt"				, shotCnt);				// 자사몰 총알배송건수
+		resultMap.set("wmsCnt"				, wmsCnt);				// 자사몰 일반배송건수(총알배송불가)
+		resultMap.set("shotWmsCnt"			, shotWmsCnt);			// 자사몰 총알,일반배송건수(총알배송불가)
 		resultMap.set("resCnt"				, resCnt);				// 자사몰 예약배송건수
 		resultMap.set("delvCnt"				, delvCnt);				// 입점업체 배송건수
-		resultMap.set("delvTotCnt"			, delvTotCnt);			// 배송유형건수
-		resultMap.set("delvFeeTotCnt"		, delvFeeTotCnt);		// 전체배송건수
-		resultMap.set("shotCartList"		, shotCartList);		// 자사총알배송상품목록
-		resultMap.set("wmsCartList"			, wmsCartList);			// 자사일반배송상품목록
-		resultMap.set("resCartList"			, resCartList);			// 자사예약배송상품목록
-		resultMap.set("delvAllCartList"		, delvAllCartList);		// 전체배송목록 sort
-		resultMap.set("delvCartList"		, delvCartList);		// 입점업체상품목록
+		
+		resultMap.set("goodsTotCnt"			, goodsTotCnt);			// 전체상품건수
+		resultMap.set("delvAllCartList"		, delvAllCartList);		// 전체배송단위목록 sort
+		resultMap.set("delvCartGoodsList"	, delvCartGoodsList);	// 장바구니상품목록 sort
+		
 		resultMap.set("sumDelvFee"			, sumDelvFee);			// 배송비합계
 		resultMap.set("delvFeeCdList"		, delvFeeCdList);		// 배송업체목록
 		
+		resultMap.set("foreignBuyYn"		, foreignBuyYn);		// 해외구매대행여부
+		resultMap.set("orderMadeYn"			, orderMadeYn);			// 주문제작여부
+		
 		return resultMap;
 	}
 	

+ 5 - 0
src/main/java/com/style24/persistence/domain/Order.java

@@ -92,6 +92,7 @@ public class Order extends TscBaseDomain {
 	private String soldoutRegDt;					// 품절등록일자
 	private int delvAddrSq;							// 주문배송지시퀀스번호
 	private String shotDelvYn;						// 총알배송여부
+	private String shotDelvUseYn;					// 총알배송사용여부(장바구니)
 	private String giftPackYn;						// 선물포장여부
 	
 	private String delvLocCd;						// 출고처코드
@@ -158,6 +159,9 @@ public class Order extends TscBaseDomain {
 	private String search;							// 검색어
 	private int productNo;							// 상품번호
 	
+	private String foreignBuyYn;					// 해외구매대행가능여부
+	private String orderMadeYn;						// 주문제작상품여부
+	
 	/* Multi CheckBox 항목 */
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] multiBrand;					// 브랜드코드배열
@@ -274,6 +278,7 @@ public class Order extends TscBaseDomain {
 	private int usePoint;
 	private int seq;
 	private String userNm;
+	private String allYn;
 	
 	// 환불계좌칼럼
 	private String raBank;

+ 1 - 0
src/main/java/com/style24/persistence/mybatis/shop/TscFreegift.xml

@@ -110,6 +110,7 @@
 		     , FGV.FREEGIFT_SQ 
 		     , FGV.USE_POINT
 		     , FGV.ITEM_QTY
+		     , FG.ALL_YN
 		     , G.PRODUCT_NO
 		     , G.PRODUCT_CODE 
 		     , G.GOODS_NM 

+ 15 - 0
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -1657,6 +1657,9 @@
 			 , CASE WHEN #{frontGb} IN ('P')      AND Z.PRE_PPNT_USABLE_YN IN ('Y') THEN (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_PRATE/100)
 			        WHEN #{frontGb} IN ('M', 'A') AND Z.PRE_MPNT_USABLE_YN IN ('Y') THEN (Z.CURR_PRICE * Z.GOODS_QTY) * (Z.PNT_MRATE/100)
 					 END AS PRE_PNT_DC_AMT
+			 , Z.SHOT_DELV_YN
+			 , Z.FOREIGN_BUY_YN
+			 , Z.ORDER_MADE_YN
 		FROM  ( SELECT CA.CART_SQ
 					 , CD.CART_DTL_SQ
 					 , BR.BRAND_ENM
@@ -1690,6 +1693,7 @@
 					 , CASE WHEN G.SELF_GOODS_YN = 'Y' THEN 'WMS'
 							ELSE DFP.DELV_FEE_CD END AS DELV_FEE_CD
 					 , CASE WHEN GRS.DELV_RES_DT IS NOT NULL THEN 'RES'
+					        WHEN GQDS.GOODS_CD IS NULL AND G.SELF_GOODS_YN = 'Y' THEN 'SHOT'
 							WHEN G.SELF_GOODS_YN = 'Y' THEN 'WMS'
 							ELSE DFP.DELV_FEE_CD END AS RES_DELV_FEE_CD
 		             , DATE_FORMAT(GRS.DELV_RES_DT, '%Y.%m.%d') AS DELV_RES_DT
@@ -1704,6 +1708,12 @@
 							ELSE '00' END AS COLOR_CD
 					 , CASE WHEN G.GOODS_TYPE != 'G056_S' AND G.SELF_GOODS_YN = 'Y' THEN (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = CD.OPT_CD1 AND DEFAULT_IMG_YN = 'Y' LIMIT 1)
 							ELSE (SELECT SYS_IMG_NM FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' LIMIT 1) END AS SYS_IMG_NM
+					 , CASE WHEN GQDS.GOODS_CD IS NULL 
+					        THEN 'Y'
+					        ELSE 'N'
+					         END SHOT_DELV_YN
+					 , G.FOREIGN_BUY_YN
+					 , G.ORDER_MADE_YN
 				  FROM TB_CART CA
 				 INNER JOIN TB_CART_DETAIL CD
 					ON CA.CART_SQ = CD.CART_SQ
@@ -1728,6 +1738,8 @@
 				    ON CA.CUST_NO = CT.CUST_NO
 				  LEFT OUTER JOIN TB_GOODS_ORDER_GRADE GOG
 				    ON G.GOODS_CD = GOG.GOODS_CD
+				  LEFT OUTER JOIN TB_GOODS_QUICK_DELEVERY_SKIP GQDS
+				    ON G.GOODS_CD = GQDS.GOODS_CD
 				 WHERE 1 = 1
 				   AND G.GOODS_STAT = 'G008_90'
 				<if test="custNo == 0">
@@ -1770,6 +1782,9 @@
 		     , Z.PNT_PRATE
 		     , Z.PNT_MRATE
 			 , Z.SYS_IMG_NM
+			 , Z.SHOT_DELV_YN
+			 , Z.FOREIGN_BUY_YN
+			 , Z.ORDER_MADE_YN
 		ORDER  BY Z.SUPPLY_COMP_CD
 				, Z.DELV_FEE_CD
 				, Z.GOODS_CD