- SelfDeliveredAndUpdateStatus added.

This commit is contained in:
gazebo
2018-08-23 09:45:25 +08:00
parent cdd603f6ed
commit 6ddb39eebb
3 changed files with 64 additions and 2 deletions

View File

@@ -1,8 +1,13 @@
package basesch
import (
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/legacymodel"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/orm"
)
func (c *BaseScheduler) CreateWaybillOnProviders(vendorOrderID string, vendorID int) (bills []*model.Waybill, err error) {
@@ -18,10 +23,15 @@ func (c *BaseScheduler) CreateWaybillOnProviders(vendorOrderID string, vendorID
return nil, err
}
// todo 这里应该要考虑纯自送与转自送
func (c *BaseScheduler) Swtich2SelfDeliverAndUpdateStatus(vendorOrderID string, vendorID int, userName string) (err error) {
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID)
if err == nil {
err = c.Swtich2SelfDeliver(order, userName)
if getStoreDeliveryType(order) == scheduler.StoreDeliveryTypeByStore {
err = c.SelfDeliverDelievering(order, userName)
} else {
err = c.Swtich2SelfDeliver(order, userName)
}
if err == nil {
order.Status = model.OrderStatusDelivering
err = partner.CurOrderManager.UpdateOrderStatusDirectly(order)
@@ -30,6 +40,23 @@ func (c *BaseScheduler) Swtich2SelfDeliverAndUpdateStatus(vendorOrderID string,
return err
}
// todo 这里应该要考虑纯自送与转自送
func (c *BaseScheduler) SelfDeliveredAndUpdateStatus(vendorOrderID string, vendorID int, userName string) (err error) {
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID)
if err == nil {
if getStoreDeliveryType(order) == scheduler.StoreDeliveryTypeByStore {
err = c.SelfDeliverDelievered(order, userName)
} else {
err = c.Swtich2SelfDelivered(order, userName)
}
if err == nil {
order.Status = model.OrderStatusDelivered
err = partner.CurOrderManager.UpdateOrderStatusDirectly(order)
}
}
return err
}
func (c *BaseScheduler) PickupGoodsAndUpdateStatus(vendorOrderID string, vendorID int, userName string) (err error) {
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID)
if err == nil {
@@ -41,3 +68,21 @@ func (c *BaseScheduler) PickupGoodsAndUpdateStatus(vendorOrderID string, vendorI
}
return err
}
func getStoreDeliveryType(order *model.GoodsOrder) int {
storefeature := &legacymodel.Jxstorefeature{
Id: jxutils.GetJxStoreIDFromOrder(order),
}
if storefeature.Id != 0 {
db := orm.NewOrm()
err := db.Read(storefeature, "Id")
if err == nil {
if order.VendorID == model.VendorIDJD {
return int(storefeature.JdDeliveryType)
}
return int(storefeature.ElmDeliveryType)
}
globals.SugarLogger.Infof("getStoreDeliveryType read storefeature failed with error:%v", err)
}
return scheduler.StoreDeliveryTypeByPlatform
}