整理订单调整中对于DeliveryType相关的流程
This commit is contained in:
@@ -4,7 +4,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils/errlist"
|
"git.rosy.net.cn/baseapi/utils/errlist"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
@@ -65,9 +64,9 @@ func (c *BaseScheduler) SelfDeliveredAndUpdateStatus(ctx *jxcontext.Context, ven
|
|||||||
globals.SugarLogger.Infof("SelfDeliveredAndUpdateStatus orderID:%s userName:%s", vendorOrderID, userName)
|
globals.SugarLogger.Infof("SelfDeliveredAndUpdateStatus orderID:%s userName:%s", vendorOrderID, userName)
|
||||||
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID)
|
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if c.GetStoreDeliveryType(order, nil) == scheduler.StoreDeliveryTypeByStore {
|
if model.IsOrderDeliveryByStore(order) {
|
||||||
err = c.SelfDeliverDelivered(order, userName)
|
err = c.SelfDeliverDelivered(order, userName)
|
||||||
} else {
|
} else if model.IsOrderDeliveryByPlatform(order) {
|
||||||
err = c.Swtich2SelfDelivered(order, userName)
|
err = c.Swtich2SelfDelivered(order, userName)
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@@ -91,7 +90,7 @@ func (c *BaseScheduler) PickupGoodsAndUpdateStatus(ctx *jxcontext.Context, vendo
|
|||||||
globals.SugarLogger.Infof("PickupGoodsAndUpdateStatus orderID:%s userName:%s", vendorOrderID, userName)
|
globals.SugarLogger.Infof("PickupGoodsAndUpdateStatus orderID:%s userName:%s", vendorOrderID, userName)
|
||||||
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID)
|
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
err = c.PickupGoods(order, c.GetStoreDeliveryType(order, nil) == scheduler.StoreDeliveryTypeByStore, userName)
|
err = c.PickupGoods(order, model.IsOrderDeliveryByStore(order), userName)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
order.Status = model.OrderStatusFinishedPickup
|
order.Status = model.OrderStatusFinishedPickup
|
||||||
if err = partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order); err == nil {
|
if err = partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order); err == nil {
|
||||||
@@ -107,21 +106,6 @@ func (c *BaseScheduler) PickupGoodsAndUpdateStatus(ctx *jxcontext.Context, vendo
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *BaseScheduler) GetStoreDeliveryType(order *model.GoodsOrder, storeMap *model.StoreMap) (deliveryType int) {
|
|
||||||
globals.SugarLogger.Debugf("GetStoreDeliveryType orderID:%s", order.VendorOrderID)
|
|
||||||
jxStoreID := jxutils.GetSaleStoreIDFromOrder(order)
|
|
||||||
if storeMap == nil {
|
|
||||||
storeMap, _ = dao.FakeGetStoreMapByStoreID(nil, jxStoreID, order.VendorID)
|
|
||||||
}
|
|
||||||
|
|
||||||
deliveryType = scheduler.StoreDeliveryTypeByPlatform // 缺省值
|
|
||||||
if storeMap != nil {
|
|
||||||
deliveryType = int(storeMap.DeliveryType)
|
|
||||||
}
|
|
||||||
globals.SugarLogger.Debugf("GetStoreDeliveryType orderID:%s, deliveryType:%d", order.VendorOrderID, deliveryType)
|
|
||||||
return deliveryType
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *BaseScheduler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) {
|
func (c *BaseScheduler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) {
|
||||||
if c.IsReallyCallPlatformAPI {
|
if c.IsReallyCallPlatformAPI {
|
||||||
err = partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).AdjustOrder(ctx, order, removedSkuList, reason)
|
err = partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).AdjustOrder(ctx, order, removedSkuList, reason)
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ type WatchOrderInfo struct {
|
|||||||
order *model.GoodsOrder // order里的信息是保持更新的
|
order *model.GoodsOrder // order里的信息是保持更新的
|
||||||
|
|
||||||
autoPickupTimeoutMinute int // 0表示禁用,1表示用缺省值time2AutoPickupMin,其它表示分钟数
|
autoPickupTimeoutMinute int // 0表示禁用,1表示用缺省值time2AutoPickupMin,其它表示分钟数
|
||||||
storeDeliveryType int
|
|
||||||
|
|
||||||
isDeliveryCompetition bool
|
isDeliveryCompetition bool
|
||||||
isNeedCreate3rdWaybill bool
|
isNeedCreate3rdWaybill bool
|
||||||
@@ -107,7 +106,6 @@ type DefScheduler struct {
|
|||||||
func NewWatchOrderInfo(order *model.GoodsOrder) (retVal *WatchOrderInfo) {
|
func NewWatchOrderInfo(order *model.GoodsOrder) (retVal *WatchOrderInfo) {
|
||||||
retVal = &WatchOrderInfo{
|
retVal = &WatchOrderInfo{
|
||||||
autoPickupTimeoutMinute: 1,
|
autoPickupTimeoutMinute: 1,
|
||||||
storeDeliveryType: scheduler.StoreDeliveryTypeCrowdSourcing,
|
|
||||||
waybills: map[int]*model.Waybill{},
|
waybills: map[int]*model.Waybill{},
|
||||||
}
|
}
|
||||||
retVal.SetOrder(order)
|
retVal.SetOrder(order)
|
||||||
@@ -130,14 +128,12 @@ func (s *WatchOrderInfo) updateOrderStoreFeature(order *model.GoodsOrder) (err e
|
|||||||
jxStoreID := jxutils.GetSaleStoreIDFromOrder(order)
|
jxStoreID := jxutils.GetSaleStoreIDFromOrder(order)
|
||||||
if jxStoreID > 0 {
|
if jxStoreID > 0 {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
storeMap, err2 := dao.FakeGetStoreMapByStoreID(db, jxStoreID, order.VendorID)
|
storeDetail, err2 := dao.GetStoreDetail(db, jxStoreID, order.VendorID)
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
s.autoPickupTimeoutMinute = int(storeMap.AutoPickup)
|
s.autoPickupTimeoutMinute = int(storeDetail.AutoPickup)
|
||||||
s.storeDeliveryType = FixedScheduler.GetStoreDeliveryType(order, storeMap)
|
s.isDeliveryCompetition = storeDetail.DeliveryCompetition != 0
|
||||||
s.isDeliveryCompetition = storeMap.DeliveryCompetition != 0
|
|
||||||
globals.SugarLogger.Debugf("updateOrderStoreFeature orderID:%s, s.storeDeliveryType:%d", order.VendorOrderID, s.storeDeliveryType)
|
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -229,7 +225,7 @@ func init() {
|
|||||||
TimeoutGap: 0,
|
TimeoutGap: 0,
|
||||||
},
|
},
|
||||||
TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) {
|
TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) {
|
||||||
if savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore && savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake { // 自配送商家使用
|
if model.IsOrderDeliveryByStore(savedOrderInfo.order) { // 自配送商家使用
|
||||||
// 启动抢单TIMER
|
// 启动抢单TIMER
|
||||||
sch.saveDeliveryFeeFromAndStartWatch(savedOrderInfo, savedOrderInfo.order.StatusTime)
|
sch.saveDeliveryFeeFromAndStartWatch(savedOrderInfo, savedOrderInfo.order.StatusTime)
|
||||||
return sch.createWaybillOn3rdProviders(savedOrderInfo, 0, nil)
|
return sch.createWaybillOn3rdProviders(savedOrderInfo, 0, nil)
|
||||||
@@ -237,7 +233,7 @@ func init() {
|
|||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool {
|
ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool {
|
||||||
return savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore && savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake
|
return model.IsOrderDeliveryByStore(savedOrderInfo.order)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -251,7 +247,7 @@ func init() {
|
|||||||
TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) {
|
TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) {
|
||||||
// 饿百转自送的时机不太清楚,暂时禁用超时转自送,在饿百运单取消时还是会自动创建
|
// 饿百转自送的时机不太清楚,暂时禁用超时转自送,在饿百运单取消时还是会自动创建
|
||||||
if savedOrderInfo.isDeliveryCompetition &&
|
if savedOrderInfo.isDeliveryCompetition &&
|
||||||
savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore &&
|
model.IsOrderDeliveryByPlatform(savedOrderInfo.order) &&
|
||||||
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
||||||
savedOrderInfo.order.VendorID != model.VendorIDEBAI &&
|
savedOrderInfo.order.VendorID != model.VendorIDEBAI &&
|
||||||
savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake { // 非自配送商家使用
|
savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake { // 非自配送商家使用
|
||||||
@@ -261,7 +257,7 @@ func init() {
|
|||||||
},
|
},
|
||||||
ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool {
|
ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool {
|
||||||
return savedOrderInfo.isDeliveryCompetition &&
|
return savedOrderInfo.isDeliveryCompetition &&
|
||||||
savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore &&
|
model.IsOrderDeliveryByPlatform(savedOrderInfo.order) &&
|
||||||
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
||||||
savedOrderInfo.order.VendorID != model.VendorIDEBAI &&
|
savedOrderInfo.order.VendorID != model.VendorIDEBAI &&
|
||||||
savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake
|
savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake
|
||||||
@@ -278,7 +274,7 @@ func init() {
|
|||||||
if (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusEndBegin) &&
|
if (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusEndBegin) &&
|
||||||
savedOrderInfo.isDeliveryCompetition &&
|
savedOrderInfo.isDeliveryCompetition &&
|
||||||
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
||||||
savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore &&
|
model.IsOrderDeliveryByPlatform(savedOrderInfo.order) &&
|
||||||
order.VendorID == model.VendorIDEBAI &&
|
order.VendorID == model.VendorIDEBAI &&
|
||||||
savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake { // 非自配送商家使用
|
savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake { // 非自配送商家使用
|
||||||
return sch.createWaybillOn3rdProviders(savedOrderInfo, ebaiCancelWaybillMaxFee, nil)
|
return sch.createWaybillOn3rdProviders(savedOrderInfo, ebaiCancelWaybillMaxFee, nil)
|
||||||
@@ -290,7 +286,7 @@ func init() {
|
|||||||
return (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusEndBegin) &&
|
return (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusEndBegin) &&
|
||||||
savedOrderInfo.isDeliveryCompetition &&
|
savedOrderInfo.isDeliveryCompetition &&
|
||||||
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
||||||
savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore &&
|
model.IsOrderDeliveryByPlatform(savedOrderInfo.order) &&
|
||||||
order.VendorID == model.VendorIDEBAI &&
|
order.VendorID == model.VendorIDEBAI &&
|
||||||
savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake
|
savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake
|
||||||
},
|
},
|
||||||
@@ -477,7 +473,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
|||||||
partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order)
|
partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore {
|
if model.IsOrderDeliveryByStore(savedOrderInfo.order) {
|
||||||
if err := s.SelfDeliverDelivering(savedOrderInfo.order, bill.CourierMobile); err != nil {
|
if err := s.SelfDeliverDelivering(savedOrderInfo.order, bill.CourierMobile); err != nil {
|
||||||
partner.CurOrderManager.OnOrderMsg(order, "自送出设置失败", err.Error())
|
partner.CurOrderManager.OnOrderMsg(order, "自送出设置失败", err.Error())
|
||||||
}
|
}
|
||||||
@@ -552,9 +548,9 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
|||||||
if !isPending {
|
if !isPending {
|
||||||
var err2 error
|
var err2 error
|
||||||
if !model.IsWaybillPlatformOwn(bill) {
|
if !model.IsWaybillPlatformOwn(bill) {
|
||||||
if savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore {
|
if model.IsOrderDeliveryByStore(order) {
|
||||||
err2 = s.SelfDeliverDelivered(order, "")
|
err2 = s.SelfDeliverDelivered(order, "")
|
||||||
} else {
|
} else if model.IsOrderDeliveryByPlatform(order) {
|
||||||
err2 = s.Swtich2SelfDelivered(order, "")
|
err2 = s.Swtich2SelfDelivered(order, "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -987,8 +983,8 @@ func (s *DefScheduler) updateBillsInfo(savedOrderInfo *WatchOrderInfo, bill *mod
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *DefScheduler) autoPickupGood(savedOrderInfo *WatchOrderInfo) (err error) {
|
func (s *DefScheduler) autoPickupGood(savedOrderInfo *WatchOrderInfo) (err error) {
|
||||||
if err = s.PickupGoods(savedOrderInfo.order, savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore, ""); err == nil {
|
order := savedOrderInfo.order
|
||||||
order := savedOrderInfo.order
|
if err = s.PickupGoods(order, model.IsOrderDeliveryByStore(order), ""); err == nil {
|
||||||
order.DeliveryFlag |= model.OrderDeliveryFlagMaskAutoPickup
|
order.DeliveryFlag |= model.OrderDeliveryFlagMaskAutoPickup
|
||||||
partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"})
|
partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"})
|
||||||
} else if err == scheduler.ErrOrderStatusAlreadySatisfyCurOperation {
|
} else if err == scheduler.ErrOrderStatusAlreadySatisfyCurOperation {
|
||||||
@@ -1059,9 +1055,9 @@ func (s *DefScheduler) saveDeliveryFeeFromAndStartWatch(savedOrderInfo *WatchOrd
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *DefScheduler) watchOrderWaybills(savedOrderInfo *WatchOrderInfo) {
|
func (s *DefScheduler) watchOrderWaybills(savedOrderInfo *WatchOrderInfo) {
|
||||||
if savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore && savedOrderInfo.isDeliveryCompetition ||
|
order2 := savedOrderInfo.order
|
||||||
savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore {
|
if model.IsOrderDeliveryByPlatform(order2) && savedOrderInfo.isDeliveryCompetition ||
|
||||||
order2 := savedOrderInfo.order
|
model.IsOrderDeliveryByStore(order2) {
|
||||||
if order, err := partner.CurOrderManager.LoadOrder(order2.VendorOrderID, order2.VendorID); err == nil {
|
if order, err := partner.CurOrderManager.LoadOrder(order2.VendorOrderID, order2.VendorID); err == nil {
|
||||||
savedOrderInfo.SetOrder(order)
|
savedOrderInfo.SetOrder(order)
|
||||||
if isNeedWatch3rdWaybill(order) {
|
if isNeedWatch3rdWaybill(order) {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ func (s *DefScheduler) SelfDeliveringAndUpdateStatus(ctx *jxcontext.Context, ven
|
|||||||
if err = s.isPossibleSwitch2SelfDelivery(order); err == nil {
|
if err = s.isPossibleSwitch2SelfDelivery(order); err == nil {
|
||||||
err = s.cancelOtherWaybillsCheckOrderDeliveryFlag(savedOrderInfo, nil, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
err = s.cancelOtherWaybillsCheckOrderDeliveryFlag(savedOrderInfo, nil, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore {
|
if model.IsOrderDeliveryByStore(order) {
|
||||||
if order.Status < model.OrderStatusDelivering {
|
if order.Status < model.OrderStatusDelivering {
|
||||||
storeDetail, err2 := dao.GetStoreDetail(dao.GetDB(), order.StoreID, order.VendorID)
|
storeDetail, err2 := dao.GetStoreDetail(dao.GetDB(), order.StoreID, order.VendorID)
|
||||||
phone := userName
|
phone := userName
|
||||||
@@ -91,7 +91,7 @@ func (s *DefScheduler) canOrderCreateWaybillNormally(order *model.GoodsOrder) (e
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *DefScheduler) isPossibleSwitch2SelfDelivery(order *model.GoodsOrder) (err error) {
|
func (s *DefScheduler) isPossibleSwitch2SelfDelivery(order *model.GoodsOrder) (err error) {
|
||||||
if scheduler.StoreDeliveryTypeByStore != s.GetStoreDeliveryType(order, nil) {
|
if model.IsOrderDeliveryByPlatform(order) {
|
||||||
if order.Status < model.OrderStatusFinishedPickup {
|
if order.Status < model.OrderStatusFinishedPickup {
|
||||||
err = fmt.Errorf("拣货完成后才能转自配送")
|
err = fmt.Errorf("拣货完成后才能转自配送")
|
||||||
} else if order.Status == model.OrderStatusFinishedPickup {
|
} else if order.Status == model.OrderStatusFinishedPickup {
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import (
|
|||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
|
||||||
"github.com/astaxie/beego/orm"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// 带购物平台信息的
|
// 带购物平台信息的
|
||||||
@@ -97,13 +95,15 @@ func getStoreDetail(db *DaoDB, storeID, vendorID int, vendorStoreID string) (sto
|
|||||||
sql += " AND t2.vendor_store_id = ?"
|
sql += " AND t2.vendor_store_id = ?"
|
||||||
sqlParams = append(sqlParams, vendorStoreID)
|
sqlParams = append(sqlParams, vendorStoreID)
|
||||||
}
|
}
|
||||||
storeDetail = &StoreDetail{}
|
if err = GetRow(db, &storeDetail, sql, sqlParams...); err == nil {
|
||||||
if err = GetRow(db, storeDetail, sql, sqlParams...); err == nil {
|
|
||||||
storeDetail.PricePercentagePackObj = PricePercentagePack2Obj(storeDetail.PricePercentagePackStr)
|
storeDetail.PricePercentagePackObj = PricePercentagePack2Obj(storeDetail.PricePercentagePackStr)
|
||||||
storeDetail.FreightDeductionPackObj = FreightDeductionPack2Obj(storeDetail.FreightDeductionPackStr)
|
storeDetail.FreightDeductionPackObj = FreightDeductionPack2Obj(storeDetail.FreightDeductionPackStr)
|
||||||
if vendorID == model.VendorIDJX {
|
if storeDetail.VendorStoreID == "" {
|
||||||
storeDetail.VendorStatus = storeDetail.Status
|
storeDetail.VendorStatus = storeDetail.Status
|
||||||
storeDetail.PricePercentage = 100
|
storeDetail.PricePercentage = 100
|
||||||
|
storeDetail.AutoPickup = 1
|
||||||
|
storeDetail.DeliveryType = model.StoreDeliveryTypeByStore
|
||||||
|
storeDetail.DeliveryCompetition = 1
|
||||||
}
|
}
|
||||||
return storeDetail, nil
|
return storeDetail, nil
|
||||||
}
|
}
|
||||||
@@ -339,49 +339,6 @@ func AddStoreCategoryMap(db *DaoDB, storeID, categoryID int, vendorID int, vendo
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetStoreMapByStoreID(db *DaoDB, storeID, vendorID int) (storeMap *model.StoreMap, err error) {
|
|
||||||
if db == nil {
|
|
||||||
db = GetDB()
|
|
||||||
}
|
|
||||||
storeMap = &model.StoreMap{
|
|
||||||
StoreID: storeID,
|
|
||||||
VendorID: vendorID,
|
|
||||||
}
|
|
||||||
storeMap.DeletedAt = utils.DefaultTimeValue
|
|
||||||
if err = GetEntity(db, storeMap, model.FieldStoreID, model.FieldVendorID, model.FieldDeletedAt); err != nil {
|
|
||||||
if err != orm.ErrNoRows {
|
|
||||||
globals.SugarLogger.Warnf("GetStoreMapByStoreID storeID:%d, vendorID:%d read storeMap failed with error:%v", storeID, vendorID, err)
|
|
||||||
}
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return storeMap, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func FakeGetStoreMapByStoreID(db *DaoDB, storeID, vendorID int) (storeMap *model.StoreMap, err error) {
|
|
||||||
vendorID2 := vendorID
|
|
||||||
if model.IsSpecialVendorID(vendorID) {
|
|
||||||
vendorID2 = model.VendorIDJD // 微商城与京西的属性以京东属性为准(以免再绑定)
|
|
||||||
}
|
|
||||||
if storeMap, err = GetStoreMapByStoreID(db, storeID, vendorID2); model.IsSpecialVendorID(vendorID) && IsNoRowsError(err) {
|
|
||||||
err = nil
|
|
||||||
storeMap = &model.StoreMap{
|
|
||||||
StoreID: storeID,
|
|
||||||
VendorID: vendorID2,
|
|
||||||
Status: model.StoreStatusOpened,
|
|
||||||
PricePercentage: 100,
|
|
||||||
AutoPickup: 1,
|
|
||||||
DeliveryType: model.StoreDeliveryTypeByStore,
|
|
||||||
// DeliveryFee
|
|
||||||
DeliveryCompetition: 1,
|
|
||||||
IsSync: 1,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if storeMap != nil && vendorID == model.VendorIDJX {
|
|
||||||
storeMap.DeliveryType = model.StoreDeliveryTypeByStore
|
|
||||||
}
|
|
||||||
return storeMap, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetOpenedStoreCouriersByStoreID(db *DaoDB, storeID, vendorID int) (storeMaps []*model.StoreCourierMap, err error) {
|
func GetOpenedStoreCouriersByStoreID(db *DaoDB, storeID, vendorID int) (storeMaps []*model.StoreCourierMap, err error) {
|
||||||
if db == nil {
|
if db == nil {
|
||||||
db = GetDB()
|
db = GetDB()
|
||||||
|
|||||||
@@ -275,3 +275,13 @@ func IsOrderHaveWaybill(order *GoodsOrder) bool {
|
|||||||
func IsOrderHaveOwnWaybill(order *GoodsOrder) bool {
|
func IsOrderHaveOwnWaybill(order *GoodsOrder) bool {
|
||||||
return order.VendorID == order.WaybillVendorID && order.VendorWaybillID != ""
|
return order.VendorID == order.WaybillVendorID && order.VendorWaybillID != ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 订单的初始配送方式是否是门店自配送
|
||||||
|
func IsOrderDeliveryByStore(order *GoodsOrder) bool {
|
||||||
|
return order.DeliveryType == OrderDeliveryTypeStoreSelf
|
||||||
|
}
|
||||||
|
|
||||||
|
// 订单的初始配送方式是否是平台负责配送
|
||||||
|
func IsOrderDeliveryByPlatform(order *GoodsOrder) bool {
|
||||||
|
return order.DeliveryType == OrderDeliveryTypePlatform
|
||||||
|
}
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *CallbackMsg) *model.OrderStatu
|
|||||||
func (c *PurchaseHandler) onOrderNew(msg *CallbackMsg, subMsgType int, order *Data4Neworder) (retVal, errCode string, err error) {
|
func (c *PurchaseHandler) onOrderNew(msg *CallbackMsg, subMsgType int, order *Data4Neworder) (retVal, errCode string, err error) {
|
||||||
globals.SugarLogger.Debugf("onOrderNew orderID:%s", msg.ThingID)
|
globals.SugarLogger.Debugf("onOrderNew orderID:%s", msg.ThingID)
|
||||||
order.StoreID = int(utils.Str2Int64WithDefault(order.VendorStoreID, 0))
|
order.StoreID = int(utils.Str2Int64WithDefault(order.VendorStoreID, 0))
|
||||||
|
order.DeliveryType = model.OrderDeliveryTypeStoreSelf
|
||||||
order.GoodsOrder.Skus = order.Skus
|
order.GoodsOrder.Skus = order.Skus
|
||||||
order.VendorID = model.VendorIDJX
|
order.VendorID = model.VendorIDJX
|
||||||
for _, v := range order.GoodsOrder.Skus {
|
for _, v := range order.GoodsOrder.Skus {
|
||||||
|
|||||||
Reference in New Issue
Block a user