From caadb52788bb1ad4ed04a0bdb0ec2fa5fe3df03b Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期二, 13 八月 2024 17:50:23 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml | 89 +++++++++++++++++++++++++++++
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java | 9 +++
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 14 ++++
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java | 29 +++++++++
4 files changed, 140 insertions(+), 1 deletions(-)
diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java
index e416902..f552338 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java
@@ -87,4 +87,13 @@
List<OrderPrivateCar> queryByDriver(@Param("driverId") Integer driverId, @Param("state") Integer...state);
+
+ /**
+ * 批量查询司机的预约单
+ * @param driverIds
+ * @param orderType
+ * @param state
+ * @return
+ */
+ List<OrderPrivateCar> queryOrderByState(@Param("driverIds")List<Integer> driverIds, Integer orderType, @Param("state") Integer...state);
}
diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
index 107906d..5813605 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -548,4 +548,93 @@
#{item}
</foreach>
</select>
+ <select id="queryOrderByState" resultType="com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar">
+ select
+ id as id,
+ `type` as `type`,
+ userId as userId,
+ serverCarModelId as serverCarModelId,
+ driverId as driverId,
+ carId as carId,
+ orderNum as orderNum,
+ placementLon as placementLon,
+ placementLat as placementLat,
+ placementAddress as placementAddress,
+ startLon as startLon,
+ startLat as startLat,
+ startAddress as startAddress,
+ endLon as endLon,
+ endLat as endLat,
+ endAddress as endAddress,
+ boardingLon as boardingLon,
+ boardingLat as boardingLat,
+ boardingAddress as boardingAddress,
+ boardingTime as boardingTime,
+ getoffLon as getoffLon,
+ getoffLat as getoffLat,
+ getoffAddress as getoffAddress,
+ getoffTime as getoffTime,
+ mileage as mileage,
+ payManner as payManner,
+ payType as payType,
+ orderMoney as orderMoney,
+ startMileage as startMileage,
+ startMoney as startMoney,
+ mileageKilometers as mileageKilometers,
+ mileageMoney as mileageMoney,
+ duration as duration,
+ durationMoney as durationMoney,
+ wait as wait,
+ waitMoney as waitMoney,
+ longDistance as longDistance,
+ longDistanceMoney as longDistanceMoney,
+ parkMoney as parkMoney,
+ roadTollMoney as roadTollMoney,
+ redPacketMoney as redPacketMoney,
+ couponMoney as couponMoney,
+ redPacketId as redPacketId,
+ couponId as couponId,
+ discount as discount,
+ discountMoney as discountMoney,
+ activityId as activityId,
+ companyId as companyId,
+ payMoney as payMoney,
+ substitute as substitute,
+ passengers as passengers,
+ passengersPhone as passengersPhone,
+ state as state,
+ insertTime as insertTime,
+ travelTime as travelTime,
+ snatchOrderTime as snatchOrderTime,
+ setOutTime as setOutTime,
+ arriveTime as arriveTime,
+ startServiceTime as startServiceTime,
+ endServiceTime as endServiceTime,
+ orderType as orderType,
+ orderSource as orderSource,
+ invoiceId as invoiceId,
+ isReassign as isReassign,
+ reassignNotice as reassignNotice,
+ trackId as trackId,
+ isDelete as isDelete,
+ oldState as oldState,
+ telX as telX,
+ bindId as bindId
+ from t_order_private_car where isDelete = 1
+ <if test="null != driverIds and driverIds.size()>0">
+ and driverId in
+ <foreach collection="driverIds" item="driverId" index="index" open="(" separator="," close=")">
+ #{driverId}
+ </foreach>
+ </if>
+ <if test="null != orderType">
+ and orderType = #{orderType}
+ </if>
+ <if test="null != state">
+ and state in
+ <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </if>
+ </select>
</mapper>
\ No newline at end of file
diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index ce4a33f..66d8037 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -46,7 +46,9 @@
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
import java.util.*;
+import java.util.stream.Collectors;
@Service
@@ -701,7 +703,7 @@
}
}
}).start();
-
+
}else{
resultUtil = ResultUtil.error("支付失败", "");
}
@@ -795,10 +797,20 @@
//获取空闲司机
List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
if(list.size() > 0){
+ // 查询预约单
+ List<Integer> driverIds = list.stream().map(Driver::getId).collect(Collectors.toList());
+ List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.queryOrderByState(driverIds, 2, 1, 1, 2, 3, 4, 5, 6, 11);
double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
list = list.subList(0, lastIndex);//获取空闲司机中占比数据
for(Driver driver : list){//开始进行推送
+ // 判断该司机是否有30分钟内预约单
+ long count = orderPrivateCars.stream().filter(orderPrivateCar1 -> driver.getId().equals(orderPrivateCar1.getDriverId())
+ && DateUtil.dateToLocalDateTime(orderPrivateCar1.getTravelTime()).minusMinutes(30).isBefore(LocalDateTime.now())
+ && DateUtil.dateToLocalDateTime(orderPrivateCar1.getTravelTime()).isAfter(LocalDateTime.now())).count();
+ if(count > 0){
+ continue;
+ }
boolean bo = false;
for(Integer integer : integers){
if(integer.compareTo(driver.getId()) == 0){
diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
index 9519160..faca0c1 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
@@ -5,6 +5,10 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
import java.util.*;
/**
@@ -130,4 +134,29 @@
map.put("endTime", end);
return map;
}
+
+ /**
+ * Date转为LocalDateTime
+ *
+ * @param date 日期
+ * @return LocalDateTime
+ */
+ public static LocalDateTime dateToLocalDateTime(Date date) {
+ Instant instant = date.toInstant();
+ ZoneId zoneId = ZoneId.systemDefault();
+ return instant.atZone(zoneId).toLocalDateTime();
+ }
+
+ /**
+ * LocalDateTime转Date
+ *
+ * @param dateTime 日期
+ * @return Date
+ */
+ public static Date localDateTimeToDate(LocalDateTime dateTime) {
+ ZoneId zoneId = ZoneId.systemDefault();
+ ZonedDateTime zdt = dateTime.atZone(zoneId);
+ return Date.from(zdt.toInstant());
+ }
+
}
--
Gitblit v1.7.1