售前售后扣点订单钱修改
This commit is contained in:
@@ -131,6 +131,11 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, orderStatus *model
|
|||||||
// return err
|
// return err
|
||||||
// }, "OnAdjustOrder delete order_sku, orderID:%s", order.VendorOrderID)
|
// }, "OnAdjustOrder delete order_sku, orderID:%s", order.VendorOrderID)
|
||||||
order.AdjustCount = adjustCount + 1
|
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)
|
isDuplicated, err = c.SaveOrder(order, true, db)
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@@ -1702,7 +1707,10 @@ func AdjustJdsOrderSimple(ctx *jxcontext.Context, vendorOrderID string, skuID in
|
|||||||
)
|
)
|
||||||
orderSkus, err := dao.GetSimpleOrderSkus(db, vendorOrderID, []int{skuID})
|
orderSkus, err := dao.GetSimpleOrderSkus(db, vendorOrderID, []int{skuID})
|
||||||
order, err := dao.GetSimpleOrder(db, vendorOrderID)
|
order, err := dao.GetSimpleOrder(db, vendorOrderID)
|
||||||
|
//如果不是商城模板店
|
||||||
|
if jxutils.GetSaleStoreIDFromOrder(order) != model.JdShopMainStoreID {
|
||||||
|
return fmt.Errorf("目前只支持商城模板店的简单售前删除!")
|
||||||
|
}
|
||||||
orderSkus2, err := dao.GetSimpleOrderSkus(db, vendorOrderID, nil)
|
orderSkus2, err := dao.GetSimpleOrderSkus(db, vendorOrderID, nil)
|
||||||
if len(orderSkus2) == 1 {
|
if len(orderSkus2) == 1 {
|
||||||
return fmt.Errorf("这一单只剩这最后一个商品了,不允许删除!")
|
return fmt.Errorf("这一单只剩这最后一个商品了,不允许删除!")
|
||||||
@@ -1720,6 +1728,7 @@ func AdjustJdsOrderSimple(ctx *jxcontext.Context, vendorOrderID string, skuID in
|
|||||||
} else {
|
} else {
|
||||||
_, err = dao.DeleteEntity(db, orderSku)
|
_, err = dao.DeleteEntity(db, orderSku)
|
||||||
}
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package orderman
|
|||||||
import (
|
import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/baseapi/platformapi/jdshopapi"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"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)
|
dao.Begin(db)
|
||||||
@@ -100,6 +124,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
scheduler.CurrentScheduler.OnAfsOrderNew(afsOrder, false)
|
scheduler.CurrentScheduler.OnAfsOrderNew(afsOrder, false)
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -89,7 +89,6 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
|
|||||||
afsOrder.SkuUserMoney += orderSku.UserMoney
|
afsOrder.SkuUserMoney += orderSku.UserMoney
|
||||||
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
||||||
}
|
}
|
||||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -141,25 +141,6 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
|
|||||||
} else {
|
} else {
|
||||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user