|
@@ -1002,4 +1002,100 @@ public class VehicleServiceImpl implements VehicleService {
|
|
|
}
|
|
|
return upstreamCode;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ChannelTypeHandleResponseObject checkVehicleExist(HttpServletRequest request, String customBody, int outTime) {
|
|
|
+ ChannelTypeHandleResponseObject ret = new ChannelTypeHandleResponseObject();
|
|
|
+ ret.setIsCharge(Constant.INTERFACE_QUERY_NO_FEE);
|
|
|
+ ret.setCode(Constant.SUCCESS);
|
|
|
+ String upstreamCode = "" + Constant.LOG_UPSTREAM_DEFAULT_RESPONSE_CODE;
|
|
|
+ request.setAttribute(Constant.LOG_UPSTREAM_RESPONSE_CODE, upstreamCode);
|
|
|
+ if (outTime <= Constants.PARA_ZERO) {
|
|
|
+ outTime = Constant.HTTPCLIENT_CONNECTTIMEOUT;
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("supplier-vehicle.checkVehicleExist---customBody={},outTime={}", customBody, outTime);
|
|
|
+ // 解析参数
|
|
|
+ ObjectMapper objectMapper = new ObjectMapper();
|
|
|
+ VehicleExistRequestParam requestParam;
|
|
|
+ try {
|
|
|
+ requestParam = objectMapper.readValue(customBody, VehicleExistRequestParam.class);
|
|
|
+ } catch (IOException ioe) {
|
|
|
+ log.info("supplier-vehicle.checkVehicleExist-解析参数Exception:", ioe);
|
|
|
+ ErrorUtils.captureException(ioe);
|
|
|
+ ret.setCode(Constant.FAIL);
|
|
|
+ ret.setResultCode(Constant.INVALID_PARAMETER_CODE);
|
|
|
+ ret.setResultBody(Constant.INVALID_PARAMETER);
|
|
|
+ ret.setResultDesc(Constant.INVALID_PARAMETER);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 参数校验
|
|
|
+ if (!ValidateParamUtil.validateRequestParams(requestParam)) {
|
|
|
+ ret.setResultCode(Constant.INVALID_PARAMETER_CODE);
|
|
|
+ ret.setResultBody(Constant.INVALID_PARAMETER);
|
|
|
+ ret.setResultDesc(Constant.INVALID_PARAMETER);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 接口调用
|
|
|
+ Response response;
|
|
|
+ try {
|
|
|
+ response = PostUtil.postString(supplierConfig.getVehicleExistUrl(), JSON.toJSONString(requestParam),
|
|
|
+ supplierConfig.getAppKey(), supplierConfig.getAppSecret(), outTime);
|
|
|
+ log.info("supplier-vehicle.checkVehicleExist-responseStatus:{}", response.getStatusCode());
|
|
|
+ log.info("supplier-vehicle.checkVehicleExist-responseBody:{}", response.getBody());
|
|
|
+ if (response.getStatusCode() == Constants.STATUS_CODE_200) {
|
|
|
+ VehicleExistResponse vehicleExistResponse = JSON.toJavaObject(JSON.parseObject(response.getBody()),
|
|
|
+ VehicleExistResponse.class);
|
|
|
+ upstreamCode = vehicleExistResponse.getResultCode();
|
|
|
+ if (vehicleExistResponse.getResultCode().equals(Constants.RESULT_CODE_0)) {
|
|
|
+ // 返回数据(0=否;1=是)
|
|
|
+ if (vehicleExistResponse.getData().equals("1")) {
|
|
|
+ ret.setResultCode(Constant.MATCH_CODE);
|
|
|
+ ret.setResultBody(Constant.MATCH);
|
|
|
+ } else {
|
|
|
+ ret.setResultCode(Constant.UN_MATCH_CODE);
|
|
|
+ List<String> resultList = new ArrayList<>();
|
|
|
+ resultList.add("vehicleNumber");
|
|
|
+ resultList.add("licensePlateTypeCode");
|
|
|
+ JSONObject result = new JSONObject();
|
|
|
+ result.put("resultList", resultList);
|
|
|
+ ret.setResultBody(result);
|
|
|
+ }
|
|
|
+ ret.setIsCharge(Constant.IS_CHARGE);
|
|
|
+ } else if (vehicleExistResponse.getResultCode().equals("110000")) {
|
|
|
+ // 查询结果为空
|
|
|
+ ret.setResultCode(Constant.UN_FIND_NUM_CODE);
|
|
|
+ ret.setResultBody(Constants.NO_RESULT);
|
|
|
+ ret.setResultDesc(Constants.NO_RESULT);
|
|
|
+ } else if (vehicleExistResponse.getResultCode().equals("111004")
|
|
|
+ || vehicleExistResponse.getResultCode().equals("119999")) {
|
|
|
+ // 访问次数已达上限
|
|
|
+ ret.setResultCode(Constants.REQUEST_LIMIT);
|
|
|
+ ret.setResultBody(Constants.REQUEST_LIMIT_MESSAGE);
|
|
|
+ ret.setResultDesc(Constants.REQUEST_LIMIT_MESSAGE);
|
|
|
+ } else {
|
|
|
+ ret.setResultCode(Constant.OTHER_ERROR_CODE);
|
|
|
+ ret.setResultBody(Constant.OTHER_ERROR);
|
|
|
+ ret.setResultDesc(Constant.OTHER_ERROR);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ ret.setResultCode(Constant.OTHER_ERROR_CODE);
|
|
|
+ ret.setResultBody(Constant.OTHER_ERROR);
|
|
|
+ ret.setResultDesc(Constant.OTHER_ERROR);
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
+ log.info("supplier-vehicle.checkVehicleExist-IOException:", e);
|
|
|
+ ErrorUtils.captureException(e);
|
|
|
+ ret.setCode(Constant.REQUEST_TIMEOUT);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.info("supplier-vehicle.checkVehicleExist-Exception:", e);
|
|
|
+ ErrorUtils.captureException(e);
|
|
|
+ ret.setCode(Constant.FAIL);
|
|
|
+ }
|
|
|
+
|
|
|
+ request.setAttribute(Constant.LOG_UPSTREAM_RESPONSE_CODE, upstreamCode);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
}
|