Pārlūkot izejas kodu

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

xodud lee 4 gadi atpakaļ
vecāks
revīzija
9883112a62

+ 9 - 0
src/main/java/com/style24/core/biz/dao/TscOrderDao.java

@@ -746,6 +746,15 @@ public interface TscOrderDao {
 	 * @since 2021. 03. 09
 	 */
 	Collection<Order> getOrderDetailOrdAmtList(Order order);
+	
+	/**
+	 * 44.1 주문상세 결제금액 목록 배송그룹 조회
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 03. 09
+	 */
+	Collection<Order> getOrderDetailDelvFeeCdGrp(Order order);
 
 	/**
 	 * 주문 상태 별 수량 조회

+ 35 - 0
src/main/java/com/style24/core/biz/service/TscMailService.java

@@ -14,6 +14,7 @@ import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.CustContactHst;
 import com.style24.persistence.domain.CustCoupon;
 import com.style24.persistence.domain.Customer;
+import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.Point;
 
 import lombok.extern.slf4j.Slf4j;
@@ -562,5 +563,39 @@ public class TscMailService {
 			// Do nothing
 		}
 	}
+	
+	/**
+	 * 주문 결제 완료 안내
+	 *
+	 * @param GagaMap
+	 * @param Integer
+	 * @author jsh77b
+	 * @since 2021. 06. 22
+	 */
+	@Transactional("shopTxnManager")
+	public void sendOrderComplete(GagaMap replaceInfo, Integer senderNo) {
+		
+		Order orderInfo = (Order)replaceInfo.get("orderInfo");
+
+		// 주문 결제 완료 메일 발송
+		netpathyMailSender.send(NetpathyMailSender.MailAnswerSq.ORDER_COMPLETE.value(), orderInfo.getOrdEmail(), replaceInfo);
+
+		try {
+			if (replaceInfo.getInt("custNo") > 0) {
+				// 고객접촉이력 정보
+				CustContactHst custContactHst = new CustContactHst();
+				custContactHst.setContactType(TscConstants.ContactType.CANCEL_INFO.value());				// 접촉유형:주문-취소안내(공통코드G054)
+				custContactHst.setContactMethod(TscConstants.ContactMethod.EMAIL.value());					// 접촉방법:알림톡+문자(공통코드G055)
+				custContactHst.setContactContents("주문-결제안내");
+				custContactHst.setReceiverNo(replaceInfo.getInt("custNo"));
+				custContactHst.setSenderNo(senderNo);
+				custContactHst.setRegNo(senderNo);
+				coreCustomerService.createCustomerContactHistory(custContactHst);
+			}
+		} catch (Exception e) {
+			log.error("error", e);
+			// Do nothing
+		}
+	}
 
 }

+ 13 - 2
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -3013,7 +3013,11 @@ public class TscOrderChangeService {
 		DeliveryFee deliveryFee = new DeliveryFee();
 		deliveryFee.setOrdNo(ordNo);
 		deliveryFee.setDelvFeeCd(delvFeeCd);
-		deliveryFee.setOrdChgSq(ordChgSq);
+		
+		// 2021.06.23 주문완료에서 같이 사용하려고 추가 하였음
+		if (ordChgSq != null) {
+			deliveryFee.setOrdChgSq(ordChgSq);
+		}
 
 		Collection<DeliveryFee> deliveryFeeList = deliveryService.getDeliveryFee(deliveryFee);
 
@@ -3038,7 +3042,14 @@ public class TscOrderChangeService {
 		sb.append("													</tr>\n");
 		sb.append("													<tr>\n");
 		sb.append("														<th colspan=\"2\" style=\"text-align: left;font-size: 18px;color: #222222;\" align=\"left\">\n");
-		sb.append("															주문취소 상품정보\n");
+		
+		// 2021.06.23 주문완료에서 같이 사용하려고 추가 하였음
+		if (ordChgSq != null) {
+			sb.append("															주문취소 상품정보\n");
+		} else {
+			sb.append("															상품정보\n");
+		}
+		
 		sb.append("														</th>\n");
 		sb.append("													</tr>\n");
 

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

@@ -22,6 +22,7 @@ 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.DeliveryFee;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderChange;
 import com.style24.persistence.domain.Payment;
@@ -1902,7 +1903,9 @@ public class TscOrderService {
 		}
 		
 		// 3. 상품정보조회
-		Collection<Order> orderDetailList = orderDao.getOrderDetailOrdAmtList(order);
+		Collection<Order> orderDetailList 			= orderDao.getOrderDetailOrdAmtList(order);
+		Collection<Order> orderDetailDelvFeeCdGrp 	= orderDao.getOrderDetailDelvFeeCdGrp(order);
+		
 		int listSumAmt 			= 0; // 상품금액합계(정상가)
 		int goodsSumAmt 		= 0; // 상품금액합계(판매가)
 		int goodsDcSumAmt		= 0; // 상품할인금액(정상가 - 판매가)
@@ -2036,6 +2039,54 @@ public class TscOrderService {
 		resultMap.set("goodsNm"				, goodsNm);				// 상품명
 		resultMap.set("goodsCnt"			, goodsCnt);			// 상품건수
 		
+		// 2021.06.23 주문완료 메일정보 추가
+		resultMap.set("ordNm"				, order.getOrdNm());			// 주문자명
+		resultMap.set("ordNo"				, order.getOrdNo());			// 주문번호
+		resultMap.set("ordDt"				, order.getOrdDt());			// 주문일자
+		resultMap.set("recipNm"				, order.getRecipNm());			// 받는사람
+		resultMap.set("recipPhnno"			, order.getRecipPhnno());		// 받는사람핸드폰번호
+		resultMap.set("recipZipcode"		, order.getRecipZipcode());		// 받는사람우편번호
+		resultMap.set("recipBaseAddr"		, order.getRecipBaseAddr());	// 받는사람기본주소
+		resultMap.set("recipDtlAddr"		, order.getRecipDtlAddr());		// 받는사람상세주소
+		resultMap.set("delvMemo"			, order.getDelvMemo());			// 받는사람배송메모
+		resultMap.set("pgGbNm"				, payType);						// 결제방법
+		
+		// 취소 상세 정보 조회
+		Collection<OrderChange> cancelList = new ArrayList();
+		for (Order orderDetail : orderDetailList) {
+			OrderChange orderChange = new OrderChange();
+			orderChange.setGoodsCd(orderDetail.getGoodsCd());
+			orderChange.setGoodsNm(orderDetail.getGoodsNm());
+			orderChange.setBrandNm(orderDetail.getBrandGroupNm());
+			orderChange.setShotDelvYn(orderDetail.getShotDelvYn());
+			orderChange.setSelfGoodsYn(orderDetail.getSelfGoodsYn());
+			orderChange.setItemNm(orderDetail.getItemNm());
+			orderChange.setColorNm(orderDetail.getColorNm());
+			orderChange.setOptCd1(orderDetail.getOptCd1());
+			orderChange.setOptCd2(orderDetail.getOptCd2());
+			orderChange.setGoodsType(orderDetail.getGoodsType());
+			orderChange.setSysImgNm(orderDetail.getSysFileNm());
+			orderChange.setSupplyCompNm(orderDetail.getSupplyCompNm());
+			orderChange.setDelvFeeCd(orderDetail.getCartDelvFeeCd());
+			orderChange.setOrdNo(order.getOrdNo());
+
+			cancelList.add(orderChange);
+		}
+
+		// 상픔 정보 조회
+		String cancelInfo = orderChangeService.getMailOrderCancelInfo(cancelList);
+		resultMap.set("orderListInfo"		, cancelInfo);				// 주문목록
+		
+		log.info("cancelInfo ::: {}", cancelInfo);
+		
+		// 사은품목록
+		OrderChange oc = new OrderChange();
+		oc.setOrdNo(order.getOrdNo());
+		String freeGiftInfo = orderChangeService.getMailFreeGiftCancelInfo(oc);
+		resultMap.set("orderFreegiftInfo"	, freeGiftInfo);			// 사은품목록
+		
+		log.info("freeGiftInfo ::: {}", freeGiftInfo);
+
 		return resultMap;
 	}
 	

+ 152 - 42
src/main/java/com/style24/persistence/mybatis/shop/TscOrder.xml

@@ -3854,48 +3854,158 @@
 	<!-- 44. 주문상세 결제금액 목록 조회 -->
 	<select id="getOrderDetailOrdAmtList"  parameterType="Order" resultType="Order">
 		/* TscOrder.getOrderDetailOrdAmtList */
-		SELECT OD.GOODS_CD
-		     , OD.ORD_DTL_NO
-		     , OD.LIST_PRICE
-		     , OD.CURR_PRICE
-		     , SUM(ODI.OPT_ADD_PRICE) AS OPT_ADD_PRICE
-		     , OD.ORD_QTY
-		     , OD.CPN1_DC_AMT 
-		     , OD.TMTB1_DC_AMT 
-		     , OD.TMTB2_DC_AMT 
-		     , OD.GOODS_CPN_DC_AMT 
-		     , OD.CART_CPN_DC_AMT 
-		     , OD.PRE_PNT_DC_AMT 
-		     , OD.PNT_DC_AMT 
-		     , OD.GFCD_USE_AMT 
-		     , OD.SAVE_PNT_AMT 
-		     , OD.DELV_ADDR_SQ
-		     , OD.GIFT_PACK_YN
-		     , G1.GOODS_NM
-		FROM   TB_ORDER_DETAIL OD
-		INNER  JOIN TB_GOODS G1 
-		ON     OD.GOODS_CD = G1.GOODS_CD
-		INNER  JOIN TB_ORDER_DETAIL_ITEM ODI
-		ON     OD.ORD_NO = ODI.ORD_NO
-		AND    OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		WHERE  1=1
-		AND    OD.ORD_NO = #{ordNo}
-		GROUP  BY OD.GOODS_CD 
-		     , OD.ORD_DTL_NO 
-		     , OD.CURR_PRICE
-		     , OD.ORD_QTY
-		     , OD.CPN1_DC_AMT 
-		     , OD.TMTB1_DC_AMT 
-		     , OD.TMTB2_DC_AMT 
-		     , OD.GOODS_CPN_DC_AMT 
-		     , OD.CART_CPN_DC_AMT 
-		     , OD.PRE_PNT_DC_AMT 
-		     , OD.PNT_DC_AMT 
-		     , OD.GFCD_USE_AMT 
-		     , OD.SAVE_PNT_AMT 
-		     , OD.DELV_ADDR_SQ
-		     , OD.GIFT_PACK_YN
-		     , G1.GOODS_NM
+		SELECT A.ORD_DTL_NO
+		     , A.LIST_PRICE
+		     , A.CURR_PRICE
+		     , A.ORD_QTY
+		     , A.CPN1_DC_AMT 
+		     , A.TMTB1_DC_AMT 
+		     , A.TMTB2_DC_AMT 
+		     , A.GOODS_CPN_DC_AMT 
+		     , A.CART_CPN_DC_AMT 
+		     , A.PRE_PNT_DC_AMT 
+		     , A.PNT_DC_AMT 
+		     , A.GFCD_USE_AMT 
+		     , A.SAVE_PNT_AMT 
+		     , A.DELV_ADDR_SQ
+		     , A.GIFT_PACK_YN
+		     , A.GOODS_CD
+		     , A.GOODS_NM
+		     , A.BRAND_GROUP_NM
+		     , A.GOODS_TYPE
+		     , A.SYS_IMG_NM
+		     , A.DELV_FEE_CD_GRP
+		     , A.DELV_FEE_CD_GRP_SORT
+		     , A.SUPPLY_COMP_CD
+		     , A.DELV_FEE_CD
+		     , A.SELF_GOODS_YN
+		     , SUM(A.OPT_ADD_PRICE) AS OPT_ADD_PRICE
+		     , GROUP_CONCAT(A.ITEM_NM ORDER BY A.ORD_DTL_ITEM_SQ SEPARATOR '!@!') AS ITEM_NM
+		     , GROUP_CONCAT(A.ITEM_CD ORDER BY A.ORD_DTL_ITEM_SQ) AS ITEM_CD
+		     , GROUP_CONCAT(A.OPT_CD ORDER BY A.ORD_DTL_ITEM_SQ) AS OPT_CD
+		     , GROUP_CONCAT(A.OPT_CD1 ORDER BY A.ORD_DTL_ITEM_SQ) AS OPT_CD1
+		     , GROUP_CONCAT(A.OPT_CD2 ORDER BY A.ORD_DTL_ITEM_SQ) AS OPT_CD2
+		     , GROUP_CONCAT(A.ITEM_QTY ORDER BY A.ORD_DTL_ITEM_SQ) AS ITEM_QTYR
+		     , GROUP_CONCAT(A.COLOR_NM ORDER BY A.ORD_DTL_ITEM_SQ) AS COLOR_NM
+		FROM (
+		    SELECT G1.GOODS_CD
+		         , G1.GOODS_NM
+		         , (SELECT CASE WHEN BG.DISP_NM_LANG = 'EN'
+		                        THEN BG.BRAND_GROUP_ENM
+		                        ELSE BG.BRAND_GROUP_KNM
+		                        END  BRAND_GROUP_NM
+		            FROM   TB_BRAND BR
+		            INNER  JOIN TB_BRAND_GROUP BG
+		            ON     BR.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		            WHERE  1=1
+		            AND    BR.BRAND_CD = G1.BRAND_CD
+		            AND    BG.USE_YN = 'Y') AS BRAND_GROUP_NM
+		         , G1.GOODS_TYPE
+		         , CASE WHEN G1.GOODS_TYPE != 'G056_S' AND G1.SELF_GOODS_YN = 'Y'
+		                THEN (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = ODI.OPT_CD1 AND DEFAULT_IMG_YN = 'Y')
+		                ELSE (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = IFNULL(G1.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') END AS SYS_IMG_NM 
+		         , ODI.ORD_DTL_ITEM_SQ
+		         , G2.GOODS_NM AS ITEM_NM
+		         , IFNULL((SELECT COLOR_KNM FROM TB_COLOR C WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G1.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
+		         , ODI.ITEM_CD
+		         , ODI.ITEM_QTY
+		         , ODI.OPT_CD
+		         , ODI.OPT_CD1
+		         , ODI.OPT_CD2
+		         , CASE WHEN OD.SHOT_DELV_YN IN ('Y') AND G1.SELF_GOODS_YN IN ('Y') THEN 'SHOT'
+		                WHEN OD.SHOT_DELV_YN IN ('N') AND G1.SELF_GOODS_YN IN ('Y') THEN 'WMS'
+		                ELSE 'DELV'
+		                END  DELV_FEE_CD_GRP
+		         , CASE WHEN OD.SHOT_DELV_YN IN ('Y') AND G1.SELF_GOODS_YN IN ('Y') THEN 1
+		                WHEN OD.SHOT_DELV_YN IN ('N') AND G1.SELF_GOODS_YN IN ('Y') THEN 2
+		                ELSE 3
+		                END  DELV_FEE_CD_GRP_SORT
+		         , OD.ORD_DTL_NO
+		         , OD.LIST_PRICE
+		         , OD.CURR_PRICE
+		         , ODI.OPT_ADD_PRICE
+		         , OD.ORD_QTY
+		         , OD.CPN1_DC_AMT 
+		         , OD.TMTB1_DC_AMT 
+		         , OD.TMTB2_DC_AMT 
+		         , OD.GOODS_CPN_DC_AMT 
+		         , OD.CART_CPN_DC_AMT 
+		         , OD.PRE_PNT_DC_AMT 
+		         , OD.PNT_DC_AMT 
+		         , OD.GFCD_USE_AMT 
+		         , OD.SAVE_PNT_AMT 
+		         , OD.DELV_ADDR_SQ
+		         , OD.GIFT_PACK_YN
+		         , OD.SUPPLY_COMP_CD
+		         , OD.DELV_FEE_CD
+		         , G1.SELF_GOODS_YN
+		    FROM   TB_ORDER_DETAIL OD
+		    INNER  JOIN TB_GOODS G1 
+		    ON     OD.GOODS_CD = G1.GOODS_CD
+		    INNER  JOIN TB_ORDER_DETAIL_ITEM ODI
+		    ON     OD.ORD_NO = ODI.ORD_NO
+		    AND    OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		    INNER  JOIN TB_GOODS G2
+		    ON     ODI.ITEM_CD = G2.GOODS_CD 
+		    WHERE  1=1
+		    AND    OD.ORD_NO = #{ordNo}
+		) A
+		GROUP  BY A.ORD_DTL_NO
+		     , A.LIST_PRICE
+		     , A.CURR_PRICE
+		     , A.ORD_QTY
+		     , A.CPN1_DC_AMT 
+		     , A.TMTB1_DC_AMT 
+		     , A.TMTB2_DC_AMT 
+		     , A.GOODS_CPN_DC_AMT 
+		     , A.CART_CPN_DC_AMT 
+		     , A.PRE_PNT_DC_AMT 
+		     , A.PNT_DC_AMT 
+		     , A.GFCD_USE_AMT 
+		     , A.SAVE_PNT_AMT 
+		     , A.DELV_ADDR_SQ
+		     , A.GIFT_PACK_YN
+		     , A.GOODS_CD
+		     , A.GOODS_NM
+		     , A.BRAND_GROUP_NM
+		     , A.GOODS_TYPE
+		     , A.DELV_FEE_CD_GRP
+		     , A.DELV_FEE_CD_GRP_SORT
+		     , A.SUPPLY_COMP_CD
+		     , A.SYS_IMG_NM
+		     , A.DELV_FEE_CD
+		     , A.SELF_GOODS_YN
+		ORDER  BY DELV_FEE_CD_GRP_SORT ASC
+		     , A.SUPPLY_COMP_CD ASC
+	</select>
+	
+	<!-- 44. 주문상세 결제금액 목록 조회 -->
+	<select id="getOrderDetailDelvFeeCdGrp"  parameterType="Order" resultType="Order">
+		/* TscOrder.getOrderDetailDelvFeeCdGrp */
+		SELECT A.DELV_FEE_CD_GRP
+		FROM (
+		    SELECT CASE WHEN OD.SHOT_DELV_YN IN ('Y') AND G1.SELF_GOODS_YN IN ('Y') THEN 'SHOT'
+		                WHEN OD.SHOT_DELV_YN IN ('N') AND G1.SELF_GOODS_YN IN ('Y') THEN 'WMS'
+		                ELSE SC.SUPPLY_COMP_NM
+		                END  DELV_FEE_CD_GRP
+		         , CASE WHEN OD.SHOT_DELV_YN IN ('Y') AND G1.SELF_GOODS_YN IN ('Y') THEN 1
+		                WHEN OD.SHOT_DELV_YN IN ('N') AND G1.SELF_GOODS_YN IN ('Y') THEN 2
+		                ELSE 3
+		                END  DELV_FEE_CD_GRP_SORT
+		         , OD.SUPPLY_COMP_CD
+		    FROM   TB_ORDER_DETAIL OD
+		    INNER  JOIN TB_GOODS G1 
+		    ON     OD.GOODS_CD = G1.GOODS_CD
+		    INNER  JOIN TB_SUPPLY_COMPANY SC
+		    ON     OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
+		    WHERE  1=1
+		    AND    OD.ORD_NO = #{ordNo}
+		) A
+		GROUP  BY A.DELV_FEE_CD_GRP
+		     , A.DELV_FEE_CD_GRP_SORT
+		     , A.SUPPLY_COMP_CD
+		ORDER  BY DELV_FEE_CD_GRP_SORT ASC
+		     , A.SUPPLY_COMP_CD ASC
 	</select>
 
 	<!-- 마이페이지 주문 상태 별 수량 조회 -->