From b219589d73f46bd98995bceb4caf16dadb56b869 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 12 九月 2025 20:30:13 +0800
Subject: [PATCH] 修改bug

---
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   59 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 44 insertions(+), 15 deletions(-)

diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 47cd81d..e1756b2 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -48,6 +48,8 @@
 import java.math.MathContext;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
@@ -1847,7 +1849,7 @@
 			return ResultUtil.error("订单不在待支付状态,不允许支付", "");
 		}
 		Integer uid = orderPrivateCar.getUserId();
-		Double orderMoney = orderPrivateCar.getOrderMoney();
+		Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
 		UserInfo userInfo = userInfoService.selectById(uid);
 		ResultUtil resultUtil = ResultUtil.success(new Object());
 		orderPrivateCar.setCouponMoney(0D);//初始化历史数据
@@ -1942,7 +1944,7 @@
 			//非追缴单才需要添加收入
 			if(0 == orderPrivateCar.getRecoveryOrder()){
 				//添加收入
-				Double orderMoney1 = (1 == orderPrivateCar.getAbnormal() ? orderPrivateCar.getOrderMoney() : orderPrivateCar.getResponsibilityMoney().doubleValue());
+				Double orderMoney1 = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
 				Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney1);
 				orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
 			}
@@ -1982,8 +1984,9 @@
 		if (orderPrivateCar.getState() != 7) {
 			return ResultUtil.error("订单不在待支付状态,不允许支付", new ArrayList<>());
 		}
+
 		Integer uid = orderPrivateCar.getUserId();
-		Double orderMoney = (1 == orderPrivateCar.getAbnormal() ? orderPrivateCar.getOrderMoney() : orderPrivateCar.getResponsibilityMoney().doubleValue());
+		Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
 		UserInfo userInfo = userInfoService.selectById(uid);
 		ResultUtil resultUtil = ResultUtil.success(new Object());
 		orderPrivateCar.setCouponMoney(0D);//初始化历史数据
@@ -2194,9 +2197,9 @@
 				tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString());
 				//追缴单不要分账
 				if(0 == orderPrivateCar.getRecoveryOrder()){
-					tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
+					tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isCompensate\":\"0\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
 				}else{
-					tradeOrderCreateData.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}");
+					tradeOrderCreateData.setField1("{\"profitSharing\":\"0\",\"isCompensate\":\"1\",\"isPromote\":\"0\"}");
 				}
 				tradeOrderCreateData.setCharge(new BigDecimal(orderMoney));
 				tradeOrderCreateData.setOrderId(orderPrivateCar.getTravelId());
@@ -2215,6 +2218,7 @@
 					goodsInfoRequest.setProfitSharing("1");
 				}else{
 					goodsInfoRequest.setProfitSharing("0");
+					goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradeOrderCreateData.setGoodsInfo(goodsInfo);
@@ -2226,6 +2230,15 @@
 				orderPrivateCar.setIsCreated(1);
 				resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
 			}else{
+				//查询支付信息
+				GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
+				getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar.getTravelId());
+				GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
+				String status = getPaymentInfo.getStatus();
+				if("1".equals(status) || "2".equals(status)){
+					payOrderPrivateCarCallback(orderPrivateCar.getId(), getPaymentInfo.getPayId(), 1);
+					return ResultUtil.error("订单已完成支付,不允许重复支付", new ArrayList<>());
+				}
 				//拉起支付
 				TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
 				tradePayOff1Data.setPartnerPayId(orderPrivateCar.getTravelId());
@@ -2240,6 +2253,7 @@
 					goodsInfoRequest.setProfitSharing("1");
 				}else{
 					goodsInfoRequest.setProfitSharing("0");
+					goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradePayOff1Data.setGoodsInfo(goodsInfo);
@@ -2270,11 +2284,11 @@
 						request.setDriverId(driver.getEmpId().toString());
 						ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
 						TravelItinerary travelItinerary = travelItineraryList.getList().get(0);
-						if(travelItinerary.getStatus() != 7 || travelItinerary.getOrderStatus() == 11){
-							GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
-							getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar1.getTravelId());
-							GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
-							payOrderPrivateCarCallback(orderPrivateCar1.getId(), getPaymentInfo.getPayId(), 1);
+						if(travelItinerary.getStatus() != 7 || Arrays.asList(3, 11).contains(travelItinerary.getOrderStatus())){
+							GetPaymentInfoDataRequest getPaymentInfoDataRequest1 = new GetPaymentInfoDataRequest();
+							getPaymentInfoDataRequest1.setPartnerPayId(orderPrivateCar1.getTravelId());
+							GetPaymentInfo getPaymentInfo1 = OrderUtil.paymentInfo(getPaymentInfoDataRequest1);
+							payOrderPrivateCarCallback(orderPrivateCar1.getId(), getPaymentInfo1.getPayId(), 1);
 							break;
 						}
 						Thread.sleep(wait);
@@ -2335,12 +2349,18 @@
 			//非追缴单才添加收入记录
 			if(0 == orderPrivateCar.getRecoveryOrder()){
 				//添加收入
-				Double orderMoney1 = (1 == orderPrivateCar.getAbnormal() ? orderPrivateCar.getOrderMoney() : orderPrivateCar.getResponsibilityMoney().doubleValue());
+				Double orderMoney1 = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
 				Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney1);
 				orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
 			}
 
-
+			//待审核的异常单修改状态为已关闭
+			if(2 == orderPrivateCar.getAbnormal() && 1 == orderPrivateCar.getAbnormalStatus()){
+				orderPrivateCar.setAbnormalStatus(3);
+				orderPrivateCar.setResponsibilityMoney(new BigDecimal(orderPrivateCar.getOrderMoney()));
+				orderPrivateCar.setResponsibilityType(3);
+				orderPrivateCar.setAbnormalRemark("乘客已支付订单,申诉已自动关闭");
+			}
 			this.updateAllColumnById(orderPrivateCar);
 			promotion(orderPrivateCar.getId());
 
@@ -2551,8 +2571,10 @@
 			UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
 			OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
 			SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
-			userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
-			userInfoService.updateById(userInfo);
+			if(null != query1){
+				userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
+				userInfoService.updateById(userInfo);
+			}
 			
 			//处理优惠券和红包
 			if (null != orderPrivateCar.getCouponId()) {
@@ -2585,10 +2607,17 @@
 			//非追缴单才需要记录收入
 			if(0 == orderPrivateCar.getRecoveryOrder()){
 				//添加收入
-				Double orderMoney = (1 == orderPrivateCar.getAbnormal() ? orderPrivateCar.getOrderMoney() : orderPrivateCar.getResponsibilityMoney().doubleValue());
+				Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
 				Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney);
 				orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
 			}
+			//待审核的异常单修改状态为已关闭
+			if(2 == orderPrivateCar.getAbnormal() && 1 == orderPrivateCar.getAbnormalStatus()){
+				orderPrivateCar.setAbnormalStatus(3);
+				orderPrivateCar.setResponsibilityMoney(new BigDecimal(orderPrivateCar.getOrderMoney()));
+				orderPrivateCar.setResponsibilityType(3);
+				orderPrivateCar.setAbnormalRemark("乘客已支付订单,申诉已自动关闭");
+			}
 			this.updateById(orderPrivateCar);
 			promotion(orderPrivateCar.getId());
 			

--
Gitblit v1.7.1