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

주문 취소 알림톡 발송 개발 임시 커밋

card007 5 лет назад
Родитель
Сommit
89141ef8f2

+ 86 - 0
src/main/java/com/style24/core/biz/service/TscKakaotalkService.java

@@ -19,6 +19,7 @@ import com.style24.persistence.domain.CustCoupon;
 import com.style24.persistence.domain.Customer;
 import com.style24.persistence.domain.GiftCard;
 import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
 import com.style24.persistence.domain.Point;
 import com.style24.persistence.domain.SsgDirectMessage;
 
@@ -825,4 +826,89 @@ public class TscKakaotalkService {
 	}
 	
 	//----------------------------
+
+
+	/**
+	 * 주문취소 알림톡
+	 * 
+	 * @param OrderChange
+	 * @param senderNo
+	 * @author card007
+	 * @since 2021. 06. 07
+	 */
+	@Transactional("shopTxnManager")
+	public void sendOrderCancelComplete(OrderChange orderChange, Integer senderNo) throws Exception {
+		SsgDirectMessage dm = new SsgDirectMessage();
+		dm.setFuserid(String.valueOf(senderNo));
+		dm.setFdestine(orderChange.getOrdPhnno());
+		dm.setFkkoresendtype("LMS");
+		dm.setButtonNm("주문 취소 확인");
+
+		DecimalFormat dc = new DecimalFormat("###,###,###,###");
+		String refundAmt = dc.format(orderChange.getRefundAmt());
+
+		GagaMap replaceInfo = new GagaMap();
+		replaceInfo.setString("siteNm"				, siteNm);
+		replaceInfo.setString("ordNm"				, orderChange.getOrdNm());
+		replaceInfo.setInt("ordNo"					, orderChange.getOrdNo());
+		replaceInfo.setString("goodsNm"				, orderChange.getGoodsNm());
+		replaceInfo.setInt("goodsCnt"				, orderChange.getGoodsCnt());
+		replaceInfo.setString("payMeansNm"			, orderChange.getPayMeansNm());
+		replaceInfo.setString("refundAmt"			, refundAmt);
+
+		if (orderChange.getIsCustomer()) {
+			replaceInfo.setString("url", "/mypage/cre/list/form");
+		} else {
+			replaceInfo.setString("url", "/customer/noncust/order/confirm/form");
+		}
+
+		Integer ansSq = 0;
+		String pgGb = orderChange.getPgGb();
+		String payMeans = orderChange.getPayMeans();
+		if (TscConstants.PgGb.KCP.value().equals(pgGb)) {
+			if (TscConstants.PayMeans.CREDIT_CARD.value().equals(payMeans)) {
+				ansSq = SsgKakaoSender.KakaoAnswerSq.CARD_CANCEL_REFUND.value();
+			} else if (TscConstants.PayMeans.CELL_PHONE.value().equals(payMeans)) {
+				ansSq = SsgKakaoSender.KakaoAnswerSq.NA_CANCEL_REFUND.value();
+			} else if (TscConstants.PayMeans.ACCOUNT_TRANSFER.value().equals(payMeans)) {
+				ansSq = SsgKakaoSender.KakaoAnswerSq.AT_CANCEL_REFUND.value();
+			} else if (TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payMeans)) {
+				ansSq = SsgKakaoSender.KakaoAnswerSq.VA_CANCEL_REFUND.value();
+			}
+		} else if (TscConstants.PgGb.PAYCO.value().equals(pgGb)) {
+			// TODO
+			// PAYCO 취소 알림톡 처리
+		} else if (TscConstants.PgGb.KAKAO.value().equals(pgGb)) {
+			// TODO
+			// 카카오페이 취소 알림톡 처리
+		} else if (TscConstants.PgGb.NAVER.value().equals(pgGb)) {
+			// TODO
+			// 네이버페이 취소 알림톡 처리
+		} else if (TscConstants.PgGb.ISTYLE.value().equals(pgGb)) {
+			// TODO
+			// 상품권 전체 결제 취소 알림톡 처리
+		}
+
+		if (ansSq > 0) {
+			// 테스트중
+			if ("전석훈".equals(orderChange.getOrdNm()) || "이태영".equals(orderChange.getOrdNm()) || "김지철".equals(orderChange.getOrdNm()) || "신주승".equals(orderChange.getOrdNm())) {
+				kakaoSender.send(ansSq, dm, replaceInfo);
+			}
+
+			try {
+				// 고객접촉이력 정보
+				CustContactHst custContactHst = new CustContactHst();
+				custContactHst.setContactType(TscConstants.ContactType.CANCEL_INFO.value());		// 접촉유형:주문-취소안내(공통코드G054)
+				custContactHst.setContactMethod(TscConstants.ContactMethod.KAKAOTALK.value());		// 접촉방법:알림톡+문자(공통코드G055)
+				custContactHst.setContactContents("주문-취소안내");
+				custContactHst.setReceiverNo(orderChange.getCustNo());
+				custContactHst.setSenderNo(senderNo);
+				custContactHst.setRegNo(senderNo);
+				coreCustomerService.createCustomerContactHistory(custContactHst);
+			} catch (Exception e) {
+				log.error("error", e);
+				// Do nothing
+			}
+		}
+	}
 }

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

@@ -290,6 +290,9 @@ public class TscOrderChangeService {
 					orderChange.setOrdChgSq(ordChgSq);
 				}
 
+				// 주문변경일련번호 설정
+				map.setInt("ordChgSq", ordChgSq);
+
 				// 3-2. 주문상세정보 수정
 				for (Order vo : cancelOrderDetailList) {
 					// 배송정책코드 별 주문상세 처리
@@ -2491,7 +2494,7 @@ public class TscOrderChangeService {
 	 */
 	@SuppressWarnings("unchecked")
 	@Transactional("shopTxnManager")
-	public void allCnclComplete(OrderChange orderChange) {
+	public Integer allCnclComplete(OrderChange orderChange) {
 		Integer ordNo = orderChange.getOrdNo();											// 주문번호
 		String chgReason = orderChange.getChgReason();									// G686_10:고객변심, G686_20:관리자취소, G686_30:품절취소
 		String chgReasonNm = orderChange.getChgReasonNm();								// 고객변심, 관리자취소, 품절취소
@@ -2747,6 +2750,8 @@ public class TscOrderChangeService {
 
 			kcpService.kcpCashReceiptCancel(giftCardCashReceipts);
 		}
+		
+		return ordChgSq;
 	}
 
 	/**
@@ -2781,7 +2786,7 @@ public class TscOrderChangeService {
 		} else {
 			// 3. 환불금액계산
 			// 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현
-			result = orderRefundService.cnclRtnRefundAmt(cnclReqList);
+			result = orderRefundService.cnclRtnRefundAmt2(cnclReqList);
 
 			// 4. 부분취소 처리 정보 설정
 			result.setInt("ordNo", orderChange.getOrdNo());							// 주문번호
@@ -2801,7 +2806,7 @@ public class TscOrderChangeService {
 			result.setString("cashAuthNo", refundPreInfo.getString("cashAuthNo"));	// 현금영수증 승인번호
 			result.setString("batchYn", orderChange.getBatchYn());
 			// 부분취소 처리
-			partialCancel(result, userNo);
+			partialCancelTemp(result, userNo);
 		}
 
 		return result;
@@ -2819,6 +2824,7 @@ public class TscOrderChangeService {
 	@Transactional("shopTxnManager")
 	public GagaMap orderCancelPreInfoTemp(OrderChange orderChange, Integer userNo) {
 		GagaMap result = new GagaMap();
+		Integer ordChgSq;
 
 		// 1. 환불 사전 정보 조회
 		GagaMap refundPreInfo = getRefundPreInfo2(orderChange);
@@ -2835,7 +2841,7 @@ public class TscOrderChangeService {
 			orderChange.setUpdNo(userNo);
 
 			// 전체 취소 처리
-			allCnclComplete(orderChange);
+			ordChgSq = allCnclComplete(orderChange);
 		} else {
 			// 3. 환불금액계산
 			// 2021.01.19 취소신청정보를 목록 (주문상세번호, 취소/반품수량) 으로 표현
@@ -2858,8 +2864,9 @@ public class TscOrderChangeService {
 			result.setString("pgGb", refundPreInfo.getString("pgGb"));				// PG구분
 			result.setString("cashAuthNo", refundPreInfo.getString("cashAuthNo"));	// 현금영수증 승인번호
 			result.setString("batchYn", orderChange.getBatchYn());
+
 			// 부분취소 처리
-			partialCancelTemp(result, userNo);
+			result = partialCancelTemp(result, userNo);
 		}
 
 		return result;

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

@@ -208,5 +208,5 @@ public class OrderChange extends TscBaseDomain {
 	private int spanRefundAmt;
 	private int codFee;
 	private int encloseFee;	
-	
+	private int goodsCnt;
 }