取消订单退费

This commit is contained in:
邹宗楠
2022-07-13 17:40:22 +08:00
parent 529ab2f0fa
commit b4b3d2f27d
4 changed files with 21 additions and 6 deletions

View File

@@ -254,7 +254,7 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
}
//门店发单的订单,取消后要退回配送费
resetCreateWaybillFee(db, order)
ResetCreateWaybillFee(db, order)
}
}
@@ -444,7 +444,7 @@ func filterOrderInfo(order *model.GoodsOrder) {
order.ConsigneeAddress = strings.ReplaceAll(order.ConsigneeAddress, "·", "")
}
func resetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder) (err error) {
func ResetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder) (err error) {
store, _ := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode)
if store != nil && store.CreateDeliveryType == model.YES { // 门店发单(非京西品牌)
// 无运单不参与退款
@@ -484,7 +484,7 @@ func resetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder) (err error) {
}
// 获取品牌的支付记录
orderBill, _ := dao.GetBrandBill(dao.GetDB(), store.BrandID, order.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery)
orderBill, _ := dao.GetBrandBill(db, store.BrandID, order.VendorOrderID, model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery)
if len(orderBill) != model.YES {
return errors.New("订单支出数据异常,应该为一条数据")
}
@@ -500,7 +500,7 @@ func resetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder) (err error) {
OrderID: orderBill[0].OrderID,
}
dao.WrapAddIDCULEntity(newBill, "")
err = dao.CreateEntity(dao.GetDB(), newBill)
err = dao.CreateEntity(db, newBill)
}
return err
}

View File

@@ -3,6 +3,7 @@ package basesch
import (
"fmt"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
"git.rosy.net.cn/jx-callback/business/jxutils"
@@ -121,6 +122,7 @@ 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")) {
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
orderman.ResetCreateWaybillFee(dao.GetDB(), order)
}
return err
}, "SelfDeliverDelivering orderID:%s", order.VendorOrderID)
@@ -150,6 +152,7 @@ func (c *BaseScheduler) SelfDeliverDelivered(order *model.GoodsOrder, userName s
if err = partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivered(order, userName); err != nil {
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
orderman.ResetCreateWaybillFee(dao.GetDB(), order)
}
return err
}, "SelfDeliverDelivered orderID:%s", order.VendorOrderID)

View File

@@ -2,6 +2,7 @@ package basesch
import (
"fmt"
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
"git.rosy.net.cn/jx-callback/business/jxutils/netprinter"
"strings"
"time"
@@ -200,9 +201,16 @@ func (c *BaseScheduler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model
func (c *BaseScheduler) CancelWaybillByID(ctx *jxcontext.Context, vendorWaybillID string, waybillVendorID int, cancelReasonID int, cancelReason string) (err error) {
bill, err := partner.CurOrderManager.LoadWaybill(vendorWaybillID, waybillVendorID)
if err == nil {
err = c.CancelWaybill(bill, cancelReasonID, cancelReason)
if err != nil {
return err
}
if err := c.CancelWaybill(bill, cancelReasonID, cancelReason); err != nil {
return err
}
order, err := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID)
orderman.ResetCreateWaybillFee(dao.GetDB(), order)
return err
}

View File

@@ -813,9 +813,11 @@ func (s *DefScheduler) cancelWaybillNotInStoreOpentime(savedOrderInfo *WatchOrde
time4 := jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime2, time.Now())
if time.Now().Sub(time3) < 0 || time.Now().Sub(time4.Add(time.Minute*30)) > 0 {
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
s.reverseBrandAccount(storeDetail, bill)
}
} else {
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
s.reverseBrandAccount(storeDetail, bill)
}
}
}
@@ -1450,6 +1452,7 @@ func (s *DefScheduler) updateBrandAccount(store *dao.StoreDetail, bill *model.Wa
}
}
// 取消退费
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)
@@ -1633,6 +1636,7 @@ func (s *DefScheduler) ProxyCancelWaybill(order *model.GoodsOrder, bill *model.W
if cancelReasonID != partner.CancelWaybillReasonNotAcceptIntime {
if storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode); storeDetail != nil {
s.reverseBrandAccount(storeDetail, bill)
//orderman.ResetCreateWaybillFee(dao.GetDB(), order)
}
}
}