From 496ef92b09b1be5dc1beb4ecf031cfc20edbeb94 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期一, 11 五月 2026 13:59:14 +0800
Subject: [PATCH] fix bugs

---
 UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   54 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 49 insertions(+), 5 deletions(-)

diff --git a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 980e3e1..0b3b1f4 100644
--- a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -1149,10 +1149,11 @@
 //				return ResultUtil.success(map);
 			}
 		}else if(!Integer.valueOf(2).equals(orderPrivateCar.getPaymentMode()) && StrUtil.isEmpty(orderPrivateCar.getPrepaySecondPayNo())){
-			UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
-			userInfo.setBalance(userInfo.getBalance() + orderPrivateCar.getPayMoney());
-			userInfoService.updateById(userInfo);
-
+			if (orderPrivateCar.getPayMoney() != null){
+				UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
+				userInfo.setBalance(userInfo.getBalance() + orderPrivateCar.getPayMoney());
+				userInfoService.updateById(userInfo);
+			}
 		}
 		Integer number1 = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid", orderPrivateCar.getPid() == null ? orderPrivateCar.getId() : orderPrivateCar.getPid()).lt("state", 6));
 		Integer number2 = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("id", orderPrivateCar.getPid() == null ? orderPrivateCar.getId() : orderPrivateCar.getPid()).lt("state", 6));
@@ -2895,8 +2896,50 @@
 	}
 
 	private ResultUtil handlePrivateCarPrepayCancelRefund(OrderPrivateCar orderPrivateCar, String reason, String remark, Integer uid) throws Exception {
+		System.out.println("快车退款!!!!");
 		if (!isPrivateCarPrepayMode(orderPrivateCar)) {
 			return null;
+		}
+		if (Integer.valueOf(3).equals(orderPrivateCar.getPayType())) {
+			Double refundAmount = orderPrivateCar.getPayMoney();
+			System.out.println("快车余额退款金额!!!!"+ refundAmount);
+			if (refundAmount == null || refundAmount <= 0) {
+				return ResultUtil.error("余额先付订单退款金额异常");
+			}
+			UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
+			if (userInfo == null) {
+				return ResultUtil.error("用户信息不存在,无法退款");
+			}
+			userInfo.setBalance(new BigDecimal(null != userInfo.getBalance() ? userInfo.getBalance() : 0)
+					.add(new BigDecimal(refundAmount)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+			userInfoService.updateById(userInfo);
+			restorePrivateCarBenefits(orderPrivateCar);
+			transactionDetailsService.saveData(orderPrivateCar.getUserId(), "快车取消订单退款", refundAmount, 1, 1, 1, 1, orderPrivateCar.getId());
+			orderCancelService.saveData(orderPrivateCar.getId(), 1,
+					ToolUtil.isNotEmpty(reason) ? reason : "无司机接单",
+					ToolUtil.isNotEmpty(remark) ? remark : (ToolUtil.isNotEmpty(reason) ? reason : "无司机接单"),
+					1, refundAmount, 2, 1, uid);
+			orderPrivateCar.setState(10);
+			orderPrivateCar.setPrepayStage(5);
+			orderPrivateCar.setPrepayRefundNo("BALANCE_REFUND_1_" + orderPrivateCar.getId() + "_" + ToolUtil.getRandomString(5));
+			orderPrivateCar.setPrepayRefundAmount(refundAmount);
+			orderPrivateCar.setPrepayRefundTime(new Date());
+			this.updateById(orderPrivateCar);
+			if (orderPrivateCar.getDriverId() != null) {
+				this.deleteTask(orderPrivateCar.getId());
+				pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
+				Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+				if (driver != null) {
+					driver.setState(2);
+					driverService.updateById(driver);
+				}
+				if (orderPrivateCar.getBindId() != null) {
+					chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(), orderPrivateCar.getTelX(), (System.currentTimeMillis() + 600000));
+				}
+			}
+			System.out.println("余额退款通知940");
+			systemNoticeService.addSystemNotice(1, "您的快车余额先付订单已取消,退款已退回账户余额,请注意查收。", orderPrivateCar.getUserId(), 1);
+			return ResultUtil.success();
 		}
 		String outRequestNo = orderPrivateCar.getPrepaySecondPayNo();
 		if (ToolUtil.isEmpty(outRequestNo)) {
@@ -3500,12 +3543,13 @@
 
 							}else {
 								// 没找到车辆
+								Thread.sleep(5000);
 								ResultUtil refundResult = handlePrivateCarPrepayCancelRefund(orderPrivateCar, "无司机接单", "无司机接单", orderPrivateCar.getUserId());
 								if (refundResult == null) {
 									orderPrivateCar.setState(10);
 									orderPrivateCarMapper.updateById(orderPrivateCar);
 								}
-								pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, 1);
+								pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, 10);
 							}
 
 

--
Gitblit v1.7.1