| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- package cn.com.lzt.car.data;
- import cn.com.lzt.common.util.HttpClientUtils;
- import cn.com.lzt.message.send.util.MD5;
- import cn.com.lzt.tools.ServerType;
- import org.apache.commons.collections.map.HashedMap;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.apache.http.client.config.RequestConfig;
- import org.codehaus.jackson.map.ObjectMapper;
- import java.io.IOException;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * 翼卡车辆数据
- */
- public class EdriveDataUtil {
- private static String BASEURL="http://edrive.e-car.cn/api_v1";
- // for test
- //http://edrivetest.e-car.cn/api_v1/vehicle
- private static final String APPID="YJbl2s4um9";
- private static final String SECRETKEY="2786f8dkv77qj5x4a4p5jd54wufp7ay2";
- private static ObjectMapper mapper = new ObjectMapper();
- private static Log log = LogFactory.getLog(EdriveDataUtil.class);
- static{
- if(ServerType.getServerType()==ServerType.test){
- BASEURL = "http://edrivetest.e-car.cn/api_v1";
- }
- }
- //
- public static void main(String[] args){
- // 19000211397 对方提供测试
- // 己方 21108989226 沪T-00002
- // 21108989090
- String vehicleNo = "21108989226";
- // status(vehicleNo);
- // alarm(vehicleNo,"2020-01-01 00:00:01","2020-06-23 23:59:59");
- // gpsTrip(vehicleNo,"2020-06-21 00:00:01","2020-06-23 23:59:59");
- //363211089890906
- gpsHistroy(vehicleNo,"2020-06-21 00:00:01","2020-06-23 23:59:59");
- // shootCommend(vehicleNo);
- // playCommend(vehicleNo,"play");
- // commendResult("shoot",23782);
- // shoot(vehicleNo);
- }
- public static void shoot(String vehicleNo){
- Map<String,Object> scMap = shootCommend(vehicleNo);
- Integer cmdId = Integer.valueOf(scMap.get("data").toString());
- commendResult("shoot", cmdId);
- }
- public static Map<String, Object> shootCommend(String vehicleNo){
- return commandSend(vehicleNo,"1","shoot","1");
- }
- public static void playCommend(String vehicleNo,String actionCmd){
- commandSend(vehicleNo,"1","play",actionCmd);
- }
- //命令结果
- private static void commendResult(String commendType,Integer commendId){
- String url = BASEURL+"/command/result";
- Map<String,Object> contentMap = new HashedMap();
- contentMap.put("cmdId",commendId);
- contentMap.put("cmdType",commendType);
- post(url,contentMap);
- }
- /**
- * @param vehicleNo 设备编号
- * @param channelNo 通道
- * @param cmdType 命令类型: play 播放,shoot 拍摄
- * @param action 如果play play 播放,stop 停止,如果shoot: 1拍照
- */
- private static Map<String, Object> commandSend(String vehicleNo, String channelNo, String cmdType, String action){
- String url = BASEURL+"/command/send";
- Map<String,Object> contentMap = new HashedMap();
- contentMap.put("vehicleNo",vehicleNo);
- contentMap.put("channelNo",channelNo);
- String cmdTypeString="";
- if(StringUtils.equals(cmdType, "shoot")){
- cmdTypeString="shoot";
- }else if(StringUtils.equals(cmdType, "play")){
- cmdTypeString="play";
- }
- try {
- contentMap.put(cmdTypeString,mapper.writeValueAsString(Collections.singletonMap("action",action)));
- } catch (IOException e) {
- e.printStackTrace();
- }
- contentMap.put("cmdType", cmdType);
- return post(url,contentMap);
- }
- //车辆定位历史
- public static void gpsHistroy(String vehicleNo,String startTime,String endTime){
- String url = BASEURL+"/gps/history";
- Map<String,Object> contentMap = new HashedMap();
- contentMap.put("vehicleNo",vehicleNo);
- contentMap.put("startTime",startTime);
- contentMap.put("endTime",endTime);
- post(url,contentMap);
- }
- //车辆形成历史
- public static void gpsTrip(String vehicleNo,String startTime,String endTime){
- String url = BASEURL+"/gps/trip";
- Map<String,Object> contentMap = new HashedMap();
- contentMap.put("vehicleNo",vehicleNo);
- contentMap.put("startTime",startTime);
- contentMap.put("endTime",endTime);
- post(url,contentMap);
- }
- //车辆状态
- public static void alarm(String vehicleNo,String startTime,String endTime){
- String url = BASEURL+"/vehicle/alarm";
- Map<String,Object> contentMap = new HashedMap();
- contentMap.put("vehicleNo",vehicleNo);
- contentMap.put("startTime",startTime);
- contentMap.put("endTime",endTime);
- post(url,contentMap);
- }
- //车辆状态
- public static void status(String vehicleNo){
- String url = BASEURL+"/vehicle/status";
- Map<String,Object> contentMap = new HashedMap();
- contentMap.put("vehicleNo",vehicleNo);
- post(url,contentMap);
- }
- private static Map<String,Object> post(String url,Map<String,Object> contentMap){
- try {
- Map<String,String> paramsMap = sign(contentMap);
- String backString = HttpClientUtils.sendHttpPost(url,paramsMap);
- if(log.isDebugEnabled()){
- log.debug("post:"+url+",response:"+backString);
- }
- System.out.println("post:"+url+",content:"+paramsMap.get("content")+",response:"+backString);
- Map<String,Object> map = mapper.readValue(backString, Map.class);
- return map;
- } catch (IOException e) {
- e.printStackTrace();
- }
- return null;
- }
- private static Map<String,String> sign(Map<String,Object> contentMap) throws IOException {
- long timestamp = System.currentTimeMillis();
- String content = mapper.writeValueAsString(contentMap);
- String unSign = APPID+timestamp+content+SECRETKEY;
- String sign = MD5.md5(unSign).toUpperCase();
- Map<String,String> paramsMap = new HashMap<>();
- paramsMap.put("appid", APPID);
- paramsMap.put("sign", sign);
- paramsMap.put("timestamp", String.valueOf(timestamp));
- paramsMap.put("content", content);
- return paramsMap;
- }
- }
|