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