fix:购物车下单
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
@@ -65,9 +66,10 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
||||
err = d.MysqlConn.WithContext(ctx).Transaction(func(tx *gorm.DB) error {
|
||||
// 查询购物车
|
||||
var shoppingCartList []*gmodel.RelaFsShoppingCart
|
||||
resShoppingCartFind := tx.Preload("ShoppingCartProduct", func(dbPreload *gorm.DB) *gorm.DB {
|
||||
return dbPreload.Table(gmodel.NewFsProductModel(tx).TableName()).Preload("CoverResource")
|
||||
}).Preload("ShoppingCartProductPriceList").
|
||||
resShoppingCartFind := tx.Table(gmodel.NewFsShoppingCartModel(tx).TableName()).
|
||||
Preload("ShoppingCartProduct", func(dbPreload *gorm.DB) *gorm.DB {
|
||||
return dbPreload.Table(gmodel.NewFsProductModel(tx).TableName()).Preload("CoverResource")
|
||||
}).Preload("ShoppingCartProductPriceList").
|
||||
Preload("ShoppingCartProductModel3dList").
|
||||
Preload("ShoppingCartProductModel3dFitting").
|
||||
Where("id IN ?", in.CartIds).
|
||||
@@ -150,7 +152,7 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
||||
} else {
|
||||
var isProductPrice bool
|
||||
for _, shoppingCartProductPriceInfo := range shoppingCart.ShoppingCartProductPriceList {
|
||||
if shoppingCart.SizeId == shoppingCartProductPriceInfo.SizeId {
|
||||
if *shoppingCart.SizeId == *shoppingCartProductPriceInfo.SizeId {
|
||||
shoppingCartProductPrice = shoppingCartProductPriceInfo
|
||||
isProductPrice = true
|
||||
break
|
||||
@@ -172,7 +174,7 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
||||
} else {
|
||||
var isProductModel bool
|
||||
for _, shoppingCartProductModel3dInfo := range shoppingCart.ShoppingCartProductModel3dList {
|
||||
if shoppingCart.SizeId == shoppingCartProductModel3dInfo.SizeId {
|
||||
if *shoppingCart.SizeId == *shoppingCartProductModel3dInfo.SizeId {
|
||||
shoppingCartProductModel3d = shoppingCartProductModel3dInfo
|
||||
isProductModel = true
|
||||
break
|
||||
@@ -216,8 +218,6 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
||||
orderProductTotal = orderProductTotal + productTotalPrice
|
||||
|
||||
// 订单商品
|
||||
var productSnapshot = make(map[string]interface{}, 1)
|
||||
productSnapshot["product_snapshot"] = shoppingCart.ShoppingCartProduct
|
||||
var productCoverMetadata map[string]interface{}
|
||||
if shoppingCart.ShoppingCartProduct.CoverResource != nil && shoppingCart.ShoppingCartProduct.CoverResource.Metadata != nil {
|
||||
json.Unmarshal(*shoppingCart.ShoppingCartProduct.CoverResource.Metadata, &productCoverMetadata)
|
||||
@@ -230,7 +230,7 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
||||
CurrentCurrency: in.CurrentCurrency,
|
||||
OriginalCurrency: in.OriginalCurrency,
|
||||
}),
|
||||
ExpectedDeliveryTime: in.ExpectedDeliveryTime,
|
||||
ExpectedDeliveryTime: &in.ExpectedDeliveryTime,
|
||||
PurchaseQuantity: *shoppingCart.PurchaseQuantity,
|
||||
ProductID: *shoppingCart.ProductId,
|
||||
ProductCover: *shoppingCart.ShoppingCartProduct.Cover,
|
||||
@@ -243,7 +243,7 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
||||
CurrentCurrency: in.CurrentCurrency,
|
||||
OriginalCurrency: in.OriginalCurrency,
|
||||
}),
|
||||
ProductSnapshot: productSnapshot,
|
||||
ProductSnapshot: shoppingCart.ShoppingCartProduct,
|
||||
ShoppingCartSnapshot: &shoppingCart.FsShoppingCart,
|
||||
ProductSn: *shoppingCart.ShoppingCartProduct.Sn,
|
||||
DiyInformation: &shoppingCartSnapshot.UserDiyInformation,
|
||||
@@ -322,15 +322,15 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
||||
|
||||
// 订单状态--当前
|
||||
var status = gmodel.OrderStatus{
|
||||
Ctime: nowTime,
|
||||
Utime: nowTime,
|
||||
Ctime: &nowTime,
|
||||
Utime: &nowTime,
|
||||
StatusCode: constants.ORDERSTATUSUNPAIDDEPOSIT,
|
||||
StatusTitle: constants.OrderStatusMessage[constants.ORDERSTATUSUNPAIDDEPOSIT],
|
||||
}
|
||||
// 订单状态--链路
|
||||
var statusLink = order.GenerateOrderStatusLink(in.DeliveryMethod, nowTime, in.ExpectedDeliveryTime)
|
||||
var orderInfo = gmodel.OrderInfo{
|
||||
Ctime: nowTime,
|
||||
Ctime: &nowTime,
|
||||
DeliveryMethod: in.DeliveryMethod,
|
||||
OrderSn: orderSn,
|
||||
Status: status,
|
||||
@@ -345,14 +345,19 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
||||
PayStatus: payStatus,
|
||||
}
|
||||
// 数据库操作
|
||||
var order = gmodel.NewFsOrder{
|
||||
|
||||
orderDetailByte, err := json.Marshal(orderDetail)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var order = gmodel.FsOrder{
|
||||
UserId: &in.UserId,
|
||||
DeliveryMethod: &in.DeliveryMethod,
|
||||
OrderSn: &orderSn,
|
||||
Status: (*int64)(&status.StatusCode),
|
||||
PayStatus: (*int64)(&payStatus),
|
||||
Ctime: &nowTime,
|
||||
Metadata: &orderDetail,
|
||||
Metadata: &orderDetailByte,
|
||||
}
|
||||
result := tx.Create(&order)
|
||||
if result.Error != nil {
|
||||
@@ -361,6 +366,12 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
logx.Errorf("create order failed, err: %v", err)
|
||||
|
||||
if errorCode.Code == 0 {
|
||||
errorCode.Code = basic.CodeApiErr.Code
|
||||
errorCode.Message = basic.CodeApiErr.Message
|
||||
}
|
||||
return &CreateRes{
|
||||
OrderSn: orderSn,
|
||||
ErrorCode: errorCode,
|
||||
|
||||
Reference in New Issue
Block a user