This commit is contained in:
suyl
2021-09-02 15:31:30 +08:00
parent 670661b835
commit 74ab043dd3
3 changed files with 67 additions and 1 deletions

View File

@@ -554,6 +554,11 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
}
}
}
//if !model.IsWaybillPlatformOwn(bill) {
// if storeDetail, err2 := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, ""); err2 == nil {
// s.updateBrandAccount(storeDetail, bill)
// }
//}
}
flag2Clear := model.WaybillVendorID2Mask(bill.WaybillVendorID)
if order.DeliveryFlag&flag2Clear != 0 {
@@ -1371,7 +1376,33 @@ func (s *DefScheduler) updateStoreAccount(order *model.GoodsOrder, bill *model.W
func (s *DefScheduler) updateBrandAccount(store *dao.StoreDetail, bill *model.Waybill) {
globals.SugarLogger.Debugf("updateBrandAccount bill: %v", utils.Format4Output(bill, true))
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, int(bill.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorOrderID)
brandBills, _ := dao.GetBrandBill(dao.GetDB(), store.BrandID, bill.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery)
if len(brandBills) == 0 {
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, int(bill.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorOrderID)
} else {
//可能有对冲的
sum := 0
for _, v := range brandBills {
sum += v.Price
}
if sum == 0 {
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, int(bill.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorOrderID)
}
}
}
func (s *DefScheduler) reverseBrandAccount(store *dao.StoreDetail, bill *model.Waybill) {
globals.SugarLogger.Debugf("reverseBrandAccount bill: %v", utils.Format4Output(bill, true))
brandBills, _ := dao.GetBrandBill(dao.GetDB(), store.BrandID, bill.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery)
if len(brandBills) > 0 {
sum := 0
for _, v := range brandBills {
sum += v.Price
}
if sum > 0 {
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, store.BrandID, int(bill.DesiredFee), model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, bill.VendorOrderID)
}
}
}
func (s *DefScheduler) updateBillsInfo(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (isBillExist bool) {
@@ -1539,6 +1570,10 @@ func (s *DefScheduler) ProxyCancelWaybill(order *model.GoodsOrder, bill *model.W
if (order.DeliveryFlag & model.OrderDeliveryFlagMaskScheduleDisabled) == 0 {
if err = s.CancelWaybill(bill, cancelReasonID, cancelReason); err != nil {
partner.CurOrderManager.OnOrderMsg(order, "取消三方运单失败", err.Error())
} else {
if storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode); storeDetail != nil {
s.reverseBrandAccount(storeDetail, bill)
}
}
return err
}

View File

@@ -1369,3 +1369,30 @@ func GetBrandBalance(db *DaoDB, brandID int) (result int, err error) {
err = GetRow(db, &balance, sql, sqlParams)
return balance.Balance, err
}
func GetBrandBill(db *DaoDB, brandID int, vendorOrderID string, billType, feeType int) (result []*model.BrandBill, err error) {
sql := `
SELECT *
FROM brand_bill
WHERE 1 = 1
`
sqlParams := []interface{}{}
if brandID != 0 {
sql += " AND brand_id = ?"
sqlParams = append(sqlParams, brandID)
}
if billType != 0 {
sql += " AND bill_type = ?"
sqlParams = append(sqlParams, billType)
}
if feeType != 0 {
sql += " AND fee_type = ?"
sqlParams = append(sqlParams, feeType)
}
if vendorOrderID != "" {
sql += " AND vendor_order_id = ?"
sqlParams = append(sqlParams, vendorOrderID)
}
err = GetRows(db, &result, sql, sqlParams)
return result, err
}

View File

@@ -77,6 +77,10 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap
case dadaapi.OrderStatusAccepted:
order.Status = model.WaybillStatusAccepted
order.Remark = order.CourierName + "" + order.CourierMobile
if dadaOrder, err := api.DadaAPI.QueryOrderInfo(msg.OrderID); err == nil {
order.ActualFee = jxutils.StandardPrice2Int(dadaOrder.ActualFee)
order.DesiredFee = jxutils.StandardPrice2Int(dadaOrder.DeliveryFee)
}
case dadaapi.OrderStatusDelivering:
order.Status = model.WaybillStatusDelivering
case dadaapi.OrderStatusFinished: