From 1898623537beef4064498cd94ad34457b635d51a Mon Sep 17 00:00:00 2001 From: "yan.y" Date: Tue, 18 Feb 2025 18:13:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E6=97=B6=E9=97=B4=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/api/common.go | 2 +- business/models/dataModel.go | 1 + business/utils/commonUtil.go | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/business/api/common.go b/business/api/common.go index 9696be2..f5913c3 100644 --- a/business/api/common.go +++ b/business/api/common.go @@ -177,7 +177,7 @@ func DataInit() { GoodsMap = GoodsMapC1 zap_server.ZAPLOG.Info("dataInit GoodsMap : ", zap.Any("GoodsMap", GoodsMap)) var carList []models.ServiceCar - database.Instance().Model(&models.ServiceCar{}).Find(&carList) + database.Instance().Model(&models.ServiceCar{}).Where("car_status = 1").Find(&carList) var CarMapC1 = make(map[int]models.ServiceCar) for _, value := range carList { CarMapC1[value.Id] = value diff --git a/business/models/dataModel.go b/business/models/dataModel.go index 898533c..3cb2ef9 100644 --- a/business/models/dataModel.go +++ b/business/models/dataModel.go @@ -219,6 +219,7 @@ type ServiceCar struct { CreateTime time.Time `gorm:"type:timestamp;default:CURRENT_TIMESTAMP" json:"-"` //创建时间 UpdateTime time.Time `gorm:"type:timestamp;default:CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP" json:"-"` //更新时间 ServiceAddr ServiceAddr `gorm:"-" json:"serviceAddr"` //当前服务区域 + CarStatus int `gorm:"not null"` //车辆状态 1在线 2下线 } // CarOrder 车辆订单 diff --git a/business/utils/commonUtil.go b/business/utils/commonUtil.go index 1c66392..32d6762 100644 --- a/business/utils/commonUtil.go +++ b/business/utils/commonUtil.go @@ -217,6 +217,28 @@ func ProcessOrders(orders []OrderTemp, maxCars int, maxDays int) OrderServiceTim isOccupied = true } + // 获取当前时间 + currentTime := time.Now() + + // 指定时区,例如 "Asia/Shanghai" + location, err := time.LoadLocation("Asia/Shanghai") + if err != nil { + fmt.Println("Error loading location:", err) + continue + } + + // 如果当前时间 >= 当前时间段的开始时间,则直接标记为占用 + slotTime, err := time.ParseInLocation("2006-01-02 15:04:05", slot, location) + if err != nil { + fmt.Println("Error parsing time slot:", err) + continue + } + + // 如果当前时间大于等于这个时间段的开始时间,则表示该时间段已经占用 + if currentTime.UnixMilli() >= slotTime.UnixMilli() { + isOccupied = true + } + // 提取日期作为 key date := slot[:10]