From c3e5e631dbb19f1fbdc4ceb99b775354c303a92a Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 16 一月 2025 20:42:41 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/XianNingChuXing --- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 137 +++++++++++++++++++++++++++++++-------------- 1 files changed, 93 insertions(+), 44 deletions(-) diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java index 7041973..2f2386d 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java @@ -20,9 +20,11 @@ import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.dao.TPhoneMapper; +import com.stylefeng.guns.modular.taxi.dao.TransactionDetailsMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.model.PaymentRecord; import com.stylefeng.guns.modular.taxi.model.TPhone; +import com.stylefeng.guns.modular.taxi.model.TransactionDetails; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; @@ -164,7 +166,6 @@ - @Resource private TPhoneMapper tPhoneMapper; @@ -177,7 +178,8 @@ * @throws Exception */ @Override - public synchronized ResultUtil<BaseWarpper> taxiOrder(OrderTaxi orderTaxi, Integer uid) throws Exception { + public synchronized ResultUtil<BaseWarpper> taxiOrder(OrderTaxi orderTaxi, Integer uid,String areaCode) throws Exception { + System.out.println("出租车==========================================="+orderTaxi); //定义用户所属公司 UserInfo userInfo1 = userInfoService.selectById(uid); if (userInfo1.getIsBlack()==1){ @@ -577,8 +579,9 @@ placeOrderWay = 3; break; } + Company company = companyService.selectById(orderTaxi.getCompanyId()); //添加交易明细 - transactionDetailsService.saveDataTaxi(uid, "取消订单", query.getMoney(), 2, 1, 1, 2, id,placeOrderWay); + transactionDetailsService.saveDataTaxi(uid, "取消订单", query.getMoney(), 2, 1, 1, 2, id,placeOrderWay,company.getId()); userInfoService.updateById(userInfo); //解除小号绑定 @@ -778,7 +781,7 @@ userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId()); - userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 +// userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 Integer placeOrderWay = null; switch (orderTaxi.getOrderSource()){ case 2: @@ -798,7 +801,7 @@ break; } //添加交易明细 - transactionDetailsService.saveDataTaxi(uid, "完成订单", orderMoney, 2, 1, 1, 2, orderId,placeOrderWay); +// transactionDetailsService.saveDataTaxi(uid, "完成订单", orderMoney, 2, 1, 1, 2, orderId,placeOrderWay); userInfoService.updateById(userInfo); orderTaxi.setState(8); @@ -818,24 +821,46 @@ } //添加已收入明细 - Company company = companyService.selectById(orderTaxi.getCompanyId()); - Double taxi = company.getTaxiMoney(); - BigDecimal d = null;//企业收入 - BigDecimal c = null;//司机收入 - if(company.getIsTaxiFixedOrProportional() == 2){//固定 - d = new BigDecimal(taxi); - c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 - } - if(company.getIsTaxiFixedOrProportional() == 1){//比例 - d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN); - c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue()); - incomeService.saveData(2, orderTaxi.getDriverId(), 2, orderTaxi.getId(), 2, c.doubleValue()); +// Company company = companyService.selectById(orderTaxi.getCompanyId()); +// Double taxi = company.getTaxiMoney(); +// BigDecimal d = null;//企业收入 +// BigDecimal c = null;//司机收入 +// if(company.getIsTaxiFixedOrProportional() == 2){//固定 +// d = new BigDecimal(taxi); +// c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 +// } +// if(company.getIsTaxiFixedOrProportional() == 1){//比例 +// d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN); +// c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); +// } +// incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue()); +// incomeService.saveData(2, orderTaxi.getDriverId(), 2, orderTaxi.getId(), 2, c.doubleValue()); Driver driver = driverService.selectById(orderTaxi.getDriverId()); - 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()); +// 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()); + Company company = companyService.selectById(driver.getFranchiseeId()); + if(Objects.isNull(company)){ + company = companyService.selectById(driver.getCompanyId()); + } + // 司机收入 + double moneyTwo; + // 平台收入 + double money; + if(orderTaxi.getOrderSource() == 2 || orderTaxi.getOrderSource() == 3){ + double v = company.getPercentageDeduction() / 100; + money = v * orderTaxi.getOrderMoney(); + moneyTwo = orderTaxi.getOrderMoney()-money; + }else { + money = company.getFixedDeduction(); + moneyTwo = orderTaxi.getOrderMoney()-money; + } + driver.setBalance(driver.getBalance() + moneyTwo); + // 新增扣除使用费记录 + transactionDetailsService.saveDataTaxi(driver.getId(), "软件使用费", money, 2, 1, 2, 6, orderTaxi.getId(),placeOrderWay,company.getId()); + // 司机订单收入 + transactionDetailsService.saveDataTaxi(driver.getId(), "完成订单", moneyTwo, 1, 1, 2, 2, orderTaxi.getId(),placeOrderWay,company.getId()); + driverService.updateById(driver); // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 @@ -1076,8 +1101,8 @@ if(null == distance){ System.err.println("查询距离出错了"); }else{ - d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; + d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000),2, RoundingMode.HALF_UP).toString(); + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60),2, RoundingMode.HALF_UP) + ""; } orderServerWarpper.setReservationMileage("0"); orderServerWarpper.setReservationTime("0"); @@ -1226,8 +1251,9 @@ placeOrderWay = 3; break; } - //添加交易明细 - transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay); +// Company company = companyService.selectById(orderTaxi.getCompanyId()); +// //添加交易明细 +// transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay,company.getId()); orderTaxi.setState(8); orderTaxi.setPayType(type); orderTaxi.setPayMoney(query.getAmount()); @@ -1258,24 +1284,46 @@ paymentRecordService.updateById(query); //添加已收入明细 - Company company = companyService.selectById(orderTaxi.getCompanyId()); - Double taxi = company.getTaxiMoney(); - BigDecimal d = null;//企业收入 - BigDecimal c = null;//司机收入 - if(company.getIsTaxiFixedOrProportional() == 2){//固定 - d = new BigDecimal(taxi); - c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - if(company.getIsTaxiFixedOrProportional() == 1){//比例 - d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN); - c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue()); - incomeService.saveData(2, orderTaxi.getDriverId(), 2, orderTaxi.getId(), 2, c.doubleValue()); +// Company company = companyService.selectById(orderTaxi.getCompanyId()); +// Double taxi = company.getTaxiMoney(); +// BigDecimal d = null;//企业收入 +// BigDecimal c = null;//司机收入 +// if(company.getIsTaxiFixedOrProportional() == 2){//固定 +// d = new BigDecimal(taxi); +// c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); +// } +// if(company.getIsTaxiFixedOrProportional() == 1){//比例 +// d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN); +// c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); +// } +// incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue()); +// incomeService.saveData(2, orderTaxi.getDriverId(), 2, orderTaxi.getId(), 2, c.doubleValue()); Driver driver = driverService.selectById(orderTaxi.getDriverId()); - 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()); +// 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()); + Company company = companyService.selectById(driver.getFranchiseeId()); + if(Objects.isNull(company)){ + company = companyService.selectById(driver.getCompanyId()); + } + // 司机收入 + double moneyTwo; + // 平台收入 + double money; + if(orderTaxi.getOrderSource() == 2 || orderTaxi.getOrderSource() == 3){ + double v = company.getPercentageDeduction() / 100; + money = v * orderTaxi.getOrderMoney(); + moneyTwo = orderTaxi.getOrderMoney()-money; + }else { + money = company.getFixedDeduction(); + moneyTwo = orderTaxi.getOrderMoney()-money; + } + driver.setBalance(driver.getBalance() + moneyTwo); + // 新增扣除使用费记录 + transactionDetailsService.saveDataTaxi(driver.getId(), "软件使用费", money, 2, 1, 2, 6, orderTaxi.getId(),placeOrderWay,company.getId()); + // 司机订单收入 + transactionDetailsService.saveDataTaxi(driver.getId(), "完成订单", moneyTwo, 1, 1, 2, 2, orderTaxi.getId(),placeOrderWay,company.getId()); + driverService.updateById(driver); // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 @@ -1338,8 +1386,9 @@ placeOrderWay = 3; break; } + Company company = companyService.selectById(orderTaxi.getCompanyId()); //添加交易明细 - transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay); + transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay,company.getId()); orderTaxi.setState(10); //解除小号绑定 if(orderTaxi.getBindId() != null){ -- Gitblit v1.7.1