diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 8fbe46cd6..145204f7f 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -277,6 +277,7 @@ func buildDefendPriceOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, address IsBuyNowPrice: jxOrder.IsBuyNowPrice, Issue: issue, IsSuccess: model.NO, //默认是不成功 + IsPay: model.NO, } dao.WrapAddIDCULDEntity(priceDefendOrder, ctx.GetUserName()) priceDefendOrder.ActualPayPrice = int64(priceDefendOrder.Count)*priceDefendOrder.DefendPrice + jxOrder.FreightPrice @@ -456,9 +457,10 @@ func OnPayFinished(orderPay *model.OrderPay) (err error) { } else { priceDefendOrders, _ := dao.GetPriceDefendOrder(dao.GetDB(), orderPay.VendorOrderID, nil, nil, []int{jxutils.GetDefendPriceIssue()}, 0, -1, -1, "", utils.ZeroTimeValue, utils.ZeroTimeValue, false) if len(priceDefendOrders) > 0 { + priceDefendOrders[0].IsPay = model.YES + dao.UpdateEntity(dao.GetDB(), priceDefendOrders[0], "IsPay") err = nil } - } return err } @@ -810,7 +812,13 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 // } //如果是守价的订单,需要查询本期中该用户是否已经守价过,如果守价过就只算一次运费 priceDefendOrders, _ := dao.GetPriceDefendOrder(db, "", nil, nil, []int{jxutils.GetDefendPriceIssue()}, 0, -1, -1, deliveryAddress.UserID, utils.ZeroTimeValue, utils.ZeroTimeValue, false) - if len(priceDefendOrders) > 0 { + flag2 := false + for _, v := range priceDefendOrders { + if v.IsPay == model.YES { + flag2 = true + } + } + if len(priceDefendOrders) > 0 && flag2 { outJxOrder.FreightPrice = 0 } } else {