fix:支付
This commit is contained in:
parent
871a7a278b
commit
f20b4fad3e
@ -109,7 +109,6 @@ type OrderProduct struct {
|
|||||||
DiyInformation *UserDiyInformation `json:"diy_information"`
|
DiyInformation *UserDiyInformation `json:"diy_information"`
|
||||||
SizeInfo *OrderProductSizeInfo `json:"size_info"`
|
SizeInfo *OrderProductSizeInfo `json:"size_info"`
|
||||||
FittingInfo *OrderProductFittingInfo `json:"fitting_info"`
|
FittingInfo *OrderProductFittingInfo `json:"fitting_info"`
|
||||||
StepNum []int `json:"step_num"` // 阶梯数量
|
|
||||||
IsHighlyCustomized int64 `json:"is_highly_customized"`
|
IsHighlyCustomized int64 `json:"is_highly_customized"`
|
||||||
}
|
}
|
||||||
type PurchaseQuantity struct {
|
type PurchaseQuantity struct {
|
||||||
|
@ -13,7 +13,6 @@ func (m *FsShoppingCartModel) TableName() string {
|
|||||||
type RelaFsShoppingCart struct {
|
type RelaFsShoppingCart struct {
|
||||||
FsShoppingCart
|
FsShoppingCart
|
||||||
ShoppingCartProduct *RelaFsProduct `json:"shopping_cart_product" gorm:"foreignkey:product_id;references:id"`
|
ShoppingCartProduct *RelaFsProduct `json:"shopping_cart_product" gorm:"foreignkey:product_id;references:id"`
|
||||||
ShoppingCartProductPriceList []*FsProductPrice `json:"shopping_cart_product_price_list" gorm:"foreignkey:product_id;references:product_id"`
|
|
||||||
ShoppingCartProductModel3dList []*FsProductModel3d `json:"shopping_cart_product_model3d_list" gorm:"foreignkey:product_id;references:product_id"`
|
ShoppingCartProductModel3dList []*FsProductModel3d `json:"shopping_cart_product_model3d_list" gorm:"foreignkey:product_id;references:product_id"`
|
||||||
ShoppingCartProductModel3dFitting *FsProductModel3d `json:"shopping_cart_product_model3d_list_fitting" gorm:"foreignkey:fitting_id;references:id"`
|
ShoppingCartProductModel3dFitting *FsProductModel3d `json:"shopping_cart_product_model3d_list_fitting" gorm:"foreignkey:fitting_id;references:id"`
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ type FsUser struct {
|
|||||||
LastName *string `gorm:"default:'';" json:"last_name"` // LastName
|
LastName *string `gorm:"default:'';" json:"last_name"` // LastName
|
||||||
Username *string `gorm:"index;default:'';" json:"username"` //
|
Username *string `gorm:"index;default:'';" json:"username"` //
|
||||||
Company *string `gorm:"default:'';" json:"company"` // 公司名称
|
Company *string `gorm:"default:'';" json:"company"` // 公司名称
|
||||||
Mobile *string `gorm:"default:'';" json:"mobile"` // 手机号码
|
Mobile *string `gorm:"default:'';" json:"mobile"` //
|
||||||
PasswordHash *string `gorm:"default:'';" json:"password_hash"` //
|
PasswordHash *string `gorm:"default:'';" json:"password_hash"` //
|
||||||
VerificationToken *string `gorm:"default:'';" json:"verification_token"` //
|
VerificationToken *string `gorm:"default:'';" json:"verification_token"` //
|
||||||
PasswordResetToken *string `gorm:"default:'';" json:"password_reset_token"` //
|
PasswordResetToken *string `gorm:"default:'';" json:"password_reset_token"` //
|
||||||
|
@ -745,7 +745,7 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
|||||||
resShoppingCartFind := tx.Table(gmodel.NewFsShoppingCartModel(tx).TableName()).
|
resShoppingCartFind := tx.Table(gmodel.NewFsShoppingCartModel(tx).TableName()).
|
||||||
Preload("ShoppingCartProduct", func(dbPreload *gorm.DB) *gorm.DB {
|
Preload("ShoppingCartProduct", func(dbPreload *gorm.DB) *gorm.DB {
|
||||||
return dbPreload.Table(gmodel.NewFsProductModel(tx).TableName()).Preload("CoverResource")
|
return dbPreload.Table(gmodel.NewFsProductModel(tx).TableName()).Preload("CoverResource")
|
||||||
}).Preload("ShoppingCartProductPriceList").
|
}).
|
||||||
Preload("ShoppingCartProductModel3dList").
|
Preload("ShoppingCartProductModel3dList").
|
||||||
Preload("ShoppingCartProductModel3dFitting").
|
Preload("ShoppingCartProductModel3dFitting").
|
||||||
Where("id IN ?", in.CartIds).
|
Where("id IN ?", in.CartIds).
|
||||||
@ -807,8 +807,7 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
|||||||
for _, shoppingCart := range shoppingCartList {
|
for _, shoppingCart := range shoppingCartList {
|
||||||
// 购物车快照
|
// 购物车快照
|
||||||
var shoppingCartSnapshot gmodel.CartSnapshot
|
var shoppingCartSnapshot gmodel.CartSnapshot
|
||||||
// 购物车商品价格
|
|
||||||
var shoppingCartProductPrice *gmodel.FsProductPrice
|
|
||||||
// 购物车商品模型
|
// 购物车商品模型
|
||||||
var shoppingCartProductModel3d *gmodel.FsProductModel3d
|
var shoppingCartProductModel3d *gmodel.FsProductModel3d
|
||||||
if shoppingCart.Snapshot != nil {
|
if shoppingCart.Snapshot != nil {
|
||||||
@ -820,27 +819,6 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
|||||||
errorCode.Message = "create order failed, product '" + shoppingCartSnapshot.ProductInfo.ProductName + "'is absent"
|
errorCode.Message = "create order failed, product '" + shoppingCartSnapshot.ProductInfo.ProductName + "'is absent"
|
||||||
return errors.New(errorCode.Message)
|
return errors.New(errorCode.Message)
|
||||||
}
|
}
|
||||||
// 商品价格异常
|
|
||||||
if len(shoppingCart.ShoppingCartProductPriceList) == 0 {
|
|
||||||
errorCode = *basic.CodeErrOrderCreatProductPriceAbsent
|
|
||||||
errorCode.Message = "create order failed, price of product '" + shoppingCartSnapshot.ProductInfo.ProductName + "'is absent"
|
|
||||||
return errors.New(errorCode.Message)
|
|
||||||
} else {
|
|
||||||
var isProductPrice bool
|
|
||||||
for _, shoppingCartProductPriceInfo := range shoppingCart.ShoppingCartProductPriceList {
|
|
||||||
if *shoppingCart.SizeId == *shoppingCartProductPriceInfo.SizeId {
|
|
||||||
shoppingCartProductPrice = shoppingCartProductPriceInfo
|
|
||||||
isProductPrice = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !isProductPrice {
|
|
||||||
errorCode = *basic.CodeErrOrderCreatProductPriceAbsent
|
|
||||||
errorCode.Message = "create order failed, price of product '" + shoppingCartSnapshot.ProductInfo.ProductName + "'is absent"
|
|
||||||
return errors.New(errorCode.Message)
|
|
||||||
}
|
|
||||||
shoppingCart.ShoppingCartProductPriceList = []*gmodel.FsProductPrice{shoppingCartProductPrice}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 商品模型异常
|
// 商品模型异常
|
||||||
if len(shoppingCart.ShoppingCartProductModel3dList) == 0 {
|
if len(shoppingCart.ShoppingCartProductModel3dList) == 0 {
|
||||||
@ -864,25 +842,17 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
|||||||
shoppingCart.ShoppingCartProductModel3dList = []*gmodel.FsProductModel3d{shoppingCartProductModel3d}
|
shoppingCart.ShoppingCartProductModel3dList = []*gmodel.FsProductModel3d{shoppingCartProductModel3d}
|
||||||
}
|
}
|
||||||
|
|
||||||
var stepNum []int
|
var stepPriceJson gmodel.StepPriceJsonStruct
|
||||||
var stepPrice []int
|
if shoppingCartProductModel3d.StepPrice != nil {
|
||||||
if *shoppingCartProductPrice.StepNum == "" {
|
json.Unmarshal(*shoppingCartProductModel3d.StepPrice, &shoppingCartProductModel3d.StepPrice)
|
||||||
errorCode = *basic.CodeErrOrderCreatProductPriceAbsent
|
|
||||||
errorCode.Message = "create order failed, step num of product '" + shoppingCartSnapshot.ProductInfo.ProductName + "'is failed"
|
|
||||||
return errors.New(errorCode.Message)
|
|
||||||
} else {
|
} else {
|
||||||
json.Unmarshal([]byte(*shoppingCartProductPrice.StepNum), &stepNum)
|
|
||||||
}
|
|
||||||
if *shoppingCartProductPrice.StepPrice == "" {
|
|
||||||
errorCode = *basic.CodeErrOrderCreatProductPriceAbsent
|
errorCode = *basic.CodeErrOrderCreatProductPriceAbsent
|
||||||
errorCode.Message = "create order failed, step price of product '" + shoppingCartSnapshot.ProductInfo.ProductName + "'is failed"
|
errorCode.Message = "create order failed, step price of product '" + shoppingCartSnapshot.ProductInfo.ProductName + "'is failed"
|
||||||
return errors.New(errorCode.Message)
|
return err
|
||||||
} else {
|
|
||||||
json.Unmarshal([]byte(*shoppingCartProductPrice.StepPrice), &stepPrice)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 计算价格 */
|
/* 计算价格 */
|
||||||
productPrice, productTotalPrice, stepNum, stepPrice, err := NewShoppingCart(tx, nil, nil).CaculateCartPrice(*shoppingCart.PurchaseQuantity, shoppingCartProductPrice, *shoppingCart.ShoppingCartProductModel3dFitting.Price)
|
productPrice, productTotalPrice, err := NewShoppingCart(tx, nil, nil).CaculateStepPrice(*shoppingCart.PurchaseQuantity, stepPriceJson, *shoppingCart.ShoppingCartProductModel3dFitting.Price)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errorCode = *basic.CodeErrOrderCreatProductPriceAbsent
|
errorCode = *basic.CodeErrOrderCreatProductPriceAbsent
|
||||||
errorCode.Message = "create order failed, step price of product '" + shoppingCartSnapshot.ProductInfo.ProductName + "'is failed"
|
errorCode.Message = "create order failed, step price of product '" + shoppingCartSnapshot.ProductInfo.ProductName + "'is failed"
|
||||||
@ -960,7 +930,6 @@ func (d *defaultOrder) Create(ctx context.Context, in *CreateReq) (res *CreateRe
|
|||||||
Cm: shoppingCartSnapshot.SizeInfo.Cm,
|
Cm: shoppingCartSnapshot.SizeInfo.Cm,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
StepNum: stepNum,
|
|
||||||
IsHighlyCustomized: *shoppingCart.IsHighlyCustomized,
|
IsHighlyCustomized: *shoppingCart.IsHighlyCustomized,
|
||||||
}
|
}
|
||||||
orderProductList = append(orderProductList, productInter)
|
orderProductList = append(orderProductList, productInter)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user