From 101e819b66a5609c839efdcae6db10f8170e7bcd Mon Sep 17 00:00:00 2001 From: "yan.y" Date: Mon, 18 Nov 2024 15:17:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/api/common.go | 1 + business/api/control.go | 1 + business/api/init.go | 51 ++++++++++++++++++------------------ business/api/service.go | 42 ++++++++++++++++++++++++++++- business/models/dataModel.go | 1 + 5 files changed, 69 insertions(+), 27 deletions(-) diff --git a/business/api/common.go b/business/api/common.go index 1621192..9696be2 100644 --- a/business/api/common.go +++ b/business/api/common.go @@ -63,6 +63,7 @@ var ( UserCouponsNExistOrUseError = Error{Code: 220, Msg: "用户不存在优惠券或已使用"} PayError = Error{Code: 221, Msg: "支付失败"} OrderNotPayError = Error{Code: 222, Msg: "订单未支付定金"} + OrderNotDispachError = Error{Code: 223, Msg: "当前订单暂未派单,无法查看护理车辆位置"} ) func Success(ctx *context.Context, request any, data any) { diff --git a/business/api/control.go b/business/api/control.go index c5a0324..a5dc3fd 100644 --- a/business/api/control.go +++ b/business/api/control.go @@ -45,6 +45,7 @@ func (p DefParty) RegisterList() []web_iris.Party { p.serviceAddOrEdit(), p.serviceAreaAddrList(), p.serviceCarLocationUpload(), + p.serviceCarLocationList(), //车辆 p.carServiceOrderList(), p.carServiceProcess(), diff --git a/business/api/init.go b/business/api/init.go index edfd08c..82cffc4 100644 --- a/business/api/init.go +++ b/business/api/init.go @@ -4,7 +4,6 @@ import ( "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/context" "go.uber.org/zap" - "pet-house.com/business/models" "pet-house.com/business/utils" "pet-house.com/core/server/database" "pet-house.com/core/server/web/web_iris" @@ -27,31 +26,31 @@ var frontExcludes = [...]string{ func ModuleInit() { utils.WechatInit() _err := database.Instance().AutoMigrate( - //&models.User{}, - //&models.Pet{}, - //&models.PetBaseInfo{}, - //&models.ServiceAddr{}, - //&models.UserServiceAddr{}, - //&models.Goods{}, - //&models.PetGoods{}, - //&models.SystemConfig{}, - //&models.OrderMain{}, - //&models.OrderSub{}, - //&models.OrderDetail{}, - //&models.ServiceCar{}, - //&models.CarOrder{}, - //&models.ServiceCarUser{}, - //&models.ServiceUserMark{}, - //&models.ServiceUserMarkRecord{}, - //&models.ReserveTimeFilter{}, - //&models.OrderServiceRecord{}, - //&models.AddrServiceTime{}, - //&models.UserAmountRecord{}, - //&models.Coupons{}, - //&models.UserCoupons{}, - //&models.RechargeInfo{}, - //&models.PayOrder{}, - &models.ServiceCarLocation{}, + //&models.User{}, + //&models.Pet{}, + //&models.PetBaseInfo{}, + //&models.ServiceAddr{}, + //&models.UserServiceAddr{}, + //&models.Goods{}, + //&models.PetGoods{}, + //&models.SystemConfig{}, + //&models.OrderMain{}, + //&models.OrderSub{}, + //&models.OrderDetail{}, + //&models.ServiceCar{}, + //&models.CarOrder{}, + //&models.ServiceCarUser{}, + //&models.ServiceUserMark{}, + //&models.ServiceUserMarkRecord{}, + //&models.ReserveTimeFilter{}, + //&models.OrderServiceRecord{}, + //&models.AddrServiceTime{}, + //&models.UserAmountRecord{}, + //&models.Coupons{}, + //&models.UserCoupons{}, + //&models.RechargeInfo{}, + //&models.PayOrder{}, + //&models.ServiceCarLocation{}, ) zap_server.ZAPLOG.Info("data init ", zap.Any("err", _err)) DataInit() diff --git a/business/api/service.go b/business/api/service.go index 9ac0e00..c060c5f 100644 --- a/business/api/service.go +++ b/business/api/service.go @@ -159,7 +159,7 @@ type ServiceCarLocationUploadRequest struct { Latitude string //纬度 } -// 服务区域列表 +// 服务车辆位置上报 func (p DefParty) serviceCarLocationUpload() web_iris.Party { return web_iris.Party{Prefix: p.Prefix, PartyFunc: func(index iris.Party) { index.Post(ServiceBase+"/serviceCarLocationUpload", func(ctx *context.Context) { @@ -168,14 +168,54 @@ func (p DefParty) serviceCarLocationUpload() web_iris.Party { var serviceCarLocationUploadRequest ServiceCarLocationUploadRequest json.Unmarshal(body, &serviceCarLocationUploadRequest) + var serviceCarUser models.ServiceCarUser + database.Instance().Model(&models.ServiceCarUser{}).Where("uid = ?", headerBaseInfo.Uid).Find(&serviceCarUser) + + if serviceCarUser.Uid == 0 { + CarNotExistError.Fail(ctx, serviceCarLocationUploadRequest) + return + } + serviceCarLocation := models.ServiceCarLocation{ Uid: headerBaseInfo.Uid, Longitude: serviceCarLocationUploadRequest.Longitude, Latitude: serviceCarLocationUploadRequest.Latitude, + CarId: serviceCarUser.CarId, Status: 1, } database.Instance().Model(&models.ServiceCarLocation{}).Create(&serviceCarLocation) Success(ctx, serviceCarLocationUploadRequest, nil) + }) + }} +} + +type ServiceCarLocationListRequest struct { + OrderId string //订单ID +} + +type ServiceCarLocationListResponse struct { + ServiceCarLocationList []models.ServiceCarLocation `json:"serviceCarLocationList"` +} + +// 服务车辆经纬度列表 +func (p DefParty) serviceCarLocationList() web_iris.Party { + return web_iris.Party{Prefix: p.Prefix, PartyFunc: func(index iris.Party) { + index.Post(ServiceBase+"/serviceCarLocationList", func(ctx *context.Context) { + body, _ := io.ReadAll(ctx.Request().Body) + var serviceCarLocationListRequest ServiceCarLocationListRequest + json.Unmarshal(body, &serviceCarLocationListRequest) + + var carOrder models.CarOrder + database.Instance().Model(&models.CarOrder{}).Where("order_id = ?", serviceCarLocationListRequest.OrderId).Find(&carOrder) + + if carOrder.Id == 0 { + OrderNotDispachError.Fail(ctx, serviceCarLocationListRequest) + return + } + + var serviceCarLocation []models.ServiceCarLocation + database.Instance().Model(&models.ServiceCarLocation{}).Where("car_id = ? and create_time >= CURDATE()", carOrder.CarId).Find(&serviceCarLocation) + Success(ctx, serviceCarLocationListRequest, ServiceCarLocationListResponse{serviceCarLocation}) }) }} diff --git a/business/models/dataModel.go b/business/models/dataModel.go index 9acc251..3f0b758 100644 --- a/business/models/dataModel.go +++ b/business/models/dataModel.go @@ -339,6 +339,7 @@ type PayOrder struct { type ServiceCarLocation struct { Id int `gorm:"primaryKey;autoIncrement"` //id Uid int64 `gorm:"not null" json:"uid"` //用户ID + CarId int `gorm:"not null" json:"carId"` //车辆ID Longitude string `json:"longitude"` //经度 Latitude string `json:"latitude"` //纬度 CreateTime time.Time `gorm:"type:timestamp;default:CURRENT_TIMESTAMP" json:"createTime"` //创建时间