|
|
@@ -236,6 +236,25 @@ public class UserFaceServiceImpl implements UserFaceService {
|
|
|
return ResultContent.buildContent(Map.of("items", items));
|
|
|
}
|
|
|
|
|
|
+ @SneakyThrows
|
|
|
+ public ResultContent<String> getMatchesKey(MultipartFile file) {
|
|
|
+ @Cleanup InputStream inputStream = file.getInputStream();
|
|
|
+ HttpResponse<String> response = faceHelper.search(inputStream, 1);
|
|
|
+
|
|
|
+ if (response.statusCode() != 200) {
|
|
|
+ return ResultContent.build(ResultState.Fail, "人脸特征提取失败");
|
|
|
+ }
|
|
|
+ FaceSearchResultModel resultsModel = JsonUtil.toObject(response.body(), FaceSearchResultModel.class);
|
|
|
+ List<FaceSearchResultModel.Item> items = resultsModel.getItems().stream().map(item -> {
|
|
|
+ item.setKey(item.getKey().substring(0, item.getKey().lastIndexOf("_")));
|
|
|
+ return item;
|
|
|
+ }).toList();
|
|
|
+ if (items.isEmpty()) {
|
|
|
+ return ResultContent.build(ResultState.Success, null);
|
|
|
+ }
|
|
|
+ return ResultContent.buildContent(items.get(0).getKey());
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 将 InputStream 转换为 Base64 字符串
|
|
|
*
|