Browse Source

1

AddValidOverTime
shanji 2 years ago
parent
commit
ff9d23e3b5
  1. 8
      BBWY.Server.API/Controllers/TestController.cs
  2. 9
      BBWY.Server.Business/Order/OrderBusiness.cs
  3. 2
      BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  4. 13
      BBWY.Server.Business/Sync/OrderSyncBusiness.cs
  5. 94
      BBWY.Server.Business/TestBusiness.cs
  6. 13
      BBWY.Server.Model/Dto/Request/Test/RepairSkuDetailAndSkuGriooProfit.cs

8
BBWY.Server.API/Controllers/TestController.cs

@ -22,12 +22,6 @@ namespace BBWY.Server.API.Controllers
{
testBusiness.StatisticsProduct();
}
[HttpPost]
public void XiuFu()
{
testBusiness.XiuFu();
}
}
}
}

9
BBWY.Server.Business/Order/OrderBusiness.cs

@ -593,7 +593,7 @@ namespace BBWY.Server.Business
StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity
};
//orderCostDetail.SkuGrossProfit = orderSku.Price.Value * deductionQuantity - avgPreferential - (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) - orderSku.Price.Value * deductionQuantity * autoCalculationCostRequest.PlatformCommissionRatio;
orderCostDetail.SkuGrossProfit = (orderSku.ShouldPay ?? 0M) - orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight;
orderCostDetail.SkuGrossProfit = ((orderSku.ShouldPay ?? 0M) + (orderSku.Coupon ?? 0M)) * deductionQuantity - orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight;
insertOrderCostDetailList.Add(orderCostDetail);
}
}
@ -662,7 +662,8 @@ namespace BBWY.Server.Business
osku.SkuId,
osku.Price,
osku.ItemTotal,
osku.ShouldPay
osku.ShouldPay,
osku.Coupon
});
var avgPreferential = dbOrder.PreferentialAmount / orderSkuList.Count();
@ -687,7 +688,7 @@ namespace BBWY.Server.Business
//orderCostDetail.SkuGrossProfit = osku.Price.Value * orderCostDetail.DeductionQuantity - avgPreferential -
// (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) -
// osku.Price.Value * orderCostDetail.DeductionQuantity * manualCalculationCostRequest.PlatformCommissionRatio;
orderCostDetail.SkuGrossProfit = (osku.ShouldPay ?? 0M) - orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight;
orderCostDetail.SkuGrossProfit = ((osku.ShouldPay ?? 0M) + (osku.Coupon ?? 0M)) * orderCostDetail.DeductionQuantity - orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight;
}
}
@ -946,7 +947,7 @@ namespace BBWY.Server.Business
//orderCostDetail.SkuGrossProfit = dbOrderSku.Price.Value * orderCostDetail.DeductionQuantity - avgPreferential -
// (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) -
// dbOrderSku.Price.Value * orderCostDetail.DeductionQuantity * relationPurchaseOrderRequestV2.PlatformCommissionRatio;
orderCostDetail.SkuGrossProfit = (dbOrderSku.ShouldPay ?? 0M) - orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight;
orderCostDetail.SkuGrossProfit = ((dbOrderSku.ShouldPay ?? 0M) + dbOrderSku.Coupon ?? 0M) * orderCostDetail.DeductionQuantity - orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight;
}
#endregion
}

2
BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -265,7 +265,7 @@ namespace BBWY.Server.Business
};
//orderCostDetail.SkuGrossProfit = orderSku.Price.Value * orderCostDetail.DeductionQuantity - avgPreferential - (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) - orderSku.Price.Value * orderCostDetail.DeductionQuantity * createOnlinePurchaseOrderRequest.PlatformCommissionRatio;
orderCostDetail.SkuGrossProfit = (orderSku.ShouldPay ?? 0M) - orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight;
orderCostDetail.SkuGrossProfit = ((orderSku.ShouldPay ?? 0M) + orderSku.Coupon ?? 0M) * orderCostDetail.DeductionQuantity - orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight;
insertOrderCostDetails.Add(orderCostDetail);
#endregion

13
BBWY.Server.Business/Sync/OrderSyncBusiness.cs

@ -98,7 +98,7 @@ namespace BBWY.Server.Business
}
private void SyncOrder(ShopResponse shop, string orderId, DateTime? startTime = null, DateTime? endTime = null, bool isAuto = false, Enums.SortTimeType? sortTimeType = null)
public void SyncOrder(ShopResponse shop, string orderId, DateTime? startTime = null, DateTime? endTime = null, bool isAuto = false, Enums.SortTimeType? sortTimeType = null)
{
try
{
@ -576,7 +576,7 @@ namespace BBWY.Server.Business
if (dbOsku != null)
{
var oskuCF = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == dbOsku.SkuId);
var isDetailChanged = dbOsku.ShouldPay == 0 && oskuCF != null && oskuCF.ShouldPay != 0;
var isDetailChanged = (dbOsku.ShouldPay == 0 || dbOsku.ShouldPay == null) && oskuCF != null && oskuCF.ShouldPay != 0;
if (dbOsku.ProductId != wareId || isDetailChanged)
{
var update = fsql.Update<OrderSku>(dbOsku.Id)
@ -730,12 +730,19 @@ namespace BBWY.Server.Business
{
var orderSkuId = orderSkuJToken.Value<string>("skuId");
var itemTotal = orderSkuJToken.Value<int>("itemTotal"); //sku购买数量
decimal? skuShouldPay = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay;
if (skuShouldPay == null)
skuShouldPay = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay;
if (skuShouldPay == null)
skuShouldPay = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay;
decimal? coupon = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Coupon;
if (coupon == null)
coupon = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Coupon;
if (coupon == null)
coupon = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Coupon;
//var itemPrice = orderSkuJToken.Value<decimal>("jdPrice"); //sku单价
var isReduceMultiTimes = false; //是否多次扣减库存
while (itemTotal != 0)
@ -794,7 +801,7 @@ namespace BBWY.Server.Business
//orderCostDetail.SkuGrossProfit = itemPrice * deductionQuantity - avgPreferential -
// (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) -
// itemPrice * deductionQuantity * platformCommissionRatio;
orderCostDetail.SkuGrossProfit = (skuShouldPay ?? 0M) - orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight;
orderCostDetail.SkuGrossProfit = ((skuShouldPay ?? 0M) + (coupon ?? 0M)) * deductionQuantity - orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight;
insertOrderCostDetailList.Add(orderCostDetail);
}
}

94
BBWY.Server.Business/TestBusiness.cs

@ -3,12 +3,14 @@ using BBWY.Common.Models;
using BBWY.Server.Model;
using BBWY.Server.Model.Db;
using BBWY.Server.Model.Db.Mds;
using BBWY.Server.Model.Dto;
using FreeSql;
using Microsoft.Extensions.Options;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
namespace BBWY.Server.Business
{
@ -17,14 +19,19 @@ namespace BBWY.Server.Business
private FreeSqlMultiDBManager freeSqlMultiDBManager;
private VenderBusiness venderBusiness;
private IFreeSql fsql;
private OrderSyncBusiness orderSyncBusiness;
public TestBusiness(RestApiService restApiService,
IOptions<GlobalConfig> options,
FreeSqlMultiDBManager freeSqlMultiDBManager,
VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness, IFreeSql fsql) : base(restApiService, options, yunDingBusiness)
VenderBusiness venderBusiness,
YunDingBusiness yunDingBusiness,
IFreeSql fsql,
OrderSyncBusiness orderSyncBusiness) : base(restApiService, options, yunDingBusiness)
{
this.freeSqlMultiDBManager = freeSqlMultiDBManager;
this.venderBusiness = venderBusiness;
this.fsql = fsql;
this.orderSyncBusiness = orderSyncBusiness;
}
public void SyncVenderId()
@ -129,6 +136,91 @@ namespace BBWY.Server.Business
}
Console.WriteLine("更新完毕");
}
public void RepairSkuDetailAndSkuGriooProfit(RepairSkuDetailAndSkuGriooProfit request)
{
request.EndTime = request.EndTime.Date.AddDays(1).AddSeconds(-1);
var banedList = new List<string>()
{
"森王汽车用品专营店",
"森王玩具专营店",
"广发玩具专营店",
"广发汽车用品专营店",
"言义汽车用品专营店",
"杰博玩具专营店",
"安吉玩具专营店",
"布莱特玩具专营店",
"畅阳汽车用品专营店",
"熊猴汽车用品专营店",
"布莱特汽车用品专营店",
"越驭玩具专营店",
"言义玩具专营店",
"瑞源汽车用品专营店",
"熊猴玩具专营店",
"奥德汽车用品专营店",
"创天户外专营店",
"桑妮玩具专营店",
"瑞源玩具专营店"
};
var shopList = venderBusiness.GetShopList(request.ShopId, Enums.Platform.);
var shopIndex = 0;
foreach (var shop in shopList)
{
shopIndex++;
Console.WriteLine($"shopProgress {shopIndex}/{shopList.Count()}");
var shopId = long.Parse(shop.ShopId);
if (banedList.Contains(shop.ShopName))
continue;
var orderIdList = fsql.Select<Order>()
.Where(o => o.ShopId == shopId &&
o.OrderState != Enums.OrderState. &&
o.StorageType != Enums.StorageType.SD &&
o.StartTime >= request.StartTime &&
o.StartTime <= request.EndTime &&
!fsql.Select<OrderTotalInfo>().Where(ot => ot.Id == o.Id).Any())
.ToList(o => o.Id);
foreach (var orderId in orderIdList)
{
orderSyncBusiness.SyncOrder(shop, orderId);
Thread.Sleep(500);
}
var orderList = fsql.Select<Order>(orderIdList).ToList();
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.Price > 0 && orderIdList.Contains(osku.OrderId)).ToList();
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true).ToList();
var orderIndex = 0;
foreach (var order in orderList)
{
orderIndex++;
Console.WriteLine($"shopProgress {shopIndex}/{shopList.Count()}, orderProgress {orderIndex}/{orderList.Count()}");
var currentOrderCostDetailList = orderCostDetailList.Where(ocd => ocd.OrderId == order.Id).ToList();
if (currentOrderCostDetailList.Count() > 0)
{
List<IUpdate<OrderCostDetail>> updateOrderCostDetailList = new List<IUpdate<OrderCostDetail>>();
var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == order.Id).ToList();
foreach (var orderSku in currentOrderSkuList)
{
var ocd = currentOrderCostDetailList.FirstOrDefault(x => x.SkuId == orderSku.SkuId);
ocd.SkuGrossProfit = ((orderSku.ShouldPay ?? 0M) + (orderSku.Coupon ?? 0M)) * ocd.DeductionQuantity - ocd.TotalCost - ocd.DeliveryExpressFreight;
var update = fsql.Update<OrderCostDetail>(ocd.Id).Set(x => x.SkuGrossProfit, ocd.SkuGrossProfit);
updateOrderCostDetailList.Add(update);
}
if (updateOrderCostDetailList.Count() > 0)
{
fsql.Transaction(() =>
{
foreach (var update in updateOrderCostDetailList)
update.ExecuteAffrows();
});
}
}
}
}
}
}
public class JPCount

13
BBWY.Server.Model/Dto/Request/Test/RepairSkuDetailAndSkuGriooProfit.cs

@ -0,0 +1,13 @@
using System;
namespace BBWY.Server.Model.Dto
{
public class RepairSkuDetailAndSkuGriooProfit
{
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public long? ShopId { get; set; }
}
}
Loading…
Cancel
Save