守价支付

This commit is contained in:
苏尹岚
2020-08-24 15:27:50 +08:00
parent 8d52b66ac6
commit 07a78e16d9
4 changed files with 36 additions and 11 deletions

View File

@@ -410,7 +410,7 @@ func checkPriceDefendOrderByStock(db *dao.DaoDB, storeID, skuID, stock, jxPrice
var (
sumStock = 0
)
priceDefends, _ := dao.GetPriceDefendOrder(db, []int{storeID}, []int{skuID}, []int{jxutils.GetDefendPriceIssue()}, 0, 1, 0, "", utils.ZeroTimeValue, utils.ZeroTimeValue, false)
priceDefends, _ := dao.GetPriceDefendOrder(db, "", []int{storeID}, []int{skuID}, []int{jxutils.GetDefendPriceIssue()}, 0, 1, 0, "", utils.ZeroTimeValue, utils.ZeroTimeValue, false)
if len(priceDefends) == 0 {
return -1
}

View File

@@ -1658,7 +1658,7 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) {
}
func checkPriceDefendOrderByPrice(db *dao.DaoDB, storeID, skuID, stock, jxPrice int) (realStock int) {
priceDefends, _ := dao.GetPriceDefendOrder(db, []int{storeID}, []int{skuID}, []int{jxutils.GetDefendPriceIssue()}, 0, 0, 0, "",utils.ZeroTimeValue, utils.ZeroTimeValue, false)
priceDefends, _ := dao.GetPriceDefendOrder(db, "", []int{storeID}, []int{skuID}, []int{jxutils.GetDefendPriceIssue()}, 0, 0, 0, "", utils.ZeroTimeValue, utils.ZeroTimeValue, false)
if len(priceDefends) == 0 {
return -1
}

View File

@@ -1412,7 +1412,7 @@ func GetSupplySupportStoreSkus(db *DaoDB, fromDate, toDate time.Time, fromStoreI
return getSupplySupportStoreSkusResult, err
}
func GetPriceDefendOrder(db *DaoDB, storeIDs, skuIDs, issues []int, defendPrice, isBuyNowPrice, isSuccess int, userID string, beginAt, EndAt time.Time, isDesc bool) (priceDefendOrders []*model.PriceDefendOrder, err error) {
func GetPriceDefendOrder(db *DaoDB, vendorOrderID string, storeIDs, skuIDs, issues []int, defendPrice, isBuyNowPrice, isSuccess int, userID string, beginAt, EndAt time.Time, isDesc bool) (priceDefendOrders []*model.PriceDefendOrder, err error) {
sql := `
SELECT a.*
FROM price_defend_order a
@@ -1424,6 +1424,10 @@ func GetPriceDefendOrder(db *DaoDB, storeIDs, skuIDs, issues []int, defendPrice,
utils.DefaultTimeValue,
utils.DefaultTimeValue,
}
if vendorOrderID != "" {
sql += " AND a.vendor_order_id = ?"
sqlParams = append(sqlParams, vendorOrderID)
}
if len(storeIDs) > 0 {
sql += " AND a.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
sqlParams = append(sqlParams, storeIDs)

View File

@@ -235,8 +235,9 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64,
}
if createType == OrderCreateTypeNormal {
if jxOrder.OrderType == model.OrderTypeDefendPrice {
buildDefendPriceOrder(ctx, jxOrder, addressID)
return
vendorOrderID := buildDefendPriceOrder(ctx, jxOrder, addressID)
outJxOrder.OrderID = utils.Str2Int64(vendorOrderID)
return outJxOrder, err
}
if outJxOrder.TotalPrice != jxOrder.TotalPrice {
return nil, fmt.Errorf("商品或配送信息发生改变,请重新下单")
@@ -260,7 +261,7 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64,
return outJxOrder, err
}
func buildDefendPriceOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64) {
func buildDefendPriceOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64) (vendorOrderID string) {
var (
issue = 0
db = dao.GetDB()
@@ -278,8 +279,9 @@ func buildDefendPriceOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, address
IsSuccess: model.NO, //默认是不成功
}
dao.WrapAddIDCULDEntity(priceDefendOrder, ctx.GetUserName())
priceDefendOrder.ActualPayPrice = int64(priceDefendOrder.Count) * priceDefendOrder.DefendPrice
priceDefendOrder.ActualPayPrice = int64(priceDefendOrder.Count)*priceDefendOrder.DefendPrice + jxOrder.FreightPrice
dao.CreateEntity(db, priceDefendOrder)
return priceDefendOrder.VendorOrderID
}
// 买家取消(或申请取消)订单
@@ -301,6 +303,9 @@ func BuyerCancelOrder(ctx *jxcontext.Context, orderID int64, reason string) (can
}
func Pay4Order(ctx *jxcontext.Context, orderID int64, payType int, vendorPayType string) (orderPay *model.OrderPay, err error) {
var (
db = dao.GetDB()
)
order, err := partner.CurOrderManager.LoadOrder(utils.Int64ToStr(orderID), model.VendorIDJX)
if err == nil {
switch payType {
@@ -317,6 +322,20 @@ func Pay4Order(ctx *jxcontext.Context, orderID int64, payType int, vendorPayType
default:
err = fmt.Errorf("支付方式:%d当前不支持", payType)
}
} else {
priceDefendOrders, _ := dao.GetPriceDefendOrder(db, utils.Int64ToStr(orderID), nil, nil, []int{jxutils.GetDefendPriceIssue()}, 0, -1, -1, "", utils.ZeroTimeValue, utils.ZeroTimeValue, false)
if len(priceDefendOrders) == 0 {
err = fmt.Errorf("未查询到订单order_id: %v", orderID)
}
order2 := &model.GoodsOrder{
VendorOrderID: priceDefendOrders[0].VendorOrderID,
ActualPayPrice: priceDefendOrders[0].ActualPayPrice,
VendorID: model.VendorIDJX,
}
if orderPay, err = pay4OrderByTL(ctx, order2, vendorPayType); err == nil && orderPay != nil {
dao.WrapAddIDCULDEntity(orderPay, ctx.GetUserName())
err = dao.CreateEntity(dao.GetDB(), orderPay)
}
}
return orderPay, err
}
@@ -428,7 +447,9 @@ func OnPayFinished(orderPay *model.OrderPay) (err error) {
//如果是物料的订单,直接到拣货完成,配送中的状态
if order.OrderType != model.OrderTypeNormal {
// if order.FromStoreID != 0 {
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
if order.OrderType != model.OrderTypeDefendPrice {
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
}
PickupGoods(order, false, "jxadmin")
// }
}
@@ -782,7 +803,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
outJxOrder.FreightPrice = 500
// }
//如果是守价的订单,需要查询本期中该用户是否已经守价过,如果守价过就只算一次运费
priceDefendOrders, _ := dao.GetPriceDefendOrder(db, nil, nil, []int{jxutils.GetDefendPriceIssue()}, 0, -1, -1, deliveryAddress.UserID, utils.ZeroTimeValue, utils.ZeroTimeValue, false)
priceDefendOrders, _ := dao.GetPriceDefendOrder(db, "", nil, nil, []int{jxutils.GetDefendPriceIssue()}, 0, -1, -1, deliveryAddress.UserID, utils.ZeroTimeValue, utils.ZeroTimeValue, false)
if len(priceDefendOrders) > 0 {
outJxOrder.FreightPrice = 0
}
@@ -1907,7 +1928,7 @@ func CreateOrderByPriceDefend(ctx *jxcontext.Context) {
var (
db = dao.GetDB()
)
priceDefends, _ := dao.GetPriceDefendOrder(db, nil, nil, []int{jxutils.GetDefendPriceIssue()}, 0, -1, 1, "", utils.ZeroTimeValue, utils.ZeroTimeValue, false)
priceDefends, _ := dao.GetPriceDefendOrder(db, "", nil, nil, []int{jxutils.GetDefendPriceIssue()}, 0, -1, 1, "", utils.ZeroTimeValue, utils.ZeroTimeValue, false)
if len(priceDefends) == 0 {
return
}
@@ -1958,6 +1979,6 @@ func GetMyPriceDefendOrders(ctx *jxcontext.Context, fromTime, toTime string) (pr
db = dao.GetDB()
userID = ctx.GetUserID()
)
priceDefendOrders, err = dao.GetPriceDefendOrder(db, nil, nil, nil, 0, -1, -1, userID, utils.Str2Time(fromTime), utils.Str2Time(toTime), true)
priceDefendOrders, err = dao.GetPriceDefendOrder(db, "", nil, nil, nil, 0, -1, -1, userID, utils.Str2Time(fromTime), utils.Str2Time(toTime), true)
return priceDefendOrders, err
}