QueueInterfaceServiceImpl.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. package com.steerinfo.dil.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.openapi.sdk.service.DataExchangeService;
  5. import com.steerinfo.dil.mapper.QueueInterfaceMapper;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.beans.factory.annotation.Value;
  8. import org.springframework.stereotype.Service;
  9. import java.util.HashMap;
  10. import java.util.Map;
  11. /**
  12. * @ author :TXF
  13. * @ time :2022/1/11 15:27
  14. */
  15. @Service
  16. public class QueueInterfaceServiceImpl {
  17. @Autowired
  18. private QueueInterfaceMapper queueInterfaceMapper;
  19. @Value("${str.ZhongJiaoXingLu.cid}")
  20. private String cid;
  21. @Value("${str.ZhongJiaoXingLu.srt}")
  22. private String srt;
  23. @Value("${str.ZhongJiaoXingLu.user}")
  24. private String user;
  25. @Value("${str.ZhongJiaoXingLu.pwd}")
  26. private String pwd;
  27. private String token = "2d1d0e76-78ba-480e-8b48-15e3ae50eb94"; //令牌
  28. private String userflag = "DaZhouGangTie"; //标识
  29. private String lonlat = "121.84431,29.89889"; //中心点坐标
  30. private String radius = "3000"; //半径
  31. /**
  32. * 车辆订阅接口
  33. * @Author TXF
  34. * @Date 2022/1/12 14:18
  35. * @param map
  36. * @return
  37. **/
  38. public String subsCapacity(Map<String, Object> map){
  39. if (map.get("capacityNumber")==null||"".equals(map.get("capacityNumber").toString())){
  40. return "参数【capacityNumber】车号,为空";
  41. }
  42. Map<String, String> mesMap = new HashMap<>();
  43. mesMap.put("token", token);
  44. mesMap.put("cid", cid);
  45. mesMap.put("srt", srt);
  46. mesMap.put("userflag", userflag);
  47. mesMap.put("areaid", queueInterfaceMapper.getAreaId());
  48. mesMap.put("vnos", (String) map.get("capacityNumber"));
  49. String url = "https://openapi-test.sinoiov.cn/save/apis/vnoReg";
  50. try {
  51. DataExchangeService des = new DataExchangeService(5000, 8000);
  52. // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
  53. String res = des.postHttps(url, mesMap);
  54. Map<String, Object> jsonMap = JSON.parseObject(res);
  55. Object status = jsonMap.get("status");
  56. if("1016".equals(status.toString())){
  57. if(login() == 1){
  58. subsCapacity(map); //递归订阅
  59. }else {
  60. return "登录失败,状态码:"+status;
  61. }
  62. }
  63. if("1001".equals(status.toString())){
  64. if("2".equals(jsonMap.get("result").toString())){
  65. //如果是自定义区域不存在则重新注册自定义区域
  66. if(registerAreaReg() == 1){
  67. subsCapacity(map);
  68. }
  69. }else {
  70. return "订阅成功";
  71. }
  72. }
  73. } catch (Exception e) {
  74. System.out.println("错误信息:" + e.getMessage());
  75. }
  76. return "订阅失败";
  77. }
  78. /**
  79. * 自定义区域注册接口
  80. * @Author TXF
  81. * @Date 2022/1/12 14:36
  82. * @param
  83. * @return 1 成功 0 失败
  84. **/
  85. public int registerAreaReg(){
  86. Map<String, String> mesMap = new HashMap<>(9);
  87. mesMap.put("token", token);
  88. mesMap.put("cid", cid);
  89. mesMap.put("srt", srt);
  90. mesMap.put("userflag", userflag);
  91. mesMap.put("areaname", "达州钢铁老厂区");
  92. mesMap.put("lonlat", lonlat);
  93. mesMap.put("radius", radius);
  94. mesMap.put("type", "1");
  95. mesMap.put("actiontype", "1");
  96. String url = "https://openapi-test.sinoiov.cn/save/apis/areaReg";
  97. try {
  98. DataExchangeService des = new DataExchangeService(5000, 8000);
  99. // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
  100. String res = des.postHttps(url, mesMap);
  101. Map<String, Object> jsonMap = JSON.parseObject(res);
  102. if("1001".equals(jsonMap.get("status").toString())){
  103. // 更新注册区域ID
  104. Map<String, Object> areaIdMap = (Map<String, Object>) jsonMap.get("result");
  105. if("1".equals(areaIdMap.get("state").toString())){
  106. String areaid = String.valueOf(areaIdMap.get("areaid"));
  107. queueInterfaceMapper.updateAreaId(areaid);
  108. System.out.println("new areaid: " + areaid);
  109. return 1;
  110. }else {
  111. return 0;
  112. }
  113. }
  114. } catch (Exception e) {
  115. System.out.println("错误信息:" + e.getMessage());
  116. }
  117. return 0;
  118. }
  119. /**
  120. * 登录接口
  121. * @Author TXF
  122. * @Date 2022/1/12 15:23
  123. * @param
  124. * @return 1 成功 0 失败
  125. **/
  126. public int login() {
  127. try {
  128. Map<String, String> map = new HashMap<>(4);
  129. map.put("user", user);
  130. map.put("pwd", pwd);
  131. map.put("cid", cid);
  132. map.put("srt", srt);
  133. String url = "https://openapi-test.sinoiov.cn/save/apis/login/";
  134. DataExchangeService des = new DataExchangeService(5000, 8000);
  135. // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
  136. String res = des.postHttps(url, map);
  137. JSONObject jsonObject = JSONObject.parseObject(res);
  138. this.token = jsonObject.get("result").toString();
  139. System.out.println("token: " + this.token);
  140. return 1;
  141. } catch (Exception e) {
  142. System.out.println("登录中交兴路出错"+e.getMessage());
  143. return 0;
  144. }
  145. }
  146. /**
  147. * 删除车辆订阅接口
  148. * @Author TXF
  149. * @Date 2022/1/12 17:11
  150. * @param map
  151. * @return
  152. **/
  153. public void cancelSubsCapacity(Map<String, Object> map){
  154. Map<String, String> mesMap = new HashMap<>(4);
  155. mesMap.put("cid", cid);
  156. mesMap.put("srt", srt);
  157. mesMap.put("token", token);
  158. mesMap.put("userflag", userflag);
  159. mesMap.put("vons", (String) map.get("capacityNumber"));
  160. mesMap.put("areaid", queueInterfaceMapper.getAreaId());
  161. String url = "https://openapi-test.sinoiov.cn/save/apis/vnoDel";
  162. try {
  163. DataExchangeService des = new DataExchangeService(5000, 8000);
  164. String res = des.postHttps(url, mesMap);
  165. JSONObject jsonObject = JSONObject.parseObject(res);
  166. if("1".equals(jsonObject.get("result"))){
  167. System.out.println(map.get("capacityNumber") + "取消订阅成功");
  168. }
  169. } catch (Exception e) {
  170. e.printStackTrace();
  171. }
  172. }
  173. }