From 80e789e30e588c738431466301554daa85f1502a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 4 Jul 2023 17:03:42 +0800 Subject: [PATCH] 1 --- business/jxcallback/orderman/order.go | 32 ++++++++++++++++----------- business/model/dao/dao_order.go | 3 --- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 5dd7a7646..323e5e577 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -4,6 +4,7 @@ import ( "crypto/md5" "errors" "fmt" + "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" "math" "strings" "time" @@ -161,19 +162,6 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, orderStatus *model } func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *model.OrderStatus) (err error) { - // 有些平台(比如美团外卖),在新订单事件没有成功返回,但在重发订单消息前,订单状态转换,则不会再重发新订单事件,特殊处理一下 - if orderStatus != nil { - if orderStatus.Status == model.OrderStatusAccepted { - if _, err2 := c.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID); err2 == ErrCanNotFindOrder { - if handler := partner.GetPurchaseOrderHandlerFromVendorID(orderStatus.VendorID); handler != nil { - if order, err2 := handler.GetOrder(vendorOrgCode, orderStatus.VendorOrderID, ""); err2 == nil && order != nil { - c.OnOrderNew(order, orderStatus) - } - } - } - } - } - db := dao.GetDB() txDB, _ := dao.Begin(db) defer func() { @@ -182,6 +170,24 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m panic(r) } }() + + // 有些平台(比如美团外卖),在新订单事件没有成功返回,但在重发订单消息前,订单状态转换,则不会再重发新订单事件,特殊处理一下 + if orderStatus != nil { + if orderStatus.Status == model.OrderStatusAccepted { + if loadOrder, err2 := c.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID); err2 == ErrCanNotFindOrder { + if handler := partner.GetPurchaseOrderHandlerFromVendorID(orderStatus.VendorID); handler != nil { + if order, err2 := handler.GetOrder(vendorOrgCode, orderStatus.VendorOrderID, ""); err2 == nil && order != nil { + c.OnOrderNew(order, orderStatus) + } + } + } else { + loadOrder.Status = model.OrderStatusAccepted + loadOrder.VendorStatus = tao_vegetable.OrderStatusNew + c.UpdateOrderFields(loadOrder, []string{"Status", "VendorStatus"}) + } + } + } + isDuplicated, order, err := c.addOrderStatus(orderStatus, db) if err == nil { dao.Commit(db, txDB) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 0dda02257..637b4e99c 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -2,7 +2,6 @@ package dao import ( "fmt" - "git.rosy.net.cn/jx-callback/globals" "regexp" "strconv" "time" @@ -1156,8 +1155,6 @@ func GetOrders(db *DaoDB, ids []int64, isIncludeSku, isIncludeFake bool, fromDat sqlParams = append(sqlParams, pageSize, offset) txDB, _ := Begin(db) defer Commit(db, txDB) - globals.SugarLogger.Debugf("===============sql2 := %s", sql) - globals.SugarLogger.Debugf("===============sql2 := %s", utils.Format4Output(sqlParams, false)) if err = GetRowsTx(txDB, &orders, sql, sqlParams...); err == nil { totalCount = GetLastTotalRowCount2(db, txDB) }