shanji 3 years ago
parent
commit
d471f23d8c
  1. 4
      BBWY.Client/Views/Order/OrderList.xaml
  2. 8
      BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs
  3. 11
      BBWY.Server.Business/Extensions/OrderCostExtension.cs
  4. 26
      BBWY.Server.Business/Order/OrderBusiness.cs
  5. 4
      BBWY.Server.Business/Sync/ProductSyncBusiness.cs

4
BBWY.Client/Views/Order/OrderList.xaml

@ -1187,9 +1187,9 @@
<DataTrigger Binding="{Binding OrderCost.SDCommissionAmount}" Value="0">
<Setter TargetName="txt_sdCommissionAmount" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding StorageType}" Value="SD">
<!--<DataTrigger Binding="{Binding StorageType}" Value="SD">
<Setter TargetName="sp_purchaseAmount" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</DataTrigger>-->
<DataTrigger Binding="{Binding StorageType}" Value="代发">
<Setter TargetName="listbox_df" Property="Visibility" Value="Visible"/>
</DataTrigger>

8
BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs

@ -135,8 +135,12 @@ namespace BBWY.Server.Business
if (dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.SD退货)
{
if (dbOrder.StorageType != Model.Enums.StorageType.SD)
throw new BusinessException("只有SD订单才能选择SD退货");
dbAfterSaleOrder.SDRefundFreight = editAfterSaleOrderRequest.SDRefundFreight;
dbAfterSaleOrder.AfterTotalCost = dbAfterSaleOrder.SDRefundFreight + dbAfterSaleOrder.ReissueAfterSaleAmount;
dbOrderCost.CalculationSDOrderProfitAndCost(dbOrder, afterSaleOrderList);
}
else
{
@ -202,11 +206,11 @@ namespace BBWY.Server.Business
dbAfterSaleOrder.ReissueFreight.Value +
dbAfterSaleOrder.ReissueProductAmount.Value +
dbAfterSaleOrder.StorageAmount;
dbOrderCost.CalculationOrderProfitAndCost(dbOrder, afterSaleOrderList);
}
#endregion
dbOrderCost.CalculationOrderProfitAndCost(dbOrder, afterSaleOrderList);
fsql.Transaction(() =>
{
fsql.Update<OrderCost>().SetSource(dbOrderCost).ExecuteAffrows();

11
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<AfterSaleOrder> 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;
}
}
}

26
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<FreeSqlMultiDBManager> freeSqlMultiDBManagerLazy;
private FreeSqlMultiDBManager freeSqlMultiDBManager => freeSqlMultiDBManagerLazy.Value;
public OrderBusiness(RestApiService restApiService,
ILogger logger,
IFreeSql fsql,
IIdGenerator idGenerator,
IOptions<GlobalConfig> 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<FreeSqlMultiDBManager>(() => serviceProvider.GetService<FreeSqlMultiDBManager>());
}
@ -671,6 +655,8 @@ namespace BBWY.Server.Business
IUpdate<OrderCost> updateOrderCost = null;
IInsert<OrderCost> insertOrderCost = null;
var dbAfterSaleOrderList = fsql.Select<AfterSaleOrder>().Where(aso => aso.OrderId == sdCalculationCostRequest.OrderId).ToList();
orderUpdate = fsql.Update<Order>(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<OrderCost>().SetSource(orderCost);
}

4
BBWY.Server.Business/Sync/ProductSyncBusiness.cs

@ -72,7 +72,7 @@ namespace BBWY.Server.Business.Sync
}
else if (dbProduct.State != product.State)
{
var update = fsql.Update<Product>(product.Id).Set(p => p.State, dbProduct.State);
var update = fsql.Update<Product>(product.Id).Set(p => p.State, product.State);
updateProductList.Add(update);
}
@ -181,7 +181,7 @@ namespace BBWY.Server.Business.Sync
public void SyncAllShopAllProduct()
{
var shopList = venderBusiness.GetShopList();
//SyncProduct(shopList.FirstOrDefault(s => s.ShopName == "瑞源玩具专营店"), true); //瑞源玩具专营店
//SyncProduct(shopList.FirstOrDefault(s => s.ShopName == "布莱特玩具专营店"), true);
foreach (var shop in shopList)
{
Task.Factory.StartNew(() => SyncProduct(shop, true), System.Threading.CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.ProductSyncTaskScheduler);

Loading…
Cancel
Save