first commit
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
package com.mhd.user.application.strategy;
|
||||
|
||||
import com.mhd.common.core.domain.po.VehiclePo;
|
||||
import com.mhd.user.domain.userAggregate.repository.todo.UserDriverDO;
|
||||
|
||||
/**
|
||||
* 定义了为司机绑定车辆的策略接口。
|
||||
* 策略的职责是准备好车辆(已有的或新建的),并将其与司机关联。
|
||||
*/
|
||||
public interface VehicleBindingStrategy {
|
||||
/**
|
||||
* 执行车辆绑定策略
|
||||
*
|
||||
* @param driver 司机实体对象,包含司机的相关信息
|
||||
* @param vehicle 车辆PO对象,包含车辆的详细信息
|
||||
*/
|
||||
void execute(UserDriverDO driver, VehiclePo vehicle);
|
||||
}
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
package com.mhd.user.application.strategy.impI;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.common.core.domain.po.VehiclePo;
|
||||
import com.mhd.user.application.service.UserApplicationService;
|
||||
import com.mhd.user.application.strategy.VehicleBindingStrategy;
|
||||
import com.mhd.user.domain.userAggregate.repository.facade.DriverVehicleBindService;
|
||||
import com.mhd.user.domain.userAggregate.repository.todo.DriverVehicleBindDo;
|
||||
import com.mhd.user.domain.userAggregate.repository.todo.UserDriverDO;
|
||||
import com.mhd.user.domain.userAggregate.service.UserWlhyDomainService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@Log4j2
|
||||
@RequiredArgsConstructor
|
||||
public class BindToExistingVehicleStrategy implements VehicleBindingStrategy {
|
||||
|
||||
private final UserWlhyDomainService wlhyDomainService;
|
||||
|
||||
private final DriverVehicleBindService driverVehicleBindService;
|
||||
|
||||
private final UserApplicationService userApplicationService;
|
||||
|
||||
@Override
|
||||
public void execute(UserDriverDO driver, VehiclePo vehicle) {
|
||||
log.info("执行创建车辆绑定策略类代码");
|
||||
UserPo user = userApplicationService.selectUserTableByUserId(driver.getUserId());
|
||||
DriverVehicleBindDo driverVehicleBindDo = new DriverVehicleBindDo();
|
||||
driverVehicleBindDo.setUserId(driver.getUserId());
|
||||
driverVehicleBindDo.setVehicleId(vehicle.getVehicleId());
|
||||
driverVehicleBindDo.setDriverBindId(driver.getUserId());
|
||||
driverVehicleBindDo.setBindDriverName(user.getUserName());
|
||||
driverVehicleBindDo.setBindDriverPhone(user.getUserPhone());
|
||||
driverVehicleBindDo.setTopOrganizationId(user.getTopOrganizationId());
|
||||
driverVehicleBindDo.setOrganizationId(user.getTopOrganizationId());
|
||||
driverVehicleBindDo.setVehicleLicensePlateNumber(vehicle.getVehicleLicensePlateNumber());
|
||||
driverVehicleBindDo.setVehicleTypeId(vehicle.getVehicleTypeId());
|
||||
driverVehicleBindDo.setVehicleTypeName(vehicle.getVehicleTypeName());
|
||||
driverVehicleBindDo.setVehicleCheckoutPeriodValidity(
|
||||
DateUtil.parse(vehicle.getVehicleCheckoutPeriodValidity()));
|
||||
driverVehicleBindDo.setBusinessLicenseExpireEndDate(
|
||||
DateUtil.parse(vehicle.getBusinessLicenseExpireEndDate()));
|
||||
driverVehicleBindDo.setBusinessLicenseLongStatus(vehicle.getBusinessLicenseLongStatus());
|
||||
driverVehicleBindDo.setRoadTransportCertificateExpireDate(
|
||||
DateUtil.parse(vehicle.getRoadTransportCertificateExpireDate()));
|
||||
driverVehicleBindDo.setRoadTransportCertificateLongStatus(
|
||||
vehicle.getRoadTransportCertificateLongStatus());
|
||||
driverVehicleBindDo.setDefaultFlag(1);
|
||||
driverVehicleBindDo.setCreateBy(user.getUserId());
|
||||
driverVehicleBindDo.setCreateByName(user.getUserName());
|
||||
driverVehicleBindDo.setCreateTime(DateUtil.date());
|
||||
log.info("绑定信息:{}",driverVehicleBindDo);
|
||||
Boolean flag = driverVehicleBindService.insert(driverVehicleBindDo);
|
||||
if (flag) {
|
||||
//向网货同步绑定车辆信息
|
||||
log.info("向网货同步绑定车辆信息");
|
||||
wlhyDomainService.binding(driverVehicleBindDo);
|
||||
}
|
||||
log.info("完成创建车辆绑定策略类代码");
|
||||
}
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package com.mhd.user.application.strategy.impI;
|
||||
|
||||
import com.mhd.common.core.domain.dto.VehicleDto;
|
||||
import com.mhd.common.core.domain.entity.R;
|
||||
import com.mhd.common.core.domain.po.VehiclePo;
|
||||
import com.mhd.system.api.TransportFeign;
|
||||
import com.mhd.user.application.strategy.VehicleBindingStrategy;
|
||||
import com.mhd.user.domain.userAggregate.repository.todo.UserDriverDO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@Log4j2
|
||||
@RequiredArgsConstructor
|
||||
public class CreateAndBindNewVehicleStrategy implements VehicleBindingStrategy {
|
||||
|
||||
private final TransportFeign transportFeign;
|
||||
|
||||
@Override
|
||||
public void execute(UserDriverDO driver, VehiclePo vehicle) {
|
||||
log.info("执行创建车辆并绑定策略类代码");
|
||||
VehicleDto dto = new VehicleDto();
|
||||
|
||||
dto.setVehicleLicensePlateNumber(driver.getVehicleLicensePlateNumber());
|
||||
dto.setVehicleTypeId(driver.getVehicleTypeId());
|
||||
dto.setVehicleTypeName(driver.getVehicleTypeName());
|
||||
dto.setVehicleUsePerson(driver.getUserName());
|
||||
dto.setUserId(driver.getUserId());
|
||||
dto.setUserName(driver.getUserName());
|
||||
dto.setUserPhone(driver.getUserAccount());
|
||||
dto.setVehicleSource(driver.getUserCarType());
|
||||
dto.setMotorcadeId(driver.getMotorcadeId());
|
||||
dto.setMotorcadeName(driver.getMotorcadeName());
|
||||
dto.setDepartmentId(driver.getDepartmentId());
|
||||
R<Void> result = transportFeign.addForUserApp(dto);
|
||||
|
||||
if (result.getCode() != 200) {
|
||||
log.warn("feign远程调用新增车辆接口失败 msg:{}", result.getMsg());
|
||||
throw new RuntimeException("新增车辆失败,请重试!");
|
||||
}
|
||||
log.info("结束创建车辆并绑定策略类代码");
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.mhd.user.application.strategy.impI;
|
||||
|
||||
import com.mhd.common.core.domain.po.VehiclePo;
|
||||
import com.mhd.user.application.strategy.VehicleBindingStrategy;
|
||||
import com.mhd.user.domain.userAggregate.repository.todo.UserDriverDO;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@Log4j2
|
||||
public class HandleBoundVehicleStrategy implements VehicleBindingStrategy {
|
||||
|
||||
@Override
|
||||
public void execute(UserDriverDO driver, VehiclePo vehicle) {
|
||||
log.warn("车牌号 {} 已被绑定!",driver.getVehicleLicensePlateNumber());
|
||||
throw new RuntimeException(String.format("车牌号 %s 已被绑定,请确认。", driver.getVehicleLicensePlateNumber()));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user