Browse Source

주문서개발중

jsh77b 5 years ago
parent
commit
052d1de581

+ 44 - 36
src/main/java/com/style24/core/biz/service/TscFreegiftService.java

@@ -41,51 +41,59 @@ public class TscFreegiftService {
 	 */
 	public Collection<Order> getOrderFreegift(Order order) {
 		
+		Collection<Order> freegiftGoodsApplyValList = null;
+		
 		// 1. 장바구니 담긴 상품으로 적용된 사은품 프로모션 정보 조회 (with 상품금액)
 		Collection<Order> fregiftGoodsApplyAmtList = freegiftDao.getFreeGiftGoodsApplyAmt(order);
 		
-		int[] freegiftSqArr = new int[fregiftGoodsApplyAmtList.size()];
-		
-		int i = 0;
-		
-		// 사은품시퀀스(FREEGIFT_SQ), 사은품시퀀스합계금액(FREEGIFT_AMT)
-		for (Order fregiftGoodsApplyAmt : fregiftGoodsApplyAmtList) {
-			freegiftSqArr[i] = fregiftGoodsApplyAmt.getFreegiftSq();
-			i++;
-		}
-		
-		order.setFreegiftSqArr(freegiftSqArr);
-		
-		// 2. 사은품 적용구간 정보 조회
-		Collection<Order> freegiftGoodsApplySectionList = freegiftDao.getFreeGiftGoodsApplySection(order);
-		
-		int[] freegiftSectionSqArr = new int[fregiftGoodsApplyAmtList.size()];
-		
-		int tempFreegiftSectionSq = 0;
-		int k = 0;
-		
-		// 사은품시퀀스(FREEGIFT_SQ), 사은품시퀀스합계금액(FREEGIFT_AMT)
-		for (Order fregiftGoodsApplyAmt : fregiftGoodsApplyAmtList) {
-			int freegiftAmt 	= fregiftGoodsApplyAmt.getFreegiftAmt();
+		// 1.1 장바구니 상품으로 적용된 사은품 여부 판단
+		if (fregiftGoodsApplyAmtList.size() > 0) {
+			int[] freegiftSqArr = new int[fregiftGoodsApplyAmtList.size()];
 			
-			// 사은풐구간시퀀스(FREEGIFT_SECTION_SQ, 사은품시퀀스(FREEGIFT_SQ), 사은풐구간금액(SECTION_VAL)
-			for (Order freegiftGoodsApplySection : freegiftGoodsApplySectionList) {
-				int freegiftSectionSq 	= freegiftGoodsApplySection.getFreegiftSectionSq();
-				int sectionVal 			= freegiftGoodsApplySection.getSectionVal();
+			int i = 0;
+			
+			// 사은품시퀀스(FREEGIFT_SQ), 사은품시퀀스합계금액(FREEGIFT_AMT)
+			for (Order fregiftGoodsApplyAmt : fregiftGoodsApplyAmtList) {
+				freegiftSqArr[i] = fregiftGoodsApplyAmt.getFreegiftSq();
+				i++;
+			}
+			
+			order.setFreegiftSqArr(freegiftSqArr);
+			
+			// 2. 사은품 적용구간 정보 조회
+			Collection<Order> freegiftGoodsApplySectionList = freegiftDao.getFreeGiftGoodsApplySection(order);
+			
+			// 2.1 사은품 적용구간이 있는지 판단
+			if (fregiftGoodsApplyAmtList.size() > 0) {
+				int[] freegiftSectionSqArr = new int[fregiftGoodsApplyAmtList.size()];
+				
+				int tempFreegiftSectionSq = 0;
+				int k = 0;
 				
-				if (freegiftAmt > sectionVal) {
-					tempFreegiftSectionSq = freegiftSectionSq;
-				} else {
-					freegiftSectionSqArr[k] = tempFreegiftSectionSq;
-					k++;
+				// 사은품시퀀스(FREEGIFT_SQ), 사은품시퀀스합계금액(FREEGIFT_AMT)
+				for (Order fregiftGoodsApplyAmt : fregiftGoodsApplyAmtList) {
+					int freegiftAmt 	= fregiftGoodsApplyAmt.getFreegiftAmt();
+					
+					// 사은풐구간시퀀스(FREEGIFT_SECTION_SQ, 사은품시퀀스(FREEGIFT_SQ), 사은풐구간금액(SECTION_VAL)
+					for (Order freegiftGoodsApplySection : freegiftGoodsApplySectionList) {
+						int freegiftSectionSq 	= freegiftGoodsApplySection.getFreegiftSectionSq();
+						int sectionVal 			= freegiftGoodsApplySection.getSectionVal();
+						
+						if (freegiftAmt > sectionVal) {
+							tempFreegiftSectionSq = freegiftSectionSq;
+						} else {
+							freegiftSectionSqArr[k] = tempFreegiftSectionSq;
+							k++;
+						}
+					}
 				}
+				
+				// 3. 사은품 적용구간 의 적용 사은품정보조회
+				order.setFreegiftSectionSqArr(freegiftSectionSqArr);
+				freegiftGoodsApplyValList = freegiftDao.getFreeGiftGoodsApplyVal(order);
 			}
 		}
 		
-		// 3. 사은품 적용구간 의 적용 사은품정보조회
-		order.setFreegiftSectionSqArr(freegiftSectionSqArr);
-		Collection<Order> freegiftGoodsApplyValList = freegiftDao.getFreeGiftGoodsApplyVal(order);
-		
 		return freegiftGoodsApplyValList;
 	}
 	

+ 16 - 1
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -671,7 +671,22 @@ public class TscOrderService {
 		
 		for (Order order : cartGoodsList) {
 			
-			// 1.1 배송정책별 상품 구분
+			// 1.1 세트상품 옵션별 배열로 담기
+			if (order.getItemNm().contains("!@!")) {
+				order.setItemNmArr(order.getItemNm().split("!@!"));
+				order.setOptCdArr(order.getOptCd().split(","));
+				order.setItemQtyArr(order.getItemQtyr().split(","));
+			} else {
+				String[] arr = {order.getItemNm()}, arr2 = {order.getOptCd()},arr3 = {order.getItemQtyr()};
+				order.setItemNmArr(arr);
+				order.setOptCdArr(arr2);
+				order.setItemQtyArr(arr3);
+			}
+			
+			// 1.2 즉시할인 적용가 * 주문수량(장바구니수량)
+			order.setCurrPrice(order.getCurrPrice() * order.getGoodsQty());
+			
+			// 1.3 배송정책별 상품 구분
 			if (order.getDelvFeeCd().equals("WMS")) {
 				wmsCartList.add(order);
 				wmsCnt++;

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

@@ -33,6 +33,10 @@ public class Order extends TscBaseDomain {
 	private String frontGb;
 	private String frontGbNm;
 	private String extmallNm;
+	private String custNm;
+	private String cellPhnno;
+	private String email;
+	private String delvAddrNm;
 
 	// 주문상세
 	private int ordDtlNo;
@@ -147,6 +151,7 @@ public class Order extends TscBaseDomain {
 	private String dateGbn;
 	private String mallCd;
 	private String search;
+	private int productNo;
 	
 	/* Multi CheckBox 항목*/
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
@@ -403,7 +408,10 @@ public class Order extends TscBaseDomain {
 	Collection<Order> resCartList;
 	Collection<Order> delvCartList;
 	
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private int[] freegiftSqArr;
+	
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private int[] freegiftSectionSqArr;
 	int freegiftAmt;
 	int freegiftSectionSq;

+ 21 - 20
src/main/java/com/style24/persistence/mybatis/shop/TscFreegift.xml

@@ -22,12 +22,17 @@
 			ON     G.GOODS_CD = OP.GOODS_CD
 			AND    CD.OPT_CD = OP.OPT_CD
 			WHERE  1=1
-			<if test="cartSqArr != null and cartSqArr ==''">
-			AND    CA.CART_SQ IN 
-				<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
-					#{item}
-				</foreach>
+			<if test="custNo == 0">
+			AND    CA.CUST_NO = 0
+			AND    CA.JSESSION_ID = #{jsessionId}
 			</if>
+			<if test="custNo != 0">
+			AND    CA.CUST_NO = #{custNo}
+			</if>
+			AND    CA.CART_SQ IN
+			<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
 		)
 		SELECT FGG.FREEGIFT_SQ
 		     , SUM(IFNULL((FGG.CURR_PRICE + FGG.ADD_PRICE) * FGG.GOODS_QTY, 0)) FREEGIFT_AMT
@@ -55,12 +60,12 @@
 			INNER  JOIN TB_FREEGIFT_GOODS FGG1
 			ON     GD.SUPPLY_COMP_CD = FGG1.TARGET_VAL
 			AND    FGG1.GOODS_GB = 'G800_20' -- 적용상품
-			AND    FGG1.TARGET_GB= 'G260_12' -- 공급처
+			AND    FGG1.TARGET_GB= 'G260_13' -- 공급처
 			AND    FGG1.DEL_YN = 'N'
 			INNER  JOIN TB_FREEGIFT_GOODS FGG2
 			ON     GD.BRAND_CD = FGG2.TARGET_VAL
 			AND    FGG2.GOODS_GB = 'G800_20' -- 적용상품
-			AND    FGG2.TARGET_GB= 'G260_11' -- 브랜드
+			AND    FGG2.TARGET_GB= 'G260_12' -- 브랜드
 			AND    FGG2.DEL_YN = 'N'
 		) FGG
 		ON     FG.FREEGIFT_SQ = FGG.FREEGIFT_SQ 
@@ -87,13 +92,11 @@
 		FROM   TB_FREEGIFT_SECTION FGS
 		WHERE  1=1
 		AND    FGS.DEL_YN = 'N'
-		AND    FGS.SECTION_GB = 'G810_10' -- 금액만 처리
-		<if test="freegiftSqArr != null and freegiftSqArr ==''">
+		AND    FGS.SECTION_GB = 'G810_11' -- 금액만 처리
 		AND    FGS.FREEGIFT_SQ IN
-			<foreach collection="freegiftSqArr" item="item" index="index"  open="(" close=")" separator=",">
-				#{item}
-			</foreach>
-		</if>
+		<foreach collection="freegiftSqArr" item="item" index="index"  open="(" close=")" separator=",">
+			#{item}
+		</foreach>
 		ORDER  BY FGS.FREEGIFT_SQ
 		     , FGS.SECTION_VAL
 	</select>
@@ -105,16 +108,14 @@
 		     , FGV.FREEGIFT_SQ 
 		     , FGV.USE_POINT
 		     , FGV.ITEM_QTY
-		     , FGV.ITEM_CD
+		     , FGV.PRODUCT_NO
 		FROM   TB_FREEGIFT_VAL FGV
 		WHERE  1=1
 		AND    FGV.DEL_YN = 'N'
-		<if test="freegiftSectionSqArr != null and freegiftSectionSqArr ==''">
-		AND    FGV.FREEGIFT_SECTION_SQ IN (
-			<foreach collection="freegiftSectionSqArr" item="item" index="index"  open="(" close=")" separator=",">
-				#{item}
-			</foreach>
-		</if>
+		AND    FGV.FREEGIFT_SECTION_SQ IN
+		<foreach collection="freegiftSectionSqArr" item="item" index="index"  open="(" close=")" separator=",">
+			#{item}
+		</foreach>
 	</select>
 	
 	

+ 23 - 10
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -1694,12 +1694,10 @@
 				<if test="custNo != 0">
 				   AND CA.CUST_NO = #{custNo}
 				</if>
-				<if test="cartSqArr != null and cartSqArr.length > 0">
 				   AND CA.CART_SQ IN
-					<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
-							#{item}
-					</foreach>
-				</if>
+				<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
+					#{item}
+				</foreach>
 			) Z
 		LEFT   OUTER JOIN TB_GOODS_IMG GI
 		ON	   Z.GOODS_CD = GI.GOODS_CD
@@ -1785,6 +1783,16 @@
 		   AND CG.USE_EXP_DATE > CURRENT_TIMESTAMP
 	</select>
 	
+		<!-- 총알배송 가능시간 조회 -->
+	<select id="getDailyDeliveryTimeInfo" resultType="int">
+		/* order.getDailyDeliveryTimeInfo */
+		SELECT CASE WHEN TIME_FORMAT(NOW(), '%H%i%S') > 10000
+		            THEN 0
+		            ELSE 1
+		            END  SHOT_DELV_ABLE_YN
+		FROM   DUAL
+	</select>
+	
 	<!-- 총알배송 가능지역 조회 -->
 	<select id="getDailyDeliveryZoneInfo" parameterType="Order" resultType="int">
 		/* TscOrder.getDailyDeliveryZoneInfo */
@@ -1807,12 +1815,17 @@
 			INNER  JOIN TB_GOODS G
 			ON     CA.GOODS_CD = G.GOODS_CD
 			WHERE  1=1
-			<if test="cartSqArr != null and cartSqArr ==''">
-			AND    CA.CART_SQ IN 
-				<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
-					#{item}
-				</foreach>
+			<if test="custNo == 0">
+			AND    CA.CUST_NO = 0
+			AND    CA.JSESSION_ID = #{jsessionId}
 			</if>
+			<if test="custNo != 0">
+			AND    CA.CUST_NO = #{custNo}
+			</if>
+			AND    CA.CART_SQ IN
+			<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
 		)
 		SELECT Z.GOODS_CD
 		     , CP.CPN_ID