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

1:搜索接口修改成用http请求的形式访问

yujia 8 лет назад
Родитель
Сommit
b8f759b095

+ 4 - 5
src/main/java/com/uas/platform/b2c/common/search/api/SearchServiceImpl.java

@@ -1,16 +1,15 @@
 package com.uas.platform.b2c.common.search.api;
 
-import java.util.List;
-import java.util.Map;
-
+import com.uas.api.b2c_erp.search.service.SearchService;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import com.uas.api.b2c_erp.search.service.SearchService;
+import java.util.List;
+import java.util.Map;
 
 public class SearchServiceImpl implements SearchService {
 
 	@Autowired
-	private com.uas.search.service.SearchService searchService;
+	private com.uas.platform.b2c.common.search.rpc.service.SearchService searchService;
 
 	@Override
 	public List<Map<String, Object>> getAssociateBrands(String keyword) {

+ 118 - 0
src/main/java/com/uas/platform/b2c/common/search/constant/SearchUrl.java

@@ -0,0 +1,118 @@
+package com.uas.platform.b2c.common.search.constant;
+
+/**
+ * 搜索对应的链接
+ *
+ * @author yuj 2017-10-19 19:35
+ */
+public class SearchUrl {
+
+    /**
+     * 获取类目id
+     */
+    public static final String KIND_ID_URL = "http://10.10.100.191:8092/search/kindIds/{keyword}";
+
+    /**
+     * 获取类目的数据
+     *
+     */
+    public static final String KIND_INFO_URL = "http://10.10.100.191:8092/search/kinds/{keyword}?page={page}&size={size}";
+
+    /**
+     * 搜索品牌的id
+     */
+    public static final String BRAND_ID_URL = "http://10.10.100.191:8092/search/brandIds/{keyword}?page={page}&size={size}";
+
+    /**
+     * 搜索品牌的具体信息
+     */
+    public static final String BRAND_INFO_URL = "http://10.10.100.191:8092/search/brands/{keyword}?page={page}&size={size}";
+
+
+    /**
+     * 搜索器件的id
+     */
+    public static final String COMPONENT_ID_URL = "http://10.10.100.191:8092/search/componentIds?keyword={keyword}&page={page}&size={size}";
+
+    /**
+     * 根据品牌id后去类目的id
+     */
+    public static final String KIND_ID_COMPONENT_URL = "http://10.10.100.191:8092/search/kindIdsByComponent?keyword={keyword}&brandId={brandId}";
+
+    /**
+     * 根据品牌id后去类目信息
+     */
+    public static final String KIND_COMPONENT_URL = "http://10.10.100.191:8092/search/kindsByComponent?keyword={keyword}&brandId={brandId}";
+
+    /**
+     * 根据类目的id,获取品牌id信息
+     */
+    public static final String BREAND_ID_COMPONENT_URL = "http://10.10.100.191:8092/search/brandIdsByComponent?keyword={keyword}&kindId={kindId}";
+
+
+    /**
+     * 根据类目的id,获取品牌信息
+     */
+    public static final String BREAND_COMPONENT_URL = "http://10.10.100.191:8092/search/brandsByComponent?keyword={keyword}&kindId={kindId}";
+
+
+    /**
+     * 根据关键字联想
+     */
+    public static final String SIMILAR_KEYWORD_URL = "http://10.10.100.191:8092/search/similarKeywords/{keyword}";
+
+
+    /**
+     * 根据关键字联想器件
+     */
+    public static final String SIMILAR_COMPONENT_URL = "http://10.10.100.191:8092/search/similarComponents/{keyword}";
+
+
+    /**
+     * 根据关键字联想品牌
+     */
+    public static final String SIMILAR_BRAND_URL = "http://10.10.100.191:8092/search/similarBrands/{keyword}";
+
+
+    /**
+     * 根据关键字联想类目
+     */
+    public static final String SIMILAR_KIND_URL = "http://10.10.100.191:8092/search/similarKinds/{keyword}";
+
+
+
+    /**
+     * 获取某个信息的叶子节点
+     */
+    public static final String SIMILAR_LEAF_KIND_URL = "http://10.10.100.191:8092/search/similarLeafKinds/{keyword}";
+
+
+    /**
+     * 获取类目的层级
+     */
+    public static final String SIMILAR__KIND_LEVEL_URL = "http://10.10.100.191:8092/search/similarKindsByLevel?kindName={kindName}&level={level}";
+
+
+    /**
+     * 属性值搜索
+     */
+    public static final String PROPERTYVALUES_URL = "http://10.10.100.191:8092/search/similarPropertyValues?kindId={kindId}&propertyId={propertyId}&keyword={keyword}&topNum={topNum}";
+
+
+    /**
+     * 搜索库存信息
+     */
+    public static final String GOODIS_URL= "http://10.10.100.191:8092/search/goodsIds?keyword={keyword}&page={page}&size={size}&filters={filters}&sort={sort}";
+
+
+    /**
+     * 搜索库存
+     */
+    public static final String GOODS_COLLECT_URL= "http://10.10.100.191:8092/search/collectBySearchGoods?keyword={keyword}&collectedField={collectedField}&filters={filters}";
+
+    /**
+     * 搜索订单
+     */
+    public static final String ORDER_SEARCH_URL = "http://10.10.100.191:8092/search/orderIds?tableName={tableName}&keyword={keyword}&page={page}&size={size}&status={status}&buyeruu={buyeruu}&buyerenuu={buyerenuu}&sellerenuu={sellerenuu}&mintime={mintime}&maxtime={maxtime}";
+
+}

+ 5 - 2
src/main/java/com/uas/platform/b2c/common/search/controller/SearcherController.java

@@ -81,7 +81,7 @@ public class SearcherController {
 		// 搜索类目
 		String type = request.getParameter("type");
 		if ("all".equals(type)) {
-			ModelMap results = new ModelMap();
+			/*ModelMap results = new ModelMap();
 			PageParams pageParams = new PageParams();
 			results = searcherService.searchComponentGoodsNums(w, pageParams);
 			if (((Integer)results.get("total")).intValue() == 0){
@@ -101,7 +101,10 @@ public class SearcherController {
                 // 跳转至器件搜索结果页
                 w = URLEncoder.encode(w, "UTF-8");
                 response.sendRedirect("commonSearch#/component?keyword=" + w);
-            }
+            }*/
+
+			w = URLEncoder.encode(w, "UTF-8");
+			response.sendRedirect("commonSearch#/component?keyword=" + w);
 			/*map = searcherService.searchKind(w, null);
 			int kindTotal = (int) map.get("total");
 			if (kindTotal > 1) {

+ 19 - 0
src/main/java/com/uas/platform/b2c/common/search/rpc/Readme.md

@@ -0,0 +1,19 @@
+## name
+
+rpc
+
+## 名称
+
+调用远程的搜索的接口
+
+## 创建人
+
+yujia
+
+## 创建时间
+
+2017年10月20日8:49:26
+
+## 说明
+
+使用Http协议调用远程的接口获取数据。

+ 60 - 0
src/main/java/com/uas/platform/b2c/common/search/rpc/service/Impl/OrderSearchServiceImpl.java

@@ -0,0 +1,60 @@
+package com.uas.platform.b2c.common.search.rpc.service.Impl;
+
+import com.uas.platform.b2c.common.search.constant.SearchUrl;
+import com.uas.platform.b2c.common.search.rpc.service.OrderSearchService;
+import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import com.uas.search.exception.SearchException;
+import com.uas.search.model.BaseOrder;
+import com.uas.search.model.PageParams;
+import com.uas.search.model.SPage;
+import org.apache.commons.collections.map.HashedMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Map;
+
+/**
+ * description
+ *
+ * @author yuj 2017-10-21 9:50
+ */
+@Service
+public class OrderSearchServiceImpl implements OrderSearchService {
+
+    private final RestTemplate restTemplate;
+
+    @Autowired
+    public OrderSearchServiceImpl(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+
+    @Override
+    public SPage<BaseOrder> getOrderIdsWithDetail(String keyword, Table_name tableName, PageParams var3) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("tableName", tableName);
+        map.put("page", var3.getPage());
+        map.put("size", var3.getSize());
+        Map<PageParams.FilterField, Object> filters = var3.getFilters();
+        map.put("status", filters.get(PageParams.FilterField.ORDER_STATUS));
+        map.put("buyeruu", filters.get(PageParams.FilterField.ORDER_BUYER_UU));
+        map.put("buyerenuu", filters.get(PageParams.FilterField.ORDER_BUYER_EN_UU));
+        map.put("sellerenuu", filters.get(PageParams.FilterField.ORDER_SELLER_EN_UU));
+        map.put("mintime", filters.get(PageParams.FilterField.ORDER_MIN_TIME));
+        map.put("maxtime", filters.get(PageParams.FilterField.ORDER_MAX_TIME));
+        String str = restTemplate.getForObject(SearchUrl.ORDER_SEARCH_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                SPage<BaseOrder> reMap = FastjsonUtils.fromJson(str, SPage.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+}

+ 387 - 0
src/main/java/com/uas/platform/b2c/common/search/rpc/service/Impl/SearchServiceImpl.java

@@ -0,0 +1,387 @@
+package com.uas.platform.b2c.common.search.rpc.service.Impl;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.uas.platform.b2c.common.search.constant.SearchUrl;
+import com.uas.platform.b2c.common.search.rpc.service.SearchService;
+import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import com.uas.search.exception.SearchException;
+import com.uas.search.model.CollectField;
+import com.uas.search.model.PageParams;
+import com.uas.search.model.SPage;
+import org.apache.commons.collections.map.HashedMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 通过resttemplate调用搜索接口的实现方法
+ *
+ * @author yuj 2017-10-20 8:57
+ */
+@Service
+public class SearchServiceImpl implements SearchService{
+
+    private final RestTemplate restTemplate;
+
+    @Autowired
+    public SearchServiceImpl(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+
+    @Override
+    public SPage<Long> getKindIds(String keyword, Integer page, Integer size) throws SearchException {
+        Map<String, Object> map = initSearchMap(keyword, page, size);
+        String str = restTemplate.getForObject(SearchUrl.KIND_ID_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                SPage<Long> sPage = FastjsonUtils.fromJson(str, SPage.class);
+                return sPage;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public SPage<Map<String, Object>> getKinds(String keyword, Integer page, Integer size) throws SearchException {
+        Map<String, Object> map = initSearchMap(keyword, page, size);
+        String str = restTemplate.getForObject(SearchUrl.KIND_INFO_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                SPage<Map<String, Object>> sPage = FastjsonUtils.fromJson(str, SPage.class);
+                return sPage;
+            }catch (Exception e) {
+                e.printStackTrace();
+              return null;
+            }
+        }
+    }
+
+    @Override
+    public SPage<Long> getBrandIds(String keyword, Integer page, Integer size) throws SearchException {
+        Map<String, Object> map = initSearchMap(keyword, page, size);
+        String str = restTemplate.getForObject(SearchUrl.BRAND_ID_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                SPage<Long> sPage = FastjsonUtils.fromJson(str, SPage.class);
+                return sPage;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+
+    }
+
+    @Override
+    public SPage<Map<String, List<Integer>>> getBrands(String keyword, Integer page, Integer size) throws SearchException {
+        Map<String, Object> map = initSearchMap(keyword, page, size);
+        String str = restTemplate.getForObject(SearchUrl.BRAND_INFO_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                SPage<Map<String, List<Integer>>> sPage = FastjsonUtils.fromJson(str, SPage.class);
+                return sPage;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public Map<String, Object> getComponentIds(String keyword, PageParams var2) throws SearchException {
+        Map<String, Object> map = initSearchMap(keyword, var2.getPage(), var2.getSize());
+        String str = restTemplate.getForObject(SearchUrl.COMPONENT_ID_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                Map<String, Object> reMap = FastjsonUtils.fromJson(str, Map.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public Set<Long> getKindIdsBySearchComponent(String keyword, String brandId) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("brandId", brandId);
+        String str = restTemplate.getForObject(SearchUrl.KIND_ID_COMPONENT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                Set<Long> reMap = FastjsonUtils.fromJson(str, Set.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getKindsBySearchComponent(String keyword, String brandId) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("brandId", brandId);
+        String str = restTemplate.getForObject(SearchUrl.KIND_COMPONENT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public Set<Long> getBrandIdsBySearchComponent(String keyword, String kindId) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("kindId", kindId);
+        String str = restTemplate.getForObject(SearchUrl.BREAND_ID_COMPONENT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                Set<Long> reMap = FastjsonUtils.fromJson(str, Set.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getBrandsBySearchComponent(String keyword, String kindId) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("kindId", kindId);
+        String str = restTemplate.getForObject(SearchUrl.BREAND_COMPONENT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<String> getSimilarKeywords(String keyword) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        String str = restTemplate.getForObject(SearchUrl.SIMILAR_KEYWORD_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<String> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getSimilarComponents(String keyword) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        String str = restTemplate.getForObject(SearchUrl.SIMILAR_COMPONENT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getSimilarBrands(String keyword) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        String str = restTemplate.getForObject(SearchUrl.SIMILAR_BRAND_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getSimilarKinds(String keyword) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        String str = restTemplate.getForObject(SearchUrl.SIMILAR_KIND_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getSimilarLeafKinds(String keyword) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        String str = restTemplate.getForObject(SearchUrl.SIMILAR_LEAF_KIND_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getSimilarKindsByLevel(String kindName, Short level) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("kindName", kindName);
+        map.put("level", level);
+        String str = restTemplate.getForObject(SearchUrl.SIMILAR__KIND_LEVEL_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, String>> getSimilarPropertyValues(Long kindId, Long propertyId, String keyword, Long topNum) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("kindId", kindId);
+        map.put("propertyId", propertyId);
+        map.put("keyword", keyword);
+        map.put("topNum", topNum);
+        String str = restTemplate.getForObject(SearchUrl.PROPERTYVALUES_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, String>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public Map<String, Object> getGoodsIds(String keyword, PageParams var2) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("page", var2.getPage());
+        map.put("size", var2.getSize());
+        if(var2.getFilters() == null) {
+            map.put("filters", new JSONObject());
+        }else {
+            map.put("filters", FastjsonUtils.toJson(var2.getFilters()));
+        }
+        if(var2.getSort() == null) {
+            map.put("sort", new ArrayList<>());
+        }else {
+            map.put("sort", FastjsonUtils.toJson(var2.getSort()));
+        }
+        String str = restTemplate.getForObject(SearchUrl.GOODIS_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                Map<String, Object> reMap = FastjsonUtils.fromJson(str, Map.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> collectBySearchGoods(String keyword, CollectField collectField, Map<PageParams.FilterField, Object> filters) {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("collectedField", collectField);
+        map.put("filters", FastjsonUtils.toJson(filters));
+        String str = restTemplate.getForObject(SearchUrl.GOODS_COLLECT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    public Map<String , Object> initSearchMap(String keyword, Integer page, Integer size) {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("page", page);
+        map.put("size", size);
+        return map;
+    }
+}

+ 35 - 0
src/main/java/com/uas/platform/b2c/common/search/rpc/service/OrderSearchService.java

@@ -0,0 +1,35 @@
+package com.uas.platform.b2c.common.search.rpc.service;
+
+import com.uas.search.exception.SearchException;
+import com.uas.search.model.BaseOrder;
+import com.uas.search.model.PageParams;
+import com.uas.search.model.SPage;
+
+/**
+ * Created by yujia on 2017/10/21.
+ */
+public interface OrderSearchService {
+
+    SPage<BaseOrder> getOrderIdsWithDetail(String var1, OrderSearchService.Table_name var2, PageParams var3) throws SearchException;
+
+    public static enum Table_name {
+        ORDER("order"),
+        PURCHASE("purchase"),
+        ORDER_INVOICE("order_invoice"),
+        PURCHASE_INVOICE("purchase_invocie");
+
+        private String phrase;
+
+        private Table_name(String phrase) {
+            this.phrase = phrase;
+        }
+
+        public String value() {
+            return this.phrase;
+        }
+
+        public String toString() {
+            return this.phrase;
+        }
+    }
+}

+ 53 - 0
src/main/java/com/uas/platform/b2c/common/search/rpc/service/SearchService.java

@@ -0,0 +1,53 @@
+package com.uas.platform.b2c.common.search.rpc.service;
+
+/**
+ * Created by yujia on 2017/10/20.
+ *
+ * 通过http方式调用远端的搜索接口
+ */
+import com.uas.search.exception.SearchException;
+import com.uas.search.model.CollectField;
+import com.uas.search.model.PageParams;
+import com.uas.search.model.SPage;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public interface SearchService {
+    SPage<Long> getKindIds(String keyword, Integer page, Integer size) throws SearchException;
+
+    SPage<Map<String, Object>> getKinds(String keyword, Integer page, Integer size) throws SearchException;
+
+    SPage<Long> getBrandIds(String keyword, Integer page, Integer size) throws SearchException;
+
+    SPage<Map<String, List<Integer>>> getBrands(String keyword, Integer page, Integer size) throws SearchException;
+
+    Map<String, Object> getComponentIds(String keyword, PageParams var2) throws SearchException;
+
+    Set<Long> getKindIdsBySearchComponent(String keyword, String brandId) throws SearchException;
+
+    List<Map<String, Object>> getKindsBySearchComponent(String keyword, String brandId) throws SearchException;
+
+    Set<Long> getBrandIdsBySearchComponent(String keyword, String kindId) throws SearchException;
+
+    List<Map<String, Object>> getBrandsBySearchComponent(String keyword, String kindId) throws SearchException;
+
+    List<String> getSimilarKeywords(String keyword) throws SearchException;
+
+    List<Map<String, Object>> getSimilarComponents(String keyword) throws SearchException;
+
+    List<Map<String, Object>> getSimilarBrands(String keyword) throws SearchException;
+
+    List<Map<String, Object>> getSimilarKinds(String keyword) throws SearchException;
+
+    List<Map<String, Object>> getSimilarLeafKinds(String keyword) throws SearchException;
+
+    List<Map<String, Object>> getSimilarKindsByLevel(String kindName, Short level) throws SearchException;
+
+    List<Map<String, String>> getSimilarPropertyValues(Long kindId, Long propertyId, String keyword, Long topNum) throws SearchException;
+
+    Map<String, Object> getGoodsIds(String keyword, PageParams var2) throws SearchException;
+
+    List<Map<String, Object>> collectBySearchGoods(String keyword, CollectField collectField, Map<PageParams.FilterField, Object> filters);
+}

+ 7 - 5
src/main/java/com/uas/platform/b2c/common/search/service/impl/SearcherServiceImpl.java

@@ -1,6 +1,7 @@
 package com.uas.platform.b2c.common.search.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.uas.platform.b2c.common.search.rpc.service.SearchService;
 import com.uas.platform.b2c.common.search.service.SearcherService;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentGoodsDao;
@@ -15,7 +16,6 @@ import com.uas.search.model.CollectField;
 import com.uas.search.model.PageParams.FilterField;
 import com.uas.search.model.SPage;
 import com.uas.search.model.Sort;
-import com.uas.search.service.SearchService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -83,7 +83,7 @@ public class SearcherServiceImpl implements SearcherService {
 	@Override
 	public ModelMap searchBrand(String keyword, String field) {
 		ModelMap map = new ModelMap();
-		SPage<Map<String, Object>> brands = null;
+		SPage<Map<String, List<Integer>>> brands = null;
 		try {
 			brands = searchService.getBrands(keyword,1,1024*1024*1024);
 		} catch (SearchException e) {
@@ -160,12 +160,14 @@ public class SearcherServiceImpl implements SearcherService {
 			map.put("components", new ArrayList<>());// 当前页器件内容
 			return map;
 		}
-		List<Long> componentIds = (List<Long>)results.get("componentIds");
-		List<Long> goodsIds = (List<Long>)results.get("goodsIds");
+		List<Integer> componentIds = (List<Integer>)results.get("componentIds");
+		List<Integer> goodsIds = (List<Integer>)results.get("goodsIds");
 		List<ComponentGoods> components = new ArrayList<>();
 		if (!CollectionUtils.isEmpty(componentIds)) {
 			for (int i = 0 ;i < componentIds.size() ; i++){
-				ComponentGoods componentGoods = componentGoodsDao.findByCmpIdAndGoId(componentIds.get(i),goodsIds.get(i));
+				Long cid = Long.valueOf(componentIds.get(i).toString());
+				Long gid = goodsIds.get(i) == null ? null : Long.valueOf(goodsIds.get(i).toString());
+				ComponentGoods componentGoods = componentGoodsDao.findByCmpIdAndGoId(cid, gid);
 				if (componentGoods != null){
 					components.add(componentGoods);
 				}

+ 38 - 6
src/main/java/com/uas/platform/b2c/prod/commodity/controller/GoodsController.java

@@ -1,5 +1,12 @@
 package com.uas.platform.b2c.prod.commodity.controller;
 
+import com.uas.platform.b2c.common.base.model.FileUpload;
+import com.uas.platform.b2c.common.search.rpc.service.SearchService;
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.b2c.core.support.view.JxlsExcelView;
+import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import com.uas.platform.b2c.core.utils.StringUtilB2C;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
 import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.prod.commodity.model.GoodsHistory;
@@ -7,20 +14,15 @@ import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
 import com.uas.platform.b2c.prod.commodity.model.GoodsSimple;
 import com.uas.platform.b2c.prod.commodity.service.GoodsHistoryService;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
-import com.uas.platform.b2c.common.base.model.FileUpload;
 import com.uas.platform.b2c.prod.product.component.modal.ComponentInfo;
 import com.uas.platform.b2c.prod.product.component.service.ComponentService;
-import com.uas.platform.b2c.core.support.SystemSession;
-import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
-import com.uas.platform.b2c.core.utils.FastjsonUtils;
-import com.uas.platform.b2c.core.utils.StringUtilB2C;
-import com.uas.platform.b2c.core.support.view.JxlsExcelView;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.Status;
+import org.apache.commons.collections.map.HashedMap;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -65,6 +67,9 @@ public class GoodsController {
 	@Autowired
 	private GoodsDao goodsDao;
 
+	@Autowired
+	private SearchService searchService;
+
     /**
      * 发布(上架)产品
      *
@@ -644,4 +649,31 @@ public class GoodsController {
 		logger.log("商品管理", "下架该公司所有商品");
 		return goodsService.downAllGoodsByEnterprise(eName);
 	}
+
+	@RequestMapping(value = "/test/str", method = RequestMethod.GET)
+	public void getTest() {
+		searchService.getKindIds("电阻", 1, 10);
+
+		searchService.getKinds("电阻", 1, 10);
+
+		searchService.getBrandIds("Panasonic", 1, 10);
+
+		searchService.getBrands("Panasonic", 1, 10);
+
+		com.uas.search.model.PageParams page = new com.uas.search.model.PageParams();
+		page.setPage(1);
+		page.setSize(10);
+		searchService.getComponentIds("ac", page);
+
+		Map<com.uas.search.model.PageParams.FilterField, Object> filters = new HashedMap();
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_KINDID, "401,23");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_BRANDID, "45");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_STORE_TYPE, "DISTRIBUTION");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_CRNAME, "RMB-USD");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_MINPRICERMB, "0");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_MAXPRICERMB, "10");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_MINPRICEUSD, "0");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_MAXPRICEUSD, "10");
+		page.setFilters(filters);
+	}
 }

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/product/component/dao/ComponentGoodsDao.java

@@ -37,5 +37,5 @@ public interface ComponentGoodsDao extends JpaSpecificationExecutor<ComponentGoo
 	 * @param goID 批次id
 	 * @return 产品列表信息
 	 */
-	public ComponentGoods findByCmpIdAndGoId(Long cmpId,Long goID);
+	public ComponentGoods findByCmpIdAndGoId(Long cmpId, Long goID);
 }

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/product/component/service/impl/ComponentGoodsServiceImpl.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2c.prod.product.component.service.impl;
 
+import com.uas.platform.b2c.common.search.rpc.service.SearchService;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentGoodsDao;
 import com.uas.platform.b2c.prod.product.component.modal.ComponentGoods;
 import com.uas.platform.b2c.prod.product.component.service.ComponentGoodsService;
@@ -9,7 +10,6 @@ import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.search.model.PageParams;
 import com.uas.search.model.PageParams.FilterField;
-import com.uas.search.service.SearchService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/product/component/service/impl/ComponentServiceImpl.java

@@ -1,6 +1,7 @@
 package com.uas.platform.b2c.prod.product.component.service.impl;
 
 import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.common.search.rpc.service.SearchService;
 import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.core.constant.SplitChar;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
@@ -31,7 +32,6 @@ import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.persistence.criteria.SimpleExpression;
 import com.uas.search.model.PageParams;
 import com.uas.search.model.PageParams.FilterField;
-import com.uas.search.service.SearchService;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 1
src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderServiceImpl.java

@@ -12,6 +12,7 @@ import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.account.model.TradeLog;
 import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.common.base.service.SendMessageService;
+import com.uas.platform.b2c.common.search.rpc.service.OrderSearchService;
 import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.core.constant.SplitChar;
 import com.uas.platform.b2c.core.support.SystemSession;
@@ -84,7 +85,6 @@ import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.search.model.BaseOrder;
 import com.uas.search.model.PageParams;
 import com.uas.search.model.SPage;
-import com.uas.search.service.OrderSearchService;
 import org.apache.commons.collections.map.HashedMap;
 import org.apache.commons.lang.time.DateUtils;
 import org.springframework.beans.BeanUtils;

+ 0 - 8
src/main/resources/spring/dubbo-consumer.xml

@@ -11,14 +11,6 @@
 	<!-- 分布式文件服务 -->
 	<dubbo:reference id="fileClient" interface="com.uas.dfs.service.FileClient" />
 
-	<!-- 搜索服务 -->
-	<dubbo:reference id="searchService"
-		interface="com.uas.search.service.SearchService" timeout="10000"
-		group="${dubbo.group}" />
-	<dubbo:reference id="orderSearchService"
-		interface="com.uas.search.service.OrderSearchService" timeout="10000"
-		group="${dubbo.group}" />
-
 	<!-- 邮件服务 -->
 	<dubbo:reference id="mailService"
 		interface="com.uas.message.mail.service.MailService" timeout="10000" />