wlzboy
2025-10-26 2c86a8bd60deed0dd0e044bad6fb83f75d19a332
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
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;
 
/**
 * 车辆信息Service业务层处理
 */
@Service
public class VehicleInfoServiceImpl implements IVehicleInfoService {
    @Autowired
    private VehicleInfoMapper vehicleInfoMapper;
 
    /**
     * 查询车辆信息
     * 
     * @param vehicleId 车辆信息主键
     * @return 车辆信息
     */
    @Override
    public VehicleInfo selectVehicleInfoById(Long vehicleId) {
        return vehicleInfoMapper.selectVehicleInfoById(vehicleId);
    }
 
    /**
     * 通过车牌号查询车辆信息
     * 
     * @param plateNumber 车牌号
     * @return 车辆信息
     */
    @Override
    public VehicleInfo selectVehicleInfoByPlateNumber(String plateNumber) {
        return vehicleInfoMapper.selectVehicleInfoByPlateNumber(plateNumber);
    }
 
    /**
     * 查询车辆信息列表
     * 
     * @param vehicleInfo 车辆信息
     * @return 车辆信息
     */
    @Override
    public List<VehicleInfo> selectVehicleInfoList(VehicleInfo vehicleInfo) {
        return vehicleInfoMapper.selectVehicleInfoList(vehicleInfo);
    }
 
    /**
     * 新增车辆信息
     * 
     * @param vehicleInfo 车辆信息
     * @return 结果
     */
    @Override
    public int insertVehicleInfo(VehicleInfo vehicleInfo) {
        return vehicleInfoMapper.insertVehicleInfo(vehicleInfo);
    }
 
    /**
     * 修改车辆信息
     * 
     * @param vehicleInfo 车辆信息
     * @return 结果
     */
    @Override
    public int updateVehicleInfo(VehicleInfo vehicleInfo) {
        return vehicleInfoMapper.updateVehicleInfo(vehicleInfo);
    }
 
    /**
     * 批量删除车辆信息
     * 
     * @param vehicleIds 需要删除的车辆信息主键
     * @return 结果
     */
    @Override
    public int deleteVehicleInfoByIds(Long[] vehicleIds) {
        return vehicleInfoMapper.deleteVehicleInfoByIds(vehicleIds);
    }
 
    /**
     * 删除车辆信息信息
     * 
     * @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);
    }