diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 4f6b0c2b5..cb876dc82 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -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 } diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 6cc91da54..f69731328 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -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 diff --git a/business/partner/purchase/jdshop/order_afs.go b/business/partner/purchase/jdshop/order_afs.go index 7990066de..2c91fd63a 100644 --- a/business/partner/purchase/jdshop/order_afs.go +++ b/business/partner/purchase/jdshop/order_afs.go @@ -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 } diff --git a/business/partner/purchase/jx/order_afs.go b/business/partner/purchase/jx/order_afs.go index 448dad754..62f16cb60 100644 --- a/business/partner/purchase/jx/order_afs.go +++ b/business/partner/purchase/jx/order_afs.go @@ -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 }