- order manager added.
This commit is contained in:
@@ -342,7 +342,7 @@ func (c *OrderManager) LoadOrder(vendorOrderID string, vendorID int) (order *mod
|
||||
func (c *OrderManager) UpdateOrderStatusDirectly(order *model.GoodsOrder) (err error) {
|
||||
db := orm.NewOrm()
|
||||
utils.CallFuncLogError(func() error {
|
||||
_, err = db.Update(db, "Status")
|
||||
_, err = db.Update(order, "Status")
|
||||
return err
|
||||
}, "UpdateOrderStatusDirectly orderID:%s failed with error:%v", order.VendorOrderID, err)
|
||||
return err
|
||||
|
||||
@@ -21,7 +21,7 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
curOrderManager *OrderManager
|
||||
FixedOrderManager *OrderManager
|
||||
)
|
||||
|
||||
// 所有公共接口调用前,要求在order里或status中设置合适的Status
|
||||
@@ -53,8 +53,8 @@ func (s StatusTimerSlice) Swap(i, j int) {
|
||||
}
|
||||
|
||||
func init() {
|
||||
curOrderManager = NewOrderManager()
|
||||
partner.Init(curOrderManager)
|
||||
FixedOrderManager = NewOrderManager()
|
||||
partner.Init(FixedOrderManager)
|
||||
}
|
||||
|
||||
func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplicated bool, err error) {
|
||||
@@ -86,12 +86,12 @@ func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplica
|
||||
|
||||
// todo 最好还是改成全事件回放算了
|
||||
func LoadPendingOrders() {
|
||||
orders := curOrderManager.LoadPendingOrders()
|
||||
orders := FixedOrderManager.LoadPendingOrders()
|
||||
globals.SugarLogger.Infof("LoadPendingOrders orders count:%d", len(orders))
|
||||
|
||||
ordersCount := len(orders)
|
||||
if ordersCount > 0 {
|
||||
bills := curOrderManager.LoadPendingWaybills()
|
||||
bills := FixedOrderManager.LoadPendingWaybills()
|
||||
globals.SugarLogger.Infof("LoadPendingOrders waybills count:%d", len(bills))
|
||||
var sortOrders StatusTimerSlice
|
||||
for _, order := range orders {
|
||||
|
||||
53
business/jxcallback/orderman/orderman_ext.go
Normal file
53
business/jxcallback/orderman/orderman_ext.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package orderman
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
|
||||
"github.com/astaxie/beego/orm"
|
||||
)
|
||||
|
||||
const (
|
||||
maxLastHours = 2 * 24 // 最多只能查询两天内的订单数据
|
||||
)
|
||||
|
||||
func (c *OrderManager) GetStoreOrderInfo(storeID string, lastHours int, fromStatus, toStatus int) (orders []*model.GoodsOrderExt, err error) {
|
||||
if lastHours > maxLastHours {
|
||||
lastHours = maxLastHours
|
||||
}
|
||||
if toStatus == 0 {
|
||||
toStatus = fromStatus
|
||||
}
|
||||
|
||||
db := orm.NewOrm()
|
||||
_, err = db.Raw(`
|
||||
SELECT t1.*, t2.status waybill_status, t2.courier_name, t2.courier_mobile
|
||||
FROM goods_order t1
|
||||
LEFT JOIN waybill t2 ON t1.vendor_waybill_id = t2.vendor_waybill_id AND t1.waybill_vendor_id = t2.waybill_vendor_id
|
||||
WHERE IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) = ?
|
||||
AND t1.order_created_at >= ?
|
||||
AND t1.Status >= ? AND t1.Status <= ?
|
||||
`, storeID, time.Now().Add(-time.Duration(lastHours)*time.Hour), fromStatus, toStatus).QueryRows(&orders)
|
||||
if err == nil {
|
||||
return orders, nil
|
||||
}
|
||||
globals.SugarLogger.Infof("GetStoreOrderInfo storeID:%s failed with error:%v", storeID, err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (c *OrderManager) GetOrderSkuInfo(vendorOrderID string, vendorID int) (skus []*model.OrderSkuExt, err error) {
|
||||
db := orm.NewOrm()
|
||||
_, err = db.Raw(`
|
||||
SELECT t1.*, t2.img image
|
||||
FROM order_sku t1
|
||||
LEFT JOIN jx_sku_name t2 ON IF(t1.jx_sku_id != 0, t1.jx_sku_id, t1.sku_id) = t2.id
|
||||
WHERE vendor_order_id = ? AND vendor_id = ?
|
||||
`, vendorOrderID, vendorID).QueryRows(&skus)
|
||||
if err == nil {
|
||||
return skus, nil
|
||||
}
|
||||
globals.SugarLogger.Infof("GetOrderSkuInfo orderID:%s failed with error:%v", vendorOrderID, err)
|
||||
return nil, err
|
||||
}
|
||||
Reference in New Issue
Block a user