Pu Zhibing
2024-12-25 0d49fd3475ffef0d26c8b68c0c8d5ae04fff2386
DriverAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -271,7 +271,36 @@
                    driver.setState(2);
                    driverService.updateById(driver);
                }
                //添加收入明细
                Line line = lineService.selectById(orderCrossCity.getLineId());
                Driver driver = driverService.selectById(orderCrossCity.getDriverId());
                Double speMoney = driver.getIntercityCommission();
                BigDecimal d = null;//企业收入
                BigDecimal c = null;//司机收入
                if(null == speMoney){
                    speMoney = Double.valueOf(line.getRakeRate());
                    d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN)));//企业收入
                    c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入
                }else{
                    if(driver.getIntercityCommissionType() == 2){//固定
                        d = new BigDecimal(speMoney);
                        c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
                    }
                    if(driver.getIntercityCommissionType() == 1){//比例
                        Double price = orderCrossCity.getOrderMoney();
                        d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))).setScale(2, BigDecimal.ROUND_HALF_EVEN);
                        c = new BigDecimal(price).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
                    }
                }
                incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue());
                incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue());
                driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driverService.updateById(driver);
                pushUtil.removeTask(orderId, 3);//删除定时任务,结束推送数据
                systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderCrossCity.getUserId());
                break;