From aa72a1d1d8c792b322281f5ab01996bc62820b13 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 16 九月 2025 15:31:07 +0800 Subject: [PATCH] 修改bug及数据加密传输 --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java | 75 +++++++++++++++++++++++++++---------- 1 files changed, 54 insertions(+), 21 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 cf75e07..a42183a 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 @@ -22,6 +22,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; @@ -234,7 +235,6 @@ String num6 = jsonObject.getString("num6"); Double num7 = jsonObject.getDouble("num7"); Double num8 = jsonObject.getDouble("num8"); - Double num9 = jsonObject.getDouble("num9"); String[] split = num6.split(" - "); Integer time1 = Integer.valueOf(split[0].replace(":", "")); @@ -279,7 +279,34 @@ BigDecimal multiply = BigDecimal.ZERO; BigDecimal yt = BigDecimal.ZERO; if (d > num8) { - multiply = new BigDecimal(d).subtract(new BigDecimal(num8)).multiply(new BigDecimal(num9)); + + if(null != mileageList){ + 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 = new BigDecimal(d).setScale(0, RoundingMode.DOWN).doubleValue(); + for (int i = 0; i < list.size(); i++) { + Double mileage = list.get(i).getMileage(); + Double price = list.get(i).getPrice(); + if(d > mileage){ + if(last <= num2){ + break; + } + multiply = multiply.add((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)); } @@ -294,28 +321,34 @@ BigDecimal multiply = BigDecimal.ZERO; BigDecimal yt = BigDecimal.ZERO; if (d > num2) { - 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; + if(null != mileageList){ + List<MileageObject> list = new ArrayList<>(); + for (int i = 0; i < mileageList.size(); i++) { + MileageObject mileageObject = mileageList.getObject(i, MileageObject.class); + list.add(mileageObject); } - }); - //计算每个阶段的增加费用 - 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; + //根据配置的里程倒序排序 + list.sort(new Comparator<MileageObject>() { + @Override + public int compare(MileageObject o1, MileageObject o2) { + return o1.getMileage().compareTo(o2.getMileage()) * -1; + } + }); + //计算每个阶段的增加费用 + Double last = new BigDecimal(d).setScale(0, RoundingMode.DOWN).doubleValue(); + for (int i = 0; i < list.size(); i++) { + Double mileage = list.get(i).getMileage(); + Double price = list.get(i).getPrice(); + if(d > mileage){ + if(last <= num2){ + break; + } + multiply = multiply.add((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)); } -- Gitblit v1.7.1