Просмотр исходного кода

이태영 - 20210504 무통장입금 입금기한 만료 주문 취소

xodud1202 5 лет назад
Родитель
Сommit
04f471123e

+ 13 - 8
src/main/java/com/style24/core/biz/service/TscKcpService.java

@@ -257,8 +257,19 @@ public class TscKcpService {
 	@Transactional("shopTxnManager")
 	public void kcpCancel(Payment param) {
 		// try {	request.setCharacterEncoding("euc-kr");	} catch(Exception e) {e.printStackTrace();}
-		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
-		String cust_ip = request.getRemoteAddr();
+
+		// 일반 취소의 모듈 실행 mf_do_tx 에는 값이 안들어가고, 무통장입금 환불계좌 취소에는 custIp가 들어가도록 되어있어 계좌취소용 변수 따로 사용
+		HttpServletRequest request;
+		String cust_ip = "";
+		String custIp = "";
+		if(StringUtils.isEmpty(param.getBatchYn()) || !"Y".equals(param.getBatchYn())) {
+			request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
+			cust_ip = request.getRemoteAddr();
+
+			if("STHD".equals(param.getModType()) || "STPD".equals(param.getModType())) {
+				custIp = request.getRemoteAddr();
+			}
+		}
 
 		J_PP_CLI_N c_PayPlus = new J_PP_CLI_N();
 		Payment payment = new Payment();
@@ -291,12 +302,6 @@ public class TscKcpService {
 			c_PayPlus.mf_set_us( mod_data_set_no, "mod_depositor", param.getAccountNm());		// 환불 요청 계좌주명
 		}
 
-		// 일반 취소의 모듈 실행 mf_do_tx 에는 값이 안들어가고, 무통장입금 환불계좌 취소에는 custIp가 들어가도록 되어있어 계좌취소용 변수 사용
-		String custIp = "";
-		if("STHD".equals(param.getModType()) || "STPD".equals(param.getModType())) {
-			custIp = request.getRemoteAddr();
-		}
-
 		param.setTranCd("00200000");
 		c_PayPlus.mf_do_tx(env.getProperty("pg.kcp.site.cd"), env.getProperty("pg.kcp.site.key"), param.getTranCd(), custIp, "", env.getProperty("pg.kcp.log.level"), "0");
 

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

@@ -2304,16 +2304,20 @@ log.info("payAmt >>> {}", payAmt);
 		
 		// 9. WMS 취소 처리
 		List<Order> wmsList = new ArrayList<>();
-		for (int i = 0; i < orderChange.getOrdDtlNoArr().length; i++) {
-			Order wms = new Order();
-			wms.setOrdNo(ordNo);
-			wms.setOrdDtlNo(orderChange.getOrdDtlNoArr()[i]);
-			wms.setChgQty(orderChange.getCnclRtnReqQtyArr()[i]);
+		if(orderChange.getOrdDtlNoArr() != null && orderChange.getOrdDtlNoArr().length > 0) {
+			for (int i = 0; i < orderChange.getOrdDtlNoArr().length; i++) {
+				Order wms = new Order();
+				wms.setOrdNo(ordNo);
+				wms.setOrdDtlNo(orderChange.getOrdDtlNoArr()[i]);
+				wms.setChgQty(orderChange.getCnclRtnReqQtyArr()[i]);
 
-			wmsList.add(wms);
-		}
+				wmsList.add(wms);
+			}
 
-		wmsService.updateWmsCancel(wmsList);
+			if(wmsList.size() > 0) {
+				wmsService.updateWmsCancel(wmsList);
+			}
+		}
 
 		// 10. 환불금액 등록
 		Order refundOrder = orderChangeDao.getRefundInfoForAllCancel(vo);
@@ -2332,13 +2336,17 @@ log.info("payAmt >>> {}", payAmt);
 		// 11. PG 연동
 		Payment pg = new Payment();
 		pg.setOrdNo(ordNo);
-		pg.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
 		pg.setPayGb("O");
 		pg.setPgTid(payment.getPgTid());
 		pg.setPayAmt(refundAmt);
 		pg.setLeftAmt(refundAmt);
 		pg.setRegNo(regNo);
 		pg.setUpdNo(updNo);
+		if(TscConstants.PaymentStat.PAYMENT_WAIT.value().equals(payment.getPayStat())) {
+			pg.setPayStat(TscConstants.PaymentStat.PAY_BEFORE_CANCEL.value());
+		} else {
+			pg.setPayStat(TscConstants.PaymentStat.PAYMENT_CANCEL.value());
+		}
 
 		// 상품권으로만 결제 시 PG점프
 		String pgGb = payment.getPgGb();
@@ -2350,6 +2358,7 @@ log.info("payAmt >>> {}", payAmt);
 				pg.setAccountNm(accountNm);
 				pg.setAccountNo(accountNo);
 				pg.setBankCd(bankCd);
+				pg.setBatchYn(orderChange.getBatchYn());
 
 				kcpService.kcpCancel(pg);
 			} else if (TscConstants.PgGb.NAVER.value().equals(pgGb)) {

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

@@ -189,4 +189,6 @@ public class OrderChange extends TscBaseDomain {
 	private String chgOptCd1;						// 교환상품옵션1
 	private String cardNm;							// 카드명
 	private String cardMips;						// 카드할부
+
+	private String batchYn;							// 배치여부
 }

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

@@ -85,6 +85,7 @@ public class Payment extends TscBaseDomain {
 	private String resMsg;					// 결과메세지
 	private String ipAddress;				// IP주소
 	private String bankNm;					// 은행명
+	private String batchYn;					// 배치여부
 	
 	// KakaoPay
 	private String partnerOrderId;			// 카카오페이 가맹점 주문번호, 최대 100자

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

@@ -2033,6 +2033,7 @@
 		     , ORD_NO
 		     , PG_TID
 			 , PG_SHOP_ID
+		     , PAY_STAT
 			 , CARD_TYPE
 			 , CARD_KIND
 			 , CARD_BANK
@@ -2123,7 +2124,7 @@
 		FROM   TB_PAYMENT PAY
 		WHERE  PG_TID = #{pgTid}
 		AND    PAY_GB = 'O'
-		AND    PAY_STAT = 'G016_30'
+		AND    PAY_STAT IN ('G016_30', 'G016_00')
 	</insert>
 
 	<!-- PAYMENT INSERT -->