Procházet zdrojové kódy

Merge branch 'card007' into order

card007 před 5 roky
rodič
revize
3ca10422c0

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

@@ -57,17 +57,6 @@ public interface TsfOrderChangeDao {
 	 */
 	Collection<Point> getUsedPointInfo(Order order);
 
-
-	/**
-	 * 마이페이지 취소/반품 환불 사전 정보 조회
-	 *
-	 * @param Order
-	 * @return Collection<Order>
-	 * @author card007
-	 * @since 2021. 03. 25
-	 */
-	Collection<Order> getRefundPreInfo(OrderChange orderChange);
-
 	/**
 	 * 마이페이지 교환 옵션 정보 조회
 	 *

+ 4 - 6
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -151,14 +151,12 @@ public class TsfCartService {
 						}
 					}
 				}
-				
-				// 2021.04.13 jsh77b 주문서에서 유효성 체크를 위해서 추가
-				if ("C".equals(checkGb)) {
-					saveSetTypeCartInfo(params, cartSqList);
-				}
 			}
 
-			saveSetTypeCartInfo(params, cartSqList);
+			// 2021.04.13 jsh77b 주문서에서 유효성 체크를 위해서 추가
+			if ("C".equals(checkGb)) {
+				saveSetTypeCartInfo(params, cartSqList);
+			}
 		} else {
 			for (Cart param : params) {
 				param.setCustNo(login.getCustNo());

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

@@ -142,88 +142,6 @@ public class TsfOrderChangeService {
 		return orderChangeDao.getUsedPointInfo(order);
 	}
 
-	/**
-	 * 마이페이지 취소/반품 환불 사전 정보 조회
-	 *
-	 * @param Order
-	 * @return Collection<Order>
-	 * @author card007
-	 * @since 2021. 03. 25
-	 */
-	public GagaMap getRefundPreInfo(OrderChange orderChange) {
-		GagaMap result = new GagaMap();
-		List<Order> cnclReqList = new ArrayList<>();
-
-		// 취소/반품 신청 정보 설정
-		int[] ordDtlNoArr = orderChange.getOrdDtlNoArr();
-		int[] cnclRtnReqQtyArr = orderChange.getCnclRtnReqQtyArr();
-		List<Integer> ordDtlNoList = Arrays.stream(ordDtlNoArr).boxed().collect(Collectors.toList());
-
-		// 환불 사전 정보 조회
-		Collection<Order> cnclRtnList = orderChangeDao.getRefundPreInfo(orderChange);
-		Order cnclRtn = cnclRtnList.iterator().next();
-
-		// 전체 및 마지막 취소여부 설정
-		String delvFeeCd = "";
-		String allCanYn = "Y";
-		String allLastCanYn = "Y";
-		List<String> delvFeeCdList = new ArrayList<>();
-		for (Order order : cnclRtnList) {
-			int index = ordDtlNoList.indexOf(order.getOrdDtlNo());
-			int ordQty = order.getOrdQty();
-			int cnclRtnQty = order.getCnclRtnQty();
-
-			// 전체 취소 여부 설정
-			if ("Y".equals(allCanYn) && (index < 0 || cnclRtnReqQtyArr[index] != ordQty)) {
-				allCanYn = "N";
-			}
-
-			// 마지막 취소 여부 설정
-			if ((index < 0 || cnclRtnReqQtyArr[index] != (ordQty - cnclRtnQty)) && !delvFeeCd.equals(order.getDelvFeeCd())) {
-				delvFeeCdList.add(order.getDelvFeeCd());
-				delvFeeCd = order.getDelvFeeCd();
-				
-				if ("Y".equals(allLastCanYn)) {
-					allLastCanYn = "N";
-				}
-			}
-		}
-
-		// 무통장입금 전 전체 취소여부 설정
-		String allCanYnBeforePayment = "N";
-		if ("Y".equals(allCanYnBeforePayment) && TscConstants.PayMeans.BANK_DEPOSIT.value().equals(cnclRtn.getPayMeans()) && TscConstants.PaymentStat.PAYMENT_WAIT.value().equals(cnclRtn.getPayStat())) {
-			allCanYnBeforePayment = "Y";
-		}
-
-		// 전체 취소여부 및 취소/반품 수량 설정
-		for (Order order : cnclRtnList) {
-			int index = ordDtlNoList.indexOf(order.getOrdDtlNo());
-			if (index >= 0) {
-				// 마지막 취소 여부 설정
-				if (delvFeeCdList.contains(order.getDelvFeeCd())) {
-					order.setLastCanYn("N");
-				} else {
-					order.setLastCanYn("Y");
-				}
-
-				// 변경 수량 설정
-				order.setOrdCanChgQty(cnclRtnReqQtyArr[index]);
-
-				cnclReqList.add(order);
-			}
-		}
-		
-		result.setString("allCanYn", allCanYn);									// 전체 취소 여부
-		result.setString("allLastCanYn", allLastCanYn);							// 전체 마지막 취소 여부
-		result.setString("allCanYnBeforePayment", allCanYnBeforePayment);		// 무통장입금전 전체 취소 여부
-		result.setString("pgTid", cnclRtn.getPgTid());							// PG거래ID
-		result.setString("payMeans", cnclRtn.getPayMeans());					// 결제수단
-		result.setString("pgGb", cnclRtn.getPgGb());							// PG구분
-		result.set("cnclReqList", cnclReqList);									// 취소신청목록
-
-		return result;
-	}
-
 	/**
 	 * 마이페이지 교환 옵션 정보 조회
 	 *

+ 8 - 56
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -455,7 +455,9 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 처리 결과 코드에 따른 메세지 설정
 		if (result.get("status").equals(GagaResponseStatus.SUCCESS.getCode())) {
-			result.set("message", message.getMessage("EXCHANGE_0001"));
+			if (orderChange.getAddPayCost() == 0) {
+				result.set("message", message.getMessage("EXCHANGE_0001"));
+			}
 		} else {
 			result.set("message", message.getMessage("FAIL_0004"));
 		}
@@ -621,9 +623,10 @@ public class TsfMypageController extends TsfBaseController {
 		orderChange.setCustNo(custNo);
 
 		// 2. 환불 사전 정보 조회
-		GagaMap refundPreInfo = orderChangeService.getRefundPreInfo(orderChange);
+		GagaMap refundPreInfo = coreOrderChangeService.getRefundPreInfo(orderChange);
 		List<Order> returnReqList = (List<Order>)refundPreInfo.get("cnclReqList");
 		String allLastCanYn = refundPreInfo.getString("allLastCanYn");
+		String supplyCompCd = refundPreInfo.getString("supplyCompCd");
 
 		// 3. 환불금액계산
 		GagaMap result = coreOrderRefundService.cnclRtnRefundAmt(returnReqList);
@@ -748,64 +751,13 @@ public class TsfMypageController extends TsfBaseController {
 		// @ 결품취소로직 추가
 		// @ 주문취소시 상태값 체크
 		// @ 취소, 반품시 배송비 체크 로직 (선결제 로직)
-		GagaMap result = new GagaMap();
 
 		// 1. 세션회원조회
 		int custNo = TsfSession.getInfo().getCustNo();
 		orderChange.setCustNo(custNo);
+		orderChange.setIpAddress(TsfSession.getIpAddress());
 
-		// 2. 환불 사전 정보 조회
-		GagaMap refundPreInfo = orderChangeService.getRefundPreInfo(orderChange);
-		List<Order> cnclReqList = (List<Order>)refundPreInfo.get("cnclReqList");
-		String allCanYn = refundPreInfo.getString("allCanYn");
-		String allLastCanYn = refundPreInfo.getString("allLastCanYn");
-		// String allCanYnBeforePayment = refundPreInfo.getString("allCanYnBeforePayment");
-
-		// 전체취소, 부분취소 구분 처리 진행 
-		if ("Y".equals(allCanYn)) {
-			orderChange.setChgGb(TscConstants.OrderChangeGb.CANCEL.value());
-			orderChange.setIpAddress(TsfSession.getIpAddress());
-			orderChange.setRegNo(custNo);
-			orderChange.setUpdNo(custNo);
-			
-			coreOrderChangeService.allCnclComplete(orderChange);
-		} else {
-			// 3. 환불금액계산
-			// 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현
-			result = coreOrderRefundService.cnclRtnRefundAmt(cnclReqList);
-
-			// 4. 주문변경 기본정보 설정
-			result.setInt("ordNo", orderChange.getOrdNo());						// 주문번호
-			// result.setInt("ordChgSq", orderChange.getOrdChgSq());				// 주문변경번호
-			result.setString("chgReason", orderChange.getChgReason());			// 변경사유
-			result.setString("chgMemo", orderChange.getChgMemo());				// 변경메모
-
-			result.setString("accountNo", orderChange.getAccountNo());			// 환불계좌번호
-			result.setString("accountNm", orderChange.getAccountNm());			// 환불계좌예금주명
-			result.setString("bankCd", orderChange.getBankCd());				// 환불계좌은행코드
-
-			// result.setString("allCanYnBeforePayment", allCanYnBeforePayment);	// 무통장입금전 전체취소 여부
-			// result.setString("allCanYn", allCanYn);								// 전체취소 여부
-			result.setString("allLastCanYn", allLastCanYn);						// 전체 마지막 취소 여부
-			// result.setString("isCustomer", orderChange.getIsCustomer());		// 변경사유 (고객, 회사)
-
-			// 5. 주문변경 회수지정보 추가
-			// result.setString("chgerNm", orderChange.getChgerNm());				// 변경자명
-			// result.setString("chgerEmail", orderChange.getChgerEmail());			// 변경자이메일주소
-			// result.setString("chgerPhnno", orderChange.getChgerPhnno());			// 변경자핸드폰번호
-			// result.setString("chgerTelno", orderChange.getChgerTelno());			// 변경자전화번호
-
-			// result.setString("reqGbn", orderChange.getReqGbn());				// 신청구분
-			result.setString("ipAddress", TsfSession.getIpAddress());			// IP주소
-			result.setInt("custNo", custNo);									// 고객번호
-			result.setString("pgTid", refundPreInfo.getString("pgTid"));		// PG거래ID
-			result.setString("payMeans", refundPreInfo.getString("payMeans"));	// 결제수단
-			result.setString("pgGb", refundPreInfo.getString("pgGb"));			// PG구분
-
-			// 6. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL)
-			// coreOrderChangeService.cnclComplete(result, custNo);
-			coreOrderChangeService.partialCancel(result);
-		}
+		GagaMap result = coreOrderChangeService.orderCancelPreInfo(orderChange);
 
 		// TODO
 		// 취소 완료 알림톡 발송 에정
@@ -1097,7 +1049,7 @@ public class TsfMypageController extends TsfBaseController {
 		orderChange.setCustNo(custNo);
 
 		// 2. 환불 사전 정보 조회
-		GagaMap refundPreInfo = orderChangeService.getRefundPreInfo(orderChange);
+		GagaMap refundPreInfo = coreOrderChangeService.getRefundPreInfo(orderChange);
 		List<Order> cnclReqList = (List<Order>)refundPreInfo.get("cnclReqList");
 
 		return coreOrderRefundService.cnclRtnRefundAmt(cnclReqList);

+ 2 - 5
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -1238,7 +1238,6 @@ public class TsfOrderController extends TsfBaseController {
 
 		Payment payment = orderService.setPgDataInfo(order);
 		payment.setOrdChgSq(order.getOrdChgSq());
-		log.info("ordChgSq >>> {}", order.getOrdChgSq());
 		mav.addObject("payment", payment);
 		mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
 
@@ -1275,12 +1274,10 @@ public class TsfOrderController extends TsfBaseController {
 		}
 		param.setPayGb(TscConstants.PaymentGb.DELIVERY.value());
 		param.setUpdNo(param.getCustNo());
-		log.info("payment >>> {}", param);
-		// 2. 결재정보등록(TB_PAYMENT)
-		order.setOrdNo(param.getOrdNo());
 
+		// 2. 결재정보등록(TB_PAYMENT)
 		param = orderService.orderPgPayResult(param, request, response);
-		
+		order.setOrdNo(param.getOrdNo());
 		order.setOrdChgSq(param.getOrdChgSq());
 		
 		// 3. 추가결제 상품목록

+ 8 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsfOrder.xml

@@ -67,6 +67,7 @@
 		     , Z.ACCOUNT_NO
 		     , Z.ACCOUNT_NM
 		     , Z.DELV_ADDR_SQ
+		     , Z.PAY_STAT
 		  FROM (SELECT O.ORD_NO
 					 , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d') AS ORD_DT
 					 , CASE OD.GIFT_PACK_YN WHEN 'Y' THEN DATE_FORMAT(O.ORD_DT + INTERVAL 3 DAY, '%Y.%m.%d')
@@ -123,6 +124,7 @@
 					 , CA.ACCOUNT_NO
 					 , IFNULL(CA.ACCOUNT_NM, O.ORD_NM)                                  AS ACCOUNT_NM
 					 , DA.DELV_ADDR_SQ
+					 , P.PAY_STAT
 				  FROM TB_ORDER O
 				 INNER JOIN TB_ORDER_DETAIL OD
 				    ON O.ORD_NO = OD.ORD_NO
@@ -135,6 +137,10 @@
 				    ON OD.GOODS_CD = G.GOODS_CD
 				 INNER JOIN TB_BRAND B
 				    ON B.BRAND_CD = G.BRAND_CD
+				 INNER JOIN TB_PAYMENT P
+				    ON O.ORD_NO = P.ORD_NO
+				   AND P.PAY_GB = 'O'
+				   AND P.PAY_STAT IN ('G016_00', 'G016_30')
 				  LEFT OUTER JOIN TB_REVIEW R
 				    ON R.ORD_NO = OD.ORD_NO
 				   AND R.ORD_DTL_NO = OD.ORD_DTL_NO
@@ -201,7 +207,7 @@
 				, Z.SAVE_PNT_AMT, Z.CNCL_RTN_AMT, Z.PNT_DC_AMT, Z.GFCD_USE_AMT, Z.SHIP_COMP_CD, Z.GIFT_PACK_YN, Z.SHIP_COMP_NM, Z.INVOICE_NO
 				, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD, Z.SHOT_DELV_YN, Z.CHANGEABLE_YN, Z.SELF_GOODS_YN, Z.BRAND_NM, Z.ORD_DTL_STAT_NM, Z.REVIEW_SQ
 				, Z.REVIEWABLE_YN, Z.PURCHASE_CONFIRM_DAY, Z.DELV_RES_DT, Z.ORD_REQ_CHG_QTY, Z.ORD_CAN_CHG_QTY, Z.BANK_CD, Z.ACCOUNT_NO, Z.ACCOUNT_NM, Z.DELV_ADDR_SQ
-		ORDER BY Z.ORD_NO DESC, Z.ORD_DTL_STAT, Z.SELF_GOODS_YN DESC, Z.SHOT_DELV_YN DESC, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD
+		ORDER BY Z.ORD_NO DESC, Z.ORD_DTL_STAT, Z.SELF_GOODS_YN DESC, Z.SHOT_DELV_YN DESC, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD, Z.PAY_STAT
 	</select>
 
 	<!-- 마이페이지 주문목록 페이징 처리 주문번호 수 조회 -->
@@ -365,7 +371,7 @@
 			<if test="pgGb != null and pgGb != ''">
 		   AND PG_GB = #{pgGb}
 			</if>
-		   AND PAY_STAT = 'G016_30'
+		   AND PAY_STAT IN ('G016_00', 'G016_30')
 		</where>
 	</select>
 

+ 10 - 104
src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml

@@ -192,6 +192,7 @@
 		     , Z.BANK_CD
 		     , Z.ACCOUNT_NO
 		     , Z.ACCOUNT_NM
+		     , Z.DELV_FEE
 		     , Z.RTN_DELV_FEE
 		     , Z.EXC_DELV_FEE
 		  FROM (SELECT O.ORD_NO
@@ -237,6 +238,7 @@
 		             , CA.BANK_CD
 		             , CA.ACCOUNT_NO
 		             , IFNULL(CA.ACCOUNT_NM, O.ORD_NM)                                        AS ACCOUNT_NM
+		             , DFP.DELV_FEE
 		             , DFP.RTN_DELV_FEE
 		             , DFP.DELV_FEE + DFP.RTN_DELV_FEE                                        AS EXC_DELV_FEE
 		          FROM TB_ORDER O
@@ -290,108 +292,10 @@
 		        , Z.ORD_DTL_STAT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.ORD_AMT, Z.REAL_ORD_AMT, Z.SAVE_PNT_AMT, Z.CNCL_RTN_AMT, Z.PNT_DC_AMT
 		        , Z.GFCD_USE_AMT, Z.SHIP_COMP_CD, Z.GIFT_PACK_YN, Z.SHIP_COMP_NM, Z.INVOICE_NO, Z.SUPPLY_COMP_CD, Z.DELV_FEE_CD
 		        , Z.SHOT_DELV_YN, Z.CHANGEABLE_YN, Z.SELF_GOODS_YN, Z.BRAND_NM, Z.ORD_REQ_CHG_QTY, Z.ORD_CAN_CHG_QTY, Z.BANK_CD
-		        , Z.ACCOUNT_NO, Z.ACCOUNT_NM, Z.RTN_DELV_FEE, Z.EXC_DELV_FEE
+		        , Z.ACCOUNT_NO, Z.ACCOUNT_NM, Z.DELV_FEE, Z.RTN_DELV_FEE, Z.EXC_DELV_FEE
 		ORDER BY Z.ORD_DTL_NO
 	</select>
 	
-	<!-- 취소/반품 환불 사전 정보 조회 -->
-	<select id="getRefundPreInfo" parameterType="OrderChange" resultType="Order">
-		/* TsfOrderChange.getRefundPreInfo */
-		SELECT O.ORD_NO
-		     , OD.ORD_DTL_NO
-		     , OD.GOODS_CD
-		     , G1.GOODS_NM
-		     , ODI.ORD_DTL_ITEM_SQ
-		     , ODI.ITEM_CD
-		     , G2.GOODS_NM                                        AS ITEM_NM
-		     , ODI.ITEM_QTY
-		     , OD.ORD_QTY
-		     , OD.CNCL_RTN_QTY
-		     , OCD.ORD_REQ_CHG_QTY
-		     , ODI.ITEM_PRICE
-		     , ODI.OPT_ADD_PRICE
-		     , ODI.ORD_AMT
-		     , ODI.OPT_CD1
-		     , ODI.OPT_CD2
-		     , ODI.CPN1_DC_AMT
-		     , ODI.TMTB1_DC_AMT
-		     , ODI.TMTB2_DC_AMT
-		     , ODI.GOODS_CPN_DC_AMT
-		     , ODI.CART_CPN_DC_AMT
-		     , ODI.PNT_DC_AMT
-		     , ODI.PRE_PNT_DC_AMT
-		     , ODI.SAVE_PNT_AMT
-		     , ODI.GFCD_USE_AMT
-		     , ODI.CNCL_RTN_AMT
-		     , FN_GET_CODE_NM('G056', OD.GOODS_TYPE)              AS GOODS_TYPE_NM
-		     , ODI.ORD_DTL_STAT
-		     , FN_GET_CODE_NM('G013', ODI.ORD_DTL_STAT)           AS ORD_DTL_STAT_NM
-		     , DF.DELV_FEE
-		     , DFP.MIN_ORD_AMT
-		     , DFP.DELV_FEE                                       AS ORG_DELV_FEE
-		     , DFP.RTN_DELV_FEE
-		     , DFP.DELV_FEE + DFP.RTN_DELV_FEE                    AS EXC_DELV_FEE
-		     , DFP.SUPPLY_COMP_CD
-		     , IF(G1.SELF_GOODS_YN = 'Y', 'WMS', DFP.DELV_FEE_CD) AS DELV_FEE_CD
-		     , P.PG_GB
-		     , P.PG_TID
-		     , P.PAY_MEANS
-		     , P.PAY_STAT
-		     , CASE WHEN NULLIF(OD.INVOICE_NO, '') IS NULL THEN 'N'
-		            ELSE 'Y'
-		        END AS DELV_YN
-		  FROM TB_ORDER O
-		 INNER JOIN TB_ORDER_DETAIL OD
-		    ON O.ORD_NO = OD.ORD_NO
-		 INNER JOIN TB_ORDER_DETAIL_ITEM ODI
-		    ON O.ORD_NO = ODI.ORD_NO
-		   AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		 INNER JOIN TB_GOODS G1
-		    ON OD.GOODS_CD = G1.GOODS_CD
-		 INNER JOIN TB_GOODS G2
-		    ON ODI.ITEM_CD = G2.GOODS_CD
-		 INNER JOIN TB_PAYMENT P
-		    ON P.ORD_NO = O.ORD_NO
-		   AND P.PAY_STAT = 'G016_30'
-		   AND P.PAY_GB = 'O'
-		  LEFT OUTER JOIN (SELECT OCD.ORD_DTL_NO
-		                        , SUM(OCD.CHG_QTY) AS ORD_REQ_CHG_QTY
-		                     FROM TB_ORDER_CHANGE_DETAIL OCD
-		                    INNER JOIN TB_ORDER_DETAIL OD
-		                       ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
-		                    WHERE OCD.DEL_YN = 'N'
-		                      AND OCD.CHG_STAT IN ('G685_20', 'G685_21','G685_30', 'G685_31', 'G685_32', 'G685_33', 'G685_34', 'G685_50', 'G685_51')
-		                    GROUP BY OCD.ORD_DTL_NO
-		                  ) OCD
-		    ON OD.ORD_DTL_NO = OCD.ORD_DTL_NO
-		  LEFT OUTER JOIN (SELECT X.DELV_FEE_CD
-		                        , SUM(X.DELV_FEE) AS DELV_FEE
-		                     FROM TB_DELIVERY_FEE X
-		                    WHERE X.DELV_FEE_GB = 'G018_10'
-		                      AND X.ORD_NO = #{ordNo}
-		                    GROUP BY X.DELV_FEE_CD
-		                  ) DF
-		    ON OD.DELV_FEE_CD = DF.DELV_FEE_CD
-		  LEFT OUTER JOIN TB_DELV_FEE_POLICY DFP
-		    ON OD.DELV_FEE_CD = DFP.DELV_FEE_CD
-		   AND DFP.USE_YN = 'Y'
-		<where>
-			<choose>
-				<when test='custNo != null and custNo != ""'>
-		   AND O.CUST_NO = #{custNo}
-				</when>
-				<otherwise>
-		   AND O.ORD_NO = #{ordNo}
-		   AND O.ORD_NM = #{orderNm}
-				</otherwise>
-			</choose>
-			<if test="ordNo != null and ordNo != ''">
-		   AND O.ORD_NO = #{ordNo}
-			</if>
-		   AND O.DISP_YN = 'Y'
-		</where>
-	</select>
-	
 	<!-- 사용 상품권 정보 조회 -->
 	<select id="getUsedGiftcardInfo" parameterType="Order" resultType="GiftCard">
 		/* TsfOrderChange.getUsedGiftcardInfo */
@@ -680,7 +584,7 @@
 		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
 		           AND OCD.REG_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
 		</if>
-		<if test="ordDtlStat != null and ordDtlStat != ''">
+		<if test="chgStat != null and chgStat != ''">
 		           AND OCD.CHG_STAT = #{chgStat}
 		</if>
 		         GROUP BY OCD.ORD_CHG_SQ
@@ -720,7 +624,7 @@
 		<if test="stDate != null and stDate != '' and edDate != null and edDate != ''">
 		   AND OCD.REG_DT BETWEEN CONCAT(#{stDate}, ' 00:00:00') AND CONCAT(#{edDate}, ' 23:59:59')
 		</if>
-		<if test="ordDtlStat != null and ordDtlStat != ''">
+		<if test="chgStat != null and chgStat != ''">
 		   AND OCD.CHG_STAT = #{chgStat}
 		</if>
 		 GROUP BY OCD.ORD_CHG_SQ
@@ -909,7 +813,7 @@
 		         INNER JOIN TB_PAYMENT P
 		            ON P.ORD_NO = O.ORD_NO
 		           AND P.PAY_GB = 'O'
-		           AND P.PAY_STAT = 'G016_30'
+		           AND P.PAY_STAT IN ('G016_00', 'G016_30')
 		         WHERE OCD.DEL_YN = 'N'
 		           AND O.DISP_YN = 'Y'
 		<choose>
@@ -1117,7 +1021,7 @@
 
 	<!-- 마이페이지 교환 상세 정보 조회 -->
 	<select id="getCreExchangeDetailInfo" parameterType="OrderChange" resultType="OrderChange">
-		/* TsfOrderChange.getCreCancelDetailInfo */
+		/* TsfOrderChange.getCreExchangeDetailInfo */
 		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!')       AS ITEM_NM
 		     , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ)                      AS COLOR_NM
 		     , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD1
@@ -1169,6 +1073,7 @@
 		     , Z.RECIP_DTL_ADDR
 		     , Z.DELV_MEMO
 		     , Z.PG_TID
+		     , Z.CHG_ORD_DTL_STAT
 		  FROM (SELECT OC.ORD_CHG_SQ
 		             , OC.CHG_GB
 		             , OCD.CHG_QTY
@@ -1224,6 +1129,7 @@
 		             , DA.RECIP_DTL_ADDR
 		             , DA.DELV_MEMO
 		             , P.PG_TID
+		             , OD2.ORD_DTL_STAT                                                 AS CHG_ORD_DTL_STAT
 		          FROM TB_ORDER_CHANGE OC
 		         INNER JOIN TB_ORDER_CHANGE_DETAIL OCD
 		            ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
@@ -1278,7 +1184,7 @@
 		        , Z.GFCD_USE_AMT, Z.ORD_DTL_NO, Z.GOODS_CD, Z.BRAND_NM, Z.SHOT_DELV_YN, Z.SELF_GOODS_YN, Z.GOODS_NM
 		        , Z.GOODS_TYPE, Z.PRICE_ORG, Z.PRICE_SALE, Z.ADD_PAY_COST, Z.SYS_IMG_NM, Z.GIFT_PACK_YN, Z.WD_GB, Z.CHGER_NM, Z.CHGER_PHNNO, Z.CHGER_BASE_ADDR
 		        , Z.CHGER_DTL_ADDR, Z.CHG_MEMO, Z.WD_INVOICE_NO, Z.SHIP_COMP_CD, Z.SHIP_COMP_NM, Z.DELV_ADDR_SQ, Z.RECIP_NM, Z.RECIP_PHNNO
-		        , Z.RECIP_BASE_ADDR, Z.RECIP_DTL_ADDR, Z.DELV_MEMO, Z.PG_TID
+		        , Z.RECIP_BASE_ADDR, Z.RECIP_DTL_ADDR, Z.DELV_MEMO, Z.PG_TID, Z.CHG_ORD_DTL_STAT
 		 ORDER BY Z.ORD_CHG_SQ DESC
 	</select>
 	

+ 2 - 0
src/main/resources/i18n/messages/message_ko_KR.properties

@@ -96,6 +96,7 @@ COUPON_0002=\uC774\uBBF8 \uB2E4\uC6B4\uB85C\uB4DC\uB97C \uC644\uB8CC \uD558\uC16
 #\uAD50\uD658
 EXCHANGE_0001=\uAD50\uD658 \uC2E0\uCCAD\uC774 \uC811\uC218\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
 EXCHANGE_0002=\uAD50\uD658 \uC2E0\uCCAD\uC774 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+EXCHANGE_0003=\uC7AC\uACE0\uAC00 \uBD80\uC871\uD558\uC5EC \uAD50\uD658 \uC2E0\uCCAD\uC774 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
 
 #\uBC18\uD488
 RETURN_0001=\uBC18\uD488 \uC2E0\uCCAD\uC774 \uC811\uC218\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
@@ -103,6 +104,7 @@ RETURN_0002=\uBC18\uD488 \uC2E0\uCCAD\uC774 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8
 
 #\uCDE8\uC18C
 CANCEL_0001=\uC8FC\uBB38 \uCDE8\uC18C\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+CANCEL_0002=\uD658\uBD88\uAE08\uC561\uC774 \uCD94\uAC00\uBC30\uC1A1\uBE44 \uBCF4\uB2E4 \uC801\uC5B4 \uCDE8\uC18C \uCC98\uB9AC\uC5D0 \uC2E4\uD328 \uD558\uC600\uC2B5\uB2C8\uB2E4.
 
 #\uBC30\uC1A1
 DELV_0001=\uC815\uC0C1\uC801\uC73C\uB85C \uBC30\uC1A1\uC9C0\uAC00 \uC218\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.

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

@@ -142,7 +142,7 @@
 											</div>
 											<div class="include_item">
 												<dt>배송비</dt>
-												<dd><em th:text="${#numbers.formatInteger(oneData.rfDeliveryFee, 1, 'COMMA')}"></em>원</dd>
+												<dd><em th:text="${#numbers.formatInteger(oneData.rfDeliveryFee * -1, 1, 'COMMA')}"></em>원</dd>
 											</div>
 											<div class="include_item">
 												<dt>할인 금액 차감</dt>

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

@@ -147,7 +147,7 @@
 					<input type="hidden" name="pageNo" value=1 />
 					<input type="hidden" name="pageSize" value=5 />
 					<input type="hidden" name="pageUnit" value=10 />
-					<input type="hidden" name="ordDtlStat" value="" />
+					<input type="hidden" name="chgStat" value="" />
 					<input type="hidden" name="stDate" value="" />
 					<input type="hidden" name="edDate" value="" />
 					<input type="hidden" name="custNo" th:value ="${custNo}"/>

+ 13 - 1
src/main/webapp/WEB-INF/views/web/mypage/MypageExchangeFormWeb.html

@@ -408,6 +408,7 @@
 		let excDelvFee = oneData.excDelvFee;
 		let rtnDelvFee = oneData.rtnDelvFee;
 		let chgReason = $('#exchangeForm input[name=chgReason]').val();
+		let addPayCost = $('#exchangeForm input[name=addPayCost]').val();
 		
 		// 교환 사유 체크
 		if (gagajf.isNull(chgReason)) {
@@ -476,6 +477,7 @@
 		data.chgerBaseAddr = $('#exchangeForm input[name=chgerBaseAddr]').val();
 		data.chgerDtlAddr = $('#exchangeForm input[name=chgerDtlAddr]').val();
 		data.chgerRtnMemo = $('#exchangeForm input[name=chgerRtnMemo]').val();
+		data.addPayCost = addPayCost;
 		data.addPayAmt = 0;
 		data.cancelReqList = cancelReqList;
 
@@ -483,7 +485,17 @@
 
 		// 교환 처리
 		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-			cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);
+			if (addPayCost > 0) {
+				let ordChgSq = result.ordChgSq;
+				let ordNo = result.ordNo;
+				
+				$('#addPaymentForm input[name=ordChgSq]').val(ordChgSq);
+				$('#addPaymentForm input[name=ordNo]').val(ordNo);
+				
+				document.addPaymentForm.submit();
+			} else {
+				cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);
+			}
 		});
 	}
 

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

@@ -132,7 +132,7 @@
 													<!-- 주문 -->
 													<th:block th:unless="${order.giftPackYn == 'Y'}">
 														<!-- 주문취소 버튼(입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중) -->
-														<th:block th:if="${ordDtl.ordDtlStat == 'G013_10' or ordDtl.ordDtlStat == 'G013_20' or ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35' or ordDtl.ordDtlStat == 'G013_40'}">
+														<th:block th:if="${ordDtl.payStat != 'G016_00' && (ordDtl.ordDtlStat == 'G013_10' or ordDtl.ordDtlStat == 'G013_20' or ordDtl.ordDtlStat == 'G013_30' or ordDtl.ordDtlStat == 'G013_35' or ordDtl.ordDtlStat == 'G013_40')}">
 															<p><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${ordDtl.ordNo}, ordDtlNo=${ordDtl.ordDtlNo}, delvFeeCd=${ordDtl.delvFeeCd}" onclick="fnCreateChange(this, 'cancel');"><span>주문 취소</span></button></p>
 														</th:block>
 														

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

@@ -462,7 +462,7 @@
 						}
 					} else {
 						// 주문취소 버튼(입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중)
-						if (ordDtl.ordDtlStat == 'G013_10' || ordDtl.ordDtlStat == 'G013_20' || ordDtl.ordDtlStat == 'G013_30' || ordDtl.ordDtlStat == 'G013_35' || ordDtl.ordDtlStat == 'G013_40') {
+						if (ordDtl.payStat != 'G016_00' && (ordDtl.ordDtlStat == 'G013_10' || ordDtl.ordDtlStat == 'G013_20' || ordDtl.ordDtlStat == 'G013_30' || ordDtl.ordDtlStat == 'G013_35' || ordDtl.ordDtlStat == 'G013_40')) {
 							tag += '											<p><button type="button" class="btn btn_default btn_sm" ordNo="' + ordDtl.ordNo + '" ordDtlNo="' + ordDtl.ordDtlNo + '" ordCanChgQty="' + ordDtl.ordCanChgQty + '" delvFeeCd="' + ordDtl.delvFeeCd + '" onclick="fnCreateChange(this, \'cancel\');"><span>주문 취소</span></button></p>\n';
 						}
 

+ 4 - 7
src/main/webapp/WEB-INF/views/web/mypage/MypageReturnFormWeb.html

@@ -431,16 +431,12 @@
 
 		// 추가배송비 PG 처리
 		let addPayCost = $('#returnForm input[name=addPayCost]').val();
-		if (addPayCost > 0) {
-			// TODO
-			// 추가배송비 PG 처리
-		}
 
 		let data = {};
 		data.ordNo = oneData.ordNo;
 		data.ordChgSq = 0;
 		data.chgReason = chgReason;
-		data.chgMemo = $('#returnForm input[name=chgMemo]').val();
+		data.chgMemo = $('#returnForm textarea[name=chgMemo]').val();
 		data.accountNo = $('#returnForm input[name=accountNo]').val();
 		data.accountNm = $('#returnForm input[name=accountNm]').val();
 		data.bankCd = $('#returnForm input[name=bankCd]').val();
@@ -454,18 +450,19 @@
 		data.chgerRtnMemo = $('#returnForm input[name=chgerRtnMemo]').val();
 		data.ordDtlNoArr = ordDtlNoArr;
 		data.wdInvoiceNo = $('#returnForm input[name=wdInvoiceNo]').val();
+		data.addPayCost = addPayCost;
 		data.cnclRtnReqQtyArr = cnclRtnReqQtyArr;
 
 		let jsonData = JSON.stringify(data);
 
 		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
 			if (addPayCost > 0) {
-				// TODO
-				// 추가배송비 PG 처리
 				let ordChgSq = result.ordChgSq;
 				let ordNo = result.ordNo;
+
 				$('#addPaymentForm input[name=ordChgSq]').val(ordChgSq);
 				$('#addPaymentForm input[name=ordNo]').val(ordNo);
+
 				document.addPaymentForm.submit();
 			} else {
 				cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);