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

검색엔진 상품리스트 관련 메소드 추가

gagamel 5 лет назад
Родитель
Сommit
65dec48246

+ 40 - 39
src/main/java/com/style24/front/biz/thirdparty/SearchEngineDiquest.java

@@ -1,7 +1,6 @@
 package com.style24.front.biz.thirdparty;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
@@ -16,8 +15,12 @@ import org.springframework.stereotype.Component;
 import com.diquest.ir.common.exception.IRException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
+import com.style24.front.biz.dao.TsfDisplayDao;
 import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.domain.Cate1;
+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.SearchEngine;
 
 import istyle.AutoSearch;
@@ -39,12 +42,15 @@ public class SearchEngineDiquest {
 	private Environment env;
 
 	private String ipAddr;	// 검색엔진 IP
-	private String port;	// 검색엔진 포트
+	private Integer port;	// 검색엔진 포트
+
+	@Autowired
+	private TsfDisplayDao displayDao;
 
 	@PostConstruct
 	public void init() {
 		ipAddr = env.getProperty("search.engine.diquest.ip");
-		port = env.getProperty("search.engine.diquest.port");
+		port = Integer.valueOf(env.getProperty("search.engine.diquest.port"));
 
 		log.debug("\n\n---- NHN Diquest initialization started ----");
 		log.debug("ipAddr: [{}]", ipAddr);
@@ -62,16 +68,18 @@ public class SearchEngineDiquest {
 		SearchEngine result = new SearchEngine();
 
 		// 인기검색어
-		Map<String, Object> map = new HashMap<String, Object>();
-		map.put("adminIp", ipAddr);
-		map.put("adminPort", port);
+		Map<String, Object> paramMap = new HashMap<String, Object>();
+		paramMap.put("adminIp", ipAddr);
+		paramMap.put("adminPort", port);
+		log.info("///[getTrendKeywordList] paramMap: {}", paramMap);
 
 		try {
-			JSONObject jsonObj = AutoSearch.trendKeyword(map);
-			log.info("jsonObj.toJSONString(): {}", jsonObj.toJSONString());
+			JSONObject jsonObj = AutoSearch.trendKeyword(paramMap);
+			log.info("///[getTrendKeywordList] jsonObj: {}", jsonObj.toJSONString());
 
 			Gson gson = new Gson();
 			result = gson.fromJson(jsonObj.toJSONString(), SearchEngine.class);
+			log.info("///[getTrendKeywordList] result: {}", result);
 		} catch (IRException e) {
 			e.printStackTrace();
 		}
@@ -86,40 +94,36 @@ public class SearchEngineDiquest {
 	 * @author gagamel
 	 * @since 2021. 5. 31
 	 */
-	@SuppressWarnings("unchecked")
-	public SearchEngine getCategoryList(SearchEngine params) {
-		SearchEngine result = new SearchEngine();
+	public Collection<Cate1> getCategoryList(SearchEngine params) {
+		Collection<Cate1> result = new ArrayList<Cate1>();
 
-		Map<String, Object> paramMap = new HashMap<>();// this.convertObjectToMap(params);
+		Map<String, Object> paramMap = this.convertObjectToMap(params);
 		paramMap.put("adminIp", ipAddr);
 		paramMap.put("adminPort", port);
 //		paramMap.put("cate1No", 1300);
-		paramMap.put("brandGroupNo", 0);
+//		paramMap.put("brandGroupNo", 0);
 		paramMap.put("frontGb", TsfSession.getFrontGb());
-		paramMap.put("keyword", "키즈");
-		paramMap.put("formalGb", "G009_20");
+//		paramMap.put("keyword", "키즈");
+//		paramMap.put("formalGb", "G009_20");
 
 		// 브랜드그룹번호 값이 있으면 (=브랜드메인에서 조회했으면)
 		paramMap.put("defaultCateYn", "Y");
 		if (params.getBrandGroupNo() > 0) {
-			paramMap.put("defaultCateYn", "Y");
+			paramMap.put("defaultCateYn", displayDao.getBrandGroupDefaultCategoryYn(params.getBrandGroupNo()));
 		}
-
-		log.info("--------------------------1");
-		log.info("{}", paramMap);
+		log.info("///[getCategoryList] paramMap: {}", paramMap);
 
 		try {
-			log.info("--------------------------2");
 			JSONObject jsonObj = SearchService.getCategoryGoodsList(paramMap);
-			log.info("jsonObj: {}", jsonObj.toString());
-
-//			Gson gson = new Gson();
-//			Map<String, Object> resMap = gson.fromJson(jsonObj.toJSONString(), Map.class);
-//			log.info("{}", resMap);
-//
-//			if (resMap.get("returnCode").equals("1")) { // 성공
-//				result = gson.fromJson(resMap.get("response").toString(), SearchEngine.class);
-//			}
+			log.info("///[getCategoryList] jsonObj: {}", jsonObj.toJSONString());
+
+			Gson gson = new Gson();
+			CateResponse response = gson.fromJson(jsonObj.toJSONString(), CateResponse.class);
+
+			if (jsonObj.get("returnCode").toString().equals("1")) { // 성공
+				result = response.getResponse();
+				log.info("///[getCategoryList] result: {}", result);
+			}
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -134,28 +138,25 @@ public class SearchEngineDiquest {
 	 * @author gagamel
 	 * @since 2021. 5. 31
 	 */
-	@SuppressWarnings("unchecked")
 	public Collection<Filter> getFilterList(SearchEngine params) {
 		Collection<Filter> result = new ArrayList<Filter>();
 
 		Map<String, Object> paramMap = this.convertObjectToMap(params);
 		paramMap.put("adminIp", ipAddr);
 		paramMap.put("adminPort", port);
-		log.info("{}", paramMap);
+		paramMap.put("frontGb", TsfSession.getFrontGb());
+		log.info("///[getFilterList] paramMap: {}", paramMap);
 
 		try {
 			JSONObject jsonObj = SearchService.getFilterList(paramMap);
-			log.info("jsonObj.toJSONString(): {}", jsonObj.toJSONString());
+			log.info("///[getFilterList] jsonObj: {}", jsonObj.toJSONString());
 
 			Gson gson = new Gson();
-			Map<String, Object> resMap = gson.fromJson(jsonObj.toJSONString(), Map.class);
-			log.info("{}", resMap);
+			FilterResponse response = gson.fromJson(jsonObj.toJSONString(), FilterResponse.class);
 
-			if (resMap.get("returnCode").equals("1")) { // 성공
-				Filter[] arrFilter = gson.fromJson(resMap.get("response").toString(), Filter[].class);
-				result = Arrays.asList(arrFilter);
-//				result = gson.fromJson(resMap.get("response").toString(), new TypeToken<Collection<Filter>>() {
-//				}.getType());
+			if (jsonObj.get("returnCode").toString().equals("1")) { // 성공
+				result = response.getResponse();
+				log.info("///[getFilterList] result: {}", result);
 			}
 		} catch (Exception e) {
 			e.printStackTrace();

+ 23 - 0
src/main/java/com/style24/persistence/domain/searchengine/CateResponse.java

@@ -0,0 +1,23 @@
+package com.style24.persistence.domain.searchengine;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+import com.style24.persistence.domain.Cate1;
+
+import lombok.Data;
+
+/**
+ * 검색엔진 카테고리 Response 도메인
+ * 
+ * @author gagamel
+ * @since 2021. 6. 1
+ */
+@SuppressWarnings("serial")
+@Data
+public class CateResponse implements Serializable {
+
+	private Integer returnCode;				// 응답코드(양수: 정상, 음수: 오류)
+	private Collection<Cate1> response;
+
+}

+ 1 - 1
src/main/java/com/style24/persistence/domain/searchengine/Filter.java

@@ -5,7 +5,7 @@ import java.io.Serializable;
 import lombok.Data;
 
 /**
- * 검색엔진 연동 도메인
+ * 검색엔진 Filter 도메인
  * 
  * @author gagamel
  * @since 2021. 4. 29

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

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

+ 42 - 0
src/main/java/com/style24/persistence/domain/searchengine/GoodsListResponse.java

@@ -0,0 +1,42 @@
+package com.style24.persistence.domain.searchengine;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+import lombok.Data;
+
+/**
+ * 검색엔진 상품리스트 Response 도메인
+ * 
+ * @author gagamel
+ * @since 2021. 6. 1
+ */
+@SuppressWarnings("serial")
+@Data
+public class GoodsListResponse implements Serializable {
+
+	private Integer returnCode;				// 응답코드(양수: 정상, 음수: 오류)
+	private int totalCount;					// 상품전체건수
+	private Collection<Goods> response;
+
+	@Data
+	public class Goods {
+		private String brandGroupNm;	// 브랜드그룹명
+		private String goodsCd;			// 상품코드
+		private String goodsFullNm;		// 상품FULL명
+		private String goodsTnm;		// 상품타이틀명
+		private int listPrice;			// 정상가
+		private int currPrice;			// 현재판매가(=혜택가)
+		private String sysImgNm;		// 상품시스템파일명(썸네일 기본 이미지)
+		private String sysImgNm2;		// 상품시스템파일명2(썸네일 마우스오버 이미지)
+		private String videos;			// 동영상들(,로 연결된 문자열. 동영상구분:미디어컨텐츠 또는 유튜브동영상ID, ...)
+		private String colorChips;		// 컬러칩들(,로 연결된 문자열. 색상코드:컬러칩, ...)
+		private String sizes;			// 사이즈들(,로 연결된 문자열. 사이즈코드:품절여부, ...)
+		private String benefits;		// 혜택들(,로 연결된 문자열. 혜택구분:혜택명, ...)
+
+		private String likeIt;			// 좋아요(위시리스트에담긴상품)
+		private String mainColorCd;		// 메인컬러
+		private String selfGoodsYn;		// 자사상품여부
+	}
+
+}