diff --git a/business/model/const.go b/business/model/const.go index f9bad6472..496ba1fa5 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -35,7 +35,6 @@ var ( OrderStatusMsg: "通知消息", OrderStatusRefuseFailedGetGoods: "取货失败审核驳回", OrderStatusAdjust: "订单调整完成", - OrderStatusWait4Pay: "待付款", OrderStatusApplyUrgeOrder: "催单", OrderStatusUnlocked: "解锁", @@ -46,7 +45,7 @@ var ( OrderStatusUnknown: "一般事件", - OrderStatusCreated: "待支付", + OrderStatusWait4Pay: "待付款", OrderStatusNew: "新订单", OrderStatusAccepted: "待拣货", OrderStatusFinishedPickup: "待配送", @@ -163,17 +162,17 @@ const ( OrderStatusRefuseFailedGetGoods = -70 // 取货失败审核驳回 OrderStatusAdjust = -65 // 原值-35 订单调整完成 - OrderStatusWait4Pay = -60 // 原值-30 下单待支付,微盟在这个时间发新订单事件 OrderStatusApplyUrgeOrder = -55 // 原值-15 - OrderStatusUnlocked = -25 - OrderStatusLocked = -20 - // OrderStatusApplyRefund = -10 - OrderStatusUndoApplyCancel = -10 - OrderStatusApplyCancel = -5 + OrderStatusUnlocked = -25 + OrderStatusLocked = -20 + OrderStatusUndoApplyCancel = -10 + OrderStatusVendorRejectCancel = -7 + OrderStatusVendorAgreeCancel = -6 + OrderStatusApplyCancel = -5 OrderStatusUnknown = 0 - OrderStatusCreated = 2 // 已支付 + OrderStatusWait4Pay = 2 // 原值-60 下单待支付 OrderStatusNew = 5 // 新订单,实际是已经支付 OrderStatusAccepted = 10 // 已经接单,也即待出库,待拣货 OrderStatusFinishedPickup = 15 // 拣货完成 @@ -336,7 +335,7 @@ func IsOrderLockStatus(status int) bool { } func IsOrderUnlockStatus(status int) bool { - return status == OrderStatusUnlocked || status == OrderStatusUndoApplyCancel + return status == OrderStatusUnlocked || status == OrderStatusUndoApplyCancel || status == OrderStatusVendorAgreeCancel || status == OrderStatusVendorRejectCancel } func IsOrderMainStatus(status int) bool { diff --git a/business/model/order.go b/business/model/order.go index d330ce167..98a62b783 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -76,7 +76,7 @@ type GoodsOrder struct { GoodsCount int `json:"goodsCount"` // 商品个数 Status int `json:"status"` // 参见OrderStatus*相关的常量定义 VendorStatus string `orm:"size(255)" json:"vendorStatus"` - LockStatus int `json:"lockStatus"` + LockStatus int `json:"lockStatus"` // 当前只支持单一锁定 LockStatusTime time.Time `orm:"type(datetime);null" json:"lockStatusTime"` // last lock status time OrderSeq int `json:"orderSeq"` // 门店订单序号 BuyerComment string `orm:"size(255)" json:"buyerComment"` diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index 83f53d018..3c1804856 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -28,8 +28,6 @@ const ( callDeliveryDelay = 10 * time.Minute callDeliveryDelayGap = 30 - fakeUserApplyCancel = "fake_user_apply_cancel" - fakeUserUndoApplyCancel = "fake_user_undo_apply_cancel" fakeAcceptOrder = "fake_accept_order" fakeOrderAdjustFinished = "fake_order_adjust_finished" fakeOrderCanceled = "fake_order_canceled" @@ -49,8 +47,6 @@ var ( ebaiapi.OrderStatusCanceled: model.OrderStatusCanceled, fakeOrderAdjustFinished: model.OrderStatusAdjust, - fakeUserApplyCancel: model.OrderStatusApplyCancel, - fakeUserUndoApplyCancel: model.OrderStatusUndoApplyCancel, fakeOrderCanceled: model.OrderStatusCanceled, } @@ -478,11 +474,15 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *ebaiapi.CallbackMsg) (orderSta if cancelType == ebaiapi.OrderUserCancelTypeBeforeSale { if msgType == ebaiapi.OrderUserCancelApply || msgType == ebaiapi.OrderUserCancelCSIntervene { - orderStatus.VendorStatus = fakeUserApplyCancel - } else if msgType == ebaiapi.OrderUserCancelInvalid || - msgType == ebaiapi.OrderUserCancelMerchantRefused || - msgType == ebaiapi.OrderUserCancelCSRefused { - orderStatus.VendorStatus = fakeUserUndoApplyCancel + orderStatus.Status = model.OrderStatusApplyCancel + } else if msgType == ebaiapi.OrderUserCancelCSRefused || + msgType == ebaiapi.OrderUserCancelMerchantRefused { + orderStatus.Status = model.OrderStatusVendorRejectCancel + } else if msgType == ebaiapi.OrderUserCancelInvalid { + orderStatus.Status = model.OrderStatusUndoApplyCancel + } else if msgType == ebaiapi.OrderUserCancelCSAgreed || + msgType == ebaiapi.OrderUserCancelMerchantAgreed { + orderStatus.Status = model.OrderStatusVendorAgreeCancel } } } else if msg.Cmd == ebaiapi.CmdOrderPartRefund { @@ -500,7 +500,9 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *ebaiapi.CallbackMsg) (orderSta } orderStatus.Remark = utils.Interface2String(msg.Body["reason"]) } - orderStatus.Status = c.getStatusFromVendorStatus(orderStatus.VendorStatus) + if orderStatus.Status == 0 { + orderStatus.Status = c.getStatusFromVendorStatus(orderStatus.VendorStatus) + } return orderStatus } diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index 2c545854b..ab6ca39a7 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -34,6 +34,9 @@ var ( jdapi.OrderStatusUserApplyCancel: model.OrderStatusApplyCancel, jdapi.OrderStatusLocked: model.OrderStatusLocked, jdapi.OrderStatusUnlocked: model.OrderStatusUnlocked, + + jdapi.OrderStatusVenderAgreeCancel: model.OrderStatusVendorAgreeCancel, + jdapi.OrderStatusVenderRejectCancel: model.OrderStatusVendorRejectCancel, } deliveryTypeMap = map[int]string{ jdapi.CarrierNoCrowdSourcing: model.OrderDeliveryTypePlatform, diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 4064fbb26..9fff31790 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -152,7 +152,7 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, outJxOrder.OrderID = GenOrderNo(ctx) order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress) if err = err2; err == nil { - order.Status = model.OrderStatusCreated + order.Status = model.OrderStatusWait4Pay callNewOrder(order) } } @@ -556,7 +556,7 @@ func AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgre if isAgree { err = CancelOrder(ctx, order, reason) } else { - err = changeOrderStatus(order.VendorOrderID, model.OrderStatusUndoApplyCancel, reason) + err = changeOrderStatus(order.VendorOrderID, model.OrderStatusVendorRejectCancel, reason) } return err } diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 9cc8fe70d..37ac17b84 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -65,7 +65,7 @@ var ( fakeFinishedPickup: model.OrderStatusFinishedPickup, fakeOrderAdjustFinished: model.OrderStatusAdjust, - fakeRefuseUserApplyCancel: model.OrderStatusUnlocked, + fakeRefuseUserApplyCancel: model.OrderStatusVendorRejectCancel, fakeUserApplyCancel: model.OrderStatusApplyCancel, fakeUserUndoApplyCancel: model.OrderStatusUndoApplyCancel, fakeMerchantAgreeApplyCancel: model.OrderStatusCanceled,