From d6b28b2d38ae32c1d147e263c1cb4cff6b32a503 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 29 五月 2023 18:26:02 +0800
Subject: [PATCH] 修改bug

---
 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java |  108 +++++++++++++++++++++++++-----------------------------
 1 files changed, 50 insertions(+), 58 deletions(-)

diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java
index de79ec0..75abf86 100644
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java
+++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java
@@ -222,7 +222,6 @@
 
             if(date.getTime() >= s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
                 b = false;
-                Double dd = 0d;
                 for (int j = 0; j < num3.size(); j++) {
                     JSONObject jsonObject2 = num3.getJSONObject(j);
                     Double num1_1 = jsonObject2.getDouble("num1");
@@ -231,58 +230,13 @@
                     if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){
                         order.setStartDistance(distance);//起步里程
                         order.setStartPrice(num3_1);//起步价
+                        break;
                     }
                     if(j == num3.size() - 1 && order.getStartPrice() == 0){
                         order.setStartDistance(num2_1);//起步里程
                         order.setStartPrice(num3_1);//起步价
-                        dd = distance - num2_1;
                     }
                 }
-                if(dd != 0){
-                    //计算长途费
-                    if(distance.compareTo(num4) > 0){
-                        order.setLongDistance(num4 + "-" + num5);//长途里程
-                        order.setLongDistancePrice(num6);//长途费
-                    }
-                    //计算长途里程超出的部分
-                    if(distance.compareTo(num5) > 0){
-                        BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5));
-                        BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN));
-                        BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8));
-                        order.setOverLongDistance(subtract1.doubleValue());//超出长途里程
-                        order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费
-                    }
-                }
-                break;
-            }
-        }
-
-        if(b){//默认配置
-            JSONObject jsonObject1 = chargeStandard.getJSONObject(0);
-            JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程
-            Double num4 = jsonObject1.getDouble("num4");//长途里程
-            Double num5 = jsonObject1.getDouble("num5");//长途里程
-            Double num6 = jsonObject1.getDouble("num6");//长途费
-            Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里
-            Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11
-
-            Double dd = 0d;
-            for (int j = 0; j < num3.size(); j++) {
-                JSONObject jsonObject2 = num3.getJSONObject(j);
-                Double num1_1 = jsonObject2.getDouble("num1");
-                Double num2_1 = jsonObject2.getDouble("num2");
-                Double num3_1 = jsonObject2.getDouble("num3");
-                if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){
-                    order.setStartDistance(distance);//起步里程
-                    order.setStartPrice(num3_1);//起步价
-                }
-                if(j == num3.size() - 1 && order.getStartPrice() == 0){
-                    order.setStartDistance(num2_1);//起步里程
-                    order.setStartPrice(num3_1);//起步价
-                    dd = distance - num2_1;
-                }
-            }
-            if(dd != 0){
                 //计算长途费
                 if(distance.compareTo(num4) > 0){
                     order.setLongDistance(num4 + "-" + num5);//长途里程
@@ -296,6 +250,45 @@
                     order.setOverLongDistance(subtract1.doubleValue());//超出长途里程
                     order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费
                 }
+            }
+        }
+
+        if(b){//默认配置
+            JSONObject jsonObject1 = chargeStandard.getJSONObject(0);
+            JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程
+            Double num4 = jsonObject1.getDouble("num4");//长途里程
+            Double num5 = jsonObject1.getDouble("num5");//长途里程
+            Double num6 = jsonObject1.getDouble("num6");//长途费
+            Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里
+            Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11
+
+            for (int j = 0; j < num3.size(); j++) {
+                JSONObject jsonObject2 = num3.getJSONObject(j);
+                Double num1_1 = jsonObject2.getDouble("num1");
+                Double num2_1 = jsonObject2.getDouble("num2");
+                Double num3_1 = jsonObject2.getDouble("num3");
+                if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){
+                    order.setStartDistance(distance);//起步里程
+                    order.setStartPrice(num3_1);//起步价
+                    break;
+                }
+                if(j == num3.size() - 1 && order.getStartPrice() == 0){
+                    order.setStartDistance(num2_1);//起步里程
+                    order.setStartPrice(num3_1);//起步价
+                }
+            }
+            //计算长途费
+            if(distance.compareTo(num4) > 0){
+                order.setLongDistance(num4 + "-" + num5);//长途里程
+                order.setLongDistancePrice(num6);//长途费
+            }
+            //计算长途里程超出的部分
+            if(distance.compareTo(num5) > 0){
+                BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5));
+                BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN));
+                BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8));
+                order.setOverLongDistance(subtract1.doubleValue());//超出长途里程
+                order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费
             }
         }
 
@@ -465,15 +458,14 @@
                 return ResultUtil.error("司机还未上班");
             }
             Driver driver = driverService.selectById(travelOrder.getDriverId());
-            if(driver.getServerStatus() == 2){
-                return ResultUtil.error("司机正在服务中");
-            }
-            order.setAgentId(driver.getAgentId());
-            order.setBranchOfficeId(driver.getBranchOfficeId());
-            order.setOrderTakingTime(new Date());
+            if(driver.getServerStatus() == 1){
+                order.setAgentId(driver.getAgentId());
+                order.setBranchOfficeId(driver.getBranchOfficeId());
+                order.setOrderTakingTime(new Date());
 
-            driver.setServerStatus(2);
-            driverService.updateById(driver);
+                driver.setServerStatus(2);
+                driverService.updateById(driver);
+            }
 
             appUser.setCancelCount(0);
             appUser.setIsException(1);
@@ -1042,9 +1034,9 @@
         }
 
         if(appUser.getHavDiscount() == 1){//9折
-            payMoney = payMoney * 0.9;
             order.setDiscount(9D);
             order.setDiscountAmount(payMoney * 0.1);
+            payMoney = payMoney * 0.9;
         }
 
         order.setPayType(2);
@@ -1107,7 +1099,7 @@
         order.setPayType(1);
         order.setPayMoney(payMoney);
 
-        payMoney = payMoney > appUser.getAccountBalance() ? payMoney - appUser.getAccountBalance() : 0D;
+        payMoney = payMoney.compareTo(appUser.getAccountBalance()) > 0 ? payMoney - appUser.getAccountBalance() : 0D;
 
         AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
         accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
@@ -1119,7 +1111,7 @@
         accountChangeDetail.setChangeType(2);
         accountChangeDetail.setOrderId(order.getId());
         accountChangeDetail.setExplain("代驾服务费");
-        appUser.setAccountBalance(appUser.getAccountBalance() > payMoney ? appUser.getAccountBalance() - payMoney : 0);
+        appUser.setAccountBalance(appUser.getAccountBalance().compareTo(payMoney) > 0 ? appUser.getAccountBalance() - payMoney : 0);
         accountChangeDetail.setNewData(appUser.getAccountBalance());
         appUserService.updateById(appUser);
         accountChangeDetailService.insert(accountChangeDetail);

--
Gitblit v1.7.1