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