From 021640e69b32dbd9b88a538402671c47f280df9e Mon Sep 17 00:00:00 2001
From: luo <2855143437@qq.com>
Date: 星期三, 31 一月 2024 15:50:00 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/IgoTravel into dev

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java |   81 +++++++++++++++++++++++++++++++++-------
 1 files changed, 67 insertions(+), 14 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
index 3485bbb..e5824b2 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
@@ -10,6 +11,8 @@
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
 import com.stylefeng.guns.modular.system.model.OrderPosition;
+import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
+import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +30,8 @@
 import java.io.FileInputStream;
 import java.io.InputStreamReader;
 import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
 import java.util.*;
 
 /**
@@ -82,6 +87,41 @@
         map.put("orderId", orderId);
         map.put("orderType", orderType);
         map.put("state", state);
+        jsonObject.put("data", map);
+
+        //调用推送
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("msg", jsonObject.toJSONString());
+        params.add("id", String.valueOf(uid));
+        params.add("type", String.valueOf(type));
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
+        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
+        if(jsonObject1.getIntValue("code") != 200){
+            System.err.println(jsonObject1.getString("msg"));
+        }
+    }
+
+
+    /**
+     * 线下支付数据推送
+     * @param type
+     * @param uid
+     * @param orderId
+     * @param orderType
+     */
+    public void pushOfflinePayment(Integer type, Integer uid, Integer orderId, Integer orderType){
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("code", 200);
+        jsonObject.put("msg", "SUCCESS");
+        jsonObject.put("method", "OFFLINE_PAYMENT");
+        Map<String, Object> map = new HashMap<>();
+        map.put("orderId", orderId);
+        map.put("orderType", orderType);
         jsonObject.put("data", map);
 
         //调用推送
@@ -296,16 +336,21 @@
             return;
         }
         if((state == 2 || state == 3 || state == 4) || (oldState != null && (oldState == 2 || oldState == 3 || oldState == 4))){//前往预约地
-            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, startLonLat, 1);
             String d = "0";
             String t = "0";
-            if(null == distance){
-                System.err.println("查询距离出错了");
-                return;
-            }else{
-                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
-                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+            if(ToolUtil.isNotEmpty(value) && ToolUtil.isNotEmpty(startLonLat)){
+                String[] split = value.split(",");
+                String[] split1 = startLonLat.split(",");
+                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(split[1]), Double.valueOf(split[0]), Double.valueOf(split1[1]), Double.valueOf(split1[0]));
+                if(null == distancematrix){
+                    System.err.println("地图获取距离出错");
+                }else{
+                    d = distancematrix.getDistance().toString();//距离m
+                    t = distancematrix.getDuration().toString();//时间s
+                }
             }
+            d = new BigDecimal(d).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
+            t = new BigDecimal(t).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
             map.put("reservationMileage", d);//当前位置距离预约点的剩余里程
             map.put("reservationTime", t);//当前位置距离预约点的剩余分钟
             map.put("servedMileage", "0");//距离起点已经服务的里程
@@ -319,19 +364,27 @@
             map.put("servedMileage", String.valueOf((null == servedMileage ? 0 : servedMileage) / 1000));//距离起点已经服务的里程
             Integer servedTime = Long.valueOf((new Date().getTime() - startServiceTime) / 60000).intValue();
             map.put("servedTime", servedTime + "");//距离起点已经服务的时间
-            Map<String, String>  distance = gdMapElectricFenceUtil.getDistance(value, endLonLat, 1);
+
             String d = "0";
             String t = "0";
-            if(null == distance){
-                System.err.println("查询距离出错了");
-            }else{
-                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
-                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+            if(ToolUtil.isNotEmpty(value) && ToolUtil.isNotEmpty(endLonLat)){
+                String[] split = value.split(",");
+                String[] split1 = endLonLat.split(",");
+                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(split[1]), Double.valueOf(split[0]), Double.valueOf(split1[1]), Double.valueOf(split1[0]));
+                if(null == distancematrix){
+                    System.err.println("地图获取距离出错");
+                }else{
+                    d = distancematrix.getDistance().toString();//距离m
+                    t = distancematrix.getDuration().toString();//时间s
+                }
             }
+
+            d = new BigDecimal(d).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
+            t = new BigDecimal(t).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
             map.put("laveMileage", d);//距离终点剩余未服务的里程数
             map.put("laveTime", t);//距离终端剩余未服务的预计时间
         }
-        File file = new File(filePath + orderId + "_1.txt");
+        File file = new File(filePath + orderId + "_" + orderType + ".txt");
         if(file.exists()){
             //读取文件(字符流)
             BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));

--
Gitblit v1.7.1