+dao.LoadPendingOrders
This commit is contained in:
@@ -31,29 +31,6 @@ type tStoreSkuBindAndVendorSkuID struct {
|
|||||||
func init() {
|
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的
|
// msgVendorStatus的意思是事件本身的类型,类似有时收到NewOrder事件去取,订单状态不一定就是New的
|
||||||
// OnOrderAdjust也类似,而OrderStatus要记录的是消息,所以添加这个
|
// OnOrderAdjust也类似,而OrderStatus要记录的是消息,所以添加这个
|
||||||
func (c *OrderManager) OnOrderNew(order *model.GoodsOrder, orderStatus *model.OrderStatus) (err error) {
|
func (c *OrderManager) OnOrderNew(order *model.GoodsOrder, orderStatus *model.OrderStatus) (err error) {
|
||||||
|
|||||||
@@ -115,8 +115,11 @@ func (c *OrderManager) GetStatusDuplicatedCount(status *model.OrderStatus) (dupl
|
|||||||
|
|
||||||
// todo 最好还是改成全事件回放算了
|
// todo 最好还是改成全事件回放算了
|
||||||
func LoadPendingOrders() {
|
func LoadPendingOrders() {
|
||||||
orders := FixedOrderManager.LoadPendingOrders()
|
orders, err := dao.LoadPendingOrders(dao.GetDB(), time.Now().Add(-pendingOrderGapMax), model.OrderStatusEndBegin)
|
||||||
globals.SugarLogger.Infof("LoadPendingOrders orders count:%d", len(orders))
|
globals.SugarLogger.Infof("LoadPendingOrders orders count:%d, err:%v", len(orders), err)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
ordersCount := len(orders)
|
ordersCount := len(orders)
|
||||||
if ordersCount > 0 {
|
if ordersCount > 0 {
|
||||||
|
|||||||
@@ -1015,3 +1015,15 @@ func GetPendingFakeOrders(db *DaoDB, vendorIDs []int, orderCreatedAfter, orderCr
|
|||||||
err = GetRows(db, &orderList, sql, sqlParams...)
|
err = GetRows(db, &orderList, sql, sqlParams...)
|
||||||
return orderList, err
|
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
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user