diff --git a/BBWY.Client/Views/Order/OrderList.xaml b/BBWY.Client/Views/Order/OrderList.xaml
index 1278f717..3a2fb533 100644
--- a/BBWY.Client/Views/Order/OrderList.xaml
+++ b/BBWY.Client/Views/Order/OrderList.xaml
@@ -1187,9 +1187,9 @@
-
+
diff --git a/BBWY.Server.Business/Extensions/OrderCostExtension.cs b/BBWY.Server.Business/Extensions/OrderCostExtension.cs
index 94f507ef..99602be0 100644
--- a/BBWY.Server.Business/Extensions/OrderCostExtension.cs
+++ b/BBWY.Server.Business/Extensions/OrderCostExtension.cs
@@ -24,5 +24,16 @@ namespace BBWY.Server.Business.Extensions
orderCost.AfterTotalCost +
orderCost.RefundPurchaseAmount;
}
+
+ public static void CalculationSDOrderProfitAndCost(this OrderCost orderCost, Order order, IList afterSaleOrders)
+ {
+ orderCost.AfterTotalCost = afterSaleOrders.Count == 0 ? 0M : afterSaleOrders.Sum(aso => aso.AfterTotalCost);
+ orderCost.RefundAmount = afterSaleOrders.Count == 0 ? 0M : afterSaleOrders.Sum(aso => aso.RefundAmount ?? 0M);
+ orderCost.RefundPurchaseAmount = afterSaleOrders.Count == 0M ? 0M : afterSaleOrders.Sum(aso => aso.RefundPurchaseAmount ?? 0);
+
+ //退款之后平台扣点
+ orderCost.PlatformCommissionAmount = (order.OrderSellerPrice - orderCost.RefundAmount) * (orderCost.PlatformCommissionRatio);
+ orderCost.Profit = (orderCost.SDCommissionAmount + orderCost.DeliveryExpressFreight + orderCost.PlatformCommissionAmount + orderCost.AfterTotalCost) * -1;
+ }
}
}
diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs
index 8b8abd5a..6205d8cb 100644
--- a/BBWY.Server.Business/Order/OrderBusiness.cs
+++ b/BBWY.Server.Business/Order/OrderBusiness.cs
@@ -2,7 +2,6 @@
using BBWY.Common.Http;
using BBWY.Common.Models;
using BBWY.Server.Business.Extensions;
-using BBWY.Server.Business.PlatformSDK.DataExtension;
using BBWY.Server.Model;
using BBWY.Server.Model.Db;
using BBWY.Server.Model.Db.Mds;
@@ -11,46 +10,31 @@ using FreeSql;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Net.Http;
-using System.Threading.Tasks;
using Yitter.IdGenerator;
namespace BBWY.Server.Business
{
public class OrderBusiness : BasePlatformRelayBusiness, IDenpendency
{
- private ILogger logger;
private IFreeSql fsql;
private IIdGenerator idGenerator;
- private TaskSchedulerManager taskSchedulerManager;
- private MDSBusiness mdsBusiness;
- private VenderBusiness venderBusiness;
private Lazy freeSqlMultiDBManagerLazy;
private FreeSqlMultiDBManager freeSqlMultiDBManager => freeSqlMultiDBManagerLazy.Value;
public OrderBusiness(RestApiService restApiService,
- ILogger logger,
IFreeSql fsql,
IIdGenerator idGenerator,
IOptions options,
- TaskSchedulerManager taskSchedulerManager,
- MDSBusiness mdsBusiness,
- VenderBusiness venderBusiness,
IServiceProvider serviceProvider) : base(restApiService, options)
{
- this.logger = logger;
this.fsql = fsql;
this.idGenerator = idGenerator;
- this.taskSchedulerManager = taskSchedulerManager;
- this.mdsBusiness = mdsBusiness;
- this.venderBusiness = venderBusiness;
freeSqlMultiDBManagerLazy = new Lazy(() => serviceProvider.GetService());
}
@@ -671,6 +655,8 @@ namespace BBWY.Server.Business
IUpdate updateOrderCost = null;
IInsert insertOrderCost = null;
+ var dbAfterSaleOrderList = fsql.Select().Where(aso => aso.OrderId == sdCalculationCostRequest.OrderId).ToList();
+
orderUpdate = fsql.Update(sdCalculationCostRequest.OrderId).Set(o => o.SDType, sdCalculationCostRequest.SDType)
.Set(o => o.Flag, sdCalculationCostRequest.Flag)
.Set(o => o.VenderRemark, sdCalculationCostRequest.VenderRemark)
@@ -697,15 +683,17 @@ namespace BBWY.Server.Business
IsManualEdited = true,
SDCommissionAmount = sdCalculationCostRequest.SDCommissionAmount
};
- orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio;
- orderCost.Profit = (orderCost.SDCommissionAmount + orderCost.DeliveryExpressFreight + orderCost.PlatformCommissionAmount) * -1;
+ //orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio;
+ //orderCost.Profit = (orderCost.SDCommissionAmount + orderCost.DeliveryExpressFreight + orderCost.PlatformCommissionAmount) * -1;
+ orderCost.CalculationSDOrderProfitAndCost(dbOrder, dbAfterSaleOrderList);
insertOrderCost = fsql.Insert(orderCost);
}
else
{
orderCost.SDCommissionAmount = sdCalculationCostRequest.SDCommissionAmount;
orderCost.DeliveryExpressFreight = sdCalculationCostRequest.DeliveryExpressFreight;
- orderCost.Profit = (orderCost.SDCommissionAmount + orderCost.DeliveryExpressFreight + orderCost.PlatformCommissionAmount) * -1;
+ //orderCost.Profit = (orderCost.SDCommissionAmount + orderCost.DeliveryExpressFreight + orderCost.PlatformCommissionAmount) * -1;
+ orderCost.CalculationSDOrderProfitAndCost(dbOrder, dbAfterSaleOrderList);
orderCost.IsManualEdited = true;
updateOrderCost = fsql.Update().SetSource(orderCost);
}