From d5f2273d79d8b8bf9477de9469c8d03bbd93b4d2 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 17 Dec 2019 14:00:01 +0800 Subject: [PATCH] +dao.LoadPendingOrders --- business/jxcallback/orderman/order.go | 23 ----------------------- business/jxcallback/orderman/orderman.go | 7 +++++-- business/model/dao/dao_order.go | 12 ++++++++++++ 3 files changed, 17 insertions(+), 25 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index ba0da084f..50b86a75d 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -31,29 +31,6 @@ type tStoreSkuBindAndVendorSkuID struct { func init() { } -func (c *OrderManager) LoadPendingOrders() []*model.GoodsOrder { - db := orm.NewOrm() - var orders []*model.GoodsOrder - tillTime := time.Now().Add(-pendingOrderGapMax) - _, err := db.Raw(` - SELECT * - FROM goods_order - WHERE order_created_at >= ? - AND status < ? - `, tillTime, model.OrderStatusEndBegin).QueryRows(&orders) - if err != nil { - globals.SugarLogger.Warnf("LoadPendingOrders load pending orders error:%v", err) - return nil - } - for _, order := range orders { - utils.CallFuncLogError(func() error { - _, err = db.QueryTable("order_sku").Filter("vendor_order_id", order.VendorOrderID).Filter("vendor_id", order.VendorID).All(&order.Skus) - return err - }, "LoadPendingOrders order:%v", order) - } - return orders -} - // msgVendorStatus的意思是事件本身的类型,类似有时收到NewOrder事件去取,订单状态不一定就是New的 // OnOrderAdjust也类似,而OrderStatus要记录的是消息,所以添加这个 func (c *OrderManager) OnOrderNew(order *model.GoodsOrder, orderStatus *model.OrderStatus) (err error) { diff --git a/business/jxcallback/orderman/orderman.go b/business/jxcallback/orderman/orderman.go index c907ed479..f66f1528a 100644 --- a/business/jxcallback/orderman/orderman.go +++ b/business/jxcallback/orderman/orderman.go @@ -115,8 +115,11 @@ func (c *OrderManager) GetStatusDuplicatedCount(status *model.OrderStatus) (dupl // todo 最好还是改成全事件回放算了 func LoadPendingOrders() { - orders := FixedOrderManager.LoadPendingOrders() - globals.SugarLogger.Infof("LoadPendingOrders orders count:%d", len(orders)) + orders, err := dao.LoadPendingOrders(dao.GetDB(), time.Now().Add(-pendingOrderGapMax), model.OrderStatusEndBegin) + globals.SugarLogger.Infof("LoadPendingOrders orders count:%d, err:%v", len(orders), err) + if err != nil { + return + } ordersCount := len(orders) if ordersCount > 0 { diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index ebccfdc9c..df0b8c0c5 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1015,3 +1015,15 @@ func GetPendingFakeOrders(db *DaoDB, vendorIDs []int, orderCreatedAfter, orderCr err = GetRows(db, &orderList, sql, sqlParams...) return orderList, err } + +// 不会有Skus信息 +func LoadPendingOrders(db *DaoDB, orderCreatedAfter time.Time, beforStatus int) (orderList []*model.GoodsOrder, err error) { + sql := ` + SELECT * + FROM goods_order + WHERE order_created_at >= ? + AND status < ?` + sqlParams := []interface{}{orderCreatedAfter, beforStatus} + err = GetRows(db, &orderList, sql, sqlParams...) + return orderList, err +}