123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- package com.steerinfo.dil.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.openapi.sdk.service.DataExchangeService;
- import com.steerinfo.dil.mapper.QueueInterfaceMapper;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * @ author :TXF
- * @ time :2022/1/11 15:27
- */
- @Service
- public class QueueInterfaceServiceImpl {
- @Autowired
- private QueueInterfaceMapper queueInterfaceMapper;
- @Value("${str.ZhongJiaoXingLu.cid}")
- private String cid;
- @Value("${str.ZhongJiaoXingLu.srt}")
- private String srt;
- @Value("${str.ZhongJiaoXingLu.user}")
- private String user;
- @Value("${str.ZhongJiaoXingLu.pwd}")
- private String pwd;
- private String token = "2d1d0e76-78ba-480e-8b48-15e3ae50eb94"; //令牌
- private String userflag = "DaZhouGangTie"; //标识
- private String lonlat = "121.84431,29.89889"; //中心点坐标
- private String radius = "3000"; //半径
- /**
- * 车辆订阅接口
- * @Author TXF
- * @Date 2022/1/12 14:18
- * @param map
- * @return
- **/
- public String subsCapacity(Map<String, Object> map){
- if (map.get("capacityNumber")==null||"".equals(map.get("capacityNumber").toString())){
- return "参数【capacityNumber】车号,为空";
- }
- Map<String, String> mesMap = new HashMap<>();
- mesMap.put("token", token);
- mesMap.put("cid", cid);
- mesMap.put("srt", srt);
- mesMap.put("userflag", userflag);
- mesMap.put("areaid", queueInterfaceMapper.getAreaId());
- mesMap.put("vnos", (String) map.get("capacityNumber"));
- String url = "https://openapi-test.sinoiov.cn/save/apis/vnoReg";
- try {
- DataExchangeService des = new DataExchangeService(5000, 8000);
- // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
- String res = des.postHttps(url, mesMap);
- Map<String, Object> jsonMap = JSON.parseObject(res);
- Object status = jsonMap.get("status");
- if("1016".equals(status.toString())){
- if(login() == 1){
- subsCapacity(map); //递归订阅
- }else {
- return "登录失败,状态码:"+status;
- }
- }
- if("1001".equals(status.toString())){
- if("2".equals(jsonMap.get("result").toString())){
- //如果是自定义区域不存在则重新注册自定义区域
- if(registerAreaReg() == 1){
- subsCapacity(map);
- }
- }else {
- return "订阅成功";
- }
- }
- } catch (Exception e) {
- System.out.println("错误信息:" + e.getMessage());
- }
- return "订阅失败";
- }
- /**
- * 自定义区域注册接口
- * @Author TXF
- * @Date 2022/1/12 14:36
- * @param
- * @return 1 成功 0 失败
- **/
- public int registerAreaReg(){
- Map<String, String> mesMap = new HashMap<>(9);
- mesMap.put("token", token);
- mesMap.put("cid", cid);
- mesMap.put("srt", srt);
- mesMap.put("userflag", userflag);
- mesMap.put("areaname", "达州钢铁老厂区");
- mesMap.put("lonlat", lonlat);
- mesMap.put("radius", radius);
- mesMap.put("type", "1");
- mesMap.put("actiontype", "1");
- String url = "https://openapi-test.sinoiov.cn/save/apis/areaReg";
- try {
- DataExchangeService des = new DataExchangeService(5000, 8000);
- // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
- String res = des.postHttps(url, mesMap);
- Map<String, Object> jsonMap = JSON.parseObject(res);
- if("1001".equals(jsonMap.get("status").toString())){
- // 更新注册区域ID
- Map<String, Object> areaIdMap = (Map<String, Object>) jsonMap.get("result");
- if("1".equals(areaIdMap.get("state").toString())){
- String areaid = String.valueOf(areaIdMap.get("areaid"));
- queueInterfaceMapper.updateAreaId(areaid);
- System.out.println("new areaid: " + areaid);
- return 1;
- }else {
- return 0;
- }
- }
- } catch (Exception e) {
- System.out.println("错误信息:" + e.getMessage());
- }
- return 0;
- }
- /**
- * 登录接口
- * @Author TXF
- * @Date 2022/1/12 15:23
- * @param
- * @return 1 成功 0 失败
- **/
- public int login() {
- try {
- Map<String, String> map = new HashMap<>(4);
- map.put("user", user);
- map.put("pwd", pwd);
- map.put("cid", cid);
- map.put("srt", srt);
- String url = "https://openapi-test.sinoiov.cn/save/apis/login/";
- DataExchangeService des = new DataExchangeService(5000, 8000);
- // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
- String res = des.postHttps(url, map);
- JSONObject jsonObject = JSONObject.parseObject(res);
- this.token = jsonObject.get("result").toString();
- System.out.println("token: " + this.token);
- return 1;
- } catch (Exception e) {
- System.out.println("登录中交兴路出错"+e.getMessage());
- return 0;
- }
- }
- /**
- * 删除车辆订阅接口
- * @Author TXF
- * @Date 2022/1/12 17:11
- * @param map
- * @return
- **/
- public void cancelSubsCapacity(Map<String, Object> map){
- Map<String, String> mesMap = new HashMap<>(4);
- mesMap.put("cid", cid);
- mesMap.put("srt", srt);
- mesMap.put("token", token);
- mesMap.put("userflag", userflag);
- mesMap.put("vons", (String) map.get("capacityNumber"));
- mesMap.put("areaid", queueInterfaceMapper.getAreaId());
- String url = "https://openapi-test.sinoiov.cn/save/apis/vnoDel";
- try {
- DataExchangeService des = new DataExchangeService(5000, 8000);
- String res = des.postHttps(url, mesMap);
- JSONObject jsonObject = JSONObject.parseObject(res);
- if("1".equals(jsonObject.get("result"))){
- System.out.println(map.get("capacityNumber") + "取消订阅成功");
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
|