12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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,
- //}
- }
|