Bläddra i källkod

샵링커 주문수집 개선건 (임시)

jmh 4 år sedan
förälder
incheckning
1ec73620ca

+ 60 - 25
src/main/java/com/style24/core/biz/service/TscOrderOcmService.java

@@ -455,24 +455,58 @@ public class TscOrderOcmService {
 		int succCnt = 0;
 		int stockFailCnt = 0;
 		
-		failGoodsAdmMsg += "\n쇼핑몰주문번호: "+order.getExtmallOrderId();
-		failGoodsAdmMsg += "\n샵링커주문번호: ";
-		for (ExtmallOrder orderDetail : orderDetailList) {
-
-			GagaMap resultMap = this.checkGoodsInfo(orderDetail);
-
-			orderDetail.setUploadFailCd(resultMap.getString("uploadFailCd"));
-			orderDetail.setUploadFailReason(resultMap.getString("message"));
-
-			if ("SUCCESS".equals(resultMap.get("message").toString())) {
-				succCnt ++;
-			}else {
-				// 알림톡 발송 할 목록
-				if("Y".equals(resultMap.get("sendNotiYn"))){
-					failGoods += resultMap.get("goodsNm") + ",";
-					failGoodsAdmMsg += orderDetail.getAgentOrderId()+" ,";
-					//failGoodsAdmMsg += "\n상품:"+resultMap.get("goodsNm")+"("+resultMap.get("optCd")+ "),";
-					stockFailCnt ++;
+		if( order.getRealDelvAmt() < 0 ) {
+			// 배송비 상이 전체 주문실패 
+			succCnt = -1;
+			for (ExtmallOrder orderDetail : orderDetailList) {
+				orderDetail.setUploadFailCd(TscConstants.ExtmallUploadFailStat.DELV_FEE.value());
+			}
+			
+		}else {
+			
+			boolean bool = true;
+			failGoodsAdmMsg += "\n쇼핑몰주문번호: "+order.getExtmallOrderId();
+			failGoodsAdmMsg += "\n샵링커주문번호: ";
+			// sub1 각각의 실패사유 체크
+			for (ExtmallOrder orderDetail : orderDetailList) {
+	
+				GagaMap resultMap = this.checkGoodsInfo(orderDetail);
+				
+				orderDetail.setUploadFailCd(resultMap.getString("uploadFailCd"));
+				orderDetail.setUploadFailReason(resultMap.getString("message"));
+	
+				if ("SUCCESS".equals(resultMap.get("message").toString())) {
+					succCnt ++;
+				}else {
+					
+					// 주문전체 실패로 저장 (21.10.07)
+					if( !resultMap.getString("uploadFailCd").equals(TscConstants.ExtmallUploadFailStat.STOCK.value()) 
+						&& !resultMap.getString("uploadFailCd").equals(TscConstants.ExtmallUploadFailStat.ORDER.value()) ) {
+						bool = false;
+					}else {
+						// 알림톡 발송 할 목록
+						if("Y".equals(resultMap.get("sendNotiYn"))){
+							failGoods += resultMap.get("goodsNm") + ",";
+							failGoodsAdmMsg += orderDetail.getAgentOrderId()+" ,";
+							//failGoodsAdmMsg += "\n상품:"+resultMap.get("goodsNm")+"("+resultMap.get("optCd")+ "),";
+							stockFailCnt ++;
+						}
+					}
+				}
+			}
+			
+			// sub1 각각의 실패사유 중 재고& 동일주문건을 제외하고는 전체 실패로 저장 하도록 변경(21.10.07)
+			// 실패건은 엑셀업로드를 통한 수동등록해서, 주문건이 하나로 생성되도록 하기 위함 
+			if( !bool) {
+				succCnt = -1;
+				failGoods = "";
+				failGoodsAdmMsg = "";
+				stockFailCnt = 0;
+				for (ExtmallOrder orderDetail : orderDetailList) {
+					if("".equals(orderDetail.getUploadFailCd())) {
+						orderDetail.setUploadFailCd(TscConstants.ExtmallUploadFailStat.ETC.value());
+						orderDetail.setUploadFailReason("(정상) 다른 옵션으로 인한 실패");
+					}
 				}
 			}
 		}
@@ -560,12 +594,6 @@ public class TscOrderOcmService {
 			result.put("message", "이미 재고 부족으로 인한 고객 알림 발송이 완료된 건입니다.(동일수집 실패)");
 			return result;
 
-		} else if( null == dtlOrd.getGoodsCd()) {
-			result.put("sendNotiYn", "N");	// 알림톡발송 x
-			result.put("uploadFailCd", TscConstants.ExtmallUploadFailStat.GOODS.value());
-			result.put("message", "상품코드가 잘못되었습니다.");
-			return result;
-
 		} else if( null == dtlOrd.getOptCd()) {
 			result.put("sendNotiYn", "N");	// 알림톡발송 x
 			result.put("uploadFailCd", TscConstants.ExtmallUploadFailStat.SIZE.value());
@@ -573,6 +601,13 @@ public class TscOrderOcmService {
 			return result;
 
 		}
+		/* 21.10.07 정과장님 제외요청. 상품코드는 필수체크 제외 
+		} else if( null == dtlOrd.getGoodsCd()) {
+			result.put("sendNotiYn", "N");	// 알림톡발송 x
+			result.put("uploadFailCd", TscConstants.ExtmallUploadFailStat.GOODS.value());
+			result.put("message", "상품코드가 잘못되었습니다.");
+			return result;
+		*/
 		/* 21.09.27 정과장님 제외요청 상품 상태값 상관없이 주문되어야 한다 함.(재고만 체크하도록 변경요청)
 		else if (TscConstants.GoodsStat.SOLDOUT.value().equals(dtlOrd.getGoodsStat())) {
 			result.put("goodsNm", dtlOrd.getGoodsNm());
@@ -595,7 +630,7 @@ public class TscOrderOcmService {
 		if (null == dtlOrd.getSoldoutYn()) {
 			result.put("goodsNm", dtlOrd.getGoodsNm());
 			result.put("optCd", dtlOrd.getOptCd());
-			result.put("sendNotiYn", "N");	// 알림톡발송 o
+			result.put("sendNotiYn", "N");	// 알림톡발송 x
 			result.put("uploadFailCd", TscConstants.ExtmallUploadFailStat.STOCK.value());
 			result.put("message", "재고체크 실패했습니다. 새로고침 후 다시 시도해주세요.");
 			return result;

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

@@ -406,6 +406,7 @@ public class TscShoplinkerService {
 	public void insertShoplinkerOrderStep2(ShoplinkerOrder shoplinkerOrder) {
 
 		// 1. 외부몰 미등록 목록 가져옴
+		// 중요!! 4상점(옥션,지마켓,카카오톡스토어,위메프)은 MALL_ORDER_ID를 SHIP_NO로 대처해서 저장한다.=> 1개의 주문건인데 쇼핑몰 번호가 다르게 옴 => SHIP_NO로 1개의 주문건으로 체크 함
 		Collection<ShoplinkerOrder> slkOrdList = shoplinkerDao.getShoplinkerRegExtmallList();
 
 		ExtmallOrder extmallOrder;

+ 1 - 0
src/main/java/com/style24/core/support/env/TscConstants.java

@@ -1134,6 +1134,7 @@ public class TscConstants {
 		STORE("G022_50"),				// 판매매장미등록
 		STOCK("G022_60"),				// 가용재고없음
 		ORDER("G022_70"),				// 동일주문수집
+		DELV_FEE("G022_80"),			// 배송비 상이함
 		ETC("G022_90");					// 기타
 
 		private String value;

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

@@ -18,7 +18,7 @@
 			, IFNULL(A.RECIP_ZIPCODE, '') AS RECIP_ZIPCODE
 			, IFNULL(A.RECIP_BASE_ADDR, '') AS RECIP_BASE_ADDR
 			, IFNULL(A.RECIP_DTL_ADDR, '') AS RECIP_DTL_ADDR
-			, SUM(A.DELV_FEE) AS DELV_FEE
+			, FN_GET_SHOPLINKER_DEVL_FEE(#{uploadGb}, A.EXTMALL_ID, A.EXTMALL_ORDER_ID) AS DELV_FEE
 			, SUM(A.ORD_AMT) AS REAL_ORD_SUM_AMT
 			, (SELECT CNCLSMS_SEND_YN FROM TB_EXTMALL S WHERE S.VENDOR_ID = A.VENDOR_ID
 				AND S.EXTMALL_ID = A.EXTMALL_ID AND S.USE_YN = 'Y') AS CNCLSMS_SEND_YN