From 4f75e746dc006f487a1a7de8e14c497148911b0e Mon Sep 17 00:00:00 2001 From: guyue <1721849008@qq.com> Date: 星期六, 16 八月 2025 00:30:09 +0800 Subject: [PATCH] 抢单以及转派 --- DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java | 90 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 88 insertions(+), 2 deletions(-) diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java index ee583d1..7b164fd 100644 --- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java +++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java @@ -1,27 +1,42 @@ package com.stylefeng.guns.modular.crossCity.controller; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.stylefeng.guns.core.util.SpringContextHolder; import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.modular.crossCity.dao.LineShiftMapper; +import com.stylefeng.guns.modular.crossCity.model.LineShift; +import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; +import com.stylefeng.guns.modular.crossCity.server.ILineShiftDriverService; +import com.stylefeng.guns.modular.crossCity.server.ILineSiteService; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityInfoWrapper; import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper; import com.stylefeng.guns.modular.crossCity.warpper.OrderWarpper; +import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.Reassign; +import com.stylefeng.guns.modular.system.model.TDriverLine; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IReassignService; +import com.stylefeng.guns.modular.system.service.TDriverLineService; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.SystemException; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; +import com.stylefeng.guns.modular.system.warpper.DriverInfoWarpper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Api @@ -37,6 +52,12 @@ @Autowired private IReassignService reassignService; + + @Autowired + private LineShiftMapper lineShiftMapper; + + @Autowired + private TDriverLineService driverLineService; // // @Autowired // private ICBCPayUtil icbcPayUtil; @@ -73,6 +94,30 @@ * @param request * @return */ +// @ResponseBody +// @PostMapping("/api/orderCrossCity/reassignOrderCrossCityReassign") +// @ApiOperation(value = "提交改派申请(跨城)", tags = {"司机端-服务中"}, notes = "") +// @ApiImplicitParams({ +// @ApiImplicitParam(value = "订单id(多个以逗号分隔)", name = "orderIds", required = true, dataType = "string"), +// @ApiImplicitParam(value = "改派支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = false, dataType = "int"), +// @ApiImplicitParam(value = "改派原因", name = "reason", required = true, dataType = "string"), +// @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"), +// @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") +// }) +// public ResultUtil reassignOrderCrossCityReassign(Reassign reassign, String orderIds, HttpServletRequest request){ +// try { +// Integer uid = driverService.getUserIdFormRedis(request); +// if(null == uid){ +// return ResultUtil.tokenErr(); +// } +// return reassignService.saveData_(reassign, orderIds, uid, null); +// }catch (SystemException s){ +// return ResultUtil.error(s.getMsg()); +// } catch (Exception e){ +// e.printStackTrace(); +// return ResultUtil.runErr(); +// } +// } @ResponseBody @PostMapping("/api/orderCrossCity/reassignOrderCrossCityReassign") @ApiOperation(value = "提交改派申请(跨城)", tags = {"司机端-服务中"}, notes = "") @@ -81,15 +126,16 @@ @ApiImplicitParam(value = "改派支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = false, dataType = "int"), @ApiImplicitParam(value = "改派原因", name = "reason", required = true, dataType = "string"), @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"), + @ApiImplicitParam(value = "改派司机id", name = "newDriverId", required = false, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil reassignOrderCrossCityReassign(Reassign reassign, String orderIds, HttpServletRequest request){ + public ResultUtil reassignOrderCrossCityReassign(Reassign reassign, String orderIds,Integer newDriverId, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } - return reassignService.saveData_(reassign, orderIds, uid, null); + return reassignService.saveData_(reassign, orderIds, uid, null,newDriverId); }catch (SystemException s){ return ResultUtil.error(s.getMsg()); } catch (Exception e){ @@ -97,7 +143,47 @@ return ResultUtil.runErr(); } } +//获取同线路下的司机 + @ResponseBody + @PostMapping("/api/orderCrossCity/querySameLineDriver") + @ApiOperation(value = "获取同线路下的司机", tags = {"司机端-服务中"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id(多个以逗号分隔)", name = "orderIds", required = true, dataType = "string"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil< List<DriverInfoWarpper>> querySameLineDriver(String orderIds, HttpServletRequest request){ + try { + Integer driverId = driverService.getUserIdFormRedis(request); + if(null == driverId){ + return ResultUtil.tokenErr(); + } + //获取线路id + String[] split = orderIds.split(","); + OrderCrossCity orderCrossCity = orderCrossCityService.selectById(split[0]); + Integer lineId = orderCrossCity.getLineId(); + //查出该线路的司机 + EntityWrapper<TDriverLine> driverLineWrapper = new EntityWrapper<>(); + driverLineWrapper.eq("lineId", lineId); + List<TDriverLine> tDriverLines = driverLineService.selectList(driverLineWrapper); + List<Integer> driverIds = tDriverLines.stream() + .map(TDriverLine::getDriverid) + .filter(id -> !id.equals(driverId)) // 去掉当前司机 + .distinct() // 去重 + .collect(Collectors.toList()); + //获取司机及车辆信息 + List<Map<String, Object>> maps = driverService.queryDriversByIds(driverIds); + List<DriverInfoWarpper> driverInfoWarppers = new ArrayList<>(); + for (Map<String, Object> map : maps) { + DriverInfoWarpper driverInfoWarpper = DriverInfoWarpper.getDriverInfoWarpper(map); + driverInfoWarppers.add(driverInfoWarpper); + } + return ResultUtil.success(driverInfoWarppers); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } /** * 获取已完成订单明细 -- Gitblit v1.7.1