Pu Zhibing
2024-12-25 70ea508da8a26ea4d562000bc00dc6ba5e11cb3f
UserAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -355,28 +355,6 @@
                userRedPacketRecordService.updateById(query);
            }
            //添加已收入明细
            Line line = lineService.selectById(orderCrossCity.getLineId());
            Driver driver = driverService.selectById(orderCrossCity.getDriverId());
            Double speMoney = driver.getIntercityCommission();
            BigDecimal d = null;//企业收入
            BigDecimal c = null;//司机收入
            if(driver.getSpecialCarCommissionType() == 2){//固定
                d = new BigDecimal(speMoney);
                c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
            }
            if(driver.getSpecialCarCommissionType() == 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);
            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
            new Thread(new Runnable() {
                @Override
@@ -445,14 +423,20 @@
            Double speMoney = driver.getIntercityCommission();
            BigDecimal d = null;//企业收入
            BigDecimal c = null;//司机收入
            if(driver.getSpecialCarCommissionType() == 2){//固定
                d = new BigDecimal(speMoney);
                c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
            }
            if(driver.getSpecialCarCommissionType() == 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);
            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());