From dfb1f5ab2e8dc03cf2f497ce3327f6ce58700766 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 23 十月 2025 11:35:55 +0800
Subject: [PATCH] 修改bug
---
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java | 179 +++++++++++++----------------------------------------------
1 files changed, 39 insertions(+), 140 deletions(-)
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
index dab81c8..d0c9c5f 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -25,10 +25,7 @@
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
@@ -51,6 +48,8 @@
private IOrderPrivateCarService orderPrivateCarService;
@Autowired
private IPaymentRecordService paymentRecordService;
+ @Autowired
+ private IIncomeService incomeService;
@Autowired
@@ -80,12 +79,12 @@
@Scheduled(fixedRate = 1000 * 60)
public void taskMinute() {
try {
+ //处理超时未支付的订单
+ timoutNoPayment();
//修改过期的优惠券
userCouponRecordService.updateTimeOut();
//修改过期的商家优惠券
userMerchantCouponService.updateExpired();
- //处理超时未支付的订单
- timoutNoPayment();
} catch (Exception e) {
e.printStackTrace();
}
@@ -139,22 +138,27 @@
/**
- * 大于24小时未支付的订单
+ * 大于72小时未支付的订单
*/
public void timoutNoPayment() {
List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("state", 7)
- .eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 72 HOUR)"));
+ .eq("isDelete", 1).eq("recoveryOrder", 0).eq("abnormal", 1).last(" and now() >= DATE_ADD(getoffTime, INTERVAL 72 HOUR)"));
+ List<OrderPrivateCar> orderPrivateCars1 = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("state", 7)
+ .eq("isDelete", 1).eq("recoveryOrder", 0).eq("abnormal", 2).last(" and now() >= DATE_ADD(abnormalTime, INTERVAL 72 HOUR)"));
+ orderPrivateCars.addAll(orderPrivateCars1);
for (OrderPrivateCar orderPrivateCar : orderPrivateCars) {
try {
Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
Company company = companyService.selectById(driver.getCompanyId());
UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
+ Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
+
if(null == orderPrivateCar.getIsCreated()){
//先调中台创建订单
CreateOrderRequest createOrderRequest = new CreateOrderRequest();
createOrderRequest.setTreatShopId(driver.getEmpId().toString());
- createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
- createOrderRequest.setCharge(new BigDecimal(orderPrivateCar.getOrderMoney()));
+ createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isCompensate\":\"0\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
+ createOrderRequest.setCharge(new BigDecimal(orderMoney));
createOrderRequest.setOrderNo("PR" + orderPrivateCar.getId());
createOrderRequest.setOrderId(orderPrivateCar.getTravelId());
createOrderRequest.setCustomerId(userInfo.getOnconUUID());
@@ -166,7 +170,7 @@
//使用备付金进行支付订单
TradePayOffData tradePayOffData = new TradePayOffData();
tradePayOffData.setPartnerPayId(orderPrivateCar.getTravelId());
- tradePayOffData.setTotalFee(Double.valueOf(orderPrivateCar.getOrderMoney() * 100).intValue() + "");
+ tradePayOffData.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + "");
tradePayOffData.setOrderDesc("完成订单");
PayInfo payInfo = OrderUtil.tradePayOff(tradePayOffData);
String retCode = payInfo.getRetCode();
@@ -195,7 +199,7 @@
paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
paymentOrderRequest.setPaymentInfo(JSON.toJSONString(payInfoData.getPaymentInfos()));
paymentOrderRequest.setOrderId(orderPrivateCar.getTravelId());
- paymentOrderRequest.setCharge(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()));
+ paymentOrderRequest.setCharge(BigDecimal.valueOf(orderMoney));
paymentOrderRequest.setPayTime(data.getPayTime());
paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
@@ -220,17 +224,38 @@
BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1);
orderPrivateCar1.setId(null);
orderPrivateCar1.setRecoveryOrder(1);
+ orderPrivateCar1.setIsGenerateRecoveryOrder(0);
+ orderPrivateCar1.setOldOrderId(orderPrivateCar.getId());
+ orderPrivateCar1.setRecoveryOrderCreateDate(new Date());
+ orderPrivateCar1.setAbnormal(1);
+ orderPrivateCar1.setResponsibilityType(null);
+ orderPrivateCar1.setResponsibilityMoney(null);
+ orderPrivateCar1.setAbnormalRemark(null);
+ orderPrivateCar1.setAbnormalIntro(null);
+ orderPrivateCar1.setPromotionMoney(null);
+ orderPrivateCar1.setPromotionDriverId(null);
+ orderPrivateCar1.setPromotionActivityId(null);
+ orderPrivateCar1.setSuccessTime(null);
+ orderPrivateCar1.setPromotion(1);
+ orderPrivateCar1.setPromotionPhone(null);
+ orderPrivateCar1.setPromotionUser(null);
+
//修改原始订单为支付状态
orderPrivateCar.setState(9);
orderPrivateCar.setPayType(5);
- orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney());
+ orderPrivateCar.setPayMoney(orderMoney);
+ orderPrivateCar.setPayTime(new Date());
+ orderPrivateCar.setIsGenerateRecoveryOrder(1);
+ //添加收入
+ Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney);
+ orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
orderPrivateCarService.updateById(orderPrivateCar);
//保存追缴单
orderPrivateCarService.insert(orderPrivateCar1);
//添加三方支付记录
try {
- paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderPrivateCar.getOrderMoney(), payId, 2);
+ paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderMoney, payId, 2);
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -258,132 +283,6 @@
modifyTravelItineraryRequest.setSupplierShopId(company1.getEnterCode());
if (2 == orderPrivateCar1.getPromotion()) {
Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId());
- modifyTravelItineraryRequest.setPromoterId(driver2.getEmpId().toString());
- }
- OrderUtil.modifyTravelItinerary(modifyTravelItineraryRequest);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- //出租车
- List<OrderTaxi> orderTaxis = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("state", 7)
- .eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 24 HOUR)"));
- for (OrderTaxi orderTaxi : orderTaxis) {
- try {
- Driver driver = driverService.selectById(orderTaxi.getDriverId());
- Company company = companyService.selectById(driver.getCompanyId());
- UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId());
- if(null == orderTaxi.getIsCreated()){
- //先调中台创建订单
- CreateOrderRequest createOrderRequest = new CreateOrderRequest();
- createOrderRequest.setTreatShopId(driver.getEmpId().toString());
- createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderTaxi.getPromotion() == 2 ? 1 : 0) + "\"}");
- createOrderRequest.setCharge(new BigDecimal(orderTaxi.getOrderMoney()));
- createOrderRequest.setOrderNo("TA" + orderTaxi.getId());
- createOrderRequest.setOrderId(orderTaxi.getTravelId());
- createOrderRequest.setCustomerId(userInfo.getOnconUUID());
- OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest);
- orderTaxi.setIsCreated(1);
- orderTaxi.setTravelId(orderInfo.getOrderId());
- orderTaxiService.updateById(orderTaxi);
- }
- //使用备付金进行支付订单
- TradePayOffData tradePayOffData = new TradePayOffData();
- tradePayOffData.setPartnerPayId(orderTaxi.getTravelId());
- tradePayOffData.setTotalFee(Double.valueOf(orderTaxi.getOrderMoney() * 100).intValue() + "");
- tradePayOffData.setOrderDesc("完成订单");
- PayInfo payInfo = OrderUtil.tradePayOff(tradePayOffData);
- String retCode = payInfo.getRetCode();
- if (!"000000".equals(retCode)) {
- log.error("备付金支付失败:{}", payInfo.getRetMsg());
- return;
- }
- PayInfoData data = payInfo.getData();
- String status = data.getStatus();
- if ("3".equals(status)) {
- log.error("备付金支付失败:{}", payInfo.getRetMsg());
- return;
- }
- if("0".equals(status)){
- //查询支付信息
- GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
- getPaymentInfoDataRequest.setPartnerPayId(orderTaxi.getTravelId());
- GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
- status = getPaymentInfo.getStatus();
- }
- PayInfoData payInfoData = payInfo.getData();
- PaymentInfo paymentInfo = payInfoData.getPaymentInfos().get(0);
- if(!"0".equals(status)){
- //支付成功,通知三方
- PaymentOrderRequest paymentOrderRequest = new PaymentOrderRequest();
- paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
- paymentOrderRequest.setPaymentInfo(JSON.toJSONString(payInfoData.getPaymentInfos()));
- paymentOrderRequest.setOrderId(orderTaxi.getTravelId());
- paymentOrderRequest.setCharge(BigDecimal.valueOf(orderTaxi.getOrderMoney()));
- paymentOrderRequest.setPayTime(data.getPayTime());
- paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
- OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
-
- //中台修改订单状态
- ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
- request1.setOrderId(orderTaxi.getTravelId());
- request1.setStatus(9);
- if (null != orderTaxi.getDriverId()) {
- request1.setDriverId(driver.getEmpId().toString());
- request1.setSupplierShopId(company.getEnterCode());
- }
- if (2 == orderTaxi.getPromotion()) {
- Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
- request1.setPromoterId(driver2.getEmpId().toString());
- }
- OrderUtil.modifyTravelItinerary(request1);
-
- String payId = payInfo.getData().getPayId();
- //copy原始订单后生成追缴单
- OrderTaxi orderTaxi1 = new OrderTaxi();
- BeanUtils.copyProperties(orderTaxi, orderTaxi1);
- orderTaxi1.setId(null);
- orderTaxi1.setRecoveryOrder(1);
-
- //修改原始订单为支付状态
- orderTaxi.setState(9);
- orderTaxi.setPayType(5);
- orderTaxi.setPayMoney(orderTaxi.getOrderMoney());
- orderTaxiService.updateById(orderTaxi);
- //保存追缴单
- orderTaxiService.insert(orderTaxi1);
- //添加三方支付记录
- try {
- paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderTaxi.getId(), 2, 3, orderTaxi.getOrderMoney(), payId, 2);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
-
-
- Driver driver1 = driverService.selectById(orderTaxi1.getDriverId());
- UserInfo userInfo1 = userInfoService.selectById(orderTaxi1.getUserId());
- Company company1 = companyService.selectById(driver1.getCompanyId());
- //调三方订单中心创建行程单
- CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
- request.setOrderNo("TA" + orderTaxi1.getId());
- request.setCustomerId(userInfo1.getOnconUUID());
- request.setDriverId(driver1.getEmpId().toString());
- request.setSupplierShopId(company1.getEnterCode());
- request.setServiceType(1);
- String travelItinerary = OrderUtil.createTravelItinerary(request);
- orderTaxi1.setTravelId(travelItinerary);
- orderTaxi1.setIsCreated(0);
- orderTaxiService.updateById(orderTaxi1);
- //修改订单状态为待支付
- ModifyTravelItineraryRequest modifyTravelItineraryRequest = new ModifyTravelItineraryRequest();
- modifyTravelItineraryRequest.setOrderId(orderTaxi1.getTravelId());
- modifyTravelItineraryRequest.setStatus(orderTaxi1.getState());
- modifyTravelItineraryRequest.setDriverId(driver1.getEmpId().toString());
- modifyTravelItineraryRequest.setSupplierShopId(company1.getEnterCode());
- if (2 == orderTaxi1.getPromotion()) {
- Driver driver2 = driverService.selectById(orderTaxi1.getPromotionDriverId());
modifyTravelItineraryRequest.setPromoterId(driver2.getEmpId().toString());
}
OrderUtil.modifyTravelItinerary(modifyTravelItineraryRequest);
--
Gitblit v1.7.1