Pu Zhibing
2024-10-10 19d2b6427ebed89895b402d5e61ab78f4687b550
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -32,6 +32,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -262,12 +264,14 @@
        switch (orderType){
            case 1://专车
                map = orderPrivateCarService.queryPushOrder(orderId, language);
                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon));
                map.put("startDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0);
                OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                String tripId = redisUtil.getValue("trip" + orderPrivateCar.getUserId());
                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon), tripId);
                map.put("startDistance", null != distancematrix ? new BigDecimal(distancematrix.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
                //总距离
                distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()));
                map.put("totalDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0);
                distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()), tripId);
                map.put("totalDistance", null != distancematrix ? new BigDecimal(distancematrix.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
                Integer orderSource = Integer.valueOf(String.valueOf(map.get("orderSource")));
                if(orderSource == 1 || orderSource == 2 || orderSource == 3){
@@ -371,12 +375,14 @@
                break;
            case 4://市内小件物流
                map = orderLogisticsService.queryPushOrder(orderId, language);
                DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon));
                map.put("startDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0);
                OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
                String tripId1 = redisUtil.getValue("trip" + orderLogistics.getUserId());
                DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon), tripId1);
                map.put("startDistance", null != distancematrix1 ? new BigDecimal(distancematrix1.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
                //总距离
                distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()));
                map.put("totalDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0);
                distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()), tripId1);
                map.put("totalDistance", null != distancematrix1 ? new BigDecimal(distancematrix1.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
                Integer orderSource3 = Integer.valueOf(String.valueOf(map.get("orderSource")));
                if(orderSource3 == 1 || orderSource3 == 2 || orderSource3 == 3){
@@ -568,20 +574,15 @@
     */
    @Override
    public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, String pickUpCode, Integer language) throws Exception {
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lon);
        if(null == reverseGeocode){
            return ResultUtil.error(language == 1 ? "无效的经纬度" : language == 2 ? "Invalid longitude and latitude" : "Longitude et latitude non valides");
        }
        String address = reverseGeocode.getAddress();
        switch (orderType){
            case 1://专车
                return orderPrivateCarService.process(orderId, state, lon, lat, address, phone, language);
                return orderPrivateCarService.process(orderId, state, lon, lat, phone, language, uid);
            case 2://出租
//                return orderTaxiService.process(orderId, state, lon, lat, address);
            case 3://城际
//                return orderCrossCityService.process(orderId, state, lon, lat, address);
            case 4://同城小件
                return orderLogisticsService.process(orderId, state, lon, lat, address, pickUpCode, language);
                return orderLogisticsService.process(orderId, state, lon, lat, pickUpCode, language, uid);
            case 5://跨城小件
//                return orderLogisticsService.process(orderId, state, lon, lat, address);
            case 6:
@@ -603,16 +604,17 @@
     * @throws Exception
     */
    @Override
    public ResultUtil confirmFees(Integer language, Integer orderId, Integer orderType, Integer type, Double travelFee, Double parkingFee, Double crossingFee) throws Exception {
    public ResultUtil confirmFees(Integer language, Integer orderId, Integer orderType, Integer type, Double travelFee,
                                  Double parkingFee, Double crossingFee, Integer uid) throws Exception {
        switch (orderType){
            case 1://专车
                return orderPrivateCarService.confirmFees(language, orderId, type, parkingFee, crossingFee);
                return orderPrivateCarService.confirmFees(language, orderId, type, parkingFee, crossingFee, uid);
            case 2://出租
                return orderTaxiService.confirmFees(orderId, type, travelFee, parkingFee, crossingFee);
            case 3://城际(没有此流程)
                break;
            case 4://
                return orderLogisticsService.confirmFees(language, orderId, type, parkingFee, crossingFee);
                return orderLogisticsService.confirmFees(language, orderId, type, parkingFee, crossingFee, uid);
            case 5:
                break;
            case 6:
@@ -1164,8 +1166,8 @@
                checkoutRequest.setRequestDescription("Travel completion payment");
                checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi");
                checkoutRequest.setPendingRedirectUrl("");
                checkoutRequest.setSuccessRedirectUrl("http://182.160.16.251:81/payMoney/pages/success.html");
                checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html");
                checkoutRequest.setSuccessRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
                checkoutRequest.setFailRedirectUrl("https://igo.i-go.group/payMoney/pages/fail.html");
                ResultUtil resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
                if(resultUtil.getCode()==200){
                    paymentRecordService.saveData(1, uid, 2, orderId, orderType, 1, money, null, 1);//添加预支付数据
@@ -1190,8 +1192,8 @@
                checkoutRequest.setRequestDescription("Travel completion payment");
                checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi");
                checkoutRequest.setPendingRedirectUrl("");
                checkoutRequest.setSuccessRedirectUrl("http://182.160.16.251:81/payMoney/pages/success.html");
                checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html");
                checkoutRequest.setSuccessRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
                checkoutRequest.setFailRedirectUrl("https://igo.i-go.group/payMoney/pages/fail.html");
                ResultUtil resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
                if(resultUtil.getCode()==200){