|
|
@@ -46,7 +46,7 @@ import com.uas.search.util.SearchUtils;
|
|
|
|
|
|
/**
|
|
|
* 搜索请求
|
|
|
- *
|
|
|
+ *
|
|
|
* @author suntg
|
|
|
* @since 2016年8月1日上午9:18:05
|
|
|
*/
|
|
|
@@ -62,35 +62,35 @@ public class SearchController {
|
|
|
@RequestMapping("/kindIds/{keyword}")
|
|
|
@ResponseBody
|
|
|
public SPage<Long> seachKindIds(@PathVariable String keyword, Integer page, Integer size,
|
|
|
- HttpServletRequest request) {
|
|
|
+ HttpServletRequest request) {
|
|
|
return searchService.getKindIds(keyword, page, size);
|
|
|
}
|
|
|
|
|
|
@RequestMapping("/kinds/{keyword}")
|
|
|
@ResponseBody
|
|
|
public SPage<Map<String, Object>> seachKinds(@PathVariable String keyword, Integer page, Integer size,
|
|
|
- HttpServletRequest request) {
|
|
|
+ HttpServletRequest request) {
|
|
|
return searchService.getKinds(keyword, page, size);
|
|
|
}
|
|
|
|
|
|
@RequestMapping("/brandIds/{keyword}")
|
|
|
@ResponseBody
|
|
|
public SPage<Long> searchBrandIds(@PathVariable String keyword, Integer page, Integer size,
|
|
|
- HttpServletRequest request) {
|
|
|
+ HttpServletRequest request) {
|
|
|
return searchService.getBrandIds(keyword, page, size);
|
|
|
}
|
|
|
|
|
|
@RequestMapping("/brands/{keyword}")
|
|
|
@ResponseBody
|
|
|
public SPage<Map<String, Object>> searchBrand(@PathVariable String keyword, Integer page, Integer size,
|
|
|
- HttpServletRequest request) {
|
|
|
+ HttpServletRequest request) {
|
|
|
return searchService.getBrands(keyword, page, size);
|
|
|
}
|
|
|
|
|
|
- @RequestMapping("/componentIds")
|
|
|
+ @RequestMapping("/componentIds/old")
|
|
|
@ResponseBody
|
|
|
- public Map<String, Object> searchComponentIds(String keyword, Integer page, Integer size, JSONObject filters,
|
|
|
- HttpServletRequest request) {
|
|
|
+ public Map<String, Object> searchComponentIds(String keyword, Integer page, Integer size, String filters,
|
|
|
+ HttpServletRequest request) {
|
|
|
PageParams pageParams = new PageParams();
|
|
|
if (page != null) {
|
|
|
pageParams.setPage(page);
|
|
|
@@ -99,8 +99,9 @@ public class SearchController {
|
|
|
pageParams.setSize(size);
|
|
|
}
|
|
|
Map<FilterField, Object> filtersMap = new HashMap<>();
|
|
|
- if (filters != null) {
|
|
|
- Set<Entry<String, Object>> entrySet = filters.entrySet();
|
|
|
+ if (!StringUtils.isEmpty(filters)) {
|
|
|
+ JSONObject json = JSONObject.parseObject(filters);
|
|
|
+ Set<Entry<String, Object>> entrySet = json.entrySet();
|
|
|
for (Entry<String, Object> entry : entrySet) {
|
|
|
FilterField field = FilterField.valueOf(entry.getKey().toUpperCase());
|
|
|
filtersMap.put(field, entry.getValue());
|
|
|
@@ -110,27 +111,46 @@ public class SearchController {
|
|
|
return searchService.getComponentIds(keyword, pageParams);
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping("/componentIds")
|
|
|
+ @ResponseBody
|
|
|
+ public Map<String, Object> searchComponentIds(String keyword, String params, HttpServletRequest request) {
|
|
|
+ PageParams pageParams = params==null?null:JSONObject.parseObject(params, PageParams.class);
|
|
|
+ return searchService.getComponentIds(keyword, pageParams);
|
|
|
+ }
|
|
|
+
|
|
|
@Autowired
|
|
|
private ComponentDao componentDao;
|
|
|
|
|
|
- @RequestMapping("/components")
|
|
|
+ @RequestMapping("/components/old")
|
|
|
@ResponseBody
|
|
|
- public List<Component> searchComponents(String keyword, Integer page, Integer size, JSONObject filters,
|
|
|
- HttpServletRequest request) {
|
|
|
+ public List<Component> searchComponents(String keyword, Integer page, Integer size, String filters,
|
|
|
+ HttpServletRequest request) {
|
|
|
@SuppressWarnings("unchecked")
|
|
|
List<Long> ids = (List<Long>) searchComponentIds(keyword, page, size, filters, request).get("componentIds");
|
|
|
- if (CollectionUtils.isEmpty(ids)) {
|
|
|
- return new ArrayList<Component>();
|
|
|
- }
|
|
|
-
|
|
|
- Long[] idsLong = new Long[ids.size()];
|
|
|
- int i = 0;
|
|
|
- for (Long id : ids) {
|
|
|
- idsLong[i++] = id;
|
|
|
- }
|
|
|
- return componentDao.findAll(ids);
|
|
|
+ return findComponents(ids);
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping("/components")
|
|
|
+ @ResponseBody
|
|
|
+ public List<Component> searchComponents(String keyword, String params, HttpServletRequest request) {
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ List<Long> ids = (List<Long>) searchComponentIds(keyword, params, request).get("componentIds");
|
|
|
+ return findComponents(ids);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Component> findComponents(List<Long> ids){
|
|
|
+ if (CollectionUtils.isEmpty(ids)) {
|
|
|
+ return new ArrayList<Component>();
|
|
|
+ }
|
|
|
+
|
|
|
+ Long[] idsLong = new Long[ids.size()];
|
|
|
+ int i = 0;
|
|
|
+ for (Long id : ids) {
|
|
|
+ idsLong[i++] = id;
|
|
|
+ }
|
|
|
+ return componentDao.findAll(ids);
|
|
|
+ }
|
|
|
+
|
|
|
@RequestMapping("/kindIdsByComponent")
|
|
|
@ResponseBody
|
|
|
public Set<Long> searchKindIdsBySearchComponent(String keyword, String brandId, HttpServletRequest request) {
|
|
|
@@ -140,7 +160,7 @@ public class SearchController {
|
|
|
@RequestMapping("/kindsByComponent")
|
|
|
@ResponseBody
|
|
|
public List<Map<String, Object>> searchKindsBySearchComponent(String keyword, String brandId,
|
|
|
- HttpServletRequest request) {
|
|
|
+ HttpServletRequest request) {
|
|
|
return searchService.getKindsBySearchComponent(keyword, brandId);
|
|
|
}
|
|
|
|
|
|
@@ -153,7 +173,7 @@ public class SearchController {
|
|
|
@RequestMapping("/brandsByComponent")
|
|
|
@ResponseBody
|
|
|
public List<Map<String, Object>> searchBrandsBySearchComponent(String keyword, String kindId,
|
|
|
- HttpServletRequest request) {
|
|
|
+ HttpServletRequest request) {
|
|
|
return searchService.getBrandsBySearchComponent(keyword, kindId);
|
|
|
}
|
|
|
|
|
|
@@ -166,7 +186,7 @@ public class SearchController {
|
|
|
@RequestMapping("/similarComponents/{componentCode}")
|
|
|
@ResponseBody
|
|
|
public List<Map<String, Object>> getSimilarComponents(@PathVariable String componentCode,
|
|
|
- HttpServletRequest request) {
|
|
|
+ HttpServletRequest request) {
|
|
|
return searchService.getSimilarComponents(componentCode);
|
|
|
}
|
|
|
|
|
|
@@ -197,14 +217,14 @@ public class SearchController {
|
|
|
@RequestMapping("/similarPropertyValues")
|
|
|
@ResponseBody
|
|
|
public List<Map<String, String>> getSimilarPropertyValues(Long kindId, Long propertyId, String keyword, Long topNum,
|
|
|
- HttpServletRequest request) {
|
|
|
+ HttpServletRequest request) {
|
|
|
return searchService.getSimilarPropertyValues(kindId, propertyId, keyword, topNum);
|
|
|
}
|
|
|
|
|
|
- @RequestMapping("/goodsIds")
|
|
|
+ @RequestMapping("/goodsIds/old")
|
|
|
@ResponseBody
|
|
|
- public Map<String, Object> getGoodsIds(String keyword, Integer page, Integer size, JSONObject filters, String sort,
|
|
|
- HttpServletRequest request) {
|
|
|
+ public Map<String, Object> getGoodsIds(String keyword, Integer page, Integer size, String filters, String sort,
|
|
|
+ HttpServletRequest request) {
|
|
|
PageParams pageParams = new PageParams();
|
|
|
if (page != null) {
|
|
|
pageParams.setPage(page);
|
|
|
@@ -212,7 +232,10 @@ public class SearchController {
|
|
|
if (size != null) {
|
|
|
pageParams.setSize(size);
|
|
|
}
|
|
|
- Map<FilterField, Object> filtersMap = parseFilters(filters);
|
|
|
+ Map<FilterField, Object> filtersMap = new HashMap<>();
|
|
|
+ if (!StringUtils.isEmpty(filters)) {
|
|
|
+ filtersMap=parseFilters(JSONObject.parseObject(filters));
|
|
|
+ }
|
|
|
pageParams.setFilters(filtersMap);
|
|
|
if (!StringUtils.isEmpty(sort)) {
|
|
|
JSONArray jsonArray = JSONObject.parseArray(sort);
|
|
|
@@ -229,43 +252,81 @@ public class SearchController {
|
|
|
}
|
|
|
pageParams.setSort(sorts);
|
|
|
}
|
|
|
+ System.out.println(JSONObject.toJSONString(pageParams));
|
|
|
+ System.out.println(pageParams);
|
|
|
+ String json="{\"filters\":{\"GOODS_MINPRICEUSD\":\"0\",\"GOODS_KINDID\":[\"401\",\"23\"],\"GOODS_MAXPRICERMB\":\"10\",\"GOODS_BRANDID\":[\"45\"],\"GOODS_MAXPRICEUSD\":\"10\",\"GOODS_STORE_TYPE\":[\"DISTRIBUTION\"],\"GOODS_MINPRICERMB\":\"0\",\"GOODS_CRNAME\":[\"RMB-USD\"]},\"page\":1,\"size\":8,\"sort\":[{\"field\":\"GO_RESERVE\",\"reverse\":true},{\"field\":\"GO_MINPRICERMB\",\"reverse\":true},{\"field\":\"GO_MINPRICEUSD\",\"reverse\":true},{\"field\":\"GO_SEARCH\",\"reverse\":false}]}";
|
|
|
+ PageParams params = JSONObject.parseObject(json, PageParams.class);
|
|
|
+ System.out.println(params);
|
|
|
return searchService.getGoodsIds(keyword, pageParams);
|
|
|
}
|
|
|
|
|
|
- @RequestMapping("/collectBySearchGoods")
|
|
|
+ public Map<FilterField, Object> parseFilters(JSONObject json){
|
|
|
+ Map<FilterField, Object> filters = new HashMap<>();
|
|
|
+ if(json!=null){
|
|
|
+ Set<Entry<String, Object>> entrySet = json.entrySet();
|
|
|
+ for (Entry<String, Object> entry : entrySet) {
|
|
|
+ FilterField field = FilterField.valueOf(entry.getKey());
|
|
|
+ String value = entry.getValue().toString();
|
|
|
+ switch (field) {
|
|
|
+ case GOODS_KINDID:
|
|
|
+ case GOODS_BRANDID:
|
|
|
+ case GOODS_STORE_TYPE:
|
|
|
+ case GOODS_CRNAME:
|
|
|
+ String[] strs = value.split(",");
|
|
|
+ List<Object> values = new ArrayList<>();
|
|
|
+ for (String str : strs) {
|
|
|
+ values.add(str);
|
|
|
+ }
|
|
|
+ filters.put(field, values);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ filters.put(field, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return filters;
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping("/goodsIds")
|
|
|
+ @ResponseBody
|
|
|
+ public Map<String, Object> getGoodsIds(String keyword, String params, HttpServletRequest request) {
|
|
|
+ PageParams pageParams = params==null?null:JSONObject.parseObject(params, PageParams.class);
|
|
|
+ return searchService.getGoodsIds(keyword, pageParams);
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping("/collectBySearchGoods/old")
|
|
|
@ResponseBody
|
|
|
- public List<Map<String, Object>> collectBySearchGoods(String keyword, String collectedField, JSONObject filters,
|
|
|
- HttpServletRequest request) {
|
|
|
- Map<FilterField, Object> filtersMap = parseFilters(filters);
|
|
|
+ public List<Map<String, Object>> collectBySearchGoodsOld(String keyword, String collectedField, String filters,
|
|
|
+ HttpServletRequest request) {
|
|
|
+ Map<FilterField, Object> filtersMap = new HashMap<>();
|
|
|
+ if (!StringUtils.isEmpty(filters)) {
|
|
|
+ filtersMap=parseFilters(JSONObject.parseObject(filters));
|
|
|
+ }
|
|
|
return searchService.collectBySearchGoods(keyword, CollectField.valueOf(collectedField.toUpperCase()),
|
|
|
filtersMap);
|
|
|
}
|
|
|
|
|
|
- public Map<FilterField, Object> parseFilters(JSONObject json){
|
|
|
- Map<FilterField, Object> filters = new HashMap<>();
|
|
|
- if(json != null){
|
|
|
- Set<Entry<String, Object>> entrySet = json.entrySet();
|
|
|
- for (Entry<String, Object> entry : entrySet) {
|
|
|
- FilterField field = FilterField.valueOf(entry.getKey());
|
|
|
- String value = entry.getValue().toString();
|
|
|
- switch (field) {
|
|
|
- case GOODS_KINDID:
|
|
|
- case GOODS_BRANDID:
|
|
|
- case GOODS_STORE_TYPE:
|
|
|
- case GOODS_CRNAME:
|
|
|
- String[] strs = value.split(",");
|
|
|
- List<Object> values = new ArrayList<>();
|
|
|
- for (String str : strs) {
|
|
|
- values.add(str);
|
|
|
- }
|
|
|
- filters.put(field, values);
|
|
|
- break;
|
|
|
- default:
|
|
|
- filters.put(field, value);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return filters;
|
|
|
+ @RequestMapping("/collectBySearchGoods")
|
|
|
+ @ResponseBody
|
|
|
+ public List<Map<String, Object>> collectBySearchGoods(String keyword, String collectedField, String filters, HttpServletRequest request) {
|
|
|
+ Map<FilterField, Object> filtersMap = new HashMap<>();
|
|
|
+ if(!StringUtils.isEmpty(filters)){
|
|
|
+ JSONObject json = JSONObject.parseObject(filters);
|
|
|
+ Set<Entry<String, Object>> entrySet = json.entrySet();
|
|
|
+ for (Entry<String, Object> entry : entrySet) {
|
|
|
+ FilterField field = FilterField.valueOf(entry.getKey());
|
|
|
+ switch (field) {
|
|
|
+ case GOODS_KINDID:
|
|
|
+ case GOODS_BRANDID:
|
|
|
+ case GOODS_STORE_TYPE:
|
|
|
+ case GOODS_CRNAME:
|
|
|
+ filtersMap.put(field, entry.getValue());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return searchService.collectBySearchGoods(keyword, CollectField.valueOf(collectedField.toUpperCase()),
|
|
|
+ filtersMap);
|
|
|
}
|
|
|
|
|
|
@RequestMapping("/kind/{id}")
|
|
|
@@ -295,7 +356,7 @@ public class SearchController {
|
|
|
@RequestMapping("/objects")
|
|
|
@ResponseBody
|
|
|
public SPage<Object> getObjects(@RequestParam(required = true) String tableName, String keyword, String field,
|
|
|
- Boolean tokenized, Integer page, Integer size, HttpServletRequest request) {
|
|
|
+ Boolean tokenized, Integer page, Integer size, HttpServletRequest request) {
|
|
|
return searchService.getObjects(tableName.toLowerCase(), keyword, field, tokenized, page == null ? 0 : page,
|
|
|
size == null ? 0 : size);
|
|
|
}
|