Parcourir la source

전체 반품 배송비 오류 처리 임시 커밋

card007 il y a 4 ans
Parent
commit
09472ec9ce

+ 10 - 0
src/main/java/com/style24/front/biz/dao/TsfOrderChangeDao.java

@@ -97,4 +97,14 @@ public interface TsfOrderChangeDao {
 	 */
 	Collection<OrderChange> getPagingCreList(OrderChange orderChange);
 
+	/**
+	 * 마이페이지 반품 주문 정보 조회
+	 *
+	 * @param Order
+	 * @return Collection<Order>
+	 * @author card007
+	 * @since 2021. 09. 07
+	 */
+	Collection<Order> getReturnOrderInfo(Order order);
+
 }

+ 3 - 0
src/main/java/com/style24/front/biz/service/TsfOrderChangeService.java

@@ -120,8 +120,11 @@ public class TsfOrderChangeService {
 		Order oneData = result.iterator().next();
 		oneData.setOrdDtlNoArr(ordDtlNoList.stream().mapToInt(Integer::intValue).toArray());
 
+		Collection<Order> returnOrderInfo = orderChangeDao.getReturnOrderInfo(order);
+
 		map.set("oneData", oneData);
 		map.set("returnList", result);
+		map.set("returnOrderInfo", returnOrderInfo);
 		map.set("returnAbleYn", returnAbleYn);
 
 		return map;

+ 30 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml

@@ -813,4 +813,34 @@
 		 GROUP BY OCD.ORD_CHG_SQ
 		<include refid="selectForPagingFooter"/>
 	</select>
+	
+	<!-- 마이페이지 반품 주문 정보 조회 -->
+	<select id="getReturnOrderInfo" parameterType="Order" resultType="Order">
+		/* TsfOrderChange.getReturnOrderInfo */
+		SELECT OD.ORD_DTL_NO
+		     , OD.ORD_QTY
+		     , DF.DELV_FEE
+		     , DF.DELV_CPN_DC_AMT
+		     , DF.DELV_GFCD_USE_AMT
+		     , DF.REAL_DELV_AMT
+		     , DFP.DELV_FEE                        AS ORG_DELV_FEE
+		  FROM TB_ORDER O
+		 INNER JOIN TB_ORDER_DETAIL OD
+		    ON O.ORD_NO = OD.ORD_NO
+		 INNER JOIN (SELECT ORD_NO
+		                  , SUM(DELV_FEE)          AS DELV_FEE
+		                  , SUM(DELV_CPN_DC_AMT)   AS DELV_CPN_DC_AMT
+		                  , SUM(DELV_GFCD_USE_AMT) AS DELV_GFCD_USE_AMT
+		                  , SUM(REAL_DELV_AMT)     AS REAL_DELV_AMT
+		               FROM TB_DELIVERY_FEE
+		              WHERE ORD_NO = #{ordNo}
+		                AND DELV_FEE_GB = 'G018_10'
+		              GROUP BY ORD_NO
+		            ) DF
+		    ON O.ORD_NO = DF.ORD_NO
+		 INNER JOIN TB_DELV_FEE_POLICY DFP
+		    ON OD.DELV_FEE_CD = DFP.DELV_FEE_CD
+		 WHERE O.ORD_NO = #{ordNo}
+		   AND OD.DELV_FEE_CD = #{delvFeeCd}
+	</select>
 </mapper>

+ 41 - 1
src/main/webapp/WEB-INF/views/web/mypage/MypageReturnFormWeb.html

@@ -363,6 +363,7 @@
 <script th:inline="javascript">
 	var isLogin = [[${isLogin}]];
 	let returnList = [[${returnList.returnList}]];
+	let returnOrderInfo = [[${returnList.returnOrderInfo}]];
 	let oneData = [[${oneData}]];
 	let paymentInfo = [[${paymentInfo}]];
 	let isCustomer = true;
@@ -509,16 +510,45 @@
 			let cnclRtnReqQtyArr = [];
 			let ordDtlNoArr = [];
 			let ordCanChgQtyArr = [];
+			let allDelvCanYn = '';
 			$.each($('#returnForm input[name=chgQty]'), function(idx, item) {
 				let chgQty = $(item).val();
 				let ordDtlNo = $(item).attr('ordDtlNo');
 				let ordCanChgQty = $(item).attr('ordCanChgQty');
-				
+
 				cnclRtnReqQtyArr.push(Number(chgQty));
 				ordDtlNoArr.push(Number(ordDtlNo));
 				ordCanChgQtyArr.push(Number(ordCanChgQty));
 			});
 
+			// 2021.09.07 card007 전체반품 원배송비 무료 해택 차감 처리
+			let delvFee;
+			let delvCpnDcAmt;
+			let delvGfcdUseAmt;
+			let realDelvAmt;
+			let orgDelvFee;
+			
+			if (returnOrderInfo != null && returnOrderInfo.length > 0) {
+				allDelvCanYn 	= 'Y';
+				delvFee 		= returnOrderInfo[0].delvFee;
+				delvCpnDcAmt 	= returnOrderInfo[0].delvCpnDcAmt;
+				delvGfcdUseAmt 	= returnOrderInfo[0].delvGfcdUseAmt;
+				realDelvAmt 	= returnOrderInfo[0].realDelvAmt;
+				orgDelvFee 		= returnOrderInfo[0].orgDelvFee;
+
+				$.each(returnOrderInfo, function (index, orderInfo) {
+					if (!ordDtlNoArr.includes(orderInfo.ordDtlNo)) {
+						allDelvCanYn = 'N';
+					} else {
+						let idx = ordDtlNoArr.findIndex(orderInfo.ordDtlNo);
+						
+						if (orderInfo.ordQty != cnclRtnReqQtyArr[idx]) {
+							allDelvCanYn = 'N';
+						}
+					}
+				});
+			}
+
 			let data = {};
 			data.ordNo = oneData.ordNo;
 			data.chgGb = 'G680_30';
@@ -553,6 +583,16 @@
 					spanTotRtnDelvFee = 0;
 				}
 
+				// 2021.09.07 card007 전체반품 원배송비 무료 해택 차감 처리
+				// 배송비정책 기준 전체 반품이고 귀책사유일때
+				if (allDelvCanYn == 'Y' && isCustomer) {
+					// 기 결제한 배송비 금액이 없을때
+					if (delvGfcdUseAmt + realDelvAmt == 0) {
+						// 원주문배송비 추가
+						spanTotRtnDelvFee += orgDelvFee;
+					}
+				}
+
 				// 추가배송비 영역 설정
 				// 2021.08.10 card007 상품권100% 결제 로직 수정
 				let refundAmt 			= spanRefundAmt + spanGfcdUseAmt;