From 6dbd3b95671e6ac00a442b9866331397af1b10ba Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 08 八月 2025 09:58:46 +0800 Subject: [PATCH] 修改bug --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java | 272 ++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 180 insertions(+), 92 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 b255273..dab81c8 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 @@ -1,6 +1,7 @@ package com.stylefeng.guns.modular.system.util; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.modular.account.controller.AppOrderController; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; @@ -142,9 +143,26 @@ */ 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 24 HOUR)")); + .eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 72 HOUR)")); for (OrderPrivateCar orderPrivateCar : orderPrivateCars) { try { + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + Company company = companyService.selectById(driver.getCompanyId()); + UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId()); + 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.setOrderNo("PR" + orderPrivateCar.getId()); + createOrderRequest.setOrderId(orderPrivateCar.getTravelId()); + createOrderRequest.setCustomerId(userInfo.getOnconUUID()); + OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest); + orderPrivateCar.setIsCreated(1); + orderPrivateCar.setTravelId(orderInfo.getOrderId()); + orderPrivateCarService.updateById(orderPrivateCar); + } //使用备付金进行支付订单 TradePayOffData tradePayOffData = new TradePayOffData(); tradePayOffData.setPartnerPayId(orderPrivateCar.getTravelId()); @@ -154,31 +172,40 @@ String retCode = payInfo.getRetCode(); if (!"000000".equals(retCode)) { log.error("备付金支付失败:{}", payInfo.getRetMsg()); - continue; + return; } PayInfoData data = payInfo.getData(); String status = data.getStatus(); if ("3".equals(status)) { log.error("备付金支付失败:{}", payInfo.getRetMsg()); - continue; + return; } - //查询三方订单状态 - Driver driver1 = driverService.selectById(orderPrivateCar.getDriverId()); - Company company = companyService.selectById(driver1.getCompanyId()); - UserInfo userInfo1 = userInfoService.selectById(orderPrivateCar.getUserId()); - GetTravelItineraryListRequest request = new GetTravelItineraryListRequest(); - request.setCustomerId(userInfo1.getOnconUUID()); - request.setOrderNo("PR" + orderPrivateCar.getId()); - request.setDriverId(driver1.getEmpId().toString()); - ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request); - Integer status1 = travelItineraryList.getList().get(0).getStatus(); - if(8 != status1){ + if("0".equals(status)){ + //查询支付信息 + GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest(); + getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar.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(orderPrivateCar.getTravelId()); + paymentOrderRequest.setCharge(BigDecimal.valueOf(orderPrivateCar.getOrderMoney())); + paymentOrderRequest.setPayTime(data.getPayTime()); + paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId()); + OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest); + //中台修改订单状态 ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); request1.setOrderId(orderPrivateCar.getTravelId()); - request1.setStatus(8); + request1.setStatus(9); if (null != orderPrivateCar.getDriverId()) { - request1.setDriverId(driver1.getEmpId().toString()); + request1.setDriverId(driver.getEmpId().toString()); request1.setSupplierShopId(company.getEnterCode()); } if (2 == orderPrivateCar.getPromotion()) { @@ -186,38 +213,55 @@ request1.setPromoterId(driver2.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request1); + + String payId = payInfo.getData().getPayId(); + //copy原始订单后生成追缴单 + OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar(); + BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1); + orderPrivateCar1.setId(null); + orderPrivateCar1.setRecoveryOrder(1); + + //修改原始订单为支付状态 + orderPrivateCar.setState(9); + orderPrivateCar.setPayType(5); + orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney()); + orderPrivateCarService.updateById(orderPrivateCar); + //保存追缴单 + orderPrivateCarService.insert(orderPrivateCar1); + //添加三方支付记录 + try { + paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderPrivateCar.getOrderMoney(), payId, 2); + } catch (Exception e) { + throw new RuntimeException(e); + } + + + Driver driver1 = driverService.selectById(orderPrivateCar1.getDriverId()); + UserInfo userInfo1 = userInfoService.selectById(orderPrivateCar1.getUserId()); + Company company1 = companyService.selectById(driver1.getCompanyId()); + //调三方订单中心创建行程单 + CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); + request.setOrderNo("PR" + orderPrivateCar1.getId()); + request.setCustomerId(userInfo1.getOnconUUID()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company1.getEnterCode()); + request.setServiceType(2); + String travelItinerary = OrderUtil.createTravelItinerary(request); + orderPrivateCar1.setTravelId(travelItinerary); + orderPrivateCar1.setIsCreated(0); + orderPrivateCarService.updateById(orderPrivateCar1); + //修改订单状态为待支付 + ModifyTravelItineraryRequest modifyTravelItineraryRequest = new ModifyTravelItineraryRequest(); + modifyTravelItineraryRequest.setOrderId(orderPrivateCar1.getTravelId()); + modifyTravelItineraryRequest.setStatus(orderPrivateCar1.getState()); + modifyTravelItineraryRequest.setDriverId(driver1.getEmpId().toString()); + modifyTravelItineraryRequest.setSupplierShopId(company1.getEnterCode()); + if (2 == orderPrivateCar1.getPromotion()) { + Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId()); + modifyTravelItineraryRequest.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(modifyTravelItineraryRequest); } - - String payId = payInfo.getData().getPayId(); - //copy原始订单后生成追缴单 - OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar(); - BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1); - orderPrivateCar1.setId(null); - orderPrivateCar1.setRecoveryOrder(1); - - //修改原始订单为支付状态 - orderPrivateCar.setState(8); - orderPrivateCar.setPayType(5); - orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney()); - orderPrivateCarService.updateById(orderPrivateCar); - //添加三方支付记录 - paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderPrivateCar.getOrderMoney(), payId, 2); - - - Driver driver = driverService.selectById(orderPrivateCar1.getDriverId()); - UserInfo userInfo = userInfoService.selectById(orderPrivateCar1.getUserId()); - //调用三方创建订单 - CreateOrderRequest createOrderRequest = new CreateOrderRequest(); - createOrderRequest.setTreatShopId(driver.getEmpId().toString()); - createOrderRequest.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}"); - createOrderRequest.setCharge(new BigDecimal(orderPrivateCar1.getOrderMoney())); - createOrderRequest.setOrderNo("PR" + orderPrivateCar1.getId()); - createOrderRequest.setCustomerId(userInfo.getOnconUUID()); - OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest); - orderPrivateCar1.setTravelId(orderInfo.getOrderId()); - orderPrivateCar1.setIsCreated(1); - //保存追缴单 - orderPrivateCarService.insert(orderPrivateCar1); } catch (Exception e) { e.printStackTrace(); } @@ -228,6 +272,23 @@ .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()); @@ -237,31 +298,40 @@ String retCode = payInfo.getRetCode(); if (!"000000".equals(retCode)) { log.error("备付金支付失败:{}", payInfo.getRetMsg()); - continue; + return; } PayInfoData data = payInfo.getData(); String status = data.getStatus(); if ("3".equals(status)) { log.error("备付金支付失败:{}", payInfo.getRetMsg()); - continue; + return; } - //查询三方订单状态 - Driver driver1 = driverService.selectById(orderTaxi.getDriverId()); - Company company = companyService.selectById(driver1.getCompanyId()); - UserInfo userInfo1 = userInfoService.selectById(orderTaxi.getUserId()); - GetTravelItineraryListRequest request = new GetTravelItineraryListRequest(); - request.setCustomerId(userInfo1.getOnconUUID()); - request.setOrderNo("TA" + orderTaxi.getId()); - request.setDriverId(driver1.getEmpId().toString()); - ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request); - Integer status1 = travelItineraryList.getList().get(0).getStatus(); - if(8 != status1){ + 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(8); + request1.setStatus(9); if (null != orderTaxi.getDriverId()) { - request1.setDriverId(driver1.getEmpId().toString()); + request1.setDriverId(driver.getEmpId().toString()); request1.setSupplierShopId(company.getEnterCode()); } if (2 == orderTaxi.getPromotion()) { @@ -269,37 +339,55 @@ 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); } - - String payId = payInfo.getData().getPayId(); - //copy原始订单后生成追缴单 - OrderTaxi orderTaxi1 = new OrderTaxi(); - BeanUtils.copyProperties(orderTaxi, orderTaxi1); - orderTaxi1.setId(null); - orderTaxi1.setRecoveryOrder(1); - - //修改原始订单为支付状态 - orderTaxi.setState(8); - orderTaxi.setPayType(5); - orderTaxi.setPayMoney(orderTaxi.getOrderMoney()); - orderTaxiService.updateById(orderTaxi); - //添加三方支付记录 - paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderTaxi.getId(), 2, 3, orderTaxi.getOrderMoney(), payId, 2); - - Driver driver = driverService.selectById(orderTaxi1.getDriverId()); - UserInfo userInfo = userInfoService.selectById(orderTaxi1.getUserId()); - //调用三方创建订单 - CreateOrderRequest createOrderRequest = new CreateOrderRequest(); - createOrderRequest.setTreatShopId(driver.getEmpId().toString()); - createOrderRequest.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}"); - createOrderRequest.setCharge(new BigDecimal(orderTaxi1.getOrderMoney())); - createOrderRequest.setOrderNo("TA" + orderTaxi1.getId()); - createOrderRequest.setCustomerId(userInfo.getOnconUUID()); - OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest); - orderTaxi1.setTravelId(orderInfo.getOrderId()); - orderTaxi1.setIsCreated(1); - //保存追缴单 - orderTaxiService.insert(orderTaxi1); } catch (Exception e) { e.printStackTrace(); } -- Gitblit v1.7.1