shortlist.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package vehicle
  2. import (
  3. "time"
  4. "wails-app/internal/dao"
  5. "wails-app/internal/global"
  6. "wails-app/internal/model/vehicle/request"
  7. )
  8. type ShortlistService struct{}
  9. func (shortlistService *ShortlistService) QueryShortlistList(info request.ShortlistRequest) (list interface{}, total int64, err error) {
  10. limit := info.PageSize
  11. offset := info.PageSize * (info.Page - 1)
  12. shortlistList, t, err := dao.QueryShortlistList(limit, offset, info.ListType, info.PlateNumber, info.RFIDTag)
  13. if err != nil {
  14. return nil, 0, err
  15. }
  16. return shortlistList, t, nil
  17. }
  18. func (shortlistService *ShortlistService) QueryAllShortlists() (shortlists []dao.Shortlist, err error) {
  19. return dao.QueryAllShortlists()
  20. }
  21. func (shortlistService *ShortlistService) QueryShortlistByRFIDTag(rfidTag string) (shortlist dao.Shortlist, err error) {
  22. return dao.QueryShortlistByRFIDTag(rfidTag)
  23. }
  24. func (s *ShortlistService) CheckVehicleShortlist(plateNumber, rfidTag string) (isBlack bool, isWhite bool) {
  25. var vehicle dao.Vehicle
  26. query := global.GVA_DB
  27. if rfidTag != "" {
  28. query = query.Where("rfid_tag = ?", rfidTag)
  29. } else {
  30. query = query.Where("plate_number = ?", plateNumber)
  31. }
  32. if err := query.First(&vehicle).Error; err != nil {
  33. return false, false
  34. }
  35. var shortlists []dao.Shortlist
  36. now := time.Now()
  37. if err := global.GVA_DB.
  38. Where("vehicle_id = ? AND (expiration_time IS NULL OR expiration_time > ?)", vehicle.ID, now).
  39. Find(&shortlists).Error; err != nil {
  40. return false, false
  41. }
  42. for _, shortlist := range shortlists {
  43. if shortlist.ListType == "黑名单" {
  44. return true, false
  45. }
  46. if shortlist.ListType == "白名单" {
  47. isWhite = true
  48. }
  49. }
  50. return false, isWhite
  51. }
  52. func (shortlistService *ShortlistService) CreateShortlist(shortlist dao.Shortlist) error {
  53. return dao.CreateShortlist(shortlist)
  54. }
  55. func (shortlistService *ShortlistService) UpdateShortlist(shortlist dao.Shortlist) error {
  56. return dao.UpdateShortlist(shortlist)
  57. }
  58. func (shortlistService *ShortlistService) DeleteShortlist(id int) error {
  59. return dao.DeleteShortlist(id)
  60. }