瀏覽代碼

1. 주문 교환 임시 커밋

card007 5 年之前
父節點
當前提交
eec79763f4

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

@@ -55,4 +55,14 @@ public interface TscOrderDao {
 	 */
 	int createOrderDetailItemHstForExchange(Order order);
 
+	/**
+	 * 주문배송주소 등록
+	 *
+	 * @param Order - 주문 정보
+	 * @return int
+	 * @author card007
+	 * @since 2021. 01. 26
+	 */
+	int createDeliveryAddr(Order order);
+
 }

+ 86 - 44
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -727,6 +727,7 @@ public class TscOrderChangeService {
 	 * @author jsh77b
 	 * @since 2021. 01. 19
 	 */
+	@Transactional("shopTxnManager")
 	public GagaMap exchReq(OrderChange excReq) {
 		GagaMap result = new GagaMap();
 		result.set("status", GagaResponseStatus.FAIL.getCode());
@@ -758,82 +759,123 @@ public class TscOrderChangeService {
 		String recipBaseAddr = excReq.getRecipBaseAddr();
 		String recipDtlAddr = excReq.getRecipDtlAddr();
 		
-		// 
+		// 교환신청 목록 설정
 		Collection<Order> excReqList = excReq.getCancelReqList();
+
+		// 추가배송비 관련 상태값 설정
+		String orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE.value();
+		String ordDtlStat = TscConstants.OrderDetailStat.REFUND_CONFIRM_WAIT.value();
+
+		if (addPayCost > 0) {
+			orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE_WAIT.value();
+			ordDtlStat = TscConstants.OrderDetailStat.PAYMENT_WAIT.value();
+		}
 		
 		// 1. 재고 체크 (세트아이템 포함)
-		
 
-		// 2. 교환상품 주문 상세 등록
+
+		// 2. TB_DELIVERY_ADDR 등록
+		Order deliveryAddr = new Order();
+		deliveryAddr.setRecipNm(excReq.getRecipNm());
+		deliveryAddr.setRecipPhnno(excReq.getRecipPhnno());
+		deliveryAddr.setRecipTelno(excReq.getRecipTelno());
+		deliveryAddr.setRecipZipcode(excReq.getRecipZipcode());
+		deliveryAddr.setRecipBaseAddr(excReq.getRecipBaseAddr());
+		deliveryAddr.setRecipDtlAddr(excReq.getRecipDtlAddr());
+		deliveryAddr.setDelvMemo(excReq.getDelvMemo());
+		deliveryAddr.setRegNo(excReq.getRegNo());
+		deliveryAddr.setUpdNo(excReq.getUpdNo());
+		
+		orderDao.createDeliveryAddr(deliveryAddr);
+		
+		int delvAddrSq = deliveryAddr.getDelvAddrSq();
+		
+		// 3. TB_ORDER_CHANGE 등록
 		int preOrdDtlNo = 0;
+		String preDelvFeeCd = "";
+		int ordChgSq = 0;
 		for (Order order : excReqList) {
+			String delvFeeCd = order.getDelvFeeCd();
+			
+			if (!preDelvFeeCd.equals(delvFeeCd)) {
+				OrderChange orderChange = new OrderChange();
+				orderChange.setChgGb(TscConstants.OrderChangeGb.EXCHANGE.value());
+				orderChange.setChgReason(excReq.getChgReason());
+				orderChange.setChgMemo(excReq.getChgMemo());
+				orderChange.setChgerNm(excReq.getChgerNm());
+				orderChange.setChgerPhnno(excReq.getChgerPhnno());
+				orderChange.setChgerTelno(excReq.getChgerTelno());
+				orderChange.setChgerEmail(excReq.getChgerEmail());
+				orderChange.setChgerZipcode(excReq.getChgerZipcode());
+				orderChange.setChgerBaseAddr(excReq.getChgerBaseAddr());
+				orderChange.setChgerDtlAddr(excReq.getChgerDtlAddr());
+				orderChange.setChgerRtnMemo(excReq.getChgerRtnMemo());
+				orderChange.setAddPayCost(excReq.getAddPayCost());
+				orderChange.setAddPayAmt(excReq.getAddPayAmt());
+				orderChange.setRegNo(excReq.getRegNo());
+				orderChange.setUpdNo(excReq.getUpdNo());
+
+				orderChangeDao.createOrderChange(orderChange);
+				
+				preDelvFeeCd = delvFeeCd;
+				
+				// 생성된 ordChgSq 설정
+				ordChgSq = orderChange.getOrdChgSq();
+
+				// 3. TB_DELIVERY_FEE 추가배송비 등록
+			}
+			
+			// 2. 교환대상 정보 등록
 			int ordDtlNo = order.getOrdDtlNo();
+			int exchangeOrdDtlNo = 0;
 
 			if (preOrdDtlNo != ordDtlNo) {
-				// 2. TB_ORDER_DETAIL 등록
+				// 2-1. TB_ORDER_DETAIL 등록
 				Order ordDtl = new Order();
-				ordDtl.setOrdDtlNo(order.getOrdDtlNo());
-				ordDtl.setOrdDtlStat(TscConstants.OrderDetailStat.WITHDRAW_CONFIRM_WAIT.value());
+				ordDtl.setOrdDtlNo(ordDtlNo);
+				ordDtl.setOrdDtlStat(ordDtlStat);
 				ordDtl.setChgQty(order.getChgQty());
+				ordDtl.setDelvAddrSq(delvAddrSq);
 				ordDtl.setRegNo(order.getRegNo());
 				ordDtl.setUpdNo(order.getUpdNo());
 				orderDao.createOrderDetailForExchange(ordDtl);
 
-				// 3. TB_ORDER_DETAIL_HST 등록
+				// 2-2. TB_ORDER_DETAIL_HST 등록
 				orderDao.createOrderDetailHstForExchange(ordDtl);
 				
 				preOrdDtlNo = ordDtlNo;
+				exchangeOrdDtlNo = ordDtl.getExchangeOrdDtlNo();
+
+				// 2-3. TB_ORDER_CHANGE_DETAIL 등록
+				OrderChange orderChangeDetail = new OrderChange();
+				orderChangeDetail.setOrdChgSq(ordChgSq);
+				orderChangeDetail.setOrdDtlNo(ordDtlNo);
+				orderChangeDetail.setChgQty(order.getChgQty());
+				orderChangeDetail.setChgStat(orderChangeStat);
+				orderChangeDetail.setChgOrdDtlNo(exchangeOrdDtlNo);
+				orderChangeDetail.setRegNo(order.getRegNo());
+				orderChangeDetail.setUpdNo(order.getUpdNo());
 			}
 
-			// 4. TB_ORDER_DETAIL_ITEM 등록
+			// 2-4. TB_ORDER_DETAIL_ITEM 등록
 			Order ordDtlItem = new Order();
 			ordDtlItem.setOrdDtlItemSq(order.getOrdDtlItemSq());
-			ordDtlItem.setOrdDtlNo(order.getOrdDtlNo());
-			ordDtlItem.setOrdDtlStat(TscConstants.OrderDetailStat.WITHDRAW_CONFIRM_WAIT.value());
+			ordDtlItem.setOrdDtlNo(ordDtlNo);
+			ordDtlItem.setOrdDtlStat(ordDtlStat);
 			ordDtlItem.setOrdChgOpt(order.getOrdChgOpt());
 			ordDtlItem.setRegNo(order.getRegNo());
 			ordDtlItem.setUpdNo(order.getUpdNo());
 			
 			orderDao.createOrderDetailItemForExchange(ordDtlItem);
 
-			// 5. TB_ORDER_DETAIL_ITEM_HST 등록
+			// 2-5. TB_ORDER_DETAIL_ITEM_HST 등록
 			orderDao.createOrderDetailItemHstForExchange(ordDtlItem);
-		}
-		
-		// 6. TB_ORDER_CHANGE 등록
-		OrderChange orderChange = new OrderChange();
-		orderChange.setChgGb(TscConstants.OrderChangeGb.EXCHANGE.value());
-		orderChange.setChgReason(excReq.getChgReason());
-		orderChange.setChgMemo(excReq.getChgMemo());
-		orderChange.setChgerNm(excReq.getChgerNm());
-		orderChange.setChgerPhnno(excReq.getChgerPhnno());
-		orderChange.setChgerTelno(excReq.getChgerTelno());
-		orderChange.setChgerEmail(excReq.getChgerEmail());
-		orderChange.setChgerZipcode(excReq.getChgerZipcode());
-		orderChange.setChgerBaseAddr(excReq.getChgerBaseAddr());
-		orderChange.setChgerDtlAddr(excReq.getChgerDtlAddr());
-		orderChange.setChgerRtnMemo(excReq.getChgerRtnMemo());
-		orderChange.setAddPayCost(excReq.getAddPayCost());
-		orderChange.setAddPayAmt(excReq.getAddPayAmt());
-		orderChange.setRegNo(excReq.getRegNo());
-		orderChange.setUpdNo(excReq.getUpdNo());
-		
-		orderChangeDao.createOrderChange(orderChange);
-		
-		// 생성된 ordChgSq 설정
-		excReq.setOrdChgSq(orderChange.getOrdChgSq());
 
-		// 7. TB_ORDER_CHANGE_DETAIL 등록
-		String orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE.value();
-
-		if (addPayCost > 0) {
-			orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE_WAIT.value();
+			
+			
 		}
 
-		// 8. TB_DELIVERY_FEE 추가배송비 등록
-		
-		// 9. TB_SELL_QTY 등록
-
+		// 4. TB_SELL_QTY 등록
 
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
 		

+ 3 - 1
src/main/java/com/style24/core/support/env/TscConstants.java

@@ -90,7 +90,8 @@ public class TscConstants {
 	// 주문상세상태
 	public enum OrderDetailStat {
 		DEPOSIT_WAIT("G013_10"),			// 입금대기
-		WITHDRAW_CONFIRM_WAIT("G013_17"),	// 회수컨펌대기
+		PAYMENT_WAIT("G013_11"),			// 추가결제대기
+		REFUND_CONFIRM_WAIT("G013_17"),		// 발주대기-환불컨펌
 		ORDER_WAIT_PRICE("G013_18"),		// 발주대기-가격차이
 		ORDER_WAIT_POST("G013_19"),			// 발주대기-우편번호상이
 		PAYMENT_COMPLETE("G013_20"),		// 결제완료
@@ -100,6 +101,7 @@ public class TscConstants {
 		SHIP_COMPLETE("G013_55"),			// 출고완료
 		DELIVERY_COMPLETE("G013_60"),		// 배송완료
 		PURCHASE_CONFIRM("G013_70"),		// 구매확정
+		EXCHANGE_CANCEL("G013_97"),			// 교환취소
 		PAYMENT_BEFORE_CANCEL("G013_98"),	// 결제전주문취소
 		PAYMENT_AFTER_CANCEL("G013_99");	// 결제후주문취소
 

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

@@ -373,6 +373,6 @@ public class Order extends TscBaseDomain {
 	private String rtnLocDtlAddr;
 	private String rtnLocTelno;
 	private String rtnLocNm;
-	private String exchangeOrdDtlNo;
-	private String exchangeOrdDtlItemSq;
+	private int exchangeOrdDtlNo;
+	private int exchangeOrdDtlItemSq;
 }

+ 1 - 0
src/main/java/com/style24/persistence/domain/OrderChange.java

@@ -66,6 +66,7 @@ public class OrderChange extends TscBaseDomain {
 	private String recipDtlAddr;
 	private String recipPhnno;
 	private String recipTelno;
+	private String delvMemo;
 
 	private int chgOrdDtlNo;
 	private String completeDt;

+ 33 - 11
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -3,12 +3,8 @@
 <mapper namespace="com.style24.core.biz.dao.TscOrderDao">
 
 	<!-- 주문상세정보 생성 -->
-	<insert id="createOrderDetailForExchange" parameterType="Order">
+	<insert id="createOrderDetailForExchange" parameterType="Order" keyProperty="exchangeOrdDtlNo">
 		/* order.createOrderDetailForExchange */
-		<selectKey keyProperty="exchangeOrdDtlNo" resultType="int" order="AFTER">
-			SELECT LAST_INSERT_ID()
-		</selectKey>
-
 		INSERT INTO TB_ORDER_DETAIL (
 			ORD_NO
 		  , ORD_EXCH_GB
@@ -129,7 +125,7 @@
 			 , SOLDOUT_MEMO
 			 , SOLDOUT_REG_NO
 			 , SOLDOUT_REG_DT
-			 , DELV_ADDR_SQ
+			 , #{delvAddrSq}
 			 , DELV_FEE_CD
 			 , SHOT_DELV_YN
 			 , GIFT_PACK_YN
@@ -315,12 +311,8 @@
 	</insert>
 
 	<!-- 주문상세단품정보 생성 -->
-	<insert id="createOrderDetailItemForExchange" parameterType="Order">
+	<insert id="createOrderDetailItemForExchange" parameterType="Order" keyProperty="exchangeOrdDtlItemSq">
 		/* order.createOrderDetailItemForExchange */
-		<selectKey keyProperty="exchangeOrdDtlItemSq" resultType="int" order="AFTER">
-			SELECT LAST_INSERT_ID()
-		</selectKey>
-		
 		INSERT INTO TB_ORDER_DETAIL_ITEM (
 			ORD_DTL_NO
 		  , ORD_NO
@@ -457,6 +449,36 @@
 		  FROM TB_ORDER_DETAIL_ITEM
 		 WHERE ORD_DTL_ITEM_SQ = #{exchangeOrdDtlItemSq} 
 	</insert>
+	
+	<!-- 주문배송주소 등록 -->
+	<insert id="createDeliveryAddr" parameterType="Order" keyProperty="delvAddrSq">
+		/* order.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 (
+			#{recipNm}
+		  , #{recipPhnno}
+		  , #{recipTelno}
+		  , #{recipZipcode}
+		  , #{recipBaseAddr}
+		  , #{recipDtlAddr}
+		  , #{delvMemo}
+		  , #{regNo}
+		  , NOW()
+		  , #{updNo}
+		  , NOW()
+		)
+	</insert>
 
 </mapper>
 

+ 2 - 0
src/main/java/com/style24/persistence/mybatis/shop/TscOrderChange.xml

@@ -261,6 +261,8 @@
 		     , OD.AGENT_ORDER_ID 
 		     , OD.EXTMALL_ORDER_ID 
 		     , OCD.CHG_QTY * ODI.ITEM_QTY AS SELL_QTY
+		     , #{regNo}
+		     , NOW()
 		FROM   TB_ORDER_CHANGE_DETAIL OCD
 		INNER  JOIN TB_ORDER_DETAIL_ITEM ODI
 		ON     OCD.ORD_DTL_NO = ODI.ORD_DTL_NO