diff --git a/business/partner/purchase/jx/order_afs.go b/business/partner/purchase/jx/order_afs.go index 10dcbce39..448dad754 100644 --- a/business/partner/purchase/jx/order_afs.go +++ b/business/partner/purchase/jx/order_afs.go @@ -5,6 +5,10 @@ import ( "strings" "time" + "git.rosy.net.cn/jx-callback/business/jxutils" + + "git.rosy.net.cn/baseapi/platformapi/jdshopapi" + "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/business/model/dao" @@ -73,6 +77,7 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G skuMap = make(map[int]*model.OrderSku) appID = "" salePrice int64 + db = dao.GetDB() ) if time.Now().Sub(order.OrderCreatedAt) > 24*time.Hour { return fmt.Errorf("已超过售后申请时间,如有疑问请联系门店!") @@ -122,7 +127,7 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G } if !isJxShop(appID) { - orderPays, err := dao.GetOrderPayList(dao.GetDB(), order.VendorOrderID, order.VendorID) + orderPays, err := dao.GetOrderPayList(db, order.VendorOrderID, order.VendorID) if err == nil { _, err = localjx.RefundOrderByTL(ctx, orderPays[0], order.VendorOrderID, int(salePrice), reason) if err != nil { @@ -136,6 +141,25 @@ 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 }