diff --git a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java index dd7ced5..91cd4ce 100644 --- a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java +++ b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java @@ -344,6 +344,47 @@ public class InvoiceAllController { return incomeResponseService.response(result, companyservice, ""); } + + @ApiOperation("获取人脸识别结果") + @ApiImplicitParams({ + @ApiImplicitParam(name = "identity", value = "身份认证", dataType = "java.lang.Void", example = "1130", required = true), + @ApiImplicitParam(name = "order", value = "请求体",dataType = "java.lang.Void", required = true)}) + @PostMapping({"/api/invoice_all/v1/qrcodeResult/{identity}", "/api/invoice_all/v1/qrcodeResult"}) + public Object qrcodeResult(HttpServletRequest request, String identity) throws Exception { + if (StringUtils.isEmpty(identity)) { + return AjaxResult.error(ErrorCode.EMPTY_IDENTITY); + } + + Companyservice companyservice = iCompanyserviceService.selectCompanyserviceByIdentity(identity); + if (companyservice == null) { + return AjaxResult.error(ErrorCode.COMPANY_NOT_FOUND); + } + + // 获得入口报文适配器 + String requestAdapterKey = serviceManageService.getRequestAdapterKey(SERVICE_KEY, companyservice.getCompanyid()); + IInvoiceAllRequestService incomeRequestService = invoiceAllRequestFactory.getService(requestAdapterKey); + JSONObject requestBody = incomeRequestService.decrypt(request, companyservice); + + // 获得请求实例,并且进行扣费 + String serviceKey = serviceManageService.getCompanyServiceSupplier(SERVICE_KEY, companyservice.getCompanyid()); + IInvoiceAll invoiceAllService = iInvoceiAllServiceFactory.getService(serviceKey); + + + AjaxResult result = invoiceAllService.qrcodeResult(companyservice, requestBody); + + //返回处理 增加调用次数 + if (result.isSuccess()) { + serviceManageService.companyConsume(SERVICE_KEY, companyservice.getCompanyid()); + } + + //返回报文处理器 + String responseAdapterKey = serviceManageService.getResponseAdapterKey(SERVICE_KEY, companyservice.getCompanyid()); + IInvoiceAllResponseService incomeResponseService = invoiceAllResponseFactory.getService(responseAdapterKey); + + return incomeResponseService.response(result, companyservice, ""); + } + + @ApiOperation("发票查询") @ApiImplicitParams({ @ApiImplicitParam(name = "identity", value = "身份认证", dataType = "java.lang.Void", example = "1130", required = true), diff --git a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/IInvoiceAll.java b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/IInvoiceAll.java index 50b6cad..eab066b 100644 --- a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/IInvoiceAll.java +++ b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/IInvoiceAll.java @@ -152,4 +152,6 @@ public interface IInvoiceAll { /** 查询蓝字发票可红冲金额*/ AjaxResult queryInvoiceBeRed(Companyservice companyservice, InvoiceAllCanRedDTO invoiceAllCanRedDTO); + /** 获取人脸识别结果*/ + AjaxResult qrcodeResult(Companyservice companyservice, JSONObject requestBody); } diff --git a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/InvoiceAllImpl.java b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/InvoiceAllImpl.java index 2771fb0..a9cfd42 100644 --- a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/InvoiceAllImpl.java +++ b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/InvoiceAllImpl.java @@ -1265,5 +1265,36 @@ public class InvoiceAllImpl implements IInvoiceAll { return AjaxResult.success(result); } + /** 获取人脸识别结果接口 */ + @Override + public AjaxResult qrcodeResult(Companyservice companyservice, com.alibaba.fastjson.JSONObject requestBody) { + JSONObject result = null; + try { + result = ApiHttp.request(WebServiceConstant.HQRLSBJG, WebServiceConstant.URL, requestBody, companyservice); + + String code = result.get("code") != null ? result.get("code").toString() : ""; + String msg = result.get("msg") != null ? result.get("msg").toString() : ""; + String data = result.get("data") != null ? result.get("data").toString() : ""; + + if ("0000".equals(code) && StrUtil.isNotEmpty(data)) { + JSONObject json = JSONUtil.parseObj(data); + String requestId = json.getOrDefault("requestId", "").toString(); + if (StrUtil.isEmpty(requestId)) { + return AjaxResult.error(msg); + } + + return AjaxResult.success(json); + } else { + return AjaxResult.error(msg); + } + } catch (Exception e) { + e.printStackTrace(); + log.error("【金四服务类】【金财数科】【获取人脸识别结果接口】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage()); + return AjaxResult.error(ErrorCode.INCOME_ERROR); + + } + + } + }