فهرست منبع

Merge remote-tracking branch 'origin/xodud1202' into order

card007 5 سال پیش
والد
کامیت
bcdb877067

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

@@ -295,7 +295,7 @@ public class TscKcpService {
 		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");
 
-		log.info("CHECK RESULT >>> {}", c_PayPlus.getRecvObj().toString());
+		log.info("CHECK KCP PG RESULT ::::: {}", c_PayPlus.getRecvObj().toString());
 
 		if("0000".equals(c_PayPlus.m_res_cd)) {
 			try {

+ 12 - 8
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -380,8 +380,10 @@ public class TscOrderChangeService {
 				}
 
 				// 3-3. 상품재고원복
-				orderChange.setSellGb(TscConstants.SellGb.ORDER_CANCEL.value());
-				orderChangeDao.createSellQty(orderChange);
+				if(!TscConstants.OrderCancelReason.SOLDOUT_CANCEL.value().equals(chgReason)) {
+					orderChange.setSellGb(TscConstants.SellGb.ORDER_CANCEL.value());
+					orderChangeDao.createSellQty(orderChange);
+				}
 
 				// 3-4. PG 결제 취소 정보 설정 (상품권으로만 결제 시 PG점프)
 				int spanRealCnclRtnAmt = obj.getRealOrdAmt();			// 취소금액합계
@@ -2197,12 +2199,14 @@ public class TscOrderChangeService {
 			orderChangeDao.updateCustGiftCardRollback(giftCard);
 		}
 
-		// 5. 상품재고원복
-		OrderChange sellQty = new OrderChange();
-		sellQty.setOrdChgSq(orderChangeDetail.getOrdChgSq());
-		sellQty.setSellGb("11");
-		sellQty.setRegNo(regNo);
-		orderChangeDao.createSellQty(sellQty);
+		// 5. 상품재고원복 (품절취소가 아닐 경우)
+		if(!TscConstants.OrderCancelReason.SOLDOUT_CANCEL.value().equals(chgReason)) {
+			OrderChange sellQty = new OrderChange();
+			sellQty.setOrdChgSq(orderChangeDetail.getOrdChgSq());
+			sellQty.setSellGb("11");
+			sellQty.setRegNo(regNo);
+			orderChangeDao.createSellQty(sellQty);
+		}
 
 		// 6. 쿠폰 원복처리
 		Order coupon = new Order();

+ 43 - 24
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -21,6 +21,7 @@ import com.style24.core.biz.dao.TscOrderDao;
 import com.style24.core.biz.dao.TscScmDao;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.core.support.util.CryptoUtils;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderChange;
 import com.style24.persistence.domain.Point;
@@ -51,6 +52,9 @@ public class TscOrderService {
 	
 	@Autowired
 	private TscOrderChangeDao orderChangeDao;
+
+	@Autowired
+	private TscOrderChangeService orderChangeService;
 	
 	@Autowired
 	private TscPointService pointService;
@@ -2093,39 +2097,54 @@ public class TscOrderService {
 			// 주문번호별 상세번호, 취소수량 및 주문정보 세팅
 			List<OrderChange> cancelDataList = new ArrayList<OrderChange>();
 			for(Order param : params) {
-				boolean chkOrd = true;
-
-				for(OrderChange cancelData : cancelDataList) {
-					if(param.getOrdNo().equals(cancelData.getOrdNo())) {
-						chkOrd = false;
-						cancelData.getOrdDtlNoList().add(param.getOrdDtlNo());
-						cancelData.getCnclRtnReqQtyList().add(param.getCnclRtnQty());
+				if(param.getCnclRtnQty() > 0) {
+					boolean chkOrd = true;
+
+					for(OrderChange cancelData : cancelDataList) {
+						if(param.getOrdNo().equals(cancelData.getOrdNo())) {
+							chkOrd = false;
+							cancelData.getOrdDtlNoList().add(param.getOrdDtlNo());
+							cancelData.getCnclRtnReqQtyList().add(param.getCnclRtnQty());
+						}
 					}
-				}
 
-				if(chkOrd) {
-					OrderChange change = new OrderChange();
-					change.setOrdNo(param.getOrdNo());
-					change.setCustNo(param.getCustNo());
-					change.setOrderNm(param.getOrdNm());
-					change.setPgGb(param.getPgGb());
-					change.setPayMeans(param.getPayMeans());
-					change.setBankCd(param.getBankCd());
-					change.setAccountNm(param.getAccountNm());
-					change.setAccountNo(param.getAccountNo());
-					change.getOrdDtlNoList().add(param.getOrdDtlNo());
-					change.getCnclRtnReqQtyList().add(param.getCnclRtnQty());
-					cancelDataList.add(change);
+					if(chkOrd) {
+						OrderChange change = new OrderChange();
+						change.setOrdNo(param.getOrdNo());
+						change.setCustNo(param.getCustNo());
+						change.setOrderNm(param.getOrdNm());
+						change.setPgGb(param.getPgGb());
+						change.setPayMeans(param.getPayMeans());
+						change.setBankCd(param.getBankCd());
+						change.setAccountNm(param.getAccountNm());
+						change.setAccountNo(CryptoUtils.decryptAES(param.getAccountNo()));
+						change.getOrdDtlNoList().add(param.getOrdDtlNo());
+						change.getCnclRtnReqQtyList().add(param.getCnclRtnQty());
+						change.setChgReason(TscConstants.OrderCancelReason.SOLDOUT_CANCEL.value());
+						change.setChgReasonNm("품절취소");
+						cancelDataList.add(change);
+					}
 				}
 			}
 
-			// 리스트로 지정된
+			// 리스트로 지정된 주문상세번호와 취소수량 배열로 변경 후 취소
 			for(OrderChange change : cancelDataList) {
 				change.setOrdDtlNoArr(change.getOrdDtlNoList().stream().mapToInt(i->i).toArray());
 				change.setCnclRtnReqQtyArr(change.getCnclRtnReqQtyList().stream().mapToInt(i->i).toArray());
-			}
 
-			// TODO 취소 완료 알림톡 발송 에정
+				// 무통장입금 주문 중 환불계좌정보 없을 경우 취소신청
+				if(TscConstants.PgGb.KCP.value().equals(change.getPgGb()) && TscConstants.PayMeans.BANK_DEPOSIT.value().equals(change.getPayMeans()) && StringUtils.isEmpty(change.getAccountNo())) {
+					// TODO 취소신청
+					log.info("CHECK IN PART CANCEL ORD_DTL_NO_ARR ::::: {} / {} / {}", change.getOrdNo(), change.getOrdDtlNoArr(), change.getAccountNo());
+				} else {		// 무통장입금 주문 중 환불계좌정보 없을 경우 제외는 취소처리
+					// 취소완료
+					log.info("CHECK IN PART CANCEL ORD_DTL_NO_ARR ::::: {} / {} / {}", change.getOrdNo(), change.getOrdDtlNoArr(), change.getAccountNo());
+					GagaMap cancelInfo = orderChangeService.orderCancelPreInfo(change);
+
+					// TODO 취소 완료 알림톡 발송 에정
+					//
+				}
+			}
 
 			// 결품 취소 후 수량이 남은 경우 배송중처리
 			for(Order param : params) {

+ 15 - 16
src/main/java/com/style24/core/support/env/TscConstants.java

@@ -234,22 +234,21 @@ public class TscConstants {
 	}
 
 	// // 주문변경사유(취소)
-	// public enum OrderCancelReason {
-	// 	CHANGE_CUSTOMER("10"),			// 고객변심
-	// 	EXCHANGE_SIZE("30"),			// 사이즈교환
-	// 	SOLDOUT("60"),					// 품절
-	// 	SOLDOUT_MEMO("품절 취소");
-	//
-	// 	private String value;
-	//
-	// 	private OrderCancelReason(String value) {
-	// 		this.value = value;
-	// 	}
-	//
-	// 	public String value() {
-	// 		return value;
-	// 	}
-	// }
+	public enum OrderCancelReason {
+	 	CHANGE_CUSTOMER("G686_10"),		// 고객변심
+	 	ADMIN_CANCEL("G686_20"),			// 관리자취소
+	 	SOLDOUT_CANCEL("G686_30");		// 품절
+
+	 	private String value;
+
+	 	private OrderCancelReason(String value) {
+	 		this.value = value;
+	 	}
+
+	 	public String value() {
+	 		return value;
+	 	}
+	}
 
 	// 주문변경요청처리상태
 	public enum OrderChangeStat {

+ 10 - 1
src/main/java/com/style24/persistence/domain/GiftCard.java

@@ -50,5 +50,14 @@ public class GiftCard extends TscBaseDomain {
 	private int monthLength;		// 날짜 변수
 	private String useYn;			// 사용가능여부
 
-
+	// KCP 현금영수증 신청
+	private Integer gfcdRcpApiSq;	// 현금영수증 신청 번호
+	private String tradeNo;			// 거래번호
+	private String authNo;			// 승인번호
+	private String resultCd;		// 결과코드
+	private String resultMsg;		// 결과메세지
+	private String tradeTime;		// 주문시간
+	private String ordPhnno;		// 주문자휴대폰번호
+	private String ordNm;			// 주문자명
+	private String ordEmail;		// 주문자 E-Mail
 }

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

@@ -1,5 +1,6 @@
 package com.style24.persistence.domain;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import com.style24.persistence.TscBaseDomain;
@@ -66,8 +67,8 @@ public class OrderChange extends TscBaseDomain {
 	private String ordDtlNos;
 	private String chgQtys;
 
-	private List<Integer> ordDtlNoList;
-	private List<Integer> cnclRtnReqQtyList;
+	private List<Integer> ordDtlNoList = new ArrayList<>();
+	private List<Integer> cnclRtnReqQtyList = new ArrayList<>();
 	
 	private String wdGb;
 	private String recipNm;