Kaynağa Gözat

샵링커 주문수집, 주문 엑셀업로드:재고품절 상품 관리자메모에 추가

jmh 4 yıl önce
ebeveyn
işleme
520a1c03f0

+ 10 - 0
src/main/java/com/style24/core/biz/dao/TscOrderOcmDao.java

@@ -340,5 +340,15 @@ public interface TscOrderOcmDao {
 	 * @since 2021. 06. 17
 	 */
 	ExtmallOrder getExtmallOrderUploadResultInfo(ExtmallOrder extmallOrder);
+	
+	/**
+	 * 제휴몰 주문 등록 실패 내용-관리자메모 등록
+	 *
+	 * @param extmallOrder - 외부몰주문업로드 정보
+	 * @return Collection<ExtmallOrder>
+	 * @author jmh
+	 * @since 2021. 09. 09
+	 */
+	void createOrderMemo(ExtmallOrder extmallOrder);
 
 }

+ 28 - 3
src/main/java/com/style24/core/biz/service/TscOrderOcmService.java

@@ -300,7 +300,22 @@ public class TscOrderOcmService {
 			}
 		}
 
-		// 8. 알림톡발송
+		// 8. 부분품절상품 - 관리자메모 등록
+		if ("SUCCESS".equals(result.get("message").toString())) {
+			if( "PART_SUCCESS".equals(result.getString("sendNotiType"))) {
+				if( !"".equals(result.getString("failGoods"))) {
+					// 부분성공 (실패내용 관리자메모)
+					ExtmallOrder adminMemo = new ExtmallOrder();
+					adminMemo.setOrdNo(order.getOrdNo());
+					adminMemo.setMemo("[품절/재고관련 주문 미등록건] :"+result.getString("failGoodsAdmMsg"));
+					adminMemo.setRegNo(0);
+					
+					orderOcmDao.createOrderMemo(adminMemo);
+				}
+			}
+		}
+		
+		// 9. 알림톡발송
 		try {
 			if( "N".equals(order.getCnclsmsSendYn())) {		// Y:제휴몰에서발송, N:자사몰에서발송
 
@@ -430,7 +445,8 @@ public class TscOrderOcmService {
 	 */
 	public GagaMap orderValidationCheck(ExtmallOrder order) {
 		GagaMap result = new GagaMap();
-		String failGoods = "";
+		String failGoods = "";			// 고객발송 상품내용
+		String failGoodsAdmMsg = "";	// 주문관리자 메모
 
 		// 1. 주문상세체크
 		Collection<ExtmallOrder> orderDetailList = order.getOrderDetailList();
@@ -451,6 +467,7 @@ public class TscOrderOcmService {
 				// 알림톡 발송 할 목록
 				if("Y".equals(resultMap.get("sendNotiYn"))){
 					failGoods += resultMap.get("goodsNm") + ",";
+					failGoodsAdmMsg += "\n"+resultMap.get("goodsNm")+"("+resultMap.get("optCd")+ "),";
 					stockFailCnt ++;
 				}
 			}
@@ -488,10 +505,13 @@ public class TscOrderOcmService {
 
 		// 실패상품목록
 		if( 0 < failGoods.length()) failGoods = failGoods.substring(0, failGoods.length()-1);
+		if( 0 < failGoodsAdmMsg.length()) failGoodsAdmMsg = failGoodsAdmMsg.substring(0, failGoodsAdmMsg.length()-1);
+		
 		result.put("failGoods", failGoods);			// 실패상품목록
 		result.put("failCnt", dtlCnt - succCnt );	// 총 실패건수
 		result.put("stockFailCnt", stockFailCnt );	// 재고로인한 실패건수
-
+		result.put("failGoodsAdmMsg", failGoodsAdmMsg);			// 관리자메모 내용
+		
 		return result;
 	}
 
@@ -550,6 +570,7 @@ public class TscOrderOcmService {
 
 		} else if (TscConstants.GoodsStat.SOLDOUT.value().equals(dtlOrd.getGoodsStat())) {
 			result.put("goodsNm", dtlOrd.getGoodsNm());
+			result.put("optCd", dtlOrd.getOptCd());
 			result.put("sendNotiYn", "Y");	// 알림톡발송 o
 			result.put("uploadFailCd", TscConstants.ExtmallUploadFailStat.STOCK.value());
 			result.put("message", "품절입니다.");
@@ -557,6 +578,7 @@ public class TscOrderOcmService {
 
 		} else if (!TscConstants.GoodsStat.SOLDOUT.value().equals(dtlOrd.getGoodsStat()) && !TscConstants.GoodsStat.APPR.value().equals(dtlOrd.getGoodsStat())) {
 			result.put("goodsNm", dtlOrd.getGoodsNm());
+			result.put("optCd", dtlOrd.getOptCd());
 			result.put("sendNotiYn", "Y");	// 알림톡발송 o
 			result.put("uploadFailCd", TscConstants.ExtmallUploadFailStat.STOCK.value());
 			result.put("message", "판매중인 상품이 아닙니다.");
@@ -566,6 +588,7 @@ public class TscOrderOcmService {
 		//상품 재고 확인
 		if (null == dtlOrd.getSoldoutYn()) {
 			result.put("goodsNm", dtlOrd.getGoodsNm());
+			result.put("optCd", dtlOrd.getOptCd());
 			result.put("sendNotiYn", "Y");	// 알림톡발송 o
 			result.put("uploadFailCd", TscConstants.ExtmallUploadFailStat.STOCK.value());
 			result.put("message", "재고체크 실패했습니다. 새로고침 후 다시 시도해주세요.");
@@ -574,6 +597,7 @@ public class TscOrderOcmService {
 
 		if ("Y".equals(dtlOrd.getSoldoutYn())) {
 			result.put("goodsNm", dtlOrd.getGoodsNm());
+			result.put("optCd", dtlOrd.getOptCd());
 			result.put("sendNotiYn", "Y");	// 알림톡발송 o
 			result.put("uploadFailCd", TscConstants.ExtmallUploadFailStat.STOCK.value());
 			result.put("message", dtlOrd.getOptCd2() + " 옵션은 품절입니다.");
@@ -582,6 +606,7 @@ public class TscOrderOcmService {
 
 		if (param.getOrdQty() > dtlOrd.getCurrStockQty()) {
 			result.put("goodsNm", dtlOrd.getGoodsNm());
+			result.put("optCd", dtlOrd.getOptCd());
 			result.put("sendNotiYn", "Y");	// 알림톡발송 o
 			result.put("uploadFailCd", TscConstants.ExtmallUploadFailStat.STOCK.value());
 			result.put("message", "옵션의 재고가 충분하지 않습니다.");

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

@@ -1624,5 +1624,27 @@
 			AND    B.REG_NO = #{regNo}
 		) A  WHERE A.RANKING = 1
 	</select>
+	
+	<!-- 주문상세 > 주문요청 관리자 메모 > 메모등록 -->
+	<insert id="createOrderMemo" parameterType="ExtmallOrder">
+		/* TscOrderOcm.createOrderMemo */
+		INSERT INTO TB_ORDER_MEMO (
+		    ORD_NO
+		  , MEMO
+		  , DEL_YN
+		  , REG_NO
+		  , REG_DT
+		  , UPD_NO
+		  , UPD_DT
+		) VALUES (
+		    #{ordNo}
+		  , #{memo}
+		  , 'N'
+		  , #{regNo}
+		  , NOW()
+		  , #{regNo}
+		  , NOW()
+		)
+	</insert>
 
 </mapper>