From 540a687f7ea642479cde600db53ccf4fd14f40c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E8=BE=89?= <2830717623@qq.com> Date: Mon, 12 Jan 2026 13:53:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=89=AF=E9=A9=BE=E7=BB=91?= =?UTF-8?q?=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DriverVehicleBindApplicationService.java | 11 ++++ .../service/UserDriverApplicationService.java | 21 ++++++ .../user/interfaces/facade/UserDriverAPI.java | 13 ++++ .../vehicle/VehicleApplicationService.java | 64 ++++++++++++++++--- .../feign/UserServiceFeign.java | 14 ++++ .../interfaces/dto/vehicle/VehicleDto.java | 3 + .../interfaces/facade/vehicle/VehicleApi.java | 4 +- 7 files changed, 119 insertions(+), 11 deletions(-) diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/DriverVehicleBindApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/DriverVehicleBindApplicationService.java index dcd35b612..0cb1540d1 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/DriverVehicleBindApplicationService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/DriverVehicleBindApplicationService.java @@ -4,14 +4,17 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.mhd.user.domain.userAggregate.entity.DriverVehicleBind; +import com.mhd.user.domain.userAggregate.repository.mapper.DriverVehicleBindMapper; import com.mhd.user.domain.userAggregate.repository.po.DriverVehicleBindPo; import com.mhd.user.domain.userAggregate.repository.todo.DriverVehicleBindDo; import com.mhd.user.domain.userAggregate.service.DriverVehicleBindDomainService; import com.mhd.user.domain.userAggregate.service.UserDriverDomainService; import com.mhd.system.api.TransportFeign; import com.mhd.user.interfaces.dto.DriverVehicleBindDto; +import com.mhd.user.interfaces.dto.addDTO.UserDriverDTO; import com.mhd.user.interfaces.facadeApi.Po.VehicleDriverBindAppPo; import com.mhd.common.core.domain.dto.VehicleDto; import com.mhd.user.domain.userAggregate.repository.po.UserDriverPo; @@ -49,6 +52,9 @@ public class DriverVehicleBindApplicationService { private CommonApplicationService commonApplicationService; @Resource private UserDriverDomainService userDriverDomainService; + @Autowired + private DriverVehicleBindMapper driverVehicleBindMapper; + /** * 分页查询司机车辆绑定关系列表 */ @@ -355,4 +361,9 @@ public class DriverVehicleBindApplicationService { } return isTrue; } + + public int delectDriverBind(UserDriverDTO userDriverDTO) { + return driverVehicleBindMapper.delete(new LambdaQueryWrapper().eq(DriverVehicleBind::getDriverBindId,userDriverDTO.getUserId()) + .eq(DriverVehicleBind::getVehicleId,userDriverDTO.getVehicleId())); + } } diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserDriverApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserDriverApplicationService.java index 7300c47c1..1faac74e2 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserDriverApplicationService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserDriverApplicationService.java @@ -44,6 +44,8 @@ import com.mhd.user.domain.roleAggregate.entity.RoleEntity; import com.mhd.user.domain.roleAggregate.repository.todo.RoleDo; import com.mhd.user.domain.roleAggregate.service.RoleDomainService; import com.mhd.user.domain.userAggregate.entity.*; +import com.mhd.user.domain.userAggregate.repository.mapper.DriverVehicleBindMapper; +import com.mhd.user.domain.userAggregate.repository.mapper.UserMapper; import com.mhd.user.domain.userAggregate.repository.po.*; import com.mhd.user.domain.userAggregate.repository.po.UserDriverEnterprisePo; import com.mhd.user.domain.userAggregate.repository.po.UserDriverPo; @@ -178,6 +180,10 @@ public class UserDriverApplicationService { private MotorcadeCollectionDomainService motorcadeCollectionDomainService; @Resource private VehicleBindingStrategyFactory vehicleBindingStrategyFactory; + @Autowired + private DriverVehicleBindMapper driverVehicleBindMapper; + @Autowired + private UserMapper userMapper; /** * @Description 承运人列表查询 @@ -2754,5 +2760,20 @@ public class UserDriverApplicationService { // } return motorcade.getDriverEnterpriseCode(); } + + public int bindVehicleForHome(UserDriverDO userDriverDO) { + DriverVehicleBind driverVehicleBind = new DriverVehicleBind(); + driverVehicleBind.setUserId(userDriverDO.getUserId()); + driverVehicleBind.setVehicleId(userDriverDO.getVehicleId()); + driverVehicleBind.setDefaultFlag(1); + driverVehicleBind.setDelFlag(1); + driverVehicleBind.setDriverBindId(userDriverDO.getUserId()); + UserPo userPo = userMapper.selectByUserId(userDriverDO.getUserId()); + driverVehicleBind.setBindDriverName(userPo.getUserName()); + driverVehicleBind.setBindDriverPhone(userPo.getUserPhone()); + //向网货同步添加绑定关系 +// wlhyDomainService.binding(driverVehicleBind); + return driverVehicleBindMapper.insert(driverVehicleBind); + } } diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserDriverAPI.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserDriverAPI.java index 0c3e28b4e..21929c130 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserDriverAPI.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserDriverAPI.java @@ -129,7 +129,20 @@ public class UserDriverAPI extends BaseController { UserDriverDO userDriverDO = userDriverAssember.toUserDriverDO(userDriverDTO); return toAjax(userDriverApplicationService.bindVehicle(userDriverDO)); } + @Log(title = "承运人管理-绑定车辆", description ="绑定车辆",businessType = BusinessType.UPDATE) + @ApiOperation("绑定车辆") + @PostMapping("/bindVehicleForHome") + public AjaxResult bindVehicleForHome(@RequestBody UserDriverDTO userDriverDTO){ + UserDriverDO userDriverDO = userDriverAssember.toUserDriverDO(userDriverDTO); + return toAjax(userDriverApplicationService.bindVehicleForHome(userDriverDO)); + } + @ApiOperation("删除司机绑定关系") + @PostMapping("/driverVehicleBindApi/delectDriverBind") + public AjaxResult delectDriverBind(@RequestBody UserDriverDTO userDriverDTO) { + return toAjax(driverVehicleBindApplicationService.delectDriverBind(userDriverDTO)); + + } @Log(title = "承运人管理-个体承运人新增绑定车辆", description ="个体承运人新增绑定车辆",businessType = BusinessType.UPDATE) @ApiOperation("个体承运人新增绑定车辆") @PostMapping("/bindVehicle1") diff --git a/mhd_transport/src/main/java/com/linke/transport/application/service/vehicle/VehicleApplicationService.java b/mhd_transport/src/main/java/com/linke/transport/application/service/vehicle/VehicleApplicationService.java index 934ed4034..dd0f2d811 100644 --- a/mhd_transport/src/main/java/com/linke/transport/application/service/vehicle/VehicleApplicationService.java +++ b/mhd_transport/src/main/java/com/linke/transport/application/service/vehicle/VehicleApplicationService.java @@ -2921,14 +2921,16 @@ public class VehicleApplicationService { * * @param vehicleDto * @return + * */ + @Transactional(rollbackFor = Exception.class) public Integer updatePilotDriver(VehicleDto vehicleDto) { if (vehicleDto.getVehicleId() == null) { throw new IllegalArgumentException("车辆ID不能为空"); } - boolean hasPilot1 = StringUtils.hasText(vehicleDto.getPilot1()); - boolean hasPilot2 = StringUtils.hasText(vehicleDto.getPilot2()); + boolean hasPilot1 = StringUtils.hasText(vehicleDto.getPilot1Id()); + boolean hasPilot2 = StringUtils.hasText(vehicleDto.getPilot2Id()); // 两个都传了 if (hasPilot1 && hasPilot2) { @@ -2938,17 +2940,61 @@ public class VehicleApplicationService { if (!hasPilot1 && !hasPilot2) { throw new IllegalArgumentException("请选择副驾"); } - UserDriverDTO userDriverDTO = new UserDriverDTO(); - //将pilot1或是pilot2的id传给userDriverDTO,判断一下谁有值传谁 - userDriverDTO.setUserId(Long.valueOf(hasPilot1 ? vehicleDto.getPilot1Id() : vehicleDto.getPilot2Id())); - userDriverDTO.setVehicleId(vehicleDto.getVehicleId()); + + Vehicle vehicle = vehicleMapper.selectById(vehicleDto.getVehicleId()); + String modifyPilotId = vehicleDto.getModifyPilotId(); + if (modifyPilotId != null){ + UserDriverDTO userDriverDTO1 = new UserDriverDTO(); + userDriverDTO1.setUserId(Long.valueOf(modifyPilotId)); + userDriverDTO1.setVehicleId(vehicleDto.getVehicleId()); + userServiceFeign.delectDriverBind(userDriverDTO1); + } + if (hasPilot1){ - // 更新 - vehicleMapper.updatePilotDriver(vehicleDto); + AjaxResult result = userServiceFeign.getDriverInfoByUserId(Long.valueOf(vehicleDto.getPilot1Id())); + UserDriverPo driverInfo = null; + if(result != null && "200".equals(String.valueOf(result.get("code")))){ + // 提取数据 + driverInfo = JSONUtil.toBean(JSONUtil.toJsonStr(result.get("data")), UserDriverPo.class); + vehicle.setPilot1(driverInfo.getUserName()); + vehicle.setPilot1Id(vehicleDto.getPilot1Id()); + // 更新车辆信息到数据库 + vehicleDomainService.updateVehicle(vehicle); + // 在user库中的driver_vehicle_bind表中添加一条绑定信息 + UserDriverDTO userDriverDTO = new UserDriverDTO(); + userDriverDTO.setUserId(Long.valueOf(vehicleDto.getPilot1Id())); + userDriverDTO.setVehicleId(vehicleDto.getVehicleId()); + userDriverDTO.setVehicleLicensePlateNumber(vehicle.getVehicleLicensePlateNumber()); + userDriverDTO.setBindSource(2); // 2-副驾绑定 + userServiceFeign.bindVehicleForHome(userDriverDTO); + } - userServiceFeign.bindVehicle(userDriverDTO); + } else if (hasPilot2) { + // 如果是pilot2的情况,需要类似处理 + AjaxResult result = userServiceFeign.getDriverInfoByUserId(Long.valueOf(vehicleDto.getPilot2Id())); + UserDriverPo driverInfo = null; + if(result != null && "200".equals(String.valueOf(result.get("code")))){ + // 提取数据 + driverInfo = JSONUtil.toBean(JSONUtil.toJsonStr(result.get("data")), UserDriverPo.class); + vehicle.setPilot2(driverInfo.getUserName()); + vehicle.setPilot2Id(vehicleDto.getPilot2Id()); + + // 更新车辆信息到数据库 + vehicleDomainService.updateVehicle(vehicle); + + // 在user库中的driver_vehicle_bind表中添加一条绑定信息 + UserDriverDTO userDriverDTO = new UserDriverDTO(); + userDriverDTO.setUserId(Long.valueOf(vehicleDto.getPilot2Id())); + userDriverDTO.setVehicleId(vehicleDto.getVehicleId()); + userDriverDTO.setVehicleLicensePlateNumber(vehicle.getVehicleLicensePlateNumber()); + userDriverDTO.setBindSource(2); // 2-副驾绑定 + + userServiceFeign.bindVehicleForHome(userDriverDTO); + } + + } return 1; diff --git a/mhd_transport/src/main/java/com/linke/transport/infrastructure/feign/UserServiceFeign.java b/mhd_transport/src/main/java/com/linke/transport/infrastructure/feign/UserServiceFeign.java index 8130fe0b1..a7d4c90a6 100644 --- a/mhd_transport/src/main/java/com/linke/transport/infrastructure/feign/UserServiceFeign.java +++ b/mhd_transport/src/main/java/com/linke/transport/infrastructure/feign/UserServiceFeign.java @@ -28,6 +28,19 @@ public interface UserServiceFeign { @PostMapping("/userDriverApi/bindVehicle") public AjaxResult bindVehicle(@RequestBody UserDriverDTO userDriverDTO); + /** + * 添加绑定关系 + */ + @PostMapping("/userDriverApi/bindVehicleForHome") + public AjaxResult bindVehicleForHome(@RequestBody UserDriverDTO userDriverDTO); + + /** + * 删除司机绑定关系 + */ + @ApiOperation("删除司机绑定关系") + @PostMapping("/driverVehicleBindApi/delectDriverBind") + void delectDriverBind(@RequestBody UserDriverDTO userDriverDTO); + /** * @Description 绑定车辆 * @Author Alex @@ -204,4 +217,5 @@ public interface UserServiceFeign { @GetMapping("/driverVehicleBindApi/isVehicleBinding/{vehicleLicensePlateNumber}") R isVehicleBinding( @PathVariable("vehicleLicensePlateNumber") String vehicleLicensePlateNumber); + } diff --git a/mhd_transport/src/main/java/com/linke/transport/interfaces/dto/vehicle/VehicleDto.java b/mhd_transport/src/main/java/com/linke/transport/interfaces/dto/vehicle/VehicleDto.java index fb308686f..4f04325cf 100644 --- a/mhd_transport/src/main/java/com/linke/transport/interfaces/dto/vehicle/VehicleDto.java +++ b/mhd_transport/src/main/java/com/linke/transport/interfaces/dto/vehicle/VehicleDto.java @@ -437,4 +437,7 @@ public class VehicleDto extends BaseVOEntity implements Serializable @ApiModelProperty(value = "车辆主体") private Integer vehicleBody; + + @ApiModelProperty(value = "被修改副驾id") + private String modifyPilotId; } diff --git a/mhd_transport/src/main/java/com/linke/transport/interfaces/facade/vehicle/VehicleApi.java b/mhd_transport/src/main/java/com/linke/transport/interfaces/facade/vehicle/VehicleApi.java index 47692c3c7..661c393d5 100644 --- a/mhd_transport/src/main/java/com/linke/transport/interfaces/facade/vehicle/VehicleApi.java +++ b/mhd_transport/src/main/java/com/linke/transport/interfaces/facade/vehicle/VehicleApi.java @@ -69,8 +69,8 @@ public class VehicleApi extends BaseController * 车辆绑定副驾 */ @Log(title = "车辆管理-车辆绑定副驾", description = "车辆绑定副驾", businessType = BusinessType.UPDATE) - @PostMapping("/bindVehicle") - public R bindVehicle(@RequestBody VehicleDto vehicleDto){ + @GetMapping("/bindVehicle") + public R bindVehicle(VehicleDto vehicleDto){ return R.ok(vehicleApplicationService.updatePilotDriver(vehicleDto)); }