This commit is contained in:
邹宗楠
2023-10-24 18:37:37 +08:00
parent 023826e4f7
commit 4ae21905d7
2 changed files with 17 additions and 18 deletions

View File

@@ -8,8 +8,6 @@ import (
"strings" "strings"
"time" "time"
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable"
"git.rosy.net.cn/jx-callback/business/authz/autils" "git.rosy.net.cn/jx-callback/business/authz/autils"
"git.rosy.net.cn/jx-callback/business/jxutils/excel" "git.rosy.net.cn/jx-callback/business/jxutils/excel"
"git.rosy.net.cn/jx-callback/business/jxutils/netprinter" "git.rosy.net.cn/jx-callback/business/jxutils/netprinter"
@@ -176,17 +174,18 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
// 有些平台(比如美团外卖),在新订单事件没有成功返回,但在重发订单消息前,订单状态转换,则不会再重发新订单事件,特殊处理一下 // 有些平台(比如美团外卖),在新订单事件没有成功返回,但在重发订单消息前,订单状态转换,则不会再重发新订单事件,特殊处理一下
if orderStatus != nil { if orderStatus != nil {
if orderStatus.Status == model.OrderStatusAccepted { if orderStatus.Status == model.OrderStatusAccepted {
if loadOrder, err2 := c.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID); err2 == ErrCanNotFindOrder { if _, err2 := c.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID); err2 == ErrCanNotFindOrder {
if handler := partner.GetPurchaseOrderHandlerFromVendorID(orderStatus.VendorID); handler != nil { if handler := partner.GetPurchaseOrderHandlerFromVendorID(orderStatus.VendorID); handler != nil {
if order, err2 := handler.GetOrder(vendorOrgCode, orderStatus.VendorOrderID, ""); err2 == nil && order != nil { if order, err2 := handler.GetOrder(vendorOrgCode, orderStatus.VendorOrderID, ""); err2 == nil && order != nil {
c.OnOrderNew(order, orderStatus) c.OnOrderNew(order, orderStatus)
} }
} }
} else {
loadOrder.Status = model.OrderStatusAccepted
loadOrder.VendorStatus = tao_vegetable.OrderStatusNew
c.UpdateOrderFields(loadOrder, []string{"Status", "VendorStatus"})
} }
//else {
// loadOrder.Status = model.OrderStatusAccepted
// loadOrder.VendorStatus = tao_vegetable.OrderStatusNew
// c.UpdateOrderFields(loadOrder, []string{"Status", "VendorStatus"})
//}
} }
} }
@@ -260,25 +259,25 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
order.OrderFinishedAt = time.Now() order.OrderFinishedAt = time.Now()
dao.UpdateEntity(db, order, "OrderFinishedAt") dao.UpdateEntity(db, order, "OrderFinishedAt")
} else if orderStatus.Status == model.OrderStatusCanceled { } else if orderStatus.Status == model.OrderStatusCanceled {
order, err2 := c.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID) // 订单被取消,则取消三方运单 order2, err2 := c.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID) // 订单被取消,则取消三方运单
waybill, _ := dao.GetWaybills(db, order.VendorOrderID, []int64{model.VendorIDMTPS, model.VendorIDDada, model.VendorIDFengNiao, model.VendorIDUUPT, model.VendorIDSFPS}) waybill, _ := dao.GetWaybills(db, order2.VendorOrderID, []int64{model.VendorIDMTPS, model.VendorIDDada, model.VendorIDFengNiao, model.VendorIDUUPT, model.VendorIDSFPS})
for _, v := range waybill { for _, v := range waybill {
if err := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID).Handler.CancelWaybill(v, 0, "订单被取消了"); err != nil { if err := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID).Handler.CancelWaybill(v, 0, "订单被取消了"); err != nil {
partner.CurOrderManager.OnOrderMsg(order, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消失败Err: %s", order.VendorOrderID, v.VendorWaybillID, err.Error()), "") partner.CurOrderManager.OnOrderMsg(order2, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消失败Err: %s", order.VendorOrderID, v.VendorWaybillID, err.Error()), "")
} else { } else {
partner.CurOrderManager.OnOrderMsg(order, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消成功", order.VendorOrderID, v.VendorWaybillID), "") partner.CurOrderManager.OnOrderMsg(order2, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消成功", order.VendorOrderID, v.VendorWaybillID), "")
} }
} }
// 刷新订单结束时间 // 刷新订单结束时间
order.OrderFinishedAt = time.Now() order2.OrderFinishedAt = time.Now()
dao.UpdateEntity(db, order, "OrderFinishedAt") dao.UpdateEntity(db, order2, "OrderFinishedAt")
//如果取消订单则要把库存加回去 //如果取消订单则要把库存加回去
if err2 == nil { if err2 == nil {
// 判断是否需要打印取消订单 // 判断是否需要打印取消订单
storeDetail, err := c.LoadStoreDetail(order.StoreID, order.VendorID) storeDetail, err := c.LoadStoreDetail(order2.StoreID, order2.VendorID)
if err == nil && storeDetail.IsPrintCancelOrder == model.YES { // 取消申请 if err == nil && storeDetail.IsPrintCancelOrder == model.YES { // 取消申请
_, err = netprinter.PrintRefundOrCancelOrder(jxcontext.AdminCtx, model.YES, order, order.StoreID) _, err = netprinter.PrintRefundOrCancelOrder(jxcontext.AdminCtx, model.YES, order2, order2.StoreID)
} }
if err != nil { if err != nil {
globals.SugarLogger.Debug("Get store Detail Err: ", err) globals.SugarLogger.Debug("Get store Detail Err: ", err)
@@ -1111,7 +1110,6 @@ func (c *OrderManager) UpdateOrderStatusAndDeliveryFlag(order *model.GoodsOrder)
func (c *OrderManager) UpdateOrderFields(order *model.GoodsOrder, fieldList []string) (err error) { func (c *OrderManager) UpdateOrderFields(order *model.GoodsOrder, fieldList []string) (err error) {
db := dao.GetDB() db := dao.GetDB()
globals.SugarLogger.Debugf("=============order:=2 %s", utils.Format4Output(order, false))
utils.CallFuncLogError(func() error { utils.CallFuncLogError(func() error {
if order.ID == 0 { if order.ID == 0 {
order2 := *order order2 := *order

View File

@@ -41,7 +41,7 @@ func (c *PurchaseHandler) onWaybillMsg(tag, orderId string, data interface{}) *t
waybill := c.callbackMsg2Waybill(tag, orderId, data) waybill := c.callbackMsg2Waybill(tag, orderId, data)
if localOrder, err := partner.CurOrderManager.LoadOrder(waybill.VendorOrderID, model.VendorIDDD); err == nil { if localOrder, err := partner.CurOrderManager.LoadOrder(waybill.VendorOrderID, model.VendorIDDD); err == nil {
err := partner.CurOrderManager.OnWaybillStatusChanged(waybill) err := partner.CurOrderManager.OnWaybillStatusChanged(waybill)
if err == nil && waybill.Status == model.WaybillStatusDelivering { if err == nil {
status := &model.OrderStatus{ status := &model.OrderStatus{
VendorOrderID: waybill.VendorOrderID, VendorOrderID: waybill.VendorOrderID,
VendorID: model.VendorIDDD, VendorID: model.VendorIDDD,
@@ -71,7 +71,7 @@ func (c *PurchaseHandler) callbackMsg2Waybill(tag, orderId string, data interfac
if req.Status == tiktok_api.ShipmentStatusReceived { if req.Status == tiktok_api.ShipmentStatusReceived {
tempRemark = req.RiderName + "," + req.RiderPhone tempRemark = req.RiderName + "," + req.RiderPhone
} }
return &model.Waybill{ way := &model.Waybill{
VendorOrderID: utils.Int64ToStr(req.ShopOrderID), VendorOrderID: utils.Int64ToStr(req.ShopOrderID),
OrderVendorID: model.VendorIDDD, OrderVendorID: model.VendorIDDD,
VendorWaybillID: utils.Int64ToStr(req.ShopOrderID), VendorWaybillID: utils.Int64ToStr(req.ShopOrderID),
@@ -84,6 +84,7 @@ func (c *PurchaseHandler) callbackMsg2Waybill(tag, orderId string, data interfac
Remark: tempRemark, Remark: tempRemark,
VendorOrgCode: utils.Int64ToStr(req.ShopID), //为抖音账号ID VendorOrgCode: utils.Int64ToStr(req.ShopID), //为抖音账号ID
} }
return way
} }
//设置自动呼叫运力 //设置自动呼叫运力