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