wlzboy
2025-10-18 b46065a201c09ce69f111806f2bda4a5f476bc4e
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleInfoServiceImpl.java
@@ -1,8 +1,11 @@
package com.ruoyi.system.service.impl;
import java.util.List;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.mapper.VehicleInfoMapper;
import com.ruoyi.system.domain.VehicleInfo;
import com.ruoyi.system.service.IVehicleInfoService;
@@ -17,6 +20,9 @@
    /**
     * 查询车辆信息
     *
     * @param vehicleId 车辆信息主键
     * @return 车辆信息
     */
    @Override
    public VehicleInfo selectVehicleInfoById(Long vehicleId) {
@@ -24,7 +30,21 @@
    }
    /**
     * 通过车牌号查询车辆信息
     *
     * @param plateNumber 车牌号
     * @return 车辆信息
     */
    @Override
    public VehicleInfo selectVehicleInfoByPlateNumber(String plateNumber) {
        return vehicleInfoMapper.selectVehicleInfoByPlateNumber(plateNumber);
    }
    /**
     * 查询车辆信息列表
     *
     * @param vehicleInfo 车辆信息
     * @return 车辆信息
     */
    @Override
    public List<VehicleInfo> selectVehicleInfoList(VehicleInfo vehicleInfo) {
@@ -33,6 +53,9 @@
    /**
     * 新增车辆信息
     *
     * @param vehicleInfo 车辆信息
     * @return 结果
     */
    @Override
    public int insertVehicleInfo(VehicleInfo vehicleInfo) {
@@ -41,6 +64,9 @@
    /**
     * 修改车辆信息
     *
     * @param vehicleInfo 车辆信息
     * @return 结果
     */
    @Override
    public int updateVehicleInfo(VehicleInfo vehicleInfo) {
@@ -49,6 +75,9 @@
    /**
     * 批量删除车辆信息
     *
     * @param vehicleIds 需要删除的车辆信息主键
     * @return 结果
     */
    @Override
    public int deleteVehicleInfoByIds(Long[] vehicleIds) {
@@ -57,9 +86,58 @@
    /**
     * 删除车辆信息信息
     *
     * @param vehicleId 车辆信息主键
     * @return 结果
     */
    @Override
    public int deleteVehicleInfoById(Long vehicleId) {
        return vehicleInfoMapper.deleteVehicleInfoById(vehicleId);
    }
    /**
     * 绑定车辆到用户
     *
     * @param userId 用户ID
     * @param vehicleId 车辆ID
     * @return 结果
     */
    @Override
    @Transactional
    public int bindVehicleToUser(Long userId, Long vehicleId) {
        // 先解绑用户的所有车辆(业务逻辑:一个用户同时只能绑定一辆车)
        vehicleInfoMapper.unbindAllVehiclesFromUser(userId);
        // 绑定新车辆
        String bindBy = "";
        try {
            bindBy = SecurityUtils.getUsername();
        } catch (Exception e) {
            // 如果获取当前用户失败,使用空字符串
        }
        return vehicleInfoMapper.bindVehicleToUser(userId, vehicleId, bindBy);
    }
    /**
     * 解绑用户车辆
     *
     * @param userId 用户ID
     * @param vehicleId 车辆ID
     * @return 结果
     */
    @Override
    public int unbindVehicleFromUser(Long userId, Long vehicleId) {
        return vehicleInfoMapper.unbindVehicleFromUser(userId, vehicleId);
    }
    /**
     * 获取用户当前绑定的车辆
     *
     * @param userId 用户ID
     * @return 车辆信息
     */
    @Override
    public VehicleInfo getUserBoundVehicle(Long userId) {
        return vehicleInfoMapper.getUserBoundVehicle(userId);
    }