aa
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package basesch
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
@@ -164,16 +165,21 @@ func (c *BaseScheduler) CreateWaybill(platformVendorID int, order *model.GoodsOr
|
||||
// return nil, fmt.Errorf("转商家自送的订单只允许有一个有效运单,当前已经有%s运单", jxutils.GetVendorName(waybillList[0].WaybillVendorID))
|
||||
// }
|
||||
// }
|
||||
storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode)
|
||||
handlerInfo := partner.GetDeliveryPlatformFromVendorID(platformVendorID)
|
||||
if handlerInfo != nil && handlerInfo.Use4CreateWaybill {
|
||||
if c.IsReallyCallPlatformAPI {
|
||||
bill, err = handlerInfo.Handler.CreateWaybill(order, maxDeliveryFee)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Infof("CreateWaybill failed orderID:%s vendorID:%d with error:%v", order.VendorOrderID, platformVendorID, err)
|
||||
} else {
|
||||
order.DeliveryFlag |= model.WaybillVendorID2Mask(platformVendorID)
|
||||
err = partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order)
|
||||
if model.DeliveryBrandMarkMap[platformVendorID]&storeDetail.BrandIsOpen != 0 {
|
||||
if c.IsReallyCallPlatformAPI {
|
||||
bill, err = handlerInfo.Handler.CreateWaybill(order, maxDeliveryFee)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Infof("CreateWaybill failed orderID:%s vendorID:%d with error:%v", order.VendorOrderID, platformVendorID, err)
|
||||
} else {
|
||||
order.DeliveryFlag |= model.WaybillVendorID2Mask(platformVendorID)
|
||||
err = partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
err = fmt.Errorf("CreateWaybill failed brand is close orderID: %s, isOpen: %d", order.VendorOrderID, storeDetail.BrandIsOpen)
|
||||
}
|
||||
} else {
|
||||
err = scheduler.ErrDeliverProviderWrong
|
||||
|
||||
@@ -598,10 +598,12 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
// smsmsg.NotifyJxOrder(order, bill)
|
||||
//}
|
||||
//门店发单的门店,需要根据实际运费更新账户(多退少补)
|
||||
//扣除品牌费用
|
||||
if storeDetail, err2 := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, ""); err2 == nil {
|
||||
if storeDetail.CreateDeliveryType == model.YES {
|
||||
s.updateStoreAccount(order, bill)
|
||||
}
|
||||
s.updateBrandAccount(storeDetail, bill)
|
||||
}
|
||||
//针对快送的订单(订单接单后会立马召唤骑手,不会到自动拣货完成)
|
||||
//如果骑手已接单,没有通知过的门店,需要发送通知
|
||||
@@ -886,9 +888,10 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf
|
||||
//1表示为门店发单,需要验证门店账户余额情况
|
||||
_, err = s.CheckStoreBalance(jxcontext.AdminCtx, order, waybillVendorIDs)
|
||||
//TODO 2021-02-19 增加品牌配送开关
|
||||
if storeDetail.BrandIsOpen == model.YES {
|
||||
err = fmt.Errorf("此品牌已关闭配送! [%v]", storeDetail.BrandName)
|
||||
}
|
||||
//TODO 2021-08-31 修改为每个平台的开关
|
||||
//if storeDetail.BrandIsOpen == model.YES {
|
||||
// err = fmt.Errorf("此品牌已关闭配送! [%v]", storeDetail.BrandName)
|
||||
//}
|
||||
if err == nil {
|
||||
if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, excludeVendorIDs, false, maxDeliveryFee); err == nil {
|
||||
savedOrderInfo.retryCount++
|
||||
@@ -1365,6 +1368,13 @@ func (s *DefScheduler) updateStoreAccount(order *model.GoodsOrder, bill *model.W
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DefScheduler) updateBrandAccount(store *dao.StoreDetail, bill *model.Waybill) {
|
||||
realDesiredFee := bill.DesiredFee
|
||||
if balance, err := partner.CurStoreAcctManager.GetBrandBalance(store.BrandID); err == nil {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DefScheduler) updateBillsInfo(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (isBillExist bool) {
|
||||
if savedOrderInfo != nil {
|
||||
if savedBill := savedOrderInfo.waybills[bill.WaybillVendorID]; savedBill != nil {
|
||||
|
||||
@@ -179,3 +179,26 @@ func (s *StoreAcctManager) CheckStoreAcctExpendExist(vendorOrderID string) (isEq
|
||||
func (s *StoreAcctManager) GetStoreAcctExpendLastCreateWayBillFee(vendorOrderID string) (expend *dao.GetStoreAcctExpendLastCreateWayBillFeeResult, lastFee int, err error) {
|
||||
return dao.GetStoreAcctExpendLastCreateWayBillFee(dao.GetDB(), vendorOrderID)
|
||||
}
|
||||
|
||||
func (s *StoreAcctManager) GetBrandBalance(brandID int) (balance int, err error) {
|
||||
return dao.GetBrandBalance(dao.GetDB(), brandID)
|
||||
}
|
||||
|
||||
func (s *StoreAcctManager) InsertBrandBill(ctx *jxcontext.Context, brandID, price, billType, feeType int, vendorOrderID string, orderID string) (err error) {
|
||||
utils.CallFuncAsync(func() {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
)
|
||||
brandBill := &model.BrandBill{
|
||||
BrandID: brandID,
|
||||
Price: price,
|
||||
BillType: billType,
|
||||
FeeType: feeType,
|
||||
VendorOrderID: vendorOrderID,
|
||||
OrderID: orderID,
|
||||
}
|
||||
dao.WrapAddIDCULEntity(brandBill, ctx.GetUserName())
|
||||
dao.CreateEntity(db, brandBill)
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -289,6 +289,11 @@ var (
|
||||
AutoReplyGoodComment: "禁止差评自动回复",
|
||||
AutoReplyDisabled: "禁止自动回复",
|
||||
}
|
||||
DeliveryBrandMarkMap = map[int]int{
|
||||
VendorIDMTPS: BrandOpenMTPS,
|
||||
VendorIDDada: BrandOpenDaDa,
|
||||
VendorIDFengNiao: BrandOpenFN,
|
||||
}
|
||||
)
|
||||
|
||||
type Store struct {
|
||||
|
||||
@@ -42,4 +42,7 @@ type IStoreAcctManager interface {
|
||||
InsertStoreAcctIncomeAndUpdateStoreAcctBalance(ctx *jxcontext.Context, storeID, price, acctType int, vendorOrderID string, expendID int) (err error)
|
||||
CheckStoreAcctExpendExist(vendorOrderID string) (isEqual, isZero bool, err error)
|
||||
GetStoreAcctExpendLastCreateWayBillFee(vendorOrderID string) (expend *dao.GetStoreAcctExpendLastCreateWayBillFeeResult, lastFee int, err error)
|
||||
|
||||
//品牌账户
|
||||
GetBrandBalance(brandID int) (balance int, err error)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user