售前售后扣点订单钱修改

This commit is contained in:
苏尹岚
2020-09-03 14:52:17 +08:00
parent 36dd9da2f9
commit 87b248cc90
4 changed files with 35 additions and 21 deletions

View File

@@ -131,6 +131,11 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, orderStatus *model
// return err
// }, "OnAdjustOrder delete order_sku, orderID:%s", order.VendorOrderID)
order.AdjustCount = adjustCount + 1
//扣点的订单需要修改订单的totalshopmoney
if err == nil && order.EarningType == model.EarningTypePoints {
order2, _ := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrder(order.VendorOrgCode, order.VendorOrderID)
order.TotalShopMoney = order2.TotalShopMoney
}
isDuplicated, err = c.SaveOrder(order, true, db)
}
if err == nil {
@@ -1702,7 +1707,10 @@ func AdjustJdsOrderSimple(ctx *jxcontext.Context, vendorOrderID string, skuID in
)
orderSkus, err := dao.GetSimpleOrderSkus(db, vendorOrderID, []int{skuID})
order, err := dao.GetSimpleOrder(db, vendorOrderID)
//如果不是商城模板店
if jxutils.GetSaleStoreIDFromOrder(order) != model.JdShopMainStoreID {
return fmt.Errorf("目前只支持商城模板店的简单售前删除!")
}
orderSkus2, err := dao.GetSimpleOrderSkus(db, vendorOrderID, nil)
if len(orderSkus2) == 1 {
return fmt.Errorf("这一单只剩这最后一个商品了,不允许删除!")
@@ -1720,6 +1728,7 @@ func AdjustJdsOrderSimple(ctx *jxcontext.Context, vendorOrderID string, skuID in
} else {
_, err = dao.DeleteEntity(db, orderSku)
}
return err
}

View File

@@ -3,6 +3,7 @@ package orderman
import (
"strings"
"git.rosy.net.cn/baseapi/platformapi/jdshopapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils"
@@ -60,6 +61,29 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode
}
}
}
//如果是扣点的单需要修改totalShopMoney等
skuMap := make(map[int]*model.OrderSku)
for _, sku := range order.Skus {
skuMap[sku.SkuID] = sku
}
if err == nil && order.EarningType == model.EarningTypePoints {
var diff int64
origin := float64(order.TotalShopMoney) / jdshopapi.JdsPayPercentage
for _, sku := range afsOrder.Skus {
if skuMap[sku.SkuID] != nil {
diff += skuMap[sku.SkuID].SalePrice * int64(sku.Count)
}
}
order.TotalShopMoney = utils.Float64TwoInt64((origin - float64(diff)) * jdshopapi.JdsPayPercentage)
storeDetail, _ := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID)
wayBills, _ := dao.GetWaybills(db, order.VendorOrderID)
if len(wayBills) > 0 {
jxutils.RefreshOrderEarningPrice3(order, storeDetail.PayPercentage, wayBills[0])
} else {
jxutils.RefreshOrderEarningPrice2(order, storeDetail.PayPercentage)
}
dao.UpdateEntity(db, order, "TotalShopMoney", "NewEarningPrice")
}
}
//
dao.Begin(db)
@@ -100,6 +124,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode
return err
}
}
dao.Commit(db)
scheduler.CurrentScheduler.OnAfsOrderNew(afsOrder, false)
return err

View File

@@ -89,7 +89,6 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
afsOrder.SkuUserMoney += orderSku.UserMoney
afsOrder.Skus = append(afsOrder.Skus, orderSku)
}
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
return err
}

View File

@@ -141,25 +141,6 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
} else {
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
}
//如果是扣点的单需要修改totalShopMoney等
if err == nil && order.EarningType == model.EarningTypePoints {
var diff int64
origin := float64(order.TotalShopMoney) / jdshopapi.JdsPayPercentage
for _, sku := range refundSkuList {
if skuMap[sku.SkuID] != nil {
diff += skuMap[sku.SkuID].SalePrice * int64(sku.Count)
}
}
order.TotalShopMoney = utils.Float64TwoInt64((origin - float64(diff)) * jdshopapi.JdsPayPercentage)
storeDetail, _ := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID)
wayBills, _ := dao.GetWaybills(db, order.VendorOrderID)
if len(wayBills) > 0 {
jxutils.RefreshOrderEarningPrice3(order, storeDetail.PayPercentage, wayBills[0])
} else {
jxutils.RefreshOrderEarningPrice2(order, storeDetail.PayPercentage)
}
dao.UpdateEntity(db, order, "TotalShopMoney", "NewEarningPrice")
}
return err
}