|
|
@@ -89,7 +89,7 @@ public class SearchController {
|
|
|
|
|
|
@RequestMapping("/componentIds")
|
|
|
@ResponseBody
|
|
|
- public Map<String, Object> searchComponentIds(String keyword, Integer page, Integer size, String filters,
|
|
|
+ public Map<String, Object> searchComponentIds(String keyword, Integer page, Integer size, JSONObject filters,
|
|
|
HttpServletRequest request) {
|
|
|
PageParams pageParams = new PageParams();
|
|
|
if (page != null) {
|
|
|
@@ -99,9 +99,8 @@ public class SearchController {
|
|
|
pageParams.setSize(size);
|
|
|
}
|
|
|
Map<FilterField, Object> filtersMap = new HashMap<>();
|
|
|
- if (!StringUtils.isEmpty(filters)) {
|
|
|
- JSONObject json = JSONObject.parseObject(filters);
|
|
|
- Set<Entry<String, Object>> entrySet = json.entrySet();
|
|
|
+ if (filters != null) {
|
|
|
+ Set<Entry<String, Object>> entrySet = filters.entrySet();
|
|
|
for (Entry<String, Object> entry : entrySet) {
|
|
|
FilterField field = FilterField.valueOf(entry.getKey().toUpperCase());
|
|
|
filtersMap.put(field, entry.getValue());
|
|
|
@@ -116,7 +115,7 @@ public class SearchController {
|
|
|
|
|
|
@RequestMapping("/components")
|
|
|
@ResponseBody
|
|
|
- public List<Component> searchComponents(String keyword, Integer page, Integer size, String filters,
|
|
|
+ public List<Component> searchComponents(String keyword, Integer page, Integer size, JSONObject filters,
|
|
|
HttpServletRequest request) {
|
|
|
@SuppressWarnings("unchecked")
|
|
|
List<Long> ids = (List<Long>) searchComponentIds(keyword, page, size, filters, request).get("componentIds");
|
|
|
@@ -204,7 +203,7 @@ public class SearchController {
|
|
|
|
|
|
@RequestMapping("/goodsIds")
|
|
|
@ResponseBody
|
|
|
- public Map<String, Object> getGoodsIds(String keyword, Integer page, Integer size, String filters, String sort,
|
|
|
+ public Map<String, Object> getGoodsIds(String keyword, Integer page, Integer size, JSONObject filters, String sort,
|
|
|
HttpServletRequest request) {
|
|
|
PageParams pageParams = new PageParams();
|
|
|
if (page != null) {
|
|
|
@@ -213,30 +212,7 @@ public class SearchController {
|
|
|
if (size != null) {
|
|
|
pageParams.setSize(size);
|
|
|
}
|
|
|
- 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());
|
|
|
- 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);
|
|
|
- }
|
|
|
- filtersMap.put(field, values);
|
|
|
- break;
|
|
|
- default:
|
|
|
- filtersMap.put(field, value);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ Map<FilterField, Object> filtersMap = parseFilters(filters);
|
|
|
pageParams.setFilters(filtersMap);
|
|
|
if (!StringUtils.isEmpty(sort)) {
|
|
|
JSONArray jsonArray = JSONObject.parseArray(sort);
|
|
|
@@ -258,34 +234,38 @@ public class SearchController {
|
|
|
|
|
|
@RequestMapping("/collectBySearchGoods")
|
|
|
@ResponseBody
|
|
|
- public List<Map<String, Object>> collectBySearchGoods(String keyword, String collectedField, String filters,
|
|
|
+ public List<Map<String, Object>> collectBySearchGoods(String keyword, String collectedField, JSONObject filters,
|
|
|
HttpServletRequest request) {
|
|
|
- Map<FilterField, Object> filtersMap = new HashMap<>();
|
|
|
- if (!StringUtils.isEmpty(filters)) {
|
|
|
- JSONObject json = JSONObject.parseObject(filters);
|
|
|
+ Map<FilterField, Object> filtersMap = parseFilters(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);
|
|
|
- }
|
|
|
- filtersMap.put(field, values);
|
|
|
- break;
|
|
|
- default:
|
|
|
- filtersMap.put(field, value);
|
|
|
+ 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 searchService.collectBySearchGoods(keyword, CollectField.valueOf(collectedField.toUpperCase()),
|
|
|
- filtersMap);
|
|
|
+ return filters;
|
|
|
}
|
|
|
|
|
|
@RequestMapping("/kind/{id}")
|