提交修改
This commit is contained in:
parent
234f5f78df
commit
f0ab7b6300
@ -39,7 +39,6 @@ public class ARecognizeQrCodeHandle extends AlibabaBaseHandle<ARecognizeQrCodeRe
|
||||
task.setImageURL(aRecognizeQrCodeRequest.getImageUrl());
|
||||
tasks.add(task);
|
||||
|
||||
|
||||
// 复制代码运行请自行打印 API 的返回值
|
||||
return client.recognizeQrCodeWithOptions(request, runtime);
|
||||
}
|
||||
|
||||
@ -41,11 +41,9 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
@NotIntercept
|
||||
public class RecognizeLicensePlateController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private ARecognizeLicensePlateHandle aRecognizeLicensePlateHandle;
|
||||
|
||||
|
||||
@RequestMapping("/recognize")
|
||||
public R recognize(ARecognizeLicensePlateRequest request) {
|
||||
RecognizeLicensePlateResp resp = new RecognizeLicensePlateResp();
|
||||
|
||||
@ -0,0 +1,55 @@
|
||||
package com.heyu.api.controller.certificate.car;
|
||||
|
||||
|
||||
import com.aliyun.ocr20191230.models.RecognizeTaxiInvoiceResponse;
|
||||
import com.aliyun.ocr20191230.models.RecognizeTaxiInvoiceResponseBody;
|
||||
import com.heyu.api.alibaba.handle.common.text.ARecognizeTaxiInvoiceHandle;
|
||||
import com.heyu.api.alibaba.request.common.text.ARecognizeDrivingLicenseRequest;
|
||||
import com.heyu.api.alibaba.request.common.text.ARecognizeTaxiInvoiceRequest;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.dto.BaseRequest;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/***
|
||||
* https://next.api.aliyun.com/api/ocr/2019-12-30/RecognizeTaxiInvoice?tab=DEMO&lang=JAVA
|
||||
*
|
||||
*出租车发票识别 RecognizeTaxiInvoice
|
||||
*出租车发票识别能力可以准确识别出全国各大城市出租车发票在图像中的位置,支持出租车发票结构化识别,输出发票号码、代码、车号、日期、时间、金额,共 6 个关键字段信息。
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/taxi/invoice")
|
||||
@NotIntercept
|
||||
public class RecognizeTaxiInvoiceController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private ARecognizeTaxiInvoiceHandle arRecognizeTaxiInvoiceHandle;
|
||||
|
||||
|
||||
@RequestMapping("/recognize")
|
||||
public R recognize(ARecognizeTaxiInvoiceRequest request) {
|
||||
ApiR<RecognizeTaxiInvoiceResponse> aR = arRecognizeTaxiInvoiceHandle.handle(request);
|
||||
|
||||
if(aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode()) ){
|
||||
RecognizeTaxiInvoiceResponse recognizeTaxiInvoiceResponse = aR.getData();
|
||||
|
||||
RecognizeTaxiInvoiceResponseBody responseBody = recognizeTaxiInvoiceResponse.getBody();
|
||||
RecognizeTaxiInvoiceResponseBody.RecognizeTaxiInvoiceResponseBodyData responseBodyData = responseBody.getData();
|
||||
|
||||
|
||||
}
|
||||
|
||||
return R.error();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
package com.heyu.api.controller.certificate.car;
|
||||
|
||||
|
||||
import com.aliyun.ocr20191230.models.RecognizeTrainTicketResponse;
|
||||
import com.aliyun.ocr20191230.models.RecognizeTrainTicketResponseBody;
|
||||
import com.heyu.api.alibaba.handle.common.text.ARecognizeTrainTicketHandle;
|
||||
import com.heyu.api.alibaba.request.common.text.ARecognizeTaxiInvoiceRequest;
|
||||
import com.heyu.api.alibaba.request.common.text.ARecognizeTrainTicketRequest;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.controller.resp.car.RecognizeTrainTicketResp;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/***
|
||||
* https://next.api.aliyun.com/api/ocr/2019-12-30/RecognizeTrainTicket?tab=DOC&lang=JAVA
|
||||
*
|
||||
* 火车票识别
|
||||
*
|
||||
* RecognizeTrainTicket
|
||||
*
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/train/ticket")
|
||||
@NotIntercept
|
||||
public class RecognizeTrainTicketController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private ARecognizeTrainTicketHandle aRecognizeTrainTicketHandle;
|
||||
|
||||
|
||||
@RequestMapping("/recognize")
|
||||
public R recognize(ARecognizeTrainTicketRequest request) {
|
||||
ApiR<RecognizeTrainTicketResponse> aR = aRecognizeTrainTicketHandle.handle(request);
|
||||
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
|
||||
RecognizeTrainTicketResponse recognizeTrainTicketResponse = aR.getData();
|
||||
|
||||
RecognizeTrainTicketResponseBody responseBody = recognizeTrainTicketResponse.getBody();
|
||||
RecognizeTrainTicketResponseBody.RecognizeTrainTicketResponseBodyData responseBodyData = responseBody.getData();
|
||||
|
||||
RecognizeTrainTicketResp resp = new RecognizeTrainTicketResp();
|
||||
resp.setPrice(responseBodyData.getPrice());
|
||||
resp.setDestination(responseBodyData.getDestination());
|
||||
resp.setDepartureStation(responseBodyData.getDepartureStation());
|
||||
resp.setDate(responseBodyData.getDate());
|
||||
resp.setNumber(responseBodyData.getNumber());
|
||||
resp.setSeat(responseBodyData.getSeat());
|
||||
resp.setName(responseBodyData.getName());
|
||||
resp.setLevel(responseBodyData.getLevel());
|
||||
return R.ok().setData(resp);
|
||||
}
|
||||
return R.error();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
package com.heyu.api.controller.certificate.qrcode;
|
||||
|
||||
|
||||
import com.aliyun.ocr20191230.models.RecognizeQrCodeResponse;
|
||||
import com.aliyun.ocr20191230.models.RecognizeQrCodeResponseBody;
|
||||
import com.heyu.api.alibaba.handle.common.text.ARecognizeQrCodeHandle;
|
||||
import com.heyu.api.alibaba.request.common.text.ARecognizeQrCodeRequest;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.controller.resp.qrcode.RecognizeQrCodeResp;
|
||||
import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.data.mongo.ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/***
|
||||
* https://next.api.aliyun.com/api/ocr/2019-12-30/RecognizeQrCode?tab=DEMO&lang=JAVA
|
||||
*
|
||||
*
|
||||
* 二维码识别
|
||||
*
|
||||
* RecognizeQrCode
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/qrcode")
|
||||
|
||||
@NotIntercept
|
||||
public class RecognizeQrCodeController extends BaseController {
|
||||
@Autowired
|
||||
private ARecognizeQrCodeHandle arecognizeQrCodeHandle;
|
||||
|
||||
@RequestMapping("/recognize")
|
||||
@CacheResult
|
||||
public R recognize(ARecognizeQrCodeRequest request) {
|
||||
RecognizeQrCodeResp resp = new RecognizeQrCodeResp();
|
||||
ApiR<RecognizeQrCodeResponse> aR = arecognizeQrCodeHandle.handle(request);
|
||||
|
||||
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
|
||||
RecognizeQrCodeResponse response = aR.getData();
|
||||
RecognizeQrCodeResponseBody responseBody = response.getBody();
|
||||
RecognizeQrCodeResponseBody.RecognizeQrCodeResponseBodyData responseBodyData = responseBody.getData();
|
||||
List<RecognizeQrCodeResponseBody.RecognizeQrCodeResponseBodyDataElements> responseBodyDataElements = responseBodyData.getElements();
|
||||
if (CollectionUtils.isNotEmpty(responseBodyDataElements)) {
|
||||
RecognizeQrCodeResponseBody.RecognizeQrCodeResponseBodyDataElements responseBodyDataElements1 = responseBodyDataElements.get(0);
|
||||
|
||||
List<RecognizeQrCodeResponseBody.RecognizeQrCodeResponseBodyDataElementsResults> results = responseBodyDataElements1.getResults();
|
||||
RecognizeQrCodeResponseBody.RecognizeQrCodeResponseBodyDataElementsResults responseBodyDataElementsResults = results.get(0);
|
||||
resp.setQrCodesData(responseBodyDataElementsResults.getQrCodesData());
|
||||
resp.setRate(responseBodyDataElementsResults.getRate());
|
||||
resp.setSuggestion(responseBodyDataElementsResults.getSuggestion());
|
||||
resp.setLabel(responseBodyDataElementsResults.getLabel());
|
||||
return R.ok().setData(resp);
|
||||
}
|
||||
}
|
||||
return R.error();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,4 @@
|
||||
package com.heyu.api.controller.resp.car;
|
||||
|
||||
public class RecognizeTaxiInvoiceResp {
|
||||
}
|
||||
@ -0,0 +1,86 @@
|
||||
package com.heyu.api.controller.resp.car;
|
||||
|
||||
|
||||
import com.aliyun.tea.NameInMap;
|
||||
import com.heyu.api.data.dto.BaseResp;
|
||||
import lombok.Data;
|
||||
|
||||
/***
|
||||
*
|
||||
*
|
||||
* https://next.api.aliyun.com/api/ocr/2019-12-30/RecognizeTrainTicket?useCommon=true
|
||||
* 火车票识别
|
||||
*
|
||||
* RecognizeTrainTicket
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Data
|
||||
public class RecognizeTrainTicketResp extends BaseResp {
|
||||
|
||||
|
||||
/**
|
||||
* 乘车日期时间。
|
||||
*
|
||||
* 示例值:
|
||||
* 2017年08月05日22:09开
|
||||
*/
|
||||
public String date;
|
||||
|
||||
/***
|
||||
* 始发站点。
|
||||
*
|
||||
* 示例值:
|
||||
* 苏州站
|
||||
*/
|
||||
public String departureStation;
|
||||
|
||||
/***
|
||||
* 目的站点。
|
||||
*
|
||||
* 示例值:
|
||||
* 南京南站
|
||||
*/
|
||||
public String destination;
|
||||
|
||||
/**
|
||||
* 座位席别。
|
||||
*
|
||||
* 示例值:
|
||||
* 二等座
|
||||
*/
|
||||
public String level;
|
||||
|
||||
/**
|
||||
* 乘车人姓名。
|
||||
*
|
||||
* 示例值:
|
||||
* 帅帅
|
||||
*/
|
||||
public String name;
|
||||
|
||||
/**
|
||||
* 车次号。
|
||||
*
|
||||
* 示例值:
|
||||
* G7350
|
||||
*/
|
||||
public String number;
|
||||
|
||||
/***
|
||||
* 票价。
|
||||
*
|
||||
* 示例值:
|
||||
* 104.5
|
||||
*/
|
||||
public Float price;
|
||||
|
||||
/***
|
||||
* 座位车厢及座次号。
|
||||
*
|
||||
* 示例值:
|
||||
* 04车13A号
|
||||
*/
|
||||
public String seat;
|
||||
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
package com.heyu.api.controller.resp.qrcode;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/***
|
||||
* https://next.api.aliyun.com/api/ocr/2019-12-30/RecognizeQrCode?tab=DOC&lang=JAVA
|
||||
*
|
||||
* 二维码识别
|
||||
*
|
||||
* RecognizeQrCode
|
||||
*
|
||||
* 二维码识别能力可以识别图像中是否含有二维码信息,输出图像中二维码包含的文本信息(每个二维码对应的 URL 或文本),可支持图像中含有多个二维码识别。
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Data
|
||||
public class RecognizeQrCodeResp {
|
||||
|
||||
|
||||
/***
|
||||
* 建议您执行的操作,取值包括:
|
||||
*
|
||||
* pass:图片正常,无需进行其余操作。
|
||||
*
|
||||
* review:检测结果不确定,需要进行人工审核。
|
||||
*
|
||||
* block:图片违规,建议执行进一步操作(如直接删除或做限制处理)。
|
||||
*
|
||||
* 示例值:
|
||||
* review
|
||||
*/
|
||||
private String suggestion;
|
||||
|
||||
|
||||
/***
|
||||
* 图片中含有二维码时,返回图片中二维码包含的文本信息(每个二维码对应的 URL 或者文本)。
|
||||
*
|
||||
* 说明 不是所有的二维码图片都能识别返回出对应的 URL 或文本。
|
||||
* 当 Suggestion 为review时说明识别到的二维码不含对应的 URL 或文本信息,QrCodesData 不会透出对应信息。
|
||||
* 当 Suggestion 为block时会携带识别到的对应二维码的 URL 或文本信息进行透出。
|
||||
* 示例值:
|
||||
* https://yqh.aliyun.com/live/detail/23798
|
||||
*/
|
||||
private List<String> qrCodesData;
|
||||
|
||||
|
||||
/***
|
||||
* 检测结果的分类,取值包括:
|
||||
*
|
||||
* normal:正常图片。
|
||||
*
|
||||
* qrcode:含二维码的图片。
|
||||
*
|
||||
* programCode:含小程序码的图片。
|
||||
*
|
||||
* 说明 默认不识别小程序码。如果需要识别,请通过钉钉群(23109592)联系我们。
|
||||
* 示例值:
|
||||
* qrcode
|
||||
*/
|
||||
private String label;
|
||||
|
||||
/***
|
||||
* 结果为该分类的概率,取值范围为[0.00-100.00]。值越高,表示属于该分类的概率越大。
|
||||
*
|
||||
* 示例值:
|
||||
* 99.91
|
||||
*/
|
||||
private Float rate;
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user