From e9dba0136ace4a62ff5a9c30941b79fc15d10c33 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期一, 04 八月 2025 10:46:50 +0800 Subject: [PATCH] 增加定时任务查询订单状态 --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 70 +++++++++++++++++++++++++++++++++- 1 files changed, 67 insertions(+), 3 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 615c797..16d223b 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 @@ -49,6 +49,8 @@ import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -752,7 +754,7 @@ UserInfo userInfo = userInfoService.selectById(userId); if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){ String registAreaCode = userInfo.getRegistAreaCode(); - TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 1 + ", bizType) limit 1")); + TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).eq("state",1).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 1 + ", bizType) limit 1")); if(tDriverPromotionActivity!=null){ return userInfo.getBindDriverId(); } @@ -2225,8 +2227,45 @@ } resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl()); } - paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderId, 1, 1, orderMoney, "", 1);//添加预支付数据 + + //创建定时任务查询订单支付状态 + ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>()); + threadPoolExecutor.execute(()->{ + try { + int num = 1; + int wait = 0; + while (num <= 13) { + int min = 5000; + wait += (min * num); + OrderPrivateCar orderPrivateCar1 = this.selectById(orderPrivateCar.getId()); + if (orderPrivateCar1.getState() != 7) { + break; + } + GetTravelItineraryListRequest request = new GetTravelItineraryListRequest(); + request.setCustomerId(userInfo.getOnconUUID()); + request.setOrderNo("PR" + orderPrivateCar1.getId()); + 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); + break; + } + Thread.sleep(wait); + num++; + } + } catch (Exception e) { + e.printStackTrace(); + }finally { + threadPoolExecutor.shutdown(); + } + + }); + } if (payType == 2) {//支付宝支付 if (orderMoney == 0) { @@ -2894,7 +2933,7 @@ } orderPrivateCar.setAbnormalIntro(abnormalIntro); orderPrivateCar.setAbnormalImg(abnormalImg); - orderPrivateCar.setAbnormal(1); + orderPrivateCar.setAbnormal(2); this.baseMapper.updateById(orderPrivateCar); } @@ -2913,6 +2952,7 @@ BigDecimal bigDecimal = tDriverPromotionActivity.getCommissionRatio().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(payMoney)).setScale(2, RoundingMode.HALF_UP); orderPrivateCar.setPromotionDriverId(userInfo.getBindDriverId()); orderPrivateCar.setPromotionMoney(bigDecimal); + orderPrivateCar.setPromotionActivityId(tDriverPromotionActivity.getId()); this.baseMapper.updateById(orderPrivateCar); } } @@ -2927,4 +2967,28 @@ } } } + + @Override + public List<Map<String, Object>> queryMyTripList(Integer uid, Integer pageNum, Integer size) throws Exception { + pageNum = (pageNum - 1) * size; + List<Map<String, Object>> maps = orderPrivateCarMapper.queryMyTripList(uid, pageNum, size); + for (Map<String, Object> map : maps) { + if (Integer.valueOf(String.valueOf(map.get("state"))) == 11) { + map.put("state", map.get("oldState")); + } + } + return maps; + } + + @Override + public List<Map<String, Object>> queryMyTripListAll(Integer uid) throws Exception { + + List<Map<String, Object>> maps = orderPrivateCarMapper.queryMyTripListAll(uid); + for (Map<String, Object> map : maps) { + if (Integer.valueOf(String.valueOf(map.get("state"))) == 11) { + map.put("state", map.get("oldState")); + } + } + return maps; + } } -- Gitblit v1.7.1