fix: 추천상품 표시 설정 및 품절 안내 적용

This commit is contained in:
이주일
2026-07-18 12:28:41 +09:00
parent 1b52e2ecbd
commit 49738b87bd
3 changed files with 51 additions and 54 deletions

View File

@@ -2661,9 +2661,19 @@
LIMIT 1
) AS GOODS_IMG_COURS
,FG.GOODS_NM
,FG.GOODS_ICON_CD
,FG.SRT_DC
,FG.GOODS_ICON_CD AS ICON_CD_NM_LIST
,FG.SRT_DC AS REPRSNT_DC
,FG.GOODS_STTUS_CD
,FEGI.GOODS_NM_EXPSR_AT
,FEGI.GOODS_NM_EXPSR_ORDR
,FEGI.REPRSNT_DC_EXPSR_AT
,FEGI.REPRSNT_DC_EXPSR_ORDR
,FEGI.PRIC_EXPSR_AT
,FEGI.PRIC_EXPSR_ORDR
,FEGI.RVW_EVL_SCRE_EXPSR_AT
,FEGI.RVW_EVL_SCRE_EXPSR_ORDR
,FEGI.ICON_EXPSR_AT
,FEGI.ICON_EXPSR_ORDR
,IFNULL(ROUND(FGO.CNSMRPRIC, 0), 0) AS CNSMRPRIC
,IFNULL(ROUND(FGO.SLEPRIC, 0), 0) AS SLEPRIC
,IFNULL(ROUND(((FGO.CNSMRPRIC - FGO.SLEPRIC) / NULLIF(FGO.CNSMRPRIC, 0)) * 100, 0), 0) AS SLE_PERCENT
@@ -2690,6 +2700,9 @@
INNER JOIN GC_GOODS_OPTION FGO ON
FG.GOODS_INNB = FGO.GOODS_INNB
AND FG.SOPMAL_CD = FGO.SOPMAL_CD
LEFT JOIN GC_GOODS_EXPSR_INFO FEGI ON
FG.SOPMAL_CD = FEGI.SOPMAL_CD
AND FEGI.USE_AT = 'Y'
WHERE 1 = 1
AND FG.SOPMAL_CD =#{sopmalCd}
AND FBG.BBSCTT_INNB =

View File

@@ -956,6 +956,9 @@
<c:if test = "${not empty item.goodsInnb}">
<div class="product-unit">
<div class="product-unit-image">
<c:if test="${item.goodsSttusCd eq '02'}">
<div class="sold-out"><span>입고 대기중</span></div>
</c:if>
<a class="product-detail" href="javascript:void(0);" onclick="fn_move_goods_dtl('<c:out value="${item.goodsInnb}"/>');">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<img src="<c:out value = "${cdnurl}${item.goodsImgCours}"/>"
@@ -963,32 +966,21 @@
</a>
</div>
<div class="product-unit-info d-flex flex-column" style="flex-direction:column">
<div class="product-badge-container">
<c:if test = "${not empty item.goodsIconCd}">
<c:forEach items="${fn:split(item.goodsIconCd, ',')}" var="icon">
<c:if test="${icon eq 'new'}">
<span class="product-badge new" data-badge-cd="new">NEW</span>
</c:if>
<c:if test="${icon eq 'hot'}">
<span class="product-badge hot" data-badge-cd="hot">HOT</span>
</c:if>
<c:if test="${icon eq 'best'}">
<span class="product-badge best" data-badge-cd="best">BEST</span>
</c:if>
<c:if test="${icon eq 'md-pick'}">
<span class="product-badge md-pick" data-badge-cd="md-pick">MD PICK</span>
</c:if>
<c:if test="${icon eq 'hot-deal'}">
<span class="product-badge four-row" data-badge-cd="four-row">HOT DEAL</span>
</c:if>
<c:if test="${not empty item.iconCdNmList && item.iconExpsrAt eq 'Y'}">
<div class="product-badge-container col order-${item.iconExpsrOrdr-1}" style="order: ${item.iconExpsrOrdr-1}">
<c:forEach items="${fn:split(item.iconCdNmList, ',')}" var="iconCdNm">
<span class="product-badge ${fn:toLowerCase(iconCdNm)}" data-badge-cd="${iconCdNm}">${fn:replace(fn:toUpperCase(iconCdNm), '-', ' ')}</span>
</c:forEach>
</c:if>
</div>
</c:if>
<c:if test="${item.goodsNmExpsrAt eq 'Y'}">
<div class="product-unit-title">
<a href="javascript:void(0);" onclick="fn_move_goods_dtl('<c:out value="${item.goodsInnb}"/>');">
<c:out value = "${item.goodsNm}"/>
</a>
</div>
</c:if>
<c:if test="${item.pricExpsrAt eq 'Y'}">
<div class="product-unit-price">
<div class="product-unit-price__price">
<span class="product-unit-price__original <c:if test="${item.slePercent eq 0}">visually-hidden</c:if>">
@@ -1002,12 +994,17 @@
<span class="percent"><c:out value = "${item.slePercent}"/> %</span>
</div>
</div>
<span class="product-unit-price__monthly-payment"><c:out value = "${item.srtDc}"/></span>
</c:if>
<c:if test="${item.reprsntDcExpsrAt eq 'Y'}">
<span class="product-unit-price__monthly-payment"><c:out value = "${item.reprsntDc}"/></span>
</c:if>
<c:if test="${item.rvwEvlScreExpsrAt eq 'Y'}">
<div class="product-unit-rating">
<i class="icon icon_rating-star"></i>
<span class="product-unit-rating__score"><c:out value = "${item.avgEvlScore}"/></span>
<span class="product-unit-rating__count">(<fmt:formatNumber value="${item.cntEvlScor}"/>)</span>
</div>
</c:if>
</div>
</div>
</c:if>

View File

@@ -1431,16 +1431,9 @@
<div class="${fn:length(goodsList) gt 4 ? 'swiper-slide' : ''}">
<div class="product-unit">
<div class="product-unit-image">
<c:if test = "item.goodsSttusCd ne '01'">
<c:if test="${item.goodsSttusCd eq '02'}">
<div class="sold-out">
<c:choose>
<c:when test ="${item.goodsSttusCd eq '02'}">
<span>입고 대기중</span>
</c:when>
<c:when test ="${item.goodsSttusCd eq '03'}">
<span>판매중지</span>
</c:when>
</c:choose>
</div>
</c:if>
<a style="cursor:pointer" loading="lazy"
@@ -1452,32 +1445,21 @@
</a>
</div>
<div class="product-unit-info d-flex flex-column" style="flex-direction:column">
<div class="product-badge-container">
<c:set var="iconString" value="${item.goodsIconCd}" />
<c:set var="iconCdList" value="${fn:split(iconString, ',')}" />
<c:forEach var = "iconCd" items="${iconCdList}">
<c:if test = "${iconCd eq 'new'}">
<span class="product-badge new" data-badge-cd="new">NEW</span>
</c:if>
<c:if test = "${iconCd eq 'hot'}">
<span class="product-badge hot" data-badge-cd="hot">HOT</span>
</c:if>
<c:if test = "${iconCd eq 'best'}">
<span class="product-badge best" data-badge-cd="best">BEST</span>
</c:if>
<c:if test = "${iconCd eq 'md-pick'}">
<span class="product-badge md-pick" data-badge-cd="md-pick">MD PICK</span>
</c:if>
<c:if test = "${iconCd eq 'hot-deal'}">
<span class="product-badge four-row" data-badge-cd="four-row">HOT DEAL</span>
</c:if>
<c:if test="${not empty item.iconCdNmList && item.iconExpsrAt eq 'Y'}">
<div class="product-badge-container col order-${item.iconExpsrOrdr-1}" style="order: ${item.iconExpsrOrdr-1}">
<c:forEach items="${fn:split(item.iconCdNmList, ',')}" var="iconCdNm">
<span class="product-badge ${fn:toLowerCase(iconCdNm)}" data-badge-cd="${iconCdNm}">${fn:replace(fn:toUpperCase(iconCdNm), '-', ' ')}</span>
</c:forEach>
</div>
</c:if>
<c:if test="${item.goodsNmExpsrAt eq 'Y'}">
<div class="product-unit-title">
<a style="cursor:pointer" onclick = "fn_move_goods_dtl(<c:out value="${item.goodsInnb}"/>)">
<c:out value = "${item.goodsNm}"/>
</a>
</div>
</c:if>
<c:if test="${item.pricExpsrAt eq 'Y'}">
<div class="product-unit-price">
<div class="product-unit-price__price">
<span class="product-unit-price__original <c:if test="${item.slePercent eq 0}">visually-hidden</c:if>">
@@ -1491,12 +1473,17 @@
<span class="percent"><c:out value = "${item.slePercent}"/> %</span>
</div>
</div>
<span class="product-unit-price__monthly-payment"><c:out value = "${item.srtDc}"/></span>
</c:if>
<c:if test="${item.reprsntDcExpsrAt eq 'Y'}">
<span class="product-unit-price__monthly-payment"><c:out value = "${item.reprsntDc}"/></span>
</c:if>
<c:if test="${item.rvwEvlScreExpsrAt eq 'Y'}">
<div class="product-unit-rating">
<i class="icon icon_rating-star"></i>
<span class="product-unit-rating__score"><c:out value = "${item.avgEvlScore}"/></span>
<span class="product-unit-rating__count">(<fmt:formatNumber value="${item.cntEvlScor}"/>)</span>
</div>
</c:if>
</div>
</div>
</div>