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

상품상세 - 배송비 안내 레이처

eskim 5 лет назад
Родитель
Сommit
7dbba3817c

+ 11 - 0
src/main/java/com/style24/front/biz/dao/TsfGoodsDao.java

@@ -5,6 +5,7 @@ import java.util.Collection;
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.CardPromotion;
 import com.style24.persistence.domain.Cate4Srch;
+import com.style24.persistence.domain.Delivery;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.GoodsCompose;
 import com.style24.persistence.domain.GoodsDesc;
@@ -201,5 +202,15 @@ public interface TsfGoodsDao {
 	 * @since 2021. 3. 7
 	 */
 	GoodsSafeNo getGoodsSafeNo(Goods goods);
+	
+	/**
+	 * 상품  배송안내정보
+	 *
+	 * @param goodsCd
+	 * @return
+	 * @author eskim
+	 * @since 2021. 03. 08
+	 */
+	Delivery getGoodsDeliveryInfo(String goodsCd);
 
 }

+ 14 - 0
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -12,6 +12,7 @@ import com.style24.front.biz.dao.TsfGoodsDao;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.CardPromotion;
 import com.style24.persistence.domain.Cate4Srch;
+import com.style24.persistence.domain.Delivery;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.GoodsCompose;
 import com.style24.persistence.domain.GoodsDesc;
@@ -407,4 +408,17 @@ public class TsfGoodsService {
 	public GoodsSafeNo getGoodsSafeNo(Goods goods) {
 		return goodsDao.getGoodsSafeNo(goods);
 	}
+	
+	/**
+	 * 상품  배송안내정보
+	 * @param goodsCd
+	 * @return
+	 * @author eskim
+	 * @since 2021. 03. 08
+	 */
+	public Delivery getGoodsDeliveryInfo(String goodsCd) {
+		return goodsDao.getGoodsDeliveryInfo(goodsCd);
+	}
+	
+	
 }

+ 4 - 0
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -402,6 +402,10 @@ public class TsfGoodsController extends TsfBaseController {
 		paramsGoods.setGoodsCd(goodsCd);
 		setGoods(paramsGoods);
 		Goods goods = goodsService.getGoodsInfo(paramsGoods);
+		
+		// 배송업체명, 반품비, 교환비, 주소
+		mav.addObject("deliveryInfo", goodsService.getGoodsDeliveryInfo(goodsCd));
+		
 		// 상품 기본정보
 		mav.addObject("goodsInfo", goods);
 

+ 28 - 0
src/main/java/com/style24/persistence/domain/Delivery.java

@@ -0,0 +1,28 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 배송 Domain
+ *
+ * @author eskim
+ * @since 2023. 3. 08
+ */
+@SuppressWarnings("serial")
+@Data
+public class Delivery extends TscBaseDomain {
+
+	private String delvFeeCd; 		// 배송비코드
+	private String supplyCompCd; 	// 공급업체
+	private int delvFee; 			// 배송비
+	private int minOrdAmt; 			// 무료배송비최소주문금액
+	private int rtnDelvFee; 		// 반품배송비
+	private String rtnLocZipcode;	// 반품처우편번호
+	private String rtnLocBaseAddr;	// 반품처기본주소
+	private String rtnLocDtlAddr;	// 반품처상세주소
+	private String rtnLocTelno;		// 반품처전화번호
+	private String note;			// 배송안내정보
+
+}

+ 2 - 0
src/main/java/com/style24/persistence/domain/Goods.java

@@ -112,6 +112,8 @@ public class Goods extends TscBaseDomain {
 	private String socialStdt;	//소셜시작일
 	private String socialEddt;	//소셜종료일
 	private String planDtlSq;	//기획전상세번호
+	private String quikDelvYn;	//총알배송여부
+	private String delvFeeCrite;	//배송비부과기준(공통코드G078)
 
 	private int floorUnit; // 절사단위(1:일원단위절사, 10:십원단위절사, 100:백원단위절사)
 

+ 26 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -113,6 +113,7 @@
 		     , FN_GET_CODE_NM('G007',G.SEX_GB) AS SEX_NM
 		     , E.DELV_FEE
 		     , E.MIN_ORD_AMT
+		     , E.DELV_FEE_CRITE
 		     , G.GOODS_GB
 		     , FN_GET_CODE_NM('G073',G.GOODS_GB) AS GOODS_GB_NM
 		     , (SELECT NI_CLSF_CD
@@ -149,6 +150,7 @@
 		                  WHERE GOODS_CD= G.GOODS_CD
 		                  GROUP BY GOODS_CD )
 		            END) AS STOCK_QTY
+		     , (CASE WHEN G.SELF_GOODS_YN ='Y' AND IFNULL(DS.GOODS_CD, 'Y') THEN 'Y' ELSE 'N' END ) AS QUIK_DELV_YN
 		FROM TB_GOODS G
 		INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		                      AND B.USE_YN = 'Y'
@@ -158,6 +160,7 @@
 		                                     AND G.DELV_FEE_CD =  E.DELV_FEE_CD
 		LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
 		                              AND IFNULL(#{custNo}, 0) = W.CUST_NO
+		LEFT OUTER JOIN TB_GOODS_QUICK_DELEVERY_SKIP DS ON G.GOODS_CD =DS.GOODS_CD
 		WHERE G.GOODS_CD = #{goodsCd}
 		-- AND G.SELF_MALL_YN = 'Y' --자사몰 노출(기획전과 상품상세는 노출)
 		<if test='adminYn == null or adminYn != "Y"'>
@@ -611,5 +614,28 @@
 		WHERE GOODS_CD = #{goodsCd}
 	</select>
 	
+	<!-- 상품  배송안내정보  -->
+	<select id="getGoodsDeliveryInfo"  parameterType="String" resultType="Delivery">
+		/* TsfGoods.getGoodsDeliveryInfo */
+		SELECT G.GOODS_CD 
+		     , A.DELV_FEE_CD 
+		     , A.SUPPLY_COMP_CD 
+		     , A.DELV_FEE 
+		     , A.MIN_ORD_AMT 
+		     , A.RTN_DELV_FEE 
+		     , B.RTN_LOC_ZIPCODE
+		     , B.RTN_LOC_BASE_ADDR
+		     , B.RTN_LOC_DTL_ADDR
+		     , B.RTN_LOC_TELNO
+		     , S.NOTE
+		FROM TB_GOODS G
+		INNER JOIN TB_SUPPLY_COMPANY S ON G.SUPPLY_COMP_CD = S.SUPPLY_COMP_CD
+		INNER JOIN TB_DELV_FEE_POLICY A ON G.DELV_FEE_CD = A.DELV_FEE_CD
+		LEFT OUTER JOIN TB_DELIVERY_LOC B ON A.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD 
+		                                  AND B.USE_YN = 'Y'
+		WHERE G.GOODS_CD = #{goodsCd}
+		ORDER BY A.DELV_FEE_CD 
+		LIMIT 1
+	</select>
 	
 </mapper>

+ 23 - 27
src/main/webapp/WEB-INF/views/web/goods/GoodsDeliveryFormWeb.html

@@ -17,21 +17,21 @@
  <div class="full_popup_wrap">
 	<h5 class="sr-only">배송교환반품 안내</h5>
 	<div class="btn_close">
-		<a href="" id="btn_close_deliveryPop">닫기버튼</a>
+		<a href="javascript:void(0)" onclick="cfCloseFullLayer('layer_goods_delivery');">닫기버튼</a>
 	</div>
 	<div class="full_pop_header">
 		<!-- 해당 상품 -->
-		<div class="item_prod">
+		<div class="item_prod" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}">
 			<div class="item_state">
-				<a href="#none" class="itemLink">
+				<a href="javascript:void(0);" class="itemLink">
 					<div class="itemPic">
-						<img alt="" class="vLHTC pd_img" src="/images/pc/thumb/tmp_pdDetail1.jpg">
+						<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm}">
 					</div>
-					<p class="itemBrand">NBA 키즈</p>
-					<div class="itemName">유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업</div>
-					<p class="itemPrice">134,100
-						<span class="itemPrice_original">149,000</span>
-						<span class="itemPercent">30%</span>
+					<p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">NBA 키즈</p>
+					<div class="itemName" th:text="${goodsInfo.goodsFullNm}">유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업 유니 삼단블록 플리스 집업</div>
+					<p class="itemPrice"><th:block th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}"> 134,100</th:block>
+						<span class="itemPrice_original" th:if="${goodsInfo.listPrice > goodsInfo.currPrice}" th:text="${#numbers.formatInteger(goodsInfo.listPrice, 0,'COMMA')}">149,000</span>
+						<span class="itemPercent" th:if="${goodsInfo.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsInfo.dcRate,0,0)}%|">30%</span>
 					</p>
 				</a>
 			</div>
@@ -54,7 +54,10 @@
 									구분
 								</th>
 								<td>
-									일반배송/총알배송(오전 10시까지 주문 시) 
+									<th:block th:if="${goodsInfo.quikDelvYn = 'Y'}" >총알배송(오전 10시까지 주문 시)</th:block>
+									<th:block th:unless="${goodsInfo.quikDelvYn = 'Y'}" >일반배송</th:block>
+									
+									 
 								</td>
 							</tr>
 							<tr>
@@ -62,9 +65,9 @@
 									배송비
 								</th>
 								<td>
-									배송비 2,500원<br>
-									배송비 2,500원(40,000원 이상 무료배송)<br>
-									무료배송
+									<th:block th:text="${#numbers.formatInteger(goodsInfo.delvFee, 0,'COMMA')}" ></th:block>원
+									<th:block th:if="${goodsInfo.minOrdAmt > 0}">(<th:block th:text="${#numbers.formatInteger(goodsInfo.minOrdAmt, 0,'COMMA')}" ></th:block>원 이상 무료배송)</th:block>
+									<th:block  th:if="${goodsInfo.delvFee <= 0}">무료배송</th:block>
 								</td>
 							</tr>
 							<tr>
@@ -72,7 +75,7 @@
 									배송업체
 								</th>
 								<td>
-									CJ 대한통운
+									CJ 대한통운  -- 수정
 								</td>
 							</tr>
 							<tr>
@@ -103,7 +106,7 @@
 									반품/교환 배송업체
 								</th>
 								<td>
-									CJ 대한통운
+									CJ 대한통운  -- 수정
 								</td>
 							</tr>
 							<tr>
@@ -111,7 +114,7 @@
 									반품배송비
 								</th>
 								<td>
-									3,000원(최소 배송비가 무료인 경우 왕복 배송비 6,000원 부과)
+									<th:block th:text="${#numbers.formatInteger(deliveryInfo.rtnDelvFee, 0,'COMMA')}" ></th:block>원(최소 배송비가 무료인 경우 왕복 배송비 <th:block th:text="${#numbers.formatInteger((deliveryInfo.rtnDelvFee+deliveryInfo.delvFee), 0,'COMMA')}" ></th:block>원 부과)
 								</td>
 							</tr>
 							<tr>
@@ -119,7 +122,7 @@
 									교환배송비
 								</th>
 								<td>
-									6,000
+									<th:block th:text="${#numbers.formatInteger((deliveryInfo.rtnDelvFee+deliveryInfo.delvFee), 0,'COMMA')}" ></th:block>
 								</td>
 							</tr>
 							<tr>
@@ -127,7 +130,7 @@
 									반품/교환 주소
 								</th>
 								<td>
-									10857 경기도 파주시 탄현면 방촌로 1172-21 아이스타일24 물류센터
+									<th:block th:text="${deliveryInfo.rtnLocZipcode +' '+ deliveryInfo.rtnLocBaseAddr +' '+ deliveryInfo.rtnLocDtlAddr }"></th:block>
 								</td>
 							</tr>
 							<tr>
@@ -163,19 +166,12 @@
 									신발, 그릇류의 박스포장을 포함, 상품이 판매할 수 없게 훼손 된 경우(신발박스 등의 파손, 박스포장 위 송장 부착, 박스 훼손/파손/찢어짐, 택 분실 등)
 								</td>
 							</tr>
-							<tr>
+							<tr th:if="${not #strings.isEmpty(deliveryInfo.note)}">
 								<th>
 									기타사항
 								</th>
-								<td>
+								<td th:utext="${#strings.unescapeJava(#strings.escapeJava(deliveryInfo.note))}">
 									상품에 따라 반송주소/방법이 각각 다를 수 있습니다.<br>
-									자사배송 상품의 경우, 출고 전후 옵션 변경 및 다른 상품으로 교환이 불가하여 취소 또는 재주문하셔야 합니다.<br>
-									고객님께서 임의로 반송하실 경우, 빠른 처리가 어려울 수 있습니다.<br>
-									제품 반송 시 꼭 반품 신청 후, 안내에 따른 반송 부탁 드립니다.<br>
-									모니터의 종류 및 해상도에 따라 색상 및 이미지가 실제와 다를 수 있습니다.<br>
-									상품의 특성 상 측정방법에 따라 표기된 사이즈의 오차가 있을 수 있으며, 이로 인한 환불/교환은 제한될 수 있습니다.<br>
-									일부 상품의 경우, 제조사의 사정 등으로 가격이 변동될 수 있습니다.<br>
-									해당 상품의 A/S는 해당 상품의 제조사에 문의해 주시기 바랍니다.
 								</td>
 							</tr>
 						</tbody>

+ 5 - 4
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -357,10 +357,11 @@
 											<a href="javascript:void(0);" id="btn_pdDeliveryPop" th:onclick="cfGoodsDelivery([[${goodsInfo.goodsCd}]])">
 												<span class="tit">배송/교환/반품</span>
 												<!-- 해당 배송정보 선택노출 -->
-												<span class="txt_shippingfee">배송비 2,500원</span>
-												<span class="txt_shippingfee">배송비 2,500원 (4,000원 이상 무료배송)</span>
-												<span class="txt_shippingfee">무료배송</span>
-												<span class="txt_shippingfee">총알배송(오전 10시까지 주문 시)</span>
+												<span class="txt_shippingfee" th:if="${goodsInfo.delvFee > 0}">배송비 <th:block th:text="${#numbers.formatInteger(goodsInfo.delvFee, 0,'COMMA')}" ></th:block>원
+																		<th:block th:if="${goodsInfo.minOrdAmt > 0}">(<th:block th:text="${#numbers.formatInteger(goodsInfo.minOrdAmt, 0,'COMMA')}" ></th:block>원 이상 무료배송)</th:block>
+												</span>
+												<span class="txt_shippingfee" th:if="${goodsInfo.delvFee <= 0}">무료배송</span>
+												<span class="txt_shippingfee" th:if="${goodsInfo.quikDelvYn = 'Y'}">총알배송(오전 10시까지 주문 시)</span>
 												<!-- //해당 배송정보 선택노출 -->
 											</a>
 										</div>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/goods/GoodsQnaFormWeb.html

@@ -23,7 +23,7 @@
 		<!-- 해당 상품 -->
 		<div class="item_prod" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}">
 			<div class="item_state">
-				<a href="#none" class="itemLink">
+				<a href="javascript:void(0);" class="itemLink">
 					<div class="itemPic">
 						<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm}">
 					</div>

BIN
src/main/webapp/images/pc/ico_point_sm.png


+ 1 - 1
src/main/webapp/ux/style24_link.js

@@ -26,7 +26,7 @@ const _PAGE_CARD_PRMT_LAYER = _frontUrl + "/goods/card/prmt/layer";							// 카
 const _PAGE_GOODS_SIZEINFO_LAYER = _frontUrl + "/goods/sizeInfo/layer?goodsCd=";			// 사이즈정보레이어
 const _PAGE_GOODS_QNA_LAYER = _frontUrl + "/goods/qna/layer/";								// 상품문의레이어
 const _PAGE_GOODS_QNA_CREATE_LAYER = _frontUrl + "/goods/qna/create/layer/";				// 상품문의레이어
-const _PAGE_GOODS_DELIVERY_LAYER = _frontUrl + "/goods/delivery/layer?goodsCd=";			// 배송/교환/반품 레이어
+const _PAGE_GOODS_DELIVERY_LAYER = _frontUrl + "/goods/delivery/layer/";			// 배송/교환/반품 레이어
 const _PAGE_GOODS_REVIEW_LAYER = _frontUrl + "/goods/review/layer?goodsCd=";				// 상품평 레이어
 
 //== 장바구니 ==/