- handle pending orders and waybills when starting.
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
@@ -17,6 +19,40 @@ func NewWaybillManager() *WaybillController {
|
||||
return &WaybillController{}
|
||||
}
|
||||
|
||||
func (w *WaybillController) LoadPendingWaybills() {
|
||||
db := orm.NewOrm()
|
||||
var bills []*model.Waybill
|
||||
_, err := db.Raw(`
|
||||
SELECT t1.*
|
||||
FROM waybill t1
|
||||
JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id
|
||||
AND t2.vendor_id = t1.order_vendor_id
|
||||
AND t2.order_created_at >= ?
|
||||
AND t2.status < ?
|
||||
WHERE waybill_created_at >= ?
|
||||
AND t1.status < ?
|
||||
ORDER by waybill_created_at
|
||||
`, time.Now().Add(-pendingOrderGapMax), model.WaybillStatusEndBegin,
|
||||
time.Now().Add(-pendingOrderGapMax), model.WaybillStatusEndBegin).QueryRows(&bills)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Warnf("init load pending waybills error:%v", err)
|
||||
return
|
||||
}
|
||||
globals.SugarLogger.Info(len(bills))
|
||||
for _, v := range bills {
|
||||
v2 := v
|
||||
routinePool.CallFunAsync(func() {
|
||||
if v2.Status != model.WaybillStatusNew {
|
||||
savedStatus := v2.Status
|
||||
v2.Status = model.WaybillStatusNew
|
||||
scheduler.CurrentScheduler.OnWaybillStatusChanged(v2)
|
||||
v2.Status = savedStatus
|
||||
}
|
||||
scheduler.CurrentScheduler.OnWaybillStatusChanged(v2)
|
||||
}, v2.VendorOrderID)
|
||||
}
|
||||
}
|
||||
|
||||
func (w *WaybillController) onWaybillNew(bill *model.Waybill) (err error) {
|
||||
db := orm.NewOrm()
|
||||
isDuplicated, err := addOrderOrWaybillStatus(model.Waybill2Status(bill), db)
|
||||
|
||||
Reference in New Issue
Block a user