提交修改

This commit is contained in:
quyixiao 2025-03-14 20:59:59 +08:00
parent 234f5f78df
commit f0ab7b6300
8 changed files with 346 additions and 3 deletions

View File

@ -39,7 +39,6 @@ public class ARecognizeQrCodeHandle extends AlibabaBaseHandle<ARecognizeQrCodeRe
task.setImageURL(aRecognizeQrCodeRequest.getImageUrl());
tasks.add(task);
// 复制代码运行请自行打印 API 的返回值
return client.recognizeQrCodeWithOptions(request, runtime);
}

View File

@ -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();

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -0,0 +1,4 @@
package com.heyu.api.controller.resp.car;
public class RecognizeTaxiInvoiceResp {
}

View File

@ -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日2209开
*/
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;
}

View File

@ -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;
}