From 6408a348e14193b0f625673d4e4b22b9fbd1e369 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 08 八月 2025 18:10:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 70 ++++++++++++++++++++++++++++++++++-
1 files changed, 68 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..48e6314 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("");
@@ -646,6 +703,14 @@
map.put("couponMoney", orderPrivateCar.getCouponMoney());//优惠券抵扣金额
map.put("discountMoney", orderPrivateCar.getDiscountMoney());//折扣抵扣金额
map.put("discount", orderPrivateCar.getDiscount());//折扣
+ if(Objects.isNull(orderPrivateCar.getEstimatedPrice())){
+ orderPrivateCar.setEstimatedPrice(BigDecimal.ZERO);
+ }
+ if(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()).subtract(orderPrivateCar.getEstimatedPrice()).abs().doubleValue() > 3){
+ orderPrivateCar.setIsException(1);
+ }
+ map.put("estimatedPrice", orderPrivateCar.getEstimatedPrice());
+ map.put("isException", orderPrivateCar.getIsException());//是否异常
return map;
}
@@ -936,6 +1001,7 @@
orderPrivateCar.setPriceType(priceType);
orderPrivateCar.setUpdatePrice(updatePrice);
orderPrivateCar.setPriceAuditState(1);
+ orderPrivateCar.setState(6);
this.updateById(orderPrivateCar);
}
}
--
Gitblit v1.7.1