From 2261421ba52a2b0e95558476ac45b352eb840f64 Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Sat, 7 Oct 2023 13:33:40 +0800 Subject: [PATCH] =?UTF-8?q?fix=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/gmodel/fs_address_gen.go | 9 ++--- model/gmodel/fs_order_logic.go | 23 ++++++----- service/repositories/order.go | 72 +++++++++++++++++++++------------- 3 files changed, 62 insertions(+), 42 deletions(-) diff --git a/model/gmodel/fs_address_gen.go b/model/gmodel/fs_address_gen.go index 2feb031b..cb740a7c 100644 --- a/model/gmodel/fs_address_gen.go +++ b/model/gmodel/fs_address_gen.go @@ -1,15 +1,14 @@ package gmodel import ( - "time" - "gorm.io/gorm" + "time" ) // fs_address 用户地址表 type FsAddress struct { AddressId int64 `gorm:"primary_key;default:0;auto_increment;" json:"address_id"` // - UserId *int64 `gorm:"index;default:0;" json:"user_id"` // 用户ID + UserId *int64 `gorm:"default:0;" json:"user_id"` // 用户ID FirstName *string `gorm:"default:'';" json:"first_name"` // FirstName LastName *string `gorm:"default:'';" json:"last_name"` // LastName Mobile *string `gorm:"default:'';" json:"mobile"` // 手机号码 @@ -21,8 +20,8 @@ type FsAddress struct { ZipCode *string `gorm:"default:'';" json:"zip_code"` // Status *int64 `gorm:"default:0;" json:"status"` // 1正常 0异常 Ctime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"ctime"` // 创建时间 - Utime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"utime"` // 更新时间 - Ltime *time.Time `gorm:"index;default:'0000-00-00 00:00:00';" json:"ltime"` // 上次被使用的时间 + Utime *time.Time `gorm:"index;default:'0000-00-00 00:00:00';" json:"utime"` // 更新时间 + Ltime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"ltime"` // 上次被使用的时间 } type FsAddressModel struct { db *gorm.DB diff --git a/model/gmodel/fs_order_logic.go b/model/gmodel/fs_order_logic.go index 0c05b483..9398e5a8 100644 --- a/model/gmodel/fs_order_logic.go +++ b/model/gmodel/fs_order_logic.go @@ -73,14 +73,14 @@ type PayStatus struct { // 订单信息 type OrderInfo struct { - UserId int64 `json:"user_id"` // 物流类型 - Ctime *time.Time `json:"ctime"` // 创建日期 - DeliveryMethod int64 `json:"delivery_method"` // 物流类型 - Metadata map[string]interface{} `json:"metadata"` // 额外参数 - OrderSn string `json:"order_sn"` // 订单编号 - Status OrderStatus `json:"status"` // 当前状态 - StatusLink []OrderStatus `json:"status_link"` // 状态链路 - Utime *time.Time `json:"utime"` // 更新时间 + UserId int64 `json:"user_id"` // 物流类型 + Ctime *time.Time `json:"ctime"` // 创建日期 + DeliveryMethod int64 `json:"delivery_method"` // 物流类型 + Metadata OrderMetadata `json:"metadata"` // 额外参数 + OrderSn string `json:"order_sn"` // 订单编号 + Status OrderStatus `json:"status"` // 当前状态 + StatusLink []OrderStatus `json:"status_link"` // 状态链路 + Utime *time.Time `json:"utime"` // 更新时间 } // 订单状态--用户 @@ -112,6 +112,7 @@ type OrderProduct struct { SizeInfo *OrderProductSizeInfo `json:"size_info"` FittingInfo *OrderProductFittingInfo `json:"fitting_info"` IsHighlyCustomized int64 `json:"is_highly_customized"` + RenderImage string `json:"render_image"` } type PurchaseQuantity struct { Current interface{} `json:"current"` @@ -140,9 +141,9 @@ type ExpectedDelivery struct { } type OrderProductInter struct { + CartId int64 `json:"cart_id"` // 购物车ID TotalPrice AmountInfo `json:"total_price"` // 商品总价 ItemPrice AmountInfo `json:"item_price"` // 商品单价 - ExpectedDelivery *ExpectedDelivery `json:"expected_delivery"` // 预计到货 PurchaseQuantity *PurchaseQuantity `json:"purchase_quantity"` // 购买数量 ProductId int64 `json:"product_id"` // 商品ID ProductName string `json:"product_name"` // 商品名称 @@ -153,4 +154,8 @@ type OrderProductInter struct { SizeInfo *OrderProductSizeInfo `json:"size_info"` FittingInfo *OrderProductFittingInfo `json:"fitting_info"` IsHighlyCustomized int64 `json:"is_highly_customized"` + RenderImage string `json:"render_image"` +} +type OrderMetadata struct { + ExpectedDeliveryTime ExpectedDelivery `json:"expected_delivery_time"` // 预计到货时间 } diff --git a/service/repositories/order.go b/service/repositories/order.go index 9616b580..966910df 100644 --- a/service/repositories/order.go +++ b/service/repositories/order.go @@ -807,7 +807,7 @@ func (d *defaultOrder) CreatePrePaymentByDeposit(ctx context.Context, in *Create func (d *defaultOrder) List(ctx context.Context, in *ListReq) (res *ListRes, err error) { var orderList []gmodel.FsOrder model := d.MysqlConn.Model(&gmodel.FsOrder{}).Where("is_del = ?", 0) - model.Where("pay_status > ?", 0) + // model.Where("pay_status > ?", 0) if in.UserId != 0 { model.Where("user_id = ?", in.UserId) } @@ -1054,10 +1054,6 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe CurrentCurrency: in.CurrentCurrency, OriginalCurrency: in.OriginalCurrency, }), - ExpectedDelivery: &gmodel.ExpectedDelivery{ - Current: in.ExpectedDeliveryTime, - Initiate: in.ExpectedDeliveryTime, - }, PurchaseQuantity: &gmodel.PurchaseQuantity{ Current: *shoppingCart.PurchaseQuantity, Initiate: *shoppingCart.PurchaseQuantity, @@ -1082,6 +1078,8 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe }, }, IsHighlyCustomized: *shoppingCart.IsHighlyCustomized, + RenderImage: shoppingCartSnapshot.RenderImage, + CartId: shoppingCart.Id, } orderProductList = append(orderProductList, &productInter) shoppingProductSnapshotList = append(shoppingProductSnapshotList, shoppingCart.ShoppingCartProduct) @@ -1160,6 +1158,12 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe byteShoppingCartSnapshot, _ := json.Marshal(shoppingCartSnapshotList) byteShoppingProductSnapshot, _ := json.Marshal(shoppingProductSnapshotList) byteStatusLink, _ := json.Marshal(statusLink) + byteOrderMetadata, _ := json.Marshal(gmodel.OrderMetadata{ + ExpectedDeliveryTime: gmodel.ExpectedDelivery{ + Current: in.ExpectedDeliveryTime, + Initiate: in.ExpectedDeliveryTime, + }, + }) // 创建订单 resultCreate := tx.Create(&gmodel.FsOrder{ @@ -1175,6 +1179,7 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe Status: (*int64)(&status), PayStatus: (*int64)(&payStatus), Ctime: &nowTime, + Metadata: &byteOrderMetadata, }) if resultCreate.Error != nil { @@ -1341,12 +1346,19 @@ func (d *defaultOrder) OrderDetailHandler(ctx context.Context, orderInfo *gmodel return nil, err } } - var status = order.GetOrderStatusCurrent(statusLink, constants.OrderStatusCode(*orderInfo.Status)) - var orderDetail gmodel.OrderDetail - var orderMetadata map[string]interface{} + + var orderMetadata gmodel.OrderMetadata if orderInfo.Metadata != nil { json.Unmarshal(*orderInfo.Metadata, &orderMetadata) } + // 预计到货时间 + var expectedTime = orderMetadata.ExpectedDeliveryTime.Current + + var status = order.GetOrderStatusCurrent(statusLink, constants.OrderStatusCode(*orderInfo.Status)) + status.ExpectedTime = &expectedTime + + var orderDetail gmodel.OrderDetail + if original == 1 { orderDetail.DeliveryAddress = orderAddress orderDetail.OrderAmount = orderAmount @@ -1371,32 +1383,35 @@ func (d *defaultOrder) OrderDetailHandler(ctx context.Context, orderInfo *gmodel for _, productValue := range orderProduct { var shoppingCartSnapshotData gmodel.FsShoppingCartData for _, shoppingCartSnapshotValue := range shoppingCartSnapshot { - snapshot, err := d.OrderShoppingCartSnapshotHandler(ctx, shoppingCartSnapshotValue.Snapshot) - if err != nil { - logc.Errorf(ctx, "OrderDetailHandler OrderShoppingCartSnapshotHandler failed, err: %v", err) - return nil, err + if productValue.CartId == shoppingCartSnapshotValue.Id { + + snapshot, err := d.OrderShoppingCartSnapshotHandler(ctx, shoppingCartSnapshotValue.Snapshot) + if err != nil { + logc.Errorf(ctx, "OrderDetailHandler OrderShoppingCartSnapshotHandler failed, err: %v", err) + return nil, err + } + shoppingCartSnapshotData.Id = shoppingCartSnapshotValue.Id + shoppingCartSnapshotData.UserId = shoppingCartSnapshotValue.UserId + shoppingCartSnapshotData.ProductId = shoppingCartSnapshotValue.ProductId + shoppingCartSnapshotData.TemplateId = shoppingCartSnapshotValue.TemplateId + shoppingCartSnapshotData.ModelId = shoppingCartSnapshotValue.ModelId + shoppingCartSnapshotData.SizeId = shoppingCartSnapshotValue.SizeId + shoppingCartSnapshotData.LightId = shoppingCartSnapshotValue.LightId + shoppingCartSnapshotData.FittingId = shoppingCartSnapshotValue.FittingId + shoppingCartSnapshotData.PurchaseQuantity = shoppingCartSnapshotValue.PurchaseQuantity + shoppingCartSnapshotData.IsSelected = shoppingCartSnapshotValue.IsSelected + shoppingCartSnapshotData.IsSelected = shoppingCartSnapshotValue.IsSelected + shoppingCartSnapshotData.IsHighlyCustomized = shoppingCartSnapshotValue.IsHighlyCustomized + shoppingCartSnapshotData.Ctime = shoppingCartSnapshotValue.Ctime + shoppingCartSnapshotData.Utime = shoppingCartSnapshotValue.Utime + shoppingCartSnapshotData.Snapshot = &snapshot } - shoppingCartSnapshotData.Id = shoppingCartSnapshotValue.Id - shoppingCartSnapshotData.UserId = shoppingCartSnapshotValue.UserId - shoppingCartSnapshotData.ProductId = shoppingCartSnapshotValue.ProductId - shoppingCartSnapshotData.TemplateId = shoppingCartSnapshotValue.TemplateId - shoppingCartSnapshotData.ModelId = shoppingCartSnapshotValue.ModelId - shoppingCartSnapshotData.SizeId = shoppingCartSnapshotValue.SizeId - shoppingCartSnapshotData.LightId = shoppingCartSnapshotValue.LightId - shoppingCartSnapshotData.FittingId = shoppingCartSnapshotValue.FittingId - shoppingCartSnapshotData.PurchaseQuantity = shoppingCartSnapshotValue.PurchaseQuantity - shoppingCartSnapshotData.IsSelected = shoppingCartSnapshotValue.IsSelected - shoppingCartSnapshotData.IsSelected = shoppingCartSnapshotValue.IsSelected - shoppingCartSnapshotData.IsHighlyCustomized = shoppingCartSnapshotValue.IsHighlyCustomized - shoppingCartSnapshotData.Ctime = shoppingCartSnapshotValue.Ctime - shoppingCartSnapshotData.Utime = shoppingCartSnapshotValue.Utime - shoppingCartSnapshotData.Snapshot = &snapshot } orderProductItem := gmodel.OrderProduct{ TotalPrice: order.GetAmountInfoFormat(&productValue.TotalPrice), ItemPrice: order.GetAmountInfoFormat(&productValue.ItemPrice), - ExpectedDeliveryTime: &productValue.ExpectedDelivery.Current, + ExpectedDeliveryTime: &expectedTime, PurchaseQuantity: *productValue.PurchaseQuantity, ProductId: productValue.ProductId, ProductSn: productValue.ProductSn, @@ -1409,6 +1424,7 @@ func (d *defaultOrder) OrderDetailHandler(ctx context.Context, orderInfo *gmodel SizeInfo: productValue.SizeInfo, FittingInfo: productValue.FittingInfo, IsHighlyCustomized: productValue.IsHighlyCustomized, + RenderImage: productValue.RenderImage, } orderProductList = append(orderProductList, orderProductItem)