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

Merge branch 'develop' into bin2107

bin2107 5 лет назад
Родитель
Сommit
342c9c13a6

+ 19 - 25
src/main/java/com/style24/front/biz/thirdparty/EigeneaiApi.java

@@ -47,11 +47,10 @@ public class EigeneaiApi {
 	 * 주간베스트추천상품 목록
 	 * 주간베스트추천상품 목록
 	 * @param size - 결과에 포함할 상품수
 	 * @param size - 결과에 포함할 상품수
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Eigeneai getWeeklyBestGoodsList(int size) throws UnsupportedEncodingException {
+	public Eigeneai getWeeklyBestGoodsList(int size) {
 		String requestUrl = apiUrl + "/m008?cuid=" + cuid + "&size=" + size;
 		String requestUrl = apiUrl + "/m008?cuid=" + cuid + "&size=" + size;
 		return this.getRecommendationGoodsList(requestUrl);
 		return this.getRecommendationGoodsList(requestUrl);
 	}
 	}
@@ -60,11 +59,10 @@ public class EigeneaiApi {
 	 * 카테고리별 주간베스트추천상품 목록
 	 * 카테고리별 주간베스트추천상품 목록
 	 * @param size - 결과에 포함할 상품수
 	 * @param size - 결과에 포함할 상품수
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Eigeneai getCategoryWeeklyBestGoodsList(int size) throws UnsupportedEncodingException {
+	public Eigeneai getCategoryWeeklyBestGoodsList(int size) {
 		// TODO: 카테고리ID는 어떻게 조회? 아이겐 미개발
 		// TODO: 카테고리ID는 어떻게 조회? 아이겐 미개발
 		String requestUrl = apiUrl + "/m008?cuid=" + cuid + "&cids=" + "" + "&size=" + size;
 		String requestUrl = apiUrl + "/m008?cuid=" + cuid + "&cids=" + "" + "&size=" + size;
 		return this.getRecommendationGoodsList(requestUrl);
 		return this.getRecommendationGoodsList(requestUrl);
@@ -74,11 +72,10 @@ public class EigeneaiApi {
 	 * 월간클릭베스트추천상품 목록
 	 * 월간클릭베스트추천상품 목록
 	 * @param size - 결과에 포함할 상품수
 	 * @param size - 결과에 포함할 상품수
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Eigeneai getMonthlyClickBestGoodsList(int size) throws UnsupportedEncodingException {
+	public Eigeneai getMonthlyClickBestGoodsList(int size) {
 		// TODO: 아이겐 미개발
 		// TODO: 아이겐 미개발
 		String requestUrl = apiUrl + "/m008?cuid=" + cuid + "&cids=" + "" + "&size=" + size;
 		String requestUrl = apiUrl + "/m008?cuid=" + cuid + "&cids=" + "" + "&size=" + size;
 		return this.getRecommendationGoodsList(requestUrl);
 		return this.getRecommendationGoodsList(requestUrl);
@@ -88,11 +85,10 @@ public class EigeneaiApi {
 	 * 실시간베스트상품 목록
 	 * 실시간베스트상품 목록
 	 * @param size - 결과에 포함할 상품수
 	 * @param size - 결과에 포함할 상품수
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Eigeneai getRealtimeBestGoodsList(int size) throws UnsupportedEncodingException {
+	public Eigeneai getRealtimeBestGoodsList(int size) {
 		String requestUrl = apiUrl + "/stats-transition?cuid=" + cuid + "&size=" + size;
 		String requestUrl = apiUrl + "/stats-transition?cuid=" + cuid + "&size=" + size;
 		return this.getRecommendationGoodsList(requestUrl);
 		return this.getRecommendationGoodsList(requestUrl);
 	}
 	}
@@ -101,11 +97,10 @@ public class EigeneaiApi {
 	 * 매출급상승 카테고리별 상품 목록
 	 * 매출급상승 카테고리별 상품 목록
 	 * @param size - 결과에 포함할 상품수
 	 * @param size - 결과에 포함할 상품수
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Eigeneai getSalesSoaringGoodsList() throws UnsupportedEncodingException {
+	public Eigeneai getSalesSoaringGoodsList() {
 		// TODO: 매출급상승 카테고리 5개 조회 후 카테고리별 상품 7개 조회
 		// TODO: 매출급상승 카테고리 5개 조회 후 카테고리별 상품 7개 조회
 		String requestUrl = apiUrl + "/m010?cuid=" + cuid + "&size=5";
 		String requestUrl = apiUrl + "/m010?cuid=" + cuid + "&size=5";
 		return this.getRecommendationGoodsList(requestUrl);
 		return this.getRecommendationGoodsList(requestUrl);
@@ -115,11 +110,10 @@ public class EigeneaiApi {
 	 * 고객의 최근검색어별 상품 목록
 	 * 고객의 최근검색어별 상품 목록
 	 * @param size - 결과에 포함할 상품수
 	 * @param size - 결과에 포함할 상품수
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Collection<Eigeneai> getCustomerKeywordGoodsList() throws UnsupportedEncodingException {
+	public Collection<Eigeneai> getCustomerKeywordGoodsList() {
 		Collection<Eigeneai> dataList = new ArrayList<>();
 		Collection<Eigeneai> dataList = new ArrayList<>();
 
 
 		// 고객별 최근검색어 목록. TODO: 아이겐에서 미개발
 		// 고객별 최근검색어 목록. TODO: 아이겐에서 미개발
@@ -144,12 +138,17 @@ public class EigeneaiApi {
 	 * @param keyword - 키워드
 	 * @param keyword - 키워드
 	 * @param size - 결과에 포함할 상품수
 	 * @param size - 결과에 포함할 상품수
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Eigeneai getKeywordGoodsList(String keyword, int size) throws UnsupportedEncodingException {
-		String requestUrl = apiUrl + "/s001?cuid=" + cuid + "&st=" + URLEncoder.encode(keyword, "UTF-8") + "&size=" + size;
+	public Eigeneai getKeywordGoodsList(String keyword, int size) {
+		String requestUrl = apiUrl + "/s001?cuid=" + cuid + "&size=" + size;
+		try {
+			requestUrl += "&st=" + URLEncoder.encode(keyword, "UTF-8");
+		} catch (UnsupportedEncodingException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
 		return this.getRecommendationGoodsList(requestUrl);
 		return this.getRecommendationGoodsList(requestUrl);
 	}
 	}
 
 
@@ -157,11 +156,10 @@ public class EigeneaiApi {
 	 * 실시간 많이 조회되고 있는 상품 목록
 	 * 실시간 많이 조회되고 있는 상품 목록
 	 * @param size - 결과에 포함할 상품수
 	 * @param size - 결과에 포함할 상품수
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Eigeneai getRealtimeGoodsList(int size) throws UnsupportedEncodingException {
+	public Eigeneai getRealtimeGoodsList(int size) {
 		String requestUrl = apiUrl + "/stream?cuid=" + cuid + "&size=" + size; //iids
 		String requestUrl = apiUrl + "/stream?cuid=" + cuid + "&size=" + size; //iids
 		return this.getRecommendationGoodsList(requestUrl);
 		return this.getRecommendationGoodsList(requestUrl);
 	}
 	}
@@ -171,11 +169,10 @@ public class EigeneaiApi {
 	 * @param goodsCd - 상품코드
 	 * @param goodsCd - 상품코드
 	 * @param size - 결과에 포함할 상품수
 	 * @param size - 결과에 포함할 상품수
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Eigeneai getRelatedGoodsList(String goodsCd, int size) throws UnsupportedEncodingException {
+	public Eigeneai getRelatedGoodsList(String goodsCd, int size) {
 		String requestUrl = apiUrl + "/a003?cuid=" + cuid + "&iids=" + goodsCd + "&size=" + size;
 		String requestUrl = apiUrl + "/a003?cuid=" + cuid + "&iids=" + goodsCd + "&size=" + size;
 		return this.getRecommendationGoodsList(requestUrl);
 		return this.getRecommendationGoodsList(requestUrl);
 	}
 	}
@@ -184,11 +181,10 @@ public class EigeneaiApi {
 	 * 브랜드 연관상품 목록
 	 * 브랜드 연관상품 목록
 	 * @param size - 결과에 포함할 상품수
 	 * @param size - 결과에 포함할 상품수
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Eigeneai getBrandRelatedGoodsList(int size) throws UnsupportedEncodingException {
+	public Eigeneai getBrandRelatedGoodsList(int size) {
 		// TODO: 아이겐 미개발 (a004&cids=category3 or a002&inbids=brandId)
 		// TODO: 아이겐 미개발 (a004&cids=category3 or a002&inbids=brandId)
 		String requestUrl = apiUrl + "/a004?cuid=" + cuid + "&cids=" + "" + "&size=" + size;
 		String requestUrl = apiUrl + "/a004?cuid=" + cuid + "&cids=" + "" + "&size=" + size;
 		return this.getRecommendationGoodsList(requestUrl);
 		return this.getRecommendationGoodsList(requestUrl);
@@ -199,11 +195,10 @@ public class EigeneaiApi {
 	 * @param goodsCd - 상품코드
 	 * @param goodsCd - 상품코드
 	 * @param size - 결과에 포함할 상품수
 	 * @param size - 결과에 포함할 상품수
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Eigeneai getSameCategoryRelatedGoodsList(String goodsCd, int size) throws UnsupportedEncodingException {
+	public Eigeneai getSameCategoryRelatedGoodsList(String goodsCd, int size) {
 		String requestUrl = apiUrl + "/a002?cuid=" + cuid + "&iids=" + goodsCd + "&size=" + size;
 		String requestUrl = apiUrl + "/a002?cuid=" + cuid + "&iids=" + goodsCd + "&size=" + size;
 		return this.getRecommendationGoodsList(requestUrl);
 		return this.getRecommendationGoodsList(requestUrl);
 	}
 	}
@@ -212,11 +207,10 @@ public class EigeneaiApi {
 	 * 상품의 실시간 조회수
 	 * 상품의 실시간 조회수
 	 * @param goodsCd - 상품코드
 	 * @param goodsCd - 상품코드
 	 * @return
 	 * @return
-	 * @exception UnsupportedEncodingException
 	 * @author gagamel
 	 * @author gagamel
 	 * @since 2021. 5. 14
 	 * @since 2021. 5. 14
 	 */
 	 */
-	public Eigeneai getRealtimeViewCount(String goodsCd) throws UnsupportedEncodingException {
+	public Eigeneai getRealtimeViewCount(String goodsCd) {
 		// TODO: 아이겐 미개발 (건수를 가져오는 걸로 해야하지 않을까?)
 		// TODO: 아이겐 미개발 (건수를 가져오는 걸로 해야하지 않을까?)
 		String requestUrl = apiUrl + "/stat?cuid=" + cuid + "&cids=" + goodsCd;
 		String requestUrl = apiUrl + "/stat?cuid=" + cuid + "&cids=" + goodsCd;
 		Eigeneai eigeneai = this.getRecommendationGoodsList(requestUrl);
 		Eigeneai eigeneai = this.getRecommendationGoodsList(requestUrl);

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

@@ -30,6 +30,7 @@ import com.style24.front.biz.service.TsfRecentlyGoodsService;
 import com.style24.front.biz.service.TsfRendererService;
 import com.style24.front.biz.service.TsfRendererService;
 import com.style24.front.biz.service.TsfReviewService;
 import com.style24.front.biz.service.TsfReviewService;
 import com.style24.front.biz.service.TsfWishlistService;
 import com.style24.front.biz.service.TsfWishlistService;
+import com.style24.front.biz.thirdparty.EigeneaiApi;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.env.TsfConstants;
 import com.style24.front.support.env.TsfConstants;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.front.support.security.session.TsfSession;
@@ -49,6 +50,7 @@ import com.style24.persistence.domain.ReinboundInform;
 import com.style24.persistence.domain.Review;
 import com.style24.persistence.domain.Review;
 import com.style24.persistence.domain.SizeInfo;
 import com.style24.persistence.domain.SizeInfo;
 import com.style24.persistence.domain.WishList;
 import com.style24.persistence.domain.WishList;
+import com.style24.persistence.domain.eigene.Eigeneai;
 
 
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 
 
@@ -104,6 +106,9 @@ public class TsfGoodsController extends TsfBaseController {
 	@Autowired
 	@Autowired
 	private TsfRecentlyGoodsService recentlyGoodsService;
 	private TsfRecentlyGoodsService recentlyGoodsService;
 
 
+	@Autowired
+	private EigeneaiApi eigeneaiApi;
+
 	/**
 	/**
 	 * 상품상세
 	 * 상품상세
 	 *
 	 *
@@ -1575,4 +1580,17 @@ public class TsfGoodsController extends TsfBaseController {
 		return result;
 		return result;
 	}
 	}
 
 
+	/**
+	 * 상품상세 > 이 상품과 비슷한 상품
+	 * @param goodsCd - 상품코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 5. 14
+	 */
+	@GetMapping("/same/category/goods/list/{goodsCd}")
+	@ResponseBody
+	public Eigeneai getSameCategoryGoodsList(@PathVariable String goodsCd) {
+		return eigeneaiApi.getSameCategoryRelatedGoodsList(goodsCd, 10);
+	}
+
 }
 }

+ 1 - 1
src/main/java/com/style24/persistence/domain/eigene/Eigeneai.java

@@ -40,7 +40,7 @@ public class Eigeneai implements Serializable {
 		private String logicType;	// 사용된추천로직종류
 		private String logicType;	// 사용된추천로직종류
 		private String categoryId;	// 카테고리ID
 		private String categoryId;	// 카테고리ID
 		private String itemId;		// 결과상품코드
 		private String itemId;		// 결과상품코드
-		private Product product;	// 상품
+		private Product product;	// 상품정보
 	}
 	}
 
 
 }
 }

+ 2 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml

@@ -48,6 +48,7 @@
 		INNER JOIN TB_GOODS_COMPOSE GC ON R.GOODS_CD  = GC.COMPS_GOODS_CD
 		INNER JOIN TB_GOODS_COMPOSE GC ON R.GOODS_CD  = GC.COMPS_GOODS_CD
 		</if>
 		</if>
 		WHERE 1 = 1
 		WHERE 1 = 1
+		AND R.CONFIRM_YN = 'Y'  -- 승인된 상품평만 조회
 		<choose>
 		<choose>
 		    <when test="goodsType != null and goodsType == 'G056_D'">
 		    <when test="goodsType != null and goodsType == 'G056_D'">
 		AND    R.GOODS_CD = GC.COMPS_GOODS_CD
 		AND    R.GOODS_CD = GC.COMPS_GOODS_CD
@@ -214,6 +215,7 @@
 		INNER JOIN TB_CUSTOMER C ON R.REG_NO  = C.CUST_NO
 		INNER JOIN TB_CUSTOMER C ON R.REG_NO  = C.CUST_NO
 		WHERE 1 = 1
 		WHERE 1 = 1
 		AND R.GOODS_CD = #{goodsCd}
 		AND R.GOODS_CD = #{goodsCd}
+		AND R.CONFIRM_YN = 'Y'  -- 승인된 상품평만 조회
 		<if test="reviewSq != null and reviewSq != ''" >
 		<if test="reviewSq != null and reviewSq != ''" >
 		AND R.REVIEW_SQ = #{reviewSq}
 		AND R.REVIEW_SQ = #{reviewSq}
 		</if>
 		</if>

+ 21 - 7
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailReviewFormMob.html

@@ -426,7 +426,12 @@
 									<div class="lap">
 									<div class="lap">
 										<div class="pic" th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
 										<div class="pic" th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
 											<th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}" th:if="${attachStatus.first}">
 											<th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}" th:if="${attachStatus.first}">
-											<span class="thumb " th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}"  th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+												<th:block th:if="${reviewAttach.fileGb == 'M'}">
+											<span class="thumb mov" th:style="${'background-image:url('+kollusMediaUrl+'/poster/'+reviewAttach.kmcKey+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+												</th:block>
+												<th:block th:unless="${reviewAttach.fileGb == 'M'}">
+											<span class="thumb" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span>
+												</th:block>
 											</th:block>
 											</th:block>
 										</div>
 										</div>
 										<div class="txt_best_review">
 										<div class="txt_best_review">
@@ -447,12 +452,17 @@
 		<h6>포토/영상 리뷰</h6>
 		<h6>포토/영상 리뷰</h6>
 		<div class="photo_list">
 		<div class="photo_list">
 			<ul>
 			<ul>
-				<li  th:each="photoReview, status : ${photoReviewList}" >
+				<li  th:each="photoReview, status : ${photoReviewList}" th:if="${status.count<=7}">
 					<th:block th:if="${photoReview.reviewAttachList != null and !photoReview.reviewAttachList.empty}">
 					<th:block th:if="${photoReview.reviewAttachList != null and !photoReview.reviewAttachList.empty}">
 					<th:block th:each="reviewAttach, attachStatus : ${photoReview.reviewAttachList}" th:if="${attachStatus.first}">
 					<th:block th:each="reviewAttach, attachStatus : ${photoReview.reviewAttachList}" th:if="${attachStatus.first}">
 					<a href="javascript:void(0);" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]], '', 'Y', [[${photoReview.reviewSq}]])">
 					<a href="javascript:void(0);" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]], '', 'Y', [[${photoReview.reviewSq}]])">
 						<div class="pic">
 						<div class="pic">
-							<span class="thumb" th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+							<th:block th:if="${reviewAttach.fileGb == 'M'}">
+							<span class="thumb mov" th:style="${'background-image:url('+kollusMediaUrl+'/poster/'+reviewAttach.kmcKey+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+							</th:block>
+							<th:block th:unless="${reviewAttach.fileGb == 'M'}">
+							<span class="thumb" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span>
+							</th:block>
 						</div>
 						</div>
 					</a>
 					</a>
 					</th:block>
 					</th:block>
@@ -460,7 +470,7 @@
 				</li>
 				</li>
 			</ul>
 			</ul>
 			<!-- 포토영상 게시글 최대 7개 & 버튼노출 -->
 			<!-- 포토영상 게시글 최대 7개 & 버튼노출 -->
-			<div th:if="${#lists.size(photoReviewList) >= 1}">
+			<div th:if="${#lists.size(photoReviewList) >= 8}">
 				<div>
 				<div>
 					<button type="button" id="btn_more_photoreview" th:onclick="cfGoodsReviewPhoto([[${goodsInfo.goodsCd}]])"><span>더 보기</span></button>
 					<button type="button" id="btn_more_photoreview" th:onclick="cfGoodsReviewPhoto([[${goodsInfo.goodsCd}]])"><span>더 보기</span></button>
 				</div>	
 				</div>	
@@ -679,12 +689,16 @@
 			if (item.reviewAttachList != null && item.reviewAttachList.length > 0){
 			if (item.reviewAttachList != null && item.reviewAttachList.length > 0){
 				var fileGbClass = '';
 				var fileGbClass = '';
 				$.each(item.reviewAttachList, function(aIdx, reviewAttach){
 				$.each(item.reviewAttachList, function(aIdx, reviewAttach){
-					fileGbClass = '';
-					if (reviewAttach == "M") fileGbClass = "mov";
+//					fileGbClass = '';
+//					if (reviewAttach == "M") fileGbClass = "mov";
 			tag += '				<li>\n';
 			tag += '				<li>\n';
 			tag += '					<a href="javascript:void();" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'Y\',\''+item.reviewSq+'\');">\n';
 			tag += '					<a href="javascript:void();" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'Y\',\''+item.reviewSq+'\');">\n';
 			tag += '						<div class="pic">\n';
 			tag += '						<div class="pic">\n';
-			tag += '							<span class="thumb '+ fileGbClass +'" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');"></span>\n'; //<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+			if (reviewAttach.fileGb == "M") {
+			tag +='								<span class="thumb mov" style="background-image:url('+_kollusMediaUrl +'/poster/'+reviewAttach.kmcKey +');\" ></span>\n';
+				}else{
+			tag +='								<span class="thumb" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');\" ></span>\n';
+				}
 			tag += '						</div>\n';
 			tag += '						</div>\n';
 			tag += '					</a>\n';
 			tag += '					</a>\n';
 			tag += '				</li>\n';		
 			tag += '				</li>\n';		

+ 2 - 3
src/main/webapp/WEB-INF/views/mob/goods/GoodsReviewDetailFormMob.html

@@ -38,14 +38,13 @@
 								<div class="swiper-slide">
 								<div class="swiper-slide">
 									<div class="thumb " th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}">
 									<div class="thumb " th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}">
 										<th:block th:if="${reviewAttach.fileGb == 'M'}">
 										<th:block th:if="${reviewAttach.fileGb == 'M'}">
-											<video poster="http://cdn.011st.com/11dims/resize/1999x1999/quality/75/11src/review/10201202/3121412332/2e66698576d64c5c9977a6fe6606008d.jpg" muted="muted" preload="metadata" controls="controls">
-												<source src="http://snsvideo.11st.co.kr/movie/item/www/675/67518524_06_1_C1.mp4" type="video/mp4">
-											</video>
+											<iframe class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+reviewAttach.kmcKey +'?enable_initialize_focus=false&autoplay&mute&controls_activation=none'}" frameborder="0" allowfullscreen></iframe>
 										</th:block>
 										</th:block>
 										<th:block th:unless="${reviewAttach.fileGb == 'M'}">
 										<th:block th:unless="${reviewAttach.fileGb == 'M'}">
 											<img th:src="${imgUrl+'/'+reviewAttach.sysFileNm}" alt="">
 											<img th:src="${imgUrl+'/'+reviewAttach.sysFileNm}" alt="">
 										</th:block>
 										</th:block>
 									</div>
 									</div>
+									
 								</div>
 								</div>
 								</th:block>
 								</th:block>
 								</th:block>
 								</th:block>

+ 5 - 1
src/main/webapp/WEB-INF/views/mob/goods/GoodsReviewPhotoFormMob.html

@@ -70,7 +70,11 @@
 				tag += '				<li>\n';
 				tag += '				<li>\n';
 				tag += '					<a href="javascript:void();" onclick="fnGoodsReviewDetail(\''+item.reviewSq+'\');">\n';
 				tag += '					<a href="javascript:void();" onclick="fnGoodsReviewDetail(\''+item.reviewSq+'\');">\n';
 				tag += '						<div class="pic">\n';
 				tag += '						<div class="pic">\n';
-				tag += '							<span class="thumb '+ fileGbClass +'" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');"></span>\n'; //<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+				if ("I" ==reviewAttach.fileGb){
+				tag += '							<span class="thumb" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');"></span>\n'; //<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->	
+				}else{
+				tag += '							<span class="thumb mov" style="background-image:url('+_kollusMediaUrl+'/poster/'+reviewAttach.kmcKey+');"></span>\n';
+				}
 				tag += '						</div>\n';
 				tag += '						</div>\n';
 				tag += '					</a>\n';
 				tag += '					</a>\n';
 				tag += '				</li>\n';		
 				tag += '				</li>\n';		

+ 8 - 3
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -43,10 +43,10 @@
 											<a th:href="${'#navLocate'+ status.count}">
 											<a th:href="${'#navLocate'+ status.count}">
 												<span class="thumb  mov">
 												<span class="thumb  mov">
 												<th:block th:if="${goodsVideo.videoGb == 'Y'}">
 												<th:block th:if="${goodsVideo.videoGb == 'Y'}">
-												<img th:src="${'https://img.youtube.com/vi/'+goodsVideo.kmcKey+'/default.jpg'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+												<img th:src="${'https://img.youtube.com/vi/'+goodsVideo.kmcKey+'/default.jpg'}" alt="" >
 												</th:block>
 												</th:block>
 												<th:block th:unless="${goodsVideo.videoGb == 'Y'}">
 												<th:block th:unless="${goodsVideo.videoGb == 'Y'}">
-												<iframe width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?enable_initialize_focus=false&controls_activation=none'}" frameborder="0" allowfullscreen></iframe>
+												<img th:src="${kollusMediaUrl+'/poster/'+goodsVideo.kmcKey}"  alt="" >
 												</th:block>
 												</th:block>
 												</span>
 												</span>
 											</a>
 											</a>
@@ -548,7 +548,12 @@
 											<a href="javascript:void(0);" id="btn_pdBestReview_pop"  th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]],'Y', '',[[${bestReview.reviewSq}]])" >
 											<a href="javascript:void(0);" id="btn_pdBestReview_pop"  th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]],'Y', '',[[${bestReview.reviewSq}]])" >
 												<div class="pic" th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
 												<div class="pic" th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
 													<th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}" th:if="${attachStatus.first}">
 													<th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}" th:if="${attachStatus.first}">
-													<span class="thumb" th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+														<th:block th:if="${reviewAttach.fileGb == 'M'}" >
+													<span class="thumb mov" th:style="${'background-image:url('+kollusMediaUrl+'/poster/'+reviewAttach.kmcKey+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+														</th:block>
+														<th:block th:unless="${reviewAttach.fileGb == 'M'}" >
+													<span class="thumb" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span>
+														</th:block>
 													</th:block>
 													</th:block>
 												</div>
 												</div>
 												<div class="star_score" th:with="starScore=${#numbers.formatDecimal((bestReview.iscore*100/5), 0,0)}">
 												<div class="star_score" th:with="starScore=${#numbers.formatDecimal((bestReview.iscore*100/5), 0,0)}">

+ 17 - 8
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailReviewFormWeb.html

@@ -302,7 +302,12 @@
 						<a href="javascript:void(0);" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]], 'Y', '', [[${bestReview.reviewSq}]])" >
 						<a href="javascript:void(0);" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]], 'Y', '', [[${bestReview.reviewSq}]])" >
 							<div class="pic" th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
 							<div class="pic" th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
 								<th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}" th:if="${attachStatus.first}">
 								<th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}" th:if="${attachStatus.first}">
-								<span class="thumb" th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+									<th:block th:if="${reviewAttach.fileGb == 'M'}">
+									<span class="thumb mov" th:style="${'background-image:url('+kollusMediaUrl+'/poster/'+reviewAttach.kmcKey+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+									</th:block>
+									<th:block th:unless="${reviewAttach.fileGb == 'M'}">
+									<span class="thumb" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span>
+									</th:block>
 								</th:block>
 								</th:block>
 							</div>
 							</div>
 							<div class="star_score" th:with="starScore=${#numbers.formatDecimal((bestReview.iscore*100/5), 0,0)}">
 							<div class="star_score" th:with="starScore=${#numbers.formatDecimal((bestReview.iscore*100/5), 0,0)}">
@@ -325,13 +330,17 @@
 		<h6>포토/영상 리뷰</h6>
 		<h6>포토/영상 리뷰</h6>
 		<div class="photo_list">
 		<div class="photo_list">
 			<ul>
 			<ul>
-				<li  th:each="photoReview, status : ${photoReviewList}" >
+				<li  th:each="photoReview, status : ${photoReviewList}" th:if="${status.count<=7}">
 					<th:block th:if="${photoReview.reviewAttachList != null and !photoReview.reviewAttachList.empty}">
 					<th:block th:if="${photoReview.reviewAttachList != null and !photoReview.reviewAttachList.empty}">
 					<th:block th:each="reviewAttach, attachStatus : ${photoReview.reviewAttachList}" th:if="${attachStatus.first}">
 					<th:block th:each="reviewAttach, attachStatus : ${photoReview.reviewAttachList}" th:if="${attachStatus.first}">
-					
 					<a href="javascript:void(0);" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]], '', 'Y', [[${photoReview.reviewSq}]])">
 					<a href="javascript:void(0);" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]], '', 'Y', [[${photoReview.reviewSq}]])">
 						<div class="pic">
 						<div class="pic">
-							<span class="thumb" th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+							<th:block th:if="${reviewAttach.fileGb == 'M'}">
+							<span class="thumb mov" th:style="${'background-image:url('+kollusMediaUrl+'/poster/'+reviewAttach.kmcKey+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+							</th:block>
+							<th:block th:unless="${reviewAttach.fileGb == 'M'}">
+							<span class="thumb" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span>
+							</th:block>
 						</div>
 						</div>
 					</a>
 					</a>
 					</th:block>
 					</th:block>
@@ -550,15 +559,15 @@
 				if (item.reviewAttachList != null && item.reviewAttachList.length > 0){
 				if (item.reviewAttachList != null && item.reviewAttachList.length > 0){
 					var fileGbClass = '';
 					var fileGbClass = '';
 					$.each(item.reviewAttachList, function(aIdx, reviewAttach){
 					$.each(item.reviewAttachList, function(aIdx, reviewAttach){
-						fileGbClass = '';
-						if (reviewAttach.fileGb == "M") fileGbClass = "mov";
+//						fileGbClass = '';
+//						if (reviewAttach.fileGb == "M") fileGbClass = "mov";
 				tag += '				<li>\n';
 				tag += '				<li>\n';
 				tag += '					<a href="javascript:void();" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'Y\',\''+item.reviewSq+'\','+aIdx+');">\n';
 				tag += '					<a href="javascript:void();" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'Y\',\''+item.reviewSq+'\','+aIdx+');">\n';
 				tag += '						<div class="pic">\n';
 				tag += '						<div class="pic">\n';
 					if (reviewAttach.fileGb == "M") {
 					if (reviewAttach.fileGb == "M") {
-				tag +='					<span class="thumb '+fileGbClass+'"><iframe width="100%" height="100%" src="'+_kollusMediaUrl +'/'+reviewAttach.kmcKey +'?player_version=html5" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></span>\n';
+				tag +='					<span class="thumb mov" style="background-image:url('+_kollusMediaUrl +'/poster/'+reviewAttach.kmcKey +');\" ></span>\n';
 					}else{
 					}else{
-				tag +='					<span class="thumb" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');\" >\n';
+				tag +='					<span class="thumb" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');\" ></span>\n';
 					}
 					}
 				tag += '						</div>\n';
 				tag += '						</div>\n';
 				tag += '					</a>\n';
 				tag += '					</a>\n';

+ 3 - 3
src/main/webapp/WEB-INF/views/web/goods/GoodsReviewPhotoFormWeb.html

@@ -65,15 +65,15 @@
 				if (item.reviewAttachList != null && item.reviewAttachList.length > 0){
 				if (item.reviewAttachList != null && item.reviewAttachList.length > 0){
 					var fileGbClass = '';
 					var fileGbClass = '';
 					$.each(item.reviewAttachList, function(aIdx, reviewAttach){
 					$.each(item.reviewAttachList, function(aIdx, reviewAttach){
-						fileGbClass = '';
-						if (reviewAttach == "M") fileGbClass = "mov";
+					//	fileGbClass = '';
+					//	if (reviewAttach == "M") fileGbClass = "mov";
 				tag += '				<li>\n';
 				tag += '				<li>\n';
 				tag += '					<a href="javascript:void();" onclick="fnGoodsReviewDetail(\''+item.reviewSq+'\');">\n';
 				tag += '					<a href="javascript:void();" onclick="fnGoodsReviewDetail(\''+item.reviewSq+'\');">\n';
 				tag += '						<div class="pic">\n';
 				tag += '						<div class="pic">\n';
 				if ("I" ==reviewAttach.fileGb){
 				if ("I" ==reviewAttach.fileGb){
 					tag += '							<span class="thumb" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');"></span>\n'; //<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->	
 					tag += '							<span class="thumb" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');"></span>\n'; //<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->	
 				}else{
 				}else{
-					tag += '							<span class="thumb '+ fileGbClass +'"><iframe width="100%" height="100%" src="'+_kollusMediaUrl +'/'+reviewAttach.kmcKey +'?player_version=html5" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></span>\n';	
+					tag += '							<span class="thumb mov" style="background-image:url('+_kollusMediaUrl+'/poster/'+reviewAttach.kmcKey+');"></span>\n';
 				}
 				}
 				tag += '						</div>\n';
 				tag += '						</div>\n';
 				tag += '					</a>\n';
 				tag += '					</a>\n';

+ 1 - 1
src/main/webapp/ux/plugins/gaga/gaga.infinite.scrollLayer.js

@@ -63,7 +63,7 @@ var gagaInfiniteScroll = {
 	},
 	},
 	scrollCheck : function() {
 	scrollCheck : function() {
 		var obj = this.obj, stat = this.pageStatus;
 		var obj = this.obj, stat = this.pageStatus;
-		alert("aaaaa");
+		
 		if ($('[data-id="layer_infinite"]').scrollTop() + $('[data-id="layer_infinite"]').height() >= $('[data-id="layer_infinite_item"]').height() ) { // 더보기
 		if ($('[data-id="layer_infinite"]').scrollTop() + $('[data-id="layer_infinite"]').height() >= $('[data-id="layer_infinite_item"]').height() ) { // 더보기
 			if (stat.loadAlign == 'not') {
 			if (stat.loadAlign == 'not') {
 				var pageLen = this.pageStatus.pageNum.length - 1;
 				var pageLen = this.pageStatus.pageNum.length - 1;