- refactor
- load pending orders, fixed bug.
This commit is contained in:
@@ -22,7 +22,7 @@ func NewOrderManager() *OrderController {
|
||||
return &OrderController{}
|
||||
}
|
||||
|
||||
func (c *OrderController) LoadPendingOrders() {
|
||||
func (c *OrderController) LoadPendingOrders() []*model.GoodsOrder {
|
||||
db := orm.NewOrm()
|
||||
var orders []*model.GoodsOrder
|
||||
_, err := db.Raw(`
|
||||
@@ -34,20 +34,13 @@ func (c *OrderController) LoadPendingOrders() {
|
||||
`, 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)
|
||||
return nil
|
||||
}
|
||||
return orders
|
||||
}
|
||||
|
||||
func (c *OrderController) OnOrderNew(order *model.GoodsOrder) (err error) {
|
||||
db := orm.NewOrm()
|
||||
order.StatusTime = order.OrderCreatedAt
|
||||
isDuplicated, err := addOrderOrWaybillStatus(model.Order2Status(order), db)
|
||||
if err == nil && !isDuplicated {
|
||||
if err = c.saveOrder(order, false, db); err == nil {
|
||||
@@ -58,9 +51,9 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
// todo 调整单的处理可能还需要再细化一点,当前只是简单的删除重建
|
||||
func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder) (err error) {
|
||||
db := orm.NewOrm()
|
||||
order.StatusTime = order.OrderCreatedAt
|
||||
status := model.Order2Status(order)
|
||||
isDuplicated, err := addOrderOrWaybillStatus(status, db)
|
||||
if err == nil && !isDuplicated {
|
||||
@@ -102,9 +95,10 @@ func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db o
|
||||
c.updateOrderOtherInfo(order, db)
|
||||
db.Begin()
|
||||
// globals.SugarLogger.Debugf("new order:%v", order)
|
||||
order.ID = 0
|
||||
order.WaybillVendorID = model.VendorIDUnknown
|
||||
order.OrderFinishedAt = utils.DefaultTimeValue
|
||||
order.ID = 0
|
||||
order.OrderCreatedAt = order.StatusTime
|
||||
created, _, err2 := db.ReadOrCreate(order, "VendorOrderID", "VendorID")
|
||||
if err = err2; err == nil {
|
||||
if created {
|
||||
@@ -114,7 +108,7 @@ func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db o
|
||||
for _, sku := range order.Skus {
|
||||
sql += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?),"
|
||||
params = append(params, sku.VendorOrderID, sku.VendorID, sku.Count, sku.VendorSkuID, sku.SkuID, sku.JxSkuID, sku.SkuName,
|
||||
sku.ShopPrice, sku.SalePrice, sku.Weight, sku.SkuType, sku.PromotionType, order.OrderCreatedAt)
|
||||
sku.ShopPrice, sku.SalePrice, sku.Weight, sku.SkuType, sku.PromotionType, order.StatusTime)
|
||||
}
|
||||
sql = sql[:len(sql)-1] + ";"
|
||||
if _, err = db.Raw(sql, params...).Exec(); err != nil {
|
||||
@@ -215,10 +209,11 @@ func (c *OrderController) addOrderStatus(orderStatus *model.OrderStatus, db orm.
|
||||
db = orm.NewOrm()
|
||||
}
|
||||
isDuplicated, err = addOrderOrWaybillStatus(orderStatus, db)
|
||||
if !isDuplicated && orderStatus.Status > model.OrderStatusNew {
|
||||
if err == nil && !isDuplicated && orderStatus.Status > model.OrderStatusNew {
|
||||
params := orm.Params{
|
||||
"status": orderStatus.Status,
|
||||
"vendor_status": orderStatus.VendorStatus,
|
||||
"status_time": orderStatus.StatusTime,
|
||||
}
|
||||
if orderStatus.Status >= model.OrderStatusEndBegin {
|
||||
params["order_finished_at"] = orderStatus.StatusTime
|
||||
|
||||
Reference in New Issue
Block a user