@@ -12,10 +12,6 @@ import javax.validation.constraints.Pattern; | |||
@Setter | |||
public class BusinessLicenseOcrRequest extends AbstractAtsRequest<BusinessLicenseOcrResponse> { | |||
//2-反面、1-正面 | |||
@Pattern(regexp = "[1|2]",message = "图片类型输入错误,应为1:正面,2:反面") | |||
@NotBlank | |||
private String imageType; | |||
//图片地址 | |||
@NotBlank(message = "图片地址不能为空") | |||
private String url; |
@@ -21,7 +21,7 @@ public enum OcrServiceCmd implements SignServiceCommand { | |||
@Override | |||
public SignServiceType getServiceType() { | |||
return AtsServiceType.ANXINSIGN; | |||
return AtsServiceType.OCR; | |||
} | |||
public static OcrServiceCmd fromIfCode(String ifCode) { |
@@ -21,18 +21,25 @@ public class BusinessLicenseOcrManager extends AbstractManager { | |||
if(!StringTools.hasText(req.getUrl())){ | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("请传入图片地址"); | |||
} | |||
if(!StringTools.hasText(req.getImageType())){ | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("请传入图片类型"); | |||
} | |||
return doBusiness(req); | |||
} | |||
public BusinessLicenseOcrResponse doBusiness(BusinessLicenseOcrRequest req) throws ServiceHandleException { | |||
BusinessLicenseOcrResponse res = baiduOcrUsingBase64(req); | |||
logger.info("营业执照识别结果>{}", res); | |||
return res; | |||
try { | |||
URL url = new URL(req.getUrl()); | |||
URL downloadUrl = new URL("http", "100.64.2.113", 9000, url.getPath()); | |||
String compressedImgBase64 = imageCompressManager.getBaiduOcrCompressBase64(downloadUrl.toString()); | |||
BusinessLicenseOcrResponse res = baiduOcr(compressedImgBase64); | |||
res.setImageUrl(url == null ? "" : url.toString()); | |||
logger.info("营业执照识别结果>{}", res); | |||
return res; | |||
} catch (Exception e) { | |||
logger.error("身份证OCR处理失败", e); | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("很抱歉,我们无法识别您的证件,请按规范上传正副页,确保图片清晰、背景简洁(如白墙或桌面),减少证件反光和阴影"); | |||
} | |||
} | |||
public BusinessLicenseOcrResponse baiduOcr(String imgBase64, String imageType) throws ServiceHandleException { | |||
public BusinessLicenseOcrResponse baiduOcr(String imgBase64) throws ServiceHandleException { | |||
try { | |||
long startTime = System.currentTimeMillis(); | |||
BusinessLicenseOcrResponse res = baiduOcrUtil.ocrBusinessLicenseRecognize(imgBase64); | |||
@@ -50,19 +57,4 @@ public class BusinessLicenseOcrManager extends AbstractManager { | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("用户证件识别失败:" + e.getMessage()); | |||
} | |||
} | |||
public BusinessLicenseOcrResponse baiduOcrUsingBase64(BusinessLicenseOcrRequest request) throws ServiceHandleException { | |||
try { | |||
URL url = new URL(request.getUrl()); | |||
URL downloadUrl = new URL("http", "100.64.2.113", 9000, url.getPath()); | |||
String compressedImgBase64 = imageCompressManager.getBaiduOcrCompressBase64(downloadUrl.toString()); | |||
BusinessLicenseOcrResponse res = baiduOcr(compressedImgBase64, request.getImageType()); | |||
res.setImageUrl(url == null ? "" : url.toString()); | |||
return res; | |||
} catch (Exception e) { | |||
logger.error("身份证OCR处理失败", e); | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("很抱歉,我们无法识别您的证件,请按规范上传正副页,确保图片清晰、背景简洁(如白墙或桌面),减少证件反光和阴影"); | |||
} | |||
} | |||
} |
@@ -30,9 +30,19 @@ public class IdCardOcrManager extends AbstractManager{ | |||
} | |||
public IdCardOcrResponse doBusiness(IdCardOcrRequest req) throws ServiceHandleException { | |||
IdCardOcrResponse res = baiduOcrUsingBase64(req); | |||
logger.info("身份证识别结果>{}", res); | |||
return res; | |||
try { | |||
URL url = new URL(req.getUrl()); | |||
URL downloadUrl = new URL("http", "100.64.2.113", 9000, url.getPath()); | |||
String compressedImgBase64 = imageCompressManager.getBaiduOcrCompressBase64(downloadUrl.toString()); | |||
IdCardOcrResponse res = baiduOcr(compressedImgBase64, req.getImageType()); | |||
res.setImageUrl(url == null ? "" : url.toString()); | |||
logger.info("身份证识别结果>{}", res); | |||
return res; | |||
} catch (Exception e) { | |||
logger.error("身份证OCR处理失败", e); | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("很抱歉,我们无法识别您的证件,请按规范上传正副页,确保图片清晰、背景简洁(如白墙或桌面),减少证件反光和阴影"); | |||
} | |||
} | |||
public IdCardOcrResponse baiduOcr(String imgBase64, String imageType) throws ServiceHandleException { | |||
try { | |||
@@ -52,19 +62,4 @@ public class IdCardOcrManager extends AbstractManager{ | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("用户证件识别失败:" + e.getMessage()); | |||
} | |||
} | |||
public IdCardOcrResponse baiduOcrUsingBase64(IdCardOcrRequest request) throws ServiceHandleException { | |||
try { | |||
URL url = new URL(request.getUrl()); | |||
URL downloadUrl = new URL("http", "100.64.2.113", 9000, url.getPath()); | |||
String compressedImgBase64 = imageCompressManager.getBaiduOcrCompressBase64(downloadUrl.toString()); | |||
IdCardOcrResponse res = baiduOcr(compressedImgBase64, request.getImageType()); | |||
res.setImageUrl(url == null ? "" : url.toString()); | |||
return res; | |||
} catch (Exception e) { | |||
logger.error("身份证OCR处理失败", e); | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("很抱歉,我们无法识别您的证件,请按规范上传正副页,确保图片清晰、背景简洁(如白墙或桌面),减少证件反光和阴影"); | |||
} | |||
} | |||
} |
@@ -29,9 +29,19 @@ public class VehicleLicenseOcrManager extends AbstractManager { | |||
} | |||
public VehicleLicenseOcrResponse doBusiness(VehicleLicenseOcrRequest req) throws ServiceHandleException { | |||
VehicleLicenseOcrResponse res = baiduOcrUsingBase64(req); | |||
logger.info("驾驶证识别结果>{}", res); | |||
return res; | |||
try { | |||
URL url = new URL(req.getUrl()); | |||
URL downloadUrl = new URL("http", "100.64.2.113", 9000, url.getPath()); | |||
String compressedImgBase64 = imageCompressManager.getBaiduOcrCompressBase64(downloadUrl.toString()); | |||
VehicleLicenseOcrResponse res = baiduOcr(compressedImgBase64, req.getImageType()); | |||
res.setImageUrl(url == null ? "" : url.toString()); | |||
logger.info("驾驶证识别结果>{}", res); | |||
return res; | |||
} catch (Exception e) { | |||
logger.error("身份证OCR处理失败", e); | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("很抱歉,我们无法识别您的证件,请按规范上传正副页,确保图片清晰、背景简洁(如白墙或桌面),减少证件反光和阴影"); | |||
} | |||
} | |||
public VehicleLicenseOcrResponse baiduOcr(String imgBase64, String imageType) throws ServiceHandleException { | |||
try { | |||
@@ -51,19 +61,4 @@ public class VehicleLicenseOcrManager extends AbstractManager { | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("用户证件识别失败:" + e.getMessage()); | |||
} | |||
} | |||
public VehicleLicenseOcrResponse baiduOcrUsingBase64(VehicleLicenseOcrRequest request) throws ServiceHandleException { | |||
try { | |||
URL url = new URL(request.getUrl()); | |||
URL downloadUrl = new URL("http", "100.64.2.113", 9000, url.getPath()); | |||
String compressedImgBase64 = imageCompressManager.getBaiduOcrCompressBase64(downloadUrl.toString()); | |||
VehicleLicenseOcrResponse res = baiduOcr(compressedImgBase64, request.getImageType()); | |||
res.setImageUrl(url == null ? "" : url.toString()); | |||
return res; | |||
} catch (Exception e) { | |||
logger.error("身份证OCR处理失败", e); | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("很抱歉,我们无法识别您的证件,请按规范上传正副页,确保图片清晰、背景简洁(如白墙或桌面),减少证件反光和阴影"); | |||
} | |||
} | |||
} |