Bladeren bron

취소신청, 취소완료 통합 작업

jsh77b 5 jaren geleden
bovenliggende
commit
4aed7fe2c7

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

@@ -134,6 +134,16 @@ public interface TscOrderChangeDao {
 	 * @since 2020. 12. 22
 	 */
 	int updateOrdFreegiftDel(Order order);
+	
+	/**
+	 * 주문변경상세정보 수정(취소신청 철회)
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 01. 26
+	 */
+	int updateOrderChangeDtlCancel(Order order);
 
 }
 

+ 75 - 18
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -128,6 +128,7 @@ public class TscOrderChangeService {
 		String allCanYn		= mav.getString("allCanYn").toString();								// 무통장입금전 전체취소 여부
 		String isCustomer	= mav.getString("isCustomer").toString();							// 귀책사유 (고객, 회사)		
 		String chgGb		= TscConstants.OrderChangeGb.CANCEL.value(); 						// 취소요청
+		String reqGbn		= mav.get("reqGbn").toString();										// 신청구분							
 		
 		// 4. 주문상세단품정보등록,변경 (단품단위)
 		List<Order> cancelOrderDetailList = new ArrayList<Order>();
@@ -263,14 +264,39 @@ public class TscOrderChangeService {
 	}
 	
 	/**
-	 * 취소신청완료 (admin)
+	 * 취소신청철회 (admin)
 	 * @param Order
 	 * @return Order
 	 * @author jsh77b
 	 * @since 2021. 01. 19
 	 */
 	@Transactional("shopTxnManager")
-	public GagaMap cnclReqComplete(GagaMap mav, int userNo) {
+	public GagaMap cnclReqCancel(GagaMap mav, int userNo) {
+		
+		Order order = new Order();
+		
+		// 1. 주문정보 이력 등록 (TB_ORDER_DETAIL_HST(등록))
+		
+		
+		// 2. 주문변경정보 (TB_ORDER_CHANGE_DTL(수정))
+		order.setOrdChgSq(mav.getInt("ordChgSq"));
+		orderChangeDao.updateOrderChangeDtlCancel(order);
+		
+		// To Do List
+		// 3. PG 실행 (취소시 추가결제금액 취소처리)
+		
+		return mav;
+	}
+	
+	/**
+	 * 취소신청승인 (admin)
+	 * @param Order
+	 * @return Order
+	 * @author jsh77b
+	 * @since 2021. 01. 19
+	 */
+	@Transactional("shopTxnManager")
+	public GagaMap cnclcnclComplete(GagaMap mav, int userNo) {
 		
 		// 1. 환불금액계산
 		
@@ -324,6 +350,7 @@ public class TscOrderChangeService {
 		String allCanYn		= mav.getString("allCanYn").toString();								// 무통장입금전 전체취소 여부
 		String isCustomer	= mav.getString("isCustomer").toString();							// 귀책사유 (고객, 회사)
 		String chgGb		= TscConstants.OrderChangeGb.CANCEL.value(); 						// 취소요청 (공톹코드:G680)
+		String reqGbn		= mav.get("reqGbn").toString();										// 신청구분
 		
 		// 4. 주문상세단품정보등록,변경 (단품단위)
 		List<Order> cancelOrderDetailList = new ArrayList<Order>();
@@ -334,20 +361,27 @@ public class TscOrderChangeService {
 			cancelOrderRefundPo.setUpdNo(userNo);
 			
 			// 2020.01.05 추후 무통장입금전 전체 취소시 분기 로직 추가 예정
-			if ("Y".equals(allCanYn)) {
-				cancelOrderRefundPo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_BEFORE_CANCEL.value()); 	// 결제전주문취소 (공통코드:G685)
-			} else {
-				cancelOrderRefundPo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value());	// 결제후주문취소 (공통코드:G685)
+			// 2021.01.26 취소완료일때실행
+			if ("cnclComplete".equals(reqGbn)) {
+				if ("Y".equals(allCanYn)) {
+					cancelOrderRefundPo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_BEFORE_CANCEL.value()); 	// 결제전주문취소 (공통코드:G685)
+				} else {
+					cancelOrderRefundPo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value());	// 결제후주문취소 (공통코드:G685)
+				}
 			}
 
 			// 4.1 취소수량이 존재하면 주문상세단품정보 수정 및 주문상세단품이력정보 등록
 			if (cancelOrderRefundPo.getOrdCanChgQty() > 0) {
 				
+				// 2021.01.26 취소완료일때실행
 				// 4.2 주문상세단품정보수정 (TB_ORDER_DETAIL_ITEM)
-				orderChangeDao.updateOrderDetailItem(cancelOrderRefundPo);
+				if ("cnclComplete".equals(reqGbn)) {
+					orderChangeDao.updateOrderDetailItem(cancelOrderRefundPo);
 				
-				// 4.3 주문상세단품정보이력등록 (TB_ORDER_DETAIL_ITEM_HST) 
-				orderChangeDao.createOrderDetailItemHst(cancelOrderRefundPo);
+				
+					// 4.3 주문상세단품정보이력등록 (TB_ORDER_DETAIL_ITEM_HST) 
+					orderChangeDao.createOrderDetailItemHst(cancelOrderRefundPo);
+				}
 				
 				// 4.4 주문변경 상세 단위로 데이타 등록 (ORD_DTL_NO)
 				Boolean temp = false;
@@ -410,18 +444,26 @@ public class TscOrderChangeService {
 					// 5.3.0 DEVL_FEE_CD 단위로 주문상세 정보 처리
 					if (obj.getDelvFeeCd().equals(vo.getDelvFeeCd())) {
 						
+						// 2021.01.26 취소완료일때실행
 						// 2020.01.05 추후 무통장입금전 전체 취소시 분기로직 추가 예정
-						if ("Y".equals(allCanYn)) {
-							vo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_BEFORE_CANCEL.value()); 	// 결제전주문취소
+						if ("cnclComplete".equals(reqGbn)) {
+							if ("Y".equals(allCanYn)) {
+								vo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_BEFORE_CANCEL.value()); 	// 결제전주문취소
+							} else {
+								vo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value()); 	// 결제후주문취소
+							}
 						} else {
-							vo.setOrdDtlStat(TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value()); 	// 결제후주문취소
+							vo.setOrdDtlStat(TscConstants.OrderChangeStat.CANCEL.value()); 						// 취소신청
 						}
 						
 						// 5.3.1 주문변경상세정보 이력등록
 						orderChangeDao.createOrderDetailHstCnclRtn(vo);
 						
+						// 2021.01.26 취소완료일때실행
 						// 5.3.2 주문변경상세정보 수정
-						orderChangeDao.updateOrderDetail(vo);
+						if ("cnclComplete".equals(reqGbn)) {
+							orderChangeDao.updateOrderDetail(vo);
+						}
 						
 						// * 주문상세단위가 아닌 주문상세단품단위로 데이타가 처리되고 있었음 주문상세단위로 수정
 						// 5.3 주문변경상세정보 등록
@@ -429,16 +471,25 @@ public class TscOrderChangeService {
 						changeDetailPo.setOrdChgSq(orderChange.getOrdChgSq());
 						changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
 						changeDetailPo.setChgQty(vo.getOrdCanChgQty());
-						changeDetailPo.setChgStat(TscConstants.OrderChangeStat.CANCEL_COMPLETE.value()); 	// 취소완료
 						changeDetailPo.setRegNo(userNo);
 						changeDetailPo.setUpdNo(userNo);
 						
+						// 2021.01.26 취소완료일때실행
+						if ("cnclComplete".equals(reqGbn)) {
+							changeDetailPo.setChgStat(TscConstants.OrderChangeStat.CANCEL_COMPLETE.value()); 	// 취소완료
+						} else {
+							changeDetailPo.setChgStat(TscConstants.OrderChangeStat.CANCEL.value()); 	// 취소신청
+						}
+						
 						orderChangeDao.createOrderChangeDetail(changeDetailPo);
 					}
 				}
-
+				
+				// 2021.01.26 취소완료일때실행
 				// 5.31 상품재고원복 (TB_SELL_QTY 등록(취소,반품))
-				orderChangeDao.createSellQty(orderChange);
+				if ("cnclComplete".equals(reqGbn)) {
+					orderChangeDao.createSellQty(orderChange);
+				}
 				
 				// 5.4 환불결제정보 등록 (업체별 & 배송정책별) 단위
 				// 취소, 반품 사유에 따른 추가배송비, 반품배송비를 환불금액에서 추가, 제외 할 수 있다.
@@ -465,7 +516,10 @@ public class TscOrderChangeService {
 				paymentOrder.setRegNo(userNo);
 				paymentOrder.setUpdNo(userNo);
 				
-				orderChangeDao.createPayment(paymentOrder);
+				// 2021.01.26 취소완료일때실행
+				if ("cnclComplete".equals(reqGbn)) {
+					orderChangeDao.createPayment(paymentOrder);
+				}
 				
 				// 5.5 환불금액 등록
 				Order refundOrder = new Order();
@@ -506,7 +560,10 @@ public class TscOrderChangeService {
 					delvFeeOrder.setRegNo(userNo);
 					delvFeeOrder.setUpdNo(userNo);
 					
-					orderChangeDao.createDeliveryFee(delvFeeOrder);
+					// 2021.01.26 취소완료일때실행
+					if ("cnclComplete".equals(reqGbn)) {
+						orderChangeDao.createDeliveryFee(delvFeeOrder);
+					}
 				}
 			}
 		}

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

@@ -73,4 +73,6 @@ public class OrderChange extends TscBaseDomain {
 	private String wdReasonCd;
 	private String wdStateDt;
 	private String delYn;
+	
+	private String reqGbn;
 }

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

@@ -537,22 +537,22 @@
 			 , CURRENT_TIMESTAMP() AS UPD_DT
 		FROM   TB_ORDER_DETAIL OD
 		INNER  JOIN (
-		SELECT ODI.ORD_DTL_NO
-		     , SUM(ODI.ORD_AMT) AS ORD_AMT
-		     , SUM(ODI.CNCL_RTN_AMT) AS CNCL_RTN_AMT
-		     , SUM(ODI.CPN1_DC_AMT) AS CPN1_DC_AMT
-		     , SUM(ODI.TMTB1_DC_AMT) AS TMTB1_DC_AMT
-		     , SUM(ODI.TMTB2_DC_AMT) AS TMTB2_DC_AMT
-		     , SUM(ODI.GOODS_CPN_DC_AMT) AS GOODS_CPN_DC_AMT
-		     , SUM(ODI.CART_CPN_DC_AMT) AS CART_CPN_DC_AMT
-		     , SUM(ODI.PNT_DC_AMT) AS PNT_DC_AMT
-		     , SUM(ODI.PRE_PNT_DC_AMT) AS PRE_PNT_DC_AMT
-		     , SUM(ODI.SAVE_PNT_AMT) AS SAVE_PNT_AMT
-		     , SUM(ODI.REAL_ORD_AMT) AS REAL_ORD_AMT
-		     , SUM(ODI.GFCD_USE_AMT) AS GFCD_USE_AMT
-		FROM   TB_ORDER_DETAIL_ITEM ODI
-		WHERE  ODI.ORD_DTL_NO = #{ordDtlNo}
-		GROUP  BY ODI.ORD_DTL_NO
+			SELECT ODI.ORD_DTL_NO
+			     , SUM(ODI.ORD_AMT) AS ORD_AMT
+			     , SUM(ODI.CNCL_RTN_AMT) AS CNCL_RTN_AMT
+			     , SUM(ODI.CPN1_DC_AMT) AS CPN1_DC_AMT
+			     , SUM(ODI.TMTB1_DC_AMT) AS TMTB1_DC_AMT
+			     , SUM(ODI.TMTB2_DC_AMT) AS TMTB2_DC_AMT
+			     , SUM(ODI.GOODS_CPN_DC_AMT) AS GOODS_CPN_DC_AMT
+			     , SUM(ODI.CART_CPN_DC_AMT) AS CART_CPN_DC_AMT
+			     , SUM(ODI.PNT_DC_AMT) AS PNT_DC_AMT
+			     , SUM(ODI.PRE_PNT_DC_AMT) AS PRE_PNT_DC_AMT
+			     , SUM(ODI.SAVE_PNT_AMT) AS SAVE_PNT_AMT
+			     , SUM(ODI.REAL_ORD_AMT) AS REAL_ORD_AMT
+			     , SUM(ODI.GFCD_USE_AMT) AS GFCD_USE_AMT
+			FROM   TB_ORDER_DETAIL_ITEM ODI
+			WHERE  ODI.ORD_DTL_NO = #{ordDtlNo}
+			GROUP  BY ODI.ORD_DTL_NO
 		) Z
 		ON    OD.ORD_DTL_NO = Z.ORD_DTL_NO
 		AND   OD.ORD_DTL_NO = #{ordDtlNo}
@@ -802,6 +802,17 @@
 		)
 	</insert>
 	
+	<!-- 주문변경상세정보 취소 -->
+	<update id="updateOrderChangeDtlCancel" parameterType="Order">
+		/* OrderChange.updateOrderChangeDtlCancel */
+		UPDATE TB_ORDER_CHANGE_DETAIL
+		SET    CHG_STAT 	= #{chgStat}
+		     , UPD_NO 		= #{updNo}
+		     , UPD_DT 		= #{updDt}
+		WHERE  1=1
+		AND    ORD_CHG_SQ 	= #{ordChgSq}
+	</update>
+	
 	
 	
 </mapper>