Pārlūkot izejas kodu

Merge branch 'develop' into jmh

jmh 4 gadi atpakaļ
vecāks
revīzija
d1c4b49cbf

+ 87 - 6
src/main/java/com/style24/scm/biz/web/TssOrderController.java

@@ -1,16 +1,11 @@
 package com.style24.scm.biz.web;
 
 import java.io.IOException;
-import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Collection;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 
-import com.style24.core.biz.checkout.base.ChangedProductOrderInfo;
-import com.style24.core.biz.checkout.base.ProductOrderChangeType;
-import com.style24.core.biz.service.TscNaverPayService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -30,11 +25,15 @@ import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.rest.server.GagaResponse;
 import com.gagaframework.web.util.GagaDateUtil;
 import com.gagaframework.web.util.GagaFileUtil;
+import com.style24.core.biz.service.TscKakaotalkService;
+import com.style24.core.biz.service.TscNaverPayService;
+import com.style24.core.biz.service.TscOrderChangeService;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.TscPageRequest;
 import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
 import com.style24.scm.biz.service.TssOrderService;
 import com.style24.scm.biz.service.TssRendererService;
 import com.style24.scm.support.controller.TssBaseController;
@@ -71,6 +70,12 @@ public class TssOrderController extends TssBaseController {
 
 	@Autowired
 	private TscNaverPayService coreNaverPayService;
+	
+	@Autowired
+	private TscOrderChangeService coreOrderChangeService;
+	
+	@Autowired
+	private TscKakaotalkService coreKakaotalkService;
 
 	/**
 	 * 입점업체미발주목록화면
@@ -316,7 +321,83 @@ public class TssOrderController extends TssBaseController {
 	@ResponseBody
 	public GagaResponse sellerDelvStarted(@RequestBody Collection<Order> orderList) {
 		int userNo = TssSession.getInfo().getUserNo();
-		coreOrderService.updateSellerDelvStartAndPartCancel(orderList, userNo);
+		Collection<OrderChange> cancelDataList = coreOrderService.getCancelDataList(orderList, userNo);
+		
+		log.info("cancelDataList >>> {}", cancelDataList);
+		log.info("size >>> {}", cancelDataList.size());
+
+		// [주문배송] 리스트로 지정된 주문상세번호와 취소수량 배열로 변경 후 취소
+		for (OrderChange change : cancelDataList) {
+			change.setOrdDtlNoArr(change.getOrdDtlNoList().stream().mapToInt(i->i).toArray());
+			change.setCnclRtnReqQtyArr(change.getCnclRtnReqQtyList().stream().mapToInt(i->i).toArray());
+
+			// 2021.07.15 교환배송건인 경우는 취소처리 대상에서 예외 처리
+			if (change.getOrdChgSq() == null || change.getOrdChgSq() < 1) {
+
+				// PG구분:KCP, 결제수단:무통장입금, 환불계좌가 없는경우 취소접수단계로 처리
+				// 2021.09.10 card007 핸드폰결제, 무통장입금은 부분취소 시 에러 발생함으로 취소접수로 처리
+				if (TscConstants.PgGb.KCP.value().equals(change.getPgGb()) && (TscConstants.PayMeans.BANK_DEPOSIT.value().equals(change.getPayMeans()) || TscConstants.PayMeans.CELL_PHONE.value().equals(change.getPayMeans()))) {
+					// 취소점수
+					change.setChgGb(TscConstants.OrderChangeGb.CANCEL.value());
+					coreOrderChangeService.cancelRequest(change);
+
+					// 2021.09.10 card007 취소 접수시에는 CS에서 OB함으로 카카오알림톡 발송 X
+					// try {
+					// 	// 환불계좌X 취소 접수 알림톡 관련 정보 조회
+					// 	OrderChange orderChange = new OrderChange();
+					// 	orderChange = coreOrderChangeService.getKakaoOrderCancelInfo(change.getOrdChgSq());
+					//
+					// 	// 취소 알림톡 발송
+					// 	orderChange.setChgGb(TscConstants.OrderCancelReason.SOLDOUT_CANCEL.value());
+					// 	coreKakaotalkService.sendOrderCancelComplete(orderChange, userNo);
+					// } catch (Exception e) {
+					// 	e.printStackTrace();
+					// }
+				}
+				// 무통장입금 주문 중 환불계좌정보 없을 경우 제외는 취소처리
+				// 2021.09.10 card007 핸드폰결제, 무통장입금 제외로 변경
+				else {
+					// 취소완료처리
+					GagaMap cancelInfo = coreOrderChangeService.orderCancelPreInfo(change, userNo);
+
+					// 3. 취소완료 카카오알림톡 발송
+					Integer ordChgSq = cancelInfo.getInt("ordChgSq");
+
+					if (ordChgSq != null && ordChgSq > 0) {
+
+						// 네이버페이 품절취소 송부
+						if(TscConstants.PgGb.NAVER_ORDER.value().equals(change.getPgGb())) {
+							for (int i = 0; i < change.getOrdDtlNoArr().length; i++) {
+								Order order = new Order();
+								order.setOrdDtlNo(change.getOrdDtlNoArr()[i]);
+								try {
+									coreNaverPayService.sendNaverPaySoldoutCancel(order, userNo);        // 품절취소
+								} catch (Exception e) {
+									e.printStackTrace();
+								}
+							}
+						}
+
+						try {
+							// 취소 알림톡 관련 정보 조회
+							OrderChange orderChange = new OrderChange();
+							orderChange = coreOrderChangeService.getKakaoOrderCancelInfo(ordChgSq);
+
+							// 취소 알림톡 발송
+							orderChange.setChgGb(TscConstants.OrderCancelReason.SOLDOUT_CANCEL.value());
+							coreKakaotalkService.sendOrderCancelComplete(orderChange, userNo);
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+
+						// TODO 취소 메일 송부를 품절취소에서도 보내는지 ?
+					}
+				}
+			}
+		}
+
+		coreOrderService.updateSellerDelvStart(orderList, cancelDataList, userNo);
+
 		return super.ok("");
 	}