Ver Fonte

검색엔진(NHN다이퀘스트) 인기검색어 기능 추가

gagamel há 5 anos atrás
pai
commit
a23b49167b

+ 25 - 7
pom.xml

@@ -64,6 +64,7 @@
 			<artifactId>libphonenumber</artifactId>
 			<version>8.12.16</version>
 		</dependency>
+		
 		<!-- /// WEB-INF lib -->
 		<dependency>
 			<groupId>com.gagaframework</groupId>
@@ -100,7 +101,9 @@
 			<scope>system</scope>
 			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/gagaframework-web-util-1.7-RELEASE.jar</systemPath>
 		</dependency>
-		<!--NICE-->
+		<!-- \\\ WEB-INF lib -->
+		
+		<!-- /// NICE -->
 		<dependency>
 			<groupId>com.NiceID</groupId>
 			<artifactId>NiceID</artifactId>
@@ -115,7 +118,9 @@
 			<scope>system</scope>
 			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/IPIN2Client.jar</systemPath>
 		</dependency>
-		<!--KCP-->
+		<!-- \\\ NICE -->
+		
+		<!-- /// KCP -->
 		<dependency>
 			<groupId>com.kcp</groupId>
 			<artifactId>kcp</artifactId>
@@ -137,7 +142,9 @@
 			<scope>system</scope>
 			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/CtCli-1.0.6.jar</systemPath>
 		</dependency>
-		<!-- 상품권 인증  -->
+		<!-- \\\ KCP -->
+		
+		<!-- /// 상품권 인증 -->
 		<dependency>
 			<groupId>org.apache.cxf</groupId>
 			<artifactId>cxf-rt-frontend-jaxws</artifactId>
@@ -148,7 +155,9 @@
 			<artifactId>cxf-rt-transports-http</artifactId>
 			<version>2.7.11</version>
 		</dependency>
-		<!--USAFE 보증보험-->
+		<!-- \\\ 상품권 인증 -->
+		
+		<!-- /// USAFE 보증보험 -->
 		<dependency>
 			<groupId>com.usafe.guarantee</groupId>
 			<artifactId>usafe-guarantee</artifactId>
@@ -163,9 +172,18 @@
 			<scope>system</scope>
 			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/usafe.jar</systemPath>
 		</dependency>
-
-		<!--//NICE 본인인증-->
-		<!-- \\\ WEB-INF lib -->
+		<!-- \\\ USAFE 보증보험 -->
+		
+		<!-- /// 검색엔진(DIQUEST) -->
+<!-- 		<dependency> -->
+<!-- 			<groupId>com.diquest</groupId> -->
+<!-- 			<artifactId>diquest</artifactId> -->
+<!-- 			<version>0.1</version> -->
+<!-- 			<scope>system</scope> -->
+<!-- 			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/diquest.jar</systemPath> -->
+<!-- 		</dependency> -->
+		<!-- \\\ 검색엔진(DIQUEST) -->
+		
 	</dependencies>
 	
 	<build>

+ 52 - 17
src/main/java/com/style24/front/biz/thirdparty/SearchEngineDiquest.java

@@ -1,9 +1,20 @@
 package com.style24.front.biz.thirdparty;
 
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+
+import org.json.simple.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
+
+import com.diquest.ir.common.exception.IRException;
+import com.google.gson.Gson;
+import com.style24.persistence.domain.searchengine.SearchEngine;
+
+import istyle.AutoSearch;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -20,21 +31,45 @@ public class SearchEngineDiquest {
 	@Autowired
 	private Environment env;
 
-	@Autowired
-	private RestTemplate restTemplate;
-
-	private String ipAddr;
-	private String port;
-
-//	@PostConstruct
-//	public void init() {
-//		ipAddr = env.getProperty("search.engine.diquest.ip");
-//		port = env.getProperty("search.engine.diquest.port");
-//
-//		log.debug("\n\n---- NHN Diquest initialization started ----");
-//		log.debug("ipAddr: [{}]", ipAddr);
-//		log.debug("port: [{}]", port);
-//		log.debug("\n--- NHN Diquest initialization completed ----\n");
-//	}
+	private String ipAddr;	// 검색엔진 IP
+	private String port;	// 검색엔진 포트
+
+	@PostConstruct
+	public void init() {
+		ipAddr = env.getProperty("search.engine.diquest.ip");
+		port = env.getProperty("search.engine.diquest.port");
+
+		log.debug("\n\n---- NHN Diquest initialization started ----");
+		log.debug("ipAddr: [{}]", ipAddr);
+		log.debug("port: [{}]", port);
+		log.debug("\n--- NHN Diquest initialization completed ----\n");
+	}
+
+	/**
+	 * 인기검색어 조회
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 5. 10
+	 */
+	public SearchEngine getTrendKeywordList() {
+		SearchEngine result = new SearchEngine();
+
+		// 인기검색어
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("adminIp", ipAddr);
+		map.put("adminPort", port);
+
+		try {
+			JSONObject jsonObj = AutoSearch.trendKeyword(map);
+			log.info("jsonObj.toJSONString(): {}", jsonObj.toJSONString());
+
+			Gson gson = new Gson();
+			result = gson.fromJson(jsonObj.toJSONString(), SearchEngine.class);
+		} catch (IRException e) {
+			e.printStackTrace();
+		}
+
+		return result;
+	}
 
 }

+ 16 - 0
src/main/java/com/style24/front/biz/web/TsfDisplayController.java

@@ -27,6 +27,7 @@ import com.style24.front.biz.service.TsfDisplayService;
 import com.style24.front.biz.service.TsfGoodsService;
 import com.style24.front.biz.service.TsfPlanningService;
 import com.style24.front.biz.service.TsfSocialService;
+import com.style24.front.biz.thirdparty.SearchEngineDiquest;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.TscPageRequest;
@@ -81,6 +82,9 @@ public class TsfDisplayController extends TsfBaseController {
 	@Autowired
 	private TsfSocialService socialService;
 
+	@Autowired
+	private SearchEngineDiquest diquest;
+
 	/**
 	 * 몰 메인
 	 * @return
@@ -907,4 +911,16 @@ public class TsfDisplayController extends TsfBaseController {
 		return result;
 	}
 
+	/**
+	 * 인기검색어 목록
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 5. 10
+	 */
+	@GetMapping("/search/trend/keyword/list")
+	@ResponseBody
+	public SearchEngine getSearchTrendKeywordList() {
+		return diquest.getTrendKeywordList();
+	}
+
 }

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

@@ -1,6 +1,7 @@
 package com.style24.persistence.domain.searchengine;
 
 import java.io.Serializable;
+import java.util.Collection;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscPageRequest;
@@ -17,6 +18,9 @@ import lombok.Data;
 @Data
 public class SearchEngine implements Serializable {
 
+	// 인기검색어 목록
+	Collection<Trend> trendList;
+
 	// 파라미터
 	private String siteCd;			// 사이트코드
 	private String cateGb;			// 카테고리구분
@@ -28,7 +32,7 @@ public class SearchEngine implements Serializable {
 	private Integer cate3No;		// 카테고리3번호
 	private Integer cate4No;		// 카테고리4번호
 	private Integer cate5No;		// 카테고리5번호
-	private String keyword;			// 검색어
+	private String keyword;			// 키워드
 	private Integer brandGroupNo;	// 브랜드그룹번호
 	private String formalGb;		// 정상이월구분
 	private String defaultCateYn;	// 기본카테고리사용여부
@@ -73,8 +77,16 @@ public class SearchEngine implements Serializable {
 	private String benefits;		// 혜택들(,로 연결된 문자열. 혜택구분:혜택명, ...)
 	private String likeIt;			// 좋아요(위시리스트에담긴상품)
 
-	private String adminIp;			// 검색엔진IP
-	private String adminPort;		// 검색엔진포트
+//	private String adminIp;			// 검색엔진IP
+//	private String adminPort;		// 검색엔진포트
 	private String returnCode;		// 검색오류코드(양수: 정상, 음수: 오류)
 
+	@Data
+	public class Trend {
+		// 인기검색어
+		private String keyword;	// 키워드
+		private int prevRank;	// 이전랭킹
+		private int ranking;	// 랭킹
+	}
+
 }

BIN
src/main/webapp/WEB-INF/lib/AutoSearch.jar


BIN
src/main/webapp/WEB-INF/lib/diquest.jar


BIN
src/main/webapp/WEB-INF/lib/json_simple-1.1.jar


BIN
src/main/webapp/WEB-INF/lib/m4_client.jar


BIN
src/main/webapp/WEB-INF/lib/m4_common.jar


BIN
src/main/webapp/WEB-INF/lib/m4_util.jar