vehicle_record.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package vehicle
  2. import (
  3. "server/dao"
  4. "server/global"
  5. )
  6. type vehicleRecordService struct{}
  7. func NewVehicleRecordService() *vehicleRecordService {
  8. return &vehicleRecordService{}
  9. }
  10. // GetVehicleRecordByID 根据ID获取车辆记录
  11. func (s *vehicleRecordService) GetVehicleRecordByID(id uint) (dao.VehicleRecord, error) {
  12. var record dao.VehicleRecord
  13. result := global.GVA_DB.First(&record, id)
  14. if result.RowsAffected == 0 {
  15. return dao.VehicleRecord{}, result.Error
  16. }
  17. return record, nil
  18. }
  19. // ListVehicleRecordsByPlateNumber 根据车牌号获取车辆记录列表
  20. func (s *vehicleRecordService) ListVehicleRecordsByPlateNumber(plateNumber string, page, pageSize int) (int64, []dao.VehicleRecord, error) {
  21. var records []dao.VehicleRecord
  22. var total int64
  23. query := global.GVA_DB.Model(&dao.VehicleRecord{}).Where("plate_number = ?", plateNumber)
  24. // 计算总数
  25. query.Count(&total)
  26. // 分页查询
  27. offset := (page - 1) * pageSize
  28. result := query.Order("entry_time DESC").Offset(offset).Limit(pageSize).Find(&records)
  29. if result.Error != nil {
  30. return 0, nil, result.Error
  31. }
  32. return total, records, nil
  33. }
  34. // ListVehicleRecords 获取所有车辆记录列表
  35. func (s *vehicleRecordService) ListVehicleRecords(page, pageSize int) (int64, []dao.VehicleRecord, error) {
  36. var records []dao.VehicleRecord
  37. var total int64
  38. query := global.GVA_DB.Model(&dao.VehicleRecord{})
  39. // 计算总数
  40. query.Count(&total)
  41. // 分页查询
  42. offset := (page - 1) * pageSize
  43. result := query.Order("entry_time DESC").Offset(offset).Limit(pageSize).Find(&records)
  44. if result.Error != nil {
  45. return 0, nil, result.Error
  46. }
  47. return total, records, nil
  48. }