Browse Source

设置历史采购单接口

updatebug
shanji 2 years ago
parent
commit
593b1d8a7f
  1. 10
      BBWYB.Server.API/Controllers/PurchaseOrderController.cs
  2. 50
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  3. 15
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/SetHistoryPurchaseOrderRequest.cs

10
BBWYB.Server.API/Controllers/PurchaseOrderController.cs

@ -58,6 +58,16 @@ namespace BBWYB.Server.API.Controllers
purchaseOrderBusiness.AssociatePurchaseOrder(request);
}
/// <summary>
/// 设置历史采购单
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void SetHistoryPurchaseOrder([FromBody] SetHistoryPurchaseOrderRequest request)
{
purchaseOrderBusiness.SetHistoryPurchaseOrder(request);
}
/// <summary>
/// 1688回调
/// </summary>

50
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -466,7 +466,10 @@ namespace BBWYB.Server.Business
if (request.AssociationPurchaseOrderList == null || request.AssociationPurchaseOrderList.Count() == 0)
throw new BusinessException("缺少采购单信息");
var dbPurchaseOrderList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId && opi.IsEnabled == true).ToList();
var dbPurchaseOrderList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId).ToList();
var dbInvalidPurchaseOrderIdList = dbPurchaseOrderList.Where(opi => !opi.IsEnabled).Select(opi => opi.PurchaseOrderId).ToList();
var dbOrderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList();
var dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == request.OrderId && ocd.IsEnabled == true).ToList();
var dbOrderCost = fsql.Select<OrderCost>(request.OrderId).ToOne();
@ -481,6 +484,9 @@ namespace BBWYB.Server.Business
foreach (var purchaseOrder in request.AssociationPurchaseOrderList)
{
if (dbInvalidPurchaseOrderIdList.Contains(purchaseOrder.PurchaserOrderId))
continue;
var avgFreight = purchaseOrder.PurchaseFreight / purchaseOrder.AssocationOrderCostDetailList.Count();
var dbPurchaserOrder = dbPurchaseOrderList.FirstOrDefault(x => x.PurchaseOrderId == purchaseOrder.PurchaserOrderId);
if (dbPurchaserOrder == null)
@ -543,8 +549,8 @@ namespace BBWYB.Server.Business
}
}
var totalPurchaseAmount = request.AssociationPurchaseOrderList.Sum(p => p.PurchaseAmount + p.PurchaseFreight);
var totalPurchaseAmount = request.AssociationPurchaseOrderList.Where(x => !dbInvalidPurchaseOrderIdList.Contains(x.PurchaserOrderId))
.Sum(p => p.PurchaseAmount + p.PurchaseFreight);
var profit = dbOrder.OrderTotalPrice - totalPurchaseAmount - (dbOrderCost?.DeliveryExpressFreight ?? 0); // -orderCost.PlatformCommissionAmount
if (dbOrderCost == null)
@ -594,6 +600,44 @@ namespace BBWYB.Server.Business
});
}
public void SetHistoryPurchaseOrder(SetHistoryPurchaseOrderRequest request)
{
var dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == request.OrderId)
.ToList();
var dbOrderCost = fsql.Select<OrderCost>(request.OrderId).ToOne();
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
var invalidCost = dbOrderCostDetailList.Sum(ocd => ocd.SkuAmount + ocd.PurchaseFreight);
//orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio;
try
{
dbOrderCost.PurchaseAmount = dbOrderCostDetailList.Where(ocd => ocd.PurchaseOrderId != request.PurchaseOrderId).Sum(ocd => ocd.TotalCost);
}
catch
{
dbOrderCost.PurchaseAmount = 0;
}
dbOrderCost.Profit = dbOrder.OrderTotalPrice -
dbOrderCost.PurchaseAmount -
dbOrderCost.DeliveryExpressFreight; // -orderCost.PlatformCommissionAmount
fsql.Transaction(() =>
{
fsql.Update<OrderPurchaseInfo>()
.Set(opi => opi.IsEnabled, false)
.Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId)
.ExecuteAffrows();
fsql.Update<OrderCostDetail>()
.Set(ocd => ocd.IsEnabled, false)
.Where(ocd => ocd.PurchaseOrderId == request.PurchaseOrderId)
.ExecuteAffrows();
fsql.Update<OrderCost>().SetSource(dbOrderCost).ExecuteAffrows();
});
}
#region 1688CallBack
public void CallbackFrom1688(string jsonStr)
{

15
BBWYB.Server.Model/Dto/Request/PurchaseOrder/SetHistoryPurchaseOrderRequest.cs

@ -0,0 +1,15 @@
namespace BBWYB.Server.Model.Dto
{
public class SetHistoryPurchaseOrderRequest
{
/// <summary>
/// 订单Id
/// </summary>
public string OrderId { get; set; }
/// <summary>
/// 采购单Id
/// </summary>
public string PurchaseOrderId { get; set; }
}
}
Loading…
Cancel
Save