This commit is contained in:
苏尹岚
2020-08-11 09:27:00 +08:00
25 changed files with 348 additions and 117 deletions

View File

@@ -8,6 +8,8 @@ import (
"strings"
"time"
"git.rosy.net.cn/baseapi/platformapi/jdshopapi"
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
"git.rosy.net.cn/jx-callback/business/jxstore/event"
@@ -847,6 +849,7 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd
}
order.TotalShopMoney += jxOrder.FreightPrice
order.ActualPayPrice = order.TotalShopMoney
order.TotalShopMoney = utils.Float64TwoInt64(float64(order.TotalShopMoney) * jdshopapi.JdsPayPercentage)
if jxOrder.FromStoreID != 0 {
order.FromStoreID = jxOrder.FromStoreID
order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled
@@ -1709,44 +1712,44 @@ func SendFailedMatterOrder(ctx *jxcontext.Context, vendorOrderID string) (err er
if order == nil || order.StoreID != model.MatterStoreID || order.FromStoreID == 0 {
return fmt.Errorf("只允许物料店重发物料订单调用此接口!")
}
queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(order.EclpOutID)
if len(queryOrderStatus.OrderStatusList) > 0 {
code := queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode
if code == jdeclpapi.SoStatusCode10022 || code == jdeclpapi.SoStatusCode10038 { //表示该订单在京东物流为暂停或已经逆向发货完成
if len(order.VendorOrderID) == 14 && order.EclpOutID != "" { //这是不分包的订单
_, err = createMatterOrder(buildJxOrderInfo(order, order.Skus), order, int64(00))
err = CancelMatterOrder(db, order, cancelMatterOrderReason)
changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, cancelMatterOrderReason)
for _, v := range order.Skus {
cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID)
}
} else if len(order.VendorOrderID) == 14 && order.EclpOutID == "" { //这是分包的主订单
goodsList, err := dao.GetMatterChildOrders(db, order.VendorOrderID)
// queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(order.EclpOutID)
// if len(queryOrderStatus.OrderStatusList) > 0 {
// code := queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode
// if code == jdeclpapi.SoStatusCode10022 || code == jdeclpapi.SoStatusCode10038 { //表示该订单在京东物流为暂停或已经逆向发货完成
if len(order.VendorOrderID) == 14 && order.EclpOutID != "" { //这是不分包的订单
_, err = createMatterOrder(buildJxOrderInfo(order, order.Skus), order, int64(01))
err = CancelMatterOrder(db, order, cancelMatterOrderReason)
changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, cancelMatterOrderReason)
for _, v := range order.Skus {
cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID)
}
} else if len(order.VendorOrderID) == 14 && order.EclpOutID == "" { //这是分包的主订单
goodsList, err := dao.GetMatterChildOrders(db, order.VendorOrderID)
if err != nil {
return err
}
if len(goodsList) > 0 {
for _, v := range goodsList {
cOrder, err := partner.CurOrderManager.LoadOrder(v.VendorOrderID, model.VendorIDJX)
if err != nil {
return err
}
if len(goodsList) > 0 {
for _, v := range goodsList {
cOrder, err := partner.CurOrderManager.LoadOrder(v.VendorOrderID, model.VendorIDJX)
if err != nil {
return err
}
suffix := utils.Str2Int64(cOrder.VendorOrderID[len(cOrder.VendorOrderID)-2:]) + int64(len(goodsList))
_, err = createMatterOrder(buildJxOrderInfo(cOrder, cOrder.Skus), cOrder, suffix)
for _, v := range cOrder.Skus {
cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID)
}
}
suffix := utils.Str2Int64(cOrder.VendorOrderID[len(cOrder.VendorOrderID)-2:]) + int64(len(goodsList))
_, err = createMatterOrder(buildJxOrderInfo(cOrder, cOrder.Skus), cOrder, suffix)
for _, v := range cOrder.Skus {
cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID)
}
err = CancelMatterOrder(db, order, cancelMatterOrderReason)
changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, cancelMatterOrderReason)
} else if len(order.VendorOrderID) == 16 && order.EclpOutID != "" { // 这是分包的子订单
return fmt.Errorf("请重发主订单!主订单号:[%v]", order.VendorOrderID[len(order.VendorOrderID)-2:])
}
} else {
return fmt.Errorf("只允许物流订单为暂停或逆向完成才能调用此接口!")
}
err = CancelMatterOrder(db, order, cancelMatterOrderReason)
changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, cancelMatterOrderReason)
} else if len(order.VendorOrderID) == 16 && order.EclpOutID != "" { // 这是分包的子订单
return fmt.Errorf("请重发主订单!主订单号:[%v]", order.VendorOrderID[len(order.VendorOrderID)-2:])
}
// } else {
// return fmt.Errorf("只允许物流订单为暂停或逆向完成才能调用此接口!")
// }
// }
return err
}