Browse Source

新建类目索引,建类目联想词

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@9615 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 8 years ago
parent
commit
5d261b95b1
1 changed files with 57 additions and 0 deletions
  1. 57 0
      src/main/java/com/uas/platform/b2b/search/SearchServiceImpl.java

+ 57 - 0
src/main/java/com/uas/platform/b2b/search/SearchServiceImpl.java

@@ -31,6 +31,7 @@ import com.uas.platform.b2b.dao.ComponentDao;
 import com.uas.platform.b2b.dao.DeputyOrderDao;
 import com.uas.platform.b2b.dao.DeputyOrderDao;
 import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.InvitationRecordDao;
 import com.uas.platform.b2b.dao.InvitationRecordDao;
+import com.uas.platform.b2b.dao.KindDao;
 import com.uas.platform.b2b.dao.MakeAcceptDao;
 import com.uas.platform.b2b.dao.MakeAcceptDao;
 import com.uas.platform.b2b.dao.MakeOrderChangeItemDao;
 import com.uas.platform.b2b.dao.MakeOrderChangeItemDao;
 import com.uas.platform.b2b.dao.MakeOrderDao;
 import com.uas.platform.b2b.dao.MakeOrderDao;
@@ -74,6 +75,7 @@ import com.uas.platform.b2b.model.Component;
 import com.uas.platform.b2b.model.DeputyOrder;
 import com.uas.platform.b2b.model.DeputyOrder;
 import com.uas.platform.b2b.model.Enterprise;
 import com.uas.platform.b2b.model.Enterprise;
 import com.uas.platform.b2b.model.InvitationRecord;
 import com.uas.platform.b2b.model.InvitationRecord;
+import com.uas.platform.b2b.model.Kind;
 import com.uas.platform.b2b.model.MakeAccept;
 import com.uas.platform.b2b.model.MakeAccept;
 import com.uas.platform.b2b.model.MakeOrder;
 import com.uas.platform.b2b.model.MakeOrder;
 import com.uas.platform.b2b.model.MakeOrderChangeItem;
 import com.uas.platform.b2b.model.MakeOrderChangeItem;
@@ -256,6 +258,9 @@ public class SearchServiceImpl implements com.uas.platform.b2b.search.SearchServ
 	@Autowired
 	@Autowired
 	private CartDao cartDao;
 	private CartDao cartDao;
 
 
+	@Autowired
+	private KindDao kindDao;
+
 	/**
 	/**
 	 * 联想词size
 	 * 联想词size
 	 */
 	 */
@@ -1018,6 +1023,58 @@ public class SearchServiceImpl implements com.uas.platform.b2b.search.SearchServ
 		return result;
 		return result;
 	}
 	}
 
 
+	@Override
+	public List<Map<String, Object>> getSimilarKinds(String keyword) {
+		List<String> kindList = similarKinds(keyword);
+		List<Kind> contents = new ArrayList<>();
+		for (String kind : kindList) {
+			List<Kind> temps = kindDao.findByNameCn(kind);
+			if (!CollectionUtils.isEmpty(temps)) {
+				contents.add(temps.get(0));
+			} else { // 中文品牌找不到,找英文的
+				temps = kindDao.findByNameEn(kind);
+				if (!CollectionUtils.isEmpty(temps)) {
+					contents.add(temps.get(0));
+				}
+			}
+		}
+		List<Map<String, Object>> brands = new ArrayList<>();
+		for (Kind kind : contents) {
+			Map<String, Object> temp = new HashMap<>();
+			temp.put("kindCn", kind.getNameCn());
+			temp.put("kindEn", kind.getNameEn());
+			brands.add(temp);
+		}
+		return brands;
+	}
+
+	private List<String> similarKinds(String keyword) {
+		SPage<String> kindCns = searchService.similar(keyword, Table_name.PRODUCT$KIND, SIMILAR_NUM, "ki_name_cn");
+		// 相似的品牌中文名数量足够,直接返回
+		List<String> kindCnList = kindCns.getContent();
+		if (kindCnList != null && kindCnList.size() == SIMILAR_NUM) {
+			return kindCnList;
+		}
+
+		List<String> result = kindCnList;
+		if (result == null) {
+			result = new ArrayList<>();
+		}
+
+		// 获取相似类目英文名
+		SPage<String> brandEns = searchService.similar(keyword, Table_name.PRODUCT$KIND, SIMILAR_NUM, "ki_name_en");
+		List<String> brandEnList = brandEns.getContent();
+		if (!CollectionUtils.isEmpty(brandEnList)) {
+			result.addAll(brandEnList);
+			// 如果总的数量超出SIMILAR_NUM,去除多余的元素
+			if (result.size() > SIMILAR_NUM) {
+				removeElements(result, SIMILAR_NUM);
+				return result;
+			}
+		}
+		return result;
+	}
+
 	/**
 	/**
 	 * 删除lists内startIndex(含)后的元素
 	 * 删除lists内startIndex(含)后的元素
 	 *
 	 *