Commit 76cf6c7b authored by hanfeng's avatar hanfeng

修改违章2

parent 8c3fa797
package com.xxfc.platform.universal.controller; package com.xxfc.platform.universal.controller;
import com.xxfc.platform.universal.model.JuheResult; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.universal.service.TrafficViolationsService; import com.xxfc.platform.universal.service.TrafficViolationsService;
import com.xxfc.platform.universal.vo.TrafficViolations;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("3p/tv") @RequestMapping("3p/tv")
...@@ -21,35 +19,44 @@ public class TrafficViolationsController { ...@@ -21,35 +19,44 @@ public class TrafficViolationsController {
* @return * @return
*/ */
@GetMapping("/city/{province}") @GetMapping("/city/{province}")
public JuheResult getCityInfo(@PathVariable String province) { public ObjectRestResponse getCityInfo(@PathVariable String province) {
return tvService.getCity(province); try {
return ObjectRestResponse.succ(tvService.getCity());
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
} }
/** /**
* 违章车辆查询 * 违章车辆查询
* @param city
* @param hphm
* @param hpzl
* @param engineno
* @param classno
* @return * @return
*/ */
@GetMapping("trafficViolations") @PostMapping("/trafficViolations")
public JuheResult queryTrafficViolations(String city, String hphm, String hpzl, String engineno, String classno) { public ObjectRestResponse queryTrafficViolations(@RequestBody TrafficViolations trafficViolations) {
return tvService.queryViolations(city, hphm, hpzl, engineno, classno); try {
return ObjectRestResponse.succ(tvService.queryViolations(trafficViolations));
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
} }
/**
@GetMapping("balance") * 车辆类型查询
public JuheResult getBalance() { * @return
return tvService.queryBalance(); */
@GetMapping("/LicensePlateType")
public ObjectRestResponse getLicensePlateType() {
try {
return ObjectRestResponse.succ(tvService.getLicensePlateType());
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
} }
@GetMapping("/carPre/{hphm}")
public JuheResult carPre(@PathVariable String hphm) {
return tvService.queryCityByHphm(hphm);
}
} }
package com.xxfc.platform.universal.service; package com.xxfc.platform.universal.service;
import com.alibaba.fastjson.JSON;
import com.xxfc.platform.universal.model.*;
import com.xxfc.platform.universal.utils.CertifHttpUtils; import com.xxfc.platform.universal.utils.CertifHttpUtils;
import org.apache.http.client.methods.HttpGet; import com.xxfc.platform.universal.vo.TrafficViolations;
import org.springframework.beans.factory.annotation.Autowired; import org.apache.http.HttpResponse;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
...@@ -20,109 +15,88 @@ import java.util.Map; ...@@ -20,109 +15,88 @@ import java.util.Map;
@Service @Service
public class TrafficViolationsService { public class TrafficViolationsService {
@Value("${juhe.key}") @Value("${ALIYUN.CODE}")
private String CODE; private String CODE;
@Value("${RETURN.TYPE}")
private String TYPE;
//支持的城市 private static final String CITY_HOST = "https://weizhang.market.alicloudapi.com";
private static final String URL_GET_CITY = "http://v.juhe.cn/wz/citys?" + private static final String CITY_PATH = "/wz/province";
"province={province}&dtype={dtype}&format={format}&callback={callback}&key={key}"; private static final String CITY_METHOD = "GET";
//查违章
private static final String URL_QUERY_WZ = "http://v.juhe.cn/wz/query?" +
"dtype={dtype}&city={city}&hphm={hphm}&hpzl={hpzl}&engineno={engineno}&classno={classno}&key={key}";
//剩余次数
private static final String URL_BALANCE = "http://v.juhe.cn/wz/status?" +
"dtype={dtype}&key={key}";
//根据车牌查城市
private static final String URL_CAR_PRE = "http://v.juhe.cn/wz/carPre?" +
"hphm={hphm}&key={key}";
private static final String VIOLATIONS_HOST = "https://weizhang.market.alicloudapi.com";
private static final String VIOLATIONS_PATH = "/wz/type";
private static final String VIOLATIONS_METHOD = "GET";
private static final String host = "https://weizhang.market.alicloudapi.com"; private static final String GET_LICENSE_PLATE_TYPE_HOST = "https://weizhang.market.alicloudapi.com";
private static final String path = "/wz/province"; private static final String GET_LICENSE_PLATE_TYPE_PATH = "/wz/type";
private static final String method = "GET"; private static final String GET_LICENSE_PLATE_TYPE_METHOD = "GET";
private static final String appcode = "你自己的AppCode";
private static final String TYPE_NAME = "type";
private static final String PLATENO_NAME="plateno";
private static final String ENGINENO_NAME="engineno";
private static final String FRAMENO_NAME="frameno";
private static final String AUTHORIZATION="Authorization";
@Autowired
RestTemplate restTemplate;
/** /**
* 获取支持城市 * 支持城市
* province string N 默认全部,省份简写,如:ZJ、JS *
* dtype string N 返回数据格式:json或xml或jsonp,默认json * @return
* format int N 格式选择1或2,默认1 * @throws Exception type 返回参数类型
* callback String N 返回格式选择jsonp时,必须传递
* {"resultcode":"101","reason":"error key","result":null,"error_code":10001}
*/ */
public JuheResult<Map<String, JuheTrafficViolationsProvinceInfo>> getCity(String province) { public String getCity() throws Exception {
Map<String, String> headers = new HashMap<String, String>(); Map<String, String> headers = new HashMap<String, String>();
headers.put("Authorization", "APPCODE " + CODE); headers.put(AUTHORIZATION, "APPCODE " + CODE);
Map<String, String> querys = new HashMap<String, String>(); Map<String, String> querys = new HashMap<String, String>();
querys.put("type", "JSON"); querys.put(TYPE_NAME, TYPE);
HttpResponse httpResponse = CertifHttpUtils.doGet(CITY_HOST, CITY_PATH, CITY_METHOD, headers, querys);
// Map<String, String> paramsMap = new HashMap<>(); String provinceJSON = httpResponse.toString();
// paramsMap.put("key", KEY);
// paramsMap.put("province", province == null ? "" : province);
// paramsMap.put("dtype", "json");
// paramsMap.put("format", "");
// paramsMap.put("callback", "");
// CertifHttpUtils.doGet(host,path,method,headers,querys);
//// return (URL_GET_CITY, paramsMap);
return null;
}
/** return provinceJSON;
* 查违章
* dtype string 否 返回数据格式:默认:json
* city String 是 城市代码 *
* hphm String 是 号牌号码 完整7位 ,需要utf8 urlencode*
* hpzl String 是 号牌类型,默认02:小型车,01:大型车
* engineno String 否 发动机号 (具体是否需要根据城市接口中的参数填写)
* classno String 否 车架号 (具体是否需要根据城市接口中的参数填写)
*/
public JuheResult<JuheTrafficViolationsInfo> queryViolations(String city, String hphm, String hpzl,
String engineno, String classno) {
Map<String, String> paramsMap = new HashMap<>();
// paramsMap.put("key", KEY);
paramsMap.put("dtype", "json");
paramsMap.put("city", city);
paramsMap.put("hphm", hphm);
paramsMap.put("hpzl", hpzl);
paramsMap.put("engineno", engineno);
paramsMap.put("classno", classno);
return query(URL_QUERY_WZ, paramsMap);
} }
/** /**
* 查询剩余次数 * 违章车辆查询
*
* @param trafficViolations
* @return
*/ */
public JuheResult<JuheTrafficViolationsBalanceInfo> queryBalance() { public String queryViolations(TrafficViolations trafficViolations) throws Exception {
Map<String, String> paramsMap = new HashMap<>();
paramsMap.put("key", CODE); Map<String, String> headers = new HashMap<String, String>();
paramsMap.put("dtype", "json"); headers.put(AUTHORIZATION, "APPCODE " + CODE);
return query(URL_BALANCE, paramsMap); Map<String, String> querys = new HashMap<String, String>();
querys.put(TYPE_NAME, trafficViolations.getType());
querys.put(PLATENO_NAME, trafficViolations.getPlateno());
querys.put(ENGINENO_NAME, trafficViolations.getEngineno());
querys.put(FRAMENO_NAME, trafficViolations.getFrameno());
HttpResponse httpResponse = CertifHttpUtils.doGet(VIOLATIONS_HOST, VIOLATIONS_PATH, VIOLATIONS_METHOD, headers, querys);
String provinceJSON = httpResponse.toString();
return provinceJSON;
} }
/** /**
* 根据车牌前缀查城市参数 * 查询车牌类型
*
* @return
* @throws Exception
*/ */
public JuheResult<JuheCarPreInfo> queryCityByHphm(String hphm) { public String getLicensePlateType() throws Exception {
Map<String, String> paramsMap = new HashMap<>();
paramsMap.put("key", CODE);
paramsMap.put("hphm", hphm);
return query(URL_CAR_PRE, paramsMap);
}
private JuheResult query(String url, Map<String, String> paramsMap) { Map<String, String> headers = new HashMap<String, String>();
try { headers.put(AUTHORIZATION, "APPCODE " + CODE);
String responseStr = restTemplate.getForObject(url, String.class, paramsMap); HttpResponse httpResponse = CertifHttpUtils.doGet(GET_LICENSE_PLATE_TYPE_HOST,
return JSON.parseObject(responseStr, JuheResult.class); GET_LICENSE_PLATE_TYPE_PATH,
} catch (RestClientException ex) { GET_LICENSE_PLATE_TYPE_METHOD,
JuheResult result = new JuheResult(); headers,
result.setReason("请求错误"); new HashMap<String, String>());
result.setResultcode("500"); String provinceJSON = httpResponse.toString();
return result;
} return provinceJSON;
} }
......
#\u8BA4\u8BC1\u63A5\u53E3\u9700\u8981\u643A\u5E26\u7684\u53C2\u6570 #\u8BA4\u8BC1\u63A5\u53E3\u9700\u8981\u643A\u5E26\u7684\u53C2\u6570
#A-\u8BA4\u8BC1
#A\u8BA4\u8BC1
certif.cHost=https://idcert.market.alicloudapi.com certif.cHost=https://idcert.market.alicloudapi.com
certif.cPath=/idcard certif.cPath=/idcard
certif.cMethod=GET certif.cMethod=GET
certif.cAppcode=acea1c8811f748b3a65815f11db357c4 certif.cAppcode=acea1c8811f748b3a65815f11db357c4
#1.\u8BF7\u6C42 #1.\u8BF7\u6C42
#\u8EAB\u4EFD\u8BC1\u53F7\u5B57\u6BB5\u540D\u79F0 #\u8EAB\u4EFD\u8BC1\u53F7\u5B57\u6BB5\u540D\u79F0
certif.idCardName=idCard certif.idCardName=idCard
#\u59D3\u540D\u5B57\u6BB5\u540D\u79F0 #\u59D3\u540D\u5B57\u6BB5\u540D\u79F0
certif.cName=name certif.cName=name
#2.\u54CD\u5E94 #2.\u54CD\u5E94
#\u9519\u8BEF\u7801\u5B57\u6BB5\u540D #\u9519\u8BEF\u7801\u5B57\u6BB5\u540D
certif.certifRet=status certif.certifRet=status
#\u8BA4\u8BC1\u6210\u529F\u7801 #\u8BA4\u8BC1\u6210\u529F\u7801
certif.certifResultCode=01 certif.certifResultCode=01
#B-\u56FE\u7247\u89E3\u6790
#B\u56FE\u7247\u89E3\u6790
certif.iHost=https://ocridcard.market.alicloudapi.com certif.iHost=https://ocridcard.market.alicloudapi.com
certif.iPath =/idimages certif.iPath=/idimages
certif.iMethod=POST certif.iMethod=POST
certif.iAppcode =acea1c8811f748b3a65815f11db357c4 certif.iAppcode=acea1c8811f748b3a65815f11db357c4
#1.\u8BF7\u6C42 #1.\u8BF7\u6C42
#\u56FE\u7247url\u5B57\u6BB5\u540D #\u56FE\u7247url\u5B57\u6BB5\u540D
certif.picName=image certif.picName=image
...@@ -34,7 +28,6 @@ certif.typeName=idCardSide ...@@ -34,7 +28,6 @@ certif.typeName=idCardSide
certif.frontParameter=front certif.frontParameter=front
#\u56FE\u7247\u80CC\u9762\u6807\u8BC6\u53C2\u6570 #\u56FE\u7247\u80CC\u9762\u6807\u8BC6\u53C2\u6570
certif.backParameter=back certif.backParameter=back
#2.\u54CD\u5E94 #2.\u54CD\u5E94
#\u56FE\u7247\u89E3\u6790\u54CD\u5E94\u643A\u5E26\u9519\u8BEF\u7801\u5B57\u6BB5\u540D #\u56FE\u7247\u89E3\u6790\u54CD\u5E94\u643A\u5E26\u9519\u8BEF\u7801\u5B57\u6BB5\u540D
certif.imageRet=code certif.imageRet=code
...@@ -48,3 +41,9 @@ certif.numberName=code ...@@ -48,3 +41,9 @@ certif.numberName=code
certif.iName=name certif.iName=name
#\u8EAB\u4EFD\u8BC1\u5230\u671F\u65F6\u95F4\u5B57\u6BB5\u540D #\u8EAB\u4EFD\u8BC1\u5230\u671F\u65F6\u95F4\u5B57\u6BB5\u540D
certif.expirationDateName=expiryDate certif.expirationDateName=expiryDate
#C-\u8FDD\u7AE0\u8F66\u8F86\u67E5\u8BE2
#\u63A5\u53E3appcode
ALIYUN.CODE=acea1c8811f748b3a65815f11db357c4
#\u8FD4\u56DE\u53C2\u6570\u7C7B\u578B(HTML/JSON/JSONP/XML)
RETURN.TYPE=JSON
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment