From 6c741ac9e80353ca42906c1c6c7109324ae9f9f9 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 03 十月 2024 01:02:38 +0800
Subject: [PATCH] 修改bug和翻译

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java |   82 ++++++++++++++++++++++++++---------------
 1 files changed, 52 insertions(+), 30 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
index 495ce14..151d279 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -1045,13 +1045,13 @@
         }
     
         //计算红包
-        if(null != redDeduction && 1 == redDeduction){
+        if(null != redDeduction && 1 == redDeduction && null == orderLogistics.getRedPacketId()){
             RedEnvelopePaymentSettings redEnvelopePaymentSettings = redEnvelopePaymentSettingsService.getRedEnvelopePaymentSettings();
             if(null != redEnvelopePaymentSettings){
                 Double total = userRedPacketRecordService.queryRemainingAmount(uid);
                 List<UserRedPacketRecord> userRedPacketRecords = userRedPacketRecordService.selectList(new EntityWrapper<UserRedPacketRecord>().eq("userId", uid)
                         .eq("state", 1).eq("companyId", orderLogistics.getCompanyId()).gt("remainingAmount", 0).orderBy("insertTime", false));
-    
+            
                 BigDecimal deductionRatio = redEnvelopePaymentSettings.getDeductionRatio();
                 BigDecimal multiply1 = orderMoney.multiply(deductionRatio.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_EVEN);
                 if(total > 0 && multiply1.doubleValue() > 0 && total.compareTo(multiply1.doubleValue()) >= 0){
@@ -1061,12 +1061,12 @@
                     //获取红包id
                     JSONArray jsonArray = new JSONArray();
                     for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
-                        JSONObject jsonObject = new JSONObject();
-                        jsonObject.put("id", userRedPacketRecord.getId());
-                        BigDecimal remainingAmount = new BigDecimal(userRedPacketRecord.getRemainingAmount());
                         if(multiply1.compareTo(BigDecimal.ZERO) == 0){
                             break;
                         }
+                        JSONObject jsonObject = new JSONObject();
+                        jsonObject.put("id", userRedPacketRecord.getId());
+                        BigDecimal remainingAmount = new BigDecimal(userRedPacketRecord.getRemainingAmount());
                         if(multiply1.compareTo(remainingAmount) >= 0){
                             userRedPacketRecord.setRemainingAmount(0D);
                             userRedPacketRecord.setEndTime(new Date());
@@ -1074,14 +1074,15 @@
                             multiply1 = multiply1.subtract(remainingAmount).setScale(2, RoundingMode.HALF_EVEN);
                             jsonObject.put("money", remainingAmount);
                             jsonArray.add(jsonObject);
-                            userRedPacketRecordService.updateById(userRedPacketRecord);
                         }else if(remainingAmount.compareTo(multiply1) > 0){
                             userRedPacketRecord.setRemainingAmount(remainingAmount.subtract(multiply1).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
                             jsonObject.put("money", multiply1);
                             jsonArray.add(jsonObject);
-                            userRedPacketRecordService.updateById(userRedPacketRecord);
                             multiply1 = BigDecimal.ZERO;
                         }
+                    }
+                    if(userRedPacketRecords.size() > 0){
+                        userRedPacketRecordService.updateBatchById(userRedPacketRecords);
                     }
                     orderLogistics.setRedPacketId(jsonArray.toJSONString());
                 }
@@ -1090,29 +1091,18 @@
                     orderMoney = orderMoney.subtract(new BigDecimal(total)).setScale(2, RoundingMode.HALF_EVEN);
                     //获取红包id
                     JSONArray jsonArray = new JSONArray();
-                    BigDecimal multiply = new BigDecimal(total);
                     for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
                         JSONObject jsonObject = new JSONObject();
                         jsonObject.put("id", userRedPacketRecord.getId());
-                        BigDecimal remainingAmount = new BigDecimal(userRedPacketRecord.getRemainingAmount());
-                        if(multiply.compareTo(BigDecimal.ZERO) == 0){
-                            break;
-                        }
-                        if(multiply.compareTo(remainingAmount) >= 0){
-                            userRedPacketRecord.setRemainingAmount(0D);
-                            userRedPacketRecord.setEndTime(new Date());
-                            userRedPacketRecord.setState(2);
-                            multiply = multiply.subtract(remainingAmount).setScale(2, RoundingMode.HALF_EVEN);
-                            jsonObject.put("money", remainingAmount);
-                            jsonArray.add(jsonObject);
-                            userRedPacketRecordService.updateById(userRedPacketRecord);
-                        }else if(remainingAmount.compareTo(multiply) > 0){
-                            userRedPacketRecord.setRemainingAmount(remainingAmount.subtract(multiply).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
-                            jsonObject.put("money", multiply);
-                            jsonArray.add(jsonObject);
-                            userRedPacketRecordService.updateById(userRedPacketRecord);
-                            multiply = BigDecimal.ZERO;
-                        }
+                        jsonObject.put("money", userRedPacketRecord.getRemainingAmount());
+                        jsonArray.add(jsonObject);
+                    
+                        userRedPacketRecord.setRemainingAmount(0D);
+                        userRedPacketRecord.setEndTime(new Date());
+                        userRedPacketRecord.setState(2);
+                    }
+                    if(userRedPacketRecords.size() > 0){
+                        userRedPacketRecordService.updateBatchById(userRedPacketRecords);
                     }
                     orderLogistics.setRedPacketId(jsonArray.toJSONString());
                 }
@@ -1746,6 +1736,7 @@
                     if(null != settlementAllocation){
                         JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent());
                         Double maxPrice = jsonObject.getDouble("maxPrice");
+                        Integer type1 = jsonObject.getInteger("type");
                         if(null != maxPrice){
                             List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driver.getId())
                                     .isNull("settlementRecordId").last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(createTime, '%Y-%m-%d')"));
@@ -1756,12 +1747,12 @@
                             //日结算
                             if(maxPrice.compareTo(total.doubleValue()) <= 0){
                                 SettlementRecord settlementRecord = settlementRecordService.selectOne(new EntityWrapper<SettlementRecord>().eq("driverId", orderLogistics.getDriverId())
-                                        .eq("type", 1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')"));
+                                        .eq("type", type1).eq("paymentStatus", 1).last(" and day = DATE_FORMAT(now(), '%Y-%m-%d')"));
                                 if(null == settlementRecord){
                                     settlementRecord = new SettlementRecord();
                                     settlementRecord.setDay(new Date());
                                     settlementRecord.setDriverId(orderLogistics.getDriverId());
-                                    settlementRecord.setType(1);
+                                    settlementRecord.setType(type1);
                                     settlementRecord.setPaymentStatus(1);
                                     settlementRecord.setPayMoney(total.doubleValue());
                                     settlementRecord.setInsertTime(new Date());
@@ -1773,6 +1764,37 @@
                                 for (SettlementDetail detail : settlementDetailList) {
                                     detail.setSettlementRecordId(settlementRecord.getId());
                                     settlementDetailService.updateById(detail);
+                                }
+                                //强制司机下班
+                                DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>()
+                                        .eq("driverId", orderLogistics.getDriverId()).eq("state", 1));
+                                if(null != driverWork){
+                                    driverWork.setEndTime(new Date());
+                                    driverWork.setState(2);
+                                    driverWorkService.updateById(driverWork);
+                                    driver.setState(1);
+                                    driverService.updateById(driver);
+                                    Car car = carService.selectById(driver.getCarId());
+                                    if(!org.apache.shiro.util.StringUtils.hasLength(car.getVehicleId())){
+                                        car.setVehicleId(UUIDUtil.getRandomCode());
+                                        carService.updateById(car);
+                                    }
+    
+                                    //司机下班,修改谷歌上的车辆信息
+                                    new Thread(()->{
+                                        try {
+                                            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());
+                                            }else{
+                                                fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                            }
+                                        }catch (Exception e){
+                                            e.printStackTrace();
+                                        }
+                                    }).start();
                                 }
                             }
                         }
@@ -3307,7 +3329,7 @@
         BaseWarpper baseWarpper = new BaseWarpper();
         double amount = 0;
         CancleOrder query = cancleOrderService.query(orderLogistics.getCompanyId());
-        if(null == query || null == orderLogistics.getDriverId()){
+        if(null == query || null == orderLogistics.getDriverId() || orderLogistics.getState() == 11){
             baseWarpper.setAmount(amount);
             return ResultUtil.success(baseWarpper);
         }

--
Gitblit v1.7.1