售前售后扣点订单钱修改
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user