@@ -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
}