From b50c961c49851d140d77d549db34a9f6400dadd4 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期二, 19 八月 2025 19:03:10 +0800 Subject: [PATCH] 跨城推广 --- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java | 139 +++++++++++++++++++++++++-------------------- 1 files changed, 77 insertions(+), 62 deletions(-) diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java index d3625af..7f36969 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java @@ -2,6 +2,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.service.ITEnterpriseWithdrawalService; @@ -126,38 +127,42 @@ // if(null != query){ // return ResultUtil.error("有未完成支付的改派申请"); // } + int types=1; Reassign query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 1); if (null != query) { + types=2; // return ResultUtil.error("不能重复提交申请"); reassignMapper.deleteById(query.getId()); } query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 2); - if (null != query) { - return ResultUtil.error("您提交的申请正在处理中"); - } + if (null != query) { + types=2; +// return ResultUtil.error("您提交的申请正在处理中"); + } //获取支付金额 Double aDouble = orderService.queryReassignMoney(reassign.getOrderId(), reassign.getOrderType()); reassign.setMoney(aDouble); reassign.setOriginalDriverId(uid); reassign.setOriginalCarId(driver.getCarId()); reassign.setInsertTime(new Date()); - this.insert(reassign); - - systemNoticeService.addSystemNotice(2, "您的改派申请已成功提交,我们会尽快为你处理!", uid, 1); + if(types==1){ + this.insert(reassign); + } +// systemNoticeService.addSystemNotice(2, "您的改派申请已成功提交,我们会尽快为你处理!", uid, 1); //开始支付 if (null != reassign.getPayType()) { if (reassign.getPayType() == 1) {//微信支付 reassign.setState(1); - resultUtil = payMoneyUtil.weixinpay("改派订单", "", reassign.getId() + "_" + reassign.getOrderType() + "_" + UUIDUtil.getRandomCode(5), aDouble.toString(), "/base/wxReassign", "APP", ""); - paymentRecordService.saveData(1, uid, 2, reassign.getOrderId(), reassign.getOrderType(), 1, aDouble, "", 1);//添加预支付数据 + resultUtil = payMoneyUtil.weixinpay("改派订单", "", reassign.getId() + "_" + reassign.getOrderType() + "_" + UUIDUtil.getRandomCode(5), "0", "/base/wxReassign", "APP", ""); + paymentRecordService.saveData(1, uid, 2, reassign.getOrderId(), reassign.getOrderType(), 1, 0.0, "", 1);//添加预支付数据 } if (reassign.getPayType() == 2) {//支付宝 reassign.setState(1); - resultUtil = payMoneyUtil.alipay("改派订单", "改派订单", "", reassign.getId() + "_" + reassign.getOrderType() + "_" + UUIDUtil.getRandomCode(5), aDouble.toString(), "/base/aliReassign"); - paymentRecordService.saveData(1, uid, 2, reassign.getOrderId(), reassign.getOrderType(), 2, aDouble, "", 1);//添加预支付数据 + resultUtil = payMoneyUtil.alipay("改派订单", "改派订单", "", reassign.getId() + "_" + reassign.getOrderType() + "_" + UUIDUtil.getRandomCode(5), "0", "/base/aliReassign"); + paymentRecordService.saveData(1, uid, 2, reassign.getOrderId(), reassign.getOrderType(), 2, 0.0, "", 1);//添加预支付数据 } if (reassign.getPayType() == 3) {//余额 reassign.setState(2); @@ -207,7 +212,7 @@ //添加已收入明细 // incomeService.saveData(1, orderPrivateCar.getCompanyId(), 4, orderPrivateCar.getId(), 1, reassign.getMoney()); // qyt 改派直接推送 - pushOrderPrivate(orderPrivateCar, uid); + pushOrderPrivate(orderPrivateCar, uid,types); break; case 2: OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId()); @@ -233,7 +238,7 @@ // incomeService.saveData(1, orderTaxi.getCompanyId(), 4, orderTaxi.getId(), 2, reassign.getMoney()); // qyt 改派直接推送 - pushOrderTaxi(orderTaxi, uid); + pushOrderTaxi(orderTaxi, uid,types); break; case 4: OrderLogistics orderLogistics = orderLogisticsService.selectById(reassign.getOrderId()); @@ -267,14 +272,13 @@ // jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId()); // } - } - if (reassign.getPayType() == 4) { - // TODO 司机云闪付 改派调起云闪付 - Double payMoney = reassign.getMoney(); - paymentRecordService.saveData(1, uid, 2, reassign.getOrderId(), reassign.getOrderType(), 4, aDouble, "", 1);//添加预支付数据 - resultUtil = placeAnOrder(new BigDecimal(payMoney), 4, 1, reassign.getId()); - } +// if (reassign.getPayType() == 4) { +// // TODO 司机云闪付 改派调起云闪付 +// Double payMoney = reassign.getMoney(); +// paymentRecordService.saveData(1, uid, 2, reassign.getOrderId(), reassign.getOrderType(), 4, aDouble, "", 1);//添加预支付数据 +// resultUtil = placeAnOrder(new BigDecimal(payMoney), 4, 1, reassign.getId()); +// } } return resultUtil; } @@ -284,8 +288,12 @@ Driver driver = driverService.selectById(uid); //修改改派通知状态 switch (reassign.getOrderType()) { + case 1: OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(reassign.getOrderId()); + if(orderPrivateCar.getState() == 10){ + return ResultUtil.error("订单已取消"); + } orderPrivateCar.setState(orderPrivateCar.getOldState()); orderPrivateCar.setReassignNotice(0); orderPrivateCarService.updateById(orderPrivateCar); @@ -305,6 +313,9 @@ break; case 2: OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId()); + if(orderTaxi.getState() == 10){ + return ResultUtil.error("订单已取消"); + } orderTaxi.setState(orderTaxi.getOldState()); orderTaxi.setReassignNotice(0); orderTaxiService.updateById(orderTaxi); @@ -322,6 +333,7 @@ OrderUtil.modifyTravelItinerary(request1); break; } + reassignMapper.delete(new EntityWrapper<Reassign>().eq("orderId",reassign.getOrderId()).eq("orderType",reassign.getOrderType())); return ResultUtil.success(); } @@ -746,7 +758,7 @@ * @param orderTaxi * @throws Exception */ - public void pushOrderTaxi(OrderTaxi orderTaxi, Integer uid) throws Exception { + public void pushOrderTaxi(OrderTaxi orderTaxi, Integer uid,int type) throws Exception { new Thread(new Runnable() { @Override public void run() { @@ -759,7 +771,8 @@ } OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()); List<PushOrder> querys = pushOrderService.querys(null, 2, openCity.getId());//获取需要推送的次数 - for (int i = 1; i <= 6; i++) { + int size=18; + for (int i = 1; i <= size; i++) { int finalI = i; PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null); System.out.println("pushOrder:" + pushOrder); @@ -790,10 +803,13 @@ Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 Integer state = orderTaxi1.getState(); if (state != 1 || state!= 11) { + orderIds.remove(orderTaxi.getId()); break; } - if (i == 6 && (state == 1 || state==11)) { + if (i == 18 && (state == 1 || state==11)) { + System.err.println("结束改派退单-------------修改订单为取消状态"); pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2); + pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, 10); orderTaxi1.setState(10); orderTaxiService.updateById(orderTaxi1); orderIds.remove(orderTaxi.getId()); @@ -812,7 +828,7 @@ * @param orderPrivateCar * @throws Exception */ - public void pushOrderPrivate(OrderPrivateCar orderPrivateCar, Integer uid) throws Exception { + public void pushOrderPrivate(OrderPrivateCar orderPrivateCar, Integer uid,int type) throws Exception { new Thread(new Runnable() { @Override public void run() { @@ -827,7 +843,8 @@ } OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); List<PushOrder> querys = pushOrderService.querys(null, 1, openCity.getId());//获取需要推送的次数 - for (int i = 1; i <= 6; i++) { + int size=18; + for (int i = 1; i <= size; i++) { OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(id); if (null == orderPrivateCar || (orderPrivateCar.getState() > 1 && orderPrivateCar.getState() != 11)) { break; @@ -835,49 +852,47 @@ int finalI = i; PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null); System.out.println("pushOrder:" + pushOrder); - int i2 = pushOrder.getPushTime() / 10; - if (i2 == 0) { - i2 = 1; + + if (orderPrivateCar.getState() > 1 && orderPrivateCar.getState() != 11) { + break; } - for (int i1 = 0; i1 < i2; i1++) { - if (orderPrivateCar.getState() > 1 && orderPrivateCar.getState() != 11) { - break; - } - //获取空闲司机 - List<Driver> list = driverService.queryIdleDriver(orderType, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 - list = list.stream().filter(e -> e.getId() != uid).collect(Collectors.toList()); - if (list.size() > 0) { - double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 - int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) - lastIndex = lastIndex == 0 ? list.size() : lastIndex; - list = list.subList(0, lastIndex);//获取空闲司机中占比数据 - for (Driver driver : list) {//开始进行推送 - boolean bo = false; - for (Integer integer : integers) { - if (integer.compareTo(driver.getId()) == 0) { - bo = true; - break; - } + //获取空闲司机 + List<Driver> list = driverService.queryIdleDriver(orderType, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 + list = list.stream().filter(e -> !e.getId().equals(uid)).collect(Collectors.toList()); + if (list.size() > 0) { + double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 + int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) + lastIndex = lastIndex == 0 ? list.size() : lastIndex; + list = list.subList(0, lastIndex);//获取空闲司机中占比数据 + for (Driver driver : list) {//开始进行推送 + boolean bo = false; + for (Integer integer : integers) { + if (integer.compareTo(driver.getId()) == 0) { + bo = true; + break; } - if (bo) { - continue; - } - pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime()); } - } - Thread.sleep(10000);//设置等待时间 - Integer state = orderPrivateCar.getState(); - if (state > 1 && state != 11) { - orderIds.remove(orderPrivateCar.getId()); - return; - } - if (i == 6 && (state == 1 || state==11)) { - pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); - orderPrivateCar.setState(10); - orderPrivateCarService.updateById(orderPrivateCar); - orderIds.remove(orderPrivateCar.getId()); + if (bo) { + continue; + } + pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime()); } } + Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 + Integer state = orderPrivateCar.getState(); + if (state > 1 && state != 11) { + orderIds.remove(orderPrivateCar.getId()); + return; + } + if (i == 18 && (state == 1 || state==11)) { + System.err.println("结束改派退单-------------修改订单为取消状态"); + pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 10); + orderPrivateCar.setState(10); + orderPrivateCarService.updateById(orderPrivateCar); + orderIds.remove(orderPrivateCar.getId()); + } + } } catch (Exception e) { e.printStackTrace(); -- Gitblit v1.7.1