jsh77b 5 rokov pred
rodič
commit
6560971d70

+ 42 - 0
src/main/java/com/style24/core/biz/dao/TscOrderDao.java

@@ -449,4 +449,46 @@ public interface TscOrderDao {
 	 * @return
 	 */
 	int insertPaymentForRollback(Payment param);
+	
+	/**
+	 * 1. 주문기본정보 등록
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 03. 09
+	 */
+	int createOrder(Order order);
+	
+	/**
+	 * 2. 주문배송지정보 등록
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 03. 09
+	 */
+	int createDeliveryAddr(Order order);
+	
+	/**
+	 * 3. 주문배송비정보등록 등록
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 03. 09
+	 */
+	int createDeliveryFee(Order order);
+	
+	/**
+	 * 4. 주문상세정보등록 등록
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 03. 09
+	 */
+	int createOrderDetail(Order order);
+	
+
 }

+ 92 - 11
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -854,11 +854,11 @@ public class TscOrderService {
 	 */
 	public Collection<Order> getDelvCpnApplyList(Collection<Order> delvFeeCdList, Collection<Order> delvCpnAllList) {
 		
-		// 배송비가 있으면 배업체코드, 배송비 배송비쿠폰에 설정
+		// 배송비가 있으면 배업체코드, 배송비 배송비쿠폰에 설정
 		for (Order delvCpn : delvCpnAllList) {
 			for (Order delvFeeCd : delvFeeCdList) {
 				if (delvFeeCd.getDelvFee() > 0) {
-					delvCpn.setCpnDcAmt(delvFeeCd.getDelvFee());
+					delvCpn.setDelvFee(delvFeeCd.getDelvFee());
 					delvCpn.setDelvFeeCd(delvFeeCd.getDelvFeeCd());
 				}
 			}
@@ -989,10 +989,8 @@ public class TscOrderService {
 		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();
+		List<Order> delvFeeCdList 		= (ArrayList<Order>)new ArrayList();										// 배송업체단위목록
 		int ordAmt 						= 0; // 주문금액
 		int sumOrdAmt 					= 0; // 배송단위 주문합계금액
 		int sumDelvFee					= 0; // 전체배송금액
@@ -1141,11 +1139,6 @@ public class TscOrderService {
 		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);				// 자사몰 일반배송건수(총알배송불가)
@@ -1155,7 +1148,6 @@ public class TscOrderService {
 		
 		resultMap.set("goodsTotCnt"			, goodsTotCnt);			// 전체상품건수
 		resultMap.set("delvAllCartList"		, delvAllCartList);		// 전체배송단위목록 sort
-		resultMap.set("delvCartGoodsList"	, delvCartGoodsList);	// 장바구니상품목록 sort
 		
 		resultMap.set("sumDelvFee"			, sumDelvFee);			// 배송비합계
 		resultMap.set("delvFeeCdList"		, delvFeeCdList);		// 배송업체목록
@@ -1248,5 +1240,94 @@ public class TscOrderService {
 	 */
 	public Collection<Order> getSerialCpnApplyGoodsList(Order order) {
 		return orderDao.getGoodsCartCpnApplyGoodsList(order);
+	}
+	
+	/**
+	 * 주문정보등록(사전등록)
+	 * @param Order
+	 * @return Order
+	 * @author jsh77b
+	 * @since 2021. 03. 09
+	 */
+	@Transactional("shopTxnManager")
+	public void createPreOrder(Order order) {
+		
+		// 1. 주문기본정보등록
+		orderDao.createOrder(order);
+		
+		// 2. 주문배송정보등록
+		orderDao.createDeliveryAddr(order);
+		
+		// 3. 주문배송비정보등록
+		Collection<Order> delvFeeCdList = order.getDelvFeeCdList();
+		for (Order delvFeeCd : delvFeeCdList) {
+			
+			delvFeeCd.setOrdNo(order.getOrdNo());
+			delvFeeCd.setCustNo(order.getCustNo());
+			delvFeeCd.setDelvFeeGb(TscConstants.DeliveryFeeGb.ORIGIN_DELIVERY_FEE.value());
+			
+			// TODO 보유쿠폰존재여부체크
+			// 배송비쿠폰할인금액이 존재한다면 실결제배송비용에 쿠폰할인금액을 적용
+			if (delvFeeCd.getDelvCpnDcAmt() > 0) {
+				// 배송비 > 쿠폰할인금액
+				if (delvFeeCd.getDelvFee() > delvFeeCd.getDelvCpnDcAmt()) {
+					int realDelvAmt = delvFeeCd.getDelvFee() - delvFeeCd.getDelvCpnDcAmt();
+					delvFeeCd.setRealDelvAmt(realDelvAmt);
+				} else {
+					delvFeeCd.setRealDelvAmt(0);
+				}
+			} else {
+				delvFeeCd.setRealDelvAmt(delvFeeCd.getDelvFee());
+			}
+			
+			orderDao.createDeliveryFee(delvFeeCd);
+		}
+		
+		// 4. 주문상세정보등록
+		Collection<Order> orderDetailList = order.getOrderDetailList();
+		for (Order orderDetail : orderDetailList) {
+			orderDetail.setOrdNo(order.getOrdNo());
+			orderDetail.setOrdExchGb("O");
+			orderDetail.setCustNo(order.getCustNo());
+			orderDetail.setOrdDtlStat(TscConstants.OrderDetailStat.ORDER_RECEIPT.value());
+			orderDetail.setDelvAddrSq(order.getDelvAddrSq());
+			orderDetail.setGiftPackYn("N");
+			
+			// TODO 총알배송, 구매대행상품여붗 체크
+			
+			orderDao.createOrderDetail(orderDetail);
+		}
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
 	}
 }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

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

@@ -94,6 +94,7 @@ public class Order extends TscBaseDomain {
 	private String shotDelvYn;						// 총알배송여부
 	private String shotDelvUseYn;					// 총알배송사용여부(장바구니)
 	private String giftPackYn;						// 선물포장여부
+	private String foreignYn;						// 해외구매대행여부
 	
 	private String delvLocCd;						// 출고처코드
 	private String delvAssigngDt;					// 출고처지정일자
@@ -161,6 +162,7 @@ public class Order extends TscBaseDomain {
 	
 	private String foreignBuyYn;					// 해외구매대행가능여부
 	private String orderMadeYn;						// 주문제작상품여부
+	private String entryNo;							// 통관번호
 	
 	/* Multi CheckBox 항목 */
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
@@ -568,4 +570,12 @@ public class Order extends TscBaseDomain {
 	
 	private String dispYn;
 	
+	// 주묹정보등록
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private int[] freegiftValArr;			// 다다익선 일련번호
+	private String prePntDcAmtYn; 			// 선포인트사용여부
+	Collection<Order> orderDetailList;		// 주문상세목록
+	Collection<Order> delvFeeCdList;		// 배송정보목록
+	
+	
 }

+ 271 - 3
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -2098,9 +2098,9 @@
 		     , CP.CPN_NM
 		     , CP.CPN_TYPE
 		     , CP.DC_WAY
-		     , CP.DC_PVAL
-		     , CP.DC_MVAL
-		     , CP.DC_AVAL
+		     , CASE WHEN #{frontGb} = 'P' THEN CP.DC_PVAL
+			        WHEN #{frontGb} = 'M' THEN CP.DC_MVAL
+			        ELSE CP.DC_AVAL END AS DC_VAL
 		     , CP.MAX_DC_AMT
 		     , CP.BUY_LIMIT_AMT
 		     , CCP.CUST_CPN_SQ
@@ -2218,6 +2218,274 @@
 			, NOW()
 		)
 	</insert>
+	
+	<!-- 주문정보등록 -->
+	<!-- 1. 주문기본정보등록 -->
+	<insert id="createOrder" parameterType="Order" keyProperty="ordNo">
+		/* TscOrder.createOrder : 주문기본정보등록 */
+		INSERT INTO TB_ORDER ( 
+		    MALL_GB
+		    , ORD_DT
+		    , PAY_DT
+		    , CUST_NO
+		    , ORD_NM
+		    , ORD_PHNNO
+		    , ORD_TELNO
+		    , ORD_EMAIL
+		    , SITE_CD
+		    , NPAY_ORD_NO
+		    , FRONT_GB
+		    , REG_NO
+		    , REG_DT
+		    , UPD_NO
+		    , UPD_DT
+		) 
+		SELECT 'G011_10'
+		     , NOW()
+		     , NOW()
+		     , CUST_NO
+		     , #{custNm}
+		     , #{recipPhnno}
+		     , #{recipTelno}
+		     , #{email}
+		     , 'G000_10'
+		     , #{npayOrdNo}
+		     , #{frontGb}
+		     , CUST_NO
+		     , NOW()
+		     , CUST_NO
+		     , NOW()
+		FROM   TB_CUSTOMER
+		WHERE  CUST_NO = #{custNo}
+	</insert>
+	
+	<!-- 2. 주문배송주소정보등록-->
+	<insert id="createDeliveryAddr" parameterType="Order" keyProperty="delvAddrSq">
+		/* TscOrder.createDeliveryAddr : 주문배송주소정보등록 */
+		INSERT INTO TB_DELIVERY_ADDR ( 
+		    RECIP_NM
+		    , RECIP_PHNNO
+		    , RECIP_TELNO
+		    , RECIP_ZIPCODE
+		    , RECIP_BASE_ADDR
+		    , RECIP_DTL_ADDR
+		    , DELV_MEMO
+		    , REG_NO
+		    , REG_DT
+		    , UPD_NO
+		    , UPD_DT
+		) VALUES (
+		    #{custNm}
+		    , #{recipPhnno}
+		    , #{recipTelno}
+		    , #{recipZipcode}
+		    , #{recipBaseAddr}
+		    , #{recipDtlAddr}
+		    , #{delvMemo}
+		    , #{custNo}
+		    , NOW()
+		    , #{custNo}
+		    , NOW()
+		)
+	</insert>
+	
+	<!-- 3. 주문배송비정보등록-->
+	<insert id="createDeliveryFee" parameterType="Order">
+		/* TscOrder.createDeliveryFee : 주문배송비정보등록 */
+		INSERT INTO TB_DELIVERY_FEE ( 
+		    PAY_SQ
+		    , ORD_NO
+		    , DELV_FEE_GB
+		    , DELV_FEE_CD
+		    , DELV_FEE
+		    , DELV_CPN_SQ
+		    , DELV_CPN_DC_AMT
+		    , REAL_DELV_AMT
+		    , ORD_CHG_SQ
+		    , SUPPLY_COMP_CD
+		    , DELV_USAC_YN
+		    , DELV_USAC_DT
+		    , REG_NO
+		    , REG_DT
+		    , UPD_NO
+		    , UPD_DT
+		) VALUES (
+		    NULL
+		    , #{ordNo}
+		    , #{delvFeeGb}
+		    , #{delvFeeCd}
+		    , #{delvFee}
+		    , #{delvCpnSq}
+		    , #{delvCpnDcAmt}
+		    , #{realDelvAmt}
+		    , NULL
+		    , #{supplyCompCd}
+		    , 'N'
+		    , NULL
+		    , #{custNo}
+		    , NOW()
+		    , #{custNo}
+		    , NOW()
+		)
+	</insert>
+	
+	<!-- 4. 주문상세정보등록-->
+	<insert id="createOrderDetail" parameterType="Order" keyProperty="ordDtlNo">
+		/* TscOrder.createOrderDetail : 주문상세정보등록 */
+		INSERT INTO TB_ORDER_DETAIL ( 
+		    ORD_NO
+		    , ORD_EXCH_GB
+		    , ORD_DTL_STAT
+		    , ORG_ORD_DTL_NO
+		    , SUPPLY_COMP_CD
+		    , GOODS_CD
+		    , DEAL_GOODS_CD
+		    , FORMAL_GB
+		    , GOODS_TYPE
+		    , LIST_PRICE
+		    , CURR_PRICE
+		    , DC_RATE
+		    , OPT_ADD_PRICE
+		    , ORD_QTY
+		    , ORD_AMT
+		    , CNCL_RTN_QTY
+		    , CNCL_RTN_AMT
+		    , CPN1_CPN_SQ
+		    , CPN1_DC_AMT
+		    , TMTB1_SQ
+		    , TMTB1_DC_AMT
+		    , TMTB2_SQ
+		    , TMTB2_DC_AMT
+		    , GOODS_CPN_SQ
+		    , GOODS_CPN_DC_AMT
+		    , CART_CPN_SQ
+		    , CART_CPN_DC_AMT
+		    , BURDEN_RATE
+		    , PNT_DC_AMT
+		    , PRE_PNT_DC_AMT
+		    , SAVE_PNT_AMT
+		    , REAL_ORD_AMT
+		    , GFCD_USE_AMT
+		    , VENDOR_ID
+		    , EXTMALL_ID
+		    , AGENT_ORDER_ID
+		    , EXTMALL_ORDER_ID
+		    , CHANGABLE_YN
+		    , CHANGE_FEE_FREE_YN
+		    , RETURNABLE_YN
+		    , RETURN_FEE_FREE_YN
+		    , SOLDOUT_YN
+		    , SOLDOUT_MEMO
+		    , SOLDOUT_REG_NO
+		    , SOLDOUT_REG_DT
+		    , DELV_ADDR_SQ
+		    , DELV_FEE_CD
+		    , SHOT_DELV_YN
+		    , GIFT_PACK_YN
+		    , GIFT_ADDR_INP_YN
+		    , MAKE_GOODS_YN
+		    , ENTRY_NO
+		    , DELV_LOC_CD
+		    , DELV_ASSIGN_DT
+		    , DELV_ASSIGN_STAT
+		    , DSTRBT_NOTE
+		    , DELV_STDT
+		    , DELV_EDDT
+		    , SHIP_COMP_CD
+		    , INVOICE_NO
+		    , INVOICE_SEND_YN
+		    , SELL_STORE_CD
+		    , SELL_FEE_RATE
+		    , AF_LINK_CD
+		    , ITHR_CD
+		    , CONTENTS_LOC
+		    , PLAN_DTL_SQ
+		    , SOCIAL_SQ
+		    , REG_NO
+		    , REG_DT
+		    , UPD_NO
+		    , UPD_DT
+		)
+		SELECT #{ordNo}
+		     , #{ordExchGb}
+		     , #{ordDtlStat}
+		     , NULL
+		     , G.SUPPLY_COMP_CD
+		     , CA.GOODS_CD
+		     , CA.DEAL_GOODS_CD
+		     , G.FORMAL_GB
+		     , G.GOODS_TYPE
+		     , G.LIST_PRICE
+		     , G.CURR_PRICE
+		     , G.DC_RATE
+		     , #{optAddPrice}
+		     , CA.GOODS_QTY
+		     , #{ordAmt}
+		     , 0
+		     , 0
+		     , #{cpn1CpnSq}
+		     , #{cpn1DcAmt}
+		     , #{tmtb1Sq}
+		     , #{tmtb1DcAmt}
+		     , #{tmtb2Sq}
+		     , #{tmtb2DcAmt}
+		     , #{goodsCpnDcAmt}
+		     , #{goodsCpnDcAmt}
+		     , #{cartCpnSq}
+		     , #{cartCpnDcAmt}
+		     , 0
+		     , #{pntDcAmt}
+		     , #{prePntDcAmt}
+		     , #{savePntAmt}
+		     , #{realOrdAmt}
+		     , #{gfcdUseAmt}
+		     , NULL
+		     , NULL
+		     , NULL
+		     , NULL
+		     , G.CHANGEABLE_YN
+		     , G.CHANGE_FEE_FREE_YN
+		     , G.RETURNABLE_YN
+		     , G.RETURN_FEE_FREE_YN
+		     , 'N'
+		     , NULL
+		     , NULL
+		     , NULL
+		     , #{delvAddrSq}
+		     , #{delvFeeCd}
+		     , #{shotDelvYn}
+		     , #{giftPackYn}
+		     , 'N'
+		     , G.ORDER_MADE_YN
+		     , #{entryNo}
+		     , NULL
+		     , NULL
+		     , NULL
+		     , NULL
+		     , NULL
+		     , NULL
+		     , NULL
+		     , NULL
+		     , NULL
+		     , NULL
+		     , NULL
+		     , CA.AF_LINK_CD
+		     , CA.ITHR_CD
+		     , CA.CONTENTS_LOC
+		     , CA.PLAN_DTL_SQ
+		     , NULL
+		     , #{custNo}
+		     , NOW()
+		     , #{custNo}
+		     , NOW()
+		FROM  TB_CART CA
+		INNER JOIN TB_GOODS G
+		ON    CA.GOODS_CD = G.GOODS_CD 
+		WHERE 1=1
+		AND   CART_SQ = ${cartSq}
+	</insert>
+	
+	
 </mapper>