添加第三方接口
This commit is contained in:
parent
ef985589d5
commit
4e15ae287b
|
|
@ -7,16 +7,22 @@ import com.bonus.business.domain.ImageRecognize;
|
|||
import com.bonus.file.config.SysFile;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.client.methods.HttpUriRequest;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class AlgorithmService {
|
||||
|
||||
public static final String setContentType="application/json";
|
||||
/**
|
||||
* 请求路径
|
||||
*/
|
||||
|
|
@ -33,41 +39,64 @@ public class AlgorithmService {
|
|||
//图片进行标注
|
||||
public List<ImageRecognize> getImageList(List<SysFile> fileList, String operaName) {
|
||||
List<ImageRecognize> list=new ArrayList<>();
|
||||
Map<String,SysFile> entityMaps=new HashMap<>();
|
||||
try{
|
||||
/**
|
||||
* 数据存储
|
||||
*/
|
||||
List<String> imageList=new ArrayList<>();
|
||||
for (SysFile sysFile : fileList) {
|
||||
imageList.add(sysFile.getUrl());
|
||||
entityMaps.put(sysFile.getUrl(),sysFile);
|
||||
}
|
||||
List<String> types= Arrays.asList(operaName.split(","));
|
||||
CloseableHttpClient client = HttpClients.createDefault();
|
||||
HttpPost httpPost = new HttpPost(URL+IMAGE_TYPE);
|
||||
Map<String ,Object> map=new HashMap<>();
|
||||
map.put("images",imageList);
|
||||
map.put("types",types);
|
||||
map.put("return_image",true);
|
||||
String json= JSON.toJSONString(map);
|
||||
String responseBody = client.execute(httpPost, httpResponse -> EntityUtils.toString(httpResponse.getEntity()));
|
||||
log.info("数据回调返回-->");
|
||||
log.info(responseBody);
|
||||
StringEntity entity = new StringEntity(json);
|
||||
httpPost.setEntity(entity);
|
||||
httpPost.setHeader("Accept", "application/json");
|
||||
httpPost.setHeader("Content-type", "application/json");
|
||||
JSONObject jsonObject= javaHttpPost(IMAGE_TYPE,json);
|
||||
String code=jsonObject.getString("code");
|
||||
if(code.equals("200")){
|
||||
JSONArray array=jsonObject.getJSONArray("data");
|
||||
for (int i=0;i<array.size();i++){
|
||||
ImageRecognize vo = new ImageRecognize();
|
||||
//获取路径及采集数据
|
||||
String path=array.getJSONObject(i).getString("image");
|
||||
String type=array.getJSONObject(i).getString("type");
|
||||
String imagePath=array.getJSONObject(i).getString("annotated_image_path");
|
||||
if(type==null || type.isEmpty()){
|
||||
//获取到图片地址
|
||||
SysFile sysFile=entityMaps.get(path);
|
||||
vo.setType("1");
|
||||
//vo.setContentImage("无标记");
|
||||
vo.setImageId(sysFile.getId());
|
||||
vo.setImagePath(path);
|
||||
list.add(vo);
|
||||
}else{
|
||||
//获取到图片地址
|
||||
SysFile sysFile=entityMaps.get(path);
|
||||
vo.setType("1");
|
||||
vo.setContentImage(type);
|
||||
vo.setImageId(sysFile.getId());
|
||||
vo.setImagePath(imagePath);
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}else{
|
||||
//调用失败
|
||||
for (SysFile sysFile : fileList) {
|
||||
ImageRecognize vo = new ImageRecognize();
|
||||
// vo.setContentImage("无标记");
|
||||
vo.setImageId(sysFile.getId());
|
||||
vo.setType("1");
|
||||
vo.setImagePath(sysFile.getUrl());
|
||||
list.add(vo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage(),e);
|
||||
}
|
||||
//SHUJU
|
||||
for (SysFile sysFile : fileList) {
|
||||
ImageRecognize vo = new ImageRecognize();
|
||||
sysFile.setType(operaName);
|
||||
vo.setContentImage(operaName);
|
||||
vo.setImageId(sysFile.getId());
|
||||
vo.setType("1");
|
||||
vo.setImagePath(sysFile.getUrl());
|
||||
list.add(vo);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
|
@ -87,18 +116,10 @@ public class AlgorithmService {
|
|||
imageList.add(sysFile.getUrl());
|
||||
entityMaps.put(sysFile.getUrl(),sysFile);
|
||||
}
|
||||
CloseableHttpClient client = HttpClients.createDefault();
|
||||
HttpPost httpPost = new HttpPost(URL+IMAGE_RECOGNIZE);
|
||||
Map<String ,Object> map=new HashMap<>();
|
||||
map.put("images",imageList);
|
||||
String json= JSON.toJSONString(map);
|
||||
|
||||
StringEntity entity = new StringEntity(json);
|
||||
httpPost.setEntity(entity);
|
||||
httpPost.setHeader("Accept", "application/json");
|
||||
httpPost.setHeader("Content-type", "application/json");
|
||||
String responseBody = client.execute(httpPost, httpResponse -> EntityUtils.toString(httpResponse.getEntity()));
|
||||
JSONObject jsonObject=JSON.parseObject(responseBody);
|
||||
JSONObject jsonObject= javaHttpPost(IMAGE_RECOGNIZE,json);
|
||||
String code=jsonObject.getString("code");
|
||||
//接口通了
|
||||
if(code.equals("200")){
|
||||
|
|
@ -111,20 +132,51 @@ public class AlgorithmService {
|
|||
SysFile sysFile=entityMaps.get(path);
|
||||
//综合得分
|
||||
vo.setOverallScore(score);
|
||||
sysFile.setType(operaName);
|
||||
if(score==null){
|
||||
vo.setOverallScore("0");
|
||||
}
|
||||
vo.setType("2");
|
||||
vo.setContentImage(operaName);
|
||||
vo.setImageId(sysFile.getId());
|
||||
vo.setImagePath(sysFile.getUrl());
|
||||
list.add(vo);
|
||||
}
|
||||
}else{
|
||||
// 识别失败
|
||||
for (SysFile sysFile : fileList) {
|
||||
ImageRecognize vo = new ImageRecognize();
|
||||
vo.setOverallScore("0");
|
||||
vo.setType("2");
|
||||
vo.setContentImage(operaName);
|
||||
vo.setImageId(sysFile.getId());
|
||||
vo.setImagePath(sysFile.getUrl());
|
||||
list.add(vo);
|
||||
}
|
||||
}
|
||||
log.info("图像评估识别接口调用范湖-->");
|
||||
log.info(responseBody);
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage(),e);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//调用第三方接口
|
||||
public JSONObject javaHttpPost(String path, String json) throws IOException {
|
||||
CloseableHttpClient client = HttpClients.createDefault();
|
||||
HttpPost httpPost = new HttpPost(URL+path);
|
||||
StringEntity entity = new StringEntity(json, StandardCharsets.UTF_8);
|
||||
entity.setContentType(setContentType);
|
||||
httpPost.setEntity(entity);
|
||||
httpPost.setHeader("Accept", setContentType);
|
||||
httpPost.setHeader("Content-type", setContentType);
|
||||
String responseBody = client.execute(httpPost, httpResponse -> EntityUtils.toString(httpResponse.getEntity()));
|
||||
log.info("接口调用返回-->");
|
||||
log.info(responseBody);
|
||||
return JSON.parseObject(responseBody);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,7 +63,8 @@ public class ImageCaptionServiceImpl implements ImageCaptionService {
|
|||
if(StringUtils.isEmpty(vo.getParam())){
|
||||
return AjaxResult.error("请至少选择一个算法!");
|
||||
}
|
||||
String userId= SecurityUtils.getUserId().toString();
|
||||
String userId= "1";
|
||||
// String userId= SecurityUtils.getUserId().toString();
|
||||
String operaName=vo.getParam();
|
||||
//操作日期
|
||||
List<SysFile> fileList=new ArrayList<>();
|
||||
|
|
@ -177,7 +178,7 @@ public class ImageCaptionServiceImpl implements ImageCaptionService {
|
|||
// 批量操作的数据容器
|
||||
for (ImageRecognize imageRecognize : list) {
|
||||
// 类型判断与计数,使用工具类确保空字符串也被视为无类型
|
||||
if (StringUtils.isBlank(imageRecognize.getType())) {
|
||||
if (StringUtils.isBlank(imageRecognize.getContentImage()) || "无标记".equals(imageRecognize.getContentImage())) {
|
||||
untypedCount++;
|
||||
} else {
|
||||
typedCount++;
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="id!=null and id!=''">
|
||||
and tuo.id=#{id}
|
||||
</if>
|
||||
ORDER BY tuo.oper_time desc
|
||||
</select>
|
||||
|
||||
<!--依据操作记录查询查询详情-->
|
||||
|
|
|
|||
Reference in New Issue