|
|
@@ -9,14 +9,10 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-type vehicleService struct{}
|
|
|
-
|
|
|
-func NewVehicleService() *vehicleService {
|
|
|
- return &vehicleService{}
|
|
|
-}
|
|
|
+type VehicleService struct{}
|
|
|
|
|
|
// CreateVehicle 创建车辆信息
|
|
|
-func (s *vehicleService) CreateVehicle(req request.VehicleCreate) error {
|
|
|
+func (s *VehicleService) CreateVehicle(req request.VehicleCreate) error {
|
|
|
// 检查车牌号是否已存在
|
|
|
var existingVehicle dao.Vehicle
|
|
|
result := global.GVA_DB.Where("plate_number = ?", req.PlateNumber).First(&existingVehicle)
|
|
|
@@ -40,7 +36,7 @@ func (s *vehicleService) CreateVehicle(req request.VehicleCreate) error {
|
|
|
}
|
|
|
|
|
|
// UpdateVehicle 更新车辆信息
|
|
|
-func (s *vehicleService) UpdateVehicle(req request.VehicleUpdate) error {
|
|
|
+func (s *VehicleService) UpdateVehicle(req request.VehicleUpdate) error {
|
|
|
var vehicle dao.Vehicle
|
|
|
result := global.GVA_DB.First(&vehicle, req.ID)
|
|
|
if result.RowsAffected == 0 {
|
|
|
@@ -74,7 +70,7 @@ func (s *vehicleService) UpdateVehicle(req request.VehicleUpdate) error {
|
|
|
}
|
|
|
|
|
|
// GetVehicleByID 根据ID获取车辆信息
|
|
|
-func (s *vehicleService) GetVehicleByID(id uint) (dao.Vehicle, error) {
|
|
|
+func (s *VehicleService) GetVehicleByID(id uint) (dao.Vehicle, error) {
|
|
|
var vehicle dao.Vehicle
|
|
|
result := global.GVA_DB.First(&vehicle, id)
|
|
|
if result.RowsAffected == 0 {
|
|
|
@@ -84,7 +80,7 @@ func (s *vehicleService) GetVehicleByID(id uint) (dao.Vehicle, error) {
|
|
|
}
|
|
|
|
|
|
// GetVehicleByPlateNumber 根据车牌号获取车辆信息
|
|
|
-func (s *vehicleService) GetVehicleByPlateNumber(plateNumber, RFIDTag string) (dao.Vehicle, error) {
|
|
|
+func (s *VehicleService) GetVehicleByPlateNumber(plateNumber, RFIDTag string) (dao.Vehicle, error) {
|
|
|
var vehicle dao.Vehicle
|
|
|
result := global.GVA_DB.Where("plate_number = ? or rfid_tag = ?", plateNumber, RFIDTag).First(&vehicle)
|
|
|
if result.RowsAffected == 0 {
|
|
|
@@ -94,7 +90,7 @@ func (s *vehicleService) GetVehicleByPlateNumber(plateNumber, RFIDTag string) (d
|
|
|
}
|
|
|
|
|
|
// ListVehicles 获取车辆列表
|
|
|
-func (s *vehicleService) ListVehicles(req request.VehicleQuery) (int64, []dao.Vehicle, error) {
|
|
|
+func (s *VehicleService) ListVehicles(req request.VehicleQuery) (int64, []dao.Vehicle, error) {
|
|
|
var vehicles []dao.Vehicle
|
|
|
var total int64
|
|
|
|
|
|
@@ -126,7 +122,7 @@ func (s *vehicleService) ListVehicles(req request.VehicleQuery) (int64, []dao.Ve
|
|
|
}
|
|
|
|
|
|
// DeleteVehicle 删除车辆
|
|
|
-func (s *vehicleService) DeleteVehicle(id uint) error {
|
|
|
+func (s *VehicleService) DeleteVehicle(id uint) error {
|
|
|
result := global.GVA_DB.Delete(&dao.Vehicle{}, id)
|
|
|
if result.RowsAffected == 0 {
|
|
|
return errors.New("车辆不存在")
|
|
|
@@ -135,7 +131,7 @@ func (s *vehicleService) DeleteVehicle(id uint) error {
|
|
|
}
|
|
|
|
|
|
// VehicleEntry 车辆入场
|
|
|
-func (s *vehicleService) VehicleEntry(req request.VehicleEntry) (request.VehicleEntryResponse, error) {
|
|
|
+func (s *VehicleService) VehicleEntry(req request.VehicleEntry) (request.VehicleEntryResponse, error) {
|
|
|
// 检查车辆是否存在
|
|
|
vehicle, err := s.GetVehicleByPlateNumber(req.PlateNumber, req.RFIDTag)
|
|
|
if err != nil {
|
|
|
@@ -192,7 +188,7 @@ func (s *vehicleService) VehicleEntry(req request.VehicleEntry) (request.Vehicle
|
|
|
}
|
|
|
|
|
|
// VehicleExit 车辆出场
|
|
|
-func (s *vehicleService) VehicleExit(req request.VehicleExit) (request.VehicleExitResponse, error) {
|
|
|
+func (s *VehicleService) VehicleExit(req request.VehicleExit) (request.VehicleExitResponse, error) {
|
|
|
// 检查是否有未出场的记录
|
|
|
var record dao.VehicleRecord
|
|
|
result := global.GVA_DB.Where("plate_number = ? AND exit_time IS NULL", req.PlateNumber).First(&record)
|
|
|
@@ -244,7 +240,7 @@ func (s *vehicleService) VehicleExit(req request.VehicleExit) (request.VehicleEx
|
|
|
}
|
|
|
|
|
|
// calculateFee 计算停车费用
|
|
|
-func (s *vehicleService) calculateFee(vehicle dao.Vehicle, stayTime int64) float64 {
|
|
|
+func (s *VehicleService) calculateFee(vehicle dao.Vehicle, stayTime int64) float64 {
|
|
|
// 获取收费配置
|
|
|
var feeConfig dao.FeeConfig
|
|
|
result := global.GVA_DB.Where("vehicle_type = ?", vehicle.VehicleType).First(&feeConfig)
|