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

검색엔진 연관검색어 로그

bin2107 4 лет назад
Родитель
Сommit
81b9d7c630

+ 38 - 7
src/main/java/com/style24/front/biz/thirdparty/SearchEngineDiquest.java

@@ -10,6 +10,14 @@ import java.util.Arrays;
 import javax.annotation.PostConstruct;
 
 import com.gagaframework.web.parameter.GagaMap;
+import com.style24.persistence.domain.searchengine.AutoCompleteResponse;
+import com.style24.persistence.domain.searchengine.CateResponse;
+import com.style24.persistence.domain.searchengine.Filter;
+import com.style24.persistence.domain.searchengine.FilterResponse;
+import com.style24.persistence.domain.searchengine.GoodsListResponse;
+import com.style24.persistence.domain.searchengine.PlanningResponse;
+import com.style24.persistence.domain.searchengine.SearchEngine;
+import com.style24.persistence.domain.searchengine.FeedbackResponse;
 import istyle.EventSearch;
 import org.json.simple.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,13 +28,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
 import com.style24.front.biz.dao.TsfDisplayDao;
 import com.style24.persistence.domain.Cate1;
-import com.style24.persistence.domain.searchengine.AutoCompleteResponse;
-import com.style24.persistence.domain.searchengine.CateResponse;
-import com.style24.persistence.domain.searchengine.Filter;
-import com.style24.persistence.domain.searchengine.FilterResponse;
-import com.style24.persistence.domain.searchengine.GoodsListResponse;
-import com.style24.persistence.domain.searchengine.PlanningResponse;
-import com.style24.persistence.domain.searchengine.SearchEngine;
 
 import istyle.AutoSearch;
 import istyle.PlanSearch;
@@ -320,4 +321,34 @@ public class SearchEngineDiquest {
 		return objectMapper.convertValue(obj, Map.class);
 	}
 
+	/**
+	 * 연관검색어
+	 * @param keyword - 검색어
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 20
+	 */
+	public FeedbackResponse sendFeedbackLog(String keyword, String goodsCd){
+		FeedbackResponse result = new FeedbackResponse();
+		log.info("///[getFeedbackLog] keyword: {}", keyword);
+		log.info("///[getFeedbackLog] goodsCd: {}", goodsCd);
+		Map<String, Object> paramMap = new HashMap<String, Object>();
+		paramMap.put("adminIp", ipAddr);
+		paramMap.put("adminPort", port);
+		paramMap.put("keyword", keyword);
+		paramMap.put("dq_id", goodsCd);
+		log.info("///[getFeedbackLog] paramMap: {}", paramMap);
+
+		try {
+			int feedbackLog = SearchService.feedbackLog(paramMap);
+			log.info("///[getFeedbackLog] returnCode : {}", feedbackLog);
+			result.setReturnCode(feedbackLog);
+			log.info("///[getFeedbackLog] result: {}", result);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		return result;
+	}
+
 }

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

@@ -5,6 +5,8 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 
+import com.style24.front.biz.thirdparty.SearchEngineDiquest;
+import com.style24.persistence.domain.searchengine.FeedbackResponse;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -110,6 +112,9 @@ public class TsfGoodsController extends TsfBaseController {
 	@Autowired
 	private EigeneaiApi eigeneaiApi;
 
+	@Autowired
+	private SearchEngineDiquest diquest;
+
 	/**
 	 * 상품상세
 	 *
@@ -121,6 +126,11 @@ public class TsfGoodsController extends TsfBaseController {
 	public ModelAndView detail(Goods paramsGoods) {
 
 		ModelAndView mav = new ModelAndView();
+		log.info("detail paramsGoods::::{}",paramsGoods);
+
+		// 연관검색 로그 쌓기 추가 21.07.20
+		FeedbackResponse responseFb = diquest.sendFeedbackLog(paramsGoods.getKeyword() ,paramsGoods.getGoodsCd());
+		log.info("responseFb::::{}",responseFb);
 
 		String afLinkCd = paramsGoods.getAfLinkCd();
 		

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

@@ -227,4 +227,6 @@ public class Goods extends TscBaseDomain {
 
 	private String sql;
 
+	private String keyword;	// 검색엔진 로그.
+
 }

+ 21 - 0
src/main/java/com/style24/persistence/domain/searchengine/FeedbackResponse.java

@@ -0,0 +1,21 @@
+package com.style24.persistence.domain.searchengine;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+/**
+ * 검색엔진 Feedback Response 도메인
+ * 
+ * @author bin2107
+ * @since 2021. 7. 20
+ */
+@SuppressWarnings("serial")
+@Data
+public class FeedbackResponse implements Serializable {
+
+	private Integer returnCode;				// 응답코드(양수: 정상, 음수: 오류)
+	private Collection<SearchEngine> response;
+
+}

+ 3 - 0
src/main/java/com/style24/persistence/domain/searchengine/SearchEngine.java

@@ -104,6 +104,9 @@ public class SearchEngine implements Serializable {
 	private String dispStdt;			//기획전 시작일시
 	private String dispEddt;			//기획전 종료일시
 
+	// 연관검색어 로그 쌓기
+	private int feedbackLog;
+
 	@Data
 	public class Trend {
 		// 인기검색어

+ 2 - 1
src/main/webapp/WEB-INF/views/mob/display/BrandSearchGoodsListFormMob.html

@@ -650,7 +650,8 @@
 			var goodsUrl = [[${@environment.getProperty('upload.goods.view')}]];
 			let lastPage = result.paging.pageNo;
 			let endRow = result.paging.endRow - result.paging.pageSize;
-			var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow, 'Mob');
+			var keyWord = $("#InnerSearchForm").find("input[name=keyword]").val();
+			var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow, 'Mob',keyWord);
 			gagaInfiniteScroll.draw(htm);
 			idx++;
 			//fnImgOnoff();

+ 2 - 1
src/main/webapp/WEB-INF/views/mob/display/SearchGoodsListFormMob.html

@@ -738,7 +738,8 @@
 			var goodsUrl = [[${@environment.getProperty('upload.goods.view')}]];
 			let lastPage = result.paging.pageNo;
 			let endRow = result.paging.endRow - result.paging.pageSize;
-			var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow, 'Mob');
+			var keyWord = $("#InnerSearchForm").find("input[name=keyword]").val();
+			var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow, 'Mob',keyWord);
 			gagaInfiniteScroll.draw(htm);
 			idx++;
 			//fnImgOnoff();

+ 2 - 1
src/main/webapp/WEB-INF/views/web/display/BrandSearchGoodsListFormWeb.html

@@ -565,7 +565,8 @@
 				var goodsUrl = [[${@environment.getProperty('upload.goods.view')}]];
 				let lastPage = result.paging.pageNo;
 				let endRow = result.paging.endRow - result.paging.pageSize;
-				var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow,'');
+				var keyWord = $("#InnerSearchForm").find("input[name=keyword]").val();
+				var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow,'',keyWord);
 				gagaInfiniteScroll.draw(htm);
 				idx++;
 				//fnImgOnoff();

+ 2 - 1
src/main/webapp/WEB-INF/views/web/display/SearchGoodsListFormWeb.html

@@ -629,7 +629,8 @@
 				var goodsUrl = [[${@environment.getProperty('upload.goods.view')}]];
 				let lastPage = result.paging.pageNo;
 				let endRow = result.paging.endRow - result.paging.pageSize;
-				var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow,'');
+				var keyWord = $("#InnerSearchForm").find("input[name=keyword]").val();
+				var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow,'',keyWord);
 				gagaInfiniteScroll.draw(htm);
 				idx++;
 				//fnImgOnoff();

+ 4 - 4
src/main/webapp/biz/search.js

@@ -2,7 +2,7 @@
 var categoryGoodsList = [];
 var cnt = 1;
 var email = '';
-var fnCreateGoodsList = function(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow, appGb) {
+var fnCreateGoodsList = function(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow, appGb, keyWord) {
 	console.log('search fnCreateGoodsList');
 	var tag = '';
 	var rank = 0;
@@ -46,7 +46,7 @@ var fnCreateGoodsList = function(result, ithrCd, contentLoc, goodsUrl, lastPage,
 			}else{
 				tag += ' onClick="cfnPutWishList(this);" goodsCd=\''+item.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
 			}
-			tag += '<a href="javascript:void(0);" class="itemLink" onclick="fnClickGoodsCd(\''+item.goodsCd+'\',\'' + item.colorCd + '\');">';
+			tag += '<a href="javascript:void(0);" class="itemLink" onclick="fnClickGoodsCd(\''+item.goodsCd+'\',\'' + item.colorCd + '\',\'' + keyWord + '\' );">';
 			tag += '			<div class="itemPic">';
 			if(!gagajf.isNull(item.videos)){
 				var videoArr = item.videos.split(",");
@@ -493,10 +493,10 @@ var fnSortingChange = function (obj, sortingType, stat, appGb){
 }
 
 // 상품상세
-var fnClickGoodsCd = function (goodsCd, mainColorCd){
+var fnClickGoodsCd = function (goodsCd, mainColorCd, keyWord){
 	let scrollpos = $(window).scrollTop();
 	localStorage.setItem('scrollpos', scrollpos);
-	cfnGoToGoodsDetail(goodsCd, mainColorCd);
+	cfnGoToGoodsDetail(goodsCd, mainColorCd,'','','','', keyWord);
 }
 
 // 카테고리 set test

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

@@ -491,13 +491,14 @@ var cfnLoginYes24 = function (requestGb, chkRememberMe) {
  * @since  : 2021/03/02
  * @author : eskim
  */
-var cfnGoToGoodsDetail = function (goodsCd, colorCd, ithrCd, contentsLoc, planDtlSq, rccode ) {
+var cfnGoToGoodsDetail = function (goodsCd, colorCd, ithrCd, contentsLoc, planDtlSq, rccode, keyword ) {
 	var params = goodsCd;
 	if (typeof (colorCd) != 'undefined') params += "&colorCd=" + colorCd;
 	if (typeof (ithrCd) != 'undefined') params += "&ithrCd=" + ithrCd;
 	if (typeof (contentsLoc) != 'undefined' && contentsLoc != "") params += "&contentsLoc=" + contentsLoc;
 	if (typeof (planDtlSq) != 'undefined') params += "&planDtlSq=" + planDtlSq;
 	if (typeof (rccode) != 'undefined') params += "&rccode="+ rccode;	// 추천솔루션 제공 상품클릭시
+	if (typeof (keyword) != 'undefined') params += "&keyword="+ keyword;	// 검색엔진 연관검색어 제공 상품클릭시
 	cfnGoToPage(_PAGE_GOODS_DETAIL + params);
 }