Quellcode durchsuchen

1. 주문 교환 임시 커밋

card007 vor 5 Jahren
Ursprung
Commit
acf89ffa70

+ 65 - 55
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -794,32 +794,11 @@ public class TscOrderChangeService {
 		result.set("status", GagaResponseStatus.FAIL.getCode());
 		
 		// 교환 기본 정보
-		int ordNo = excReq.getOrdNo();						// 주문번호
-		String isCustomer = excReq.getIsCustomer();			// 귀책사유
-		String wdGb = excReq.getWdGb();						// 회수구분 (D:직접배송, W:회수요청)
-		String chgMemo = excReq.getChgMemo();				// 교환메모
 		int addPayCost = excReq.getAddPayCost();			// 추가배송비
+		String wdGb = excReq.getWdGb();						// 회수구분
 		Integer regNo = excReq.getRegNo();					// 등록자번호
 		Integer updNo = excReq.getUpdNo();					// 수정자번호
 		
-		// 회수지 정보
-		String chgerNm = excReq.getChgerNm();
-		String chgerTelno = excReq.getChgerTelno();
-		String chgerPhnno = excReq.getChgerPhnno();
-		String chgerEmail = excReq.getChgerEmail();
-		String chgerZipcode = excReq.getChgerZipcode();
-		String chgerBaseAddr = excReq.getChgerBaseAddr();
-		String chgerDtlAddr = excReq.getChgerDtlAddr();
-		
-		// 교환지 정보
-		String recipNm = excReq.getRecipNm();
-		String recipTelno = excReq.getRecipTelno();
-		String recipPhnno = excReq.getRecipPhnno();
-		String recipEmail = excReq.getRecipEmail();
-		String recipZipcode = excReq.getRecipZipcode();
-		String recipBaseAddr = excReq.getRecipBaseAddr();
-		String recipDtlAddr = excReq.getRecipDtlAddr();
-		
 		// 교환신청 목록 설정
 		Collection<Order> excReqList = excReq.getCancelReqList();
 
@@ -844,25 +823,33 @@ public class TscOrderChangeService {
 		deliveryAddr.setRecipBaseAddr(excReq.getRecipBaseAddr());
 		deliveryAddr.setRecipDtlAddr(excReq.getRecipDtlAddr());
 		deliveryAddr.setDelvMemo(excReq.getDelvMemo());
-		deliveryAddr.setRegNo(excReq.getRegNo());
-		deliveryAddr.setUpdNo(excReq.getUpdNo());
+		deliveryAddr.setRegNo(regNo);
+		deliveryAddr.setUpdNo(updNo);
 		
 		orderDao.createDeliveryAddr(deliveryAddr);
 		
+		// 생성된 delvAddrSq 등록
 		int delvAddrSq = deliveryAddr.getDelvAddrSq();
 		
-		// 3. TB_ORDER_CHANGE 등록
+		// 교환대상 정보 등록
 		int preOrdDtlNo = 0;
 		String preDelvFeeCd = "";
 		int ordChgSq = 0;
+		
 		for (Order order : excReqList) {
 			String delvFeeCd = order.getDelvFeeCd();
+			int chgQty = order.getChgQty();
+			String ordChgOpt = order.getOrdChgOpt();
+			int ordDtlNo = order.getOrdDtlNo();
+			int exchangeOrdDtlNo = 0;
 			
 			if (!preDelvFeeCd.equals(delvFeeCd)) {
+				// 3. TB_ORDER_CHANGE 등록
 				OrderChange orderChange = new OrderChange();
 				orderChange.setChgGb(TscConstants.OrderChangeGb.EXCHANGE.value());
 				orderChange.setChgReason(excReq.getChgReason());
 				orderChange.setChgMemo(excReq.getChgMemo());
+				// orderChange.setWdGb(wdGb);
 				orderChange.setChgerNm(excReq.getChgerNm());
 				orderChange.setChgerPhnno(excReq.getChgerPhnno());
 				orderChange.setChgerTelno(excReq.getChgerTelno());
@@ -871,10 +858,10 @@ public class TscOrderChangeService {
 				orderChange.setChgerBaseAddr(excReq.getChgerBaseAddr());
 				orderChange.setChgerDtlAddr(excReq.getChgerDtlAddr());
 				orderChange.setChgerRtnMemo(excReq.getChgerRtnMemo());
-				orderChange.setAddPayCost(excReq.getAddPayCost());
+				orderChange.setAddPayCost(addPayCost);
 				orderChange.setAddPayAmt(excReq.getAddPayAmt());
-				orderChange.setRegNo(excReq.getRegNo());
-				orderChange.setUpdNo(excReq.getUpdNo());
+				orderChange.setRegNo(regNo);
+				orderChange.setUpdNo(updNo);
 
 				orderChangeDao.createOrderChange(orderChange);
 				
@@ -883,61 +870,84 @@ public class TscOrderChangeService {
 				// 생성된 ordChgSq 설정
 				ordChgSq = orderChange.getOrdChgSq();
 
-				// 3. TB_DELIVERY_FEE 추가배송비 등록
+				// 4. TB_DELIVERY_FEE 추가배송비 등록
+				int delvFee = 0;
+
+				if ("true".equals(excReq.getIsCustomer())) {
+					delvFee = "W".equals(wdGb) ? order.getExcDelvFee() : order.getRtnDelvFee();
+				}
+				
+				Order deliveryFee = new Order();
+				deliveryFee.setOrdNo(excReq.getOrdNo());
+				deliveryFee.setDelvFeeGb(TscConstants.DeliveryFeeGb.EXCHANGE_DELIVERY_FEE.value());
+				deliveryFee.setDelvFeeCd(delvFeeCd);
+				deliveryFee.setDelvFee(delvFee);
+				deliveryFee.setRealDelvAmt(delvFee);
+				deliveryFee.setOrdChgSq(ordChgSq);
+				deliveryFee.setSupplyCompCd(order.getSupplyCompCd());
+				deliveryFee.setRegNo(regNo);
+				deliveryFee.setUpdNo(updNo);
+				
+				orderChangeDao.createDeliveryFee(deliveryFee);
 			}
 			
-			// 2. 교환대상 정보 등록
-			int ordDtlNo = order.getOrdDtlNo();
-			int exchangeOrdDtlNo = 0;
-
 			if (preOrdDtlNo != ordDtlNo) {
-				// 2-1. TB_ORDER_DETAIL 등록
+				// 5. TB_ORDER_DETAIL 등록
 				Order ordDtl = new Order();
 				ordDtl.setOrdDtlNo(ordDtlNo);
 				ordDtl.setOrdDtlStat(ordDtlStat);
-				ordDtl.setChgQty(order.getChgQty());
+				ordDtl.setOptCd2(ordChgOpt);
+				ordDtl.setChgQty(chgQty);
 				ordDtl.setDelvAddrSq(delvAddrSq);
-				ordDtl.setRegNo(order.getRegNo());
-				ordDtl.setUpdNo(order.getUpdNo());
+				ordDtl.setRegNo(regNo);
+				ordDtl.setUpdNo(updNo);
+				
 				orderDao.createOrderDetailForExchange(ordDtl);
 
-				// 2-2. TB_ORDER_DETAIL_HST 등록
-				orderDao.createOrderDetailHstForExchange(ordDtl);
-				
-				preOrdDtlNo = ordDtlNo;
+				// 생성된 ordDtlNo 설정
 				exchangeOrdDtlNo = ordDtl.getExchangeOrdDtlNo();
 
-				// 2-3. TB_ORDER_CHANGE_DETAIL 등록
+				// 6. TB_ORDER_DETAIL_HST 등록
+				orderDao.createOrderDetailHstForExchange(ordDtl);
+
+				// 7. TB_ORDER_CHANGE_DETAIL 등록
 				OrderChange orderChangeDetail = new OrderChange();
 				orderChangeDetail.setOrdChgSq(ordChgSq);
 				orderChangeDetail.setOrdDtlNo(ordDtlNo);
-				orderChangeDetail.setChgQty(order.getChgQty());
+				orderChangeDetail.setChgQty(chgQty);
 				orderChangeDetail.setChgStat(orderChangeStat);
 				orderChangeDetail.setChgOrdDtlNo(exchangeOrdDtlNo);
-				orderChangeDetail.setRegNo(order.getRegNo());
-				orderChangeDetail.setUpdNo(order.getUpdNo());
+				orderChangeDetail.setRegNo(regNo);
+				orderChangeDetail.setUpdNo(updNo);
+				
+				orderChangeDao.createOrderChangeDetail(orderChangeDetail);
+
+				preOrdDtlNo = ordDtlNo;
 			}
 
-			// 2-4. TB_ORDER_DETAIL_ITEM 등록
+			// 8. TB_ORDER_DETAIL_ITEM 등록
 			Order ordDtlItem = new Order();
 			ordDtlItem.setOrdDtlItemSq(order.getOrdDtlItemSq());
 			ordDtlItem.setOrdDtlNo(ordDtlNo);
 			ordDtlItem.setOrdDtlStat(ordDtlStat);
-			ordDtlItem.setOrdChgOpt(order.getOrdChgOpt());
-			ordDtlItem.setRegNo(order.getRegNo());
-			ordDtlItem.setUpdNo(order.getUpdNo());
+			ordDtlItem.setOrdChgOpt(ordChgOpt);
+			ordDtlItem.setRegNo(regNo);
+			ordDtlItem.setUpdNo(updNo);
 			
 			orderDao.createOrderDetailItemForExchange(ordDtlItem);
 
-			// 2-5. TB_ORDER_DETAIL_ITEM_HST 등록
+			// 9. TB_ORDER_DETAIL_ITEM_HST 등록
 			orderDao.createOrderDetailItemHstForExchange(ordDtlItem);
-
-			
-			
 		}
 
-		// 4. TB_SELL_QTY 등록
-
+		// 10. TB_SELL_QTY 등록
+		OrderChange sellQty = new OrderChange();
+		sellQty.setSellGb(TscConstants.SellGb.EXCHANGE.value());
+		sellQty.setRegNo(regNo);
+		sellQty.setOrdChgSq(ordChgSq);
+		
+		orderChangeDao.createSellQty(sellQty);
+		
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
 		
 		return result;

+ 21 - 0
src/main/java/com/style24/core/support/env/TscConstants.java

@@ -329,6 +329,27 @@ public class TscConstants {
 			return value;
 		}
 	}
+	
+	// 판매구분
+	public enum SellGb {
+		ORDER("10"),				// 주문(-)
+		ORDER_CANCEL("11"),			// 주문취소(+)
+		SHIP_CANCEL("12"),			// 미출고(+)
+		EXCHANGE("20"),				// 교환신청(-)
+		EXCHANGE_CANCEL("21"),		// 교환취소(+)
+		SALE("30");					// 판매매출반영(+)
+		
+
+		private String value;
+
+		private SellGb(String value) {
+			this.value = value;
+		}
+
+		public String value() {
+			return value;
+		}
+	}
 //
 //	// 정산구분
 //	public enum UsacGb {

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

@@ -76,4 +76,5 @@ public class OrderChange extends TscBaseDomain {
 	private String delYn;
 	
 	private String reqGbn;
+	private String sellGb;
 }

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

@@ -85,8 +85,8 @@
 			 , ORD_DTL_NO
 			 , SUPPLY_COMP_CD
 			 , GOODS_CD
-			 , PRODUCT_NO
-			 , PRODUCT_CODE
+			 , PRODUCT_NO -- X
+			 , PRODUCT_CODE -- X
 			 , FORMAL_GB
 			 , GOODS_TYPE
 			 , LIST_PRICE
@@ -346,19 +346,19 @@
 		  , UPD_DT
 		)
 		SELECT #{ordDtlNo}
-			 , ORD_NO
+			 , ODI.ORD_NO
 			 , #{ordDtlStat}
-			 , ITEM_CD
-			 , OPT_CD
-			 , OPT_CD1
-			 , #{ordChgOpt}
-			 , SKU_MODEL_NO
-			 , PRODUCT_NO
-			 , PRODUCT_CODE
-			 , ITEM_QTY
-			 , ITEM_PRICE
-			 , OPT_ADD_PRICE
-			 , DISP_ORD
+			 , ODI.ITEM_CD
+			 , OP.OPT_CD
+			 , OP.OPT_CD1
+			 , OP.OPT_CD2
+			 , OP.SKU_MODEL_NO
+			 , OP.PRODUCT_NO
+			 , OP.PRODUCT_CODE
+			 , ODI.ITEM_QTY
+			 , ODI.ITEM_PRICE
+			 , ODI.OPT_ADD_PRICE
+			 , ODI.DISP_ORD
 			 , 0
 			 , 0
 			 , 0
@@ -375,7 +375,13 @@
 			 , NOW()
 			 , #{updNo}
 			 , NOW()
-		  FROM TB_ORDER_DETAIL_ITEM
+		  FROM TB_ORDER_DETAIL_ITEM ODI
+		 INNER JOIN TB_GOODS G
+		    ON ODI.ITEM_CD = G.GOODS_CD
+		 INNER JOIN TB_OPTION OP
+		    ON G.GOODS_CD = OP.GOODS_CD
+		   AND ODI.OPT_CD1 = OP.OPT_CD1
+		   AND OP.OPT_CD2 = #{ordChgOpt}
 		 WHERE ORD_DTL_ITEM_SQ = #{ordDtlItemSq}
 	</insert>
 

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

@@ -256,7 +256,7 @@
 		) 
 		SELECT ODI.ITEM_CD 
 		     , ODI.OPT_CD
-		     , '11'
+		     , #{sellGb}
 		     , ODI.ORD_DTL_NO
 		     , OCD.ORD_CHG_SQ
 		     , OD.AGENT_ORDER_ID