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