From e6e316c9bfaeb7e872dc79c010b515707613dde2 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 22 十月 2024 17:29:29 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/IgoTravel into 2.0

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   90 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 80 insertions(+), 10 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 33db1ad..5cccec9 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -38,12 +38,15 @@
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
 import org.springframework.util.StringUtils;
@@ -60,6 +63,8 @@
 
 @Service
 public class OrderPrivateCarServiceImpl extends ServiceImpl<OrderPrivateCarMapper, OrderPrivateCar> implements IOrderPrivateCarService {
+    
+    private Logger log = LoggerFactory.getLogger(OrderPrivateCarServiceImpl.class);
 
     @Resource
     private OrderPrivateCarMapper orderPrivateCarMapper;
@@ -384,13 +389,41 @@
                     String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                     if(ToolUtil.isEmpty(vehicles)){
                         CarModel carModel = carModelMapper.selectById(car.getCarModelId());
-                        fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                        fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        if(!createVehicles){
+                            for (int i = 0; i < 5; i++) {
+                                createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                if(createVehicles){
+                                    break;
+                                }
+                                Thread.sleep(5000L);
+                            }
+                        }
+                        boolean updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        if(!updateVehicles){
+                            for (int i = 0; i < 5; i++) {
+                                updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                if(updateVehicles){
+                                    break;
+                                }
+                                Thread.sleep(5000L);
+                            }
+                        }
                     }
     
                     //创建行程数据
-                    fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(),
+                    boolean createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(),
                             orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
+                    if(!createTrip){
+                        for (int i = 0; i < 5; i++) {
+                            createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(),
+                                    orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
+                            if(createTrip){
+                                break;
+                            }
+                            Thread.sleep(5000L);
+                        }
+                    }
                 }
                 
             }catch (Exception e){
@@ -855,9 +888,18 @@
         
         //修改行程信息
         if((orderPrivateCar.getState() == 10 || orderPrivateCar.getState() == 12) && null != orderPrivateCar.getDriverId()){
-            fleetEngineUtil.updateTrip("CANCELED", null, null, orderPrivateCar.getTripId(), null, null, null, null);
+            boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, orderPrivateCar.getTripId(), null, null, null, null);
+            if(!updateTrip){
+                for (int i = 0; i < 5; i++) {
+                    updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, orderPrivateCar.getTripId(), null, null, null, null);
+                    if(updateTrip){
+                        break;
+                    }
+                    Thread.sleep(5000L);
+                }
+            }
         }
-        
+        log.warn("取消订单:{}   {}", System.currentTimeMillis(), orderPrivateCar.getTripId());
         //添加消息
         systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功取消出行订单,谢谢使用!" : language == 2 ? "You've cancelled the ride order successfully, thank you for using I-GO " : "Vous avez annulé la commande de course avec succès, merci d’utiliser I-GO", orderPrivateCar.getUserId(), 1);
         Map<String, Object> map = new HashMap<>();
@@ -1203,6 +1245,7 @@
 
 
     @Override
+    @Transactional
     public ResultUtil payPrivateCarOrder(Integer payType, Integer bankCardId, Integer orderId, Integer couponId, Integer redDeduction, Integer type, Integer language) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
         if(orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9){
@@ -1291,11 +1334,11 @@
                             userRedPacketRecord.setEndTime(new Date());
                             userRedPacketRecord.setState(2);
                             multiply1 = multiply1.subtract(remainingAmount).setScale(2, RoundingMode.HALF_EVEN);
-                            jsonObject.put("money", remainingAmount);
+                            jsonObject.put("money", remainingAmount.setScale(2, RoundingMode.HALF_EVEN));
                             jsonArray.add(jsonObject);
                         }else if(remainingAmount.compareTo(multiply1) > 0){
                             userRedPacketRecord.setRemainingAmount(remainingAmount.subtract(multiply1).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
-                            jsonObject.put("money", multiply1);
+                            jsonObject.put("money", multiply1.setScale(2, RoundingMode.HALF_EVEN));
                             jsonArray.add(jsonObject);
                             multiply1 = BigDecimal.ZERO;
                         }
@@ -1983,10 +2026,37 @@
                                             CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                                             String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                             if(ToolUtil.isEmpty(vehicles)){
-                                                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                                                fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                if(!createVehicles){
+                                                    for (int i = 0; i < 5; i++) {
+                                                        createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                        if(createVehicles){
+                                                            break;
+                                                        }
+                                                        Thread.sleep(5000L);
+                                                    }
+                                                }
+                                                boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                if(!updateVehicles){
+                                                    for (int i = 0; i < 5; i++) {
+                                                        updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                        if(updateVehicles){
+                                                            break;
+                                                        }
+                                                        Thread.sleep(5000L);
+                                                    }
+                                                }
                                             }else{
-                                                fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                if(!updateVehicles){
+                                                    for (int i = 0; i < 5; i++) {
+                                                        updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                        if(updateVehicles){
+                                                            break;
+                                                        }
+                                                        Thread.sleep(5000L);
+                                                    }
+                                                }
                                             }
                                         }catch (Exception e){
                                             e.printStackTrace();

--
Gitblit v1.7.1