package app import ( "fmt" "lc-fangdaosha/global" "lc-fangdaosha/model/app" "time" ) type CarInfoService struct { } // Save 保存到数据库 func (carInfoService *CarInfoService) Save(car []*app.CarInfo) { // 插入数据 err := global.Db.Create(car) if err != nil { fmt.Println("插入数据失败:", err) return } } // ProcessPlateNumber 处理车牌号 func (carInfoService *CarInfoService) ProcessPlateNumber(plateNumber string) { var cars []*app.CarInfo //定义切片用于存储app.CarInfo类型的指针 for i, car := range cars { if car.PlateNumber == plateNumber { //检查当前车辆的车牌号是否与给定的plateNumber相等 currentTime := time.Now() //获取当前时间,并将其赋值给变量currentTime if currentTime.Sub(car.Time).Minutes() > 1 { //检查当前时间与车辆信息的最后更新时间之间的差值是否大于1分钟 car.Count++ car.Time = currentTime //更新车辆信息的最后更新时间为当前时间 } cars[i] = car //将更新后的车辆信息重新赋值给cars切片中对应的位置 return } } //创建一个新的app.CarInfo类型的实例,并设置其车牌号、计数器和最后更新时间为当前时间 newCar := &app.CarInfo{ PlateNumber: plateNumber, Count: 1, Time: time.Now(), } cars = append(cars, newCar) //将新创建的车辆信息添加到cars切片的末尾 // 保存到数据库 carInfoService.Save(cars) //// 获取当前时间 //now := time.Now() //// 判断同一辆车在一分钟内是否已出现 //plateNumberMap := make(map[string]*app.CarInfo) //if plateNumberMap[plateNumber] != nil && now.Sub(plateNumberMap[plateNumber].Time) < time.Minute { // return //} // //// 更新车牌号出现时间和次数 //plateNumberMap[plateNumber] = &app.CarInfo{ // Time: now, // Count: 1, // PlateNumber: plateNumber, //} }