1
This commit is contained in:
@@ -445,6 +445,9 @@ func filterOrderInfo(order *model.GoodsOrder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ResetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder) (err error) {
|
func ResetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder) (err error) {
|
||||||
|
if db == nil {
|
||||||
|
db = dao.GetDB()
|
||||||
|
}
|
||||||
store, _ := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode)
|
store, _ := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode)
|
||||||
if store != nil && store.CreateDeliveryType == model.YES { // 门店发单(非京西品牌)
|
if store != nil && store.CreateDeliveryType == model.YES { // 门店发单(非京西品牌)
|
||||||
// 无运单不参与退款
|
// 无运单不参与退款
|
||||||
@@ -484,7 +487,7 @@ func ResetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取品牌的支付记录
|
// 获取品牌的支付记录
|
||||||
orderBill, _ := dao.GetBrandBill(db, store.BrandID, order.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery)
|
orderBill, _ := dao.GetBrandBill(db, store.BrandID, order.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, order.VendorWaybillID)
|
||||||
if len(orderBill) != model.YES {
|
if len(orderBill) != model.YES {
|
||||||
return errors.New("订单支出数据异常,应该为一条数据")
|
return errors.New("订单支出数据异常,应该为一条数据")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,7 +122,6 @@ func (c *BaseScheduler) SelfDeliverDelivering(order *model.GoodsOrder, userName
|
|||||||
if err := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivering(order, userName); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation && !strings.Contains(err.Error(), "1047") && !strings.Contains(err.Error(), "301251")) {
|
if err := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivering(order, userName); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation && !strings.Contains(err.Error(), "1047") && !strings.Contains(err.Error(), "301251")) {
|
||||||
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
|
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
|
||||||
c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
||||||
orderman.ResetCreateWaybillFee(dao.GetDB(), order)
|
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}, "SelfDeliverDelivering orderID:%s", order.VendorOrderID)
|
}, "SelfDeliverDelivering orderID:%s", order.VendorOrderID)
|
||||||
@@ -152,7 +151,6 @@ func (c *BaseScheduler) SelfDeliverDelivered(order *model.GoodsOrder, userName s
|
|||||||
if err = partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivered(order, userName); err != nil {
|
if err = partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivered(order, userName); err != nil {
|
||||||
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
|
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
|
||||||
c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
||||||
orderman.ResetCreateWaybillFee(dao.GetDB(), order)
|
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}, "SelfDeliverDelivered orderID:%s", order.VendorOrderID)
|
}, "SelfDeliverDelivered orderID:%s", order.VendorOrderID)
|
||||||
@@ -241,7 +239,11 @@ func (c *BaseScheduler) CancelWaybill(bill *model.Waybill, cancelReasonID int, c
|
|||||||
if c.IsReallyCallPlatformAPI && bill.OrderVendorID != bill.WaybillVendorID && bill.Status != model.WaybillStatusCanceled {
|
if c.IsReallyCallPlatformAPI && bill.OrderVendorID != bill.WaybillVendorID && bill.Status != model.WaybillStatusCanceled {
|
||||||
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID); handlerInfo != nil {
|
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID); handlerInfo != nil {
|
||||||
if err = utils.CallFuncLogErrorWithInfo(func() error {
|
if err = utils.CallFuncLogErrorWithInfo(func() error {
|
||||||
return handlerInfo.Handler.CancelWaybill(bill, cancelReasonID, cancelReason)
|
if err := handlerInfo.Handler.CancelWaybill(bill, cancelReasonID, cancelReason); err != nil {
|
||||||
|
order, _ := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID)
|
||||||
|
orderman.ResetCreateWaybillFee(nil, order)
|
||||||
|
}
|
||||||
|
return err
|
||||||
}, "CancelWaybill bill:%v", bill); err == nil {
|
}, "CancelWaybill bill:%v", bill); err == nil {
|
||||||
bill.Status = model.WaybillStatusCanceled
|
bill.Status = model.WaybillStatusCanceled
|
||||||
bill.DeliveryFlag |= model.WaybillDeliveryFlagMaskActiveCancel
|
bill.DeliveryFlag |= model.WaybillDeliveryFlagMaskActiveCancel
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package basesch
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/netprinter"
|
"git.rosy.net.cn/jx-callback/business/jxutils/netprinter"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@@ -208,8 +207,6 @@ func (c *BaseScheduler) CancelWaybillByID(ctx *jxcontext.Context, vendorWaybillI
|
|||||||
if err := c.CancelWaybill(bill, cancelReasonID, cancelReason); err != nil {
|
if err := c.CancelWaybill(bill, cancelReasonID, cancelReason); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
order, err := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID)
|
|
||||||
orderman.ResetCreateWaybillFee(dao.GetDB(), order)
|
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -606,8 +606,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
|||||||
s.updateOrderByBill(order, bill, false)
|
s.updateOrderByBill(order, bill, false)
|
||||||
// 取消三方平台
|
// 取消三方平台
|
||||||
s.cancelOtherWaybillsCheckOrderDeliveryFlag(savedOrderInfo, bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonStrNotAcceptIntime)
|
s.cancelOtherWaybillsCheckOrderDeliveryFlag(savedOrderInfo, bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonStrNotAcceptIntime)
|
||||||
//若接单时间不在门店的营业时间范围内要取消运单
|
|
||||||
s.cancelWaybillNotInStoreOpentime(savedOrderInfo, bill)
|
|
||||||
//京东商城的话,需要去把订单出库,如果是转移过的订单,则需要修改转移订单号
|
//京东商城的话,需要去把订单出库,如果是转移过的订单,则需要修改转移订单号
|
||||||
if order.VendorID == model.VendorIDJDShop {
|
if order.VendorID == model.VendorIDJDShop {
|
||||||
s.solutionJdsOrder(bill)
|
s.solutionJdsOrder(bill)
|
||||||
@@ -616,7 +615,6 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
|||||||
//if bill.Status == model.WaybillStatusDelivering && order.VendorID == model.VendorIDJX && order.OrderType == model.OrderTypeNormal {
|
//if bill.Status == model.WaybillStatusDelivering && order.VendorID == model.VendorIDJX && order.OrderType == model.OrderTypeNormal {
|
||||||
// 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 {
|
||||||
@@ -626,6 +624,10 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
|||||||
s.updateBrandAccount(storeDetail, bill)
|
s.updateBrandAccount(storeDetail, bill)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//若接单时间不在门店的营业时间范围内要取消运单
|
||||||
|
s.cancelWaybillNotInStoreOpentime(savedOrderInfo, bill)
|
||||||
|
|
||||||
//针对快送的订单(订单接单后会立马召唤骑手,不会到自动拣货完成)
|
//针对快送的订单(订单接单后会立马召唤骑手,不会到自动拣货完成)
|
||||||
//如果骑手已接单,没有通知过的门店,需要发送通知
|
//如果骑手已接单,没有通知过的门店,需要发送通知
|
||||||
if bill.Status == model.WaybillStatusAccepted && order.NotifyType == 0 {
|
if bill.Status == model.WaybillStatusAccepted && order.NotifyType == 0 {
|
||||||
@@ -813,11 +815,11 @@ func (s *DefScheduler) cancelWaybillNotInStoreOpentime(savedOrderInfo *WatchOrde
|
|||||||
time4 := jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime2, time.Now())
|
time4 := jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime2, time.Now())
|
||||||
if time.Now().Sub(time3) < 0 || time.Now().Sub(time4.Add(time.Minute*30)) > 0 {
|
if time.Now().Sub(time3) < 0 || time.Now().Sub(time4.Add(time.Minute*30)) > 0 {
|
||||||
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
|
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
|
||||||
s.reverseBrandAccount(storeDetail, bill)
|
//s.reverseBrandAccount(storeDetail, bill)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
|
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
|
||||||
s.reverseBrandAccount(storeDetail, bill)
|
//s.reverseBrandAccount(storeDetail, bill)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1437,9 +1439,9 @@ func (s *DefScheduler) updateStoreAccount(order *model.GoodsOrder, bill *model.W
|
|||||||
|
|
||||||
func (s *DefScheduler) updateBrandAccount(store *dao.StoreDetail, bill *model.Waybill) {
|
func (s *DefScheduler) updateBrandAccount(store *dao.StoreDetail, bill *model.Waybill) {
|
||||||
globals.SugarLogger.Debugf("updateBrandAccount bill: %v", utils.Format4Output(bill, true))
|
globals.SugarLogger.Debugf("updateBrandAccount bill: %v", utils.Format4Output(bill, true))
|
||||||
brandBills, _ := dao.GetBrandBill(dao.GetDB(), store.BrandID, bill.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery)
|
brandBills, _ := dao.GetBrandBill(dao.GetDB(), store.BrandID, bill.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorWaybillID)
|
||||||
if len(brandBills) == 0 {
|
if len(brandBills) == 0 {
|
||||||
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, int(bill.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorOrderID)
|
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, int(bill.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorOrderID, bill.VendorWaybillID)
|
||||||
} else {
|
} else {
|
||||||
//可能有对冲的
|
//可能有对冲的
|
||||||
sum := 0
|
sum := 0
|
||||||
@@ -1447,7 +1449,7 @@ func (s *DefScheduler) updateBrandAccount(store *dao.StoreDetail, bill *model.Wa
|
|||||||
sum += v.Price
|
sum += v.Price
|
||||||
}
|
}
|
||||||
if sum == 0 {
|
if sum == 0 {
|
||||||
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, int(bill.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorOrderID)
|
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, int(bill.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorOrderID, bill.VendorWaybillID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1455,14 +1457,14 @@ func (s *DefScheduler) updateBrandAccount(store *dao.StoreDetail, bill *model.Wa
|
|||||||
// 取消退费
|
// 取消退费
|
||||||
func (s *DefScheduler) reverseBrandAccount(store *dao.StoreDetail, bill *model.Waybill) {
|
func (s *DefScheduler) reverseBrandAccount(store *dao.StoreDetail, bill *model.Waybill) {
|
||||||
globals.SugarLogger.Debugf("reverseBrandAccount bill: %v", utils.Format4Output(bill, true))
|
globals.SugarLogger.Debugf("reverseBrandAccount bill: %v", utils.Format4Output(bill, true))
|
||||||
brandBills, _ := dao.GetBrandBill(dao.GetDB(), store.BrandID, bill.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery)
|
brandBills, _ := dao.GetBrandBill(dao.GetDB(), store.BrandID, bill.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorWaybillID)
|
||||||
if len(brandBills) > 0 {
|
if len(brandBills) > 0 {
|
||||||
sum := 0
|
sum := 0
|
||||||
for _, v := range brandBills {
|
for _, v := range brandBills {
|
||||||
sum += v.Price
|
sum += v.Price
|
||||||
}
|
}
|
||||||
if sum > 0 {
|
if sum > 0 {
|
||||||
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, -int(bill.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorOrderID)
|
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, -int(bill.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorOrderID, bill.VendorWaybillID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1635,8 +1637,7 @@ func (s *DefScheduler) ProxyCancelWaybill(order *model.GoodsOrder, bill *model.W
|
|||||||
} else {
|
} else {
|
||||||
if cancelReasonID != partner.CancelWaybillReasonNotAcceptIntime {
|
if cancelReasonID != partner.CancelWaybillReasonNotAcceptIntime {
|
||||||
if storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode); storeDetail != nil {
|
if storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode); storeDetail != nil {
|
||||||
s.reverseBrandAccount(storeDetail, bill)
|
//s.reverseBrandAccount(storeDetail, bill)
|
||||||
//orderman.ResetCreateWaybillFee(dao.GetDB(), order)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
func (s *DefScheduler) loadSavedOrderByID(vendorOrderID string, vendorID int, isForceLoad bool) *WatchOrderInfo {
|
func (s *DefScheduler) loadSavedOrderByID(vendorOrderID string, vendorID int, isForceLoad bool) *WatchOrderInfo {
|
||||||
return s.loadSavedOrderFromMap(&model.OrderStatus{
|
return s.loadSavedOrderFromMap(&model.OrderStatus{
|
||||||
RefVendorOrderID: vendorOrderID,
|
RefVendorOrderID: vendorOrderID,
|
||||||
@@ -181,7 +180,7 @@ func (s *DefScheduler) CreateWaybillOnProviders4SavedOrder(ctx *jxcontext.Contex
|
|||||||
}
|
}
|
||||||
} else if result > int(newPrice) {
|
} else if result > int(newPrice) {
|
||||||
// 品牌支出费用
|
// 品牌支出费用
|
||||||
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, storeList[0].BrandID, int(model.Waybill{}.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, order.VendorOrderID)
|
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, storeList[0].BrandID, int(model.Waybill{}.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, order.VendorOrderID, order.VendorWaybillID)
|
||||||
} else {
|
} else {
|
||||||
return nil, fmt.Errorf("门店id:[%d],品牌id:[]%d,门店以及门店所属品牌余额不足,无法发单", order.JxStoreID, storeList[0].BrandID)
|
return nil, fmt.Errorf("门店id:[%d],品牌id:[]%d,门店以及门店所属品牌余额不足,无法发单", order.JxStoreID, storeList[0].BrandID)
|
||||||
}
|
}
|
||||||
@@ -205,7 +204,7 @@ func (s *DefScheduler) CreateWaybillOnProviders4SavedOrder(ctx *jxcontext.Contex
|
|||||||
partner.CurStoreAcctManager.InsertStoreAcctExpendAndUpdateStoreAcctBalance(ctx, jxutils.GetSaleStoreIDFromOrder(order), int(model.Waybill{}.DesiredFee), partner.StoreAcctTypeExpendCreateWaybill2ndMore, order.VendorOrderID, expend.ID) //int(newPrice)-lastFee
|
partner.CurStoreAcctManager.InsertStoreAcctExpendAndUpdateStoreAcctBalance(ctx, jxutils.GetSaleStoreIDFromOrder(order), int(model.Waybill{}.DesiredFee), partner.StoreAcctTypeExpendCreateWaybill2ndMore, order.VendorOrderID, expend.ID) //int(newPrice)-lastFee
|
||||||
} else if result > int(model.Waybill{}.DesiredFee) {
|
} else if result > int(model.Waybill{}.DesiredFee) {
|
||||||
// 品牌支出费用
|
// 品牌支出费用
|
||||||
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, storeList[0].BrandID, int(model.Waybill{}.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, order.VendorOrderID)
|
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, storeList[0].BrandID, int(model.Waybill{}.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, order.VendorOrderID, order.VendorWaybillID)
|
||||||
} else {
|
} else {
|
||||||
return nil, fmt.Errorf("门店id:[%d],品牌id:[]%d,门店以及门店所属品牌余额不足,无法发单", order.JxStoreID, storeList[0].BrandID)
|
return nil, fmt.Errorf("门店id:[%d],品牌id:[]%d,门店以及门店所属品牌余额不足,无法发单", order.JxStoreID, storeList[0].BrandID)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ func init() {
|
|||||||
partner.InitStoreAcctManager(FixedStoreAcctManager)
|
partner.InitStoreAcctManager(FixedStoreAcctManager)
|
||||||
}
|
}
|
||||||
|
|
||||||
func InsertStoreAcctIncome(ctx *jxcontext.Context, storeID, price, acctType int, vendorOrderID string, expendID int) (err error) {
|
func InsertStoreAcctIncome(ctx *jxcontext.Context, storeID, price, acctType int, vendorOrderID string, expendID int) (err error) {
|
||||||
var (
|
var (
|
||||||
userID, userName string
|
userID, userName string
|
||||||
goodsVendorOrderID string
|
goodsVendorOrderID string
|
||||||
@@ -190,7 +190,7 @@ func (s *StoreAcctManager) GetBrandBalance(brandID int) (balance int, err error)
|
|||||||
return dao.GetBrandBalance(dao.GetDB(), brandID)
|
return dao.GetBrandBalance(dao.GetDB(), brandID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StoreAcctManager) InsertBrandBill(ctx *jxcontext.Context, brandID, price, billType, feeType int, vendorOrderID string) (err error) {
|
func (s *StoreAcctManager) InsertBrandBill(ctx *jxcontext.Context, brandID, price, billType, feeType int, vendorOrderID string, wayVendorOrderId string) (err error) {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
var (
|
var (
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
@@ -205,6 +205,7 @@ func (s *StoreAcctManager) InsertBrandBill(ctx *jxcontext.Context, brandID, pric
|
|||||||
BillType: billType,
|
BillType: billType,
|
||||||
FeeType: feeType,
|
FeeType: feeType,
|
||||||
VendorOrderID: vendorOrderID,
|
VendorOrderID: vendorOrderID,
|
||||||
|
OrderID: wayVendorOrderId,
|
||||||
}
|
}
|
||||||
dao.WrapAddIDCULEntity(brandBill, ctx.GetUserName())
|
dao.WrapAddIDCULEntity(brandBill, ctx.GetUserName())
|
||||||
//扣除后,如果余额小于10元要发消息通知 ,每天通知一次
|
//扣除后,如果余额小于10元要发消息通知 ,每天通知一次
|
||||||
|
|||||||
@@ -266,7 +266,7 @@ func CallbackBrandBill(res *SecretNumberMsgRes) (err error) {
|
|||||||
if brands, _ := dao.GetBrands(db, "", 0, res.PoolKey, false, ""); len(brands) > 0 {
|
if brands, _ := dao.GetBrands(db, "", 0, res.PoolKey, false, ""); len(brands) > 0 {
|
||||||
if brandID := brands[0].ID; brandID != 0 {
|
if brandID := brands[0].ID; brandID != 0 {
|
||||||
price := utils.Float64TwoInt(utils.Str2Time(res.ReleaseTime).Sub(utils.Str2Time(res.StartTime)).Minutes()+1) * 6
|
price := utils.Float64TwoInt(utils.Str2Time(res.ReleaseTime).Sub(utils.Str2Time(res.StartTime)).Minutes()+1) * 6
|
||||||
if err = partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, brandID, price, model.BrandBillTypeExpend, model.BrandBillFeeTypeSecretNumber, ""); err == nil {
|
if err = partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, brandID, price, model.BrandBillTypeExpend, model.BrandBillFeeTypeSecretNumber, "",""); err == nil {
|
||||||
//计算余额,小于10就解绑
|
//计算余额,小于10就解绑
|
||||||
balance, _ := partner.CurStoreAcctManager.GetBrandBalance(brandID)
|
balance, _ := partner.CurStoreAcctManager.GetBrandBalance(brandID)
|
||||||
if balance < model.BrandBalanceLimit {
|
if balance < model.BrandBalanceLimit {
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ func NotifyPickOrder(order *model.GoodsOrder) (err error) {
|
|||||||
order.NotifyType = int(store.SMSNotify)
|
order.NotifyType = int(store.SMSNotify)
|
||||||
err = partner.CurOrderManager.UpdateOrderFields(order, []string{"NotifyType"})
|
err = partner.CurOrderManager.UpdateOrderFields(order, []string{"NotifyType"})
|
||||||
//品牌余额, 一条5分
|
//品牌余额, 一条5分
|
||||||
err = partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, 5, model.BrandBillTypeExpend, feeType, order.VendorOrderID)
|
err = partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, 5, model.BrandBillTypeExpend, feeType, order.VendorOrderID,"")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
balance, _ := partner.CurStoreAcctManager.GetBrandBalance(store.BrandID)
|
balance, _ := partner.CurStoreAcctManager.GetBrandBalance(store.BrandID)
|
||||||
@@ -345,7 +345,7 @@ func NotifyBrandBalance(brandID int) (err error) {
|
|||||||
err = api.Cacher.Set("brandID"+utils.Int2Str(brandID), 1, utils.Str2Time(time.Now().AddDate(0, 0, 1).Format("2006-01-02")+"00:00:00").Sub(time.Now()))
|
err = api.Cacher.Set("brandID"+utils.Int2Str(brandID), 1, utils.Str2Time(time.Now().AddDate(0, 0, 1).Format("2006-01-02")+"00:00:00").Sub(time.Now()))
|
||||||
}
|
}
|
||||||
if count > 0 {
|
if count > 0 {
|
||||||
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, brandID, 5*count, model.BrandBillTypeExpend, model.BrandBillFeeTypeSys, "")
|
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, brandID, 5*count, model.BrandBillTypeExpend, model.BrandBillFeeTypeSys, "","")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -1387,7 +1387,7 @@ func GetBrandBalance(db *DaoDB, brandID int) (result int, err error) {
|
|||||||
return balance.Balance, err
|
return balance.Balance, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetBrandBill(db *DaoDB, brandID int, vendorOrderID string, billType, feeType int) (result []*model.BrandBill, err error) {
|
func GetBrandBill(db *DaoDB, brandID int, vendorOrderID string, billType, feeType int, vendorWaybillOrderID string) (result []*model.BrandBill, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM brand_bill
|
FROM brand_bill
|
||||||
@@ -1410,6 +1410,10 @@ func GetBrandBill(db *DaoDB, brandID int, vendorOrderID string, billType, feeTyp
|
|||||||
sql += " AND vendor_order_id = ?"
|
sql += " AND vendor_order_id = ?"
|
||||||
sqlParams = append(sqlParams, vendorOrderID)
|
sqlParams = append(sqlParams, vendorOrderID)
|
||||||
}
|
}
|
||||||
|
if vendorWaybillOrderID != "" {
|
||||||
|
sql += " AND order_id = ?"
|
||||||
|
sqlParams = append(sqlParams, vendorWaybillOrderID)
|
||||||
|
}
|
||||||
err = GetRows(db, &result, sql, sqlParams)
|
err = GetRows(db, &result, sql, sqlParams)
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
@@ -1486,6 +1490,7 @@ func InsertBrandCategories(db *DaoDB, userName string, brandID int) (err error)
|
|||||||
_, err = ExecuteSQL(db, sql, sqlParams)
|
_, err = ExecuteSQL(db, sql, sqlParams)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
//// 根据国美门店id获取门店名称
|
//// 根据国美门店id获取门店名称
|
||||||
//func GetStoreByVendorId(db *DaoDB, vendorOrderID string, vendorCode int) (storeMaps []*model.StoreCourierMap, err error) {
|
//func GetStoreByVendorId(db *DaoDB, vendorOrderID string, vendorCode int) (storeMaps []*model.StoreCourierMap, err error) {
|
||||||
|
|||||||
@@ -45,5 +45,5 @@ type IStoreAcctManager interface {
|
|||||||
|
|
||||||
//品牌账户
|
//品牌账户
|
||||||
GetBrandBalance(brandID int) (balance int, err error)
|
GetBrandBalance(brandID int) (balance int, err error)
|
||||||
InsertBrandBill(ctx *jxcontext.Context, brandID, price, billType, feeType int, vendorOrderID string) (err error)
|
InsertBrandBill(ctx *jxcontext.Context, brandID, price, billType, feeType int, vendorOrderID string, wayVendorOrderId string) (err error)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -605,7 +605,7 @@ func OnPayFinished(orderPay *model.OrderPay) (err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, storeBrandId, storeOrder.ActualPayPrice, model.BrandBillFeeTypeSys, model.BrandBillFeeTypeSys, "")
|
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, storeBrandId, storeOrder.ActualPayPrice, model.BrandBillFeeTypeSys, model.BrandBillFeeTypeSys, "","")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case model.PayTypeTL_BrandBillCharge:
|
case model.PayTypeTL_BrandBillCharge:
|
||||||
@@ -616,7 +616,7 @@ func OnPayFinished(orderPay *model.OrderPay) (err error) {
|
|||||||
brandOrder.OrderFinishedAt = time.Now()
|
brandOrder.OrderFinishedAt = time.Now()
|
||||||
brandOrder.Status = model.OrderStatusFinished
|
brandOrder.Status = model.OrderStatusFinished
|
||||||
if _, err = dao.UpdateEntity(dao.GetDB(), brandOrder, "OrderFinishedAt", "Status"); err == nil {
|
if _, err = dao.UpdateEntity(dao.GetDB(), brandOrder, "OrderFinishedAt", "Status"); err == nil {
|
||||||
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, brandOrder.BrandID, brandOrder.ActualPayPrice, model.BrandBillTypeIncome, model.BrandBillFeeTypeCharge, orderPay.VendorOrderID)
|
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, brandOrder.BrandID, brandOrder.ActualPayPrice, model.BrandBillTypeIncome, model.BrandBillFeeTypeCharge, orderPay.VendorOrderID,"")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@@ -840,7 +840,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
|||||||
if jxOrder.OrderType != model.OrderTypeMatter || (jxOrder.OrderType == model.OrderTypeMatter && fromStoreID == -1) {
|
if jxOrder.OrderType != model.OrderTypeMatter || (jxOrder.OrderType == model.OrderTypeMatter && fromStoreID == -1) {
|
||||||
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
|
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
|
||||||
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
|
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
|
||||||
} else { //以下else为物料订单袋子金额和数量处理
|
} else { //以下else为物料订单袋子金额和数量处理
|
||||||
if !result.Flag { //只要flag是false就按原价申请,是true再按订单量
|
if !result.Flag { //只要flag是false就按原价申请,是true再按订单量
|
||||||
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
|
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
|
||||||
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
|
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
|
||||||
|
|||||||
Reference in New Issue
Block a user