接口类:
package com.ruicar.afs.cloud.vehicle.feign;import com.alibaba.fastjson.JSONObject;
import com.ruicar.afs.cloud.vehicle.dto.CarInfoDto;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;/*** @description: 对接长城车型库* @author: sijun.yu* @date: 2020/6/4 10:32*/
@FeignClient(name = "vehicle", url = "${com.greatwall.systems.vehicle-system.url}")
public interface VehicleApiFeign {/*** 二手车进件接口* @param dto* @return*/@ApiOperation("二手车进件接口")@PostMapping(value = "/vin/usedCar")JSONObject usedCar(@RequestBody CarInfoDto dto);/*** vin数据查询,全品牌新车放款审批,返回对应车型关键参数HTML的URL* @return*/@ApiOperation("vin数据查询,全品牌新车放款审批,返回对应车型关键参数HTML的URL")@PostMapping(value = "/vin/newCarKeyParameters")JSONObject newCarKeyParameters(@RequestBody CarInfoDto dto);/*** 系统车型库、资产及码表同步参数接口* @param dto* @return*/@ApiOperation("系统车型库、资产及码表同步参数接口")@PostMapping(value = "/brandAndCode")JSONObject brandAndCode(@RequestBody CarInfoDto dto);/*** 车价查询接口-Json* @param dto* @return*/@ApiOperation("车价查询接口")@PostMapping(value = "/carprice/cjcxjson")JSONObject cjcxjson(@RequestBody CarInfoDto dto);/*** 车价查询接口-Url* @param dto* @return*/@ApiOperation("车价查询接口")@PostMapping(value = "/carprice/cjcxurl")JSONObject cjcxurl(@RequestBody CarInfoDto dto);/*** 车e估估值报告-Json* @param dto* @return*/@ApiOperation("车e估估值报告")@PostMapping(value = "/vinpgbg/pgbgjson")JSONObject pgbgjson(@RequestBody CarInfoDto dto);/*** 车e估估值报告-Url* @param dto* @return*/@ApiOperation("车e估估值报告")@PostMapping(value = "/vinpgbg/pgbgurl")JSONObject pgbgurl(@RequestBody CarInfoDto dto);/*** 网约车车型API接口* @param dto* @return*/@ApiOperation("网约车车型API接口")@PostMapping(value = "onlinecar/onlineCarList")JSONObject onlineCarList(@RequestBody CarInfoDto dto);/*** 估值报告返回不一致字段名称* @param dto* @return*/@ApiOperation("估值报告返回不一致字段名称")@PostMapping(value = "vinpgbg/pgbg")JSONObject pgbg(@RequestBody CarInfoDto dto);/*** vin解析json结果返回* @param dto* @return*/@ApiOperation("vin解析json结果返回")@PostMapping(value = "/vinpage/vinparamJson")JSONObject vinparamJson(@RequestBody CarInfoDto dto);}
参数实体类:
package com.ruicar.afs.cloud.vehicle.dto;import lombok.Data;import java.math.BigDecimal;/*** @description:* @author: sijun.yu* @date: 2020/6/4 17:21*/
@Data
public class CarInfoDto {/*** 车架号*/private String vin;/*** 起始时间-时间戳*/private Long startDate;/*** 截止时间-时间戳*/private Long endDate;/*** 开始时间戳*/private Long startTime;/*** 结束时间戳*/private Long endTime;/*** 贷款申请日期时间戳*/private Long loanDate;/*** ASC系统保存初始版本号为0,首次请求接口时version=0,在请求接口请获取系统时间戳*/private Long version;/*** zoneId(必填项)车300地址映射本地城市编码后作为参数*/private String zoneId;/*** modelId车300车型编码(必填项)*/private String modelId;/*** lastPrice成交价*/private BigDecimal lastPrice;/*** 城市编码*/private String city;}
调用的地方:
private VehicleApiFeign vehicleApiFeign;/*** 查询Vin解析页面** @param condition* @return*/@PostMapping(value = "/getVinCarParams")@ApiOperation(value = "查询Vin解析车辆信息")public IResponse<JSONObject> getVinCarParams(@ModelAttribute LoanApproveCondition condition) {com.ruicar.afs.cloud.vehicle.dto.CarInfoDto carInfoDto = new CarInfoDto();carInfoDto.setVin(caseCarInfoService.getCarVin(condition));carInfoDto.setLoanDate(condition.getLoanDate());//调用时需引用接口的jar包JSONObject caseCarVO = vehicleApiFeign.newCarKeyParameters(carInfoDto);return IResponse.success(caseCarVO);}
引用包路径:
import com.ruicar.afs.cloud.vehicle.dto.CarInfoDto;
import com.ruicar.afs.cloud.vehicle.feign.VehicleApiFeign;