- handle pending orders and waybills when starting.

This commit is contained in:
gazebo
2018-07-21 12:57:20 +08:00
parent 65eeef9966
commit 1958f24705
12 changed files with 134 additions and 50 deletions

View File

@@ -2,6 +2,7 @@ package controller
import (
"fmt"
"time"
"git.rosy.net.cn/jx-callback/business/scheduler"
@@ -21,6 +22,29 @@ func NewOrderManager() *OrderController {
return &OrderController{}
}
func (c *OrderController) LoadPendingOrders() {
db := orm.NewOrm()
var orders []*model.GoodsOrder
_, err := db.Raw(`
SELECT *
FROM goods_order
WHERE order_created_at >= ?
AND status < ?
ORDER by order_created_at
`, time.Now().Add(-pendingOrderGapMax), model.OrderStatusEndBegin).QueryRows(&orders)
if err != nil {
globals.SugarLogger.Warnf("init load pending orders error:%v", err)
return
}
globals.SugarLogger.Info(len(orders))
for _, v := range orders {
v2 := v
routinePool.CallFunAsync(func() {
scheduler.CurrentScheduler.OnOrderNew(v2)
}, v2.VendorOrderID)
}
}
func (c *OrderController) OnOrderNew(order *model.GoodsOrder) (err error) {
db := orm.NewOrm()
order.StatusTime = order.OrderCreatedAt