- save real order status when new order msg came.
This commit is contained in:
@@ -4,12 +4,11 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/scheduler"
|
||||
|
||||
"git.rosy.net.cn/baseapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/scheduler"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"github.com/astaxie/beego/orm"
|
||||
)
|
||||
@@ -39,9 +38,14 @@ func (c *OrderController) LoadPendingOrders() []*model.GoodsOrder {
|
||||
return orders
|
||||
}
|
||||
|
||||
func (c *OrderController) OnOrderNew(order *model.GoodsOrder) (err error) {
|
||||
// msgVendorStatus的意思是事件本身的类型,类似有时收到NewOrder事件去取,订单状态不一定就是New的
|
||||
// OnOrderAdjust也类似,而OrderStatus要记录的是消息,所以添加这个
|
||||
func (c *OrderController) OnOrderNew(order *model.GoodsOrder, msgVendorStatus string) (err error) {
|
||||
db := orm.NewOrm()
|
||||
isDuplicated, err := addOrderOrWaybillStatus(model.Order2Status(order), db)
|
||||
status := model.Order2Status(order)
|
||||
status.Status = model.OrderStatusNew
|
||||
status.VendorStatus = msgVendorStatus
|
||||
isDuplicated, err := addOrderOrWaybillStatus(status, db)
|
||||
if err == nil && !isDuplicated {
|
||||
if err = c.saveOrder(order, false, db); err == nil {
|
||||
err = scheduler.CurrentScheduler.OnOrderNew(order)
|
||||
@@ -52,9 +56,11 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder) (err error) {
|
||||
}
|
||||
|
||||
// todo 调整单的处理可能还需要再细化一点,当前只是简单的删除重建
|
||||
func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder) (err error) {
|
||||
func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus string) (err error) {
|
||||
db := orm.NewOrm()
|
||||
status := model.Order2Status(order)
|
||||
status.Status = model.OrderStatusAdjust
|
||||
status.VendorStatus = msgVendorStatus
|
||||
isDuplicated, err := addOrderOrWaybillStatus(status, db)
|
||||
if err == nil && !isDuplicated {
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
@@ -72,7 +78,8 @@ func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder) (err error) {
|
||||
return err
|
||||
}
|
||||
if err = c.saveOrder(order, true, db); err == nil {
|
||||
err = scheduler.CurrentScheduler.OnOrderStatusChanged(status)
|
||||
// 因为订单调度器需要的是真实状态,所以用order的状态
|
||||
err = scheduler.CurrentScheduler.OnOrderStatusChanged(model.Order2Status(order))
|
||||
}
|
||||
}
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user