From b219589d73f46bd98995bceb4caf16dadb56b869 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 12 九月 2025 20:30:13 +0800
Subject: [PATCH] 修改bug

---
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java |   35 +++++++++++++++++++++++++++++++++--
 1 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
index 04a97d7..cf75e07 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -1,6 +1,7 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.modular.system.dao.ServerCarModelMapper;
@@ -15,6 +16,7 @@
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
 import com.stylefeng.guns.modular.system.warpper.ServerCarModelWarpper;
+import lombok.Data;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -226,7 +228,7 @@
         JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());//等待费
         Double num1 = jsonObject.getDouble("num1");
         Double num2 = jsonObject.getDouble("num2");
-        Double num3 = jsonObject.getDouble("num3");
+        JSONArray mileageList = jsonObject.getJSONArray("mileageList");
         Double num4 = jsonObject.getDouble("num4");
         Double num5 = jsonObject.getDouble("num5");
         String num6 = jsonObject.getString("num6");
@@ -292,7 +294,28 @@
             BigDecimal multiply = BigDecimal.ZERO;
             BigDecimal yt = BigDecimal.ZERO;
             if (d > num2) {
-                multiply = new BigDecimal(d).subtract(new BigDecimal(num2)).multiply(new BigDecimal(num3));
+                List<MileageObject> list = new ArrayList<>();
+                for (int i = 0; i < mileageList.size(); i++) {
+                    MileageObject mileageObject = mileageList.getObject(i, MileageObject.class);
+                    list.add(mileageObject);
+                }
+                //根据配置的里程倒序排序
+                list.sort(new Comparator<MileageObject>() {
+                    @Override
+                    public int compare(MileageObject o1, MileageObject o2) {
+                        return o1.getMileage().compareTo(o2.getMileage()) * -1;
+                    }
+                });
+                //计算每个阶段的增加费用
+                Double last = d;
+                for (int i = 0; i < list.size(); i++) {
+                    Double mileage = list.get(i).getMileage();
+                    Double price = list.get(i).getPrice();
+                    if(d > mileage){
+                        multiply = new BigDecimal(last).subtract(new BigDecimal(mileage)).multiply(new BigDecimal(price));
+                        last = mileage;
+                    }
+                }
                 if (d > num4) {
                     yt = new BigDecimal(d).subtract(new BigDecimal(num4)).multiply(new BigDecimal(num5));
                 }
@@ -428,4 +451,12 @@
         }
         return map;
     }
+
+
+    @Data
+    public static class MileageObject{
+        private Double mileage;
+        private Double price;
+
+    }
 }

--
Gitblit v1.7.1