Authored by unknown

提供一个按SKN查询的接口

package com.yoho.search.restapi;
package com.yoho.search.restapi.scene;
import com.alibaba.fastjson.JSONObject;
import com.yoho.search.models.SearchApiResult;
... ... @@ -17,38 +17,54 @@ import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.Map;
/**
* Created by wangnan on 2017/7/28.
*/
@Controller
public class SknImageVectorsController {
private static final Logger logger = LoggerFactory.getLogger(SknImageVectorsController.class);
private static final String VECTORS_32_KEY = "vectors_32";
private static final String VECTORS_128_KEY = "vectors_128";
@Autowired
private ISknImageVectorsService sknImageVectorsService;
@RequestMapping(method = RequestMethod.POST, value = "/searchSknByPhoto")
@ResponseBody
public SearchApiResult searchSknByPhoto(@RequestBody JSONObject jsonObject) {
try {
String vectors_32 = jsonObject.get(VECTORS_32_KEY)==null?null:jsonObject.get(VECTORS_32_KEY).toString();
String vectors_128 = jsonObject.get(VECTORS_128_KEY)==null?null:jsonObject.get(VECTORS_128_KEY).toString();
if (StringUtils.isBlank(vectors_32)||StringUtils.isBlank(vectors_128)) {
return new SearchApiResult().setCode(400).setMessage("vectors_32或vectors_128不能为空");
}
logger.warn("vectors_32 is [{}],vectors_128 is[{}]", vectors_32, vectors_128);
Map<String, String> paramMap = new HashMap<>();
paramMap.put(VECTORS_32_KEY, vectors_32);
paramMap.put(VECTORS_128_KEY, vectors_128);
paramMap.put("viewNum", jsonObject.get("viewNum")==null?"20":jsonObject.get("viewNum").toString());
return sknImageVectorsService.searchSknByPhoto(paramMap);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return new SearchApiResult().setCode(400).setMessage("服务异常");
}
}
public class PhotoSceneController {
private static final Logger logger = LoggerFactory.getLogger(PhotoSceneController.class);
private static final String VECTORS_32_KEY = "vectors_32";
private static final String VECTORS_128_KEY = "vectors_128";
private static final String PRODUCT_SKN = "product_skn";
@Autowired
private ISknImageVectorsService sknImageVectorsService;
@RequestMapping(method = RequestMethod.POST, value = "/searchSknByPhoto")
@ResponseBody
public SearchApiResult searchSknByPhoto(@RequestBody JSONObject jsonObject) {
try {
String vectors_32 = jsonObject.get(VECTORS_32_KEY) == null ? null : jsonObject.get(VECTORS_32_KEY).toString();
String vectors_128 = jsonObject.get(VECTORS_128_KEY) == null ? null : jsonObject.get(VECTORS_128_KEY).toString();
if (StringUtils.isBlank(vectors_32) || StringUtils.isBlank(vectors_128)) {
return new SearchApiResult().setCode(400).setMessage("vectors_32或vectors_128不能为空");
}
logger.warn("vectors_32 is [{}],vectors_128 is[{}]", vectors_32, vectors_128);
Map<String, String> paramMap = new HashMap<>();
paramMap.put(VECTORS_32_KEY, vectors_32);
paramMap.put(VECTORS_128_KEY, vectors_128);
paramMap.put("viewNum", jsonObject.get("viewNum") == null ? "20" : jsonObject.get("viewNum").toString());
return sknImageVectorsService.searchSknByPhoto(paramMap);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return new SearchApiResult().setCode(400).setMessage("服务异常");
}
}
@RequestMapping(method = RequestMethod.POST, value = "/searchListByPhotoSkns")
@ResponseBody
public SearchApiResult searchListBySkns(@RequestBody JSONObject jsonObject) {
try {
String product_skn = jsonObject.get(PRODUCT_SKN) == null ? null : jsonObject.get(PRODUCT_SKN).toString();
if (StringUtils.isBlank(product_skn)) {
return new SearchApiResult().setCode(400).setMessage("product_skn不能为空");
}
Map<String, String> paramMap = new HashMap<>();
paramMap.put("product_skn", product_skn);
paramMap.put("viewNum", jsonObject.get("viewNum") == null ? "20" : jsonObject.get("viewNum").toString());
return sknImageVectorsService.searchListByPhotoSkns(paramMap);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return new SearchApiResult().setCode(400).setMessage("服务异常");
}
}
}
... ...
... ... @@ -9,8 +9,16 @@ import java.util.Map;
*/
public interface ISknImageVectorsService {
/**
* 图片搜索返回商品列表
*/
public SearchApiResult searchSknByPhoto(Map<String, String> paramMap);
/**
* 图片搜索返回商品列表
*/
public SearchApiResult searchSknByPhoto(Map<String, String> paramMap);
/**
* 根据skn返回列表
*
* @param paramMap
* @return
*/
public SearchApiResult searchListByPhotoSkns(Map<String, String> paramMap);
}
... ...
... ... @@ -260,4 +260,28 @@ public class SknImageVectorsServiceImpl implements ISknImageVectorsService, Appl
return skns;
}
@Override
public SearchApiResult searchListByPhotoSkns(Map<String, String> paramMap) {
try {
// 1.参数获取
String param_product_skn = paramMap.get("product_skn");
//Integer viewNum = MapUtils.getInteger(paramMap, "viewNum", 20);
Integer viewNum = 20;
List<Integer> productSkns = new ArrayList<Integer>();
for (String productSkn : param_product_skn.split(",")) {
try {
productSkns.add(Integer.valueOf(productSkn));
} catch (Exception e) {
}
}
// 2、截取前viewNum个商品返回
SearchApiResult searchApiResult = queryProductListWithSort(productSkns, viewNum);
return searchApiResult;
} catch (Exception e) {
publisher.publishEvent(new SearchEvent(EventReportEnum.SEARCHCONTROLLER_SEARCHSKNBYPHOTO.getEventName(), EventReportEnum.SEARCHCONTROLLER_SEARCHSKNBYPHOTO
.getFunctionName(), EventReportEnum.SEARCHCONTROLLER_SEARCHSKNBYPHOTO.getMoudleName(), "exception", IgnoreSomeException.filterSomeException(e), null));
return SearchApiResultUtils.errorSearchApiResult("searchListByPhotoSkns", paramMap, e);
}
}
}
... ...