Forráskód Böngészése

Merge remote-tracking branch 'origin/jsh77b' into develop

card007 5 éve
szülő
commit
d47d24ecd4

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

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

+ 79 - 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,43 @@ 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();
+		order.setOrdNo(mav.getInt("ordNo"));
+		order.setOrdChgSq(mav.getInt("ordChgSq"));
+		order.setOrdDtlStat(TscConstants.OrderChangeStat.CANCEL_CANCEL.value());
+		order.setRegNo(userNo);
+		order.setUpdNo(userNo);
+		
+		// 1. 주문변경정보 (TB_ORDER_CHANGE_DTL(수정))
+		orderChangeDao.updateOrderChangeDtlCancel(order);
+		
+		// 2. 주문정보 이력 등록 (TB_ORDER_DETAIL_HST(등록))
+		orderChangeDao.createOrderDtlHstCancel(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 +354,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 +365,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 +448,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 +475,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 +520,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 +564,10 @@ public class TscOrderChangeService {
 					delvFeeOrder.setRegNo(userNo);
 					delvFeeOrder.setUpdNo(userNo);
 					
-					orderChangeDao.createDeliveryFee(delvFeeOrder);
+					// 2021.01.26 취소완료일때실행
+					if ("cnclComplete".equals(reqGbn)) {
+						orderChangeDao.createDeliveryFee(delvFeeOrder);
+					}
 				}
 			}
 		}

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

@@ -250,6 +250,7 @@ public class TscConstants {
 		PAYMENT_BEFORE_CANCEL("G685_10"),	// 결제전취소
 		CANCEL("G685_20"),					// 취소요청
 		CANCEL_COMPLETE("G685_21"),			// 취소완료
+		CANCEL_CANCEL("G685_22"),			// 취소철회
 
 		EXCHANGE("G685_30"),				// 교환요청
 		EXCHANGE_CANCEL("G685_31"),			// 교환요청 취소

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

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

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

@@ -68,7 +68,7 @@
 		AND    OD.ORD_DTL_NO = ODI.ORD_DTL_NO
 		INNER  JOIN TB_GOODS G2
 		ON     ODI.ITEM_CD = G2.GOODS_CD
-		INNER  JOIN (
+		LEFT   OUTER JOIN (
 			SELECT OD.ORD_DTL_NO
 			     , SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
 			FROM   TB_ORDER_CHANGE_DETAIL OCD
@@ -76,6 +76,7 @@
 			ON     OCD.ORD_DTL_NO = OD.ORD_DTL_NO
 			WHERE  1=1
 			AND    OD.ORD_NO = #{ordNo}
+			AND    OCD.DEL_YN = 'N'
 			AND    OCD.CHG_STAT IN (
 				'G685_20', 'G685_30', 'G685_40'
 			)
@@ -537,22 +538,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 +803,176 @@
 		)
 	</insert>
 	
+	<!-- 주문변경상세정보 취소신청철회 -->
+	<update id="updateOrderChangeDtlCancel" parameterType="Order">
+		/* OrderChange.updateOrderChangeDtlCancel */
+		UPDATE TB_ORDER_CHANGE_DETAIL
+		SET    CHG_STAT 	= #{ordDtlStat}
+		     , DEL_YN		= 'Y'
+		     , UPD_NO 		= #{updNo}
+		     , UPD_DT 		= NOW()
+		WHERE  1=1
+		AND    ORD_CHG_SQ 	= #{ordChgSq}
+	</update>
+	
+	<!-- 주문상세이력정보등록 취소신청철회 -->
+	<insert id="createOrderDtlHstCancel" parameterType="Order">
+	INSERT INTO TB_ORDER_DETAIL_HST (
+		ORD_DTL_NO
+		, ORD_NO
+		, ORD_EXCH_GB
+		, ORD_DTL_STAT
+		, ORG_ORD_DTL_NO
+		, SUPPLY_COMP_CD
+		, GOODS_CD
+		, PRODUCT_NO
+		, PRODUCT_CODE
+		, 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
+		, 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 OD.ORD_DTL_NO
+			 , OD.ORD_NO
+			 , OD.ORD_EXCH_GB
+			 , OCD.CHG_STAT
+			 , OD.ORG_ORD_DTL_NO
+			 , OD.SUPPLY_COMP_CD
+			 , OD.GOODS_CD
+			 , OD.PRODUCT_NO
+			 , OD.PRODUCT_CODE
+			 , OD.FORMAL_GB
+			 , OD.GOODS_TYPE
+			 , OD.LIST_PRICE
+			 , OD.CURR_PRICE
+			 , OD.DC_RATE
+			 , OD.OPT_ADD_PRICE
+			 , OD.ORD_QTY
+			 , OD.ORD_AMT
+			 , OCD.CHG_QTY 
+			 , OD.CNCL_RTN_AMT
+			 , OD.CPN1_CPN_SQ
+			 , OD.CPN1_DC_AMT
+			 , OD.TMTB1_SQ
+			 , OD.TMTB1_DC_AMT
+			 , OD.TMTB2_SQ
+			 , OD.TMTB2_DC_AMT
+			 , OD.GOODS_CPN_SQ
+			 , OD.GOODS_CPN_DC_AMT
+			 , OD.CART_CPN_SQ
+			 , OD.CART_CPN_DC_AMT
+			 , OD.BURDEN_RATE
+			 , OD.PNT_DC_AMT
+			 , OD.PRE_PNT_DC_AMT
+			 , OD.SAVE_PNT_AMT
+			 , OD.REAL_ORD_AMT
+			 , OD.GFCD_USE_AMT
+			 , OD.VENDOR_ID
+			 , OD.EXTMALL_ID
+			 , OD.AGENT_ORDER_ID
+			 , OD.EXTMALL_ORDER_ID
+			 , OD.CHANGABLE_YN
+			 , OD.CHANGE_FEE_FREE_YN
+			 , OD.RETURNABLE_YN
+			 , OD.RETURN_FEE_FREE_YN
+			 , OD.SOLDOUT_YN
+			 , OD.SOLDOUT_MEMO
+			 , OD.SOLDOUT_REG_NO
+			 , OD.SOLDOUT_REG_DT
+			 , OD.DELV_ADDR_SQ
+			 , OD.DELV_FEE_CD
+			 , OD.SHOT_DELV_YN
+			 , OD.GIFT_PACK_YN
+			 , OD.MAKE_GOODS_YN
+			 , OD.ENTRY_NO
+			 , OD.DELV_LOC_CD
+			 , OD.DELV_ASSIGN_DT
+			 , OD.DELV_ASSIGN_STAT
+			 , OD.DSTRBT_NOTE
+			 , OD.DELV_STDT
+			 , OD.DELV_EDDT
+			 , OD.SHIP_COMP_CD
+			 , OD.INVOICE_NO
+			 , OD.INVOICE_SEND_YN
+			 , OD.SELL_STORE_CD
+			 , OD.SELL_FEE_RATE
+			 , OD.AF_LINK_CD
+			 , OD.ITHR_CD
+			 , OD.CONTENTS_LOC
+			 , OD.PLAN_DTL_SQ
+			 , OD.SOCIAL_SQ
+			 , #{regNo}
+			 , NOW()
+			 , #{updNo}
+			 , NOW()
+		FROM   TB_ORDER_DETAIL OD
+		INNER  JOIN TB_ORDER_CHANGE_DETAIL OCD
+		ON     OD.ORD_DTL_NO = OCD.ORD_DTL_NO 
+		WHERE  1=1
+		AND    OCD.ORD_CHG_SQ = #{ordChgSq}
+		AND    OD.ORD_NO = #{ordNo}
+	</insert>
+	
 	
 	
 </mapper>