From 74aaaab01e109d3f408cf586ea2c4661872190f1 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期二, 05 八月 2025 18:40:42 +0800 Subject: [PATCH] 先用后付 --- DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 61 +++++++++++++++++++++++++++++- 1 files changed, 59 insertions(+), 2 deletions(-) diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index 999e374..5518188 100644 --- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -86,7 +86,8 @@ @Resource private UserInfoMapper userInfoMapper; - + @Autowired + private ITransactionDetailsService transactionDetailsService; @Autowired private ICompanyService companyService; @@ -94,7 +95,8 @@ private IIncomeService incomeService; @Autowired private ISpecialAreaBillingService specialAreaBillingService; - + @Autowired + private PayMoneyUtil payMoneyUtil; @Value("${filePath}") private String filePath; @@ -567,6 +569,61 @@ orderPrivateCar.setState(7); } + if(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).compareTo(BigDecimal.ZERO)>0 && new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).compareTo(new BigDecimal(orderPrivateCar.getOrderMoney()))>-1) { + orderPrivateCar.setState(8); + // 退款情况 + if (new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).compareTo(new BigDecimal(orderPrivateCar.getOrderMoney())) > 0) { + // 退款 + if (orderPrivateCar.getPayType() == 1 && orderPrivateCar.getOrderMoney() != 0) {//微信退款 + // 微信退款 + payMoneyUtil.wxRefund(orderPrivateCar.getTransactionId(), orderPrivateCar.getOrderNum(), String.valueOf(orderPrivateCar.getPaymentAdvanceMoney()), String.valueOf(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).subtract(new BigDecimal(orderPrivateCar.getOrderMoney()))), "/base/transferWXNotify"); + orderPrivateCar.setPayMoney(new BigDecimal(orderPrivateCar.getOrderMoney()).doubleValue()); + } + if (orderPrivateCar.getPayType() == 2 && orderPrivateCar.getOrderMoney() != 0) {//支付宝退款 + // 支付宝退款 + payMoneyUtil.aliRefund(orderPrivateCar.getTransactionId(), String.valueOf(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).subtract(new BigDecimal(orderPrivateCar.getOrderMoney())).multiply(new BigDecimal(100)))); + orderPrivateCar.setPayMoney(new BigDecimal(orderPrivateCar.getOrderMoney()).doubleValue()); + } + if (orderPrivateCar.getPayType() == 3 && orderPrivateCar.getOrderMoney() != 0) {//余额支付 + BigDecimal refundMoney = new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).subtract(new BigDecimal(orderPrivateCar.getOrderMoney())); + // 余额退款 + UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId()); + userInfo.setBalance(new BigDecimal(userInfo.getBalance()).add(refundMoney).doubleValue()); + userInfoMapper.updateById(userInfo); + //添加交易明细 + transactionDetailsService.saveData(orderPrivateCar.getUserId(), "专车差价退款", refundMoney.doubleValue(), 2, 1, 1, 1, orderPrivateCar.getId()); + } + } else { + orderPrivateCar.setPayMoney(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).doubleValue()); + } + //添加已收入明细 + Company company = companyService.selectById(orderPrivateCar.getCompanyId()); + Double speMoney = company.getSpeMoney(); + BigDecimal d = null;//企业收入 + BigDecimal c = null;//司机收入 + if(company.getIsSpeFixedOrProportional() == 2){//固定 + d = new BigDecimal(speMoney); + c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 + if(c.compareTo(BigDecimal.ZERO)<1){ + c = BigDecimal.ZERO; + } + } + if(company.getIsSpeFixedOrProportional() == 1){//比例 + Double price = orderPrivateCar.getStartMoney() + orderPrivateCar.getMileageMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getDurationMoney() + orderPrivateCar.getLongDistanceMoney(); + 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(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); + } + incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue()); + incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue()); + Driver driver = driverService.selectById(orderPrivateCar.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()); + driverService.updateById(driver); + }else { + orderPrivateCar.setState(7); + } + // Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); // if(String.valueOf(map.get("code")).equals("200")){ // orderPrivateCar.setTelX(""); -- Gitblit v1.7.1